SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/carbon_init.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE CARBON_INIT(KNBIOMASS,KNLITTER, KNLITTLEVS, KNSOILCARB)  
00003 !     #####################
00004 !
00005 !!****  *CARBON_INIT* - routine to initialize soil carbon parameters
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !!
00010 !!**  METHOD
00011 !!    ------
00012 !!
00013 !!    EXTERNAL
00014 !!    --------
00015 !!
00016 !!    IMPLICIT ARGUMENTS
00017 !!    ------------------
00018 !!
00019 !!    REFERENCE
00020 !!    ---------
00021 !!
00022 !!      Gibelin et al. 2008, AFM
00023 !!        Modelling energy and CO2 fluxes with an interactive vegetation land surface model -
00024 !!        Evaluation at high and middle latitudes.
00025 !!
00026 !!    AUTHOR
00027 !!    ------
00028 !!      A.-L. Gibelin           * Meteo-France *
00029 !!
00030 !!    MODIFICATIONS
00031 !!    -------------
00032 !!      Original    15/06/09
00033 !!      B. Decharme   2012    variable must be allocated once by run
00034 !!
00035 !-------------------------------------------------------------------------------
00036 !
00037 !*       0.    DECLARATIONS
00038 !              ------------
00039 !
00040 USE MODD_CO2V_PAR,       ONLY : XCN, XLC, XFRAC_LITTER, XTAU_LITTER,  &
00041                                   XFRAC_SOILCARB, XTAU_SOILCARB  
00042 USE MODD_SURF_PAR,       ONLY : XUNDEF
00043 !
00044 !
00045 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00046 USE PARKIND1  ,ONLY : JPRB
00047 !
00048 IMPLICIT NONE
00049 !
00050 !*       0.1   Declarations of arguments
00051 !              -------------------------
00052 !
00053 INTEGER,              INTENT(IN)    :: KNBIOMASS           ! number of biomass pools
00054 INTEGER,              INTENT(IN)    :: KNLITTER            ! number of litter pools
00055 INTEGER,              INTENT(IN)    :: KNLITTLEVS          ! number of litter levels
00056 INTEGER,              INTENT(IN)    :: KNSOILCARB          ! number of soil carbon pools
00057 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00058 !
00059 !-------------------------------------------------------------------------------
00060 !
00061 IF (LHOOK) CALL DR_HOOK('CARBON_INIT',0,ZHOOK_HANDLE)
00062 !
00063 !*       1.     ALLOCATION
00064 !
00065 IF (ALLOCATED(XCN)) THEN
00066   IF (LHOOK) CALL DR_HOOK('CARBON_INIT',1,ZHOOK_HANDLE)
00067   RETURN
00068 END IF
00069 !
00070 ALLOCATE(XCN(KNBIOMASS))
00071 ALLOCATE(XLC(KNBIOMASS))
00072 ALLOCATE(XFRAC_LITTER(KNBIOMASS,KNLITTER))
00073 ALLOCATE(XTAU_LITTER(KNLITTER))
00074 ALLOCATE(XFRAC_SOILCARB(KNLITTER,KNSOILCARB,KNLITTLEVS))
00075 ALLOCATE(XTAU_SOILCARB(KNSOILCARB))
00076 !
00077 !
00078 !*       2.     BIOMASS CONSTANTS
00079 !               -----------------
00080 !
00081 ! Biomass Carbon/Nitrogen ratio
00082 XCN(1) = 40.0
00083 XCN(2) = 40.0
00084 XCN(3) = 40.0
00085 XCN(4) = 40.0
00086 XCN(5) = 40.0
00087 XCN(6) = 40.0
00088 !    
00089 ! Biomass Lignin/Carbon ratio
00090 XLC(1) = 0.22
00091 XLC(2) = 0.35
00092 XLC(3) = 0.35
00093 XLC(4) = 0.35
00094 XLC(5) = 0.35
00095 XLC(6) = 0.35
00096 !    
00097 ! Fraction of biomass pools going into litter pools
00098 XFRAC_LITTER(:,1) = 0.85 - 0.018 * XLC(:) * XCN(:)
00099 XFRAC_LITTER(:,2) = 1. - XFRAC_LITTER(:,1)
00100 !  
00101 !
00102 !*       3.     LITTER CONSTANTS
00103 !               ----------------
00104 !        
00105 ! Residence times in litter pools (s)
00106 XTAU_LITTER(1) = 0.066*365.0*86400.0
00107 XTAU_LITTER(2) = 0.245*365.0*86400.0
00108 !  
00109 ! Fraction of litter decomposition flux that goes into soil.
00110 ! The rest goes into the atmosphere
00111 XFRAC_SOILCARB(:,:,:) = XUNDEF
00112 ! 
00113 ! Structural litter: lignin fraction goes into slow pool + respiration,
00114 !                    rest into active pool + respiration.
00115 XFRAC_SOILCARB(2,1,1) = 0.55
00116 XFRAC_SOILCARB(2,1,2) = 0.45
00117 XFRAC_SOILCARB(2,2,1) = 0.70
00118 XFRAC_SOILCARB(2,2,2) = 0.70
00119 !  
00120 ! Metabolic litter: all goes into active pool + respiration,
00121 !                   nothing into slow or passive pool.
00122 XFRAC_SOILCARB(1,1,1) = 0.45
00123 XFRAC_SOILCARB(1,1,2) = 0.45
00124 !   
00125 !
00126 !*       4.     SOIL CONSTANTS
00127 !               --------------
00128 !  
00129 ! Residence times in carbon pools (s)
00130 XTAU_SOILCARB(1) = 0.149*365.0*86400.0
00131 XTAU_SOILCARB(2) = 5.480*365.0*86400.0
00132 XTAU_SOILCARB(3) = 241.0*365.0*86400.0
00133 !
00134 IF (LHOOK) CALL DR_HOOK('CARBON_INIT',1,ZHOOK_HANDLE)
00135 !
00136 END SUBROUTINE CARBON_INIT