SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/carbon_spinup.F90
Go to the documentation of this file.
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