Changeset 6939


Ignore:
Timestamp:
11/20/20 01:34:51 (18 months ago)
Author:
jinfeng.chang
Message:

Update ORCHIDEE-GMv3.2 for publication

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  
    22! MODULE       : constantes_mtc 
    33! 
    4 ! CONTACT      : orchidee-help _at_ ipsl.jussieu.fr 
     4! CONTACT      : orchidee-help _at_ listes.ipsl.fr 
    55! 
    66! LICENCE      : IPSL (2011) 
     
    3131!! forests: Fusion of eddy covariance data and the orchidee model, Journal of Geophysical Research-Biogeosciences, 116,  
    3232!! 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. 
    3335!! 
    3436!! SVN          : 
     
    4244 
    4345  USE defprec 
    44   USE constantes 
     46  USE constantes_var 
    4547 
    4648  IMPLICIT NONE 
     
    5052  ! 
    5153 
    52   INTEGER(i_std), PARAMETER :: nvmc = 13                         !! Number of MTCS fixed in the code (unitless) 
     54  INTEGER(i_std), PARAMETER :: nvmc = 14                         !! Number of MTCS fixed in the code (unitless) 
    5355 
    5456  CHARACTER(len=34), PARAMETER, DIMENSION(nvmc) :: MTC_name = &  !! description of the MTC (unitless) 
     
    6466  &    '          C3           grass      ', &          ! 10 
    6567  &    '          C4           grass      ', &          ! 11 
    66   &    '          C3           agriculture', &          ! 12 
    67   &    '          C4           agriculture'  /)         ! 13 
     68  &    '          wheat                   ', &          ! 12 
     69  &    '          maize                   ', &          ! 13 
     70  &    '          rice                    '  /)         ! 14 
    6871 
    6972 
     
    7376  INTEGER(i_std),PARAMETER, DIMENSION(nvmc) :: leaf_tab_mtc  =  &                 !! leaf type (1-4, unitless) 
    7477  & (/  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 ground 
     78  &     1,   2,   3,   3,   3,   3,   3   /)                                           !! 3=grass 4=bare ground 
    7679 
    7780  CHARACTER(len=6), PARAMETER, DIMENSION(nvmc) :: pheno_model_mtc  =  &  !! which phenology model is used? (tabulated)  
    7881  & (/  'none  ',   'none  ',   'moi   ',   'none  ',   'none  ',  & 
    7982  &     'ncdgdd',   'none  ',   'ncdgdd',   'ngd   ',   'moigdd',  & 
    80   &     'moigdd',   'moigdd',   'moigdd'  /)  
     83  &     'moi_C4',   'moigdd',   'moigdd',   'moigdd'  /)  
    8184 
    8285  LOGICAL, PARAMETER, DIMENSION(nvmc) :: is_tropical_mtc  =  &                       !! Is PFT tropical ? (true/false) 
    8386  & (/ .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.  /) 
    85137 
    86138  CHARACTER(LEN=5), PARAMETER, DIMENSION(nvmc) :: type_of_lai_mtc  =  &  !! Type of behaviour of the LAI evolution algorithm 
    87139  & (/ 'inter', 'inter', 'inter', 'inter', 'inter',  &                   !! for each vegetation type. (unitless) 
    88140  &    'inter', 'inter', 'inter', 'inter', 'inter',  &                   !! Value of type_of_lai : mean or interp 
    89   &    'inter', 'inter', 'inter' /) 
     141  &    'inter', 'inter', 'inter', 'inter' /) 
    90142 
    91143  LOGICAL, PARAMETER, DIMENSION(nvmc) :: natural_mtc =  &                         !! natural?  (true/false) 
    92144  & (/ .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 
    94152 
    95153  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: veget_ori_fixed_mtc  =  &  !! Value for veget_ori for tests in 
    96154  & (/ 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  /) 
    98156 
    99157  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: llaimax_mtc  =  &          !! laimax for maximum 
    100158  & (/ 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})$ @endtex 
     159  &    4.5,   4.0,   2.0,   2.0,   2.0,   2.0,  2.0  /)                       !! @tex $(m^2.m^{-2})$ @endtex 
    102160 
    103161  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: llaimin_mtc  = &           !! laimin for minimum lai 
    104162  & (/ 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  /)                       !! @tex $(m^2.m^{-2})$ @endtex 
     163  &    0.0,   0.0,   0.0,   0.0,   0.0,   0.0, 0.0/)                       !! @tex $(m^2.m^{-2})$ @endtex 
    106164 
    107165  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: height_presc_mtc  =  &     !! prescribed height of vegetation (m) 
    108166  & (/  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/) 
    110168 
    111169  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: z0_over_height_mtc = &         !! Factor to calculate roughness height from  
    112170  & (/  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  /) 
    114172 
    115173  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: ratio_z0m_z0h_mtc = &      !! Ratio between z0m and z0h values (roughness height for momentum and for heat) 
    116174  & (/  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  /) 
    118176 
    119177 
    120178  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: rveg_mtc  =  &             !! Potentiometer to set vegetation resistance (unitless) 
    121179  & (/ 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   /) 
    123181 
    124182  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: sla_mtc  =  &                       !! specif leaf area @tex $(m^2.gC^{-1})$ @endtex 
    125183  & (/ 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  /)  
    127185 
    128186  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: availability_fact_mtc  =  &     !! calculate mortality in lpj_gap 
    129187  & (/ 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 
    131190 
    132191  ! 
     
    135194  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: rstruct_const_mtc  =  &  !! Structural resistance. 
    136195  & (/ 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   /) 
    138197 
    139198  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: kzero_mtc  =  &                  !! A vegetation dependent constant used in the  
    140199  & (/    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})$ @endtex 
     200  &    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 
    142201 
    143202 
     
    147206  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: wmax_veg_mtc  =  &        !! Volumetric available soil water capacity in each PFT 
    148207  & (/ 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  /)          
    150209                                                                       
    151210 
    152211  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: humcste_ref4m  =  &       !! Root profile description for the different  
    153212  & (/ 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 gets        
     213  &    1.0,   0.8,   4.0,   1.0,   4.0,   1.0,   4.0  /)                      !! These are the factor in the exponential which gets        
    155214                                                                       !! the root density as a function of depth 
    156215                                                                       !! Values for zmaxh = 4.0   
     
    158217  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: humcste_ref2m  =  &       !! Root profile description for the different 
    159218  & (/ 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 gets        
     219  &    1.0,   0.8,   4.0,   4.0,   4.0,   4.0,   4.0  /)                      !! These are the factor in the exponential which gets        
    161220                                                                       !! the root density as a function of depth 
    162221                                                                       !! Values for zmaxh = 2.0 
     
    164223  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: throughfall_by_mtc  =  &  !! Fraction of rain intercepted by the canopy 
    165224  & (/ 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  /) 
    167226 
    168227 
     
    170229  ! ALBEDO (sechiba) 
    171230  ! 
    172   REAL(r_std), PARAMETER, DIMENSION(nvmc) :: snowa_aged_vis_mtc  =  &  !! Minimum snow albedo value for each vegetation type 
     231  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: snowa_aged_vis_mtc  =  &    !! Minimum snow albedo value for each vegetation type 
    173232  & (/ 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/2016 
     233  &    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 
    175234 
    176235  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: snowa_aged_nir_mtc  =  &  !! Minimum snow albedo value for each vegetation type 
    177236  & (/ 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) 
    179238 
    180239  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: snowa_dec_vis_mtc  =  &   !! Decay rate of snow albedo value for each vegetation type 
    181240  & (/ 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/2016 
     241  &    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 
    183242 
    184243  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: snowa_dec_nir_mtc  =  &   !! Decay rate of snow albedo value for each vegetation type 
    185244  & (/ 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) 
    187246 
    188247  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: alb_leaf_vis_mtc  =  &    !! leaf albedo of vegetation type, visible albedo, optimized on 04/07/2016 
    189248  & (/ 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  /) 
    191250 
    192251  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: alb_leaf_nir_mtc  =  &    !! leaf albedo of vegetation type, near infrared albedo, optimized on 04/07/2016 
    193252  & (/ 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  /) 
    195254 
    196255  ! 
     
    199258  INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: pref_soil_veg_mtc  =  &       !! The soil tile number for each vegetation 
    200259  & (/ 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 
    202270 
    203271 
     
    210278  LOGICAL, PARAMETER, DIMENSION(nvmc) :: is_c4_mtc  =  &                            !! flag for C4 vegetation types (true/false) 
    211279  & (/ .FALSE.,  .FALSE.,   .FALSE.,   .FALSE.,   .FALSE.,   .FALSE.,   .FALSE.,  & 
    212   &    .FALSE.,  .FALSE.,   .FALSE.,   .TRUE.,    .FALSE.,   .TRUE.  /) 
     280  &    .FALSE.,  .FALSE.,   .FALSE.,   .TRUE.,    .FALSE.,   .TRUE.,   .FALSE.  /) 
    213281 
    214282  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: vcmax_fix_mtc  =  &     !! values used for vcmax when STOMATE is not 
    215283  & (/  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 
    218288  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: downregulation_co2_coeff_mtc  =  &  !! coefficient for CO2 downregulation  
    219289  & (/  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 /) 
    221291 
    222292  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: E_KmC_mtc  = &            !! Energy of activation for KmC (J mol-1) 
    223293  & (/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) 
    225295 
    226296  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: E_KmO_mtc  = &            !! Energy of activation for KmO (J mol-1) 
    227297  & (/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  
    229303 
    230304  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: E_gamma_star_mtc  = &     !! Energy of activation for gamma_star (J mol-1) 
    231305  & (/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 plants 
     306  &  37830.,  37830.,  37830.,  37830.,  37830.,  37830.,  37830.  /)           !! for C3 plants - We use the same values for C4 plants 
    233307 
    234308  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: E_Vcmax_mtc  = &          !! Energy of activation for Vcmax (J mol-1) 
    235309  & (/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) 
    237311 
    238312  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: E_Jmax_mtc  = &            !! Energy of activation for Jmax (J mol-1) 
    239313  & (/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) 
    241315 
    242316  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) 
    243317  & (/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 no 
     318  &  668.39,  668.39,  668.39,  641.64,  668.39,  641.64,  668.39  /)            !! For C4 plants, we assume that there is no 
    245319                                                                        !! 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) 
    246320 
    247321  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) 
    248322  & (/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 plants 
     323  &   -1.07,   -1.07,   -1.07,      0.,   -1.07,      0.,   -1.07  /)            !! We assume No acclimation term for C4 plants 
    250324 
    251325  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: tphoto_min_mtc  =  &  !! minimum photosynthesis temperature (deg C)  
    252326  & (/  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  /) 
    254328 
    255329  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: tphoto_max_mtc  =  &  !! maximum photosynthesis temperature (deg C)  
    256330  & (/  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  /) 
    258332 
    259333  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) 
    260334  & (/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 plants 
     335  &  659.70,  659.70,  659.70,    630.,  659.70,    630.,  659.70  /)            !! and Table 2 of Yin et al. (2009) for C4 plants 
    262336 
    263337  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) 
    264338  & (/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 plants 
     339  &   -0.75,   -0.75,   -0.75,      0.,   -0.75,      0.,   -0.75  /)            !! We assume no acclimation term for C4 plants 
    266340 
    267341  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: D_Vcmax_mtc  = &           !! Energy of deactivation for Vcmax (J mol-1) 
    268342  & (/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 plants 
     343  & 200000., 200000., 200000., 192000., 200000., 192000., 200000.  /)            !! 'Consequently', we use the value of D_Jmax for C4 plants 
    270344 
    271345  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: D_Jmax_mtc  = &            !! Energy of deactivation for Jmax (J mol-1) 
    272346  & (/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.  /)  
    274360 
    275361  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: E_Rd_mtc  = &              !! Energy of activation for Rd (J mol-1) 
    276362  & (/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.  /)            
    278364 
    279365  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})$ @endtex 
    281   &     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  /) 
    282368 
    283369  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) 
    284370  & (/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 no 
     371  &    2.59,    2.59,    2.59,   1.715,    2.59,   1.715,   2.59  /)            !! For C4 plants, we assume that there is no 
    286372                                                                        !! 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) 
    287373 
    288374  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) 
    289375  & (/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 plants 
     376  &  -0.035,  -0.035,  -0.035,      0.,  -0.035,      0.,  -0.035  /)            !! We assume No acclimation term for C4 plants 
    291377 
    292378  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: KmC25_mtc  = &             !! Michaelis–Menten constant of Rubisco for CO2 at 25°C (ubar) 
    293379  & (/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 C3 
     380  &   404.9,   404.9,   404.9,    650.,   404.9,   650.,   404.9  /)             !! and Medlyn et al (2002) for C3 
    295381 
    296382  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: KmO25_mtc  = &             !! Michaelis–Menten constant of Rubisco for O2 at 25°C (ubar) 
    297383  & (/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   
    299393 
    300394  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: gamma_star25_mtc  = &      !! Ci-based CO2 compensation point in the absence of Rd at 25°C (ubar) 
    301395  & (/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  /)     
    303397 
    304398  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: a1_mtc  = &                !! Empirical factor involved in the calculation of fvpd (-) 
    305399  & (/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  /)            
    307401 
    308402  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: b1_mtc  = &                !! Empirical factor involved in the calculation of fvpd (-) 
    309403  & (/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  /)            
    311405 
    312406  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: g0_mtc  = &                !! Residual stomatal conductance when irradiance approaches zero (mol CO2 m−2 s−1 bar−1) 
    313407  & (/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 CO2  
     408  & 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  
    315409 
    316410  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: h_protons_mtc  = &         !! Number of protons required to produce one ATP (mol mol-1) 
    317411  & (/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.  /)            
    319413 
    320414  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: fpsir_mtc = &              !! Fraction of PSII e− transport rate  
    321415  & (/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 parameter         
     416  &   undef,   undef,   undef,     0.4,   undef,    0.4,  undef  /)             !! See Table 2 of Yin et al. (2009) - x parameter         
    323417  
    324418  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: fQ_mtc = &                 !! Fraction of electrons at reduced plastoquinone  
    325419  & (/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)           
    327421 
    328422  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: fpseudo_mtc = &            !! Fraction of electrons at PSI that follow  
    329423  & (/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)     
    331425 
    332426  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: kp_mtc = &                 !! Initial carboxylation efficiency of the PEP carboxylase (mol m−2 s−1 bar−1)  
    333427  & (/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  /)                  
    335429 
    336430  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: alpha_mtc = &              !! Fraction of PSII activity in the bundle sheath (-) 
    337431  & (/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  /)                  
    339433 
    340434  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: gbs_mtc = &                !! Bundle-sheath conductance (mol m−2 s−1 bar−1) 
    341435  & (/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  /)     
    343437 
    344438  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: theta_mtc = &              !! Convexity factor for response of J to irradiance (-) 
    345439  & (/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  /) 
    347441 
    348442  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) 
    349443  & (/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)    
    351445                                                                        !! 0.093 mol CO2 fixed per mol absorbed photons 
    352446                                                                        !! 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. /)  
    353459     
    354460  !- 
     
    357463  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: ext_coeff_mtc  =  &     !! extinction coefficient of the Monsi&Saeki 
    358464  & (/ 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  /) 
    360466  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: ext_coeff_vegetfrac_mtc  =  &     !! extinction coefficient used for defining the fraction 
    361467  & (/ 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  /) 
    363469 
    364470  ! 
     
    367473  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: R0_mtc = &              !! Default root allocation (0-1, unitless) 
    368474  & (/ 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 /)                    
    370476 
    371477  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: S0_mtc = &              !! Default sapwood allocation (0-1, unitless) 
    372478  & (/ 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 /)                    
    374480 
    375481  ! 
     
    378484  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: frac_growthresp_mtc  =  &  !! fraction of GPP which is lost as growth respiration 
    379485  & (/  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  /) 
    381487 
    382488  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: maint_resp_slope_c_mtc  =  &  !! slope of maintenance respiration coefficient (1/K), 
    383489  & (/  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  /) 
    385491 
    386492  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: maint_resp_slope_b_mtc  =  &  !! slope of maintenance respiration coefficient (1/K), 
    387493  & (/  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  /) 
    389495 
    390496  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: maint_resp_slope_a_mtc  =  &  !! slope of maintenance respiration coefficient (1/K), 
    391497  & (/  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  /) 
    393499 
    394500  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: cm_zero_leaf_mtc  =   &                  !! maintenance respiration coefficient 
    395501  & (/   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})$ @endtex 
     502  &    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 
    397503 
    398504  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: cm_zero_sapabove_mtc =  &                !! maintenance respiration coefficient  
    399505  & (/   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})$ @endtex 
     506  &    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 
    401507 
    402508  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: cm_zero_sapbelow_mtc  =  &               !! maintenance respiration coefficient 
    403509  & (/   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})$ @endtex  
     510  &    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  
    405511 
    406512  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: cm_zero_heartabove_mtc  =  &             !! maintenance respiration coefficient 
    407513  & (/  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})$ @endtex  
     514  &       0.0,   0.0,   0.0,   0.0,   0.0,   0.0,   0.0  /)                                  !! tabulated, @tex $(gC.gC^{-1}.day^{-1})$ @endtex  
    409515 
    410516  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: cm_zero_heartbelow_mtc  =  &             !! maintenance respiration coefficient 
    411517  & (/  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})$ @endtex  
     518  &       0.0,   0.0,   0.0,   0.0,   0.0,   0.0,   0.0  /)                                  !! tabulated, @tex $(gC.gC^{-1}.day^{-1})$ @endtex  
    413519 
    414520  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: cm_zero_root_mtc  =  &                   !! maintenance respiration coefficient 
    415521  & (/   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})$ @endtex  
     522  &    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  
    417523 
    418524  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: cm_zero_fruit_mtc  =  &                  !! maintenance respiration coefficient 
    419525  & (/   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})$ @endtex 
     526  &    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 
    421527 
    422528  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: cm_zero_carbres_mtc  =  &                !! maintenance respiration coefficient 
    423529  & (/   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})$ @endtex 
     530  &    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 
    425531 
    426532 
     
    430536  REAL(r_std),PARAMETER, DIMENSION(nvmc) :: flam_mtc  =  &         !! flamability: critical fraction of water  
    431537  & (/  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  /) 
    433539 
    434540  REAL(r_std),PARAMETER, DIMENSION(nvmc) :: resist_mtc  =  &       !! fire resistance (0-1, unitless) 
    435541  & (/ 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 
    438604 
    439605  ! 
     
    442608  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: coeff_lcchange_1_mtc  =  &   !! Coeff of biomass export for the year 
    443609  & (/  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  /) 
    445611 
    446612  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: coeff_lcchange_10_mtc  =  &  !! Coeff of biomass export for the decade  
    447613  & (/  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  /)  
    449615 
    450616  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: coeff_lcchange_100_mtc  =  & !! Coeff of biomass export for the century 
    451617  & (/  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  /) 
    454632 
    455633  ! 
    456634  ! PHENOLOGY 
    457635  ! 
     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). 
    458638  !- 
    459639  ! 1. Stomate 
     
    461641  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: lai_max_to_happy_mtc  =  &  !! threshold of LAI below which plant uses carbohydrate reserves 
    462642  & (/  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  /) 
    464644 
    465645  REAL(r_std), PARAMETER, DIMENSION (nvmc) :: lai_max_mtc  =  &          !! maximum LAI, PFT-specific  
    466646  & (/ 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  /) 
    468648 
    469649  INTEGER(i_std), PARAMETER, DIMENSION(nvmc) :: pheno_type_mtc  =  &     !! type of phenology (0-4, unitless) 
    470650  & (/  0,   1,   3,   1,   1,   2,   1,  &                              !! 0=bare ground 1=evergreen,  2=summergreen,  
    471   &     2,   2,   4,   4,   2,   3  /)                                   !! 3=raingreen,  4=perennial 
     651  &     2,   2,   4,   4,   2,   3,   2  /)                                   !! 3=raingreen,  4=perennial 
    472652  !- 
    473653  ! 2. Leaf Onset 
     
    475655  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: pheno_gdd_crit_c_mtc  =  &    !! critical gdd, tabulated (C), 
    476656  & (/  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  /) 
    478658 
    479659  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: pheno_gdd_crit_b_mtc  =  &    !! critical gdd, tabulated (C), 
    480660  & (/  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  /) 
    482662 
    483663  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: pheno_gdd_crit_a_mtc  =  &    !! critical gdd, tabulated (C), 
    484664  & (/  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  /) 
    486666 
    487667  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: pheno_moigdd_t_crit_mtc  = &  !! temperature threshold for C4 grass(C) 
    488668  & (/  undef,   undef,     undef,   undef,   undef,   undef,   undef,  &   
    489   &     undef,   undef,     undef,    22.0,   undef,   undef  /) 
     669  &     undef,   undef,     undef,    22.0,   undef,   undef,   undef  /) 
    490670 
    491671  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: ngd_crit_mtc  =  &            !! critical ngd, tabulated.  
    492672  & (/  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  /) 
    494674 
    495675  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: ncdgdd_temp_mtc  =  &         !! critical temperature for the ncd vs. gdd  
    496676  & (/  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  /) 
    498678 
    499679  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: hum_frac_mtc  =  &            !! critical humidity (relative to min/max)  
    500680  & (/  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  /) 
    502682 
    503683  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: hum_min_time_mtc  =  &        !! minimum time elapsed since 
    504684  & (/  undef,   undef,   50.0,   undef,   undef,   undef,   undef,  &     !! moisture minimum (days) 
    505   &     undef,   undef,   35.0,    35.0,    75.0,    75.0  /)  
     685  &     undef,   undef,   36.0,    35.0,    75.0,    75.0,   75.0  /)  
    506686 
    507687  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: tau_sap_mtc  =  &             !! time (days)   
    508688  & (/  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  /) 
    510690 
    511691  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: tau_leafinit_mtc  =  &  !! time to attain the initial foliage using the carbohydrate reserve 
    512692  & (/  undef,   10.,   10.,   10.,   10.,   10.,   10.,  & 
    513   &       10.,   10.,   10.,   10.,   10.,   10.  /) 
     693  &       10.,   10.,   10.,   10.,   10.,   10.,   10.  /) 
    514694 
    515695  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: tau_fruit_mtc  =  &           !! fruit lifetime (days) 
    516696  & (/  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  /) 
    518698 
    519699  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: ecureuil_mtc  =  &            !! fraction of primary leaf and root allocation 
    520700  & (/  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  /) 
    522702 
    523703  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: alloc_min_mtc  =  &           !! NEW - allocation above/below = f(age)  
    524704  & (/  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  /) 
    526706 
    527707  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: alloc_max_mtc  =  &           !! NEW - allocation above/below = f(age)  
    528708  & (/  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  /) 
    530710 
    531711  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: demi_alloc_mtc  =  &          !! NEW - allocation above/below = f(age)  
    532712  & (/  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  /) 
    534714 
    535715  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: leaflife_mtc  =  &            !! leaf longevity, tabulated (??units??) 
    536716  & (/  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  /) 
    538718  !- 
    539719  ! 3. Senescence 
    540720  !- 
    541721  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  /) 
    544724 
    545725  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: leafagecrit_mtc  =  &          !! critical leaf age, tabulated (days) 
    546   & (/  undef,   730.0,   180.0,   910.0,   730.0,   180.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  /) 
    548728 
    549729  CHARACTER(LEN=6), PARAMETER, DIMENSION(nvmc) :: senescence_type_mtc  =  & !! type of senescence, tabulated (unitless) 
    550730  & (/  'none  ',  'none  ',   'dry   ',  'none  ',  'none  ',  & 
    551731  &     'cold  ',  'none  ',   'cold  ',  'cold  ',  'mixed ',  & 
    552   &     'mixed ',  'mixed ',   'mixed '            /) 
     732  &     'mixed ',  'mixed ',   'mixed ',  'mixed '            /) 
    553733 
    554734  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: senescence_hum_mtc  =  &       !! critical relative moisture availability 
    555735  & (/  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  /) 
    557737 
    558738  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: nosenescence_hum_mtc  =  &     !! relative moisture availability above which  
    559739  & (/  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) 
    561741 
    562742  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: max_turnover_time_mtc  =  &    !! maximum turnover time for grasses (days) 
    563743  & (/  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  /) 
    565745 
    566746  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: min_turnover_time_mtc  =  &    !! minimum turnover time for grasses (days) 
    567747  & (/  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  /) 
    569749  
    570750  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: min_leaf_age_for_senescence_mtc  =  &  !! minimum leaf age to allow  
    571751  & (/  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  /) 
    573753 
    574754  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, tabulated 
    576   &       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) 
    577757 
    578758  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: senescence_temp_b_mtc  =  &    !! critical temperature for senescence (C),  
    579759  & (/  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) 
    581761 
    582762  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: senescence_temp_a_mtc  =  &    !! critical temperature for senescence (C),  
    583763  & (/  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) 
    585765 
    586766  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: gdd_senescence_mtc  =  &       !! minimum gdd to allow senescence of crops (days) 
    587767  & (/  undef,   undef,    undef,   undef,     undef,    undef,    undef,  & 
    588   &     undef,   undef,    undef,   undef,      950.,    4000.  /) 
     768  &     undef,   undef,    undef,   undef,      950.,    4000.,    950.  /) 
    589769 
    590770 
     
    594774  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: residence_time_mtc  =  &    !! residence time of trees (years) 
    595775  & (/  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  /)  
    597777 
    598778  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: tmin_crit_mtc  =  & 
    599779  & (/  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  /) 
    601781 
    602782  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: tcm_crit_mtc  =  & 
    603783  & (/  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  /) 
    605785 
    606786 
     
    611791  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_isoprene_mtc = &     !! Isoprene emission factor  
    612792  & (/  0.,    24.,   24.,    8.,   16.,   45.,   8.,  &                    !! 
    613   &    18.,    0.5,   12.,   18.,    5.,    5.  /) 
     793  &    18.,    0.5,   12.,   18.,    5.,    5.,   5.  /) 
    614794 
    615795  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_monoterpene_mtc = &  !! Monoterpene emission factor 
    616796  & (/   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  /) 
    618798 
    619799  REAL(r_std), PARAMETER :: LDF_mono_mtc = 0.6                                  !! monoterpenes fraction dependancy to light 
     
    624804  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_apinene_mtc = &      !! Alfa pinene emission factor percentage 
    625805  & (/   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 /) 
    627807 
    628808  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_bpinene_mtc = &      !! Beta pinene emission factor  percentage       
    629809  & (/   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  /) 
    631811 
    632812  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_limonene_mtc = &     !! Limonene emission factor percentage 
    633813  & (/   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  /) 
    635815 
    636816  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_myrcene_mtc = &      !! Myrcene emission factor percentage 
    637817  & (/   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  /) 
    639819 
    640820  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_sabinene_mtc = &     !! Sabinene emission factor percentage 
    641821  & (/   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  /) 
    643823 
    644824  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_camphene_mtc = &     !! Camphene emission factor percentage 
    645825  & (/   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  /) 
    647827 
    648828  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_3carene_mtc = &      !! 3-carene emission factor percentage 
    649829  & (/   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  /) 
    651831 
    652832  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_tbocimene_mtc = &    !! T-beta-ocimene emission factor percentage 
    653833  & (/   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  /) 
    655835 
    656836  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_othermonot_mtc = &   !! Other monoterpenes emission factor percentage 
    657837  & (/   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  /) 
    659839 
    660840  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_sesquiterp_mtc = &   !! Sesquiterpene emission factor 
    661841  & (/   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  /) 
    663843 
    664844  REAL(r_std), PARAMETER :: beta_mono_mtc = 0.10                            !! Monoterpenes temperature dependency coefficient  
     
    671851  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_ORVOC_mtc = &        !! ORVOC emissions factor  
    672852  &  (/  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  /)  
    674854 
    675855  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_OVOC_mtc = &         !! OVOC emissions factor  
    676856  &  (/  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  /) 
    678858   
    679859  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_MBO_mtc = &          !! MBO emissions factor 
    680860  & (/     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  /)   
    682862   
    683863  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_methanol_mtc = &     !! Methanol emissions factor  
    684864  & (/  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.  /)   
    686866   
    687867  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_acetone_mtc = &      !! Acetone emissions factor 
    688868  & (/  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  /) 
    690870   
    691871  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_acetal_mtc = &       !! Acetaldehyde emissions factor  
    692872  & (/  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  /)   
    694874   
    695875  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_formal_mtc = &       !! Formaldehyde emissions factor 
    696876  & (/  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  /)   
    698878 
    699879  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_acetic_mtc = &       !! Acetic Acid emissions factor 
    700880  & (/   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  /)   
    702882 
    703883  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: em_factor_formic_mtc = &       !! Formic Acid emissions factor 
    704884  & (/  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  /)   
    706886 
    707887  REAL(r_std),PARAMETER, DIMENSION(nvmc) :: em_factor_no_wet_mtc = &        !! NOx emissions factor soil emissions and exponential 
    708888  & (/  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})$ @endtex 
     889  &  0.03,   0.03,   0.36,   0.36,   0.36,   0.36,   0.36  /)                       !! @tex $(ngN.m^{-2}.s^{-1})$ @endtex 
    710890 
    711891  REAL(r_std),PARAMETER, DIMENSION(nvmc) :: em_factor_no_dry_mtc = &        !! NOx emissions factor soil emissions and exponential 
    712892  & (/  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})$ @endtex  
     893  &   0.22,   0.22,   2.65,   2.65,   2.65,   2.65,   2.65  /)                      !! @tex $(ngN.m^{-2}.s^{-1})$ @endtex  
    714894 
    715895  REAL(r_std), PARAMETER, DIMENSION(nvmc) :: Larch_mtc = &                  !! Larcher 1991 SAI/LAI ratio (unitless) 
    716896  & (/   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  /)  
    7661230  
     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 
    7671509END MODULE constantes_mtc 
  • branches/publications/ORCHIDEE-GMv3.2/ORCHIDEE/src_parameters/constantes_var.f90

    r5816 r6939  
    22! MODULE       : constantes_var 
    33! 
    4 ! CONTACT      : orchidee-help _at_ ipsl.jussieu.fr 
     4! CONTACT      : orchidee-help _at_ listes.ipsl.fr 
    55! 
    66! LICENCE      : IPSL (2006) 
     
    5656  LOGICAL :: hydrol_cwrr        !! activate 11 layers hydrolgy model 
    5757!$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) 
    5864  LOGICAL :: do_floodplains     !! activate flood plains 
    5965!$OMP THREADPRIVATE(do_floodplains) 
    6066  LOGICAL :: do_irrigation      !! activate computation of irrigation flux 
    6167!$OMP THREADPRIVATE(do_irrigation) 
     68  LOGICAL :: do_fullirr         !! activate idealized irrigation scheme 
     69!$OMP THREADPRIVATE(do_fullirr) 
    6270  LOGICAL :: ok_sechiba         !! activate physic of the model 
    6371!$OMP THREADPRIVATE(ok_sechiba) 
     
    8492  LOGICAL :: ok_cropsfertil_NOx !! calculate NOx emissions with fertilizers use 
    8593!$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 
    87114  LOGICAL :: ok_co2bvoc_poss    !! CO2 inhibition on isoprene activated following Possell et al. (2005) model 
    88115!$OMP THREADPRIVATE(ok_co2bvoc_poss) 
     
    103130  CHARACTER(LEN=80), SAVE     :: stom_restname_out = 'stomate_rest_out.nc'  !! Output Restart files name for Stomate component 
    104131!$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] 
    106133!$OMP THREADPRIVATE(printlev) 
    107134 
     
    109136  ! TIME 
    110137  ! 
    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 days 
    114 !$OMP THREADPRIVATE(one_year) 
    115   REAL(r_std), PARAMETER :: one_hour = 3600.0  !! One hour in seconds (s) 
    116138  INTEGER(i_std), PARAMETER  :: spring_days_max = 40  !! Maximum number of days during which we watch for possible spring frost damage 
    117  
    118   ! TIME STEP 
    119   REAL(r_std)            :: dt_sechiba         !! Time step in sechiba 
    120 !$OMP THREADPRIVATE(dt_sechiba) 
    121   REAL(r_std)            :: dt_stomate         !! Time step in stomate 
    122 !$OMP THREADPRIVATE(dt_stomate) 
    123139 
    124140  ! 
     
    137153  REAL(r_std), PARAMETER :: large_value = 1.E33_r_std    !! some large value (for stomate) (unitless) 
    138154 
     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) 
    139159 
    140160  ! 
     
    187207  INTEGER(i_std), PARAMETER :: nelements = 1    !! Number of isotopes considered 
    188208  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 
    189214  ! 
    190215  !! Indices used for analytical spin-up 
     
    198223  INTEGER(i_std), PARAMETER :: ipassive_pool = 7        !! Index for passive carbon pool (unitless) 
    199224 
     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 
    200232 
    201233  ! 
     
    254286 
    255287 
     288  INTEGER(i_std), SAVE :: testpft = 6 
    256289  !- 
    257290  ! 3. Climatic constants 
     
    318351  REAL(r_std), SAVE :: snowcri = 1.5       !! Sets the amount above which only sublimation occures (kg.m^{-2}) 
    319352!$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) 
    320357 
    321358 
     
    333370  LOGICAL, SAVE :: disable_fire = .FALSE.      !! flag that disable fire (true/false) 
    334371!$OMP THREADPRIVATE(disable_fire) 
     372  LOGICAL, SAVE :: allow_deforest_fire = .FALSE. !! flag that allows deforestation fire (true/false) 
     373!$OMP THREADPRIVATE(allow_deforest_fire) 
    335374  LOGICAL, SAVE :: spinup_analytic = .FALSE.   !! Flag to activate analytical resolution for spinup (true/false) 
    336375!$OMP THREADPRIVATE(spinup_analytic) 
    337376  LOGICAL, SAVE :: ok_explicitsnow             !! Flag to activate explicit snow scheme instead of default snow scheme 
    338377!$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) 
    339380 
    340381  ! 
     
    349390  LOGICAL, SAVE :: do_now_stomate_lcchange = .FALSE.  !! Time to call lcchange in stomate_lpj 
    350391!$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) 
    351394  LOGICAL, SAVE :: done_stomate_lcchange = .FALSE.    !! If true, call lcchange in stomate_lpj has just been done.  
    352395!$OMP THREADPRIVATE(done_stomate_lcchange) 
     
    358401!$OMP THREADPRIVATE(veget_reinit) 
    359402 
     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 
    360413  ! 
    361414  ! PARAMETERS USED BY BOTH HYDROLOGY MODELS 
     
    372425  !! Heat capacity 
    373426  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                 !! Heat capacity of saturated frozen soil (J/K/m3) 
     427  REAL(r_std), SAVE      :: so_capa_ice=2.11E6          !! Heat capacity of saturated frozen soil (J/K/m3) 
    375428!$OMP THREADPRIVATE(so_capa_ice) 
    376429  REAL(r_std), PARAMETER :: rho_water = 1000.           !! Density of water (kg/m3) 
     
    492545                                            !! (true/false) 
    493546!$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) 
    494553 
    495554  ! 1.2 Others  
     
    581640  REAL(r_std), PARAMETER :: Tetens_2 = 0.378         !! 
    582641  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 :: mmol_to_m_1 = 0.0244     !! 
     642  REAL(r_std), PARAMETER :: mol_to_m_1 = 0.0244      !! 
    584643  REAL(r_std), PARAMETER :: RG_to_PAR = 0.5          !! 
    585   REAL(r_std), PARAMETER :: W_to_mmol = 4.6          !! W_to_mmol * RG_to_PAR = 2.3 
     644  REAL(r_std), PARAMETER :: W_to_mol = 4.6          !! W_to_mmol * RG_to_PAR = 2.3 
    586645 
    587646  ! 1. Scalar 
     
    598657!$OMP THREADPRIVATE(downregulation_co2_baselevel) 
    599658 
     659  REAL(r_std), SAVE :: gb_ref = 1./25.                     !! Leaf bulk boundary layer resistance (s m-1) 
     660 
    600661  ! 3. Coefficients of equations 
    601662 
     
    619680  REAL(r_std), SAVE :: clayfraction_default = 0.2    !! Default value for clay fraction (0-1, unitless) 
    620681!$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) 
    622683!$OMP THREADPRIVATE(min_vegfrac) 
    623684  REAL(r_std), SAVE :: frac_nobio_fixed_test_1 = 0.0 !! Value for frac_nobio for tests in 0-dim simulations (0-1, unitless) 
     
    650711  ! 1. Scalar 
    651712 
    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) 
    653714!$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) 
    655716!$OMP THREADPRIVATE(estab_max_grass) 
    656717   
     
    744805  REAL(r_std), PARAMETER :: max_possible_lai = 10. !! (m^2.m^{-2}) 
    745806  REAL(r_std), PARAMETER :: Nlim_Q10 = 10.         !! 
    746   !gmjc 
     807!gmjc 
    747808   REAL(r_std), SAVE  ::  reserve_time_cut = 20. 
    748809   REAL(r_std), SAVE  ::  lai_happy_cut = 0.25 
    749810   REAL(r_std), SAVE  ::  tau_leafinit_cut = 10 
    750811   REAL(r_std), SAVE  ::  tau_t2m_14 = 14. 
    751    !end gmjc 
     812!end gmjc 
    752813  ! 1. Scalar 
    753814 
     
    783844!$OMP THREADPRIVATE(Nlim_tref) 
    784845 
     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) 
    785871 
    786872  ! 
     
    11211207!$OMP THREADPRIVATE(green_age_dec) 
    11221208 
     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 
    11231316END MODULE constantes_var 
  • branches/publications/ORCHIDEE-GMv3.2/ORCHIDEE/src_parameters/control.f90

    r5816 r6939  
    22! MODULE       : control 
    33! 
    4 ! CONTACT      : orchidee-help _at_ ipsl.jussieu.fr 
     4! CONTACT      : orchidee-help _at_ listes.ipsl.fr 
    55! 
    66! LICENCE      : IPSL (2006) 
     
    2222  USE constantes_soil 
    2323  USE constantes_var 
     24!  USE time 
    2425  USE pft_parameters 
    2526  USE vertical_soil 
     27  USE constantes 
    2628 
    2729  IMPLICIT NONE 
     
    4648!_ ================================================================================================================================ 
    4749 
    48   SUBROUTINE control_initialize(dt) 
     50  SUBROUTINE control_initialize 
    4951 
    5052    IMPLICIT NONE 
    5153     
    52     REAL(r_std), INTENT(in)                    :: dt            !! Time step in seconds 
    5354    INTEGER(i_std)                             :: jv            !! Local index variable 
    5455    INTEGER(i_std)                             :: ier           !! Error handeling 
    55  
    56     ! Archive the sechiba time step into module constantes_var  
    57     dt_sechiba=dt 
    5856 
    5957    ! Start reading options from parameter file  
     
    7775    !Config Help  = The classification used in the file that we use here  
    7876    !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)  
    8078    !Config Units = [-] 
    8179    ! 
     
    8482    CALL getin_p('SOILTYPE_CLASSIF',soil_classif) 
    8583    SELECTCASE (soil_classif) 
    86     CASE ('zobler','none') 
     84    CASE ('zobler', 'fao','none') 
    8785       nscm = nscm_fao 
    8886    CASE ('usda') 
    8987       nscm = nscm_usda 
    9088    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' 
    9491    ENDSELECT 
    9592 
     
    106103    river_routing = .FALSE. 
    107104    CALL getin_p('RIVER_ROUTING', river_routing) 
    108     WRITE(numout,*) "RIVER routing is activated : ",river_routing 
     105    IF (printlev>=1) WRITE(numout,*) "RIVER routing is activated : ",river_routing 
    109106    ! 
    110107    !Config key   = HYDROL_CWRR 
     
    120117    hydrol_cwrr = .FALSE. 
    121118    CALL getin_p('HYDROL_CWRR', hydrol_cwrr) 
    122     WRITE(numout,*) "CWRR hydrology is activated : ",hydrol_cwrr 
     119    IF (printlev>=1) WRITE(numout,*) "CWRR hydrology is activated : ",hydrol_cwrr 
    123120 
    124121    !Config Key   = DO_IRRIGATION 
     
    135132    do_irrigation = .FALSE. 
    136133    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 
    137171    ! 
    138172    !Config Key   = DO_FLOODPLAINS 
     
    162196    CALL getin_p('CHECK_WATERBAL', check_waterbal) 
    163197 
     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 
    164205    !Config Key   = OK_EXPLICITSNOW 
    165206    !Config Desc  = Activate explict snow scheme 
     
    171212    CALL getin_p('OK_EXPLICITSNOW', ok_explicitsnow) 
    172213 
     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 
    173223    ! 
    174224    !Config Key   = STOMATE_OK_STOMATE 
     
    181231    ok_stomate = .FALSE. 
    182232    CALL getin_p('STOMATE_OK_STOMATE',ok_stomate) 
    183     WRITE(numout,*) 'STOMATE is activated: ',ok_stomate 
     233    IF (printlev>=1) WRITE(numout,*) 'STOMATE is activated: ',ok_stomate 
    184234 
    185235 
     
    196246       CALL getin_p('STOMATE_OK_CO2', ok_co2) 
    197247    END IF 
    198     WRITE(numout,*) 'photosynthesis: ', ok_co2 
     248    IF (printlev>=1) WRITE(numout,*) 'Photosynthesis: ', ok_co2 
    199249 
    200250    ! 
     
    218268    ok_bvoc = .FALSE. 
    219269    CALL getin_p('CHEMISTRY_BVOC', ok_bvoc) 
    220     WRITE(numout,*) 'Biogenic emissions: ', ok_bvoc 
     270    IF (printlev>=1) WRITE(numout,*) 'Biogenic emissions: ', ok_bvoc 
    221271 
    222272    IF ( ok_bvoc ) THEN  
     
    244294    ! 
    245295    CALL getin_p('CHEMISTRY_LEAFAGE', ok_leafage) 
    246     WRITE(numout,*) 'Leaf Age: ', ok_leafage 
     296    IF (printlev>=1) WRITE(numout,*) 'Leaf Age: ', ok_leafage 
    247297    ! 
    248298    !Config Key   = CANOPY_EXTINCTION  
     
    254304    ! 
    255305    CALL getin_p('CANOPY_EXTINCTION', ok_radcanopy) 
    256     WRITE(numout,*) 'Canopy radiative transfer model: ', ok_radcanopy 
     306    IF (printlev>=1) WRITE(numout,*) 'Canopy radiative transfer model: ', ok_radcanopy 
    257307    ! 
    258308    !Config Key   = CANOPY_MULTILAYER 
     
    264314    ! 
    265315    CALL getin_p('CANOPY_MULTILAYER', ok_multilayer) 
    266     WRITE(numout,*) 'Multi-layer Canopy model: ', ok_multilayer 
     316    IF (printlev>=1) WRITE(numout,*) 'Multi-layer Canopy model: ', ok_multilayer 
    267317    ! 
    268318    !Config Key   = NOx_RAIN_PULSE 
     
    274324    ! 
    275325    CALL getin_p('NOx_RAIN_PULSE', ok_pulse_NOx) 
    276     WRITE(numout,*) 'Rain NOx pulsing: ', ok_pulse_NOx 
     326    IF (printlev>=1) WRITE(numout,*) 'Rain NOx pulsing: ', ok_pulse_NOx 
    277327    ! 
    278328    !Config Key   = NOx_BBG_FERTIL 
     
    285335    ! 
    286336    CALL getin_p('NOx_BBG_FERTIL', ok_bbgfertil_NOx) 
    287     WRITE(numout,*) 'NOx bbg fertil effect: ', ok_bbgfertil_NOx 
     337    IF (printlev>=1) WRITE(numout,*) 'NOx bbg fertil effect: ', ok_bbgfertil_NOx 
    288338    ! 
    289339    !Config Key   = NOx_FERTILIZERS_USE 
     
    296346    ! 
    297347    CALL getin_p('NOx_FERTILIZERS_USE', ok_cropsfertil_NOx) 
    298     WRITE(numout,*) 'NOx Fertilizers use: ', ok_cropsfertil_NOx 
     348    IF (printlev>=1) WRITE(numout,*) 'NOx Fertilizers use: ', ok_cropsfertil_NOx 
    299349    !Config Key  = Is CO2 impact on BVOC accounted for using Possell 2005 ? 
    300350    !Config Desc = In this case we use Possell 2005 parameterisation  
     
    306356    ok_co2bvoc_poss = .FALSE. 
    307357    CALL getin_p('CO2_FOR_BVOC_POSSELL', ok_co2bvoc_poss) 
    308     WRITE(*,*) 'CO2 impact on BVOC - Possell parameterisation: ', ok_co2bvoc_poss 
     358    IF (printlev>=1) WRITE(numout,*) 'CO2 impact on BVOC - Possell parameterisation: ', ok_co2bvoc_poss 
    309359    ! 
    310360    !Config Key  = Is CO2 impact on BVOC accounted for using Wilkinson 2009 ?  
     
    317367    ok_co2bvoc_wilk = .FALSE. 
    318368    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     
    322371    ! 
    323372    ! control initialisation with sechiba 
     
    331380    IF ( ok_multilayer .AND. .NOT.(ok_radcanopy) ) THEN 
    332381       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' 
    335387    ENDIF 
    336388 
     
    356408    ! 
    357409    CALL getin_p('NVM',nvm) 
    358     WRITE(numout,*)'the number of pfts used by the model is : ', nvm 
     410    IF (printlev>=1) WRITE(numout,*) 'The number of pfts used by the model is : ', nvm 
    359411 
    360412    ! 2. Should we read the parameters in the run.def file ? 
     
    418470    IF ( ok_sechiba ) THEN 
    419471       IF (impose_param ) THEN 
     472          IF (printlev>=2) WRITE(numout,*)'In control_initialize: call config_sechiba_parameters and config_sechiba_pft_parameters' 
    420473          CALL config_sechiba_parameters 
    421474          CALL config_sechiba_pft_parameters() 
    422           WRITE(numout,*)'    some sechiba parameters have been imposed ' 
    423475       ENDIF 
    424476    ENDIF 
     
    450502    END IF 
    451503         
    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) 
    459508    IF (ier /= 0) CALL ipslerr_p(3,'control_initialize','Pb in allocation of diaglev','','') 
    460509 
    461510    IF ( hydrol_cwrr ) THEN 
    462511       ! 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) 
    464517    ELSE 
    465518       ! Calculate diaglev for Choisnel 
    466        DO jv = 1, nbdl-1 
    467            diaglev(jv) = zmaxh/(2**(nbdl-1) -1) * ( ( 2**(jv-1) -1) + ( 2**(jv)-1) ) / deux 
     519       DO jv = 1, nslm-1 
     520           diaglev(jv) = zmaxh/(2**(nslm-1) -1) * ( ( 2**(jv-1) -1) + ( 2**(jv)-1) ) / deux 
    468521      ENDDO 
    469       diaglev(nbdl) = zmaxh 
     522      diaglev(nslm) = zmaxh 
    470523    END IF 
    471     WRITE(numout,*) 'In control_initialize, diaglev = ',diaglev 
     524    IF (printlev>=2) WRITE(numout,*) 'In control_initialize, diaglev = ',diaglev 
    472525 
    473526    IF ( ok_co2 ) THEN 
    474527       IF ( impose_param ) THEN 
     528          IF (printlev>=2) WRITE(numout,*)'In control_initialize: call config_co2_parameters' 
    475529          CALL config_co2_parameters 
    476           WRITE(numout,*)'    some co2 parameters have been imposed '          
    477530       ENDIF 
    478531    ENDIF 
     
    480533    IF ( ok_stomate ) THEN 
    481534       IF ( impose_param ) THEN 
     535          IF (printlev>=2) WRITE(numout,*)'In control_initialize: call config_stomate_parameters and config_stomate_pft_parameters' 
    482536          CALL config_stomate_parameters 
    483537          CALL config_stomate_pft_parameters 
    484           WRITE(numout,*)'    some stomate parameters have been imposed ' 
    485538       ENDIF 
    486539    ENDIF 
     
    488541    IF ( ok_dgvm ) THEN 
    489542       IF ( impose_param ) THEN 
     543          IF (printlev>=2) WRITE(numout,*)'In control_initialize: call config_dgvm_parameters' 
    490544          CALL config_dgvm_parameters 
    491           WRITE(numout,*)'    some dgvm parameters have been imposed '          
    492545       ENDIF 
    493546    ENDIF     
  • branches/publications/ORCHIDEE-GMv3.2/ORCHIDEE/src_parameters/pft_parameters.f90

    r5816 r6939  
    22! MODULE       : pft_parameters 
    33! 
    4 ! CONTACT      : orchidee-help _at_ ipsl.jussieu.fr 
     4! CONTACT      : orchidee-help _at_ listes.ipsl.fr 
    55! 
    66! LICENCE      : IPSL (2011) 
     
    3232  USE vertical_soil_var 
    3333  USE constantes_mtc 
    34   USE constantes 
     34  USE constantes_soil_var !!! only for nstm & pref_soil_veg 
    3535  USE ioipsl 
    3636  USE ioipsl_para  
    3737  USE defprec 
     38 
     39  IMPLICIT NONE 
     40 
     41CONTAINS 
    3842   
    39   IMPLICIT NONE 
    40  
    41 CONTAINS 
    42  ! 
    4343 
    4444!! ================================================================================================================================ 
     
    7878!_ ================================================================================================================================ 
    7979 
    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)? 
    140137       DO j = 1, nvm ! Loop over # PFTs   
    141138          ! 
     
    166163          ! 
    167164       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 
    215210 
    216211!! ================================================================================================================================ 
     
    237232!_ ================================================================================================================================ 
    238233 
    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    !_ ================================================================================================================================  
    256243 
    257244   ! 1.1 For parameters used anytime 
     
    269256   type_of_lai(:) = type_of_lai_mtc(pft_to_mtc(:)) 
    270257   natural(:) = natural_mtc(pft_to_mtc(:)) 
     258! dgvmjc 
     259    pasture(:) = pasture_mtc(pft_to_mtc(:)) 
     260! end dgvmjc 
    271261   ! 
    272262   ! Water - sechiba 
     
    282272      humcste(:) = humcste_ref2m(pft_to_mtc(:))  ! values for 2m soil depth 
    283273   END IF 
     274 
     275   irrig_threshold(:) = irrig_threshold_mtc(pft_to_mtc(:)) 
     276   irrig_fulfill(:) = irrig_fulfill_mtc(pft_to_mtc(:)) 
    284277   ! 
    285278   ! Soil - vegetation 
    286279   ! 
    287280   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(:)) 
    288286   ! 
    289287   ! Photosynthesis 
     
    294292   E_KmC(:)      = E_KmC_mtc(pft_to_mtc(:)) 
    295293   E_KmO(:)      = E_KmO_mtc(pft_to_mtc(:)) 
     294   E_Sco(:)      = E_Sco_mtc(pft_to_mtc(:)) 
    296295   E_gamma_star(:) = E_gamma_star_mtc(pft_to_mtc(:)) 
    297296   E_Vcmax(:)    = E_Vcmax_mtc(pft_to_mtc(:)) 
     
    305304   D_Vcmax(:)     = D_Vcmax_mtc(pft_to_mtc(:)) 
    306305   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(:)) 
    307309   E_Rd(:)       = E_Rd_mtc(pft_to_mtc(:)) 
    308310   Vcmax25(:)    = Vcmax25_mtc(pft_to_mtc(:)) 
     
    311313   KmC25(:)      = KmC25_mtc(pft_to_mtc(:)) 
    312314   KmO25(:)      = KmO25_mtc(pft_to_mtc(:)) 
     315   Sco25(:)      = Sco25_mtc(pft_to_mtc(:))  
     316   gm25(:)       = gm25_mtc(pft_to_mtc(:))  
    313317   gamma_star25(:)  = gamma_star25_mtc(pft_to_mtc(:)) 
    314318   a1(:)         = a1_mtc(pft_to_mtc(:)) 
     
    324328   theta(:)      = theta_mtc(pft_to_mtc(:))         
    325329   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(:))  
    326333   ext_coeff(:) = ext_coeff_mtc(pft_to_mtc(:)) 
    327334   ext_coeff_vegetfrac(:) = ext_coeff_vegetfrac_mtc(pft_to_mtc(:)) 
     
    353360 
    354361 
    355    ! 1.2 For sechiba parameters 
     362    ! 
     363    ! 1. Correspondance between the PFTs values and thes MTCs values  
     364    ! 
    356365 
    357366   IF (ok_sechiba) THEN 
     
    384393      alb_leaf_nir(:) = alb_leaf_nir_mtc(pft_to_mtc(:)) 
    385394      !- 
     395 
     396      !chaoyue+ 
     397      ! Permafrost - sechiba 
     398      permafrost_veg_exists(:)= permafrost_veg_exists_mtc(pft_to_mtc(:)) 
     399      !chaoyue- 
     400       
    386401   ENDIF !(ok_sechiba) 
    387402 
    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 
    434511 
    435512   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 
    436519      ! 
    437520      ! Vegetation structure - stomate 
     
    444527      R0(:) = R0_mtc(pft_to_mtc(:))  
    445528      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 
    446537      ! 
    447538      ! Respiration - stomate 
     
    464555      flam(:) = flam_mtc(pft_to_mtc(:)) 
    465556      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      ! 
    466578      !gmjc 
    467       ! 
    468       ! grassland management 
    469       ! 
    470579      is_grassland_manag(:) = is_grassland_manag_mtc(pft_to_mtc(:)) 
    471580      is_grassland_cut(:) = is_grassland_cut_mtc(pft_to_mtc(:)) 
    472581      is_grassland_grazed(:) = is_grassland_grazed_mtc(pft_to_mtc(:)) 
    473       is_grassland_wild(:) = is_grassland_wild_mtc(pft_to_mtc(:)) 
    474582      management_intensity(:) = management_intensity_mtc(pft_to_mtc(:)) 
    475583      management_start(:) = management_start_mtc(pft_to_mtc(:)) 
     
    479587      sla_max(:) = sla_max_mtc(pft_to_mtc(:)) 
    480588      !end gmjc 
     589 
     590      !gluc plus bioenergy 
     591      is_bioe1(:) = is_bioe1_mtc(pft_to_mtc(:)) 
     592 
    481593      ! 
    482594      ! Flux - LUC 
     
    485597      coeff_lcchange_10(:) = coeff_lcchange_10_mtc(pft_to_mtc(:)) 
    486598      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(:)) 
    487603      ! 
    488604      ! Phenology 
     
    535651      tcm_crit(:) = tcm_crit_mtc(pft_to_mtc(:)) 
    536652      !- 
     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 
    537820   ENDIF !(ok_stomate) 
    538821 
    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 
    543964 
    544965!! ================================================================================================================================ 
     
    560981!_ ================================================================================================================================ 
    561982 
    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) 
    5851050   l_error = l_error .OR. (ier /= 0) 
    5861051   IF (l_error) THEN 
    587       WRITE(numout,*) ' Memory allocation error for pft_to_mtc. We stop. We need nvm words = ',nvm 
     1052      WRITE(numout,*) ' Memory allocation error for irrig_threshold. We stop. We need nvm words = ',nvm 
    5881053      STOP 'pft_parameters_alloc' 
    5891054   END IF 
    5901055 
    591    ALLOCATE(PFT_name(nvm),stat=ier) 
     1056   ALLOCATE(irrig_fulfill(nvm),stat=ier) 
    5921057   l_error = l_error .OR. (ier /= 0) 
    5931058   IF (l_error) THEN 
    594       WRITE(numout,*) ' Memory allocation error for PFT_name. We stop. We need nvm words = ',nvm 
     1059      WRITE(numout,*) ' Memory allocation error for irrig_fulfill. We stop. We need nvm words = ',nvm 
    5951060      STOP 'pft_parameters_alloc' 
    5961061   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) 
    5991435   l_error = l_error .OR. (ier /= 0) 
    6001436   IF (l_error) THEN 
    601       WRITE(numout,*) ' Memory allocation error for height_presc. We stop. We need nvm words = ',nvm 
     1437      WRITE(numout,*) ' Memory allocation error for agec_group. We stop. We need nvm words = ',nvm 
    6021438      STOP 'pft_parameters_alloc' 
    6031439   END IF 
    6041440 
    605    ALLOCATE(z0_over_height(nvm),stat=ier) 
     1441   ALLOCATE(age_class_bound(nvm),stat=ier) 
    6061442   l_error = l_error .OR. (ier /= 0) 
    6071443   IF (l_error) THEN 
    608       WRITE(numout,*) ' Memory allocation error for z0_over_height. We stop. We need nvm words = ',nvm 
     1444      WRITE(numout,*) ' Memory allocation error for age_class_bound. We stop. We need nvm words = ',nvm 
    6091445      STOP 'pft_parameters_alloc' 
    6101446   END IF 
    611  
    612    ALLOCATE(ratio_z0m_z0h(nvm),stat=ier) 
     1447   age_class_bound(:)=0. 
     1448 
     1449   ALLOCATE(start_index(nvm),stat=ier) 
    6131450   l_error = l_error .OR. (ier /= 0) 
    6141451   IF (l_error) THEN 
    615       WRITE(numout,*) ' Memory allocation error for ratio_z0m_z0h. We stop. We need nvm words = ',nvm 
     1452      WRITE(numout,*) ' Memory allocation error for start_index. We stop. We need nvm words = ',nvm 
    6161453      STOP 'pft_parameters_alloc' 
    6171454   END IF 
    6181455 
    619    ALLOCATE(is_tree(nvm),stat=ier) 
     1456   ALLOCATE(nagec_pft(nvm),stat=ier) 
    6201457   l_error = l_error .OR. (ier /= 0) 
    6211458   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 
    9311460      STOP 'pft_parameters_alloc' 
    9321461   END IF 
     
    9391468   END IF 
    9401469 
    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) 
    9851599      l_error = l_error .OR. (ier /= 0) 
    9861600      IF (l_error) THEN 
    987          WRITE(numout,*) ' Memory allocation error for rstruct_const. We stop. We need nvm words = ',nvm 
     1601         WRITE(numout,*) ' Memory allocation error for permafrost_veg_exists. We stop. We need nvm words = ',nvm 
    9881602         STOP 'pft_parameters_alloc' 
    9891603      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) 
    9922049      l_error = l_error .OR. (ier /= 0) 
    9932050      IF (l_error) THEN 
    994          WRITE(numout,*) ' Memory allocation error for kzero. We stop. We need nvm words = ',nvm 
     2051         WRITE(numout,*) ' Memory allocation error for dens_fuel. We stop. We need nvm words = ',nvm 
    9952052         STOP 'pft_parameters_alloc' 
    9962053      END IF 
    9972054 
    998       ALLOCATE(rveg_pft(nvm),stat=ier) 
     2055      ALLOCATE(f_sh(nvm),stat=ier) 
    9992056      l_error = l_error .OR. (ier /= 0) 
    10002057      IF (l_error) THEN 
    1001          WRITE(numout,*) ' Memory allocation error for rveg_pft. We stop. We need nvm words = ',nvm 
     2058         WRITE(numout,*) ' Memory allocation error for f_sh. We stop. We need nvm words = ',nvm 
    10022059         STOP 'pft_parameters_alloc' 
    10032060      END IF 
    10042061 
    1005       ALLOCATE(wmax_veg(nvm),stat=ier) 
     2062      ALLOCATE(crown_length(nvm),stat=ier) 
    10062063      l_error = l_error .OR. (ier /= 0) 
    10072064      IF (l_error) THEN 
    1008          WRITE(numout,*) ' Memory allocation error for wmax_veg. We stop. We need nvm words = ',nvm 
     2065         WRITE(numout,*) ' Memory allocation error for crown_length. We stop. We need nvm words = ',nvm 
    10092066         STOP 'pft_parameters_alloc' 
    10102067      END IF 
    10112068 
    1012       ALLOCATE(throughfall_by_pft(nvm),stat=ier) 
     2069      ALLOCATE(BTpar1(nvm),stat=ier) 
    10132070      l_error = l_error .OR. (ier /= 0) 
    10142071      IF (l_error) THEN 
    1015          WRITE(numout,*) ' Memory allocation error for throughfall_by_pft. We stop. We need nvm words = ',nvm 
     2072         WRITE(numout,*) ' Memory allocation error for BTpar1. We stop. We need nvm words = ',nvm 
    10162073         STOP 'pft_parameters_alloc' 
    10172074      END IF 
    1018        
    1019       ALLOCATE(snowa_aged_vis(nvm),stat=ier) 
     2075 
     2076      ALLOCATE(BTpar2(nvm),stat=ier) 
    10202077      l_error = l_error .OR. (ier /= 0) 
    10212078      IF (l_error) THEN 
    1022          WRITE(numout,*) ' Memory allocation error for snowa_aged_vis. We stop. We need nvm words = ',nvm 
     2079         WRITE(numout,*) ' Memory allocation error for BTpar2. We stop. We need nvm words = ',nvm 
    10232080         STOP 'pft_parameters_alloc' 
    10242081      END IF 
    10252082 
    1026       ALLOCATE(snowa_aged_nir(nvm),stat=ier) 
     2083      ALLOCATE(r_ck(nvm),stat=ier) 
    10272084      l_error = l_error .OR. (ier /= 0) 
    10282085      IF (l_error) THEN 
    1029          WRITE(numout,*) ' Memory allocation error for snowa_aged_nir. We stop. We need nvm words = ',nvm 
     2086         WRITE(numout,*) ' Memory allocation error for r_ck. We stop. We need nvm words = ',nvm 
    10302087         STOP 'pft_parameters_alloc' 
    10312088      END IF 
    10322089 
    1033       ALLOCATE(snowa_dec_vis(nvm),stat=ier) 
     2090      ALLOCATE(p_ck(nvm),stat=ier) 
    10342091      l_error = l_error .OR. (ier /= 0) 
    10352092      IF (l_error) THEN 
    1036          WRITE(numout,*) ' Memory allocation error for snowa_dec_vis. We stop. We need nvm words = ',nvm 
     2093         WRITE(numout,*) ' Memory allocation error for p_ck. We stop. We need nvm words = ',nvm 
    10372094         STOP 'pft_parameters_alloc' 
    10382095      END IF 
    10392096 
    1040       ALLOCATE(snowa_dec_nir(nvm),stat=ier) 
     2097      ALLOCATE(ef_CO2(nvm),stat=ier) 
    10412098      l_error = l_error .OR. (ier /= 0) 
    10422099      IF (l_error) THEN 
    1043          WRITE(numout,*) ' Memory allocation error for snowa_dec_nir. We stop. We need nvm words = ',nvm 
     2100         WRITE(numout,*) ' Memory allocation error for ef_CO2. We stop. We need nvm words = ',nvm 
    10442101         STOP 'pft_parameters_alloc' 
    10452102      END IF 
    10462103 
    1047       ALLOCATE(alb_leaf_vis(nvm),stat=ier) 
     2104      ALLOCATE(ef_CO(nvm),stat=ier) 
    10482105      l_error = l_error .OR. (ier /= 0) 
    10492106      IF (l_error) THEN 
    1050          WRITE(numout,*) ' Memory allocation error for alb_leaf_vis. We stop. We need nvm words = ',nvm 
     2107         WRITE(numout,*) ' Memory allocation error for ef_CO. We stop. We need nvm words = ',nvm 
    10512108         STOP 'pft_parameters_alloc' 
    10522109      END IF 
    10532110 
    1054       ALLOCATE(alb_leaf_nir(nvm),stat=ier) 
     2111      ALLOCATE(ef_CH4(nvm),stat=ier) 
    10552112      l_error = l_error .OR. (ier /= 0) 
    10562113      IF (l_error) THEN 
    1057          WRITE(numout,*) ' Memory allocation error for alb_leaf_nir. We stop. We need nvm words = ',nvm 
     2114         WRITE(numout,*) ' Memory allocation error for ef_CH4. We stop. We need nvm words = ',nvm 
    10582115         STOP 'pft_parameters_alloc' 
    10592116      END IF 
    10602117 
    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