Changeset 6939
- Timestamp:
- 11/20/20 01:34:51 (18 months ago)
- Location:
- branches/publications/ORCHIDEE-GMv3.2/ORCHIDEE
- Files:
-
- 1 deleted
- 33 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/publications/ORCHIDEE-GMv3.2/ORCHIDEE/src_parameters/constantes_mtc.f90
r5816 r6939 2 2 ! MODULE : constantes_mtc 3 3 ! 4 ! CONTACT : orchidee-help _at_ ipsl.jussieu.fr4 ! CONTACT : orchidee-help _at_ listes.ipsl.fr 5 5 ! 6 6 ! LICENCE : IPSL (2011) … … 31 31 !! forests: Fusion of eddy covariance data and the orchidee model, Journal of Geophysical Research-Biogeosciences, 116, 32 32 !! Artn G02018, Doi 10.1029/2010jg001544. 33 !! - MacBean, N., Maignan, F., Peylin, P., Bacour, C., Breon, F. M., & Ciais, P. (2015). Using satellite data to improve the leaf 34 !! phenology of a global terrestrial biosphere model. Biogeosciences, 12(23), 7185-7208. 33 35 !! 34 36 !! SVN : … … 42 44 43 45 USE defprec 44 USE constantes 46 USE constantes_var 45 47 46 48 IMPLICIT NONE … … 50 52 ! 51 53 52 INTEGER(i_std), PARAMETER :: nvmc = 1 3!! Number of MTCS fixed in the code (unitless)54 INTEGER(i_std), PARAMETER :: nvmc = 14 !! Number of MTCS fixed in the code (unitless) 53 55 54 56 CHARACTER(len=34), PARAMETER, DIMENSION(nvmc) :: MTC_name = & !! description of the MTC (unitless) … … 64 66 & ' C3 grass ', & ! 10 65 67 & ' C4 grass ', & ! 11 66 & ' C3 agriculture', & ! 12 67 & ' C4 agriculture' /) ! 13 68 & ' wheat ', & ! 12 69 & ' maize ', & ! 13 70 & ' rice ' /) ! 14 68 71 69 72 … … 73 76 INTEGER(i_std),PARAMETER, DIMENSION(nvmc) :: leaf_tab_mtc = & !! leaf type (1-4, unitless) 74 77 & (/ 4, 1, 1, 2, 1, 1, 2, & !! 1=broad leaved tree, 2=needle leaved tree 75 & 1, 2, 3, 3, 3, 3 /) !! 3=grass 4=bare ground78 & 1, 2, 3, 3, 3, 3, 3 /) !! 3=grass 4=bare ground 76 79 77 80 CHARACTER(len=6), PARAMETER, DIMENSION(nvmc) :: pheno_model_mtc = & !! which phenology model is used? (tabulated) 78 81 & (/ 'none ', 'none ', 'moi ', 'none ', 'none ', & 79 82 & 'ncdgdd', 'none ', 'ncdgdd', 'ngd ', 'moigdd', & 80 & 'moi gdd', 'moigdd', 'moigdd' /)83 & 'moi_C4', 'moigdd', 'moigdd', 'moigdd' /) 81 84 82 85 LOGICAL, PARAMETER, DIMENSION(nvmc) :: is_tropical_mtc = & !! Is PFT tropical ? (true/false) 83 86 & (/ .FALSE., .TRUE., .TRUE., .FALSE., .FALSE., .FALSE., .FALSE., & 84 & .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE. /) 87 & .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE. /) 88 89 !gmjc 90 ! Is the vegetation a grassland that can be managed ? 91 LOGICAL,PARAMETER, DIMENSION(nvmc) :: is_grassland_manag_mtc = & 92 & (/ .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., & 93 & .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., & 94 & .FALSE., .FALSE., .FALSE., .FALSE. /) 95 ! Is the vegetation a grassland that can be cut ? 96 LOGICAL,PARAMETER, DIMENSION(nvmc) :: is_grassland_cut_mtc = & 97 & (/ .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., & 98 & .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., & 99 & .FALSE., .FALSE., .FALSE. , .FALSE. /) 100 ! Is the vegetation a grassland that can be grazed ? 101 LOGICAL,PARAMETER, DIMENSION(nvmc) :: is_grassland_grazed_mtc = & 102 & (/ .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., & 103 & .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., & 104 & .FALSE., .FALSE., .FALSE. , .FALSE. /) 105 ! Management Intensity reading in MANAGEMENT_MAP 106 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: management_intensity_mtc = & 107 & (/ 0, 0, 0, 0, 0, 0, 0, & 108 & 0, 0, 0, 0, 0, 0, 0 /) 109 ! Start year of management reading in MANAGEMENT_MAP & GRAZING_MAP 110 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: management_start_mtc = & 111 & (/ 0, 0, 0, 0, 0, 0, 0, & 112 & 0, 0, 0, 0, 0, 0, 0 /) 113 ! Start year of N deposition reading in DEPOSITION_MAP 114 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: deposition_start_mtc = & 115 & (/ 0, 0, 0, 0, 0, 0, 0, & 116 & 0, 0, 0, 0, 0, 0, 0 /) 117 ! Number of year that management should be read 118 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: nb_year_management_mtc = & 119 & (/ 1, 1, 1, 1, 1, 1, 1, & 120 & 1, 1, 1, 1, 1, 1, 1 /) 121 ! maximum specific leaf area (m**2/gC) 122 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: sla_max_mtc = & !m2/gC 123 (/1.5E-2,1.53E-2, 2.6E-2,9.26E-3, 2E-2, 2.6E-2, 9.26E-3, & 124 & 2.6E-2, 1.9E-2, 2.6E-2,2.6E-2,2.6E-2,2.6E-2, 2.6E-2 /) 125 ! miniimum specific leaf area (m**2/gC) 126 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: sla_min_mtc = & 127 (/1.5E-2,1.53E-2, 2.6E-2,9.26E-3, 2E-2, 2.6E-2, 9.26E-3, & 128 & 2.6E-2, 1.9E-2, 2.6E-2,2.6E-2,2.6E-2,2.6E-2, 2.6E-2 /) 129 !end gmjc 130 131 !Bioenergy seting 132 ! Is the metaclass bioenergy? 133 LOGICAL,PARAMETER, DIMENSION(nvmc) :: is_bioe1_mtc = & 134 & (/ .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., & 135 & .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., & 136 & .FALSE., .FALSE., .FALSE., .FALSE. /) 85 137 86 138 CHARACTER(LEN=5), PARAMETER, DIMENSION(nvmc) :: type_of_lai_mtc = & !! Type of behaviour of the LAI evolution algorithm 87 139 & (/ 'inter', 'inter', 'inter', 'inter', 'inter', & !! for each vegetation type. (unitless) 88 140 & 'inter', 'inter', 'inter', 'inter', 'inter', & !! Value of type_of_lai : mean or interp 89 & 'inter', 'inter', 'inter' /)141 & 'inter', 'inter', 'inter', 'inter' /) 90 142 91 143 LOGICAL, PARAMETER, DIMENSION(nvmc) :: natural_mtc = & !! natural? (true/false) 92 144 & (/ .TRUE., .TRUE., .TRUE., .TRUE., .TRUE., .TRUE., .TRUE., & 93 & .TRUE., .TRUE., .TRUE., .TRUE., .FALSE., .FALSE. /) 145 & .TRUE., .TRUE., .TRUE., .TRUE., .FALSE., .FALSE., .FALSE. /) 146 147 ! dgvmjc 148 LOGICAL, PARAMETER, DIMENSION(nvmc) :: pasture_mtc = & !! pasture? (true/false) 149 & (/ .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., & 150 & .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE. /) 151 ! end dgvmjc 94 152 95 153 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: veget_ori_fixed_mtc = & !! Value for veget_ori for tests in 96 154 & (/ 0.2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & !! 0-dim simulations (0-1, unitless) 97 & 0.0, 0.0, 0.8, 0.0, 0.0, 0.0 /)155 & 0.0, 0.0, 0.8, 0.0, 0.0, 0.0, 0.0 /) 98 156 99 157 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: llaimax_mtc = & !! laimax for maximum 100 158 & (/ 0.0, 8.0, 8.0, 4.0, 4.5, 4.5, 4.0, & !! See also type of lai interpolation 101 & 4.5, 4.0, 2.0, 2.0, 2.0, 2.0 /) !! @tex $(m^2.m^{-2})$ @endtex159 & 4.5, 4.0, 2.0, 2.0, 2.0, 2.0, 2.0 /) !! @tex $(m^2.m^{-2})$ @endtex 102 160 103 161 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: llaimin_mtc = & !! laimin for minimum lai 104 162 & (/ 0.0, 8.0, 0.0, 4.0, 4.5, 0.0, 4.0, & !! See also type of lai interpolation (m^2.m^{-2}) 105 & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 163 & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0/) !! @tex $(m^2.m^{-2})$ @endtex 106 164 107 165 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: height_presc_mtc = & !! prescribed height of vegetation (m) 108 166 & (/ 0.0, 30.0, 30.0, 20.0, 20.0, 20.0, 15.0, & !! Value for height_presc : one for each vegetation type 109 & 15.0, 15.0, 0.5, 0.6, 1.0, 1.0 167 & 15.0, 15.0, 0.5, 0.6, 1.0, 1.0, 1.0/) 110 168 111 169 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: z0_over_height_mtc = & !! Factor to calculate roughness height from 112 170 & (/ 0.0, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, & !! vegetation height (unitless) 113 & 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625 /)171 & 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625 /) 114 172 115 173 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: ratio_z0m_z0h_mtc = & !! Ratio between z0m and z0h values (roughness height for momentum and for heat) 116 174 & (/ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, & 117 & 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 /)175 & 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 /) 118 176 119 177 120 178 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: rveg_mtc = & !! Potentiometer to set vegetation resistance (unitless) 121 179 & (/ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, & !! Nathalie on March 28th, 2006 - from Fred Hourdin, 122 & 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 /)180 & 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 /) 123 181 124 182 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: sla_mtc = & !! specif leaf area @tex $(m^2.gC^{-1})$ @endtex 125 183 & (/ 1.5E-2, 1.53E-2, 2.6E-2, 9.26E-3, 2E-2, 2.6E-2, 9.26E-3, & 126 & 2.6E-2, 1.9E-2, 2.6E-2, 2.6E-2, 2.6E-2, 2.6E-2 /)184 & 2.6E-2, 1.9E-2, 2.6E-2, 2.6E-2, 2.6E-2, 2.6E-2, 2.6E-2 /) 127 185 128 186 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: availability_fact_mtc = & !! calculate mortality in lpj_gap 129 187 & (/ undef, 0.14, 0.14, 0.10, 0.10, 0.10, 0.05, & 130 & 0.05, 0.05, undef, undef, undef, undef /) 188 & 0.05, 0.05, undef, undef, undef, undef, undef /) 189 131 190 132 191 ! … … 135 194 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: rstruct_const_mtc = & !! Structural resistance. 136 195 & (/ 0.0, 25.0, 25.0, 25.0, 25.0, 25.0, 25.0, & !! @tex $(s.m^{-1})$ @endtex 137 & 25.0, 25.0, 2.5, 2.0, 2.0, 2.0 /)196 & 25.0, 25.0, 2.5, 2.0, 2.0, 2.0, 2.0 /) 138 197 139 198 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: kzero_mtc = & !! A vegetation dependent constant used in the 140 199 & (/ 0.0, 12.E-5, 12.E-5, 12.E-5, 12.E-5, 25.E-5, 12.E-5, & !! calculation of the surface resistance. 141 & 25.E-5, 25.E-5, 30.E-5, 30.E-5, 30.E-5, 30.E-5 /) !! @tex $(kg.m^2.s^{-1})$ @endtex200 & 25.E-5, 25.E-5, 30.E-5, 30.E-5, 30.E-5, 30.E-5, 30.E-5 /) !! @tex $(kg.m^2.s^{-1})$ @endtex 142 201 143 202 … … 147 206 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: wmax_veg_mtc = & !! Volumetric available soil water capacity in each PFT 148 207 & (/ 150.0, 150.0, 150.0, 150.0, 150.0, 150.0, 150.0, & !! @tex $(kg.m^{-3} of soil)$ @endtex 149 & 150.0, 150.0, 150.0, 150.0, 150.0, 150.0 /)208 & 150.0, 150.0, 150.0, 150.0, 150.0, 150.0, 150.0 /) 150 209 151 210 152 211 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: humcste_ref4m = & !! Root profile description for the different 153 212 & (/ 5.0, 0.4, 0.4, 1.0, 0.8, 0.8, 1.0, & !! vegetations types. @tex $(m^{-1})$ @endtex 154 & 1.0, 0.8, 4.0, 1.0, 4.0, 1.0 /) !! These are the factor in the exponential which gets213 & 1.0, 0.8, 4.0, 1.0, 4.0, 1.0, 4.0 /) !! These are the factor in the exponential which gets 155 214 !! the root density as a function of depth 156 215 !! Values for zmaxh = 4.0 … … 158 217 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: humcste_ref2m = & !! Root profile description for the different 159 218 & (/ 5.0, 0.8, 0.8, 1.0, 0.8, 0.8, 1.0, & !! vegetations types. @tex $(m^{-1})$ @endtex 160 & 1.0, 0.8, 4.0, 4.0, 4.0, 4.0 /) !! These are the factor in the exponential which gets219 & 1.0, 0.8, 4.0, 4.0, 4.0, 4.0, 4.0 /) !! These are the factor in the exponential which gets 161 220 !! the root density as a function of depth 162 221 !! Values for zmaxh = 2.0 … … 164 223 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: throughfall_by_mtc = & !! Fraction of rain intercepted by the canopy 165 224 & (/ 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, & !! (0-100, unitless) 166 & 30.0, 30.0, 30.0, 30.0, 30.0, 30.0 /)225 & 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0 /) 167 226 168 227 … … 170 229 ! ALBEDO (sechiba) 171 230 ! 172 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: snowa_aged_vis_mtc = & !! Minimum snow albedo value for each vegetation type231 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: snowa_aged_vis_mtc = & !! Minimum snow albedo value for each vegetation type 173 232 & (/ 0.50, 0.0, 0.0, 0.15, 0.14, 0.14, 0.15, & !! after aging (dirty old snow) (unitless), visible albedo 174 & 0.14, 0.22, 0.35, 0.35, 0.35, 0.35 /) !!Source : Values are from the Thesis of S. Chalita (1992), optimized on 04/07/2016233 & 0.14, 0.22, 0.35, 0.35, 0.35, 0.35, 0.35 /) !! Source : Values are from the Thesis of S. Chalita (1992), optimized on 04/07/2016 175 234 176 235 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: snowa_aged_nir_mtc = & !! Minimum snow albedo value for each vegetation type 177 236 & (/ 0.35, 0.0, 0.0, 0.14, 0.14, 0.14, 0.14, & !! after aging (dirty old snow) (unitless), near infrared albedo 178 & 0.14, 0.14, 0.18, 0.18, 0.18, 0.18 /) !! Source : Values are from the Thesis of S. Chalita (1992)237 & 0.14, 0.14, 0.18, 0.18, 0.18, 0.18, 0.18 /) !! Source : Values are from the Thesis of S. Chalita (1992) 179 238 180 239 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: snowa_dec_vis_mtc = & !! Decay rate of snow albedo value for each vegetation type 181 240 & (/ 0.45, 0.0, 0.0, 0.10, 0.06, 0.11, 0.10, & !! as it will be used in condveg_snow (unitless), visible albedo 182 & 0.11, 0.18, 0.60, 0.60, 0.60, 0.60 /) !! Source : Values are from the Thesis of S. Chalita (1992), optimized on 04/07/2016241 & 0.11, 0.18, 0.60, 0.60, 0.60, 0.60, 0.60 /) !! Source : Values are from the Thesis of S. Chalita (1992), optimized on 04/07/2016 183 242 184 243 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: snowa_dec_nir_mtc = & !! Decay rate of snow albedo value for each vegetation type 185 244 & (/ 0.45, 0.0, 0.0, 0.06, 0.06, 0.11, 0.06, & !! as it will be used in condveg_snow (unitless), near infrared albedo 186 & 0.11, 0.11, 0.52, 0.52, 0.52, 0.52 /) !! Source : Values are from the Thesis of S. Chalita (1992)245 & 0.11, 0.11, 0.52, 0.52, 0.52, 0.52, 0.52 /) !! Source : Values are from the Thesis of S. Chalita (1992) 187 246 188 247 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: alb_leaf_vis_mtc = & !! leaf albedo of vegetation type, visible albedo, optimized on 04/07/2016 189 248 & (/ 0.00, 0.0397, 0.0474, 0.0386, 0.0484, 0.0411, 0.041, & !! (unitless) 190 & 0.0541, 0.0435, 0.0524, 0.0508, 0.0509, 0.0606 /)249 & 0.0541, 0.0435, 0.0524, 0.0508, 0.0509, 0.0606, 0.0606 /) 191 250 192 251 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: alb_leaf_nir_mtc = & !! leaf albedo of vegetation type, near infrared albedo, optimized on 04/07/2016 193 252 & (/ 0.00, 0.227, 0.214, 0.193, 0.208, 0.244, 0.177, & !! (unitless) 194 & 0.218, 0.213, 0.252, 0.265, 0.272, 0.244 /)253 & 0.218, 0.213, 0.252, 0.265, 0.272, 0.244, 0.244 /) 195 254 196 255 ! … … 199 258 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: pref_soil_veg_mtc = & !! The soil tile number for each vegetation 200 259 & (/ 1, 2, 2, 2, 2, 2, 2, & 201 & 2, 2, 3, 3, 3, 3 /) 260 & 2, 2, 3, 3, 3, 3, 3 /) 261 ! LOGICAL, PARAMETER, DIMENSION(nvmc) :: is_crop_soil = & !! whether it is a crop soil tile 262 263 ! 264 ! VEGETATION - AGE CLASSES 265 ! 266 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: agec_group_mtc = & !! The age class group that each PFT belongs to. 267 (/ 1, 2, 3, 4, 5, 6, 7, & 268 8, 9, 10, 11, 12, 13, 14 /) 269 202 270 203 271 … … 210 278 LOGICAL, PARAMETER, DIMENSION(nvmc) :: is_c4_mtc = & !! flag for C4 vegetation types (true/false) 211 279 & (/ .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., & 212 & .FALSE., .FALSE., .FALSE., .TRUE., .FALSE., .TRUE. /)280 & .FALSE., .FALSE., .FALSE., .TRUE., .FALSE., .TRUE., .FALSE. /) 213 281 214 282 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: vcmax_fix_mtc = & !! values used for vcmax when STOMATE is not 215 283 & (/ 0.0, 40.0, 50.0, 30.0, 35.0, 40.0, 30.0, & !! activated @tex $(\mu mol.m^{-2}.s^{-1})$ @endtex 216 & 40.0, 35.0, 60.0, 60.0, 70.0, 70.0 /) 217 284 & 40.0, 35.0, 60.0, 60.0, 70.0, 70.0, 70.0 /) 285 286 ! For C4 plant we define a very small downregulation effect as C4 plant are 287 ! currently saturate with respect to CO2 impact on vcmax 218 288 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: downregulation_co2_coeff_mtc = & !! coefficient for CO2 downregulation 219 289 & (/ 0.0, 0.38, 0.38, 0.28, 0.28, 0.28, 0.22, & 220 & 0.22, 0.22, 0.26, 0. 26, 0.26, 0.26 /)290 & 0.22, 0.22, 0.26, 0.03, 0.26, 0.03, 0.26 /) 221 291 222 292 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: E_KmC_mtc = & !! Energy of activation for KmC (J mol-1) 223 293 & (/undef, 79430., 79430., 79430., 79430., 79430., 79430., & !! See Medlyn et al. (2002) 224 & 79430., 79430., 79430., 79430., 79430., 79430. /)!! from Bernacchi al. (2001)294 & 79430., 79430., 79430., 79430., 79430., 79430., 79430. /) !! from Bernacchi al. (2001) 225 295 226 296 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: E_KmO_mtc = & !! Energy of activation for KmO (J mol-1) 227 297 & (/undef, 36380., 36380., 36380., 36380., 36380., 36380., & !! See Medlyn et al. (2002) 228 & 36380., 36380., 36380., 36380., 36380., 36380. /) !! from Bernacchi al. (2001) 298 & 36380., 36380., 36380., 36380., 36380., 36380., 36380. /) !! from Bernacchi al. (2001) 299 300 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: E_Sco_mtc = & !! Energy of activation for Sco (J mol-1) 301 & (/undef, -24460., -24460., -24460., -24460., -24460., -24460., & !! See Table 2 of Yin et al. (2009) 302 & -24460., -24460., -24460., -24460., -24460., -24460., -24460. /) !! Value for C4 plants is not mentioned - We use C3 for all plants 229 303 230 304 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: E_gamma_star_mtc = & !! Energy of activation for gamma_star (J mol-1) 231 305 & (/undef, 37830., 37830., 37830., 37830., 37830., 37830., & !! See Medlyn et al. (2002) from Bernacchi al. (2001) 232 & 37830., 37830., 37830., 37830., 37830., 37830. /) !! for C3 plants - We use the same values for C4 plants306 & 37830., 37830., 37830., 37830., 37830., 37830., 37830. /) !! for C3 plants - We use the same values for C4 plants 233 307 234 308 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: E_Vcmax_mtc = & !! Energy of activation for Vcmax (J mol-1) 235 309 & (/undef, 71513., 71513., 71513., 71513., 71513., 71513., & !! See Table 2 of Yin et al. (2009) for C4 plants 236 & 71513., 71513., 71513., 67300., 71513., 67300. /) !! and Kattge & Knorr (2007) for C3 plants (table 3)310 & 71513., 71513., 71513., 67300., 71513., 67300., 71513. /) !! and Kattge & Knorr (2007) for C3 plants (table 3) 237 311 238 312 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: E_Jmax_mtc = & !! Energy of activation for Jmax (J mol-1) 239 313 & (/undef, 49884., 49884., 49884., 49884., 49884., 49884., & !! See Table 2 of Yin et al. (2009) for C4 plants 240 & 49884., 49884., 49884., 77900., 49884., 77900. /) !! and Kattge & Knorr (2007) for C3 plants (table 3)314 & 49884., 49884., 49884., 77900., 49884., 77900., 49884. /) !! and Kattge & Knorr (2007) for C3 plants (table 3) 241 315 242 316 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: aSV_mtc = & !! a coefficient of the linear regression (a+bT) defining the Entropy term for Vcmax (J K-1 mol-1) 243 317 & (/undef, 668.39, 668.39, 668.39, 668.39, 668.39, 668.39, & !! See Table 3 of Kattge & Knorr (2007) 244 & 668.39, 668.39, 668.39, 641.64, 668.39, 641.64 /) !! For C4 plants, we assume that there is no318 & 668.39, 668.39, 668.39, 641.64, 668.39, 641.64, 668.39 /) !! For C4 plants, we assume that there is no 245 319 !! acclimation and that at for a temperature of 25°C, aSV is the same for both C4 and C3 plants (no strong jusitification - need further parametrization) 246 320 247 321 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: bSV_mtc = & !! b coefficient of the linear regression (a+bT) defining the Entropy term for Vcmax (J K-1 mol-1 °C-1) 248 322 & (/undef, -1.07, -1.07, -1.07, -1.07, -1.07, -1.07, & !! See Table 3 of Kattge & Knorr (2007) 249 & -1.07, -1.07, -1.07, 0., -1.07, 0. /) !! We assume No acclimation term for C4 plants323 & -1.07, -1.07, -1.07, 0., -1.07, 0., -1.07 /) !! We assume No acclimation term for C4 plants 250 324 251 325 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: tphoto_min_mtc = & !! minimum photosynthesis temperature (deg C) 252 326 & (/ undef, -4.0, -4.0, -4.0, -4.0, -4.0, -4.0, & 253 & -4.0, -4.0, -4.0, -4.0, -4.0, -4.0 /)327 & -4.0, -4.0, -4.0, -4.0, -4.0, -4.0, -4.0 /) 254 328 255 329 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: tphoto_max_mtc = & !! maximum photosynthesis temperature (deg C) 256 330 & (/ undef, 55.0, 55.0, 55.0, 55.0, 55.0, 55.0, & 257 & 55.0, 55.0, 55.0, 55.0, 55.0, 55.0 /)331 & 55.0, 55.0, 55.0, 55.0, 55.0, 55.0, 55.0 /) 258 332 259 333 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: aSJ_mtc = & !! a coefficient of the linear regression (a+bT) defining the Entropy term for Jmax (J K-1 mol-1) 260 334 & (/undef, 659.70, 659.70, 659.70, 659.70, 659.70, 659.70, & !! See Table 3 of Kattge & Knorr (2007) 261 & 659.70, 659.70, 659.70, 630., 659.70, 630. /) !! and Table 2 of Yin et al. (2009) for C4 plants335 & 659.70, 659.70, 659.70, 630., 659.70, 630., 659.70 /) !! and Table 2 of Yin et al. (2009) for C4 plants 262 336 263 337 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: bSJ_mtc = & !! b coefficient of the linear regression (a+bT) defining the Entropy term for Jmax (J K-1 mol-1 °C-1) 264 338 & (/undef, -0.75, -0.75, -0.75, -0.75, -0.75, -0.75, & !! See Table 3 of Kattge & Knorr (2007) 265 & -0.75, -0.75, -0.75, 0., -0.75, 0. /) !! We assume no acclimation term for C4 plants339 & -0.75, -0.75, -0.75, 0., -0.75, 0., -0.75 /) !! We assume no acclimation term for C4 plants 266 340 267 341 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: D_Vcmax_mtc = & !! Energy of deactivation for Vcmax (J mol-1) 268 342 & (/undef, 200000., 200000., 200000., 200000., 200000., 200000., & !! Medlyn et al. (2002) also uses 200000. for C3 plants (same value than D_Jmax) 269 & 200000., 200000., 200000., 192000., 200000., 192000. /) !! 'Consequently', we use the value of D_Jmax for C4 plants343 & 200000., 200000., 200000., 192000., 200000., 192000., 200000. /) !! 'Consequently', we use the value of D_Jmax for C4 plants 270 344 271 345 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: D_Jmax_mtc = & !! Energy of deactivation for Jmax (J mol-1) 272 346 & (/undef, 200000., 200000., 200000., 200000., 200000., 200000., & !! See Table 2 of Yin et al. (2009) 273 & 200000., 200000., 200000., 192000., 200000., 192000. /) !! Medlyn et al. (2002) also uses 200000. for C3 plants 347 & 200000., 200000., 200000., 192000., 200000., 192000., 200000. /) !! Medlyn et al. (2002) also uses 200000. for C3 plants 348 349 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: E_gm_mtc = & !! Energy of activation for gm (J mol-1) 350 & (/undef, 49600., 49600., 49600., 49600., 49600., 49600., & !! See Table 2 of Yin et al. (2009) 351 & 49600., 49600., 49600., undef, 49600., undef, 49600. /) 352 353 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: S_gm_mtc = & !! Entropy term for gm (J K-1 mol-1) 354 & (/undef, 1400., 1400., 1400., 1400., 1400., 1400., & !! See Table 2 of Yin et al. (2009) 355 & 1400., 1400., 1400., undef, 1400., undef, 1400. /) 356 357 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: D_gm_mtc = & !! Energy of deactivation for gm (J mol-1) 358 & (/undef, 437400., 437400., 437400., 437400., 437400., 437400., & !! See Table 2 of Yin et al. (2009) 359 & 437400., 437400., 437400., undef, 437400., undef, 437400. /) 274 360 275 361 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: E_Rd_mtc = & !! Energy of activation for Rd (J mol-1) 276 362 & (/undef, 46390., 46390., 46390., 46390., 46390., 46390., & !! See Table 2 of Yin et al. (2009) 277 & 46390., 46390., 46390., 46390., 46390., 46390. /)363 & 46390., 46390., 46390., 46390., 46390., 46390., 46390. /) 278 364 279 365 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: Vcmax25_mtc = & !! Maximum rate of Rubisco activity-limited carboxylation at 25°C 280 & (/ undef, 65.0, 65.0, 45.0, 45.0, 55.0, 45.0, & !! @tex $(\mu mol.m^{-2}.s^{-1})$ @endtex281 & 45.0, 35.0, 70.0, 70.0, 70.0, 70.0 /)366 & (/ undef, 50.0, 65.0, 45.0, 45.0, 55.0, 45.0, & !! @tex $(\mu mol.m^{-2}.s^{-1})$ @endtex 367 & 45.0, 35.0, 70.0, 70.0, 70.0, 70.0, 70.0 /) 282 368 283 369 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: arJV_mtc = & !! a coefficient of the linear regression (a+bT) defining the Jmax25/Vcmax25 ratio (mu mol e- (mu mol CO2)-1) 284 370 & (/undef, 2.59, 2.59, 2.59, 2.59, 2.59, 2.59, & !! See Table 3 of Kattge & Knorr (2007) 285 & 2.59, 2.59, 2.59, 1.715, 2.59, 1.715 /) !! For C4 plants, we assume that there is no371 & 2.59, 2.59, 2.59, 1.715, 2.59, 1.715, 2.59 /) !! For C4 plants, we assume that there is no 286 372 !! acclimation and that for a temperature of 25°C, aSV is the same for both C4 and C3 plants (no strong jusitification - need further parametrization) 287 373 288 374 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: brJV_mtc = & !! b coefficient of the linear regression (a+bT) defining the Jmax25/Vcmax25 ratio ((mu mol e- (mu mol CO2)-1) (°C)-1) 289 375 & (/undef, -0.035, -0.035, -0.035, -0.035, -0.035, -0.035, & !! See Table 3 of Kattge & Knorr (2007) 290 & -0.035, -0.035, -0.035, 0., -0.035, 0. /) !! We assume No acclimation term for C4 plants376 & -0.035, -0.035, -0.035, 0., -0.035, 0., -0.035 /) !! We assume No acclimation term for C4 plants 291 377 292 378 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: KmC25_mtc = & !! MichaelisâMenten constant of Rubisco for CO2 at 25°C (ubar) 293 379 & (/undef, 404.9, 404.9, 404.9, 404.9, 404.9, 404.9, & !! See Table 2 of Yin et al. (2009) for C4 294 & 404.9, 404.9, 404.9, 650., 404.9, 650. /) !! and Medlyn et al (2002) for C3380 & 404.9, 404.9, 404.9, 650., 404.9, 650., 404.9 /) !! and Medlyn et al (2002) for C3 295 381 296 382 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: KmO25_mtc = & !! MichaelisâMenten constant of Rubisco for O2 at 25°C (ubar) 297 383 & (/undef, 278400., 278400., 278400., 278400., 278400., 278400., & !! See Table 2 of Yin et al. (2009) for C4 plants and Medlyn et al. (2002) for C3 298 & 278400., 278400., 278400., 450000., 278400., 450000. /) 384 & 278400., 278400., 278400., 450000., 278400., 450000., 278400. /) 385 386 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: Sco25_mtc = & !! Relative CO2 /O2 specificity factor for Rubisco at 25???¡ã(bar bar-1) 387 & (/undef, 2800., 2800., 2800., 2800., 2800., 2800., & !! See Table 2 of Yin et al. (2009) 388 & 2800., 2800., 2800., 2590., 2800., 2590., 2800. /) 389 390 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: gm25_mtc = & !! Mesophyll diffusion conductance at 25???¡ã(mol m-2 s-1 bar-1) 391 & (/undef, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, & !! See legend of Figure 6 of Yin et al. (2009) 392 & 0.4, 0.4, 0.4, undef, 0.4, undef, 0.4 /) !! and review by Flexas et al. (2008) - gm is not used for C4 plants 299 393 300 394 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: gamma_star25_mtc = & !! Ci-based CO2 compensation point in the absence of Rd at 25°C (ubar) 301 395 & (/undef, 42.75, 42.75, 42.75, 42.75, 42.75, 42.75, & !! See Medlyn et al. (2002) for C3 plants - For C4 plants, we use the same value (probably uncorrect) 302 & 42.75, 42.75, 42.75, 42.75, 42.75, 42.75 /)396 & 42.75, 42.75, 42.75, 42.75, 42.75, 42.75, 42.75 /) 303 397 304 398 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: a1_mtc = & !! Empirical factor involved in the calculation of fvpd (-) 305 399 & (/undef, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, & !! See Table 2 of Yin et al. (2009) 306 & 0.85, 0.85, 0.85, 0.85, 0. 85, 0.85/)400 & 0.85, 0.85, 0.85, 0.85, 0.72, 0.85, 0.72 /) 307 401 308 402 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: b1_mtc = & !! Empirical factor involved in the calculation of fvpd (-) 309 403 & (/undef, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, & !! See Table 2 of Yin et al. (2009) 310 & 0.14, 0.14, 0.14, 0.20, 0.14, 0.20 /)404 & 0.14, 0.14, 0.14, 0.20, 0.14, 0.20, 0.14 /) 311 405 312 406 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: g0_mtc = & !! Residual stomatal conductance when irradiance approaches zero (mol CO2 mâ2 sâ1 barâ1) 313 407 & (/undef, 0.00625, 0.00625, 0.00625, 0.00625, 0.00625, 0.00625, & !! Value from ORCHIDEE - No other reference. 314 & 0.00625, 0.00625, 0.00625, 0.01875, 0.00625, 0.01875 /) !! modofy to account for the conversion for conductance to H2O to CO2408 & 0.00625, 0.00625, 0.00625, 0.01875, 0.00625, 0.01875, 0.00625 /) !! modofy to account for the conversion for conductance to H2O to CO2 315 409 316 410 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: h_protons_mtc = & !! Number of protons required to produce one ATP (mol mol-1) 317 411 & (/undef, 4., 4., 4., 4., 4., 4., & !! See Table 2 of Yin et al. (2009) - h parameter 318 & 4., 4., 4., 4., 4., 4. /)412 & 4., 4., 4., 4., 4., 4., 4. /) 319 413 320 414 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: fpsir_mtc = & !! Fraction of PSII eâ transport rate 321 415 & (/undef, undef, undef, undef, undef, undef, undef, & !! partitioned to the C4 cycle (-) 322 & undef, undef, undef, 0.4, undef, 0.4 /) !! See Table 2 of Yin et al. (2009) - x parameter416 & undef, undef, undef, 0.4, undef, 0.4, undef /) !! See Table 2 of Yin et al. (2009) - x parameter 323 417 324 418 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: fQ_mtc = & !! Fraction of electrons at reduced plastoquinone 325 419 & (/undef, undef, undef, undef, undef, undef, undef, & !! that follow the Q-cycle (-) - Values for C3 platns are not used 326 & undef, undef, undef, 1., undef, 1. /) !! See Table 2 of Yin et al. (2009)420 & undef, undef, undef, 1., undef, 1., undef /) !! See Table 2 of Yin et al. (2009) 327 421 328 422 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: fpseudo_mtc = & !! Fraction of electrons at PSI that follow 329 423 & (/undef, undef, undef, undef, undef, undef, undef, & !! pseudocyclic transport (-) - Values for C3 platns are not used 330 & undef, undef, undef, 0.1, undef, 0.1 /) !! See Table 2 of Yin et al. (2009)424 & undef, undef, undef, 0.1, undef, 0.1, undef /) !! See Table 2 of Yin et al. (2009) 331 425 332 426 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: kp_mtc = & !! Initial carboxylation efficiency of the PEP carboxylase (mol mâ2 sâ1 barâ1) 333 427 & (/undef, undef, undef, undef, undef, undef, undef, & !! See Table 2 of Yin et al. (2009) 334 & undef, undef, undef, 0.7, undef, 0.7 /)428 & undef, undef, undef, 0.7, undef, 0.7, undef /) 335 429 336 430 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: alpha_mtc = & !! Fraction of PSII activity in the bundle sheath (-) 337 431 & (/undef, undef, undef, undef, undef, undef, undef, & !! See legend of Figure 6 of Yin et al. (2009) 338 & undef, undef, undef, 0.1, undef, 0.1 /)432 & undef, undef, undef, 0.1, undef, 0.1, undef /) 339 433 340 434 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: gbs_mtc = & !! Bundle-sheath conductance (mol mâ2 sâ1 barâ1) 341 435 & (/undef, undef, undef, undef, undef, undef, undef, & !! See legend of Figure 6 of Yin et al. (2009) 342 & undef, undef, undef, 0.003, undef, 0.003 /)436 & undef, undef, undef, 0.003, undef, 0.003, undef /) 343 437 344 438 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: theta_mtc = & !! Convexity factor for response of J to irradiance (-) 345 439 & (/undef, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, & !! See Table 2 of Yin et al. (2009) 346 & 0.7, 0.7, 0.7, 0.7, 0.7, 0.7 /)440 & 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7 /) 347 441 348 442 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: alpha_LL_mtc = & !! Conversion efficiency of absorbed light into J at strictly limiting light (mol eâ (mol photon)â1) 349 443 & (/undef, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, & !! See comment from Yin et al. (2009) after eq. 4 350 & 0.3, 0.3, 0.3, 0.3, 0.3, 0.3 /) !! alpha value from Medlyn et al. (2002)444 & 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3 /) !! alpha value from Medlyn et al. (2002) 351 445 !! 0.093 mol CO2 fixed per mol absorbed photons 352 446 !! times 4 mol e- per mol CO2 produced 447 448 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: stress_vcmax_mtc = & !! Water stress on vcmax 449 & (/ 1., 1., 1., 1., 1., 1., 1., & 450 & 1., 1., 1., 1., 1., 1. , 1. /) 451 452 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: stress_gs_mtc = & !! Water stress on gs 453 & (/ 0., 0., 0., 0., 0., 0., 0., & 454 & 0., 0., 0., 0., 0., 0. , 0. /) 455 456 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: stress_gm_mtc = & !! Water stress on gm 457 & (/ 0., 0., 0., 0., 0., 0., 0., & 458 & 0., 0., 0., 0., 0., 0. , 0. /) 353 459 354 460 !- … … 357 463 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: ext_coeff_mtc = & !! extinction coefficient of the Monsi&Saeki 358 464 & (/ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, & !! relationship (1953) (unitless) 359 & 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 /)465 & 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 /) 360 466 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: ext_coeff_vegetfrac_mtc = & !! extinction coefficient used for defining the fraction 361 467 & (/ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, & !! of bare soil (unitless) 362 & 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 /)468 & 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 /) 363 469 364 470 ! … … 367 473 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: R0_mtc = & !! Default root allocation (0-1, unitless) 368 474 & (/ undef, 0.30, 0.30, 0.30, 0.30, 0.30, 0.30, & 369 & 0.30, 0.30, 0.30, 0.30, 0.30, 0.30 /)475 & 0.30, 0.30, 0.30, 0.30, 0.30, 0.30, 0.30 /) 370 476 371 477 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: S0_mtc = & !! Default sapwood allocation (0-1, unitless) 372 478 & (/ undef, 0.25, 0.25, 0.30, 0.30, 0.30, 0.30, & 373 & 0.30, 0.30, 0.30, 0.30, 0.30, 0.30 /)479 & 0.30, 0.30, 0.30, 0.30, 0.30, 0.30, 0.30 /) 374 480 375 481 ! … … 378 484 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: frac_growthresp_mtc = & !! fraction of GPP which is lost as growth respiration 379 485 & (/ undef, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, & 380 & 0.28, 0.28, 0.28, 0.28, 0.28, 0.28 /)486 & 0.28, 0.28, 0.28, 0.28, 0.28, 0.28, 0.28 /) 381 487 382 488 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: maint_resp_slope_c_mtc = & !! slope of maintenance respiration coefficient (1/K), 383 489 & (/ undef, 0.20, 0.20, 0.16, 0.16, 0.16, 0.16, & !! constant c of aT^2+bT+c, tabulated 384 & 0.16, 0.16, 0.16, 0.12, 0.16, 0.12 /)490 & 0.16, 0.16, 0.16, 0.12, 0.16, 0.12, 0.16 /) 385 491 386 492 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: maint_resp_slope_b_mtc = & !! slope of maintenance respiration coefficient (1/K), 387 493 & (/ undef, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & !! constant b of aT^2+bT+c, tabulated 388 & 0.0, 0.0, -0.00133, 0.0, -0.00133, 0.0 /)494 & 0.0, 0.0, -0.00133, 0.0, -0.00133, 0.0, -0.00133 /) 389 495 390 496 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: maint_resp_slope_a_mtc = & !! slope of maintenance respiration coefficient (1/K), 391 497 & (/ undef, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & !! constant a of aT^2+bT+c, tabulated 392 & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 /)498 & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 /) 393 499 394 500 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: cm_zero_leaf_mtc = & !! maintenance respiration coefficient 395 501 & (/ undef, 2.35E-3, 2.62E-3, 1.01E-3, 2.35E-3, 2.62E-3, 1.01E-3, & !! at 0 deg C,for leaves, tabulated, 396 & 2.62E-3, 2.05E-3, 2.62E-3, 2.62E-3, 2.62E-3, 2.62E-3 /)!! @tex $(gC.gC^{-1}.day^{-1})$ @endtex502 & 2.62E-3, 2.05E-3, 2.62E-3, 2.62E-3, 2.62E-3, 2.62E-3, 2.62E-3 /) !! @tex $(gC.gC^{-1}.day^{-1})$ @endtex 397 503 398 504 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: cm_zero_sapabove_mtc = & !! maintenance respiration coefficient 399 505 & (/ undef, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, & !! at 0 deg C, for sapwood above, 400 & 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4 /)!! tabulated, @tex $(gC.gC^{-1}.day^{-1})$ @endtex506 & 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4 /) !! tabulated, @tex $(gC.gC^{-1}.day^{-1})$ @endtex 401 507 402 508 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: cm_zero_sapbelow_mtc = & !! maintenance respiration coefficient 403 509 & (/ undef, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, & !! at 0 deg C, for sapwood below, 404 & 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4 /) !! tabulated, @tex $(gC.gC^{-1}.day^{-1})$ @endtex510 & 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4 /) !! tabulated, @tex $(gC.gC^{-1}.day^{-1})$ @endtex 405 511 406 512 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: cm_zero_heartabove_mtc = & !! maintenance respiration coefficient 407 513 & (/ undef, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & !! at 0 deg C, for heartwood above, 408 & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 /) !! tabulated, @tex $(gC.gC^{-1}.day^{-1})$ @endtex514 & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 /) !! tabulated, @tex $(gC.gC^{-1}.day^{-1})$ @endtex 409 515 410 516 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: cm_zero_heartbelow_mtc = & !! maintenance respiration coefficient 411 517 & (/ undef, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & !! at 0 deg C, for heartwood below, 412 & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 /) !! tabulated, @tex $(gC.gC^{-1}.day^{-1})$ @endtex518 & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 /) !! tabulated, @tex $(gC.gC^{-1}.day^{-1})$ @endtex 413 519 414 520 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: cm_zero_root_mtc = & !! maintenance respiration coefficient 415 521 & (/ undef, 1.67E-3, 1.67E-3, 1.67E-3, 1.67E-3, 1.67E-3, 1.67E-3, & !! at 0 deg C, for roots, tabulated, 416 & 1.67E-3, 1.67E-3, 1.67E-3, 1.67E-3, 1.67E-3, 1.67E-3 /) !! @tex $(gC.gC^{-1}.day^{-1})$ @endtex522 & 1.67E-3, 1.67E-3, 1.67E-3, 1.67E-3, 1.67E-3, 1.67E-3, 1.67E-3 /) !! @tex $(gC.gC^{-1}.day^{-1})$ @endtex 417 523 418 524 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: cm_zero_fruit_mtc = & !! maintenance respiration coefficient 419 525 & (/ undef, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, & !! at 0 deg C, for fruits, tabulated, 420 & 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4 /) !! @tex $(gC.gC^{-1}.day^{-1})$ @endtex526 & 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4 /) !! @tex $(gC.gC^{-1}.day^{-1})$ @endtex 421 527 422 528 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: cm_zero_carbres_mtc = & !! maintenance respiration coefficient 423 529 & (/ undef, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, & !! at 0 deg C, for carbohydrate reserve, 424 & 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4 /) !! tabulated, @tex $(gC.gC^{-1}.day^{-1})$ @endtex530 & 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4 /) !! tabulated, @tex $(gC.gC^{-1}.day^{-1})$ @endtex 425 531 426 532 … … 430 536 REAL(r_std),PARAMETER, DIMENSION(nvmc) :: flam_mtc = & !! flamability: critical fraction of water 431 537 & (/ undef, 0.15, 0.25, 0.25, 0.25, 0.25, 0.25, & !! holding capacity (0-1, unitless) 432 & 0.25, 0.25, 0.25, 0.25, 0.35, 0.35 /)538 & 0.25, 0.25, 0.25, 0.25, 0.35, 0.35, 0.35 /) 433 539 434 540 REAL(r_std),PARAMETER, DIMENSION(nvmc) :: resist_mtc = & !! fire resistance (0-1, unitless) 435 541 & (/ undef, 0.95, 0.90, 0.90, 0.90, 0.90, 0.90, & 436 & 0.90, 0.90, 0.0, 0.0, 0.0, 0.0 /) 437 542 & 0.90, 0.90, 0.0, 0.0, 0.0, 0.0, 0.0 /) 543 544 !spitfire 545 ! dens_fuel : fuel bulk density 546 REAL(r_std), SAVE, DIMENSION(nvmc) :: dens_fuel_mtc = (/0.0, 25., 25., 25., 10., 22., 25., & !!kgm^{-3} 547 22., 22., 2., 2., 2., 2., 2. /) 548 ! f_SH : scorch height parameter for crown fire 549 REAL(r_std), SAVE, DIMENSION(nvmc) :: f_sh_mtc = (/ 0.0, 0.1487, 0.061, 0.1, 0.371, 0.094, 0.11, & 550 0.094, 0.094, 0., 0., 0., 0., 0. /) 551 ! crown_length : crown length 552 REAL(r_std), SAVE, DIMENSION(nvmc) :: crown_length_mtc = (/ 0.0, 0.3334, 0.10, 0.3334, 0.3334, 0.3334, 0.6667, & 553 0.3334, 0.3334, 0., 0., 0., 0., 0. /) 554 ! param1 : Bark thickness parameter 555 REAL(r_std), SAVE, DIMENSION(nvmc) :: BTpar1_mtc = (/ 0.0, 0.0301, 0.1085, 0.0670, 0.0451, 0.0347, 0.0292, & 556 0.0347, 0.0347, 0., 0., 0., 0., 0. /) 557 ! param2 : Bark thickness parameter 558 REAL(r_std) , SAVE, DIMENSION(nvmc) :: BTpar2_mtc = (/ 0.0, 0.0281, 0.212, 0.5590, 0.1412, 0.1086, 0.2632, & 559 0.1086, 0.1086, 0., 0., 0., 0., 0. /) 560 ! r_ck and p_ck parameter for postfire mortality as a result of crown damage 561 ! r_ck 562 REAL(r_std), SAVE, DIMENSION(nvmc) :: r_ck_mtc = (/ 0.0, 0.95, 0.05, 0.95, 0.95, 0.95, 0.95, & 563 0.95, 0.95, 0., 0., 0., 0., 0. /) 564 ! p_ck 565 REAL(r_std), SAVE, DIMENSION(nvmc) :: p_ck_mtc = (/ 0.0, 3., 3., 3.75, 3., 3., 3., & 566 3., 3., 0., 0., 0., 0., 0. /) 567 ! emissions factors, unit: g/(kg dry mass burned) 568 REAL(r_std) , SAVE, DIMENSION(nvmc) :: ef_CO2_mtc = (/ 0.0, 1580., 1664., 1568., 1568., 1568., 1568., & 569 1568., 1568., 1568., 1664., 1568., 1664., 1568. /) 570 REAL(r_std) , SAVE, DIMENSION(nvmc) :: ef_CO_mtc = (/ 0.0, 103., 63., 106., 106., 106., 106., & 571 106., 106., 106., 63., 106., 63., 106. /) 572 REAL(r_std) , SAVE, DIMENSION(nvmc) :: ef_CH4_mtc = (/ 0.0, 6.8, 2.2, 4.8, 4.8, 4.8, 4.8, & 573 4.8, 4.8, 4.8, 2.2, 4.8, 2.2, 4.8 /) 574 REAL(r_std) , SAVE, DIMENSION(nvmc) :: ef_VOC_mtc = (/ 0.0, 8.1, 3.4, 5.7, 5.7, 5.7, 5.7, & 575 5.7, 5.7, 5.7, 3.4, 5.7, 3.4, 5.7 /) 576 REAL(r_std) , SAVE, DIMENSION(nvmc) :: ef_TPM_mtc = (/ 0.0, 8.5, 8.5, 17.6, 17.6, 17.6, 17.6, & 577 17.6, 17.6, 17.6, 8.5, 17.6, 8.5, 17.6 /) 578 REAL(r_std) , SAVE, DIMENSION(nvmc) :: ef_NOx_mtc = (/ 0.0, 1.999, 2.54, 3.24, 3.24, 3.24, 3.24, & 579 3.24, 3.24, 3.24, 2.54, 3.24, 2.54, 3.24 /) 580 ! me : flammability threshold 581 REAL(r_std) , SAVE, DIMENSION(nvmc) :: me_mtc = (/ 1.0, 0.2, 0.3, 0.3, 0.3, 0.3, 0.35, & 582 0.35, 0.35, 0.2, 0.2, 0.2, 0.2, 0.2 /) 583 584 ! ! Maximum combustion fraction for 100hr and 1000hr fuel for different PFTs. 585 ! REAL(r_std) , SAVE, DIMENSION(nvmc) :: fire_max_cf_mtc = (/ 0.0, 0.48, 0.48, 0.45, 0.45, 0.45, 0.41, & 586 ! 0.41, 0.41, 0.85, 0.85, 0.35, 0.35, 0.35 /) 587 !! The 100hr and 1000hr maximum CCs are from Table 2 of Leeuwen et al. (2014), 588 !! with 100hr corresponding to woody debris of 2.55-7.6cm and 1000hr corresponding 589 !! to woody debris of 7.2-20.5cm. The CCs for tropical tress are taken from 590 !! Table 2 (b); The CCs for temperate trees are taken from Table 2 (c). As the 591 !! The equivalent CCs for woody debris were not reported for boreal forests in 592 !! Table 2 (d), we tentatively use those for temperate forests. The CCs for grassland 593 !! are taken from Table 3 by averaging the CCs for savanna and Grassland savanna 594 !! as we don't make distinction between savanna and Grassland savanna in our model 595 !! yet. The CCs for crops are set tentatively as zero to indicate the fact that 596 !! cropland fires are not simulated in the model. 597 REAL(r_std) , SAVE, DIMENSION(nvmc) :: fire_max_cf_100hr_mtc = (/ 0.0, 0.65, 0.65, 0.73, 0.73, 0.73, 0.73, & 598 0.73, 0.73, 0.76, 0.76, 0., 0., 0. /) 599 REAL(r_std) , SAVE, DIMENSION(nvmc) :: fire_max_cf_1000hr_mtc = (/ 0.0, 0.41, 0.41, 0.38, 0.38, 0.38, 0.38, & 600 0.38, 0.38, 0.76, 0.76, 0., 0., 0. /) 601 602 603 !endspit 438 604 439 605 ! … … 442 608 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: coeff_lcchange_1_mtc = & !! Coeff of biomass export for the year 443 609 & (/ undef, 0.897, 0.897, 0.597, 0.597, 0.597, 0.597, & !! (0-1, unitless) 444 & 0.597, 0.597, 0.597, 0.597, 0.597, 0.597 /)610 & 0.597, 0.597, 0.597, 0.597, 0.597, 0.597, 0.597 /) 445 611 446 612 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: coeff_lcchange_10_mtc = & !! Coeff of biomass export for the decade 447 613 & (/ undef, 0.103, 0.103, 0.299, 0.299, 0.299, 0.299, & !! (0-1, unitless) 448 & 0.299, 0.299, 0.299, 0.403, 0.299, 0.403 /)614 & 0.299, 0.299, 0.299, 0.403, 0.299, 0.403, 0.299 /) 449 615 450 616 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: coeff_lcchange_100_mtc = & !! Coeff of biomass export for the century 451 617 & (/ undef, 0.0, 0.0, 0.104, 0.104, 0.104, 0.104, & !! (0-1, unitless) 452 & 0.104, 0.104, 0.104, 0.0, 0.104, 0.0 /) 453 618 & 0.104, 0.104, 0.104, 0.0, 0.104, 0.0, 0.104 /) 619 620 621 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: coeff_indwood_1_mtc = & !! Coeff of biomass export for the year 622 & (/ undef, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & !! (0-1, unitless) 623 & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 /) 624 625 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: coeff_indwood_10_mtc = & !! Coeff of biomass export for the decade 626 & (/ undef, 0.105, 0.105, 0.19, 0.19, 0.19, 0.19, & !! (0-1, unitless) 627 & 0.19, 0.19, 0.0, 0.0, 0.0, 0.0, 0.0 /) 628 629 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: coeff_indwood_100_mtc = & !! Coeff of biomass export for the century 630 & (/ undef, 0.526, 0.526, 0.473, 0.473, 0.473, 0.473, & !! (0-1, unitless) 631 & 0.473, 0.473, 0.0, 0.0, 0.0, 0.0, 0.0 /) 454 632 455 633 ! 456 634 ! PHENOLOGY 457 635 ! 636 ! The latest modifications regarding leafagecrit, senescence_temp_c, leaffall, hum_min_time and nosenescence_hum are inspired by 637 ! MacBean et al. (2015), following the optimization of phenology parameters using MODIS NDVI (FM/PP). 458 638 !- 459 639 ! 1. Stomate … … 461 641 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: lai_max_to_happy_mtc = & !! threshold of LAI below which plant uses carbohydrate reserves 462 642 & (/ undef, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, & 463 & 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 /)643 & 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 /) 464 644 465 645 REAL(r_std), PARAMETER, DIMENSION (nvmc) :: lai_max_mtc = & !! maximum LAI, PFT-specific 466 646 & (/ undef, 7.0, 7.0, 5.0, 5.0, 5.0, 4.5, & !! @tex $(m^2.m^{-2})$ @endtex 467 & 4.5, 3.0, 2.5, 2.5, 5.0, 5.0 /)647 & 4.5, 3.0, 2.5, 2.5, 5.0, 5.0, 5.0 /) 468 648 469 649 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: pheno_type_mtc = & !! type of phenology (0-4, unitless) 470 650 & (/ 0, 1, 3, 1, 1, 2, 1, & !! 0=bare ground 1=evergreen, 2=summergreen, 471 & 2, 2, 4, 4, 2, 3 /) !! 3=raingreen, 4=perennial651 & 2, 2, 4, 4, 2, 3, 2 /) !! 3=raingreen, 4=perennial 472 652 !- 473 653 ! 2. Leaf Onset … … 475 655 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: pheno_gdd_crit_c_mtc = & !! critical gdd, tabulated (C), 476 656 & (/ undef, undef, undef, undef, undef, undef, undef, & !! constant c of aT^2+bT+c 477 & undef, undef, 320.0, 400.0, 320.0, 700.0 /)657 & undef, undef, 320.0, 400.0, 320.0, 700.0, 320.0 /) 478 658 479 659 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: pheno_gdd_crit_b_mtc = & !! critical gdd, tabulated (C), 480 660 & (/ undef, undef, undef, undef, undef, undef, undef, & !! constant b of aT^2+bT+c 481 & undef, undef, 6.25, 0.0, 6.25, 0.0 /)661 & undef, undef, 6.25, 0.0, 6.25, 0.0, 6.25 /) 482 662 483 663 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: pheno_gdd_crit_a_mtc = & !! critical gdd, tabulated (C), 484 664 & (/ undef, undef, undef, undef, undef, undef, undef, & !! constant a of aT^2+bT+c 485 & undef, undef, 0.03125, 0.0, 0.0315, 0.0 /)665 & undef, undef, 0.03125, 0.0, 0.0315, 0.0, 0.0315 /) 486 666 487 667 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: pheno_moigdd_t_crit_mtc = & !! temperature threshold for C4 grass(C) 488 668 & (/ undef, undef, undef, undef, undef, undef, undef, & 489 & undef, undef, undef, 22.0, undef, undef /)669 & undef, undef, undef, 22.0, undef, undef, undef /) 490 670 491 671 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: ngd_crit_mtc = & !! critical ngd, tabulated. 492 672 & (/ undef, undef, undef, undef, undef, undef, undef, & !! Threshold -5 degrees (days) 493 & undef, 17.0, undef, undef, undef, undef /)673 & undef, 17.0, undef, undef, undef, undef, undef /) 494 674 495 675 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: ncdgdd_temp_mtc = & !! critical temperature for the ncd vs. gdd 496 676 & (/ undef, undef, undef, undef, undef, 5.0, undef, & !! function in phenology (C) 497 & 0.0, undef, undef, undef, undef, undef /)677 & 0.0, undef, undef, undef, undef, undef, undef /) 498 678 499 679 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: hum_frac_mtc = & !! critical humidity (relative to min/max) 500 680 & (/ undef, undef, 0.5, undef, undef, undef, undef, & !! for phenology (unitless) 501 & undef, undef, 0.5, 0.5, 0.5, 0.5 /)681 & undef, undef, 0.5, 0.5, 0.5, 0.5, 0.5 /) 502 682 503 683 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: hum_min_time_mtc = & !! minimum time elapsed since 504 684 & (/ undef, undef, 50.0, undef, undef, undef, undef, & !! moisture minimum (days) 505 & undef, undef, 3 5.0, 35.0, 75.0,75.0 /)685 & undef, undef, 36.0, 35.0, 75.0, 75.0, 75.0 /) 506 686 507 687 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: tau_sap_mtc = & !! time (days) 508 688 & (/ undef, 730.0, 730.0, 730.0, 730.0, 730.0, 730.0, & 509 & 730.0, 730.0, undef, undef, undef, undef /)689 & 730.0, 730.0, undef, undef, undef, undef, undef /) 510 690 511 691 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: tau_leafinit_mtc = & !! time to attain the initial foliage using the carbohydrate reserve 512 692 & (/ undef, 10., 10., 10., 10., 10., 10., & 513 & 10., 10., 10., 10., 10., 10. /)693 & 10., 10., 10., 10., 10., 10., 10. /) 514 694 515 695 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: tau_fruit_mtc = & !! fruit lifetime (days) 516 696 & (/ undef, 90.0, 90.0, 90.0, 90.0, 90.0, 90.0, & 517 & 90.0, 90.0, undef, undef, undef, undef /)697 & 90.0, 90.0, undef, undef, undef, undef, undef /) 518 698 519 699 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: ecureuil_mtc = & !! fraction of primary leaf and root allocation 520 700 & (/ undef, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, & !! put into reserve (0-1, unitless) 521 & 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 /)701 & 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 /) 522 702 523 703 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: alloc_min_mtc = & !! NEW - allocation above/below = f(age) 524 704 & (/ undef, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, & !! - 30/01/04 NV/JO/PF 525 & 0.2, 0.2, undef, undef, undef, undef /)705 & 0.2, 0.2, undef, undef, undef, undef, undef /) 526 706 527 707 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: alloc_max_mtc = & !! NEW - allocation above/below = f(age) 528 708 & (/ undef, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, & !! - 30/01/04 NV/JO/PF 529 & 0.8, 0.8, undef, undef, undef, undef /)709 & 0.8, 0.8, undef, undef, undef, undef, undef /) 530 710 531 711 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: demi_alloc_mtc = & !! NEW - allocation above/below = f(age) 532 712 & (/ undef, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, & !! - 30/01/04 NV/JO/PF 533 & 5.0, 5.0, undef, undef, undef, undef /)713 & 5.0, 5.0, undef, undef, undef, undef, undef /) 534 714 535 715 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: leaflife_mtc = & !! leaf longevity, tabulated (??units??) 536 716 & (/ undef, 0.5, 2.0, 0.33, 1.0, 2.0, 0.33, & 537 & 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 /)717 & 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 /) 538 718 !- 539 719 ! 3. Senescence 540 720 !- 541 721 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: leaffall_mtc = & !! length of death of leaves, tabulated (days) 542 & (/ undef, undef, 10.0, undef, undef, 10.0, undef, &543 & 10.0, 10.0, 10.0, 10.0,10.0, 10.0 /)722 & (/ undef, undef, 10.0, undef, undef, 30.0, undef, & 723 & 5.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0 /) 544 724 545 725 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: leafagecrit_mtc = & !! critical leaf age, tabulated (days) 546 & (/ undef, 730.0, 180.0, 910.0, 730.0, 1 80.0, 910.0, &547 & 180.0, 180.0, 120.0, 120.0, 90.0,90.0 /)726 & (/ undef, 730.0, 180.0, 910.0, 730.0, 160.0, 910.0, & 727 & 220.0, 120.0, 80.0, 120.0, 90.0, 90.0, 90.0 /) 548 728 549 729 CHARACTER(LEN=6), PARAMETER, DIMENSION(nvmc) :: senescence_type_mtc = & !! type of senescence, tabulated (unitless) 550 730 & (/ 'none ', 'none ', 'dry ', 'none ', 'none ', & 551 731 & 'cold ', 'none ', 'cold ', 'cold ', 'mixed ', & 552 & 'mixed ', 'mixed ', 'mixed ' /)732 & 'mixed ', 'mixed ', 'mixed ', 'mixed ' /) 553 733 554 734 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: senescence_hum_mtc = & !! critical relative moisture availability 555 735 & (/ undef, undef, 0.3, undef, undef, undef, undef, & !! for senescence (0-1, unitless) 556 & undef, undef, 0.2, 0.2, 0.3, 0.2 /)736 & undef, undef, 0.2, 0.2, 0.3, 0.2, 0.3 /) 557 737 558 738 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: nosenescence_hum_mtc = & !! relative moisture availability above which 559 739 & (/ undef, undef, 0.8, undef, undef, undef, undef, & !! there is no humidity-related senescence 560 & undef, undef, 0. 3, 0.3, 0.3,0.3 /) !! (0-1, unitless)740 & undef, undef, 0.6, 0.3, 0.3, 0.3, 0.3 /) !! (0-1, unitless) 561 741 562 742 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: max_turnover_time_mtc = & !! maximum turnover time for grasses (days) 563 743 & (/ undef, undef, undef, undef, undef, undef, undef, & 564 & undef, undef, 80.0, 80.0, 80.0, 80.0 /)744 & undef, undef, 80.0, 80.0, 80.0, 80.0, 80.0 /) 565 745 566 746 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: min_turnover_time_mtc = & !! minimum turnover time for grasses (days) 567 747 & (/ undef, undef, undef, undef, undef, undef, undef, & 568 & undef, undef, 10.0, 10.0, 10.0, 10.0 /)748 & undef, undef, 10.0, 10.0, 10.0, 10.0, 10.0 /) 569 749 570 750 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: min_leaf_age_for_senescence_mtc = & !! minimum leaf age to allow 571 751 & (/ undef, undef, 90.0, undef, undef, 90.0, undef, & !! senescence g (days) 572 & 60.0, 60.0, 30.0, 30.0, 30.0, 30.0 /)752 & 60.0, 60.0, 30.0, 30.0, 30.0, 30.0, 30.0 /) 573 753 574 754 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: senescence_temp_c_mtc = & !! critical temperature for senescence (C) 575 & (/ undef, undef, undef, undef, undef, 12.0, undef, & !! constant c of aT^2+bT+c, tabulated576 & 7.0, 2.0, -1.375, 5.0, 5.0, 10.0 /) !! (unitless)755 & (/ undef, undef, undef, undef, undef, 16.0, undef, & !! constant c of aT^2+bT+c, tabulated 756 & 14.0, 10.0, 5.0, 5.0, 5.0, 10.0, 5.0 /) !! (unitless) 577 757 578 758 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: senescence_temp_b_mtc = & !! critical temperature for senescence (C), 579 759 & (/ undef, undef, undef, undef, undef, 0.0, undef, & !! constant b of aT^2+bT+c, tabulated 580 & 0.0, 0.0, 0.1, 0.0, 0.0, 0.0 /) !! (unitless)760 & 0.0, 0.0, 0.1, 0.0, 0.0, 0.0, 0.0 /) !! (unitless) 581 761 582 762 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: senescence_temp_a_mtc = & !! critical temperature for senescence (C), 583 763 & (/ undef, undef, undef, undef, undef, 0.0, undef, & !! constant a of aT^2+bT+c, tabulated 584 & 0.0, 0.0, 0.00375, 0.0, 0.0, 0.0 /) !! (unitless)764 & 0.0, 0.0, 0.00375, 0.0, 0.0, 0.0, 0.0 /) !! (unitless) 585 765 586 766 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: gdd_senescence_mtc = & !! minimum gdd to allow senescence of crops (days) 587 767 & (/ undef, undef, undef, undef, undef, undef, undef, & 588 & undef, undef, undef, undef, 950., 4000. /)768 & undef, undef, undef, undef, 950., 4000., 950. /) 589 769 590 770 … … 594 774 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: residence_time_mtc = & !! residence time of trees (years) 595 775 & (/ undef, 30.0, 30.0, 40.0, 40.0, 40.0, 80.0, & 596 & 80.0, 80.0, 0.0, 0.0, 0.0, 0.0 /)776 & 80.0, 80.0, 0.0, 0.0, 0.0, 0.0, 0.0 /) 597 777 598 778 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: tmin_crit_mtc = & 599 779 & (/ undef, 0.0, 0.0, -30.0, -14.0, -30.0, -45.0, & !! critical tmin, tabulated (C) 600 & -45.0, undef, undef, undef, undef, undef /)780 & -45.0, -60.0, undef, undef, undef, undef, undef /) 601 781 602 782 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: tcm_crit_mtc = & 603 783 & (/ undef, undef, undef, 5.0, 15.5, 15.5, -8.0, & !! critical tcm, tabulated (C) 604 & -8.0, -8.0, undef, undef, undef, undef /)784 & -8.0, -8.0, undef, undef, undef, undef, undef /) 605 785 606 786 … … 611 791 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_isoprene_mtc = & !! Isoprene emission factor 612 792 & (/ 0., 24., 24., 8., 16., 45., 8., & !! 613 & 18., 0.5, 12., 18., 5., 5. /)793 & 18., 0.5, 12., 18., 5., 5., 5. /) 614 794 615 795 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_monoterpene_mtc = & !! Monoterpene emission factor 616 796 & (/ 0., 2.0, 2.0, 1.8, 1.4, 1.6, 1.8, & !! @tex $(\mu gC.g^{-1}.h^{-1})$ @endtex 617 & 1.4, 1.8, 0.8, 0.8, 0.22, 0.22 /)797 & 1.4, 1.8, 0.8, 0.8, 0.22, 0.22, 0.22 /) 618 798 619 799 REAL(r_std), PARAMETER :: LDF_mono_mtc = 0.6 !! monoterpenes fraction dependancy to light … … 624 804 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_apinene_mtc = & !! Alfa pinene emission factor percentage 625 805 & (/ 0., 0.395, 0.395, 0.354, 0.463, 0.326, 0.354, & !! ATTENTION: for each PFT they are PERCENTAGE of monoterpene EF 626 & 0.316, 0.662, 0.231, 0.200, 0.277, 0.277 /)806 & 0.316, 0.662, 0.231, 0.200, 0.277, 0.277, 0.277 /) 627 807 628 808 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_bpinene_mtc = & !! Beta pinene emission factor percentage 629 809 & (/ 0., 0.110, 0.110, 0.146, 0.122, 0.087, 0.146, & !! ATTENTION: for each PFT they are PERCENTAGE of monoterpene EF 630 & 0.063, 0.150, 0.123, 0.080, 0.154, 0.154 /)810 & 0.063, 0.150, 0.123, 0.080, 0.154, 0.154, 0.154 /) 631 811 632 812 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_limonene_mtc = & !! Limonene emission factor percentage 633 813 & (/ 0., 0.092, 0.092, 0.083, 0.122, 0.061, 0.083, & !! ATTENTION: for each PFT they are PERCENTAGE of monoterpene EF 634 & 0.071, 0.037, 0.146, 0.280, 0.092, 0.092 /)814 & 0.071, 0.037, 0.146, 0.280, 0.092, 0.092, 0.092 /) 635 815 636 816 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_myrcene_mtc = & !! Myrcene emission factor percentage 637 817 & (/ 0., 0.073, 0.073, 0.050, 0.054, 0.028, 0.050, & !! ATTENTION: for each PFT they are PERCENTAGE of monoterpene EF 638 & 0.019, 0.025, 0.062, 0.057, 0.046, 0.046 /)818 & 0.019, 0.025, 0.062, 0.057, 0.046, 0.046, 0.046 /) 639 819 640 820 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_sabinene_mtc = & !! Sabinene emission factor percentage 641 821 & (/ 0., 0.073, 0.073, 0.050, 0.083, 0.304, 0.050, & !! ATTENTION: for each PFT they are PERCENTAGE of monoterpene EF 642 & 0.263, 0.030, 0.065, 0.050, 0.062, 0.062 /)822 & 0.263, 0.030, 0.065, 0.050, 0.062, 0.062, 0.062 /) 643 823 644 824 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_camphene_mtc = & !! Camphene emission factor percentage 645 825 & (/ 0., 0.055, 0.055, 0.042, 0.049, 0.004, 0.042, & !! ATTENTION: for each PFT they are PERCENTAGE of monoterpene EF 646 & 0.005, 0.023, 0.054, 0.053, 0.031, 0.031 /)826 & 0.005, 0.023, 0.054, 0.053, 0.031, 0.031, 0.031 /) 647 827 648 828 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_3carene_mtc = & !! 3-carene emission factor percentage 649 829 & (/ 0., 0.048, 0.048, 0.175, 0.010, 0.024, 0.175, & !! ATTENTION: for each PFT they are PERCENTAGE of monoterpene EF 650 & 0.013, 0.042, 0.065, 0.057, 0.200, 0.200 /)830 & 0.013, 0.042, 0.065, 0.057, 0.200, 0.200, 0.200 /) 651 831 652 832 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_tbocimene_mtc = & !! T-beta-ocimene emission factor percentage 653 833 & (/ 0., 0.092, 0.092, 0.054, 0.044, 0.113, 0.054, & !! ATTENTION: for each PFT they are PERCENTAGE of monoterpene EF 654 & 0.105, 0.028, 0.138, 0.120, 0.031, 0.031 /)834 & 0.105, 0.028, 0.138, 0.120, 0.031, 0.031, 0.031 /) 655 835 656 836 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_othermonot_mtc = & !! Other monoterpenes emission factor percentage 657 837 & (/ 0., 0.062, 0.062, 0.046, 0.054, 0.052, 0.046, & !! ATTENTION: for each PFT they are PERCENTAGE of monoterpene EF 658 & 0.144, 0.003, 0.115, 0.103, 0.108, 0.108 /)838 & 0.144, 0.003, 0.115, 0.103, 0.108, 0.108, 0.108 /) 659 839 660 840 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_sesquiterp_mtc = & !! Sesquiterpene emission factor 661 841 & (/ 0., 0.45, 0.45, 0.13, 0.30, 0.36, 0.15, & !! @tex $(\mu gC.g^{-1}.h^{-1})$ @endtex 662 & 0.30, 0.25, 0.60, 0.60, 0.08, 0.08 /)842 & 0.30, 0.25, 0.60, 0.60, 0.08, 0.08, 0.08 /) 663 843 664 844 REAL(r_std), PARAMETER :: beta_mono_mtc = 0.10 !! Monoterpenes temperature dependency coefficient … … 671 851 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_ORVOC_mtc = & !! ORVOC emissions factor 672 852 & (/ 0., 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, & !! @tex $(\mu gC.g^{-1}.h^{-1})$ @endtex 673 & 1.5, 1.5, 1.5, 1.5, 1.5, 1.5 /)853 & 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5 /) 674 854 675 855 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_OVOC_mtc = & !! OVOC emissions factor 676 856 & (/ 0., 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, & !! @tex $(\mu gC.g^{-1}.h^{-1})$ @endtex 677 & 1.5, 1.5, 1.5, 1.5, 1.5, 1.5 /)857 & 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5 /) 678 858 679 859 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_MBO_mtc = & !! MBO emissions factor 680 860 & (/ 0., 2.e-5, 2.e-5, 1.4, 2.e-5, 2.e-5, 0.14, & !! @tex $(\mu gC.g^{-1}.h^{-1})$ @endtex 681 & 2.e-5, 2.e-5, 2.e-5, 2.e-5, 2.e-5, 2.e-5 /)861 & 2.e-5, 2.e-5, 2.e-5, 2.e-5, 2.e-5, 2.e-5, 2.e-5 /) 682 862 683 863 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_methanol_mtc = & !! Methanol emissions factor 684 864 & (/ 0., 0.8, 0.8, 1.8, 0.9, 1.9, 1.8, & !! @tex $(\mu gC.g^{-1}.h^{-1})$ @endtex 685 & 1.8, 1.8, 0.7, 0.9, 2., 2. /)865 & 1.8, 1.8, 0.7, 0.9, 2., 2., 2. /) 686 866 687 867 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_acetone_mtc = & !! Acetone emissions factor 688 868 & (/ 0., 0.25, 0.25, 0.30, 0.20, 0.33, 0.30, & !! @tex $(\mu gC.g^{-1}.h^{-1})$ @endtex 689 & 0.25, 0.25, 0.20, 0.20, 0.08, 0.08 /)869 & 0.25, 0.25, 0.20, 0.20, 0.08, 0.08, 0.08 /) 690 870 691 871 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_acetal_mtc = & !! Acetaldehyde emissions factor 692 872 & (/ 0., 0.2, 0.2, 0.2, 0.2, 0.25, 0.25, 0.16, & !! @tex $(\mu gC.g^{-1}.h^{-1})$ @endtex 693 & 0.16, 0.12, 0.12, 0.035, 0.020 /)873 & 0.16, 0.12, 0.12, 0.035, 0.020, 0.020 /) 694 874 695 875 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_formal_mtc = & !! Formaldehyde emissions factor 696 876 & (/ 0., 0.04, 0.04, 0.08, 0.04, 0.04, 0.04, & !! @tex $(\mu gC.g^{-1}.h^{-1})$ @endtex 697 & 0.04, 0.04, 0.025, 0.025, 0.013, 0.013 /)877 & 0.04, 0.04, 0.025, 0.025, 0.013, 0.013, 0.013 /) 698 878 699 879 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_acetic_mtc = & !! Acetic Acid emissions factor 700 880 & (/ 0., 0.025, 0.025, 0.025, 0.022, 0.08, 0.025, & !! @tex $(\mu gC.g^{-1}.h^{-1})$ @endtex 701 & 0.022, 0.013, 0.012, 0.012, 0.008, 0.008 /)881 & 0.022, 0.013, 0.012, 0.012, 0.008, 0.008, 0.008 /) 702 882 703 883 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_formic_mtc = & !! Formic Acid emissions factor 704 884 & (/ 0., 0.015, 0.015, 0.02, 0.02, 0.025, 0.025, & !! @tex $(\mu gC.g^{-1}.h^{-1})$ @endtex 705 & 0.015, 0.015, 0.010, 0.010, 0.008, 0.008 /)885 & 0.015, 0.015, 0.010, 0.010, 0.008, 0.008, 0.008 /) 706 886 707 887 REAL(r_std),PARAMETER, DIMENSION(nvmc) :: em_factor_no_wet_mtc = & !! NOx emissions factor soil emissions and exponential 708 888 & (/ 0., 2.6, 0.06, 0.03, 0.03, 0.03, 0.03, & !! dependancy factor for wet soils 709 & 0.03, 0.03, 0.36, 0.36, 0.36, 0.36 /) !! @tex $(ngN.m^{-2}.s^{-1})$ @endtex889 & 0.03, 0.03, 0.36, 0.36, 0.36, 0.36, 0.36 /) !! @tex $(ngN.m^{-2}.s^{-1})$ @endtex 710 890 711 891 REAL(r_std),PARAMETER, DIMENSION(nvmc) :: em_factor_no_dry_mtc = & !! NOx emissions factor soil emissions and exponential 712 892 & (/ 0., 8.60, 0.40, 0.22, 0.22, 0.22, 0.22, & !! dependancy factor for dry soils 713 & 0.22, 0.22, 2.65, 2.65, 2.65, 2.65 /) !! @tex $(ngN.m^{-2}.s^{-1})$ @endtex893 & 0.22, 0.22, 2.65, 2.65, 2.65, 2.65, 2.65 /) !! @tex $(ngN.m^{-2}.s^{-1})$ @endtex 714 894 715 895 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: Larch_mtc = & !! Larcher 1991 SAI/LAI ratio (unitless) 716 896 & (/ 0., 0.015, 0.015, 0.003, 0.005, 0.005, 0.003, & 717 & 0.005, 0.003, 0.005, 0.005, 0.008, 0.008 /) 718 719 !gmjc 720 ! grassland management 721 ! Is the vegetation a grassland that can be managed ? 722 LOGICAL,PARAMETER, DIMENSION(nvmc) :: is_grassland_manag_mtc = & 723 & (/ .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., & 724 & .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., & 725 & .FALSE., .FALSE., .FALSE. /) 726 ! Is the vegetation a grassland that can be cut ? 727 LOGICAL,PARAMETER, DIMENSION(nvmc) :: is_grassland_cut_mtc = & 728 & (/ .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., & 729 & .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., & 730 & .FALSE., .FALSE., .FALSE. /) 731 ! Is the vegetation a grassland that can be grazed ? 732 LOGICAL,PARAMETER, DIMENSION(nvmc) :: is_grassland_grazed_mtc = & 733 & (/ .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., & 734 & .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., & 735 & .FALSE., .FALSE., .FALSE. /) 736 ! Is the vegetation a grassland that can be grazed by wild grazer? 737 LOGICAL,PARAMETER, DIMENSION(nvmc) :: is_grassland_wild_mtc = & 738 & (/ .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., & 739 & .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., & 740 & .FALSE., .FALSE., .FALSE. /) 741 ! Management Intensity reading in MANAGEMENT_MAP 742 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: management_intensity_mtc = & 743 & (/ 0, 0, 0, 0, 0, 0, 0, & 744 & 0, 0, 0, 0, 0, 0 /) 745 ! Start year of management reading in MANAGEMENT_MAP & GRAZING_MAP 746 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: management_start_mtc = & 747 & (/ 0, 0, 0, 0, 0, 0, 0, & 748 & 0, 0, 0, 0, 0, 0 /) 749 ! Start year of N deposition reading in DEPOSITION_MAP 750 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: deposition_start_mtc = & 751 & (/ 0, 0, 0, 0, 0, 0, 0, & 752 & 0, 0, 0, 0, 0, 0 /) 753 ! Number of year that management should be read 754 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: nb_year_management_mtc = & 755 & (/ 1, 1, 1, 1, 1, 1, 1, & 756 & 1, 1, 1, 1, 1, 1 /) 757 ! maximum specific leaf area (m**2/gC) 758 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: sla_max_mtc = & 759 & (/1.5E-2,1.53E-2, 2.6E-2,9.26E-3, 2E-2, 2.6E-2, 9.26E-3, & 760 & 2.6E-2, 1.9E-2, 2.6E-2,2.6E-2,2.6E-2,2.6E-2 /) 761 ! miniimum specific leaf area (m**2/gC) 762 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: sla_min_mtc = & 763 & (/1.5E-2,1.53E-2, 2.6E-2,9.26E-3, 2E-2, 2.6E-2, 9.26E-3, & 764 & 2.6E-2, 1.9E-2, 2.6E-2,2.6E-2,2.6E-2,2.6E-2 /) 765 !end gmjc 897 & 0.005, 0.003, 0.005, 0.005, 0.008, 0.008, 0.008 /) 898 899 900 ! 901 !WETALND CH4 methane 902 ! 903 !pss+ 904 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: sdepth_v_mtc = & 905 & (/ 0, 129, 129, 129, 129, 129, 129, 129, 129, 79, 79, 162, 162, 162/) 906 907 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: rdepth_v_mtc = & 908 & (/ 0, 64, 64, 64, 64, 64, 64, 64, 64, 39, 39, 81, 81, 81 /) 909 910 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: tveg_v_mtc = & 911 & (/ 0, 1, 1, 1, 1, 1, 1, 1, 1, 10, 10, 15, 15, 15 /) 912 !pss- 913 914 !chaoyue+ 915 LOGICAL,PARAMETER,DIMENSION(nvmc) :: permafrost_veg_exists_mtc = & !!! set all as true to avoid masking 916 & (/ .TRUE., .TRUE., .TRUE., .TRUE., .TRUE., .TRUE., .TRUE., & 917 & .TRUE., .TRUE., .TRUE., .TRUE., .TRUE., .TRUE., .TRUE./) 918 !chaoyue- 919 920 921 !!!!! crop parameters, xuhui 922 923 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: irrig_threshold_mtc = & !! Value for irrig_threshold determine 924 & (/ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & !! when irrigation started (0-1, vegstress) 925 & 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0 /) !! only useful for non-natural pfts 926 927 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: irrig_fulfill_mtc = & !! Value for irrig_fulfill determine 928 & (/ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & !! how irrigation demand fulfilled (0-1) 929 & 0.0, 0.0, 0.0, 0.9, 0.9, 0.9, 0.9 /) !! only useful for non-natural pfts 930 931 932 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 933 !- 934 ! 4. STICS 935 ! This part is especially for Stics 936 !- 937 ! 4.0 flag in stomate 938 LOGICAL, PARAMETER, DIMENSION(nvmc) :: ok_LAIdev_mtc = & !! flag for using the LAIdev module for vegetation types (true/false) 939 & (/ .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., & 940 & .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE. /) 941 942 ! INTEGER(i_std), PARAMETER :: crop_nbjmax = 300 !! Maximum days of a crop cycle simulation 943 944 ! 4.1 LAIdev module 945 946 CHARACTER(len = 3), PARAMETER, DIMENSION(nvmc) :: SP_codeplante_mtc = & !! simulated plante 947 & (/ 'snu', 'snu', 'snu', 'snu', 'snu', 'snu', 'snu', & 948 & 'snu', 'snu', 'snu', 'snu', 'ble', 'mai', 'ric' /) 949 CHARACTER(len = 3), PARAMETER, DIMENSION(nvmc) :: SP_stade0_mtc = & 950 & (/ 'snu', 'snu', 'snu', 'snu', 'snu', 'snu', 'snu', & 951 & 'snu', 'snu', 'snu', 'lev', 'snu', 'snu', 'lev' /) 952 953 954 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_iplt0_mtc = & !! sowing date 955 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 956 & undef_int, undef_int, undef_int, 120, 284, 100, 120 /) 957 958 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_nbox_mtc = & !! number of agebox for senescence 959 & (/ 0, 0, 0, 0, 0, 0, 0, & 960 & 0, 0, 0, 3, 3, 3, 3 /) 961 962 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_iwater_mtc = & !! julian day of the beginning of the simulation 963 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 964 & undef_int, undef_int, undef_int, 1, 1, 1, 1 /) 965 966 CHARACTER(len = 7), PARAMETER, DIMENSION(nvmc) :: SP_codesimul_mtc = & !! simulated plante 967 & (/ 'feuille', 'feuille', 'feuille', 'feuille', 'feuille', 'feuille', 'feuille', & 968 & 'feuille', 'feuille', 'feuille', 'culture', 'culture', 'culture', 'culture'/) 969 970 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codelaitr_mtc = & !! option of calculation of LAI: undef_int. LAI, 2. Soil cover 971 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 972 & undef_int, undef_int, undef_int, 1, 1, 1, 1 /) 973 974 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_slamax_mtc = & !! maximum sla cm2/g dry mass 975 & (/ undef, undef, undef, undef, undef, undef, undef, & !! 976 & undef, undef, undef, 500.0, 350.0, 250.0, 500.0 /) !! 977 978 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_slamin_mtc = & !! minimum sla 979 & (/ undef, undef, undef, undef, undef, undef, undef, & !! 980 & undef, undef, undef, 180.0, 180.0, 180.0, 180.0 /) !! 981 982 ! STICS:: DEVELOPMENT 983 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codeperenne_mtc = & !! annual crop (1) or perennial crop (2) 984 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 985 & undef_int, undef_int, undef_int, 1, 1, 1, 1 /) 986 987 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codcueille_mtc = & !! harvest option: cutting (1) or picking (2) 988 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 989 & undef_int, undef_int, undef_int, 1, 1, 1, 1 /) 990 991 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codegdh_mtc = & !! daily (1) or hourly (2) calculation of development unit 992 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 993 & undef_int, undef_int, undef_int, 1, 1, 1, 1 /) 994 995 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codetemp_mtc = & !! air temperature (1) or crop_temperature (2) 996 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 997 & undef_int, undef_int, undef_int, 1, 1, 1, 1 /) 998 999 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_coderetflo_mtc = & !! slowing effect of water stress before DRP, YES (1) OR NO (2) 1000 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 1001 & undef_int, undef_int, undef_int, 2, 1, 1, 1/) 1002 1003 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codeinnact_mtc = & !! slowing effect of nitrogen stress on crop, active (1) OR NOt active (2) 1004 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 1005 & undef_int, undef_int, undef_int, 1, 1, 1, 1 /) 1006 1007 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codeh2oact_mtc = & !! slowing effect of water stress on crop, YES (1) OR NO (2) 1008 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 1009 & undef_int, undef_int, undef_int, 1, 1, 1, 1/) 1010 1011 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_stressdev_mtc = & !! maximum phasic delay allowed due to stresses // SD 1012 & (/ undef, undef, undef, undef, undef, undef, undef, & 1013 & undef, undef, undef, 0.20, 0.34, 0.20, 0.20 /) 1014 1015 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_innlai_mtc = & !! nitrogen limitation for leaf growth // SD 1016 & (/ undef, undef, undef, undef, undef, undef, undef, & 1017 & undef, undef, undef, 1.0, 0.50, 1.0, 1.0 /) 1018 1019 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_innsenes_mtc = & !! nitrogen limitation for leaf senescence // SD 1020 & (/ undef, undef, undef, undef, undef, undef, undef, & 1021 & undef, undef, undef, 0.35, 1.0, 1.0, 0.35 /) 1022 1023 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codebfroid_mtc = & !! PARAMETER option of calculation of chilling requirements, 1 (no need), 2 (vernalization), 3 (development stage) 1024 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & !! code undef_int (vernalization), 3 (for perennial) 1025 & undef_int, undef_int, undef_int, 1, 2, 1, 1 /) 1026 1027 1028 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codephot_mtc = & !! option of plant photoperiodism: yes (1), no (2) 1029 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 1030 & undef_int, undef_int, undef_int, 1, 1, 2, 1 /) 1031 1032 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codedormance_mtc = & !!option of calculation of dormancy and chilling requirement // code 1/2 1033 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 1034 & undef_int, undef_int, undef_int, 3, 3, 3, 3/) 1035 1036 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codefauche_mtc = & !! option of cut modes for forage crops: yes (1), no (2) 1037 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 1038 & undef_int, undef_int, undef_int, 2, 2, 2, 2 /) 1039 1040 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codetempfauche_mtc = & !!option of the reference temperature to compute cutting sum of temperatures : 1041 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & !! : upvt (1), udevair (2) 1042 & undef_int, undef_int, undef_int, 1, 1, 1, 1/) 1043 1044 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codlainet_mtc = & !!calculation of the LAI (1 : direct LAInet; 2 : LAInet = gross LAI - senescent LAI 1045 & (/ 1, 1, 1, 1, 1, 1, 1, & 1046 & 1, 1, 1, 3, 3, 3, 3 /) 1047 1048 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codeindetermin_mtc = & !!option of simulation of the leaf growth and fruit growth 1049 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & !! indeterminate (2) or determinate (1) 1050 & undef_int, undef_int, undef_int, 1, 1, 1, 1/) 1051 1052 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codeinitprec_mtc = & !! reinitializing initial status in case of chaining simulations : yes (1), no (2) 1053 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 1054 & undef_int, undef_int, undef_int, 1, 1, 1, 1 /) 1055 1056 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_culturean_mtc = & !! crop status: 1 = over 1 calendar year 1057 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & !! other than 1 = on two calendar years (winter crop in northern hemisphere) 1058 & undef_int, undef_int, undef_int, 1, 2, 1, 1/) !! // code 0/1 1059 1060 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_jvc_mtc = & !! Number of vernalizing days // day 1061 & (/ undef, undef, undef, undef, undef, undef, undef, & 1062 & undef, undef, undef, 0.0, 38.0, 0.0, 0.0 /) 1063 1064 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_tfroid_mtc = & !!optimal temperature for vernalisation // degree C 1065 & (/ undef, undef, undef, undef, undef, undef, undef, & 1066 & undef, undef, undef, 6.5, 6.5, 6.5, 6.5 /) 1067 1068 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_ampfroid_mtc = & !! semi thermal amplitude thermique for vernalising effect // degree C 1069 & (/ undef, undef, undef, undef, undef, undef, undef, & 1070 & undef, undef, undef, 10., 10., undef, 10. /) 1071 1072 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_jvcmini_mtc = & !! Minimum number of vernalising days // day 1073 & (/ undef, undef, undef, undef, undef, undef, undef, & 1074 & undef, undef, undef, undef, 7., undef, undef /) 1075 1076 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_tgmin_mtc = & !! Minimum threshold temperature used in emergence stage // degree C 1077 & (/ undef, undef, undef, undef, undef, undef, undef, & 1078 & undef, undef, undef, 0., 0., 8., 0. /) 1079 1080 1081 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_stpltger_mtc = & !!Sum of development allowing germination // degree.days 1082 & (/ undef, undef, undef, undef, undef, undef, undef, & 1083 & undef, undef, undef, 50., 50., 35.0, 50.0 /) 1084 1085 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_profsem_mtc = & !! Sowing depth //cm 1086 & (/ undef, undef, undef, undef, undef, undef, undef, & 1087 & undef, undef, undef, 3.0, 2.0, 3.0, 3.0 /) 1088 1089 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_propjgermin_mtc = & !! minimal proportion of the duration P_nbjgerlim 1090 & (/ undef, undef, undef, undef, undef, undef, undef, & !! when the temperature is higher than the temperature threshold SP_Tdmax // % 1091 & undef, undef, undef, 1.0, 1.0, 1.0, 1.0 /) 1092 1093 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_tdmax_mtc = & !! Maximum threshold temperature for development // degree C 1094 & (/ undef, undef, undef, undef, undef, undef, undef, & 1095 & undef, undef, undef, 30.0, 28.0, 32.0, 30.0 /) 1096 1097 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_nbjgerlim_mtc = & !! Threshold number of day after grain imbibition without germination lack // days 1098 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 1099 & undef_int, undef_int, undef_int, 50, 50, 50, 50 /) 1100 1101 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_densitesem_mtc = & !! Sowing density // plants.m-2 1102 & (/ undef, undef, undef, undef, undef, undef, undef, & 1103 & undef, undef, undef, 66.0, 212.0, 10.0, 66.0 /) 1104 1105 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_vigueurbat_mtc = & !! indicator of plant vigor allowing to emerge through the crust 1106 & (/ undef, undef, undef, undef, undef, undef, undef, & 1107 & undef, undef, undef, 1.0, 1.0, 1.0, 1.0 /) 1108 1109 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codepluiepoquet_mtc = & !!option to replace rainfall by irrigation at poquet depth 1110 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & !! in the case of poquet sowing // code 1/2 1111 & undef_int, undef_int, undef_int, 1, 1, 1, 1/) 1112 1113 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codehypo_mtc = & !! option of simulation of a phase of hypocotyl growth (1) or planting of plantlets (2) 1114 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 1115 & undef_int, undef_int, undef_int, 2, 1, 1, 2 /) 1116 1117 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_elmax_mtc = & !! Maximum elongation of the coleoptile in darkness condition // cm / 1118 & (/ undef, undef, undef, undef, undef, undef, undef, & 1119 & undef, undef, undef, 6.5, 8.0, 8.0, 6.5 /) 1120 1121 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_belong_mtc = & !! parameter of the curve of coleoptile elongation // degree.days -1 1122 & (/ undef, undef, undef, undef, undef, undef, undef, & 1123 & undef, undef, undef, 0.006, 0.012, 0.022, 0.006 /) 1124 1125 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_celong_mtc = & !! parameter of the subsoil plantlet elongation curve 1126 & (/ undef, undef, undef, undef, undef, undef, undef, & 1127 & undef, undef, undef, 2.00, 3.2, 2.04, 2.00 /) 1128 1129 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_nlevlim1_mtc = & !!number of days after germination decreasing the emerged plants if emergence has not occur 1130 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 1131 & undef_int, undef_int, undef_int, 10, 10, 10, 10 /) 1132 1133 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_nlevlim2_mtc = & !!number of days after germination after which the emerged plants is 0 1134 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 1135 & undef_int, undef_int, undef_int, 50, 50, 50, 50 /) 1136 1137 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codrecolte_mtc = & !! harvest mode : all the plant (1) or just the fruits (2) 1138 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 1139 & undef_int, undef_int, undef_int, 1, 1, 1, 1 /) 1140 1141 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_variete_mtc = & !!variety number in the technical file 1142 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 1143 & undef_int, undef_int, undef_int, 1, 1, 1, 1 /) 1144 1145 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codegermin_mtc = & !! option of simulation of a germination phase 1146 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & !! or a delay at the beginning of the crop (undef_int) or direct starting (2) 1147 & undef_int, undef_int, undef_int, 1, 1, 1, 1 /) 1148 1149 1150 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: S_codeulaivernal_mtc = & !! sensitive or not to vernalization 1151 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & !! 1152 & undef_int, undef_int, undef_int, 0, 1, 0, 0 /) 1153 1154 1155 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_swfacmin_mtc = & !! minimum of drought stress 1156 & (/ undef, undef, undef, undef, undef, undef, undef, & 1157 & undef, undef, undef, 0.3, 0.3, 0.3, 0.3 /) 1158 1159 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_neffmax_mtc = & !! maximum nitrogen effect 1160 & (/ undef, undef, undef, undef, undef, undef, undef, & 1161 & undef, undef, undef, 0.65, 0.65, 0.65, 0.65 /) 1162 1163 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_nsatrat_mtc = & !! maximum nitrogen effect 1164 & (/ undef, undef, undef, undef, undef, undef, undef, & 1165 & undef, undef, undef, 0.91, 0.91, 0.91, 0.91 /) 1166 1167 1168 ! STICS:: LAI CALCULATION 1169 1170 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_laiplantule_mtc = & !! Plantlet Leaf index at the plantation // m2 leaf m-2 soil 1171 & (/ undef, undef, undef, undef, undef, undef, undef, & 1172 & undef, undef, undef, 0.0, 1.0, 1.0, 0.0 /) 1173 1174 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_vlaimax_mtc = & !! ULAI at inflection point of the function DELTAI=f(ULAI) 1175 & (/ undef, undef, undef, undef, undef, undef, undef, & 1176 & undef, undef, undef, 1.5, 2.2, 2.2, 1.5 /) 1177 1178 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_stlevamf_mtc = & !!Sum of development units between the stages LEV and AMF // degree.days 1179 & (/ undef, undef, undef, undef, undef, undef, undef, & 1180 & undef, undef, undef, 571.0, 185.0, 225.0, 571.0 /) 1181 1182 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_stamflax_mtc = & !! Sum of development units between the stages AMF and LAX // degree.days 1183 & (/ undef, undef, undef, undef, undef, undef, undef, & 1184 & undef, undef, undef, 409.0, 280.0, 450.0, 409.0 /) 1185 1186 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_udlaimax_mtc = & !! ulai from which the rate of leaf growth decreases 1187 & (/ undef, undef, undef, undef, undef, undef, undef, & 1188 & undef, undef, undef, 3.0, 3.0, 3.0, 3.0 /) 1189 1190 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_laicomp_mtc = & !! LAI from which starts competition inbetween plants // m2 m-2 / 1191 & (/ undef, undef, undef, undef, undef, undef, undef, & 1192 & undef, undef, undef, 0.305, 0.304, 0.7, 0.305 /) 1193 1194 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_adens_mtc = & !! Interplant competition parameter 1195 & (/ undef, undef, undef, undef, undef, undef, undef, & 1196 & undef, undef, undef, -0.85, -0.60, -0.12, -0.85 /) 1197 1198 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_bdens_mtc = & !! minimal density from which interplant competition starts // plants m-2 1199 & (/ undef, undef, undef, undef, undef, undef, undef, & 1200 & undef, undef, undef, 2.0, 15.0, 5.0, 2.0 /) 1201 1202 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_tcxstop_mtc = & !!threshold temperature beyond which the foliar growth stops // degree C 1203 & (/ undef, undef, undef, undef, undef, undef, undef, & 1204 & undef, undef, undef, 40.0, 100.0, 35.0, 40.0 /) 1205 1206 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_tcmax_mtc = & !! Maximum temperature of growth 1207 & (/ undef, undef, undef, undef, undef, undef, undef, & 1208 & undef, undef, undef, 30.0, 40.0, 32.0 , 30.0 /) 1209 1210 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_tcmin_mtc = & !!Minimum temperature of growth 1211 & (/ undef, undef, undef, undef, undef, undef, undef, & 1212 & undef, undef, undef, 13.0, 0.0, 6.0, 13.0 /) 1213 1214 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_dlaimax_mtc = & !! accelerating parameter for the lai growth rate for maize 0.0016 1215 & (/ undef, undef, undef, undef, undef, undef, undef, & 1216 & undef, undef, undef, 0.0060, 0.00044, 0.0020, 0.0060 /) 1217 1218 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_dlaimin_mtc = & !!accelerating parameter for the lai growth rate 1219 & (/ undef, undef, undef, undef, undef, undef, undef, & 1220 & undef, undef, undef, 0.00, 0.00, 0.0012, 0.00 /) 1221 1222 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_pentlaimax_mtc = & !!parameter of the logistic curve of LAI growth 1223 & (/ undef, undef, undef, undef, undef, undef, undef, & 1224 & undef, undef, undef, 5.5, 5.5, 5.5, 5.5 /) 1225 1226 1227 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_tigefeuil_mtc = & !! stem (structural part)/leaf proportion // SD 1228 & (/ undef, undef, undef, undef, undef, undef, undef, & 1229 & undef, undef, undef, 0.5, 0.5, 0.25, 0.5 /) 766 1230 1231 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_stlaxsen_mtc = & !!Sum of development units between the stages LEV and AMF // degree.days 1232 & (/ undef, undef, undef, undef, undef, undef, undef, & 1233 & undef, undef, undef, 390.0, 265.0, 600.0, 390.0 /) 1234 1235 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_stsenlan_mtc = & !! Sum of development units between the stages AMF and LAX // degree.days 1236 & (/ undef, undef, undef, undef, undef, undef, undef, & 1237 & undef, undef, undef, 89.0, 620.0, 272.0, 89.0 /) 1238 1239 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_stlevdrp_mtc = & !!Sum of development units between the stages LEV and AMF // degree.days 1240 & (/ undef, undef, undef, undef, undef, undef, undef, & 1241 & undef, undef, undef, 959.0, 690.0, 960.0, 959.0 /) ! 540 for wheat 1242 1243 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_stflodrp_mtc = & !! Sum of development units between the stages AMF and LAX // degree.days 1244 & (/ undef, undef, undef, undef, undef, undef, undef, & 1245 & undef, undef, undef, 50.0, 0.0, 250.0, 50.0 /) 1246 1247 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_stdrpmat_mtc = & !!Sum of development units between the stages LEV and AMF // degree.days 1248 & (/ undef, undef, undef, undef, undef, undef, undef, & 1249 & undef, undef, undef, 442.0, 940.0, 650.0, 442.0 /) ! 750 for wheat 1250 1251 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_stdrpdes_mtc = & !! Sum of development units between the stages AMF and LAX // degree.days 1252 & (/ undef, undef, undef, undef, undef, undef, undef, & 1253 & undef, undef, undef, 350.0, 750.0, 600.0, 350.0 /) 1254 1255 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_phyllotherme_mtc = & !! 1256 & (/ undef, undef, undef, undef, undef, undef, undef, & 1257 & undef, undef, undef, 120.0, 120.0, 70.0, 120.0 /) 1258 1259 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_lai0_mtc = & !! initial LAI 1260 & (/ undef, undef, undef, undef, undef, undef, undef, & 1261 & undef, undef, undef, 0.61, 0.0, 0.0, 0.61 /) 1262 1263 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_tustressmin_mtc = & !!rice does not take tustress approach 1264 & (/ undef, undef, undef, undef, undef, undef, undef, & 1265 & undef, undef, undef, 0.7, 0.7, 0.7, 0.7 /) 1266 1267 ! STICS:: LAI SENESCENCE 1268 1269 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_nbfgellev_mtc = & !! leaf number at the end of the juvenile phase (frost sensitivity) // nb pl-1 1270 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 1271 & undef_int, undef_int, undef_int, 2, 2, 50, 2 /) 1272 1273 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_ratiodurvieI_mtc = & !! life span of early leaves expressed as a proportion of 1274 & (/ undef, undef, undef, undef, undef, undef, undef, & !! the life span of the last leav es emitted SP_DURVIEF 1275 & undef, undef, undef, 0.8, 0.8, 0.8, 0.8 /) 1276 1277 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_durvieF_mtc = & !! maximal lifespan of an adult leaf expressed in summation of P_Q10=2 (2**(T-Tbase)) 1278 & (/ undef, undef, undef, undef, undef, undef, undef, & 1279 & undef, undef, undef, 480.0, 480.0, 580.0, 480.0 /) 1280 1281 1282 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_ratiosen_mtc = & !! fraction of senescent biomass (by ratio at the total biomass) // between 0 and 1 1283 & (/ undef, undef, undef, undef, undef, undef, undef, & 1284 & undef, undef, undef, 0.28, 0.8, 0.8, 0.28 /) 1285 1286 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_tdmin_mtc = & !!Minimum threshold temperature for development // degree C 1287 & (/ undef, undef, undef, undef, undef, undef, undef, & 1288 & undef, undef, undef, 13.0, 0.0, 6.0, 13.0 /) 1289 1290 1291 1292 ! STICS:: f_humerac 1293 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_sensrsec_mtc = & 1294 & (/ undef, undef, undef, undef, undef, undef, undef, & 1295 & undef, undef, undef, 0.8, 0.5, 0.5, 0.8 /) 1296 1297 ! STICS:: gel 1298 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codgellev_mtc = & 1299 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 1300 & undef_int, undef_int, undef_int, 2, 1, 2, 2 /) 1301 1302 1303 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codgeljul_mtc = & 1304 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 1305 & undef_int, undef_int, undef_int, 2, 1, 2, 2 /) 1306 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codgelveg_mtc = & 1307 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 1308 & undef_int, undef_int, undef_int, 2, 1, 2, 2 /) 1309 1310 1311 1312 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_tletale_mtc = & 1313 & (/ undef, undef, undef, undef, undef, undef, undef, & 1314 & undef, undef, undef, -25.0, -25.0, -5.0, -25.0 /) 1315 1316 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_tdebgel_mtc = & 1317 & (/ undef, undef, undef, undef, undef, undef, undef, & 1318 & undef, undef, undef, -4.0, -4.0, 0.0, -4.0 /) 1319 1320 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_tgellev10_mtc = & 1321 & (/ undef, undef, undef, undef, undef, undef, undef, & 1322 & undef, undef, undef, -4.0, -4.0, undef, -4.0 /) 1323 1324 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_tgellev90_mtc = & 1325 & (/ undef, undef, undef, undef, undef, undef, undef, & 1326 & undef, undef, undef, -20.0, -20.0, undef, -20.0 /) 1327 1328 1329 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_tgeljuv10_mtc = & 1330 & (/ undef, undef, undef, undef, undef, undef, undef, & 1331 & undef, undef, undef, -10.0, -10.0, undef, -10.0 /) 1332 1333 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_tgeljuv90_mtc = & 1334 & (/ undef, undef, undef, undef, undef, undef, undef, & 1335 & undef, undef, undef, -20.0, -20.0, undef, -20.0 /) 1336 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_tgelveg10_mtc = & 1337 & (/ undef, undef, undef, undef, undef, undef, undef, & 1338 & undef, undef, undef, -4.5, -4.5, undef, -4.5 /) 1339 1340 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_tgelveg90_mtc = & 1341 & (/ undef, undef, undef, undef, undef, undef, undef, & 1342 & undef, undef, undef, -10.0, -10.0, undef, -10.0 /) 1343 1344 1345 ! STICS:: Photoperiod 1346 1347 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_sensiphot_mtc = & 1348 & (/ undef, undef, undef, undef, undef, undef, undef, & 1349 & undef, undef, undef, 1.0, 0.0, 1.0, 1.0 /) 1350 1351 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_phosat_mtc = & 1352 & (/ undef, undef, undef, undef, undef, undef, undef, & 1353 & undef, undef, undef, 20.0, 20.0, undef, 20.0 /) 1354 1355 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_phobase_mtc = & 1356 & (/ undef, undef, undef, undef, undef, undef, undef, & 1357 & undef, undef, undef, 6.3, 6.3, undef, 6.3 /) 1358 1359 ! STICS:: CARBON ALLOCATION 1360 1361 CHARACTER(len=3), PARAMETER, DIMENSION(nvmc) :: SP_stoprac_mtc = & !! description of the MTC (unitless) 1362 & (/ 'GER', & ! 1 1363 & 'GER', & ! 2 1364 & 'GER', & ! 3 1365 & 'GER', & ! 4 1366 & 'GER', & ! 5 1367 & 'GER', & ! 6 1368 & 'GER', & ! 7 1369 & 'GER', & ! 8 1370 & 'GER', & ! 9 1371 & 'GER', & ! 10 1372 & 'SEN', & ! 11 1373 & 'SEN', & ! 12 wheat 1374 & 'LAX', & ! 13 maize 1375 & 'SEN' /) ! 14 rice 1376 1377 ! initial root depth for planting plant // cm 1378 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_zracplantule_mtc = & 1379 & (/ undef, undef, undef, undef, undef, undef, undef, & 1380 & undef, undef, undef, 3.0, 3.0, 3.0, 3.0 /) 1381 1382 ! trophic effect on root partitioning within the soil // code 1/2/3 1383 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codtrophrac_mtc = & 1384 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 1385 & undef_int, undef_int, undef_int, 1, 1, 1, 1 /) 1386 1387 ! maximum of root biomass respective to the total biomass (permanent trophic link) // SD / 1388 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_repracpermax_mtc = & ! not correct 1389 & (/ undef, undef, undef, undef, undef, undef, undef, & 1390 & undef, undef, undef, 0.24, 0.4, 0.4, 0.24 /) 1391 1392 1393 ! minimum of root biomass respective to the total biomass (permanent trophic link) // SD / 1394 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_repracpermin_mtc = & ! not correct 1395 & (/ undef, undef, undef, undef, undef, undef, undef, & 1396 & undef, undef, undef, 0.047, 0.2, 0.2, 0.047 /) 1397 ! parameter of biomass root partitioning : evolution of the ratio root/total (permanent trophic link) 1398 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_krepracperm_mtc = & ! not correct 1399 & (/ undef, undef, undef, undef, undef, undef, undef, & 1400 & undef, undef, undef, 1.27, 1.27, 1.27, 1.27 /) 1401 1402 ! maximum of root biomass respective to the total biomass (trophic link by thresholds) 1403 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_repracseumax_mtc = & ! not correct 1404 & (/ undef, undef, undef, undef, undef, undef, undef, & 1405 & undef, undef, undef, 0.24, 0.4, 0.4, 0.24 /) 1406 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_repracseumin_mtc = & ! not correct 1407 & (/ undef, undef, undef, undef, undef, undef, undef, & 1408 & undef, undef, undef, 0.047, 0.2, 0.2, 0.047 /) 1409 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_krepracseu_mtc = & ! not correct 1410 & (/ undef, undef, undef, undef, undef, undef, undef, & 1411 & undef, undef, undef, 1.27, 1.27, 1.27, 1.27 /) 1412 1413 ! option calculation mode of heat time for the root: with crop temperature (1) or with soil temperature (2) 1414 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codetemprac_mtc = & 1415 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 1416 & undef_int, undef_int, undef_int, 1, 1, 1, 1 /) 1417 1418 ! Activation of the module simulating tiller dynamic: yes (1), no (2) / 1419 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codedyntalle_mtc = & 1420 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 1421 & undef_int, undef_int, undef_int, 1, 1, 2, 1 /) 1422 1423 ! < // PARAMETER // Period to compute NBGRAIN // days // PARPLT 1424 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_nbjgrain_mtc = & 1425 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 1426 & undef_int, undef_int, undef_int, 30, 30, 20, 30 /) 1427 1428 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_maxgs_mtc = & 1429 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 1430 & undef_int, undef_int, undef_int, 300, 300, 235, 300 /) 1431 1432 ! activation of frost at anthesis // code 1/2 1, no, 2, yes 1433 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codgelflo_mtc = & 1434 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 1435 & undef_int, undef_int, undef_int, 2, 2, 1, 2 /) 1436 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_tgelflo10_mtc = & 1437 & (/ undef, undef, undef, undef, undef, undef, undef, & 1438 & undef, undef, undef, -4.5, -4.5, undef, -4.5 /) 1439 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_tgelflo90_mtc = & 1440 & (/ undef, undef, undef, undef, undef, undef, undef, & 1441 & undef, undef, undef, -6.5, -6.5, undef, -6.5 /) 1442 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_cgrain_mtc = & 1443 & (/ undef, undef, undef, undef, undef, undef, undef, & 1444 & undef, undef, undef, 0.035, 0.036, 0.05, 0.035 /) 1445 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_cgrainv0_mtc = & 1446 & (/ undef, undef, undef, undef, undef, undef, undef, & 1447 & undef, undef, undef, 0.350, 0.0, 0.111, 0.350 /) 1448 1449 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_nbgrmax_mtc = & 1450 & (/ undef, undef, undef, undef, undef, undef, undef, & 1451 & undef, undef, undef, 40000.0, 30000.0, 4000.0, 40000.0 /) 1452 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_nbgrmin_mtc = & 1453 & (/ undef, undef, undef, undef, undef, undef, undef, & 1454 & undef, undef, undef, 10000.0, 6000.0, 1500.0, 10000.0 /) 1455 1456 ! option of activation of the direct effect of the nitrogen plant status upon the fruit/grain number , 1: no; 2, yes 1457 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codazofruit_mtc = & 1458 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 1459 & undef_int, undef_int, undef_int, 1, 1, 1, 1 /) 1460 ! option of computing the ratio grain weight/total biomass: proportional to time(1), proportional to sum temperatures (2) 1461 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codeir_mtc = & 1462 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 1463 & undef_int, undef_int, undef_int, 2, 1, 1, 2 /) 1464 1465 ! Rate of increase of the carbon harvest index // g grain g plant -1 day-1 1466 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_vitircarb_mtc = & 1467 & (/ undef, undef, undef, undef, undef, undef, undef, & 1468 & undef, undef, undef, 0.015, 0.014, 0.020, 0.015 /) ! 0.0107 1469 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_irmax_mtc = & 1470 & (/ undef, undef, undef, undef, undef, undef, undef, & 1471 & undef, undef, undef, 0.65, 0.55, 0.53, 0.65 /) 1472 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_vitircarbT_mtc = & 1473 & (/ undef, undef, undef, undef, undef, undef, undef, & 1474 & undef, undef, undef, 0.0012, 0.0007, 0.00110, 0.0012 /) 1475 1476 ! option of heat effect on grain filling: yes (1), no (2) // code 1/2 1477 INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: SP_codetremp_mtc = & 1478 & (/ undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, undef_int, & 1479 & undef_int, undef_int, undef_int, 1, 1, 1, 1 /) 1480 1481 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_tminremp_mtc = & 1482 & (/ undef, undef, undef, undef, undef, undef, undef, & 1483 & undef, undef, undef, 14.0, 0.0, 0.0, 14.0 /) 1484 1485 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_tmaxremp_mtc = & 1486 & (/ undef, undef, undef, undef, undef, undef, undef, & 1487 & undef, undef, undef, 38.0, 38.0, 42.0, 38.0 /) 1488 1489 ! Maximum weight of one grain (at 0% water content) // g // PARPLT // 1, it is depedent on variety (wheat: Thesee, maise: Furio---variety) 1490 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_pgrainmaxi_mtc = & 1491 & (/ undef, undef, undef, undef, undef, undef, undef, & 1492 & undef, undef, undef, 0.03, 0.052, 0.33, 0.03 /) 1493 1494 !!===============================SPECIFIC FOR DYNAMIC NITROGEN FOR CROP GROWTH ====================================== 1495 LOGICAL, PARAMETER, DIMENSION(nvmc) :: SP_DY_INN_mtc = & !! flag for using the LAIdev module for vegetation types (true/false) 1496 & (/ .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., & 1497 & .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE. /) 1498 1499 ! An average nitrogen fertilization amount for crop // unit is kg N ha-1 year-1 1500 REAL(r_std), PARAMETER, DIMENSION(nvmc) :: SP_avenfert_mtc = & 1501 & (/ undef, undef, undef, undef, undef, undef, undef, & 1502 & undef, undef, undef, 150.0, 100.0, 100.0, 150.0 /) 1503 1504 ! >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 1505 1506 1507 !!!!! end crop parameters, xuhui 1508 767 1509 END MODULE constantes_mtc -
branches/publications/ORCHIDEE-GMv3.2/ORCHIDEE/src_parameters/constantes_var.f90
r5816 r6939 2 2 ! MODULE : constantes_var 3 3 ! 4 ! CONTACT : orchidee-help _at_ ipsl.jussieu.fr4 ! CONTACT : orchidee-help _at_ listes.ipsl.fr 5 5 ! 6 6 ! LICENCE : IPSL (2006) … … 56 56 LOGICAL :: hydrol_cwrr !! activate 11 layers hydrolgy model 57 57 !$OMP THREADPRIVATE(hydrol_cwrr) 58 LOGICAL, SAVE :: ok_nudge_mc !! Activate nudging of soil moisture 59 !$OMP THREADPRIVATE(ok_nudge_mc) 60 LOGICAL, SAVE :: ok_nudge_snow!! Activate nudging of snow variables 61 !$OMP THREADPRIVATE(ok_nudge_snow) 62 LOGICAL, SAVE :: nudge_interpol_with_xios !! Activate reading and interpolation with XIOS for nudging fields 63 !$OMP THREADPRIVATE(nudge_interpol_with_xios) 58 64 LOGICAL :: do_floodplains !! activate flood plains 59 65 !$OMP THREADPRIVATE(do_floodplains) 60 66 LOGICAL :: do_irrigation !! activate computation of irrigation flux 61 67 !$OMP THREADPRIVATE(do_irrigation) 68 LOGICAL :: do_fullirr !! activate idealized irrigation scheme 69 !$OMP THREADPRIVATE(do_fullirr) 62 70 LOGICAL :: ok_sechiba !! activate physic of the model 63 71 !$OMP THREADPRIVATE(ok_sechiba) … … 84 92 LOGICAL :: ok_cropsfertil_NOx !! calculate NOx emissions with fertilizers use 85 93 !$OMP THREADPRIVATE(ok_cropsfertil_NOx) 86 94 !!!! crop rotation 95 LOGICAL,SAVE :: ok_rotate !! activate crop rotation 96 !$OMP THREADPRIVATE(ok_rotate) 97 INTEGER(i_std), SAVE :: rotation_update !!number of years to update rotation system 98 !$OMP THREADPRIVATE(rotation_update) 99 LOGICAL, SAVE :: nvm_rot !! flag to read rotation command for nvm than for standard PFT setting 100 !$OMP THREADPRIVATE(nvm_rot) 101 LOGICAL, SAVE :: nvm_plnt !! flag to read planting date for nvm than for standard PFT setting 102 !$OMP THREADPRIVATE(nvm_plnt) 103 LOGICAL, SAVE :: nvm_nfert !! flag to read fertilizer for nvm than for standard PFT setting 104 !$OMP THREADPRIVATE(nvm_nfert) 105 INTEGER(i_std),SAVE :: cyc_rot_max !! maximum length of rotation cycle 106 !$OMP THREADPRIVATE(cyc_rot_max) 107 INTEGER(i_std),SAVE :: rot_cmd_max = 5 !! maximum number of transfering command in one rotation 108 !$OMP THREADPRIVATE(rot_cmd_max) 109 LOGICAL :: dyn_plntdt 110 !$OMP THREADPRIVATE(dyn_plntdt) 111 LOGICAL :: dyn_cropfert 112 !$OMP THREADPRIVATE(dyn_cropfert) 113 !!!! end crop rotation, xuhui 87 114 LOGICAL :: ok_co2bvoc_poss !! CO2 inhibition on isoprene activated following Possell et al. (2005) model 88 115 !$OMP THREADPRIVATE(ok_co2bvoc_poss) … … 103 130 CHARACTER(LEN=80), SAVE :: stom_restname_out = 'stomate_rest_out.nc' !! Output Restart files name for Stomate component 104 131 !$OMP THREADPRIVATE(stom_restname_out) 105 INTEGER, SAVE :: printlev= 1!! Standard level for text output [0, 1, 2, 3]132 INTEGER, SAVE :: printlev=2 !! Standard level for text output [0, 1, 2, 3] 106 133 !$OMP THREADPRIVATE(printlev) 107 134 … … 109 136 ! TIME 110 137 ! 111 REAL(r_std), SAVE :: one_day !! One day in seconds (s)112 !$OMP THREADPRIVATE(one_day)113 REAL(r_std), SAVE :: one_year !! One year in days114 !$OMP THREADPRIVATE(one_year)115 REAL(r_std), PARAMETER :: one_hour = 3600.0 !! One hour in seconds (s)116 138 INTEGER(i_std), PARAMETER :: spring_days_max = 40 !! Maximum number of days during which we watch for possible spring frost damage 117 118 ! TIME STEP119 REAL(r_std) :: dt_sechiba !! Time step in sechiba120 !$OMP THREADPRIVATE(dt_sechiba)121 REAL(r_std) :: dt_stomate !! Time step in stomate122 !$OMP THREADPRIVATE(dt_stomate)123 139 124 140 ! … … 137 153 REAL(r_std), PARAMETER :: large_value = 1.E33_r_std !! some large value (for stomate) (unitless) 138 154 155 REAL(r_std), SAVE :: alpha_nudge_mc !! Nudging constant for soil moisture 156 !$OMP THREADPRIVATE(alpha_nudge_mc) 157 REAL(r_std), SAVE :: alpha_nudge_snow !! Nudging constant for snow variables 158 !$OMP THREADPRIVATE(alpha_nudge_snow) 139 159 140 160 ! … … 187 207 INTEGER(i_std), PARAMETER :: nelements = 1 !! Number of isotopes considered 188 208 INTEGER(i_std), PARAMETER :: icarbon = 1 !! Index for carbon 209 !- 210 !! For wood product pool 211 INTEGER(i_std) :: nwp = 2 !! Number of types of wood product pool considered 212 INTEGER(i_std), PARAMETER :: iwplcc = 1 !! Index for wood product pool from land cover change 213 INTEGER(i_std), PARAMETER :: iwphar = 2 !! Index for wood product pool from forest harvest 189 214 ! 190 215 !! Indices used for analytical spin-up … … 198 223 INTEGER(i_std), PARAMETER :: ipassive_pool = 7 !! Index for passive carbon pool (unitless) 199 224 225 !! Indices used to check the mass balance closure 226 INTEGER(i_std), PARAMETER :: nmbcomp = 5 !! The total nomber of components in our mass balance check 227 INTEGER(i_std), PARAMETER :: iatm2land = 1 !! atmosphere to land fluxes such as GPP and co2_2_bm 228 INTEGER(i_std), PARAMETER :: iland2atm = 2 !! land to atmosphere fluxes such as Rh, Ra and product decomposition 229 INTEGER(i_std), PARAMETER :: ilat2out = 3 !! outgoing lateral flux i.e. DOC leaching for the litter routine 230 INTEGER(i_std), PARAMETER :: ilat2in = 4 !! incoming lateral flux i.e. N deposition for the land 231 INTEGER(i_std), PARAMETER :: ipoolchange = 5 !! change in pool size i.e. change in biomass 200 232 201 233 ! … … 254 286 255 287 288 INTEGER(i_std), SAVE :: testpft = 6 256 289 !- 257 290 ! 3. Climatic constants … … 318 351 REAL(r_std), SAVE :: snowcri = 1.5 !! Sets the amount above which only sublimation occures (kg.m^{-2}) 319 352 !$OMP THREADPRIVATE(snowcri) 353 REAL(r_std), SAVE :: irrig_dosmax = 1.25 !! The maximum irrigation water injected for half-hour (kg.m^{-2}/30min) 354 !$OMP THREADPRIVATE(irrig_dosmax) 355 LOGICAL, SAVE :: irrig_drip = .FALSE. !! Do we activate drip irrigation? (true/false) 356 !$OMP THREADPRIVATE(irrig_drip) 320 357 321 358 … … 333 370 LOGICAL, SAVE :: disable_fire = .FALSE. !! flag that disable fire (true/false) 334 371 !$OMP THREADPRIVATE(disable_fire) 372 LOGICAL, SAVE :: allow_deforest_fire = .FALSE. !! flag that allows deforestation fire (true/false) 373 !$OMP THREADPRIVATE(allow_deforest_fire) 335 374 LOGICAL, SAVE :: spinup_analytic = .FALSE. !! Flag to activate analytical resolution for spinup (true/false) 336 375 !$OMP THREADPRIVATE(spinup_analytic) 337 376 LOGICAL, SAVE :: ok_explicitsnow !! Flag to activate explicit snow scheme instead of default snow scheme 338 377 !$OMP THREADPRIVATE(ok_explicitsnow) 378 LOGICAL, SAVE :: ok_pc !! Flag to activate permafrost carbon (vertical carbon and soil carbon thermal insulation) 379 !$OMP THREADPRIVATE(ok_pc) 339 380 340 381 ! … … 349 390 LOGICAL, SAVE :: do_now_stomate_lcchange = .FALSE. !! Time to call lcchange in stomate_lpj 350 391 !$OMP THREADPRIVATE(do_now_stomate_lcchange) 392 LOGICAL, SAVE :: do_now_stomate_woodharvest = .FALSE. !! Time to call woodharvest in stomate_lpj 393 !$OMP THREADPRIVATE(do_now_stomate_woodharvest) 351 394 LOGICAL, SAVE :: done_stomate_lcchange = .FALSE. !! If true, call lcchange in stomate_lpj has just been done. 352 395 !$OMP THREADPRIVATE(done_stomate_lcchange) … … 358 401 !$OMP THREADPRIVATE(veget_reinit) 359 402 403 404 ! 405 ! Some debugging flags 406 ! 407 LOGICAL,PARAMETER :: ld_massbal=.FALSE. ! a flag to turn on debug statements 408 ! related to mass balance closure 409 LOGICAL,PARAMETER :: ld_agec=.FALSE. ! a flag to turn on debug statements 410 ! related to age classes 411 412 360 413 ! 361 414 ! PARAMETERS USED BY BOTH HYDROLOGY MODELS … … 372 425 !! Heat capacity 373 426 REAL(r_std), PARAMETER :: capa_ice = 2.228*1.E3 !! Heat capacity of ice (J/kg/K) 374 REAL(r_std), SAVE :: so_capa_ice 427 REAL(r_std), SAVE :: so_capa_ice=2.11E6 !! Heat capacity of saturated frozen soil (J/K/m3) 375 428 !$OMP THREADPRIVATE(so_capa_ice) 376 429 REAL(r_std), PARAMETER :: rho_water = 1000. !! Density of water (kg/m3) … … 492 545 !! (true/false) 493 546 !$OMP THREADPRIVATE(rough_dyn) 547 548 LOGICAL, SAVE :: new_watstress = .FALSE. 549 !$OMP THREADPRIVATE(new_watstress) 550 551 REAL(r_std), SAVE :: alpha_watstress = 1. 552 !$OMP THREADPRIVATE(alpha_watstress) 494 553 495 554 ! 1.2 Others … … 581 640 REAL(r_std), PARAMETER :: Tetens_2 = 0.378 !! 582 641 REAL(r_std), PARAMETER :: ratio_H2O_to_CO2 = 1.6 !! Ratio of water vapor diffusivity to the CO2 diffusivity (unitless) 583 REAL(r_std), PARAMETER :: m mol_to_m_1 = 0.0244!!642 REAL(r_std), PARAMETER :: mol_to_m_1 = 0.0244 !! 584 643 REAL(r_std), PARAMETER :: RG_to_PAR = 0.5 !! 585 REAL(r_std), PARAMETER :: W_to_m mol = 4.6 !! W_to_mmol * RG_to_PAR = 2.3644 REAL(r_std), PARAMETER :: W_to_mol = 4.6 !! W_to_mmol * RG_to_PAR = 2.3 586 645 587 646 ! 1. Scalar … … 598 657 !$OMP THREADPRIVATE(downregulation_co2_baselevel) 599 658 659 REAL(r_std), SAVE :: gb_ref = 1./25. !! Leaf bulk boundary layer resistance (s m-1) 660 600 661 ! 3. Coefficients of equations 601 662 … … 619 680 REAL(r_std), SAVE :: clayfraction_default = 0.2 !! Default value for clay fraction (0-1, unitless) 620 681 !$OMP THREADPRIVATE(clayfraction_default) 621 REAL(r_std), SAVE :: min_vegfrac = 0.001!! Minimal fraction of mesh a vegetation type can occupy (0-1, unitless)682 REAL(r_std), SAVE :: min_vegfrac = 1E-8 !! Minimal fraction of mesh a vegetation type can occupy (0-1, unitless) 622 683 !$OMP THREADPRIVATE(min_vegfrac) 623 684 REAL(r_std), SAVE :: frac_nobio_fixed_test_1 = 0.0 !! Value for frac_nobio for tests in 0-dim simulations (0-1, unitless) … … 650 711 ! 1. Scalar 651 712 652 REAL(r_std), SAVE :: estab_max_tree = 0.12 !! Maximum tree establishment rate ( 0-1, unitless)713 REAL(r_std), SAVE :: estab_max_tree = 0.12 !! Maximum tree establishment rate (ind/m2/dt_stomate) 653 714 !$OMP THREADPRIVATE(estab_max_tree) 654 REAL(r_std), SAVE :: estab_max_grass = 0.12 !! Maximum grass establishment rate ( 0-1, unitless)715 REAL(r_std), SAVE :: estab_max_grass = 0.12 !! Maximum grass establishment rate (ind/m2/dt_stomate) 655 716 !$OMP THREADPRIVATE(estab_max_grass) 656 717 … … 744 805 REAL(r_std), PARAMETER :: max_possible_lai = 10. !! (m^2.m^{-2}) 745 806 REAL(r_std), PARAMETER :: Nlim_Q10 = 10. !! 746 807 !gmjc 747 808 REAL(r_std), SAVE :: reserve_time_cut = 20. 748 809 REAL(r_std), SAVE :: lai_happy_cut = 0.25 749 810 REAL(r_std), SAVE :: tau_leafinit_cut = 10 750 811 REAL(r_std), SAVE :: tau_t2m_14 = 14. 751 812 !end gmjc 752 813 ! 1. Scalar 753 814 … … 783 844 !$OMP THREADPRIVATE(Nlim_tref) 784 845 846 ! 847 ! Age groups 848 ! 849 LOGICAL, SAVE :: use_age_class !! Number of age classes used to calculate C allocation 850 !! Used in forestry.f90 and lcchange.f90 - this mimics age classes 851 !$OMP THREADPRIVATE(use_age_class) 852 LOGICAL, SAVE :: SingleAgeClass !! Is age class is simulated but with only a single age class for 853 !! each MTC? 854 !$OMP THREADPRIVATE(SingleAgeClass) 855 LOGICAL, SAVE :: allow_forestry_harvest !! Wood harvest from forestry? 856 !$OMP THREADPRIVATE(allow_forestry_harvest) 857 LOGICAL, SAVE :: gluc_use_harvest_biomass !! Use harvest biomass ? 858 !$OMP THREADPRIVATE(gluc_use_harvest_biomass) 859 LOGICAL, SAVE :: gluc_allow_trans_bioe !! Transitions to bioenergy ? 860 !$OMP THREADPRIVATE(gluc_allow_trans_bioe) 861 LOGICAL, SAVE :: use_bound_spa !! Use spatial age boundary? 862 !$OMP THREADPRIVATE(use_bound_spa) 863 INTEGER, SAVE :: nagec_tree !! Number of age classes for tree MTC 864 !$OMP THREADPRIVATE(nagec_tree) 865 INTEGER, SAVE :: nagec_herb !! Number of age classes for herbaceous MTC 866 !$OMP THREADPRIVATE(nagec_herb) 867 INTEGER, SAVE :: nagec_bioe1 !! Number of age classes for bioe1 MTC 868 !$OMP THREADPRIVATE(nagec_bioe1) 869 LOGICAL, SAVE :: gluc_newfrac_guide !! Use guided new vegetfrac in gross LUC? 870 !$OMP THREADPRIVATE(gluc_newfrac_guide) 785 871 786 872 ! … … 1121 1207 !$OMP THREADPRIVATE(green_age_dec) 1122 1208 1209 ! permafrost carbon related 1210 REAL(r_std), parameter :: O2_init_conc = 298.3 !! gO2/m**3 mean for Cherskii 1211 REAL(r_std), parameter :: CH4_init_conc = 0.001267 !! gCH4/m**3 mean for Cherskii 1212 REAL, PARAMETER :: z_root_max = 0.5 !! Depth at which litter carbon input decays e-fold (root depth); 0.5 for compar w/WH 1213 REAL, PARAMETER :: diffO2_air = 1.596E-5 !! oxygen diffusivity in air (m**2/s) 1214 REAL, PARAMETER :: diffO2_w = 1.596E-9 !! oxygen diffusivity in water (m**2/s) 1215 REAL, PARAMETER :: O2_surf = 0.209 !! oxygen concentration in surface air (molar fraction) 1216 REAL, PARAMETER :: diffCH4_air = 1.702E-5 !! methane diffusivity in air (m**2/s) 1217 REAL, PARAMETER :: diffCH4_w = 2.0E-9 !! methane diffusivity in water (m**2/s) 1218 REAL, PARAMETER :: CH4_surf = 1700.E-9 !! methane concentration in surface air (molar fraction) 1219 REAL, SAVE :: tetasat = .5 !! volumetric water content at saturation (porosity) 1220 !$OMP THREADPRIVATE(tetasat) 1221 REAL(r_std), SAVE :: tetamoss = 0.92 !! porosity of moss 1222 !$OMP THREADPRIVATE(tetamoss) 1223 REAL(r_std), SAVE :: rho_moss !! density of moss 1224 !$OMP THREADPRIVATE(rho_moss) 1225 REAL, PARAMETER :: zmoss = 0.2 !! thickness of moss layer (in permafrost regions,m) 0. ! 0.001 DKtest for compar w/WH 1226 REAL, PARAMETER :: h_snowmoss = 0.2 !! snow height above which we consider the moss layer to be to compressed to be effective (m) 1227 REAL, PARAMETER :: BunsenO2 = 0.038 !! Bunsen coefficient for O2 (10C, 1bar) 1228 REAL, PARAMETER :: BunsenCH4 = 0.043 !! Bunsen coefficient for CH4 (10C, Wiesenburg et Guinasso, Jr., 1979) 1229 REAL, PARAMETER :: ebuthr = 0.9 !! Soil humidity threshold for ebullition 1230 REAL, PARAMETER :: wCH4 = 16. !! molar weight of CH4 (g/mol) 1231 REAL, PARAMETER :: wO2 = 32. !! molar weight of O2 (g/mol) 1232 REAL, PARAMETER :: wC = 12. !! molar weight of C (g/mol) 1233 REAL, PARAMETER :: avm = .01 !! minimum air volume (m**3 air/m**3 soil) 1234 REAL(R_STD), PARAMETER :: hmin_tcalc = .001 !! minimum total snow layer thickness below which we ignore diffusion across the snow layer 1235 1236 ! are we running the soil carbon spinup routine? 1237 LOGICAL, SAVE :: soilc_isspinup = .false. 1238 1239 ! which variables to write to history tapes? 1240 LOGICAL, SAVE :: writehist_deepC = .true. 1241 LOGICAL, SAVE :: writehist_soilgases = .true. 1242 LOGICAL, SAVE :: writehist_deltaC = .false. 1243 LOGICAL, SAVE :: writehist_zimovheat = .false. 1244 LOGICAL, SAVE :: writehist_deltaC_litter = .false. 1245 LOGICAL, SAVE :: writehist_gascoeff = .false. 1246 1247 1248 !pss:+ 1249 !valeurs des bornes des differentes classes de WTD pour TOPMODEL 1250 REAL(r_std),SAVE :: WTD1_borne=0.03 1251 REAL(r_std),SAVE :: WTD2_borne=0.09 1252 REAL(r_std),SAVE :: WTD3_borne=0.15 1253 REAL(r_std),SAVE :: WTD4_borne=0.21 1254 !valeurs du shift de la distribution topo pour passer de fsat a fwet 1255 REAL(r_std),SAVE :: SHIFT_fsat_fwet=5. 1256 !pss:- 1257 1258 ! 1259 ! stomate cste WETLAND 1260 ! 1261 !FLAG for CH4 from wetland 1262 LOGICAL,SAVE :: CH4_calcul 1263 1264 ! Constant for Precission issues 1265 REAL(r_std), PARAMETER :: EPS =1E-3_r_std 1266 1267 1268 !!!!! crop parameters 1269 1270 ! STICS NITROGEN 1271 ! IN THIS VERSION, WE DO NOT HAVE NITROGEN PROCESS, SO NO NITROGEN LIMITATION 1272 ! for leaf development and biomass growth at the moment 1273 !REAL(r_std), SAVE :: innlai = 0.8 ! nitrogen stress for lai 1274 REAL(r_std), SAVE :: inns = 1. ! nitrogen stress for grain production 1275 !$OMP THREADPRIVATE(inns) 1276 REAL(r_std), SAVE :: innsenes = 1. ! nitrogen stress for senescence 1277 !$OMP THREADPRIVATE(innsenes) 1278 REAL(r_std), SAVE :: exolai = 1. !! water logging effects on lai [0 1], 1, no slowing effect 1279 !$OMP THREADPRIVATE(exolai) 1280 REAL(r_std), SAVE :: resperenne = 0.0 !! C crop reserve, during the cropping season, or during the intercrop period (for perenial crops) // t ha-1 1281 !$OMP THREADPRIVATE(resperenne) 1282 INTEGER(i_std), SAVE :: numcult = 1 1283 !$OMP THREADPRIVATE(numcult) 1284 INTEGER(i_std), SAVE :: vlength = 70 1285 !$OMP THREADPRIVATE(vlength) 1286 !INTEGER(i_std), SAVE :: maxgs = 300 ! This is an arbitrary setting of maximum 1287 !growing length for annual crop to avoid a too long growing season length 1288 INTEGER(i_std), SAVE :: matrec = 3 ! subjective setting for a period between nmat and nrec for grain drying and nutrition dynamics 1289 !$OMP THREADPRIVATE(matrec) 1290 1291 REAL(r_std), SAVE :: tetstomate = 0.53 ! m3/m3 soil water contents 1292 !$OMP THREADPRIVATE(tetstomate) 1293 ! REAL(r_std), SAVE :: teturg = 0.73 ! 1294 REAL(r_std), SAVE :: teturg = 1 ! 1295 !$OMP THREADPRIVATE(teturg) 1296 REAL(r_std), SAVE :: tetsen = 0.4 ! 1297 !$OMP THREADPRIVATE(tetsen) 1298 1299 LOGICAL, SAVE :: nitrogen_use = .FALSE. !! IF we consider the nitrogen fertilization (true/false) 1300 !$OMP THREADPRIVATE(nitrogen_use) 1301 LOGICAL, SAVE :: fix_nfert = .TRUE. !! IF we use the average nitrogen fertilization (true/false) 1302 !$OMP THREADPRIVATE(fix_nfert) 1303 LOGICAL, SAVE :: iplt_1d = .TRUE. !! do we use the imposed planting date 1304 !$OMP THREADPRIVATE(iplt_1d) 1305 LOGICAL, SAVE :: rot_1d = .TRUE. !! do we use the imposed rotation cycle without map 1306 !$OMP THREADPRIVATE(rot_1d) 1307 REAL(r_std), SAVE :: N_effect = 0.65 !! this is the maximum additive effect of nitrogen fertilization on Vcmax 1308 !$OMP THREADPRIVATE(N_effect) 1309 REAL(r_std), SAVE :: prc_residual = 0.5 !! percentage of straws leaving on the croplands 1310 !$OMP THREADPRIVATE(prc_residual) 1311 INTEGER(i_std), SAVE :: codesla = 2 !! 1 for old sla calc, 2 for new sla calc 1312 !$OMP THREADPRIVATE(codesla) 1313 1314 !!!!! end crop parameters, xuhui 1315 1123 1316 END MODULE constantes_var -
branches/publications/ORCHIDEE-GMv3.2/ORCHIDEE/src_parameters/control.f90
r5816 r6939 2 2 ! MODULE : control 3 3 ! 4 ! CONTACT : orchidee-help _at_ ipsl.jussieu.fr4 ! CONTACT : orchidee-help _at_ listes.ipsl.fr 5 5 ! 6 6 ! LICENCE : IPSL (2006) … … 22 22 USE constantes_soil 23 23 USE constantes_var 24 ! USE time 24 25 USE pft_parameters 25 26 USE vertical_soil 27 USE constantes 26 28 27 29 IMPLICIT NONE … … 46 48 !_ ================================================================================================================================ 47 49 48 SUBROUTINE control_initialize (dt)50 SUBROUTINE control_initialize 49 51 50 52 IMPLICIT NONE 51 53 52 REAL(r_std), INTENT(in) :: dt !! Time step in seconds53 54 INTEGER(i_std) :: jv !! Local index variable 54 55 INTEGER(i_std) :: ier !! Error handeling 55 56 ! Archive the sechiba time step into module constantes_var57 dt_sechiba=dt58 56 59 57 ! Start reading options from parameter file … … 77 75 !Config Help = The classification used in the file that we use here 78 76 !Config There are three classification supported: 79 !Config Zobler (7 converted to 3) and USDA (12)77 !Config FAO (3 soil types), Zobler (7 converted to 3) and USDA (12) 80 78 !Config Units = [-] 81 79 ! … … 84 82 CALL getin_p('SOILTYPE_CLASSIF',soil_classif) 85 83 SELECTCASE (soil_classif) 86 CASE ('zobler', 'none')84 CASE ('zobler', 'fao','none') 87 85 nscm = nscm_fao 88 86 CASE ('usda') 89 87 nscm = nscm_usda 90 88 CASE DEFAULT 91 WRITE(numout,*) "Unsupported soil type classification: soil_classif=",soil_classif 92 WRITE(numout,*) "Choose between zobler, usda and none according to the map" 93 CALL ipslerr_p(3,'control_initialize','Bad choice of soil_classif','Choose between zobler, usda and none','') 89 WRITE(numout,*) "Unsupported soil type classification. Choose between zobler, fao and usda according to the map" 90 STOP 'intsurf_config' 94 91 ENDSELECT 95 92 … … 106 103 river_routing = .FALSE. 107 104 CALL getin_p('RIVER_ROUTING', river_routing) 108 WRITE(numout,*) "RIVER routing is activated : ",river_routing105 IF (printlev>=1) WRITE(numout,*) "RIVER routing is activated : ",river_routing 109 106 ! 110 107 !Config key = HYDROL_CWRR … … 120 117 hydrol_cwrr = .FALSE. 121 118 CALL getin_p('HYDROL_CWRR', hydrol_cwrr) 122 WRITE(numout,*) "CWRR hydrology is activated : ",hydrol_cwrr119 IF (printlev>=1) WRITE(numout,*) "CWRR hydrology is activated : ",hydrol_cwrr 123 120 124 121 !Config Key = DO_IRRIGATION … … 135 132 do_irrigation = .FALSE. 136 133 IF ( river_routing ) CALL getin_p('DO_IRRIGATION', do_irrigation) 134 135 !!!!! crop irrigation 136 ! whether we disrupt water balance to fulfill crop needs 137 do_fullirr = .FALSE. 138 CALL getin_p('DO_FULLIRR', do_fullirr) 139 IF (do_fullirr) THEN 140 WRITE(numout,*) "do full irrigation regardless of water balance" 141 ENDIF 142 !!!!! end crops, xuhui 143 144 !!!! crop rotation parameters 145 ok_rotate = .FALSE. 146 CALL getin_p('OK_ROTATE',ok_rotate) 147 dyn_plntdt = .FALSE. 148 CALL getin_p('DYN_PLNTDT',dyn_plntdt) 149 ! dyn_cropfert = .FALSE. 150 ! CALL getin_p('DYN_CROPFERT',dyn_cropfert) 151 nvm_plnt = .FALSE. 152 CALL getin_p('NVM_PLNT',nvm_plnt) 153 nvm_rot = .FALSE. 154 CALL getin_p('NVM_ROT',nvm_rot) 155 nvm_nfert = .FALSE. 156 CALL getin_p('NVM_NFERT',nvm_nfert) 157 cyc_rot_max = 1 158 CALL getin_p('CYC_ROT_MAX',cyc_rot_max) 159 CALL getin_p('ROT_CMD_MAX',rot_cmd_max) !by default it is 5 160 ! if reading maps, it will be automatically updated by map dimension 161 !!! resolving conflict 162 IF (.NOT. ok_rotate) THEN 163 cyc_rot_max = 1 164 WRITE(numout,*) 'xuhui: cyc_rot_max is forced to be 1, when ok_rotate is false' 165 ELSE !ok_rotate 166 dyn_plntdt = .FALSE. 167 WRITE(numout,*) 'xuhui: deactivate plantdate dynamics so that it follows rotation command' 168 ENDIF 169 !!!! end rotation, xuhui 170 137 171 ! 138 172 !Config Key = DO_FLOODPLAINS … … 162 196 CALL getin_p('CHECK_WATERBAL', check_waterbal) 163 197 198 IF (check_waterbal .AND. do_fullirr) THEN 199 WRITE(numout,*) "setting conflicts: " 200 WRITE(numout,*) "DO_FULLIRR and CHECK_WATERBAL cannot coexist" 201 WRITE(numout,*) "change CHECK_WATERBAL to false" 202 check_waterbal = .FALSE. 203 ENDIF 204 164 205 !Config Key = OK_EXPLICITSNOW 165 206 !Config Desc = Activate explict snow scheme … … 171 212 CALL getin_p('OK_EXPLICITSNOW', ok_explicitsnow) 172 213 214 !Config Key = OK_PC 215 !Config Desc = Activate explict snow scheme 216 !Config If = OK_SECHIBA 217 !Config Def = FALSE 218 !Config Help = Activate explicit snow scheme instead of default snow scheme 219 !Config Units = [FLAG] 220 ok_pc = .FALSE. 221 CALL getin_p('OK_PC', ok_pc) 222 173 223 ! 174 224 !Config Key = STOMATE_OK_STOMATE … … 181 231 ok_stomate = .FALSE. 182 232 CALL getin_p('STOMATE_OK_STOMATE',ok_stomate) 183 WRITE(numout,*) 'STOMATE is activated: ',ok_stomate233 IF (printlev>=1) WRITE(numout,*) 'STOMATE is activated: ',ok_stomate 184 234 185 235 … … 196 246 CALL getin_p('STOMATE_OK_CO2', ok_co2) 197 247 END IF 198 WRITE(numout,*) 'photosynthesis: ', ok_co2248 IF (printlev>=1) WRITE(numout,*) 'Photosynthesis: ', ok_co2 199 249 200 250 ! … … 218 268 ok_bvoc = .FALSE. 219 269 CALL getin_p('CHEMISTRY_BVOC', ok_bvoc) 220 WRITE(numout,*) 'Biogenic emissions: ', ok_bvoc270 IF (printlev>=1) WRITE(numout,*) 'Biogenic emissions: ', ok_bvoc 221 271 222 272 IF ( ok_bvoc ) THEN … … 244 294 ! 245 295 CALL getin_p('CHEMISTRY_LEAFAGE', ok_leafage) 246 WRITE(numout,*) 'Leaf Age: ', ok_leafage296 IF (printlev>=1) WRITE(numout,*) 'Leaf Age: ', ok_leafage 247 297 ! 248 298 !Config Key = CANOPY_EXTINCTION … … 254 304 ! 255 305 CALL getin_p('CANOPY_EXTINCTION', ok_radcanopy) 256 WRITE(numout,*) 'Canopy radiative transfer model: ', ok_radcanopy306 IF (printlev>=1) WRITE(numout,*) 'Canopy radiative transfer model: ', ok_radcanopy 257 307 ! 258 308 !Config Key = CANOPY_MULTILAYER … … 264 314 ! 265 315 CALL getin_p('CANOPY_MULTILAYER', ok_multilayer) 266 WRITE(numout,*) 'Multi-layer Canopy model: ', ok_multilayer316 IF (printlev>=1) WRITE(numout,*) 'Multi-layer Canopy model: ', ok_multilayer 267 317 ! 268 318 !Config Key = NOx_RAIN_PULSE … … 274 324 ! 275 325 CALL getin_p('NOx_RAIN_PULSE', ok_pulse_NOx) 276 WRITE(numout,*) 'Rain NOx pulsing: ', ok_pulse_NOx326 IF (printlev>=1) WRITE(numout,*) 'Rain NOx pulsing: ', ok_pulse_NOx 277 327 ! 278 328 !Config Key = NOx_BBG_FERTIL … … 285 335 ! 286 336 CALL getin_p('NOx_BBG_FERTIL', ok_bbgfertil_NOx) 287 WRITE(numout,*) 'NOx bbg fertil effect: ', ok_bbgfertil_NOx337 IF (printlev>=1) WRITE(numout,*) 'NOx bbg fertil effect: ', ok_bbgfertil_NOx 288 338 ! 289 339 !Config Key = NOx_FERTILIZERS_USE … … 296 346 ! 297 347 CALL getin_p('NOx_FERTILIZERS_USE', ok_cropsfertil_NOx) 298 WRITE(numout,*) 'NOx Fertilizers use: ', ok_cropsfertil_NOx348 IF (printlev>=1) WRITE(numout,*) 'NOx Fertilizers use: ', ok_cropsfertil_NOx 299 349 !Config Key = Is CO2 impact on BVOC accounted for using Possell 2005 ? 300 350 !Config Desc = In this case we use Possell 2005 parameterisation … … 306 356 ok_co2bvoc_poss = .FALSE. 307 357 CALL getin_p('CO2_FOR_BVOC_POSSELL', ok_co2bvoc_poss) 308 WRITE(*,*) 'CO2 impact on BVOC - Possell parameterisation: ', ok_co2bvoc_poss358 IF (printlev>=1) WRITE(numout,*) 'CO2 impact on BVOC - Possell parameterisation: ', ok_co2bvoc_poss 309 359 ! 310 360 !Config Key = Is CO2 impact on BVOC accounted for using Wilkinson 2009 ? … … 317 367 ok_co2bvoc_wilk = .FALSE. 318 368 CALL getin_p('CO2_FOR_BVOC_WILKINSON', ok_co2bvoc_wilk) 319 WRITE(*,*) 'CO2 impact on BVOC - Wilkinson parameterisation: ', ok_co2bvoc_wilk 320 ! 321 369 IF (printlev>=1) WRITE(numout,*) 'CO2 impact on BVOC - Wilkinson parameterisation: ', ok_co2bvoc_wilk 370 322 371 ! 323 372 ! control initialisation with sechiba … … 331 380 IF ( ok_multilayer .AND. .NOT.(ok_radcanopy) ) THEN 332 381 ok_radcanopy = .TRUE. 333 WRITE(numout,*) 'You want to use the multilayer model without activating the flag CANOPY_EXTINCTION' 334 WRITE(numout,*) 'We set CANOPY_EXTINCTION to TRUE to ensure consistency' 382 IF (printlev>=1) WRITE(numout,*) 'You want to use the multilayer model without activating the flag CANOPY_EXTINCTION' 383 IF (printlev>=1) WRITE(numout,*) 'We set CANOPY_EXTINCTION to TRUE to ensure consistency' 384 ENDIF 385 IF ( ok_dgvm .AND. ok_rotate) THEN 386 STOP 'ok_dgvm & ok_rotate cannot be true at the same time' 335 387 ENDIF 336 388 … … 356 408 ! 357 409 CALL getin_p('NVM',nvm) 358 WRITE(numout,*)'the number of pfts used by the model is : ', nvm410 IF (printlev>=1) WRITE(numout,*) 'The number of pfts used by the model is : ', nvm 359 411 360 412 ! 2. Should we read the parameters in the run.def file ? … … 418 470 IF ( ok_sechiba ) THEN 419 471 IF (impose_param ) THEN 472 IF (printlev>=2) WRITE(numout,*)'In control_initialize: call config_sechiba_parameters and config_sechiba_pft_parameters' 420 473 CALL config_sechiba_parameters 421 474 CALL config_sechiba_pft_parameters() 422 WRITE(numout,*)' some sechiba parameters have been imposed '423 475 ENDIF 424 476 ENDIF … … 450 502 END IF 451 503 452 ! Define diaglev 453 ! We take the top nslm (number of layer in CWRR) layer of the thermodynamics 454 ! for the diagnostics. The layers in the hydrology and the thermodynamics are 455 ! placed a the same depth (the top nslm layers) but the upper boundary condition 456 ! is simpler in the thermodynamics. 457 nbdl = nslm 458 ALLOCATE(diaglev(nbdl), stat=ier) 504 ! Define diaglev as the depth of the bottom of each layer 505 ! diaglev defines the vertical axes for the variables transmitted from sechiba 506 ! to stomate (stempdiag, shumdiag). 507 ALLOCATE(diaglev(nslm), stat=ier) 459 508 IF (ier /= 0) CALL ipslerr_p(3,'control_initialize','Pb in allocation of diaglev','','') 460 509 461 510 IF ( hydrol_cwrr ) THEN 462 511 ! Get diaglev from module vertical for CWRR 463 diaglev=znt(1:nbdl) 512 ! We take the top nslm (number of layer in CWRR) layer of the thermodynamics 513 ! for the diagnostics. The layers in the hydrology and the thermodynamics are 514 ! placed a the same depth (the top nslm layers) but the upper boundary condition 515 ! is simpler in the thermodynamics. 516 diaglev=zlt(1:nslm) 464 517 ELSE 465 518 ! Calculate diaglev for Choisnel 466 DO jv = 1, n bdl-1467 diaglev(jv) = zmaxh/(2**(n bdl-1) -1) * ( ( 2**(jv-1) -1) + ( 2**(jv)-1) ) / deux519 DO jv = 1, nslm-1 520 diaglev(jv) = zmaxh/(2**(nslm-1) -1) * ( ( 2**(jv-1) -1) + ( 2**(jv)-1) ) / deux 468 521 ENDDO 469 diaglev(n bdl) = zmaxh522 diaglev(nslm) = zmaxh 470 523 END IF 471 WRITE(numout,*) 'In control_initialize, diaglev = ',diaglev524 IF (printlev>=2) WRITE(numout,*) 'In control_initialize, diaglev = ',diaglev 472 525 473 526 IF ( ok_co2 ) THEN 474 527 IF ( impose_param ) THEN 528 IF (printlev>=2) WRITE(numout,*)'In control_initialize: call config_co2_parameters' 475 529 CALL config_co2_parameters 476 WRITE(numout,*)' some co2 parameters have been imposed '477 530 ENDIF 478 531 ENDIF … … 480 533 IF ( ok_stomate ) THEN 481 534 IF ( impose_param ) THEN 535 IF (printlev>=2) WRITE(numout,*)'In control_initialize: call config_stomate_parameters and config_stomate_pft_parameters' 482 536 CALL config_stomate_parameters 483 537 CALL config_stomate_pft_parameters 484 WRITE(numout,*)' some stomate parameters have been imposed '485 538 ENDIF 486 539 ENDIF … … 488 541 IF ( ok_dgvm ) THEN 489 542 IF ( impose_param ) THEN 543 IF (printlev>=2) WRITE(numout,*)'In control_initialize: call config_dgvm_parameters' 490 544 CALL config_dgvm_parameters 491 WRITE(numout,*)' some dgvm parameters have been imposed '492 545 ENDIF 493 546 ENDIF -
branches/publications/ORCHIDEE-GMv3.2/ORCHIDEE/src_parameters/pft_parameters.f90
r5816 r6939 2 2 ! MODULE : pft_parameters 3 3 ! 4 ! CONTACT : orchidee-help _at_ ipsl.jussieu.fr4 ! CONTACT : orchidee-help _at_ listes.ipsl.fr 5 5 ! 6 6 ! LICENCE : IPSL (2011) … … 32 32 USE vertical_soil_var 33 33 USE constantes_mtc 34 USE constantes 34 USE constantes_soil_var !!! only for nstm & pref_soil_veg 35 35 USE ioipsl 36 36 USE ioipsl_para 37 37 USE defprec 38 39 IMPLICIT NONE 40 41 CONTAINS 38 42 39 IMPLICIT NONE40 41 CONTAINS42 !43 43 44 44 !! ================================================================================================================================ … … 78 78 !_ ================================================================================================================================ 79 79 80 SUBROUTINE pft_parameters_main() 81 82 IMPLICIT NONE 83 84 !! 0. Variables and parameters declaration 85 86 !! 0.4 Local variables 87 88 INTEGER(i_std) :: j !! Index (unitless) 89 90 !_ ================================================================================================================================ 91 92 ! 93 ! PFT global 94 ! 95 96 IF(l_first_pft_parameters) THEN 97 98 !! 1. First time step 99 IF(printlev>=3) THEN 100 WRITE(numout,*) 'l_first_pft_parameters :we read the parameters from the def files' 101 ENDIF 102 103 !! 2. Memory allocation for the pfts-parameters 104 CALL pft_parameters_alloc() 105 106 !! 3. Correspondance table 107 108 !! 3.1 Initialisation of the correspondance table 109 !! Initialisation of the correspondance table 110 IF (nvm == nvmc) THEN 111 WRITE(numout,*) 'Message to the user : we will use ORCHIDEE to its standard configuration' 112 pft_to_mtc = (/ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 /) 113 ELSE 114 pft_to_mtc(:) = undef_int 115 ENDIF !(nvm == nvmc) 116 117 !! 3.2 Reading of the conrrespondance table in the .def file 118 ! 119 !Config Key = PFT_TO_MTC 120 !Config Desc = correspondance array linking a PFT to MTC 121 !Config if = OK_SECHIBA or OK_STOMATE 122 !Config Def = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 123 !Config Help = 124 !Config Units = [-] 125 CALL getin_p('PFT_TO_MTC',pft_to_mtc) 126 127 !! 3.3 If the user want to use the standard configuration, he needn't to fill the correspondance array 128 !! If the configuration is wrong, send a error message to the user. 129 IF(nvm /= nvmc ) THEN 130 ! 131 IF(pft_to_mtc(1) == undef_int) THEN 132 STOP ' The array PFT_TO_MTC is empty : we stop' 133 ENDIF !(pft_to_mtc(1) == undef_int) 134 ! 135 ENDIF !(nvm /= nvmc ) 136 137 !! 3.4 Some error messages 138 139 !! 3.4.1 What happened if pft_to_mtc(j) > nvmc or pft_to_mtc(j) <=0 (if the mtc doesn't exist)? 80 SUBROUTINE pft_parameters_main() 81 82 IMPLICIT NONE 83 84 !! 0. Variables and parameters declaration 85 86 !! 0.4 Local variables 87 88 INTEGER(i_std) :: j !! Index (unitless) 89 90 !_ ================================================================================================================================ 91 92 ! 93 ! PFT global 94 ! 95 96 IF(l_first_pft_parameters) THEN 97 98 !! 1. First time step 99 IF(printlev>=3) THEN 100 WRITE(numout,*) 'l_first_pft_parameters :we read the parameters from the def files' 101 ENDIF 102 103 !! 2. Memory allocation for the pfts-parameters 104 CALL pft_parameters_alloc() 105 106 !! 3. Correspondance table 107 108 !! 3.1 Initialisation of the correspondance table 109 !! Initialisation of the correspondance table 110 DO j = 1, nvm 111 pft_to_mtc(j) = j 112 ENDDO ! j=1, nvm 113 114 !! 3.2 Reading of the conrrespondance table in the .def file 115 ! 116 !Config Key = PFT_TO_MTC 117 !Config Desc = correspondance array linking a PFT to MTC 118 !Config if = OK_SECHIBA or OK_STOMATE 119 !Config Def = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 120 !Config Help = 121 !Config Units = [-] 122 CALL getin_p('PFT_TO_MTC',pft_to_mtc) 123 124 !! 3.3 If the user want to use the standard configuration, he needn't to fill the correspondance array 125 !! If the configuration is wrong, send a error message to the user. 126 IF(nvm /= nvmc ) THEN 127 ! 128 IF(pft_to_mtc(1) == undef_int) THEN 129 STOP ' The array PFT_TO_MTC is empty : we stop' 130 ENDIF !(pft_to_mtc(1) == undef_int) 131 ! 132 ENDIF !(nvm /= nvmc ) 133 134 !! 3.4 Some error messages 135 136 !! 3.4.1 What happened if pft_to_mtc(j) > nvmc or pft_to_mtc(j) <=0 (if the mtc doesn't exist)? 140 137 DO j = 1, nvm ! Loop over # PFTs 141 138 ! … … 166 163 ! 167 164 ENDIF !(pft_to_mtc(1) /= 1) 168 169 170 !! 4.Initialisation of the pfts-parameters 171 CALL pft_parameters_init() 172 173 !! 5. Useful data 174 175 !! 5.1 Read the name of the PFTs given by the user 176 ! 177 !Config Key = PFT_NAME 178 !Config Desc = Name of a PFT 179 !Config if = OK_SECHIBA or OK_STOMATE 180 !Config Def = bare ground, tropical broad-leaved evergreen, tropical broad-leaved raingreen, 181 !Config temperate needleleaf evergreen, temperate broad-leaved evergreen temperate broad-leaved summergreen, 182 !Config boreal needleleaf evergreen, boreal broad-leaved summergreen, boreal needleleaf summergreen, 183 !Config C3 grass, C4 grass, C3 agriculture, C4 agriculture 184 !Config Help = the user can name the new PFTs he/she introducing for new species 185 !Config Units = [-] 186 CALL getin_p('PFT_NAME',pft_name) 187 188 !! 5.2 A useful message to the user: correspondance between the number of the pft 189 !! and the name of the associated mtc 190 DO j = 1,nvm ! Loop over # PFTs 191 ! 192 WRITE(numout,*) 'the PFT',j, 'called ', PFT_name(j),'corresponds to the MTC : ',MTC_name(pft_to_mtc(j)) 193 ! 194 ENDDO ! Loop over # PFTs 195 196 197 !! 6. End message 198 IF(printlev>=3) THEN 199 WRITE(numout,*) 'pft_parameters_done' 200 ENDIF 201 202 !! 8. Reset flag 203 l_first_pft_parameters = .FALSE. 204 205 ELSE 206 207 RETURN 208 209 ENDIF !(l_first_pft_parameters) 210 211 END SUBROUTINE pft_parameters_main 212 ! 213 != 214 ! 165 166 167 !! 4.Initialisation of the pfts-parameters 168 CALL pft_parameters_init() 169 170 !! 5. Useful data 171 172 !! 5.1 Read the name of the PFTs given by the user 173 ! 174 !Config Key = PFT_NAME 175 !Config Desc = Name of a PFT 176 !Config if = OK_SECHIBA or OK_STOMATE 177 !Config Def = bare ground, tropical broad-leaved evergreen, tropical broad-leaved raingreen, 178 !Config temperate needleleaf evergreen, temperate broad-leaved evergreen temperate broad-leaved summergreen, 179 !Config boreal needleleaf evergreen, boreal broad-leaved summergreen, boreal needleleaf summergreen, 180 !Config C3 grass, C4 grass, C3 agriculture, C4 agriculture 181 !Config Help = the user can name the new PFTs he/she introducing for new species 182 !Config Units = [-] 183 CALL getin_p('PFT_NAME',pft_name) 184 185 !! 5.2 A useful message to the user: correspondance between the number of the pft 186 !! and the name of the associated mtc 187 IF (printlev >=1 ) THEN 188 WRITE(numout,*) '' 189 DO j = 2,nvm ! Loop over # PFTs 190 WRITE(numout,*) 'The PFT',j, 'called ', trim(PFT_name(j)),' corresponds to the MTC : ',trim(MTC_name(pft_to_mtc(j))) 191 END DO 192 WRITE(numout,*) '' 193 END IF 194 195 196 !! 6. End message 197 IF (printlev>=3) WRITE(numout,*) 'pft_parameters_done' 198 199 !! 8. Reset flag 200 l_first_pft_parameters = .FALSE. 201 202 ELSE 203 204 RETURN 205 206 ENDIF !(l_first_pft_parameters) 207 208 END SUBROUTINE pft_parameters_main 209 215 210 216 211 !! ================================================================================================================================ … … 237 232 !_ ================================================================================================================================ 238 233 239 SUBROUTINE pft_parameters_init() 240 241 IMPLICIT NONE 242 243 !! 0. Variables and parameters declaration 244 245 !! 0.1 Input variables 246 247 !! 0.4 Local variables 248 249 INTEGER(i_std) :: jv !! Index (unitless) 250 !_ ================================================================================================================================ 251 252 ! 253 ! 1. Correspondance between the PFTs values and thes MTCs values 254 ! 255 234 SUBROUTINE pft_parameters_init() 235 236 IMPLICIT NONE 237 238 !! 0. Variables and parameters declaration 239 240 !! 0.1 Input variables 241 INTEGER(i_std) :: jv !! Index (unitless) 242 !_ ================================================================================================================================ 256 243 257 244 ! 1.1 For parameters used anytime … … 269 256 type_of_lai(:) = type_of_lai_mtc(pft_to_mtc(:)) 270 257 natural(:) = natural_mtc(pft_to_mtc(:)) 258 ! dgvmjc 259 pasture(:) = pasture_mtc(pft_to_mtc(:)) 260 ! end dgvmjc 271 261 ! 272 262 ! Water - sechiba … … 282 272 humcste(:) = humcste_ref2m(pft_to_mtc(:)) ! values for 2m soil depth 283 273 END IF 274 275 irrig_threshold(:) = irrig_threshold_mtc(pft_to_mtc(:)) 276 irrig_fulfill(:) = irrig_fulfill_mtc(pft_to_mtc(:)) 284 277 ! 285 278 ! Soil - vegetation 286 279 ! 287 280 pref_soil_veg(:) = pref_soil_veg_mtc(pft_to_mtc(:)) 281 ! 282 ! 283 ! Vegetation - age classes 284 ! 285 agec_group(:) = agec_group_mtc(pft_to_mtc(:)) 288 286 ! 289 287 ! Photosynthesis … … 294 292 E_KmC(:) = E_KmC_mtc(pft_to_mtc(:)) 295 293 E_KmO(:) = E_KmO_mtc(pft_to_mtc(:)) 294 E_Sco(:) = E_Sco_mtc(pft_to_mtc(:)) 296 295 E_gamma_star(:) = E_gamma_star_mtc(pft_to_mtc(:)) 297 296 E_Vcmax(:) = E_Vcmax_mtc(pft_to_mtc(:)) … … 305 304 D_Vcmax(:) = D_Vcmax_mtc(pft_to_mtc(:)) 306 305 D_Jmax(:) = D_Jmax_mtc(pft_to_mtc(:)) 306 E_gm(:) = E_gm_mtc(pft_to_mtc(:)) 307 S_gm(:) = S_gm_mtc(pft_to_mtc(:)) 308 D_gm(:) = D_gm_mtc(pft_to_mtc(:)) 307 309 E_Rd(:) = E_Rd_mtc(pft_to_mtc(:)) 308 310 Vcmax25(:) = Vcmax25_mtc(pft_to_mtc(:)) … … 311 313 KmC25(:) = KmC25_mtc(pft_to_mtc(:)) 312 314 KmO25(:) = KmO25_mtc(pft_to_mtc(:)) 315 Sco25(:) = Sco25_mtc(pft_to_mtc(:)) 316 gm25(:) = gm25_mtc(pft_to_mtc(:)) 313 317 gamma_star25(:) = gamma_star25_mtc(pft_to_mtc(:)) 314 318 a1(:) = a1_mtc(pft_to_mtc(:)) … … 324 328 theta(:) = theta_mtc(pft_to_mtc(:)) 325 329 alpha_LL(:) = alpha_LL_mtc(pft_to_mtc(:)) 330 stress_vcmax(:) = stress_vcmax_mtc(pft_to_mtc(:)) 331 stress_gs(:) = stress_gs_mtc(pft_to_mtc(:)) 332 stress_gm(:) = stress_gm_mtc(pft_to_mtc(:)) 326 333 ext_coeff(:) = ext_coeff_mtc(pft_to_mtc(:)) 327 334 ext_coeff_vegetfrac(:) = ext_coeff_vegetfrac_mtc(pft_to_mtc(:)) … … 353 360 354 361 355 ! 1.2 For sechiba parameters 362 ! 363 ! 1. Correspondance between the PFTs values and thes MTCs values 364 ! 356 365 357 366 IF (ok_sechiba) THEN … … 384 393 alb_leaf_nir(:) = alb_leaf_nir_mtc(pft_to_mtc(:)) 385 394 !- 395 396 !chaoyue+ 397 ! Permafrost - sechiba 398 permafrost_veg_exists(:)= permafrost_veg_exists_mtc(pft_to_mtc(:)) 399 !chaoyue- 400 386 401 ENDIF !(ok_sechiba) 387 402 388 ! 1.3 For BVOC parameters 389 390 IF (ok_bvoc) THEN 391 ! 392 ! Biogenic Volatile Organic Compounds 393 ! 394 em_factor_isoprene(:) = em_factor_isoprene_mtc(pft_to_mtc(:)) 395 em_factor_monoterpene(:) = em_factor_monoterpene_mtc(pft_to_mtc(:)) 396 LDF_mono = LDF_mono_mtc 397 LDF_sesq = LDF_sesq_mtc 398 LDF_meth = LDF_meth_mtc 399 LDF_acet = LDF_acet_mtc 400 401 em_factor_apinene(:) = em_factor_apinene_mtc(pft_to_mtc(:)) 402 em_factor_bpinene(:) = em_factor_bpinene_mtc(pft_to_mtc(:)) 403 em_factor_limonene(:) = em_factor_limonene_mtc(pft_to_mtc(:)) 404 em_factor_myrcene(:) = em_factor_myrcene_mtc(pft_to_mtc(:)) 405 em_factor_sabinene(:) = em_factor_sabinene_mtc(pft_to_mtc(:)) 406 em_factor_camphene(:) = em_factor_camphene_mtc(pft_to_mtc(:)) 407 em_factor_3carene(:) = em_factor_3carene_mtc(pft_to_mtc(:)) 408 em_factor_tbocimene(:) = em_factor_tbocimene_mtc(pft_to_mtc(:)) 409 em_factor_othermonot(:) = em_factor_othermonot_mtc(pft_to_mtc(:)) 410 em_factor_sesquiterp(:) = em_factor_sesquiterp_mtc(pft_to_mtc(:)) 411 412 beta_mono = beta_mono_mtc 413 beta_sesq = beta_sesq_mtc 414 beta_meth = beta_meth_mtc 415 beta_acet = beta_acet_mtc 416 beta_oxyVOC = beta_oxyVOC_mtc 417 418 em_factor_ORVOC(:) = em_factor_ORVOC_mtc(pft_to_mtc(:)) 419 em_factor_OVOC(:) = em_factor_OVOC_mtc(pft_to_mtc(:)) 420 em_factor_MBO(:) = em_factor_MBO_mtc(pft_to_mtc(:)) 421 em_factor_methanol(:) = em_factor_methanol_mtc(pft_to_mtc(:)) 422 em_factor_acetone(:) = em_factor_acetone_mtc(pft_to_mtc(:)) 423 em_factor_acetal(:) = em_factor_acetal_mtc(pft_to_mtc(:)) 424 em_factor_formal(:) = em_factor_formal_mtc(pft_to_mtc(:)) 425 em_factor_acetic(:) = em_factor_acetic_mtc(pft_to_mtc(:)) 426 em_factor_formic(:) = em_factor_formic_mtc(pft_to_mtc(:)) 427 em_factor_no_wet(:) = em_factor_no_wet_mtc(pft_to_mtc(:)) 428 em_factor_no_dry(:) = em_factor_no_dry_mtc(pft_to_mtc(:)) 429 Larch(:) = Larch_mtc(pft_to_mtc(:)) 430 !- 431 ENDIF !(ok_bvoc) 432 433 ! 1.4 For stomate parameters 403 ! 1.1 For parameters used anytime 404 405 PFT_name(:) = MTC_name(pft_to_mtc(:)) 406 ! 407 ! Vegetation structure 408 ! 409 veget_ori_fixed_test_1(:) = veget_ori_fixed_mtc(pft_to_mtc(:)) 410 llaimax(:) = llaimax_mtc(pft_to_mtc(:)) 411 llaimin(:) = llaimin_mtc(pft_to_mtc(:)) 412 height_presc(:) = height_presc_mtc(pft_to_mtc(:)) 413 z0_over_height(:) = z0_over_height_mtc(pft_to_mtc(:)) 414 ratio_z0m_z0h(:) = ratio_z0m_z0h_mtc(pft_to_mtc(:)) 415 type_of_lai(:) = type_of_lai_mtc(pft_to_mtc(:)) 416 natural(:) = natural_mtc(pft_to_mtc(:)) 417 ! 418 ! Water - sechiba 419 ! 420 IF (zmaxh == 2.0) THEN 421 IF (printlev>=2) WRITE(numout,*)'Initialize humcst using reference values for 2m soil depth' 422 humcste(:) = humcste_ref2m(pft_to_mtc(:)) ! values for 2m soil depth 423 ELSE IF (zmaxh == 4.0) THEN 424 IF (printlev>=2) WRITE(numout,*)'Initialize humcst using reference values for 4m soil depth' 425 humcste(:) = humcste_ref4m(pft_to_mtc(:)) ! values for 4m soil depth 426 ELSE 427 IF (printlev>=2) WRITE(numout,*)'Note that humcste is initialized with values for 2m soil depth bur zmaxh=', zmaxh 428 humcste(:) = humcste_ref2m(pft_to_mtc(:)) ! values for 2m soil depth 429 END IF 430 ! 431 ! Soil - vegetation 432 ! 433 pref_soil_veg(:) = pref_soil_veg_mtc(pft_to_mtc(:)) 434 ! 435 ! Photosynthesis 436 ! 437 is_c4(:) = is_c4_mtc(pft_to_mtc(:)) 438 vcmax_fix(:) = vcmax_fix_mtc(pft_to_mtc(:)) 439 downregulation_co2_coeff(:) = downregulation_co2_coeff_mtc(pft_to_mtc(:)) 440 E_KmC(:) = E_KmC_mtc(pft_to_mtc(:)) 441 E_KmO(:) = E_KmO_mtc(pft_to_mtc(:)) 442 E_Sco(:) = E_Sco_mtc(pft_to_mtc(:)) 443 E_gamma_star(:) = E_gamma_star_mtc(pft_to_mtc(:)) 444 E_Vcmax(:) = E_Vcmax_mtc(pft_to_mtc(:)) 445 E_Jmax(:) = E_Jmax_mtc(pft_to_mtc(:)) 446 aSV(:) = aSV_mtc(pft_to_mtc(:)) 447 bSV(:) = bSV_mtc(pft_to_mtc(:)) 448 tphoto_min(:) = tphoto_min_mtc(pft_to_mtc(:)) 449 tphoto_max(:) = tphoto_max_mtc(pft_to_mtc(:)) 450 aSJ(:) = aSJ_mtc(pft_to_mtc(:)) 451 bSJ(:) = bSJ_mtc(pft_to_mtc(:)) 452 D_Vcmax(:) = D_Vcmax_mtc(pft_to_mtc(:)) 453 D_Jmax(:) = D_Jmax_mtc(pft_to_mtc(:)) 454 E_gm(:) = E_gm_mtc(pft_to_mtc(:)) 455 S_gm(:) = S_gm_mtc(pft_to_mtc(:)) 456 D_gm(:) = D_gm_mtc(pft_to_mtc(:)) 457 E_Rd(:) = E_Rd_mtc(pft_to_mtc(:)) 458 Vcmax25(:) = Vcmax25_mtc(pft_to_mtc(:)) 459 arJV(:) = arJV_mtc(pft_to_mtc(:)) 460 brJV(:) = brJV_mtc(pft_to_mtc(:)) 461 KmC25(:) = KmC25_mtc(pft_to_mtc(:)) 462 KmO25(:) = KmO25_mtc(pft_to_mtc(:)) 463 Sco25(:) = Sco25_mtc(pft_to_mtc(:)) 464 gm25(:) = gm25_mtc(pft_to_mtc(:)) 465 gamma_star25(:) = gamma_star25_mtc(pft_to_mtc(:)) 466 a1(:) = a1_mtc(pft_to_mtc(:)) 467 b1(:) = b1_mtc(pft_to_mtc(:)) 468 g0(:) = g0_mtc(pft_to_mtc(:)) 469 h_protons(:) = h_protons_mtc(pft_to_mtc(:)) 470 fpsir(:) = fpsir_mtc(pft_to_mtc(:)) 471 fQ(:) = fQ_mtc(pft_to_mtc(:)) 472 fpseudo(:) = fpseudo_mtc(pft_to_mtc(:)) 473 kp(:) = kp_mtc(pft_to_mtc(:)) 474 alpha(:) = alpha_mtc(pft_to_mtc(:)) 475 gbs(:) = gbs_mtc(pft_to_mtc(:)) 476 theta(:) = theta_mtc(pft_to_mtc(:)) 477 alpha_LL(:) = alpha_LL_mtc(pft_to_mtc(:)) 478 stress_vcmax(:) = stress_vcmax_mtc(pft_to_mtc(:)) 479 stress_gs(:) = stress_gs_mtc(pft_to_mtc(:)) 480 stress_gm(:) = stress_gm_mtc(pft_to_mtc(:)) 481 ext_coeff(:) = ext_coeff_mtc(pft_to_mtc(:)) 482 ext_coeff_vegetfrac(:) = ext_coeff_vegetfrac_mtc(pft_to_mtc(:)) 483 ! 484 !! Define labels from physiologic characteristics 485 ! 486 leaf_tab(:) = leaf_tab_mtc(pft_to_mtc(:)) 487 pheno_model(:) = pheno_model_mtc(pft_to_mtc(:)) 488 ! 489 is_tree(:) = .FALSE. 490 DO jv = 1,nvm 491 IF ( leaf_tab(jv) <= 2 ) is_tree(jv) = .TRUE. 492 END DO 493 ! 494 is_deciduous(:) = .FALSE. 495 DO jv = 1,nvm 496 IF ( is_tree(jv) .AND. (pheno_model(jv) /= "none") ) is_deciduous(jv) = .TRUE. 497 END DO 498 ! 499 is_evergreen(:) = .FALSE. 500 DO jv = 1,nvm 501 IF ( is_tree(jv) .AND. (pheno_model(jv) == "none") ) is_evergreen(jv) = .TRUE. 502 END DO 503 ! 504 is_needleleaf(:) = .FALSE. 505 DO jv = 1,nvm 506 IF ( leaf_tab(jv) == 2 ) is_needleleaf(jv) = .TRUE. 507 END DO 508 509 510 ! 1.2 For sechiba parameters 434 511 435 512 IF (ok_stomate) THEN 513 bm_sapl(:,:,:) = zero 514 maxdia(:) = undef 515 migrate(:) = undef 516 cn_sapl(:) = undef 517 leaf_timecst(:) = undef 518 lai_initmin(:) = undef 436 519 ! 437 520 ! Vegetation structure - stomate … … 444 527 R0(:) = R0_mtc(pft_to_mtc(:)) 445 528 S0(:) = S0_mtc(pft_to_mtc(:)) 529 ! 530 !pss+:Wetland CH4 methane 531 ! 532 rdepth_v(:) = rdepth_v_mtc(pft_to_mtc(:)) 533 sdepth_v(:) = sdepth_v_mtc(pft_to_mtc(:)) 534 tveg_v(:) = tveg_v_mtc(pft_to_mtc(:)) 535 !pss- 536 446 537 ! 447 538 ! Respiration - stomate … … 464 555 flam(:) = flam_mtc(pft_to_mtc(:)) 465 556 resist(:) = resist_mtc(pft_to_mtc(:)) 557 !spitfire 558 dens_fuel(:) = dens_fuel_mtc(pft_to_mtc(:)) 559 f_sh(:) = f_sh_mtc(pft_to_mtc(:)) 560 crown_length(:) = crown_length_mtc(pft_to_mtc(:)) 561 BTpar1(:) = BTpar1_mtc(pft_to_mtc(:)) 562 BTpar2(:) = BTpar2_mtc(pft_to_mtc(:)) 563 r_ck(:) = r_ck_mtc(pft_to_mtc(:)) 564 p_ck(:) = p_ck_mtc(pft_to_mtc(:)) 565 ef_CO2(:) = ef_CO2_mtc(pft_to_mtc(:)) 566 ef_CO(:) = ef_CO_mtc(pft_to_mtc(:)) 567 ef_CH4(:) = ef_CH4_mtc(pft_to_mtc(:)) 568 ef_VOC(:) = ef_VOC_mtc(pft_to_mtc(:)) 569 ef_TPM(:) = ef_TPM_mtc(pft_to_mtc(:)) 570 ef_NOx(:) = ef_NOx_mtc(pft_to_mtc(:)) 571 me(:) = me_mtc(pft_to_mtc(:)) 572 fire_max_cf_100hr(:) = fire_max_cf_100hr_mtc(pft_to_mtc(:)) 573 fire_max_cf_1000hr(:) = fire_max_cf_1000hr_mtc(pft_to_mtc(:)) 574 !endspit 575 ! 576 ! grassland management 577 ! 466 578 !gmjc 467 !468 ! grassland management469 !470 579 is_grassland_manag(:) = is_grassland_manag_mtc(pft_to_mtc(:)) 471 580 is_grassland_cut(:) = is_grassland_cut_mtc(pft_to_mtc(:)) 472 581 is_grassland_grazed(:) = is_grassland_grazed_mtc(pft_to_mtc(:)) 473 is_grassland_wild(:) = is_grassland_wild_mtc(pft_to_mtc(:))474 582 management_intensity(:) = management_intensity_mtc(pft_to_mtc(:)) 475 583 management_start(:) = management_start_mtc(pft_to_mtc(:)) … … 479 587 sla_max(:) = sla_max_mtc(pft_to_mtc(:)) 480 588 !end gmjc 589 590 !gluc plus bioenergy 591 is_bioe1(:) = is_bioe1_mtc(pft_to_mtc(:)) 592 481 593 ! 482 594 ! Flux - LUC … … 485 597 coeff_lcchange_10(:) = coeff_lcchange_10_mtc(pft_to_mtc(:)) 486 598 coeff_lcchange_100(:) = coeff_lcchange_100_mtc(pft_to_mtc(:)) 599 600 coeff_indwood_1(:) = coeff_indwood_1_mtc(pft_to_mtc(:)) 601 coeff_indwood_10(:) = coeff_indwood_10_mtc(pft_to_mtc(:)) 602 coeff_indwood_100(:) = coeff_indwood_100_mtc(pft_to_mtc(:)) 487 603 ! 488 604 ! Phenology … … 535 651 tcm_crit(:) = tcm_crit_mtc(pft_to_mtc(:)) 536 652 !- 653 654 !!!!! crop parameters 655 656 ! STICS:: main LAIdev 657 ok_LAIdev(:) = ok_LAIdev_mtc(pft_to_mtc(:)) 658 ! STICS:: 659 SP_codeplante(:) = SP_codeplante_mtc(pft_to_mtc(:)) 660 SP_stade0(:) = SP_stade0_mtc(pft_to_mtc(:)) 661 SP_iplt0(:) = SP_iplt0_mtc(pft_to_mtc(:)) 662 SP_nbox(:) = SP_nbox_mtc(pft_to_mtc(:)) 663 SP_iwater(:) = SP_iwater_mtc(pft_to_mtc(:)) 664 SP_codesimul(:) = SP_codesimul_mtc(pft_to_mtc(:)) 665 SP_codelaitr(:) = SP_codelaitr_mtc(pft_to_mtc(:)) 666 SP_slamax(:) = SP_slamax_mtc(pft_to_mtc(:)) 667 SP_slamin(:) = SP_slamin_mtc(pft_to_mtc(:)) 668 SP_codeperenne(:) = SP_codeperenne_mtc(pft_to_mtc(:)) 669 670 SP_codcueille(:) = SP_codcueille_mtc(pft_to_mtc(:)) 671 SP_codegdh(:) = SP_codegdh_mtc(pft_to_mtc(:)) 672 SP_codetemp(:) = SP_codetemp_mtc(pft_to_mtc(:)) 673 SP_coderetflo(:) = SP_coderetflo_mtc(pft_to_mtc(:)) 674 SP_codeinnact(:) = SP_codeinnact_mtc(pft_to_mtc(:)) 675 SP_codeh2oact(:) = SP_codeh2oact_mtc(pft_to_mtc(:)) 676 SP_stressdev(:) = SP_stressdev_mtc(pft_to_mtc(:)) 677 SP_innlai(:) = SP_innlai_mtc(pft_to_mtc(:)) 678 SP_innsenes(:) = SP_innsenes_mtc(pft_to_mtc(:)) 679 SP_codebfroid(:) = SP_codebfroid_mtc(pft_to_mtc(:)) 680 681 SP_codephot(:) = SP_codephot_mtc(pft_to_mtc(:)) 682 SP_codedormance(:) = SP_codedormance_mtc(pft_to_mtc(:)) 683 SP_codefauche(:) = SP_codefauche_mtc(pft_to_mtc(:)) 684 SP_codetempfauche(:) = SP_codetempfauche_mtc(pft_to_mtc(:)) 685 SP_codlainet(:) = SP_codlainet_mtc(pft_to_mtc(:)) 686 SP_codeindetermin(:) = SP_codeindetermin_mtc(pft_to_mtc(:)) 687 SP_codeinitprec(:) = SP_codeinitprec_mtc(pft_to_mtc(:)) 688 SP_culturean(:) = SP_culturean_mtc(pft_to_mtc(:)) 689 690 SP_jvc(:) = SP_jvc_mtc(pft_to_mtc(:)) 691 SP_tfroid(:) = SP_tfroid_mtc(pft_to_mtc(:)) 692 SP_ampfroid(:) = SP_ampfroid_mtc(pft_to_mtc(:)) 693 SP_jvcmini(:) = SP_jvcmini_mtc(pft_to_mtc(:)) 694 SP_tgmin(:) = SP_tgmin_mtc(pft_to_mtc(:)) 695 SP_stpltger(:) = SP_stpltger_mtc(pft_to_mtc(:)) 696 SP_profsem(:) = SP_profsem_mtc(pft_to_mtc(:)) 697 SP_propjgermin(:) = SP_propjgermin_mtc(pft_to_mtc(:)) 698 699 SP_tdmax(:) = SP_tdmax_mtc(pft_to_mtc(:)) 700 SP_nbjgerlim(:) = SP_nbjgerlim_mtc(pft_to_mtc(:)) 701 SP_densitesem(:) = SP_densitesem_mtc(pft_to_mtc(:)) 702 SP_vigueurbat(:) = SP_vigueurbat_mtc(pft_to_mtc(:)) 703 SP_codepluiepoquet(:) = SP_codepluiepoquet_mtc(pft_to_mtc(:)) 704 SP_codehypo(:) = SP_codehypo_mtc(pft_to_mtc(:)) 705 SP_elmax(:) = SP_elmax_mtc(pft_to_mtc(:)) 706 SP_belong(:) = SP_belong_mtc(pft_to_mtc(:)) 707 708 SP_celong(:) = SP_celong_mtc(pft_to_mtc(:)) 709 SP_nlevlim1(:) = SP_nlevlim1_mtc(pft_to_mtc(:)) 710 SP_nlevlim2(:) = SP_nlevlim2_mtc(pft_to_mtc(:)) 711 SP_codrecolte(:) = SP_codrecolte_mtc(pft_to_mtc(:)) 712 SP_variete(:) = SP_variete_mtc(pft_to_mtc(:)) 713 SP_codegermin(:) = SP_codegermin_mtc(pft_to_mtc(:)) 714 715 S_codeulaivernal(:) = S_codeulaivernal_mtc(pft_to_mtc(:)) 716 SP_swfacmin(:) = SP_swfacmin_mtc(pft_to_mtc(:)) 717 SP_neffmax(:) = SP_neffmax_mtc(pft_to_mtc(:)) 718 SP_nsatrat(:) = SP_nsatrat_mtc(pft_to_mtc(:)) 719 720 721 ! STICS:: LAI CALCULATION 722 SP_laiplantule(:) = SP_laiplantule_mtc(pft_to_mtc(:)) 723 SP_vlaimax(:) = SP_vlaimax_mtc(pft_to_mtc(:)) 724 SP_stlevamf(:) = SP_stlevamf_mtc(pft_to_mtc(:)) 725 SP_stdrpmat(:) = SP_stdrpmat_mtc(pft_to_mtc(:)) 726 SP_stamflax(:) = SP_stamflax_mtc(pft_to_mtc(:)) 727 SP_udlaimax(:) = SP_udlaimax_mtc(pft_to_mtc(:)) 728 SP_laicomp(:) = SP_laicomp_mtc(pft_to_mtc(:)) 729 SP_adens(:) = SP_adens_mtc(pft_to_mtc(:)) 730 SP_bdens(:) = SP_bdens_mtc(pft_to_mtc(:)) 731 732 SP_tcxstop(:) = SP_tcxstop_mtc(pft_to_mtc(:)) 733 SP_tcmax(:) = SP_tcmax_mtc(pft_to_mtc(:)) 734 SP_tcmin(:) = SP_tcmin_mtc(pft_to_mtc(:)) 735 SP_dlaimax(:) = SP_dlaimax_mtc(pft_to_mtc(:)) 736 SP_dlaimin(:) = SP_dlaimin_mtc(pft_to_mtc(:)) 737 SP_pentlaimax(:) = SP_pentlaimax_mtc(pft_to_mtc(:)) 738 SP_tigefeuil(:) = SP_tigefeuil_mtc(pft_to_mtc(:)) 739 740 SP_stlaxsen(:) = SP_stlaxsen_mtc(pft_to_mtc(:)) 741 SP_stsenlan(:) = SP_stsenlan_mtc(pft_to_mtc(:)) 742 SP_stlevdrp(:) = SP_stlevdrp_mtc(pft_to_mtc(:)) 743 SP_stflodrp(:) = SP_stflodrp_mtc(pft_to_mtc(:)) 744 SP_stdrpdes(:) = SP_stdrpdes_mtc(pft_to_mtc(:)) 745 746 SP_phyllotherme(:) = SP_phyllotherme_mtc(pft_to_mtc(:)) 747 SP_lai0(:) = SP_lai0_mtc(pft_to_mtc(:)) 748 SP_tustressmin(:) = SP_tustressmin_mtc(pft_to_mtc(:)) 749 750 751 ! STICS:: LAI SENESCENCE 752 SP_nbfgellev(:) = SP_nbfgellev_mtc(pft_to_mtc(:)) 753 SP_ratiodurvieI(:) = SP_ratiodurvieI_mtc(pft_to_mtc(:)) 754 SP_durvieF(:) = SP_durvieF_mtc(pft_to_mtc(:)) 755 SP_ratiosen(:) = SP_ratiosen_mtc(pft_to_mtc(:)) 756 SP_tdmin(:) = SP_tdmin_mtc(pft_to_mtc(:)) 757 758 ! STICS:: F_humerac 759 760 SP_sensrsec(:) = SP_sensrsec_mtc(pft_to_mtc(:)) 761 762 ! STICS:: gel 763 764 SP_codgellev(:) = SP_codgellev_mtc(pft_to_mtc(:)) 765 SP_tletale(:) = SP_tletale_mtc(pft_to_mtc(:)) 766 SP_tdebgel(:) = SP_tdebgel_mtc(pft_to_mtc(:)) 767 SP_tgellev10(:) = SP_tgellev10_mtc(pft_to_mtc(:)) 768 SP_tgellev90(:) = SP_tgellev90_mtc(pft_to_mtc(:)) 769 770 SP_tgeljuv10(:) = SP_tgeljuv10_mtc(pft_to_mtc(:)) 771 SP_tgeljuv90(:) = SP_tgeljuv90_mtc(pft_to_mtc(:)) 772 SP_tgelveg10(:) = SP_tgelveg10_mtc(pft_to_mtc(:)) 773 SP_tgelveg90(:) = SP_tgelveg90_mtc(pft_to_mtc(:)) 774 775 776 ! STICS:: PHOTOPERIOD 777 778 SP_sensiphot(:) = SP_sensiphot_mtc(pft_to_mtc(:)) 779 SP_phosat(:) = SP_phosat_mtc(pft_to_mtc(:)) 780 SP_phobase(:) = SP_phobase_mtc(pft_to_mtc(:)) 781 782 ! STICS:: CARBON ALLOCATION 783 784 SP_stoprac(:) = SP_stoprac_mtc(pft_to_mtc(:)) 785 SP_zracplantule(:) = SP_zracplantule_mtc(pft_to_mtc(:)) 786 SP_codtrophrac(:) = SP_codtrophrac_mtc(pft_to_mtc(:)) 787 SP_repracpermax(:) = SP_repracpermax_mtc(pft_to_mtc(:)) 788 SP_repracpermin(:) = SP_repracpermin_mtc(pft_to_mtc(:)) 789 SP_krepracperm(:) = SP_krepracperm_mtc(pft_to_mtc(:)) 790 SP_repracseumax(:) = SP_repracseumax_mtc(pft_to_mtc(:)) 791 SP_repracseumin(:) = SP_repracseumin_mtc(pft_to_mtc(:)) 792 SP_krepracseu(:) = SP_krepracseu_mtc(pft_to_mtc(:)) 793 SP_codetemprac(:) = SP_codetemprac_mtc(pft_to_mtc(:)) 794 SP_codedyntalle(:) = SP_codedyntalle_mtc(pft_to_mtc(:)) 795 SP_nbjgrain(:) = SP_nbjgrain_mtc(pft_to_mtc(:)) 796 SP_maxgs(:) = SP_maxgs_mtc(pft_to_mtc(:)) 797 SP_codgelflo(:) = SP_codgelflo_mtc(pft_to_mtc(:)) 798 SP_tgelflo10(:) = SP_tgelflo10_mtc(pft_to_mtc(:)) 799 SP_tgelflo90(:) = SP_tgelflo90_mtc(pft_to_mtc(:)) 800 SP_cgrain(:) = SP_cgrain_mtc(pft_to_mtc(:)) 801 SP_cgrainv0(:) = SP_cgrainv0_mtc(pft_to_mtc(:)) 802 SP_nbgrmax(:) = SP_nbgrmax_mtc(pft_to_mtc(:)) 803 SP_nbgrmin(:) = SP_nbgrmin_mtc(pft_to_mtc(:)) 804 SP_codazofruit(:) = SP_codazofruit_mtc(pft_to_mtc(:)) 805 SP_codeir(:) = SP_codeir_mtc(pft_to_mtc(:)) 806 SP_vitircarb(:) = SP_vitircarb_mtc(pft_to_mtc(:)) 807 SP_irmax(:) = SP_irmax_mtc(pft_to_mtc(:)) 808 SP_vitircarbT(:) = SP_vitircarbT_mtc(pft_to_mtc(:)) 809 SP_codetremp(:) = SP_codetremp_mtc(pft_to_mtc(:)) 810 SP_tminremp(:) = SP_tminremp_mtc(pft_to_mtc(:)) 811 SP_tmaxremp(:) = SP_tmaxremp_mtc(pft_to_mtc(:)) 812 SP_pgrainmaxi(:) = SP_pgrainmaxi_mtc(pft_to_mtc(:)) 813 814 !! SPECIFIC FOR DYNAMIC INN STRATEGY 815 816 SP_DY_INN(:) = SP_DY_INN_mtc(pft_to_mtc(:)) 817 SP_avenfert(:) = SP_avenfert_mtc(pft_to_mtc(:)) 818 819 !!!!! end crop parameters 537 820 ENDIF !(ok_stomate) 538 821 539 END SUBROUTINE pft_parameters_init 540 ! 541 != 542 ! 822 ! 1.3 For BVOC parameters 823 824 IF (ok_bvoc) THEN 825 ! 826 ! Biogenic Volatile Organic Compounds 827 ! 828 em_factor_isoprene(:) = em_factor_isoprene_mtc(pft_to_mtc(:)) 829 em_factor_monoterpene(:) = em_factor_monoterpene_mtc(pft_to_mtc(:)) 830 LDF_mono = LDF_mono_mtc 831 LDF_sesq = LDF_sesq_mtc 832 LDF_meth = LDF_meth_mtc 833 LDF_acet = LDF_acet_mtc 834 835 em_factor_apinene(:) = em_factor_apinene_mtc(pft_to_mtc(:)) 836 em_factor_bpinene(:) = em_factor_bpinene_mtc(pft_to_mtc(:)) 837 em_factor_limonene(:) = em_factor_limonene_mtc(pft_to_mtc(:)) 838 em_factor_myrcene(:) = em_factor_myrcene_mtc(pft_to_mtc(:)) 839 em_factor_sabinene(:) = em_factor_sabinene_mtc(pft_to_mtc(:)) 840 em_factor_camphene(:) = em_factor_camphene_mtc(pft_to_mtc(:)) 841 em_factor_3carene(:) = em_factor_3carene_mtc(pft_to_mtc(:)) 842 em_factor_tbocimene(:) = em_factor_tbocimene_mtc(pft_to_mtc(:)) 843 em_factor_othermonot(:) = em_factor_othermonot_mtc(pft_to_mtc(:)) 844 em_factor_sesquiterp(:) = em_factor_sesquiterp_mtc(pft_to_mtc(:)) 845 846 beta_mono = beta_mono_mtc 847 beta_sesq = beta_sesq_mtc 848 beta_meth = beta_meth_mtc 849 beta_acet = beta_acet_mtc 850 beta_oxyVOC = beta_oxyVOC_mtc 851 852 em_factor_ORVOC(:) = em_factor_ORVOC_mtc(pft_to_mtc(:)) 853 em_factor_OVOC(:) = em_factor_OVOC_mtc(pft_to_mtc(:)) 854 em_factor_MBO(:) = em_factor_MBO_mtc(pft_to_mtc(:)) 855 em_factor_methanol(:) = em_factor_methanol_mtc(pft_to_mtc(:)) 856 em_factor_acetone(:) = em_factor_acetone_mtc(pft_to_mtc(:)) 857 em_factor_acetal(:) = em_factor_acetal_mtc(pft_to_mtc(:)) 858 em_factor_formal(:) = em_factor_formal_mtc(pft_to_mtc(:)) 859 em_factor_acetic(:) = em_factor_acetic_mtc(pft_to_mtc(:)) 860 em_factor_formic(:) = em_factor_formic_mtc(pft_to_mtc(:)) 861 em_factor_no_wet(:) = em_factor_no_wet_mtc(pft_to_mtc(:)) 862 em_factor_no_dry(:) = em_factor_no_dry_mtc(pft_to_mtc(:)) 863 Larch(:) = Larch_mtc(pft_to_mtc(:)) 864 !- 865 ENDIF !(ok_bvoc) 866 867 ! 1.4 For stomate parameters 868 869 IF (ok_stomate) THEN 870 ! 871 ! Vegetation structure - stomate 872 ! 873 sla(:) = sla_mtc(pft_to_mtc(:)) 874 availability_fact(:) = availability_fact_mtc(pft_to_mtc(:)) 875 ! 876 ! Allocation - stomate 877 ! 878 R0(:) = R0_mtc(pft_to_mtc(:)) 879 S0(:) = S0_mtc(pft_to_mtc(:)) 880 ! 881 ! Respiration - stomate 882 ! 883 frac_growthresp(:) = frac_growthresp_mtc(pft_to_mtc(:)) 884 maint_resp_slope_c(:) = maint_resp_slope_c_mtc(pft_to_mtc(:)) 885 maint_resp_slope_b(:) = maint_resp_slope_b_mtc(pft_to_mtc(:)) 886 maint_resp_slope_a(:) = maint_resp_slope_a_mtc(pft_to_mtc(:)) 887 cm_zero_leaf(:) = cm_zero_leaf_mtc(pft_to_mtc(:)) 888 cm_zero_sapabove(:) = cm_zero_sapabove_mtc(pft_to_mtc(:)) 889 cm_zero_sapbelow(:) = cm_zero_sapbelow_mtc(pft_to_mtc(:)) 890 cm_zero_heartabove(:) = cm_zero_heartabove_mtc(pft_to_mtc(:)) 891 cm_zero_heartbelow(:) = cm_zero_heartbelow_mtc(pft_to_mtc(:)) 892 cm_zero_root(:) = cm_zero_root_mtc(pft_to_mtc(:)) 893 cm_zero_fruit(:) = cm_zero_fruit_mtc(pft_to_mtc(:)) 894 cm_zero_carbres(:) = cm_zero_carbres_mtc(pft_to_mtc(:)) 895 ! 896 ! Fire - stomate 897 ! 898 flam(:) = flam_mtc(pft_to_mtc(:)) 899 resist(:) = resist_mtc(pft_to_mtc(:)) 900 ! 901 ! Flux - LUC 902 ! 903 coeff_lcchange_1(:) = coeff_lcchange_1_mtc(pft_to_mtc(:)) 904 coeff_lcchange_10(:) = coeff_lcchange_10_mtc(pft_to_mtc(:)) 905 coeff_lcchange_100(:) = coeff_lcchange_100_mtc(pft_to_mtc(:)) 906 907 coeff_indwood_1(:) = coeff_indwood_1_mtc(pft_to_mtc(:)) 908 coeff_indwood_10(:) = coeff_indwood_10_mtc(pft_to_mtc(:)) 909 coeff_indwood_100(:) = coeff_indwood_100_mtc(pft_to_mtc(:)) 910 ! 911 ! Phenology 912 ! 913 ! 914 ! 1. Stomate 915 ! 916 lai_max_to_happy(:) = lai_max_to_happy_mtc(pft_to_mtc(:)) 917 lai_max(:) = lai_max_mtc(pft_to_mtc(:)) 918 pheno_type(:) = pheno_type_mtc(pft_to_mtc(:)) 919 ! 920 ! 2. Leaf Onset 921 ! 922 pheno_gdd_crit_c(:) = pheno_gdd_crit_c_mtc(pft_to_mtc(:)) 923 pheno_gdd_crit_b(:) = pheno_gdd_crit_b_mtc(pft_to_mtc(:)) 924 pheno_gdd_crit_a(:) = pheno_gdd_crit_a_mtc(pft_to_mtc(:)) 925 pheno_moigdd_t_crit(:) = pheno_moigdd_t_crit_mtc(pft_to_mtc(:)) 926 ngd_crit(:) = ngd_crit_mtc(pft_to_mtc(:)) 927 ncdgdd_temp(:) = ncdgdd_temp_mtc(pft_to_mtc(:)) 928 hum_frac(:) = hum_frac_mtc(pft_to_mtc(:)) 929 hum_min_time(:) = hum_min_time_mtc(pft_to_mtc(:)) 930 tau_sap(:) = tau_sap_mtc(pft_to_mtc(:)) 931 tau_leafinit(:) = tau_leafinit_mtc(pft_to_mtc(:)) 932 tau_fruit(:) = tau_fruit_mtc(pft_to_mtc(:)) 933 ecureuil(:) = ecureuil_mtc(pft_to_mtc(:)) 934 alloc_min(:) = alloc_min_mtc(pft_to_mtc(:)) 935 alloc_max(:) = alloc_max_mtc(pft_to_mtc(:)) 936 demi_alloc(:) = demi_alloc_mtc(pft_to_mtc(:)) 937 leaflife_tab(:) = leaflife_mtc(pft_to_mtc(:)) 938 ! 939 ! 3. Senescence 940 ! 941 leaffall(:) = leaffall_mtc(pft_to_mtc(:)) 942 leafagecrit(:) = leafagecrit_mtc(pft_to_mtc(:)) 943 senescence_type(:) = senescence_type_mtc(pft_to_mtc(:)) 944 senescence_hum(:) = senescence_hum_mtc(pft_to_mtc(:)) 945 nosenescence_hum(:) = nosenescence_hum_mtc(pft_to_mtc(:)) 946 max_turnover_time(:) = max_turnover_time_mtc(pft_to_mtc(:)) 947 min_turnover_time(:) = min_turnover_time_mtc(pft_to_mtc(:)) 948 min_leaf_age_for_senescence(:) = min_leaf_age_for_senescence_mtc(pft_to_mtc(:)) 949 senescence_temp_c(:) = senescence_temp_c_mtc(pft_to_mtc(:)) 950 senescence_temp_b(:) = senescence_temp_b_mtc(pft_to_mtc(:)) 951 senescence_temp_a(:) = senescence_temp_a_mtc(pft_to_mtc(:)) 952 gdd_senescence(:) = gdd_senescence_mtc(pft_to_mtc(:)) 953 ! 954 ! DGVM 955 ! 956 residence_time(:) = residence_time_mtc(pft_to_mtc(:)) 957 tmin_crit(:) = tmin_crit_mtc(pft_to_mtc(:)) 958 tcm_crit(:) = tcm_crit_mtc(pft_to_mtc(:)) 959 !- 960 ENDIF !(ok_stomate) 961 962 END SUBROUTINE pft_parameters_init 963 543 964 544 965 !! ================================================================================================================================ … … 560 981 !_ ================================================================================================================================ 561 982 562 SUBROUTINE pft_parameters_alloc() 563 564 IMPLICIT NONE 565 566 !! 0. Variables and parameters declaration 567 568 !! 0.1 Input variables 569 570 !! 0.4 Local variables 571 572 LOGICAL :: l_error !! Diagnostic boolean for error allocation (true/false) 573 INTEGER :: ier !! Return value for memory allocation (0-N, unitless) 574 575 !_ ================================================================================================================================ 576 577 578 ! 579 ! 1. Parameters used anytime 580 ! 581 582 l_error = .FALSE. 583 584 ALLOCATE(pft_to_mtc(nvm),stat=ier) 983 SUBROUTINE pft_parameters_alloc() 984 985 IMPLICIT NONE 986 987 !! 0. Variables and parameters declaration 988 989 !! 0.1 Input variables 990 991 !! 0.4 Local variables 992 993 LOGICAL :: l_error !! Diagnostic boolean for error allocation (true/false) 994 INTEGER :: ier !! Return value for memory allocation (0-N, unitless) 995 CHARACTER(LEN=100) :: str !! Temporary variable 996 997 !_ ================================================================================================================================ 998 999 1000 ! 1001 ! 1. Parameters used anytime 1002 ! 1003 1004 l_error = .FALSE. 1005 1006 ALLOCATE(pft_to_mtc(nvm),stat=ier) 1007 l_error = l_error .OR. (ier /= 0) 1008 IF (l_error) THEN 1009 WRITE(numout,*) ' Memory allocation error for pft_to_mtc. We stop. We need nvm words = ',nvm 1010 STOP 'pft_parameters_alloc' 1011 END IF 1012 1013 ALLOCATE(PFT_name(nvm),stat=ier) 1014 l_error = l_error .OR. (ier /= 0) 1015 IF (l_error) THEN 1016 WRITE(numout,*) ' Memory allocation error for PFT_name. We stop. We need nvm words = ',nvm 1017 STOP 'pft_parameters_alloc' 1018 END IF 1019 1020 ALLOCATE(height_presc(nvm),stat=ier) 1021 l_error = l_error .OR. (ier /= 0) 1022 IF (l_error) THEN 1023 WRITE(numout,*) ' Memory allocation error for height_presc. We stop. We need nvm words = ',nvm 1024 STOP 'pft_parameters_alloc' 1025 END IF 1026 1027 ALLOCATE(z0_over_height(nvm),stat=ier) 1028 l_error = l_error .OR. (ier /= 0) 1029 IF (l_error) THEN 1030 WRITE(numout,*) ' Memory allocation error for z0_over_height. We stop. We need nvm words = ',nvm 1031 STOP 'pft_parameters_alloc' 1032 END IF 1033 1034 ALLOCATE(ratio_z0m_z0h(nvm),stat=ier) 1035 l_error = l_error .OR. (ier /= 0) 1036 IF (l_error) THEN 1037 WRITE(numout,*) ' Memory allocation error for ratio_z0m_z0h. We stop. We need nvm words = ',nvm 1038 STOP 'pft_parameters_alloc' 1039 END IF 1040 ! dgvmjc 1041 ALLOCATE(pasture(nvm),stat=ier) 1042 l_error = l_error .OR. (ier /= 0) 1043 IF (l_error) THEN 1044 WRITE(numout,*) ' Memory allocation error for pasture. We stop. We need nvm words = ',nvm 1045 STOP 'pft_parameters_alloc' 1046 END IF 1047 ! end dgvmjc 1048 !!! crop irrig 1049 ALLOCATE(irrig_threshold(nvm),stat=ier) 585 1050 l_error = l_error .OR. (ier /= 0) 586 1051 IF (l_error) THEN 587 WRITE(numout,*) ' Memory allocation error for pft_to_mtc. We stop. We need nvm words = ',nvm1052 WRITE(numout,*) ' Memory allocation error for irrig_threshold. We stop. We need nvm words = ',nvm 588 1053 STOP 'pft_parameters_alloc' 589 1054 END IF 590 1055 591 ALLOCATE( PFT_name(nvm),stat=ier)1056 ALLOCATE(irrig_fulfill(nvm),stat=ier) 592 1057 l_error = l_error .OR. (ier /= 0) 593 1058 IF (l_error) THEN 594 WRITE(numout,*) ' Memory allocation error for PFT_name. We stop. We need nvm words = ',nvm1059 WRITE(numout,*) ' Memory allocation error for irrig_fulfill. We stop. We need nvm words = ',nvm 595 1060 STOP 'pft_parameters_alloc' 596 1061 END IF 597 598 ALLOCATE(height_presc(nvm),stat=ier) 1062 !!! end crop irrig, xuhui 1063 ALLOCATE(natural(nvm),stat=ier) 1064 l_error = l_error .OR. (ier /= 0) 1065 IF (l_error) THEN 1066 WRITE(numout,*) ' Memory allocation error for natural. We stop. We need nvm words = ',nvm 1067 STOP 'pft_parameters_alloc' 1068 END IF 1069 1070 ALLOCATE(is_tree(nvm),stat=ier) 1071 l_error = l_error .OR. (ier /= 0) 1072 IF (l_error) THEN 1073 WRITE(numout,*) ' Memory allocation error for is_tree. We stop. We need nvm words = ',nvm 1074 STOP 'pft_parameters_alloc' 1075 END IF 1076 1077 ALLOCATE(is_c4(nvm),stat=ier) 1078 l_error = l_error .OR. (ier /= 0) 1079 IF (l_error) THEN 1080 WRITE(numout,*) ' Memory allocation error for is_c4. We stop. We need nvm words = ',nvm 1081 STOP 'pft_parameters_alloc' 1082 END IF 1083 1084 ALLOCATE(vcmax_fix(nvm),stat=ier) 1085 l_error = l_error .OR. (ier /= 0) 1086 IF (l_error) THEN 1087 WRITE(numout,*) ' Memory allocation error for vcmax_fix. We stop. We need nvm words = ',nvm 1088 STOP 'pft_parameters_alloc' 1089 END IF 1090 1091 ALLOCATE(humcste(nvm),stat=ier) 1092 l_error = l_error .OR. (ier /= 0) 1093 IF (l_error) THEN 1094 WRITE(numout,*) ' Memory allocation error for humcste. We stop. We need nvm words = ',nvm 1095 STOP 'pft_parameters_alloc' 1096 END IF 1097 1098 ALLOCATE(downregulation_co2_coeff(nvm),stat=ier) 1099 l_error = l_error .OR. (ier /= 0) 1100 IF (l_error) THEN 1101 WRITE(numout,*) ' Memory allocation error for downregulation_co2_coeff. We stop. We need nvm words = ',nvm 1102 STOP 'pft_parameters_alloc' 1103 END IF 1104 1105 ALLOCATE(E_KmC(nvm),stat=ier) 1106 l_error = l_error .OR. (ier /= 0) 1107 IF (l_error) THEN 1108 WRITE(numout,*) ' Memory allocation error for E_KmC. We stop. We need nvm words = ',nvm 1109 STOP 'pft_parameters_alloc' 1110 END IF 1111 1112 ALLOCATE(E_KmO(nvm),stat=ier) 1113 l_error = l_error .OR. (ier /= 0) 1114 IF (l_error) THEN 1115 WRITE(numout,*) ' Memory allocation error for E_KmO. We stop. We need nvm words = ',nvm 1116 STOP 'pft_parameters_alloc' 1117 END IF 1118 1119 ALLOCATE(E_Sco(nvm),stat=ier) 1120 l_error = l_error .OR. (ier /= 0) 1121 IF (l_error) THEN 1122 WRITE(numout,*) ' Memory allocation error for E_Sco. We stop. We need nvm words = ',nvm 1123 STOP 'pft_parameters_alloc' 1124 END IF 1125 1126 ALLOCATE(E_gamma_star(nvm),stat=ier) 1127 l_error = l_error .OR. (ier /= 0) 1128 IF (l_error) THEN 1129 WRITE(numout,*) ' Memory allocation error for E_gamma_star. We stop. We need nvm words = ',nvm 1130 STOP 'pft_parameters_alloc' 1131 END IF 1132 1133 ALLOCATE(E_vcmax(nvm),stat=ier) 1134 l_error = l_error .OR. (ier /= 0) 1135 IF (l_error) THEN 1136 WRITE(numout,*) ' Memory allocation error for E_Vcmax. We stop. We need nvm words = ',nvm 1137 STOP 'pft_parameters_alloc' 1138 END IF 1139 1140 ALLOCATE(E_Jmax(nvm),stat=ier) 1141 l_error = l_error .OR. (ier /= 0) 1142 IF (l_error) THEN 1143 WRITE(numout,*) ' Memory allocation error for E_Jmax. We stop. We need nvm words = ',nvm 1144 STOP 'pft_parameters_alloc' 1145 END IF 1146 1147 ALLOCATE(aSV(nvm),stat=ier) 1148 l_error = l_error .OR. (ier /= 0) 1149 IF (l_error) THEN 1150 WRITE(numout,*) ' Memory allocation error for aSV. We stop. We need nvm words = ',nvm 1151 STOP 'pft_parameters_alloc' 1152 END IF 1153 1154 ALLOCATE(bSV(nvm),stat=ier) 1155 l_error = l_error .OR. (ier /= 0) 1156 IF (l_error) THEN 1157 WRITE(numout,*) ' Memory allocation error for bSV. We stop. We need nvm words = ',nvm 1158 STOP 'pft_parameters_alloc' 1159 END IF 1160 1161 ALLOCATE(tphoto_min(nvm),stat=ier) 1162 l_error = l_error .OR. (ier /= 0) 1163 IF (l_error) THEN 1164 WRITE(numout,*) ' Memory allocation error for tphoto_min. We stop. We need nvm words = ',nvm 1165 STOP 'pft_parameters_alloc' 1166 END IF 1167 1168 ALLOCATE(tphoto_max(nvm),stat=ier) 1169 l_error = l_error .OR. (ier /= 0) 1170 IF (l_error) THEN 1171 WRITE(numout,*) ' Memory allocation error for tphoto_max. We stop. We need nvm words = ',nvm 1172 STOP 'pft_parameters_alloc' 1173 END IF 1174 1175 ALLOCATE(aSJ(nvm),stat=ier) 1176 l_error = l_error .OR. (ier /= 0) 1177 IF (l_error) THEN 1178 WRITE(numout,*) ' Memory allocation error for aSJ. We stop. We need nvm words = ',nvm 1179 STOP 'pft_parameters_alloc' 1180 END IF 1181 1182 ALLOCATE(bSJ(nvm),stat=ier) 1183 l_error = l_error .OR. (ier /= 0) 1184 IF (l_error) THEN 1185 WRITE(numout,*) ' Memory allocation error for bSJ. We stop. We need nvm words = ',nvm 1186 STOP 'pft_parameters_alloc' 1187 END IF 1188 1189 ALLOCATE(D_Vcmax(nvm),stat=ier) 1190 l_error = l_error .OR. (ier /= 0) 1191 IF (l_error) THEN 1192 WRITE(numout,*) ' Memory allocation error for D_Vcmax. We stop. We need nvm words = ',nvm 1193 STOP 'pft_parameters_alloc' 1194 END IF 1195 1196 ALLOCATE(D_Jmax(nvm),stat=ier) 1197 l_error = l_error .OR. (ier /= 0) 1198 IF (l_error) THEN 1199 WRITE(numout,*) ' Memory allocation error for D_Jmax. We stop. We need nvm words = ',nvm 1200 STOP 'pft_parameters_alloc' 1201 END IF 1202 1203 ALLOCATE(E_gm(nvm),stat=ier) 1204 l_error = l_error .OR. (ier /= 0) 1205 IF (l_error) THEN 1206 WRITE(numout,*) ' Memory allocation error for E_gm. We stop. We need nvm words = ',nvm 1207 STOP 'pft_parameters_alloc' 1208 END IF 1209 1210 ALLOCATE(S_gm(nvm),stat=ier) 1211 l_error = l_error .OR. (ier /= 0) 1212 IF (l_error) THEN 1213 WRITE(numout,*) ' Memory allocation error for S_gm. We stop. We need nvm words = ',nvm 1214 STOP 'pft_parameters_alloc' 1215 END IF 1216 1217 ALLOCATE(D_gm(nvm),stat=ier) 1218 l_error = l_error .OR. (ier /= 0) 1219 IF (l_error) THEN 1220 WRITE(numout,*) ' Memory allocation error for D_gm. We stop. We need nvm words = ',nvm 1221 STOP 'pft_parameters_alloc' 1222 END IF 1223 1224 ALLOCATE(E_Rd(nvm),stat=ier) 1225 l_error = l_error .OR. (ier /= 0) 1226 IF (l_error) THEN 1227 WRITE(numout,*) ' Memory allocation error for E_Rd. We stop. We need nvm words = ',nvm 1228 STOP 'pft_parameters_alloc' 1229 END IF 1230 1231 ALLOCATE(Vcmax25(nvm),stat=ier) 1232 l_error = l_error .OR. (ier /= 0) 1233 IF (l_error) THEN 1234 WRITE(numout,*) ' Memory allocation error for Vcmax25. We stop. We need nvm words = ',nvm 1235 STOP 'pft_parameters_alloc' 1236 END IF 1237 1238 ALLOCATE(arJV(nvm),stat=ier) 1239 l_error = l_error .OR. (ier /= 0) 1240 IF (l_error) THEN 1241 WRITE(numout,*) ' Memory allocation error for arJV. We stop. We need nvm words = ',nvm 1242 STOP 'pft_parameters_alloc' 1243 END IF 1244 1245 ALLOCATE(brJV(nvm),stat=ier) 1246 l_error = l_error .OR. (ier /= 0) 1247 IF (l_error) THEN 1248 WRITE(numout,*) ' Memory allocation error for brJV. We stop. We need nvm words = ',nvm 1249 STOP 'pft_parameters_alloc' 1250 END IF 1251 1252 ALLOCATE(KmC25(nvm),stat=ier) 1253 l_error = l_error .OR. (ier /= 0) 1254 IF (l_error) THEN 1255 WRITE(numout,*) ' Memory allocation error for KmC25. We stop. We need nvm words = ',nvm 1256 STOP 'pft_parameters_alloc' 1257 END IF 1258 1259 ALLOCATE(KmO25(nvm),stat=ier) 1260 l_error = l_error .OR. (ier /= 0) 1261 IF (l_error) THEN 1262 WRITE(numout,*) ' Memory allocation error for KmO25. We stop. We need nvm words = ',nvm 1263 STOP 'pft_parameters_alloc' 1264 END IF 1265 1266 ALLOCATE(Sco25(nvm),stat=ier) 1267 l_error = l_error .OR. (ier /= 0) 1268 IF (l_error) THEN 1269 WRITE(numout,*) ' Memory allocation error for Sco25. We stop. We need nvm words = ',nvm 1270 STOP 'pft_parameters_alloc' 1271 END IF 1272 1273 ALLOCATE(gm25(nvm),stat=ier) 1274 l_error = l_error .OR. (ier /= 0) 1275 IF (l_error) THEN 1276 WRITE(numout,*) ' Memory allocation error for gm25. We stop. We need nvm words = ',nvm 1277 STOP 'pft_parameters_alloc' 1278 END IF 1279 1280 ALLOCATE(gamma_star25(nvm),stat=ier) 1281 l_error = l_error .OR. (ier /= 0) 1282 IF (l_error) THEN 1283 WRITE(numout,*) ' Memory allocation error for gamma_star25. We stop. We need nvm words = ',nvm 1284 STOP 'pft_parameters_alloc' 1285 END IF 1286 1287 ALLOCATE(a1(nvm),stat=ier) 1288 l_error = l_error .OR. (ier /= 0) 1289 IF (l_error) THEN 1290 WRITE(numout,*) ' Memory allocation error for a1. We stop. We need nvm words = ',nvm 1291 STOP 'pft_parameters_alloc' 1292 END IF 1293 1294 ALLOCATE(b1(nvm),stat=ier) 1295 l_error = l_error .OR. (ier /= 0) 1296 IF (l_error) THEN 1297 WRITE(numout,*) ' Memory allocation error for b1. We stop. We need nvm words = ',nvm 1298 STOP 'pft_parameters_alloc' 1299 END IF 1300 1301 ALLOCATE(g0(nvm),stat=ier) 1302 l_error = l_error .OR. (ier /= 0) 1303 IF (l_error) THEN 1304 WRITE(numout,*) ' Memory allocation error for g0. We stop. We need nvm words = ',nvm 1305 STOP 'pft_parameters_alloc' 1306 END IF 1307 1308 ALLOCATE(h_protons(nvm),stat=ier) 1309 l_error = l_error .OR. (ier /= 0) 1310 IF (l_error) THEN 1311 WRITE(numout,*) ' Memory allocation error for h_protons. We stop. We need nvm words = ',nvm 1312 STOP 'pft_parameters_alloc' 1313 END IF 1314 1315 ALLOCATE(fpsir(nvm),stat=ier) 1316 l_error = l_error .OR. (ier /= 0) 1317 IF (l_error) THEN 1318 WRITE(numout,*) ' Memory allocation error for fpsir. We stop. We need nvm words = ',nvm 1319 STOP 'pft_parameters_alloc' 1320 END IF 1321 1322 ALLOCATE(fQ(nvm),stat=ier) 1323 l_error = l_error .OR. (ier /= 0) 1324 IF (l_error) THEN 1325 WRITE(numout,*) ' Memory allocation error for fQ. We stop. We need nvm words = ',nvm 1326 STOP 'pft_parameters_alloc' 1327 END IF 1328 1329 ALLOCATE(fpseudo(nvm),stat=ier) 1330 l_error = l_error .OR. (ier /= 0) 1331 IF (l_error) THEN 1332 WRITE(numout,*) ' Memory allocation error for fpseudo. We stop. We need nvm words = ',nvm 1333 STOP 'pft_parameters_alloc' 1334 END IF 1335 1336 ALLOCATE(kp(nvm),stat=ier) 1337 l_error = l_error .OR. (ier /= 0) 1338 IF (l_error) THEN 1339 WRITE(numout,*) ' Memory allocation error for kp. We stop. We need nvm words = ',nvm 1340 STOP 'pft_parameters_alloc' 1341 END IF 1342 1343 ALLOCATE(alpha(nvm),stat=ier) 1344 l_error = l_error .OR. (ier /= 0) 1345 IF (l_error) THEN 1346 WRITE(numout,*) ' Memory allocation error for alpha. We stop. We need nvm words = ',nvm 1347 STOP 'pft_parameters_alloc' 1348 END IF 1349 1350 ALLOCATE(gbs(nvm),stat=ier) 1351 l_error = l_error .OR. (ier /= 0) 1352 IF (l_error) THEN 1353 WRITE(numout,*) ' Memory allocation error for gbs. We stop. We need nvm words = ',nvm 1354 STOP 'pft_parameters_alloc' 1355 END IF 1356 1357 ALLOCATE(theta(nvm),stat=ier) 1358 l_error = l_error .OR. (ier /= 0) 1359 IF (l_error) THEN 1360 WRITE(numout,*) ' Memory allocation error for theta. We stop. We need nvm words = ',nvm 1361 STOP 'pft_parameters_alloc' 1362 END IF 1363 1364 ALLOCATE(alpha_LL(nvm),stat=ier) 1365 l_error = l_error .OR. (ier /= 0) 1366 IF (l_error) THEN 1367 WRITE(numout,*) ' Memory allocation error for alpha_LL. We stop. We need nvm words = ',nvm 1368 STOP 'pft_parameters_alloc' 1369 END IF 1370 1371 ALLOCATE(stress_vcmax(nvm),stat=ier) 1372 l_error = l_error .OR. (ier /= 0) 1373 IF (l_error) THEN 1374 WRITE(numout,*) ' Memory allocation error for stress_vcmax. We stop. We need nvm words = ',nvm 1375 STOP 'pft_parameters_alloc' 1376 END IF 1377 1378 ALLOCATE(stress_gs(nvm),stat=ier) 1379 l_error = l_error .OR. (ier /= 0) 1380 IF (l_error) THEN 1381 WRITE(numout,*) ' Memory allocation error for stress_gs. We stop. We need nvm words = ',nvm 1382 STOP 'pft_parameters_alloc' 1383 END IF 1384 1385 ALLOCATE(stress_gm(nvm),stat=ier) 1386 l_error = l_error .OR. (ier /= 0) 1387 IF (l_error) THEN 1388 WRITE(numout,*) ' Memory allocation error for stress_gm. We stop. We need nvm words = ',nvm 1389 STOP 'pft_parameters_alloc' 1390 END IF 1391 1392 ALLOCATE(ext_coeff(nvm),stat=ier) 1393 l_error = l_error .OR. (ier /= 0) 1394 IF (l_error) THEN 1395 WRITE(numout,*) ' Memory allocation error for ext_coeff. We stop. We need nvm words = ',nvm 1396 STOP 'pft_parameters_alloc' 1397 END IF 1398 1399 ALLOCATE(ext_coeff_vegetfrac(nvm),stat=ier) 1400 l_error = l_error .OR. (ier /= 0) 1401 IF (l_error) THEN 1402 WRITE(numout,*) ' Memory allocation error for ext_coeff_vegetfrac. We stop. We need nvm words = ',nvm 1403 STOP 'pft_parameters_alloc' 1404 END IF 1405 1406 ALLOCATE(veget_ori_fixed_test_1(nvm),stat=ier) 1407 l_error = l_error .OR. (ier /= 0) 1408 IF (l_error) THEN 1409 WRITE(numout,*) ' Memory allocation error for veget_ori_fixed_test_1. We stop. We need nvm words = ',nvm 1410 STOP 'pft_parameters_alloc' 1411 END IF 1412 1413 ALLOCATE(llaimax(nvm),stat=ier) 1414 l_error = l_error .OR. (ier /= 0) 1415 IF (l_error) THEN 1416 WRITE(numout,*) ' Memory allocation error for llaimax. We stop. We need nvm words = ',nvm 1417 STOP 'pft_parameters_alloc' 1418 END IF 1419 1420 ALLOCATE(llaimin(nvm),stat=ier) 1421 l_error = l_error .OR. (ier /= 0) 1422 IF (l_error) THEN 1423 WRITE(numout,*) ' Memory allocation error for llaimin. We stop. We need nvm words = ',nvm 1424 STOP 'pft_parameters_alloc' 1425 END IF 1426 1427 ALLOCATE(type_of_lai(nvm),stat=ier) 1428 l_error = l_error .OR. (ier /= 0) 1429 IF (l_error) THEN 1430 WRITE(numout,*) ' Memory allocation error for type_of_lai. We stop. We need nvm words = ',nvm 1431 STOP 'pft_parameters_alloc' 1432 END IF 1433 1434 ALLOCATE(agec_group(nvm),stat=ier) 599 1435 l_error = l_error .OR. (ier /= 0) 600 1436 IF (l_error) THEN 601 WRITE(numout,*) ' Memory allocation error for height_presc. We stop. We need nvm words = ',nvm1437 WRITE(numout,*) ' Memory allocation error for agec_group. We stop. We need nvm words = ',nvm 602 1438 STOP 'pft_parameters_alloc' 603 1439 END IF 604 1440 605 ALLOCATE( z0_over_height(nvm),stat=ier)1441 ALLOCATE(age_class_bound(nvm),stat=ier) 606 1442 l_error = l_error .OR. (ier /= 0) 607 1443 IF (l_error) THEN 608 WRITE(numout,*) ' Memory allocation error for z0_over_height. We stop. We need nvm words = ',nvm1444 WRITE(numout,*) ' Memory allocation error for age_class_bound. We stop. We need nvm words = ',nvm 609 1445 STOP 'pft_parameters_alloc' 610 1446 END IF 611 612 ALLOCATE(ratio_z0m_z0h(nvm),stat=ier) 1447 age_class_bound(:)=0. 1448 1449 ALLOCATE(start_index(nvm),stat=ier) 613 1450 l_error = l_error .OR. (ier /= 0) 614 1451 IF (l_error) THEN 615 WRITE(numout,*) ' Memory allocation error for ratio_z0m_z0h. We stop. We need nvm words = ',nvm1452 WRITE(numout,*) ' Memory allocation error for start_index. We stop. We need nvm words = ',nvm 616 1453 STOP 'pft_parameters_alloc' 617 1454 END IF 618 1455 619 ALLOCATE( is_tree(nvm),stat=ier)1456 ALLOCATE(nagec_pft(nvm),stat=ier) 620 1457 l_error = l_error .OR. (ier /= 0) 621 1458 IF (l_error) THEN 622 WRITE(numout,*) ' Memory allocation error for is_tree. We stop. We need nvm words = ',nvm 623 STOP 'pft_parameters_alloc' 624 END IF 625 626 ALLOCATE(natural(nvm),stat=ier) 627 l_error = l_error .OR. (ier /= 0) 628 IF (l_error) THEN 629 WRITE(numout,*) ' Memory allocation error for natural. We stop. We need nvm words = ',nvm 630 STOP 'pft_parameters_alloc' 631 END IF 632 633 ALLOCATE(is_c4(nvm),stat=ier) 634 l_error = l_error .OR. (ier /= 0) 635 IF (l_error) THEN 636 WRITE(numout,*) ' Memory allocation error for is_c4. We stop. We need nvm words = ',nvm 637 STOP 'pft_parameters_alloc' 638 END IF 639 640 ALLOCATE(humcste(nvm),stat=ier) 641 l_error = l_error .OR. (ier /= 0) 642 IF (l_error) THEN 643 WRITE(numout,*) ' Memory allocation error for humcste. We stop. We need nvm words = ',nvm 644 STOP 'pft_parameters_alloc' 645 END IF 646 647 ALLOCATE(downregulation_co2_coeff(nvm),stat=ier) 648 l_error = l_error .OR. (ier /= 0) 649 IF (l_error) THEN 650 WRITE(numout,*) ' Memory allocation error for downregulation_co2_coeff. We stop. We need nvm words = ',nvm 651 STOP 'pft_parameters_alloc' 652 END IF 653 654 ALLOCATE(E_KmC(nvm),stat=ier) 655 l_error = l_error .OR. (ier /= 0) 656 IF (l_error) THEN 657 WRITE(numout,*) ' Memory allocation error for E_KmC. We stop. We need nvm words = ',nvm 658 STOP 'pft_parameters_alloc' 659 END IF 660 661 ALLOCATE(E_KmO(nvm),stat=ier) 662 l_error = l_error .OR. (ier /= 0) 663 IF (l_error) THEN 664 WRITE(numout,*) ' Memory allocation error for E_KmO. We stop. We need nvm words = ',nvm 665 STOP 'pft_parameters_alloc' 666 END IF 667 668 ALLOCATE(E_gamma_star(nvm),stat=ier) 669 l_error = l_error .OR. (ier /= 0) 670 IF (l_error) THEN 671 WRITE(numout,*) ' Memory allocation error for E_gamma_star. We stop. We need nvm words = ',nvm 672 STOP 'pft_parameters_alloc' 673 END IF 674 675 ALLOCATE(E_vcmax(nvm),stat=ier) 676 l_error = l_error .OR. (ier /= 0) 677 IF (l_error) THEN 678 WRITE(numout,*) ' Memory allocation error for E_Vcmax. We stop. We need nvm words = ',nvm 679 STOP 'pft_parameters_alloc' 680 END IF 681 682 ALLOCATE(E_Jmax(nvm),stat=ier) 683 l_error = l_error .OR. (ier /= 0) 684 IF (l_error) THEN 685 WRITE(numout,*) ' Memory allocation error for E_Jmax. We stop. We need nvm words = ',nvm 686 STOP 'pft_parameters_alloc' 687 END IF 688 689 ALLOCATE(aSV(nvm),stat=ier) 690 l_error = l_error .OR. (ier /= 0) 691 IF (l_error) THEN 692 WRITE(numout,*) ' Memory allocation error for aSV. We stop. We need nvm words = ',nvm 693 STOP 'pft_parameters_alloc' 694 END IF 695 696 ALLOCATE(bSV(nvm),stat=ier) 697 l_error = l_error .OR. (ier /= 0) 698 IF (l_error) THEN 699 WRITE(numout,*) ' Memory allocation error for bSV. We stop. We need nvm words = ',nvm 700 STOP 'pft_parameters_alloc' 701 END IF 702 703 ALLOCATE(tphoto_min(nvm),stat=ier) 704 l_error = l_error .OR. (ier /= 0) 705 IF (l_error) THEN 706 WRITE(numout,*) ' Memory allocation error for tphoto_min. We stop. We need nvm words = ',nvm 707 STOP 'pft_parameters_alloc' 708 END IF 709 710 ALLOCATE(tphoto_max(nvm),stat=ier) 711 l_error = l_error .OR. (ier /= 0) 712 IF (l_error) THEN 713 WRITE(numout,*) ' Memory allocation error for tphoto_max. We stop. We need nvm words = ',nvm 714 STOP 'pft_parameters_alloc' 715 END IF 716 717 ALLOCATE(aSJ(nvm),stat=ier) 718 l_error = l_error .OR. (ier /= 0) 719 IF (l_error) THEN 720 WRITE(numout,*) ' Memory allocation error for aSJ. We stop. We need nvm words = ',nvm 721 STOP 'pft_parameters_alloc' 722 END IF 723 724 ALLOCATE(bSJ(nvm),stat=ier) 725 l_error = l_error .OR. (ier /= 0) 726 IF (l_error) THEN 727 WRITE(numout,*) ' Memory allocation error for bSJ. We stop. We need nvm words = ',nvm 728 STOP 'pft_parameters_alloc' 729 END IF 730 731 ALLOCATE(D_Vcmax(nvm),stat=ier) 732 l_error = l_error .OR. (ier /= 0) 733 IF (l_error) THEN 734 WRITE(numout,*) ' Memory allocation error for D_Vcmax. We stop. We need nvm words = ',nvm 735 STOP 'pft_parameters_alloc' 736 END IF 737 738 ALLOCATE(D_Jmax(nvm),stat=ier) 739 l_error = l_error .OR. (ier /= 0) 740 IF (l_error) THEN 741 WRITE(numout,*) ' Memory allocation error for D_Jmax. We stop. We need nvm words = ',nvm 742 STOP 'pft_parameters_alloc' 743 END IF 744 745 ALLOCATE(E_Rd(nvm),stat=ier) 746 l_error = l_error .OR. (ier /= 0) 747 IF (l_error) THEN 748 WRITE(numout,*) ' Memory allocation error for E_Rd. We stop. We need nvm words = ',nvm 749 STOP 'pft_parameters_alloc' 750 END IF 751 752 ALLOCATE(Vcmax25(nvm),stat=ier) 753 l_error = l_error .OR. (ier /= 0) 754 IF (l_error) THEN 755 WRITE(numout,*) ' Memory allocation error for Vcmax25. We stop. We need nvm words = ',nvm 756 STOP 'pft_parameters_alloc' 757 END IF 758 759 ALLOCATE(arJV(nvm),stat=ier) 760 l_error = l_error .OR. (ier /= 0) 761 IF (l_error) THEN 762 WRITE(numout,*) ' Memory allocation error for arJV. We stop. We need nvm words = ',nvm 763 STOP 'pft_parameters_alloc' 764 END IF 765 766 ALLOCATE(brJV(nvm),stat=ier) 767 l_error = l_error .OR. (ier /= 0) 768 IF (l_error) THEN 769 WRITE(numout,*) ' Memory allocation error for brJV. We stop. We need nvm words = ',nvm 770 STOP 'pft_parameters_alloc' 771 END IF 772 773 ALLOCATE(KmC25(nvm),stat=ier) 774 l_error = l_error .OR. (ier /= 0) 775 IF (l_error) THEN 776 WRITE(numout,*) ' Memory allocation error for KmC25. We stop. We need nvm words = ',nvm 777 STOP 'pft_parameters_alloc' 778 END IF 779 780 ALLOCATE(KmO25(nvm),stat=ier) 781 l_error = l_error .OR. (ier /= 0) 782 IF (l_error) THEN 783 WRITE(numout,*) ' Memory allocation error for KmO25. We stop. We need nvm words = ',nvm 784 STOP 'pft_parameters_alloc' 785 END IF 786 787 ALLOCATE(gamma_star25(nvm),stat=ier) 788 l_error = l_error .OR. (ier /= 0) 789 IF (l_error) THEN 790 WRITE(numout,*) ' Memory allocation error for gamma_star25. We stop. We need nvm words = ',nvm 791 STOP 'pft_parameters_alloc' 792 END IF 793 794 ALLOCATE(a1(nvm),stat=ier) 795 l_error = l_error .OR. (ier /= 0) 796 IF (l_error) THEN 797 WRITE(numout,*) ' Memory allocation error for a1. We stop. We need nvm words = ',nvm 798 STOP 'pft_parameters_alloc' 799 END IF 800 801 ALLOCATE(b1(nvm),stat=ier) 802 l_error = l_error .OR. (ier /= 0) 803 IF (l_error) THEN 804 WRITE(numout,*) ' Memory allocation error for b1. We stop. We need nvm words = ',nvm 805 STOP 'pft_parameters_alloc' 806 END IF 807 808 ALLOCATE(g0(nvm),stat=ier) 809 l_error = l_error .OR. (ier /= 0) 810 IF (l_error) THEN 811 WRITE(numout,*) ' Memory allocation error for g0. We stop. We need nvm words = ',nvm 812 STOP 'pft_parameters_alloc' 813 END IF 814 815 ALLOCATE(h_protons(nvm),stat=ier) 816 l_error = l_error .OR. (ier /= 0) 817 IF (l_error) THEN 818 WRITE(numout,*) ' Memory allocation error for h_protons. We stop. We need nvm words = ',nvm 819 STOP 'pft_parameters_alloc' 820 END IF 821 822 ALLOCATE(fpsir(nvm),stat=ier) 823 l_error = l_error .OR. (ier /= 0) 824 IF (l_error) THEN 825 WRITE(numout,*) ' Memory allocation error for fpsir. We stop. We need nvm words = ',nvm 826 STOP 'pft_parameters_alloc' 827 END IF 828 829 ALLOCATE(fQ(nvm),stat=ier) 830 l_error = l_error .OR. (ier /= 0) 831 IF (l_error) THEN 832 WRITE(numout,*) ' Memory allocation error for fQ. We stop. We need nvm words = ',nvm 833 STOP 'pft_parameters_alloc' 834 END IF 835 836 ALLOCATE(fpseudo(nvm),stat=ier) 837 l_error = l_error .OR. (ier /= 0) 838 IF (l_error) THEN 839 WRITE(numout,*) ' Memory allocation error for fpseudo. We stop. We need nvm words = ',nvm 840 STOP 'pft_parameters_alloc' 841 END IF 842 843 ALLOCATE(kp(nvm),stat=ier) 844 l_error = l_error .OR. (ier /= 0) 845 IF (l_error) THEN 846 WRITE(numout,*) ' Memory allocation error for kp. We stop. We need nvm words = ',nvm 847 STOP 'pft_parameters_alloc' 848 END IF 849 850 ALLOCATE(alpha(nvm),stat=ier) 851 l_error = l_error .OR. (ier /= 0) 852 IF (l_error) THEN 853 WRITE(numout,*) ' Memory allocation error for alpha. We stop. We need nvm words = ',nvm 854 STOP 'pft_parameters_alloc' 855 END IF 856 857 ALLOCATE(gbs(nvm),stat=ier) 858 l_error = l_error .OR. (ier /= 0) 859 IF (l_error) THEN 860 WRITE(numout,*) ' Memory allocation error for gbs. We stop. We need nvm words = ',nvm 861 STOP 'pft_parameters_alloc' 862 END IF 863 864 ALLOCATE(theta(nvm),stat=ier) 865 l_error = l_error .OR. (ier /= 0) 866 IF (l_error) THEN 867 WRITE(numout,*) ' Memory allocation error for theta. We stop. We need nvm words = ',nvm 868 STOP 'pft_parameters_alloc' 869 END IF 870 871 ALLOCATE(alpha_LL(nvm),stat=ier) 872 l_error = l_error .OR. (ier /= 0) 873 IF (l_error) THEN 874 WRITE(numout,*) ' Memory allocation error for alpha_LL. We stop. We need nvm words = ',nvm 875 STOP 'pft_parameters_alloc' 876 END IF 877 878 ALLOCATE(ext_coeff(nvm),stat=ier) 879 l_error = l_error .OR. (ier /= 0) 880 IF (l_error) THEN 881 WRITE(numout,*) ' Memory allocation error for ext_coeff. We stop. We need nvm words = ',nvm 882 STOP 'pft_parameters_alloc' 883 END IF 884 885 ALLOCATE(ext_coeff_vegetfrac(nvm),stat=ier) 886 l_error = l_error .OR. (ier /= 0) 887 IF (l_error) THEN 888 WRITE(numout,*) ' Memory allocation error for ext_coeff_vegetfrac. We stop. We need nvm words = ',nvm 889 STOP 'pft_parameters_alloc' 890 END IF 891 892 ALLOCATE(veget_ori_fixed_test_1(nvm),stat=ier) 893 l_error = l_error .OR. (ier /= 0) 894 IF (l_error) THEN 895 WRITE(numout,*) ' Memory allocation error for veget_ori_fixed_test_1. We stop. We need nvm words = ',nvm 896 STOP 'pft_parameters_alloc' 897 END IF 898 899 ALLOCATE(llaimax(nvm),stat=ier) 900 l_error = l_error .OR. (ier /= 0) 901 IF (l_error) THEN 902 WRITE(numout,*) ' Memory allocation error for llaimax. We stop. We need nvm words = ',nvm 903 STOP 'pft_parameters_alloc' 904 END IF 905 906 ALLOCATE(llaimin(nvm),stat=ier) 907 l_error = l_error .OR. (ier /= 0) 908 IF (l_error) THEN 909 WRITE(numout,*) ' Memory allocation error for llaimin. We stop. We need nvm words = ',nvm 910 STOP 'pft_parameters_alloc' 911 END IF 912 913 ALLOCATE(type_of_lai(nvm),stat=ier) 914 l_error = l_error .OR. (ier /= 0) 915 IF (l_error) THEN 916 WRITE(numout,*) ' Memory allocation error for type_of_lai. We stop. We need nvm words = ',nvm 917 STOP 'pft_parameters_alloc' 918 END IF 919 920 ALLOCATE(vcmax_fix(nvm),stat=ier) 921 l_error = l_error .OR. (ier /= 0) 922 IF (l_error) THEN 923 WRITE(numout,*) ' Memory allocation error for vcmax_fix. We stop. We need nvm words = ',nvm 924 STOP 'pft_parameters_alloc' 925 END IF 926 927 ALLOCATE(pref_soil_veg(nvm),stat=ier) 928 l_error = l_error .OR. (ier /= 0) 929 IF (l_error) THEN 930 WRITE(numout,*) ' Memory allocation error for pref_soil_veg. We stop. We need nvm words = ',nvm 1459 WRITE(numout,*) ' Memory allocation error for nagec_pft. We stop. We need nvm words = ',nvm 931 1460 STOP 'pft_parameters_alloc' 932 1461 END IF … … 939 1468 END IF 940 1469 941 ALLOCATE(pheno_model(nvm),stat=ier) 942 l_error = l_error .OR. (ier /= 0) 943 IF (l_error) THEN 944 WRITE(numout,*) ' Memory allocation error for pheno_model. We stop. We need nvm words = ',nvm 945 STOP 'pft_parameters_alloc' 946 END IF 947 948 ALLOCATE(is_deciduous(nvm),stat=ier) 949 l_error = l_error .OR. (ier /= 0) 950 IF (l_error) THEN 951 WRITE(numout,*) ' Memory allocation error for is_deciduous. We stop. We need nvm words = ',nvm 952 STOP 'pft_parameters_alloc' 953 END IF 954 955 ALLOCATE(is_evergreen(nvm),stat=ier) 956 l_error = l_error .OR. (ier /= 0) 957 IF (l_error) THEN 958 WRITE(numout,*) ' Memory allocation error for is_evergreen. We stop. We need nvm words = ',nvm 959 STOP 'pft_parameters_alloc' 960 END IF 961 962 ALLOCATE(is_needleleaf(nvm),stat=ier) 963 l_error = l_error .OR. (ier /= 0) 964 IF (l_error) THEN 965 WRITE(numout,*) ' Memory allocation error for is_needleleaf. We stop. We need nvm words = ',nvm 966 STOP 'pft_parameters_alloc' 967 END IF 968 969 ALLOCATE(is_tropical(nvm),stat=ier) 970 l_error = l_error .OR. (ier /= 0) 971 IF (l_error) THEN 972 WRITE(numout,*) ' Memory allocation error for is_tropical. We stop. We need nvm words = ',nvm 973 STOP 'pft_parameters_alloc' 974 END IF 975 976 977 ! 978 ! 2. Parameters used if ok_sechiba only 979 ! 980 IF ( ok_sechiba ) THEN 981 982 l_error = .FALSE. 983 984 ALLOCATE(rstruct_const(nvm),stat=ier) 1470 ALLOCATE(pref_soil_veg(nvm),stat=ier) 1471 l_error = l_error .OR. (ier /= 0) 1472 IF (l_error) THEN 1473 WRITE(numout,*) ' Memory allocation error for pref_soil_veg. We stop. We need nvm words = ',nvm 1474 STOP 'pft_parameters_alloc' 1475 END IF 1476 1477 ALLOCATE(pheno_model(nvm),stat=ier) 1478 l_error = l_error .OR. (ier /= 0) 1479 IF (l_error) THEN 1480 WRITE(numout,*) ' Memory allocation error for pheno_model. We stop. We need nvm words = ',nvm 1481 STOP 'pft_parameters_alloc' 1482 END IF 1483 1484 ALLOCATE(is_deciduous(nvm),stat=ier) 1485 l_error = l_error .OR. (ier /= 0) 1486 IF (l_error) THEN 1487 WRITE(numout,*) ' Memory allocation error for is_deciduous. We stop. We need nvm words = ',nvm 1488 STOP 'pft_parameters_alloc' 1489 END IF 1490 1491 ALLOCATE(is_evergreen(nvm),stat=ier) 1492 l_error = l_error .OR. (ier /= 0) 1493 IF (l_error) THEN 1494 WRITE(numout,*) ' Memory allocation error for is_evergreen. We stop. We need nvm words = ',nvm 1495 STOP 'pft_parameters_alloc' 1496 END IF 1497 1498 ALLOCATE(is_needleleaf(nvm),stat=ier) 1499 l_error = l_error .OR. (ier /= 0) 1500 IF (l_error) THEN 1501 WRITE(numout,*) ' Memory allocation error for is_needleleaf. We stop. We need nvm words = ',nvm 1502 STOP 'pft_parameters_alloc' 1503 END IF 1504 1505 ALLOCATE(is_tropical(nvm),stat=ier) 1506 l_error = l_error .OR. (ier /= 0) 1507 IF (l_error) THEN 1508 WRITE(numout,*) ' Memory allocation error for is_tropical. We stop. We need nvm words = ',nvm 1509 STOP 'pft_parameters_alloc' 1510 END IF 1511 1512 1513 ! 1514 ! 2. Parameters used if ok_sechiba only 1515 ! 1516 IF ( ok_sechiba ) THEN 1517 1518 l_error = .FALSE. 1519 1520 ALLOCATE(rstruct_const(nvm),stat=ier) 1521 l_error = l_error .OR. (ier /= 0) 1522 IF (l_error) THEN 1523 WRITE(numout,*) ' Memory allocation error for rstruct_const. We stop. We need nvm words = ',nvm 1524 STOP 'pft_parameters_alloc' 1525 END IF 1526 1527 ALLOCATE(kzero(nvm),stat=ier) 1528 l_error = l_error .OR. (ier /= 0) 1529 IF (l_error) THEN 1530 WRITE(numout,*) ' Memory allocation error for kzero. We stop. We need nvm words = ',nvm 1531 STOP 'pft_parameters_alloc' 1532 END IF 1533 1534 ALLOCATE(rveg_pft(nvm),stat=ier) 1535 l_error = l_error .OR. (ier /= 0) 1536 IF (l_error) THEN 1537 WRITE(numout,*) ' Memory allocation error for rveg_pft. We stop. We need nvm words = ',nvm 1538 STOP 'pft_parameters_alloc' 1539 END IF 1540 1541 ALLOCATE(wmax_veg(nvm),stat=ier) 1542 l_error = l_error .OR. (ier /= 0) 1543 IF (l_error) THEN 1544 WRITE(numout,*) ' Memory allocation error for wmax_veg. We stop. We need nvm words = ',nvm 1545 STOP 'pft_parameters_alloc' 1546 END IF 1547 1548 ALLOCATE(throughfall_by_pft(nvm),stat=ier) 1549 l_error = l_error .OR. (ier /= 0) 1550 IF (l_error) THEN 1551 WRITE(numout,*) ' Memory allocation error for throughfall_by_pft. We stop. We need nvm words = ',nvm 1552 STOP 'pft_parameters_alloc' 1553 END IF 1554 1555 ALLOCATE(snowa_dec_vis(nvm),stat=ier) 1556 l_error = l_error .OR. (ier /= 0) 1557 IF (l_error) THEN 1558 WRITE(numout,*) ' Memory allocation error for snowa_dec_nir. We stop. We need nvm words = ',nvm 1559 STOP 'pft_parameters_alloc' 1560 END IF 1561 1562 ALLOCATE(snowa_dec_nir(nvm),stat=ier) 1563 l_error = l_error .OR. (ier /= 0) 1564 IF (l_error) THEN 1565 WRITE(numout,*) ' Memory allocation error for snowa_dec_nir. We stop. We need nvm words = ',nvm 1566 STOP 'pft_parameters_alloc' 1567 END IF 1568 1569 ALLOCATE(snowa_aged_vis(nvm),stat=ier) 1570 l_error = l_error .OR. (ier /= 0) 1571 IF (l_error) THEN 1572 WRITE(numout,*) ' Memory allocation error for snowa_aged_vis. We stop. We need nvm words = ',nvm 1573 STOP 'pft_parameters_alloc' 1574 END IF 1575 1576 ALLOCATE(snowa_aged_nir(nvm),stat=ier) 1577 l_error = l_error .OR. (ier /= 0) 1578 IF (l_error) THEN 1579 WRITE(numout,*) ' Memory allocation error for snowa_aged_nir. We stop. We need nvm words = ',nvm 1580 STOP 'pft_parameters_alloc' 1581 END IF 1582 1583 ALLOCATE(alb_leaf_vis(nvm),stat=ier) 1584 l_error = l_error .OR. (ier /= 0) 1585 IF (l_error) THEN 1586 WRITE(numout,*) ' Memory allocation error for alb_leaf_vis. We stop. We need nvm words = ',nvm 1587 STOP 'pft_parameters_alloc' 1588 END IF 1589 1590 ALLOCATE(alb_leaf_nir(nvm),stat=ier) 1591 l_error = l_error .OR. (ier /= 0) 1592 IF (l_error) THEN 1593 WRITE(numout,*) ' Memory allocation error for alb_leaf_nir. We stop. We need nvm words = ',nvm 1594 STOP 'pft_parameters_alloc' 1595 END IF 1596 1597 !chaoyue+ 1598 ALLOCATE(permafrost_veg_exists(nvm),stat=ier) 985 1599 l_error = l_error .OR. (ier /= 0) 986 1600 IF (l_error) THEN 987 WRITE(numout,*) ' Memory allocation error for rstruct_const. We stop. We need nvm words = ',nvm1601 WRITE(numout,*) ' Memory allocation error for permafrost_veg_exists. We stop. We need nvm words = ',nvm 988 1602 STOP 'pft_parameters_alloc' 989 1603 END IF 990 991 ALLOCATE(kzero(nvm),stat=ier) 1604 !chaoyue- 1605 1606 IF( ok_bvoc ) THEN 1607 1608 l_error = .FALSE. 1609 1610 ALLOCATE(em_factor_isoprene(nvm),stat=ier) 1611 l_error = l_error .OR. (ier /= 0) 1612 IF (l_error) THEN 1613 WRITE(numout,*) ' Memory allocation error for em_factor_isoprene. We stop. We need nvm words = ',nvm 1614 STOP 'pft_parameters_alloc' 1615 END IF 1616 1617 ALLOCATE(em_factor_monoterpene(nvm),stat=ier) 1618 l_error = l_error .OR. (ier /= 0) 1619 IF (l_error) THEN 1620 WRITE(numout,*) ' Memory allocation error for em_factor_monoterpene. We stop. We need nvm words = ',nvm 1621 STOP 'pft_parameters_alloc' 1622 END IF 1623 1624 ALLOCATE(em_factor_apinene(nvm),stat=ier) 1625 l_error = l_error .OR. (ier /= 0) 1626 IF (l_error) THEN 1627 WRITE(numout,*) ' Memory allocation error for em_factor_apinene. We stop. We need nvm words = ',nvm 1628 STOP 'pft_parameters_alloc' 1629 END IF 1630 1631 ALLOCATE(em_factor_bpinene(nvm),stat=ier) 1632 l_error = l_error .OR. (ier /= 0) 1633 IF (l_error) THEN 1634 WRITE(numout,*) ' Memory allocation error for em_factor_bpinene. We stop. We need nvm words = ',nvm 1635 STOP 'pft_parameters_alloc' 1636 END IF 1637 1638 ALLOCATE(em_factor_limonene(nvm),stat=ier) 1639 l_error = l_error .OR. (ier /= 0) 1640 IF (l_error) THEN 1641 WRITE(numout,*) ' Memory allocation error for em_factor_limonene. We stop. We need nvm words = ',nvm 1642 STOP 'pft_parameters_alloc' 1643 END IF 1644 1645 ALLOCATE(em_factor_myrcene(nvm),stat=ier) 1646 l_error = l_error .OR. (ier /= 0) 1647 IF (l_error) THEN 1648 WRITE(numout,*) ' Memory allocation error for em_factor_myrcene. We stop. We need nvm words = ',nvm 1649 STOP 'pft_parameters_alloc' 1650 END IF 1651 1652 ALLOCATE(em_factor_sabinene(nvm),stat=ier) 1653 l_error = l_error .OR. (ier /= 0) 1654 IF (l_error) THEN 1655 WRITE(numout,*) ' Memory allocation error for em_factor_sabinene. We stop. We need nvm words = ',nvm 1656 STOP 'pft_parameters_alloc' 1657 END IF 1658 1659 ALLOCATE(em_factor_camphene(nvm),stat=ier) 1660 l_error = l_error .OR. (ier /= 0) 1661 IF (l_error) THEN 1662 WRITE(numout,*) ' Memory allocation error for em_factor_camphene. We stop. We need nvm words = ',nvm 1663 STOP 'pft_parameters_alloc' 1664 END IF 1665 1666 ALLOCATE(em_factor_3carene(nvm),stat=ier) 1667 l_error = l_error .OR. (ier /= 0) 1668 IF (l_error) THEN 1669 WRITE(numout,*) ' Memory allocation error for em_factor_3carene. We stop. We need nvm words = ',nvm 1670 STOP 'pft_parameters_alloc' 1671 END IF 1672 1673 ALLOCATE(em_factor_tbocimene(nvm),stat=ier) 1674 l_error = l_error .OR. (ier /= 0) 1675 IF (l_error) THEN 1676 WRITE(numout,*) ' Memory allocation error for em_factor_tbocimene. We stop. We need nvm words = ',nvm 1677 STOP 'pft_parameters_alloc' 1678 END IF 1679 1680 ALLOCATE(em_factor_othermonot(nvm),stat=ier) 1681 l_error = l_error .OR. (ier /= 0) 1682 IF (l_error) THEN 1683 WRITE(numout,*) ' Memory allocation error for em_factor_othermonot. We stop. We need nvm words = ',nvm 1684 STOP 'pft_parameters_alloc' 1685 END IF 1686 1687 ALLOCATE(em_factor_sesquiterp(nvm),stat=ier) 1688 l_error = l_error .OR. (ier /= 0) 1689 IF (l_error) THEN 1690 WRITE(numout,*) ' Memory allocation error for em_factor_sesquiterp. We stop. We need nvm words = ',nvm 1691 STOP 'pft_parameters_alloc' 1692 END IF 1693 1694 1695 ALLOCATE(em_factor_ORVOC(nvm),stat=ier) 1696 l_error = l_error .OR. (ier /= 0) 1697 IF (l_error) THEN 1698 WRITE(numout,*) ' Memory allocation error for em_factor_ORVOC. We stop. We need nvm words = ',nvm 1699 STOP 'pft_parameters_alloc' 1700 END IF 1701 1702 ALLOCATE(em_factor_OVOC(nvm),stat=ier) 1703 l_error = l_error .OR. (ier /= 0) 1704 IF (l_error) THEN 1705 WRITE(numout,*) ' Memory allocation error for em_factor_OVOC. We stop. We need nvm words = ',nvm 1706 STOP 'pft_parameters_alloc' 1707 END IF 1708 1709 ALLOCATE(em_factor_MBO(nvm),stat=ier) 1710 l_error = l_error .OR. (ier /= 0) 1711 IF (l_error) THEN 1712 WRITE(numout,*) ' Memory allocation error for em_factor_MBO. We stop. We need nvm words = ',nvm 1713 STOP 'pft_parameters_alloc' 1714 END IF 1715 1716 ALLOCATE(em_factor_methanol(nvm),stat=ier) 1717 l_error = l_error .OR. (ier /= 0) 1718 IF (l_error) THEN 1719 WRITE(numout,*) ' Memory allocation error for em_factor_methanol. We stop. We need nvm words = ',nvm 1720 STOP 'pft_parameters_alloc' 1721 END IF 1722 1723 ALLOCATE(em_factor_acetone(nvm),stat=ier) 1724 l_error = l_error .OR. (ier /= 0) 1725 IF (l_error) THEN 1726 WRITE(numout,*) ' Memory allocation error for em_factor_acetone. We stop. We need nvm words = ',nvm 1727 STOP 'pft_parameters_alloc' 1728 END IF 1729 1730 ALLOCATE(em_factor_acetal(nvm),stat=ier) 1731 l_error = l_error .OR. (ier /= 0) 1732 IF (l_error) THEN 1733 WRITE(numout,*) ' Memory allocation error for em_factor_acetal. We stop. We need nvm words = ',nvm 1734 STOP 'pft_parameters_alloc' 1735 END IF 1736 1737 ALLOCATE(em_factor_formal(nvm),stat=ier) 1738 l_error = l_error .OR. (ier /= 0) 1739 IF (l_error) THEN 1740 WRITE(numout,*) ' Memory allocation error for em_factor_formal. We stop. We need nvm words = ',nvm 1741 STOP 'pft_parameters_alloc' 1742 END IF 1743 1744 ALLOCATE(em_factor_acetic(nvm),stat=ier) 1745 l_error = l_error .OR. (ier /= 0) 1746 IF (l_error) THEN 1747 WRITE(numout,*) ' Memory allocation error for em_factor_acetic. We stop. We need nvm words = ',nvm 1748 STOP 'pft_parameters_alloc' 1749 END IF 1750 1751 ALLOCATE(em_factor_formic(nvm),stat=ier) 1752 l_error = l_error .OR. (ier /= 0) 1753 IF (l_error) THEN 1754 WRITE(numout,*) ' Memory allocation error for em_factor_formic. We stop. We need nvm words = ',nvm 1755 STOP 'pft_parameters_alloc' 1756 END IF 1757 1758 ALLOCATE(em_factor_no_wet(nvm),stat=ier) 1759 l_error = l_error .OR. (ier /= 0) 1760 IF (l_error) THEN 1761 WRITE(numout,*) ' Memory allocation error for em_factor_no_wet. We stop. We need nvm words = ',nvm 1762 STOP 'pft_parameters_alloc' 1763 END IF 1764 1765 ALLOCATE(em_factor_no_dry(nvm),stat=ier) 1766 l_error = l_error .OR. (ier /= 0) 1767 IF (l_error) THEN 1768 WRITE(numout,*) ' Memory allocation error for em_factor_no_dry. We stop. We need nvm words = ',nvm 1769 STOP 'pft_parameters_alloc' 1770 END IF 1771 1772 ALLOCATE(Larch(nvm),stat=ier) 1773 l_error = l_error .OR. (ier /= 0) 1774 IF (l_error) THEN 1775 WRITE(numout,*) ' Memory allocation error for Larch. We stop. We need nvm words = ',nvm 1776 STOP 'pft_parameters_alloc' 1777 END IF 1778 1779 ENDIF ! (ok_bvoc) 1780 1781 !!!!! crop parameters 1782 1783 ALLOCATE(ok_LAIdev(nvm),stat=ier) 1784 IF (ier /= 0) THEN 1785 WRITE(str, *) 'Error code=', ier 1786 CALL ipslerr_p(3, 'config_pft_parameters', 'Memory error location for variable', ' ok_LAIdev', str) 1787 ENDIF 1788 !!!! end crop parameters 1789 1790 ENDIF !(ok_sechiba) 1791 1792 ! 1793 ! 3. Parameters used if ok_stomate only 1794 ! 1795 IF ( ok_stomate ) THEN 1796 1797 l_error = .FALSE. 1798 1799 ALLOCATE(sla(nvm),stat=ier) 1800 l_error = l_error .OR. (ier /= 0) 1801 IF (l_error) THEN 1802 WRITE(numout,*) ' Memory allocation error for sla. We stop. We need nvm words = ',nvm 1803 STOP 'pft_parameters_alloc' 1804 END IF 1805 1806 ALLOCATE(availability_fact(nvm),stat=ier) 1807 l_error = l_error .OR. (ier /= 0) 1808 IF (l_error) THEN 1809 WRITE(numout,*) ' Memory allocation error for availability_fact. We stop. We need nvm words = ',nvm 1810 STOP 'pft_parameters_alloc' 1811 END IF 1812 1813 ALLOCATE(R0(nvm),stat=ier) 1814 l_error = l_error .OR. (ier /= 0) 1815 IF (l_error) THEN 1816 WRITE(numout,*) ' Memory allocation error for R0. We stop. We need nvm words = ',nvm 1817 STOP 'pft_parameters_alloc' 1818 END IF 1819 1820 ALLOCATE(S0(nvm),stat=ier) 1821 l_error = l_error .OR. (ier /= 0) 1822 IF (l_error) THEN 1823 WRITE(numout,*) ' Memory allocation error for S0. We stop. We need nvm words = ',nvm 1824 STOP 'pft_parameters_alloc' 1825 END IF 1826 1827 ALLOCATE(L0(nvm),stat=ier) 1828 l_error = l_error .OR. (ier /= 0) 1829 IF (l_error) THEN 1830 WRITE(numout,*) ' Memory allocation error for L0. We stop. We need nvm words = ',nvm 1831 STOP 'pft_parameters_alloc' 1832 END IF 1833 1834 ALLOCATE(pheno_gdd_crit_c(nvm),stat=ier) 1835 l_error = l_error .OR. (ier /= 0) 1836 IF (l_error) THEN 1837 WRITE(numout,*) ' Memory allocation error for pheno_gdd_crit_c. We stop. We need nvm words = ',nvm 1838 STOP 'pft_parameters_alloc' 1839 END IF 1840 1841 ALLOCATE(pheno_gdd_crit_b(nvm),stat=ier) 1842 l_error = l_error .OR. (ier /= 0) 1843 IF (l_error) THEN 1844 WRITE(numout,*) ' Memory allocation error for pheno_gdd_crit_b. We stop. We need nvm words = ',nvm 1845 STOP 'pft_parameters_alloc' 1846 END IF 1847 1848 ALLOCATE(pheno_gdd_crit_a(nvm),stat=ier) 1849 l_error = l_error .OR. (ier /= 0) 1850 IF (l_error) THEN 1851 WRITE(numout,*) ' Memory allocation error for pheno_gdd_crit_a. We stop. We need nvm words = ',nvm 1852 STOP 'pft_parameters_alloc' 1853 END IF 1854 1855 ALLOCATE(pheno_gdd_crit(nvm,3),stat=ier) 1856 l_error = l_error .OR. (ier /= 0) 1857 IF (l_error) THEN 1858 WRITE(numout,*) ' Memory allocation error for pheno_gdd_crit. We stop. We need nvm words = ',nvm*3 1859 STOP 'pft_parameters_alloc' 1860 END IF 1861 pheno_gdd_crit(:,:) = zero 1862 1863 ALLOCATE(pheno_moigdd_t_crit(nvm),stat=ier) 1864 l_error = l_error .OR. (ier /= 0) 1865 IF (l_error) THEN 1866 WRITE(numout,*) ' Memory allocation error for pheno_moigdd_t_crit. We stop. We need nvm words = ',nvm 1867 STOP 'pft_parameters_alloc' 1868 END IF 1869 1870 ALLOCATE(ngd_crit(nvm),stat=ier) 1871 l_error = l_error .OR. (ier /= 0) 1872 IF (l_error) THEN 1873 WRITE(numout,*) ' Memory allocation error for ngd_crit. We stop. We need nvm words = ',nvm 1874 STOP 'pft_parameters_alloc' 1875 END IF 1876 1877 ALLOCATE(ncdgdd_temp(nvm),stat=ier) 1878 l_error = l_error .OR. (ier /= 0) 1879 IF (l_error) THEN 1880 WRITE(numout,*) ' Memory allocation error for ncdgdd_temp. We stop. We need nvm words = ',nvm 1881 STOP 'pft_parameters_alloc' 1882 END IF 1883 1884 ALLOCATE(hum_frac(nvm),stat=ier) 1885 l_error = l_error .OR. (ier /= 0) 1886 IF (l_error) THEN 1887 WRITE(numout,*) ' Memory allocation error for hum_frac. We stop. We need nvm words = ',nvm 1888 STOP 'pft_parameters_alloc' 1889 END IF 1890 1891 ALLOCATE(hum_min_time(nvm),stat=ier) 1892 l_error = l_error .OR. (ier /= 0) 1893 IF (l_error) THEN 1894 WRITE(numout,*) ' Memory allocation error for hum_min_time. We stop. We need nvm words = ',nvm 1895 STOP 'pft_parameters_alloc' 1896 END IF 1897 1898 ALLOCATE(tau_sap(nvm),stat=ier) 1899 l_error = l_error .OR. (ier /= 0) 1900 IF (l_error) THEN 1901 WRITE(numout,*) ' Memory allocation error for tau_sap. We stop. We need nvm words = ',nvm 1902 STOP 'pft_parameters_alloc' 1903 END IF 1904 1905 ALLOCATE(tau_leafinit(nvm),stat=ier) 1906 l_error = l_error .OR. (ier /= 0) 1907 IF (l_error) THEN 1908 WRITE(numout,*) ' Memory allocation error for tau_leafinit. We stop. We need nvm words = ',nvm 1909 STOP 'pft_parameters_alloc' 1910 END IF 1911 1912 ALLOCATE(tau_fruit(nvm),stat=ier) 1913 l_error = l_error .OR. (ier /= 0) 1914 IF (l_error) THEN 1915 WRITE(numout,*) ' Memory allocation error for tau_fruit. We stop. We need nvm words = ',nvm 1916 STOP 'pft_parameters_alloc' 1917 END IF 1918 1919 ALLOCATE(ecureuil(nvm),stat=ier) 1920 l_error = l_error .OR. (ier /= 0) 1921 IF (l_error) THEN 1922 WRITE(numout,*) ' Memory allocation error for ecureuil. We stop. We need nvm words = ',nvm 1923 STOP 'pft_parameters_alloc' 1924 END IF 1925 1926 ALLOCATE(alloc_min(nvm),stat=ier) 1927 l_error = l_error .OR. (ier /= 0) 1928 IF (l_error) THEN 1929 WRITE(numout,*) ' Memory allocation error for alloc_min. We stop. We need nvm words = ',nvm 1930 STOP 'pft_parameters_alloc' 1931 END IF 1932 1933 ALLOCATE(alloc_max(nvm),stat=ier) 1934 l_error = l_error .OR. (ier /= 0) 1935 IF (l_error) THEN 1936 WRITE(numout,*) ' Memory allocation error for alloc_max. We stop. We need nvm words = ',nvm 1937 STOP 'pft_parameters_alloc' 1938 END IF 1939 1940 ALLOCATE(demi_alloc(nvm),stat=ier) 1941 l_error = l_error .OR. (ier /= 0) 1942 IF (l_error) THEN 1943 WRITE(numout,*) ' Memory allocation error for . We stop. We need nvm words = ',nvm 1944 STOP 'pft_parameters_alloc' 1945 END IF 1946 1947 ALLOCATE(frac_growthresp(nvm),stat=ier) 1948 l_error = l_error .OR. (ier /= 0) 1949 IF (l_error) THEN 1950 WRITE(numout,*) ' Memory allocation error for frac_growthresp. We stop. We need nvm words = ',nvm 1951 STOP 'pft_parameters_alloc' 1952 END IF 1953 1954 ALLOCATE(maint_resp_slope(nvm,3),stat=ier) 1955 l_error = l_error .OR. (ier /= 0) 1956 IF (l_error) THEN 1957 WRITE(numout,*) ' Memory allocation error for maint_resp_slope. We stop. We need nvm*3 words = ',nvm*3 1958 STOP 'pft_parameters_alloc' 1959 END IF 1960 maint_resp_slope(:,:) = zero 1961 1962 ALLOCATE(maint_resp_slope_c(nvm),stat=ier) 1963 l_error = l_error .OR. (ier /= 0) 1964 IF (l_error) THEN 1965 WRITE(numout,*) ' Memory allocation error for maint_resp_slope_c. We stop. We need nvm words = ',nvm 1966 STOP 'pft_parameters_alloc' 1967 END IF 1968 1969 ALLOCATE(maint_resp_slope_b(nvm),stat=ier) 1970 l_error = l_error .OR. (ier /= 0) 1971 IF (l_error) THEN 1972 WRITE(numout,*) ' Memory allocation error for maint_resp_slope_b. We stop. We need nvm words = ',nvm 1973 STOP 'pft_parameters_alloc' 1974 END IF 1975 1976 ALLOCATE(maint_resp_slope_a(nvm),stat=ier) 1977 l_error = l_error .OR. (ier /= 0) 1978 IF (l_error) THEN 1979 WRITE(numout,*) ' Memory allocation error for maint_resp_slope_a. We stop. We need nvm words = ',nvm 1980 STOP 'pft_parameters_alloc' 1981 END IF 1982 1983 ALLOCATE(coeff_maint_zero(nvm,nparts),stat=ier) 1984 l_error = l_error .OR. (ier /= 0) 1985 IF (l_error) THEN 1986 WRITE(numout,*) ' Memory allocation error for coeff_maint_zero. We stop. We need nvm*nparts words = ',nvm*nparts 1987 STOP 'pft_parameters_alloc' 1988 END IF 1989 coeff_maint_zero(:,:) = zero 1990 1991 ALLOCATE(cm_zero_leaf(nvm),stat=ier) 1992 l_error = l_error .OR. (ier /= 0) 1993 IF (l_error) THEN 1994 WRITE(numout,*) ' Memory allocation error for cm_zero_leaf. We stop. We need nvm words = ',nvm 1995 STOP 'pft_parameters_alloc' 1996 END IF 1997 1998 ALLOCATE(cm_zero_sapabove(nvm),stat=ier) 1999 l_error = l_error .OR. (ier /= 0) 2000 IF (l_error) THEN 2001 WRITE(numout,*) ' Memory allocation error for cm_zero_sapabove. We stop. We need nvm words = ',nvm 2002 STOP 'pft_parameters_alloc' 2003 END IF 2004 2005 ALLOCATE(cm_zero_sapbelow(nvm),stat=ier) 2006 l_error = l_error .OR. (ier /= 0) 2007 IF (l_error) THEN 2008 WRITE(numout,*) ' Memory allocation error for cm_zero_sapbelow. We stop. We need nvm words = ',nvm 2009 STOP 'pft_parameters_alloc' 2010 END IF 2011 2012 ALLOCATE(cm_zero_heartabove(nvm),stat=ier) 2013 l_error = l_error .OR. (ier /= 0) 2014 IF (l_error) THEN 2015 WRITE(numout,*) ' Memory allocation error for cm_zero_heartabove. We stop. We need nvm words = ',nvm 2016 STOP 'pft_parameters_alloc' 2017 END IF 2018 2019 ALLOCATE(cm_zero_heartbelow(nvm),stat=ier) 2020 l_error = l_error .OR. (ier /= 0) 2021 IF (l_error) THEN 2022 WRITE(numout,*) ' Memory allocation error for cm_zero_heartbelow. We stop. We need nvm words = ',nvm 2023 STOP 'pft_parameters_alloc' 2024 END IF 2025 2026 ALLOCATE(cm_zero_root(nvm),stat=ier) 2027 l_error = l_error .OR. (ier /= 0) 2028 IF (l_error) THEN 2029 WRITE(numout,*) ' Memory allocation error for cm_zero_root. We stop. We need nvm words = ',nvm 2030 STOP 'pft_parameters_alloc' 2031 END IF 2032 2033 ALLOCATE(cm_zero_fruit(nvm),stat=ier) 2034 l_error = l_error .OR. (ier /= 0) 2035 IF (l_error) THEN 2036 WRITE(numout,*) ' Memory allocation error for cm_zero_fruit. We stop. We need nvm words = ',nvm 2037 STOP 'pft_parameters_alloc' 2038 END IF 2039 2040 ALLOCATE(cm_zero_carbres(nvm),stat=ier) 2041 l_error = l_error .OR. (ier /= 0) 2042 IF (l_error) THEN 2043 WRITE(numout,*) ' Memory allocation error for cm_zero_carbres. We stop. We need nvm words = ',nvm 2044 STOP 'pft_parameters_alloc' 2045 END IF 2046 2047 !spitfire 2048 ALLOCATE(dens_fuel(nvm),stat=ier) 992 2049 l_error = l_error .OR. (ier /= 0) 993 2050 IF (l_error) THEN 994 WRITE(numout,*) ' Memory allocation error for kzero. We stop. We need nvm words = ',nvm2051 WRITE(numout,*) ' Memory allocation error for dens_fuel. We stop. We need nvm words = ',nvm 995 2052 STOP 'pft_parameters_alloc' 996 2053 END IF 997 2054 998 ALLOCATE( rveg_pft(nvm),stat=ier)2055 ALLOCATE(f_sh(nvm),stat=ier) 999 2056 l_error = l_error .OR. (ier /= 0) 1000 2057 IF (l_error) THEN 1001 WRITE(numout,*) ' Memory allocation error for rveg_pft. We stop. We need nvm words = ',nvm2058 WRITE(numout,*) ' Memory allocation error for f_sh. We stop. We need nvm words = ',nvm 1002 2059 STOP 'pft_parameters_alloc' 1003 2060 END IF 1004 2061 1005 ALLOCATE( wmax_veg(nvm),stat=ier)2062 ALLOCATE(crown_length(nvm),stat=ier) 1006 2063 l_error = l_error .OR. (ier /= 0) 1007 2064 IF (l_error) THEN 1008 WRITE(numout,*) ' Memory allocation error for wmax_veg. We stop. We need nvm words = ',nvm2065 WRITE(numout,*) ' Memory allocation error for crown_length. We stop. We need nvm words = ',nvm 1009 2066 STOP 'pft_parameters_alloc' 1010 2067 END IF 1011 2068 1012 ALLOCATE( throughfall_by_pft(nvm),stat=ier)2069 ALLOCATE(BTpar1(nvm),stat=ier) 1013 2070 l_error = l_error .OR. (ier /= 0) 1014 2071 IF (l_error) THEN 1015 WRITE(numout,*) ' Memory allocation error for throughfall_by_pft. We stop. We need nvm words = ',nvm2072 WRITE(numout,*) ' Memory allocation error for BTpar1. We stop. We need nvm words = ',nvm 1016 2073 STOP 'pft_parameters_alloc' 1017 2074 END IF 1018 1019 ALLOCATE( snowa_aged_vis(nvm),stat=ier)2075 2076 ALLOCATE(BTpar2(nvm),stat=ier) 1020 2077 l_error = l_error .OR. (ier /= 0) 1021 2078 IF (l_error) THEN 1022 WRITE(numout,*) ' Memory allocation error for snowa_aged_vis. We stop. We need nvm words = ',nvm2079 WRITE(numout,*) ' Memory allocation error for BTpar2. We stop. We need nvm words = ',nvm 1023 2080 STOP 'pft_parameters_alloc' 1024 2081 END IF 1025 2082 1026 ALLOCATE( snowa_aged_nir(nvm),stat=ier)2083 ALLOCATE(r_ck(nvm),stat=ier) 1027 2084 l_error = l_error .OR. (ier /= 0) 1028 2085 IF (l_error) THEN 1029 WRITE(numout,*) ' Memory allocation error for snowa_aged_nir. We stop. We need nvm words = ',nvm2086 WRITE(numout,*) ' Memory allocation error for r_ck. We stop. We need nvm words = ',nvm 1030 2087 STOP 'pft_parameters_alloc' 1031 2088 END IF 1032 2089 1033 ALLOCATE( snowa_dec_vis(nvm),stat=ier)2090 ALLOCATE(p_ck(nvm),stat=ier) 1034 2091 l_error = l_error .OR. (ier /= 0) 1035 2092 IF (l_error) THEN 1036 WRITE(numout,*) ' Memory allocation error for snowa_dec_vis. We stop. We need nvm words = ',nvm2093 WRITE(numout,*) ' Memory allocation error for p_ck. We stop. We need nvm words = ',nvm 1037 2094 STOP 'pft_parameters_alloc' 1038 2095 END IF 1039 2096 1040 ALLOCATE( snowa_dec_nir(nvm),stat=ier)2097 ALLOCATE(ef_CO2(nvm),stat=ier) 1041 2098 l_error = l_error .OR. (ier /= 0) 1042 2099 IF (l_error) THEN 1043 WRITE(numout,*) ' Memory allocation error for snowa_dec_nir. We stop. We need nvm words = ',nvm2100 WRITE(numout,*) ' Memory allocation error for ef_CO2. We stop. We need nvm words = ',nvm 1044 2101 STOP 'pft_parameters_alloc' 1045 2102 END IF 1046 2103 1047 ALLOCATE( alb_leaf_vis(nvm),stat=ier)2104 ALLOCATE(ef_CO(nvm),stat=ier) 1048 2105 l_error = l_error .OR. (ier /= 0) 1049 2106 IF (l_error) THEN 1050 WRITE(numout,*) ' Memory allocation error for alb_leaf_vis. We stop. We need nvm words = ',nvm2107 WRITE(numout,*) ' Memory allocation error for ef_CO. We stop. We need nvm words = ',nvm 1051 2108 STOP 'pft_parameters_alloc' 1052 2109 END IF 1053 2110 1054 ALLOCATE( alb_leaf_nir(nvm),stat=ier)2111 ALLOCATE(ef_CH4(nvm),stat=ier) 1055 2112 l_error = l_error .OR. (ier /= 0) 1056 2113 IF (l_error) THEN 1057 WRITE(numout,*) ' Memory allocation error for alb_leaf_nir. We stop. We need nvm words = ',nvm2114 WRITE(numout,*) ' Memory allocation error for ef_CH4. We stop. We need nvm words = ',nvm 1058 2115 STOP 'pft_parameters_alloc' 1059 2116 END IF 1060 2117 1061 IF( ok_bvoc ) THEN 1062 1063 l_error = .FALSE. 1064 1065 ALLOCATE(em_factor_isoprene(nvm),stat=ier) 1066 l_error = l_error .OR. (ier /= 0) 1067 IF (l_error) THEN 1068 WRITE(numout,*) ' Memory allocation error for em_factor_isoprene. We stop. We need nvm words = ',nvm 1069 STOP 'pft_parameters_alloc' 1070 END IF 1071 1072 ALLOCATE(em_factor_monoterpene(nvm),stat=ier) 1073 l_error = l_error .OR. (ier /= 0) 1074 IF (l_error) THEN 1075 WRITE(numout,*) ' Memory allocation error for em_factor_monoterpene. We stop. We need nvm words = ',nvm 1076 STOP 'pft_parameters_alloc' 1077 END IF 1078 1079 ALLOCATE(em_factor_apinene(nvm),stat=ier) 1080 l_error = l_error .OR. (ier /= 0) 1081 IF (l_error) THEN 1082 WRITE(numout,*) ' Memory allocation error for em_factor_apinene. We stop. We need nvm words = ',nvm 1083 STOP 'pft_parameters_alloc' 1084 END IF 1085 1086 ALLOCATE(em_factor_bpinene(nvm),stat=ier) 1087 l_error = l_error .OR. (ier /= 0) 1088 IF (l_error) THEN 1089 WRITE(numout,*) ' Memory allocation error for em_factor_bpinene. We stop. We need nvm words = ',nvm 1090 STOP 'pft_parameters_alloc' 1091 END IF 1092 1093 ALLOCATE(em_factor_limonene(nvm),stat=ier) 1094 l_error = l_error .OR. (ier /= 0) 1095 IF (l_error) THEN 1096 WRITE(numout,*) ' Memory allocation error for em_factor_limonene. We stop. We need nvm words = ',nvm 1097 STOP 'pft_parameters_alloc' 1098 END IF 1099 1100 ALLOCATE(em_factor_myrcene(nvm),stat=ier) 1101 l_error = l_error .OR. (ier /= 0) 1102 IF (l_error) THEN 1103 WRITE(numout,*) ' Memory allocation error for em_factor_myrcene. We stop. We need nvm words = ',nvm 1104 STOP 'pft_parameters_alloc' 1105 END IF 1106 1107 ALLOCATE(em_factor_sabinene(nvm),stat=ier) 1108 l_error = l_error .OR. (ier /= 0) 1109 IF (l_error) THEN 1110 WRITE(numout,*) ' Memory allocation error for em_factor_sabinene. We stop. We need nvm words = ',nvm 1111 STOP 'pft_parameters_alloc' 1112 END IF 1113 1114 ALLOCATE(em_factor_camphene(nvm),stat=ier) 1115 l_error = l_error .OR. (ier /= 0) 1116 IF (l_error) THEN 1117 WRITE(numout,*) ' Memory allocation error for em_factor_camphene. We stop. We need nvm words = ',nvm 1118 STOP 'pft_parameters_alloc' 1119 END IF 1120 1121 ALLOCATE(em_factor_3carene(nvm),stat=ier) 1122 l_error = l_error .OR. (ier /= 0) 1123 IF (l_error) THEN 1124 WRITE(numout,*) ' Memory allocation error for em_factor_3carene. We stop. We need nvm words = ',nvm 1125 STOP 'pft_parameters_alloc' 1126 END IF 1127 1128 ALLOCATE(em_factor_tbocimene(nvm),stat=ier) 1129 l_error = l_error .OR. (ier /= 0) 1130 IF (l_error) THEN 1131 WRITE(numout,*) ' Memory allocation error for em_factor_tbocimene. We stop. We need nvm words = ',nvm 1132 STOP 'pft_parameters_alloc' 1133 END IF 1134 1135 ALLOCATE(em_factor_othermonot(nvm),stat=ier) 1136 l_error = l_error .OR. (ier /= 0) 1137 IF (l_error) THEN 1138 WRITE(numout,*) ' Memory allocation error for em_factor_othermonot. We stop. We need nvm words = ',nvm 1139 STOP 'pft_parameters_alloc' 1140 END IF 1141 1142 ALLOCATE(em_factor_sesquiterp(nvm),stat=ier) 1143 l_error = l_error .OR. (ier /= 0) 1144 IF (l_error) THEN 1145 WRITE(numout,*) ' Memory allocation error for em_factor_sesquiterp. We stop. We need nvm words = ',nvm 1146 STOP 'pft_parameters_alloc' 1147 END IF 1148 1149 1150 ALLOCATE(em_factor_ORVOC(nvm),stat=ier) 1151 l_error = l_error .OR. (ier /= 0) 1152 IF (l_error) THEN 1153 WRITE(numout,*) ' Memory allocation error for em_factor_ORVOC. We stop. We need nvm words = ',nvm 1154 STOP 'pft_parameters_alloc' 1155 END IF 1156 1157 ALLOCATE(em_factor_OVOC(nvm),stat=ier) 1158 l_error = l_error .OR. (ier /= 0) 1159 IF (l_error) THEN 1160 WRITE(numout,*) ' Memory allocation error for em_factor_OVOC. We stop. We need nvm words = ',nvm 1161 STOP 'pft_parameters_alloc' 1162 END IF 1163 1164 ALLOCATE(em_factor_MBO(nvm),stat=ier) 1165 l_error = l_error .OR. (ier /= 0) 1166 IF (l_error) THEN 1167 WRITE(numout,*) ' Memory allocation error for em_factor_M