SURFEX v7.3
General documentation of Surfex
|
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