|
SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE CARBON_SPINUP(KMONTH,KDAY,PTIME, & 00003 OSPINUPCARBS, OSPINUPCARBW, PSPINMAXS, PSPINMAXW, & 00004 KNBYEARSPINS, KNBYEARSPINW, KNBYEARSOLD, HPHOTO, & 00005 HRESPSL, KSPINS, KSPINW ) 00006 00007 ! ####################################################################### 00008 ! 00009 ! 00010 !!**** *CARBON_SPINUP* 00011 !! 00012 !! PURPOSE 00013 !! ------- 00014 ! Number of times the accelerated subroutine is called 00015 ! for each time step 00016 !!** METHOD 00017 !! ------ 00018 ! 00019 !! EXTERNAL 00020 !! -------- 00021 !! 00022 !! IMPLICIT ARGUMENTS 00023 !! ------------------ 00024 !! 00025 !! 00026 !! REFERENCE 00027 !! --------- 00028 !! 00029 !! AUTHOR 00030 !! ------ 00031 !! R. Alkama * Meteo-France * 00032 !! 00033 !! MODIFICATIONS 00034 !! ------------- 00035 !! Original 03/26/2012 00036 !! 00037 !------------------------------------------------------------------------------- 00038 ! 00039 !* 0. DECLARATIONS 00040 ! ------------ 00041 ! 00042 ! 00043 USE MODI_SPINUP_MAX 00044 ! 00045 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00046 USE PARKIND1 ,ONLY : JPRB 00047 ! 00048 IMPLICIT NONE 00049 ! 00050 CHARACTER(LEN=3), INTENT(IN) :: HRESPSL ! Soil Respiration 00051 ! ! 'DEF' = Norman 1992 00052 ! ! 'PRM' = Rivalland PhD Thesis (2003) 00053 ! ! 'CNT' = CENTURY model (Gibelin 2008) 00054 CHARACTER(LEN=3), INTENT(IN) :: HPHOTO ! type of photosynthesis 00055 ! 00056 INTEGER, INTENT(IN) :: KMONTH ! Current month 00057 INTEGER, INTENT(IN) :: KDAY ! Current day 00058 REAL, INTENT(IN) :: PTIME ! Current time 00059 LOGICAL, INTENT(IN) :: OSPINUPCARBS ! T: do the soil carb spinup, F: no 00060 LOGICAL, INTENT(IN) :: OSPINUPCARBW ! T: do the wood carb spinup, F: no 00061 REAL, INTENT(IN) :: PSPINMAXS ! max number of times CARBON_SOIL subroutine 00062 REAL, INTENT(IN) :: PSPINMAXW ! max number of times the wood is accelerated 00063 INTEGER, INTENT(IN) :: KNBYEARSPINS ! nbr years needed to reaches soil equilibrium 00064 INTEGER, INTENT(IN) :: KNBYEARSPINW ! nbr years needed to reaches wood equilibrium 00065 ! 00066 INTEGER, INTENT(INOUT) :: KNBYEARSOLD ! nbr years executed at curent time step 00067 INTEGER, INTENT(OUT) :: KSPINS ! number of times the soil is accelerated 00068 INTEGER, INTENT(OUT) :: KSPINW ! number of times the wood is accelerated 00069 ! 00070 !* 0. declarations of local variables 00071 ! 00072 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00073 ! 00074 !------------------------------------------------------------------------------- 00075 ! 00076 ! 1. Initializations 00077 ! --------------- 00078 ! 00079 IF (LHOOK) CALL DR_HOOK('CARBON_SPINUP',0,ZHOOK_HANDLE) 00080 ! 00081 IF (KMONTH == 1 .AND. KDAY==1 .AND. PTIME == 0.0 )THEN 00082 KNBYEARSOLD = KNBYEARSOLD + 1 00083 ENDIF 00084 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00085 ! number of times CARBON_SOIL subroutine is called for each time step 00086 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00087 KSPINS =1 00088 IF ( OSPINUPCARBS .AND. HPHOTO/='NON' .AND. HRESPSL=='CNT' ) THEN 00089 CALL SPINUP_MAX(PSPINMAXS,KNBYEARSPINS,KNBYEARSOLD,KSPINS) 00090 ENDIF 00091 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00092 ! number of times WOOD carbon subroutine is called for each time step 00093 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00094 KSPINW=1 00095 IF ( OSPINUPCARBW .AND. HPHOTO=='NCB' ) THEN 00096 CALL SPINUP_MAX(PSPINMAXW,KNBYEARSPINW,KNBYEARSOLD,KSPINW) 00097 ENDIF 00098 ! 00099 IF (LHOOK) CALL DR_HOOK('CARBON_SPINUP',1,ZHOOK_HANDLE) 00100 ! 00101 ! 00102 !------------------------------------------------------------------------------- 00103 ! 00104 END SUBROUTINE
1.8.0