source: tags/ORCHIDEE_1_9_5/ORCHIDEE/src_stomate/stomate_constants.f90 @ 8

Last change on this file since 8 was 8, checked in by orchidee, 14 years ago

import first tag equivalent to CVS orchidee_1_9_5 + OOL_1_9_5

File size: 36.4 KB
Line 
1!$Header: /home/ssipsl/CVSREP/ORCHIDEE/src_stomate/stomate_constants.f90,v 1.21 2010/05/17 14:25:41 ssipsl Exp $
2!IPSL (2006)
3! This software is governed by the CeCILL licence see ORCHIDEE/ORCHIDEE_CeCILL.LIC
4!-
5MODULE stomate_constants
6!---------------------------------------------------------------------
7  USE defprec
8  USE constantes_veg
9  USE ioipsl 
10  USE parallel
11! bare soil in Sechiba
12  INTEGER(i_std),PARAMETER :: ibare_sechiba = 1
13!-
14! 0 = no, 4 = full online diagnostics
15  INTEGER(i_std),SAVE :: bavard=1
16! write forcing file for carbon spinup?
17  LOGICAL,SAVE :: write_carbonforce
18! Horizontal indices
19  INTEGER(i_std),ALLOCATABLE,SAVE,DIMENSION(:) :: hori_index
20! Horizonatal + PFT indices
21  INTEGER(i_std),ALLOCATABLE,SAVE,DIMENSION(:) :: horipft_index
22!-
23  ! Land cover change
24! Horizontal + P10 indices
25  INTEGER(i_std), ALLOCATABLE, SAVE, DIMENSION(:) :: horip10_index
26! Horizontal + P100 indices
27  INTEGER(i_std), ALLOCATABLE, SAVE, DIMENSION(:) :: horip100_index 
28! Horizontal + P11 indices
29  INTEGER(i_std), ALLOCATABLE, SAVE, DIMENSION(:) :: horip11_index
30! Horizontal + P101 indices
31  INTEGER(i_std), ALLOCATABLE, SAVE, DIMENSION(:) :: horip101_index 
32!-
33! time step
34  INTEGER(i_std),SAVE :: itime
35! STOMATE history file ID
36  INTEGER(i_std),SAVE :: hist_id_stomate
37! STOMATE history file ID for IPCC output
38  INTEGER(i_std),SAVE :: hist_id_stomate_IPCC
39! STOMATE restart file ID
40  INTEGER(i_std),SAVE :: rest_id_stomate
41!-
42! Freezing point
43  REAL(r_std),PARAMETER :: ZeroCelsius = 273.15
44! e
45  REAL(r_std),PARAMETER :: euler = 2.71828182846
46! Epsilon to detect a near zero floating point
47  REAL(r_std),PARAMETER :: min_stomate = 1.E-8_r_std
48! some large value
49  REAL(r_std),PARAMETER :: large_value = 1.E33_r_std
50! Special value
51  REAL(r_std),PARAMETER :: undef = -9999.
52!-
53! maximum reference long term temperature (K)
54  REAL(r_std),PARAMETER :: tlong_ref_max=303.1
55! minimum reference long term temperature (K)
56  REAL(r_std),PARAMETER :: tlong_ref_min=253.1
57!-
58! trees and litter: indices for the parts of heart- and sapwood above
59!   and below the ground
60  INTEGER(i_std),PARAMETER :: iabove = 1
61  INTEGER(i_std),PARAMETER :: ibelow = 2
62  INTEGER(i_std),PARAMETER :: nlevs = 2
63!-
64! litter: indices for metabolic and structural part
65  INTEGER(i_std),PARAMETER :: imetabolic = 1
66  INTEGER(i_std),PARAMETER :: istructural = 2
67  INTEGER(i_std),PARAMETER :: nlitt = 2
68!-
69! carbon pools: indices
70  INTEGER(i_std),PARAMETER :: iactive = 1
71  INTEGER(i_std),PARAMETER :: islow = 2
72  INTEGER(i_std),PARAMETER :: ipassive = 3
73  INTEGER(i_std),PARAMETER :: ncarb = 3
74!-
75! litter fractions: indices
76  INTEGER(i_std),PARAMETER :: ileaf = 1
77  INTEGER(i_std),PARAMETER :: isapabove = 2
78  INTEGER(i_std),PARAMETER :: isapbelow = 3
79  INTEGER(i_std),PARAMETER :: iheartabove = 4
80  INTEGER(i_std),PARAMETER :: iheartbelow = 5
81  INTEGER(i_std),PARAMETER :: iroot = 6
82  INTEGER(i_std),PARAMETER :: ifruit = 7
83  INTEGER(i_std),PARAMETER :: icarbres = 8
84  INTEGER(i_std),PARAMETER :: nparts = 8
85!-
86! transformation between types of surface
87  INTEGER(i_std),PARAMETER :: ito_natagri = 1
88  INTEGER(i_std),PARAMETER :: ito_total = 2
89!-
90! leaf age discretisation ( 1 = no discretisation )
91  INTEGER(i_std),PARAMETER :: nleafages = 4
92!-
93! alpha's : ?
94  REAL(r_std),PARAMETER :: alpha_grass = .5
95  REAL(r_std),PARAMETER :: alpha_tree = 1.
96!-
97! type declaration for photosynthesis
98  TYPE t_photo_type
99    REAL(r_std), DIMENSION(nvm)                  :: t_max_a
100    REAL(r_std), DIMENSION(nvm)                  :: t_max_b
101    REAL(r_std), DIMENSION(nvm)                  :: t_max_c
102    REAL(r_std), DIMENSION(nvm)                  :: t_opt_a
103    REAL(r_std), DIMENSION(nvm)                  :: t_opt_b
104    REAL(r_std), DIMENSION(nvm)                  :: t_opt_c
105    REAL(r_std), DIMENSION(nvm)                  :: t_min_a
106    REAL(r_std), DIMENSION(nvm)                  :: t_min_b
107    REAL(r_std), DIMENSION(nvm)                  :: t_min_c
108  END TYPE t_photo_type
109!-
110! type declaration for phenology
111  TYPE pheno_type
112    REAL(r_std), DIMENSION(nvm,3)                :: gdd
113    REAL(r_std), DIMENSION(nvm)                  :: ngd
114    REAL(r_std), DIMENSION(nvm)                  :: ncdgdd_temp
115    REAL(r_std), DIMENSION(nvm)                  :: hum_frac
116    REAL(r_std), DIMENSION(nvm)                  :: lowgpp_time
117    REAL(r_std), DIMENSION(nvm)                  :: leaffall
118    REAL(r_std), DIMENSION(nvm)                  :: leafagecrit
119    REAL(r_std)                       :: tau_hum_month
120    REAL(r_std)                       :: tau_hum_week
121    REAL(r_std)                       :: tau_t2m_month
122    REAL(r_std)                       :: tau_t2m_week
123    REAL(r_std)                       :: tau_tsoil_month
124    REAL(r_std)                       :: tau_soilhum_month
125    REAL(r_std)                       :: tau_gpp_week
126    REAL(r_std)                       :: tau_gdd
127    REAL(r_std)                       :: tau_ngd
128    REAL(r_std)                       :: tau_longterm
129    REAL(r_std), DIMENSION(nvm)                  :: lai_initmin
130    CHARACTER(len=6), DIMENSION(nvm)            :: pheno_model
131    CHARACTER(len=6), DIMENSION(nvm)            :: senescence_type
132    REAL(r_std), DIMENSION(nvm,3)                :: senescence_temp
133    REAL(r_std), DIMENSION(nvm)                  :: senescence_hum
134    REAL(r_std), DIMENSION(nvm)                  :: nosenescence_hum
135    REAL(r_std), DIMENSION(nvm)                  :: max_turnover_time
136    REAL(r_std), DIMENSION(nvm)                  :: min_leaf_age_for_senescence
137    REAL(r_std), DIMENSION(nvm)                  :: min_turnover_time
138!-
139    REAL(r_std), DIMENSION(nvm)                  :: hum_min_time
140  END TYPE pheno_type
141!-
142! parameters for the pipe model
143!-
144! crown area = pipe_tune1. stem diameter**(1.6) (Reinicke's theory)
145  REAL(r_std),PARAMETER :: pipe_tune1 = 100.0
146! height=pipe_tune2 * diameter**pipe_tune3
147  REAL(r_std),PARAMETER :: pipe_tune2 = 40.0
148  REAL(r_std),PARAMETER :: pipe_tune3 = 0.5
149! needed for stem diameter
150  REAL(r_std),PARAMETER :: pipe_tune4 = 0.3
151! Density
152  REAL(r_std),PARAMETER :: pipe_density = 2.e5
153! one more parameter
154  REAL(r_std),PARAMETER :: pipe_k1 = 8.e3
155!-
156! Maximum tree establishment rate
157  REAL(r_std),PARAMETER :: estab_max_tree = 0.12
158! Maximum grass establishment rate
159  REAL(r_std),PARAMETER :: estab_max_grass = 0.12
160! initial density of individuals
161  REAL(r_std),PARAMETER :: ind_0 = 0.02
162!-
163! Do we treat PFT expansion across a grid point after introduction?
164! default = .FALSE.
165  LOGICAL,SAVE :: treat_expansion = .FALSE.
166!-
167! herbivores?
168  LOGICAL,SAVE :: ok_herbivores = .FALSE.
169!-
170! harvesting ?
171  LOGICAL,SAVE :: harvest_agri = .TRUE.
172!-
173! For trees, minimum fraction of crown area occupied
174! (due to its branches etc.)
175! This means that only a small fraction of its crown area
176! can be invaded by other trees.
177  REAL(r_std),PARAMETER :: min_cover = 0.05
178!-
179! climatic parameters
180!-
181! minimum precip, in mm/year
182  REAL(r_std),PARAMETER :: precip_crit = 100.
183! minimum gdd for establishment of saplings
184  REAL(r_std),PARAMETER :: gdd_crit = 150.
185! critical fpc, needed for light competition and establishment
186  REAL(r_std),PARAMETER :: fpc_crit = 0.95
187!-
188! critical value for being adapted (1-1/e)
189  REAL(r_std),PARAMETER :: adapted_crit = 1. - ( 1. / euler )
190! critical value for being regenerative (1/e)
191  REAL(r_std),PARAMETER :: regenerate_crit = 1. / euler
192!-
193! fraction of GPP which is lost as growth respiration
194  REAL(r_std),PARAMETER :: frac_growthresp = 0.28
195!-
196! radius of the Earth (m)
197  REAL(r_std),PARAMETER :: R_Earth = 6378000.
198!-
199! description of the PFT
200  CHARACTER(len=34), SAVE, DIMENSION(nvm)              :: PFT_name = &
201 & (/ 'bared ground                      ', &          !  1
202 &    'tropical  broad-leaved evergreen  ', &          !  2
203 &    'tropical  broad-leaved raingreen  ', &          !  3
204 &    'temperate needleleaf   evergreen  ', &          !  4
205 &    'temperate broad-leaved evergreen  ', &          !  5
206 &    'temperate broad-leaved summergreen', &          !  6
207 &    'boreal    needleleaf   evergreen  ', &          !  7
208 &    'boreal    broad-leaved summergreen', &          !  8
209 &    'boreal    needleleaf   summergreen', &          !  9
210 &    '          C3           grass      ', &          ! 10
211 &    '          C4           grass      ', &          ! 11
212 &    '          C3           agriculture', &          ! 12
213 &    '          C4           agriculture'  /)         ! 13
214! extinction coefficient of the Monsi&Seaki (53) relationship
215  REAL(r_std), SAVE, DIMENSION(nvm)                     :: ext_coeff
216! is pft a tree
217  LOGICAL, SAVE, DIMENSION(nvm)                        :: tree
218! leaf type
219! 1=broad leaved tree, 2=needle leaved tree, 3=grass 4=bared ground
220  INTEGER(i_std), SAVE, DIMENSION(nvm)                  :: leaf_tab = &
221 & (/      4,       1,       1,       2,       1,       1,       2,   &
222 &                  1,       2,       3,       3,       3,       3 /)
223! natural?
224  LOGICAL, SAVE, DIMENSION(nvm)                        :: natural =    &
225 & (/  .TRUE.,  .TRUE.,  .TRUE.,  .TRUE.,  .TRUE.,  .TRUE.,  .TRUE.,   &
226 &              .TRUE.,  .TRUE.,  .TRUE.,  .TRUE., .FALSE., .FALSE. /)
227! flamability: critical fraction of water holding capacity
228  REAL(r_std), SAVE, DIMENSION(nvm)                     :: flam
229! fire resistance
230  REAL(r_std), SAVE, DIMENSION(nvm)                     :: resist 
231! specific leaf area (m**2/gC)
232  REAL(r_std), SAVE, DIMENSION(nvm)                     :: sla
233! sapling biomass (gC/ind)
234  REAL(r_std), SAVE, DIMENSION(nvm,nparts)              :: bm_sapl
235! migration speed (m/year)
236  REAL(r_std), SAVE, DIMENSION(nvm)                     :: migrate
237! maximum stem diameter from which on crown area no longer increases (m)
238  REAL(r_std), SAVE, DIMENSION(nvm)                     :: maxdia
239! crown of tree when sapling (m**2)
240  REAL(r_std), SAVE, DIMENSION(nvm)                     :: cn_sapl
241! critical minimum temperature (K)
242  REAL(r_std), SAVE, DIMENSION(nvm)                     :: tmin_crit
243! critical temperature of the coldest month (K)
244  REAL(r_std), SAVE, DIMENSION(nvm)                     :: tcm_crit
245! critical values for phenology
246  TYPE(pheno_type),SAVE :: pheno_crit
247! time constant for leaf age discretisation (d)
248  REAL(r_std), SAVE, DIMENSION(nvm)                     :: leaf_timecst
249  ! maximum LAI, PFT-specific
250  REAL(r_std), SAVE, DIMENSION (nvm)                    :: lai_max 
251
252  ! maintenance respiration coefficient (g/g/day) at 0 deg C
253  REAL(r_std), SAVE, DIMENSION(nvm,nparts)              :: coeff_maint_zero
254  ! slope of maintenance respiration coefficient (1/K, 1/K^2, 1/K^3)
255  REAL(r_std), SAVE, DIMENSION(nvm,3)                   :: maint_resp_slope
256
257  ! residence time (y) of trees
258  REAL(r_std), SAVE, DIMENSION(nvm)                     :: residence_time 
259
260  ! leaf lifetime, tabulated
261  REAL(r_std), SAVE, DIMENSION(nvm)                     :: leaflife_tab 
262
263  ! type of phenology
264  ! 0=bared ground 1=evergreen,  2=summergreen,  3=raingreen,  4=perennial
265  ! Pour l'instant, le phénotype de sol nu n'est pas géré aussi on traitera les sols nu comme "evergreen"
266  INTEGER(i_std), SAVE, DIMENSION(nvm)                  :: pheno_type_tab 
267
268  ! critical tmin, tabulated (C)
269  REAL(r_std), SAVE, DIMENSION(nvm)                     :: tmin_crit_tab 
270
271  ! critical tcm, tabulated (C)
272  REAL(r_std), SAVE, DIMENSION(nvm)                     :: tcm_crit_tab 
273
274  ! critical gdd, tabulated (C), constant c of aT^2+bT+c
275  REAL(r_std), SAVE, DIMENSION(nvm)                     :: gdd_crit1_tab 
276
277  ! critical gdd, tabulated (C), constant b of aT^2+bT+c
278  REAL(r_std), SAVE, DIMENSION(nvm)                     :: gdd_crit2_tab 
279
280  ! critical gdd, tabulated (C), constant a of aT^2+bT+c
281  REAL(r_std), SAVE, DIMENSION(nvm)                     :: gdd_crit3_tab 
282
283  ! critical ngd, tabulated. Threshold -5 degrees
284  REAL(r_std), SAVE, DIMENSION(nvm)                     :: ngd_crit_tab 
285
286  ! critical temperature for the ncd vs. gdd function in phenology
287  REAL(r_std), SAVE, DIMENSION(nvm)                     :: ncdgdd_temp_tab 
288
289  ! critical humidity (relative to min/max) for phenology
290  REAL(r_std), SAVE, DIMENSION(nvm)                     :: hum_frac_tab 
291
292  ! minimum duration of dormance (d) for phenology
293  REAL(r_std), SAVE, DIMENSION(nvm)                     :: lowgpp_time_tab 
294
295  ! minimum time elapsed since moisture minimum (d)
296  REAL(r_std), SAVE, DIMENSION(nvm)                     :: hum_min_time_tab 
297
298  ! sapwood -> heartwood conversion time (d)
299  REAL(r_std), SAVE, DIMENSION(nvm)                     :: tau_sap 
300
301  ! fruit lifetime (d)
302  REAL(r_std), SAVE, DIMENSION(nvm)                     :: tau_fruit 
303
304  ! fraction of primary leaf and root allocation put into reserve
305  REAL(r_std), SAVE, DIMENSION(nvm)                     :: ecureuil 
306
307  ! Maximum rate of carboxylation
308  REAL(r_std), SAVE, DIMENSION(nvm)                     :: vcmax_opt 
309
310  ! Maximum rate of RUbp regeneration
311  REAL(r_std), SAVE, DIMENSION(nvm)                     :: vjmax_opt 
312
313!-
314  ! constants needed for photosynthesis temperatures
315  TYPE(t_photo_type), SAVE                              :: t_photo
316  ! lenth of death of leaves, tabulated (d)
317  REAL(r_std), SAVE, DIMENSION(nvm)                     :: leaffall_tab 
318
319  ! critical leaf age, tabulated (d)
320  REAL(r_std), SAVE, DIMENSION(nvm)                     :: leafagecrit_tab 
321
322  ! which phenology model is used? (tabulated)
323  CHARACTER(len=6), SAVE, DIMENSION(nvm)               :: pheno_model_tab
324! List of avaible phenology models :
325! 'hum   ', 'moi   ', 'ncdgdd', 'ngd   ', 'humgdd', 'moigdd', 'none  '
326
327  ! type of senescence, tabulated
328  CHARACTER(len=6), SAVE, DIMENSION(nvm)               :: senescence_type_tab
329!-
330! List of avaible types of senescence :
331! 'cold  ', 'dry   ', 'mixed ', 'none  '
332
333  ! critical temperature for senescence (C),
334  ! constant c of aT^2+bT+c , tabulated
335  REAL(r_std), SAVE, DIMENSION(nvm)                     :: senescence_temp1_tab 
336
337  ! critical temperature for senescence (C),
338  ! constant b of aT^2+bT+c , tabulated
339  REAL(r_std), SAVE, DIMENSION(nvm)                     :: senescence_temp2_tab 
340
341  ! critical temperature for senescence (C),
342  ! constant a of aT^2+bT+c , tabulated
343  REAL(r_std), SAVE, DIMENSION(nvm)                     :: senescence_temp3_tab 
344
345  ! critical relative moisture availability for senescence
346  REAL(r_std), SAVE, DIMENSION(nvm)                     :: senescence_hum_tab 
347
348  ! relative moisture availability above which
349  ! there is no humidity-related senescence
350  REAL(r_std), SAVE, DIMENSION(nvm)                     :: nosenescence_hum_tab 
351
352 ! maximum turnover time for grasse
353  REAL(r_std), SAVE, DIMENSION(nvm)                     :: max_turnover_time_tab 
354
355 ! minimum turnover time for grasse
356  REAL(r_std), SAVE, DIMENSION(nvm)                     :: min_turnover_time_tab 
357
358  ! minimum leaf age to allow senescence g
359  REAL(r_std), SAVE, DIMENSION(nvm)  :: min_leaf_age_for_senescence_tab 
360
361!-
362  ! slope of maintenance respiration coefficient (1/K),
363  ! constant c of aT^2+bT+c , tabulated
364  REAL(r_std), SAVE, DIMENSION(nvm)                     :: maint_resp_slope1_tab 
365
366  ! slope of maintenance respiration coefficient (1/K),
367  ! constant b of aT^2+bT+c , tabulated
368  REAL(r_std), SAVE, DIMENSION(nvm)                     :: maint_resp_slope2_tab 
369
370  ! slope of maintenance respiration coefficient (1/K),
371  ! constant a of aT^2+bT+c , tabulated
372  REAL(r_std), SAVE, DIMENSION(nvm)                     :: maint_resp_slope3_tab 
373
374  ! maintenance respiration coefficient (g/g/day) at 0 deg C,
375  ! for leaves, tabulated
376  REAL(r_std), SAVE, DIMENSION(nvm)                     :: cm_zero_leaf_tab 
377
378  ! maintenance respiration coefficient (g/g/day) at 0 deg C,
379  ! for sapwood above, tabulated
380  REAL(r_std), SAVE, DIMENSION(nvm)                     :: cm_zero_sapabove_tab 
381
382  ! maintenance respiration coefficient (g/g/day) at 0 deg C,
383  ! for sapwood below, tabulated
384  REAL(r_std), SAVE, DIMENSION(nvm)                     :: cm_zero_sapbelow_tab 
385
386  ! maintenance respiration coefficient (g/g/day) at 0 deg C,
387  ! for heartwood above, tabulated
388  REAL(r_std), SAVE, DIMENSION(nvm)                     :: cm_zero_heartabove_tab 
389  ! maintenance respiration coefficient (g/g/day) at 0 deg C,
390  ! for heartwood below, tabulated
391  REAL(r_std), SAVE, DIMENSION(nvm)                     :: cm_zero_heartbelow_tab 
392
393  ! maintenance respiration coefficient (g/g/day) at 0 deg C,
394  ! for roots, tabulated
395  REAL(r_std), SAVE, DIMENSION(nvm)                     :: cm_zero_root_tab 
396
397  ! maintenance respiration coefficient (g/g/day) at 0 deg C,
398  ! for fruits, tabulated
399  REAL(r_std), SAVE, DIMENSION(nvm)                     :: cm_zero_fruit_tab 
400
401  ! maintenance respiration coefficient (g/g/day) at 0 deg C,
402  ! for carbohydrate reserve, tabulated
403  REAL(r_std), SAVE, DIMENSION(nvm)                     :: cm_zero_carbres_tab 
404
405!-
406  ! minimum photosynthesis temperature,
407  ! constant a of ax^2+bx+c (deg C), tabulated
408  REAL(r_std), SAVE, DIMENSION(nvm)                     :: tphoto_min_a_tab 
409
410  ! minimum photosynthesis temperature,
411  ! constant b of ax^2+bx+c (deg C), tabulated
412  REAL(r_std), SAVE, DIMENSION(nvm)                     :: tphoto_min_b_tab 
413
414  ! minimum photosynthesis temperature,
415  ! constant c of ax^2+bx+c (deg C), tabulated
416  REAL(r_std), SAVE, DIMENSION(nvm)                     :: tphoto_min_c_tab 
417
418!-
419  ! optimum photosynthesis temperature,
420  ! constant a of ax^2+bx+c (deg C), tabulated
421
422  REAL(r_std), SAVE, DIMENSION(nvm)                     :: tphoto_opt_a_tab 
423
424  ! optimum photosynthesis temperature,
425  ! constant b of ax^2+bx+c (deg C), tabulated
426  REAL(r_std), SAVE, DIMENSION(nvm)                     :: tphoto_opt_b_tab 
427
428  ! optimum photosynthesis temperature,
429  ! constant c of ax^2+bx+c (deg C), tabulated
430  REAL(r_std), SAVE, DIMENSION(nvm)                     :: tphoto_opt_c_tab 
431
432!-
433  ! maximum photosynthesis temperature,
434  ! constant a of ax^2+bx+c (deg C), tabulated
435  REAL(r_std), SAVE, DIMENSION(nvm)                     :: tphoto_max_a_tab 
436
437  ! maximum photosynthesis temperature,
438  ! constant b of ax^2+bx+c (deg C), tabulated
439  REAL(r_std), SAVE, DIMENSION(nvm)                     :: tphoto_max_b_tab 
440
441  ! maximum photosynthesis temperature,
442  ! constant c of ax^2+bx+c (deg C), tabulated
443  REAL(r_std), SAVE, DIMENSION(nvm)                     :: tphoto_max_c_tab 
444
445  ! NEW - allocation above/below = f(age) - 30/01/04 NV/JO/PF
446  REAL(r_std), SAVE, DIMENSION(nvm)                  :: alloc_min 
447  REAL(r_std), SAVE, DIMENSION(nvm)                  :: alloc_max 
448  REAL(r_std), SAVE, DIMENSION(nvm)                  :: demi_alloc 
449
450  ! Coeff of biomass export for the year
451  REAL(r_std), SAVE, DIMENSION(nvm)                  :: coeff_lcchange_1 
452
453  ! Coeff of biomass export for the decade
454  REAL(r_std), SAVE, DIMENSION(nvm)                  :: coeff_lcchange_10 
455
456  ! Coeff of biomass export for the century
457  REAL(r_std), SAVE, DIMENSION(nvm)                  :: coeff_lcchange_100 
458
459CONTAINS
460  SUBROUTINE stomate_constants_init ()
461  ! flamability: critical fraction of water holding capacity
462  flam(2:nvm) =       &
463 & (/      .15,     .25,     .25,     .25,     .25,     .25,   &
464           .25,     .25,     .25,     .25,     .35,     .35 /)
465!!$  flam(2:nvm) =       &
466!!$ & (/        .25,     .25,     .25,     .25,     .25,     .25,   &
467!!$                   .25,     .25,     .30,     .30,     .35,     .35 /)
468!  flam =       &
469! & (/        .15,     .15,     .15,     .15,     .15,     .15,   &
470! &                 .15,     .15,     .15,     .15,     .15,     .15 /)
471  ! fire resistance
472  resist(2:nvm) =     &
473 & (/     .95,     .90,     .12,     .50,     .12,     .12,   &
474 &        .12,     .12,      .0,      .0,      .0,      .0 /)
475!!$  resist(2:nvm) =     &
476!!$ & (/        .12,     .50,     .12,     .50,     .12,     .12,   &
477!!$ &                 .12,     .12,      .0,      .0,      .0,      .0 /)
478! maximum LAI, PFT-specific
479  lai_max(2:nvm) =   &
480 & (/     7.,     7.,      5.,      5.,      5.,     4.5, &
481 &        4.5,    3.0,     2.5,     2.5,     5.,     5.  /)
482! residence time (y) of trees
483  residence_time(2:nvm) =    &
484 & (/    30.0,    30.0,    40.0,    40.0,    40.0,    80.0, &
485 &       80.0,    80.0,     0.0,     0.0,     0.0,     0.0 /)
486! leaf lifetime, tabulated
487!SZ modif to LPJ values
488  leaflife_tab(2:nvm) =      &
489 & (/        .5,      2.,     .33,      1.,     2.,      .33,   &
490 &           2.,      2.,      2.,      2.,     2.,        2. /)
491!!$  leaflife_tab(2:nvm) =      &
492!!$ & (/      .5,      1.,      .5,      .5,      1.,      .5, &
493!!$ &        1.,       1.,      1.,      1.,      1.,     1.  /)
494! type of phenology
495  ! 0=bared ground 1=evergreen,  2=summergreen,  3=raingreen,  4=perennial
496  ! Pour l'instant, le phénotype de sol nu n'est pas géré aussi on traitera les sols nu comme "evergreen"
497  pheno_type_tab(2:nvm) =    &
498 & (/      1,        3,       1,       1,       2,       1, &
499 &         2,        2,       4,       4,       2,       3 /)
500! critical tmin, tabulated (C)
501  tmin_crit_tab(2:nvm) =    &
502 & (/     0.0,     0.0,   -45.0,   -10.0,   -45.0,   -60.0, &
503 &      -60.0,   undef,   undef,   undef,   undef,   undef /)
504! critical tcm, tabulated (C)
505  tcm_crit_tab(2:nvm) =     &
506 & (/   undef,   undef,     5.0,    15.5,    15.5,    -2.0, &
507 &        5.0,    -2.0,   undef,   undef,   undef,   undef /)
508! critical gdd, tabulated (C), constant c of aT^2+bT+c
509  gdd_crit1_tab(2:nvm) =    &
510 & (/   undef,   undef,   undef,   undef,   undef,   undef, &
511 &      undef,   undef,     270.,   400.,    125.,    400. /)
512!!$ gdd_crit1_tab(2:nvm) = &
513!!$ & (/   undef,   undef,   undef,   undef,   undef,   undef, &
514!!$ &      undef,   undef, 184.375,    400.,    125.,    400. /)
515! critical gdd, tabulated (C), constant b of aT^2+bT+c
516  gdd_crit2_tab(2:nvm) =    &
517 & (/   undef,   undef,   undef,   undef,   undef,   undef, &
518 &      undef,   undef,    6.25,      0.,      0.,       0. /)
519! critical gdd, tabulated (C), constant a of aT^2+bT+c
520  gdd_crit3_tab(2:nvm) =    &
521 & (/   undef,   undef,   undef,   undef,   undef,   undef, &
522 &      undef,   undef, 0.03125,      0.,      0.,       0. /)
523! critical ngd, tabulated. Threshold -5 degrees
524  ngd_crit_tab(2:nvm)  =    &
525 & (/   undef,   undef,   undef,   undef,   undef,   undef, &
526 &      undef,     17.,   undef,   undef,   undef,   undef /)
527! critical temperature for the ncd vs. gdd function in phenology
528  ncdgdd_temp_tab(2:nvm) =  &
529 & (/   undef,   undef,   undef,   undef,      5.,   undef, &
530 &         0.,   undef,   undef,   undef,   undef,   undef /)
531! critical humidity (relative to min/max) for phenology
532  hum_frac_tab(2:nvm) =     &
533 & (/      undef,      .5,   undef,   undef,   undef,   undef,         &
534 &         undef,   undef,      .5,      .5,      .5,      .5         /)
535! minimum duration of dormance (d) for phenology
536  lowgpp_time_tab(2:nvm) =  &
537 & (/      undef,     30.,   undef,   undef,     30.,   undef,   &
538 &           30.,     30.,     30.,     30.,     30.,     30. /)
539! minimum time elapsed since moisture minimum (d)
540  hum_min_time_tab(2:nvm) =   &
541 & (/      undef,     50.,   undef,   undef,   undef,   undef,           &
542 &         undef,   undef,     35.,     35.,     75.,     75.           /)
543! sapwood -> heartwood conversion time (d)
544  tau_sap(2:nvm) =       &
545 & (/       730.,    730.,    730.,    730.,    730.,    730.,      &
546 &          730.,    730.,   undef,   undef,   undef,   undef      /)
547! fruit lifetime (d)
548  tau_fruit(2:nvm) =     &
549 & (/        90.,     90.,     90.,     90.,     90.,     90.,      &
550 &           90.,     90.,   undef,   undef,   undef,   undef      /)
551! fraction of primary leaf and root allocation put into reserve
552  ecureuil(2:nvm) =      &
553 & (/         .0,      1.,      .0,      .0,      1.,      .0,      &
554 &            1.,      1.,      1.,      1.,      1.,      1.      /)
555! Maximum rate of carboxylation
556!Shilong
557  vcmax_opt(2:nvm) =     &
558 & (/      65.,     65.,     35.,     45.,     55.,     35.,      &
559 &         45.,     35.,     70.,     70.,    70.,    70.      /)
560  CALL getin_p("vcmax_opt", vcmax_opt)
561! 1.9.3
562!!$  vcmax_opt(2:nvm) =     &
563!!$ & (/     65.,     65.,     35.,     40.,     55.,     35.,   &
564!!$ &        45.,     35.,     70.,     70.,     70.,     70. /
565! OLD HEAD before 1.9.3
566!!$  vcmax_opt(2:nvm) =     &
567!!$ & (/        65.,     65.,     35.,     40.,     55.,     35.,      &
568!!$ &                 45.,     35.,     80.,     80.,    100.,    100.      /)
569!modif jerome carbofor
570! vcmax_opt = &
571! & (/        65.,     65.,     50.,     40.,     75.,     35.,   &
572! &           45.,     35.,     80.,     80.,    100.,    100. /)
573  !DATA vcmax_opt_tab          /      0.,     65.,     65.,    37.5,     45.,     60.,    37.5,   &
574  !                                  50.,     40.,    100.,    100.,    100.,    100. /
575!-
576! Maximum rate of RUbp regeneration
577  vjmax_opt(2:nvm) =     &
578 & (/       130.,    130.,     70.,     80.,    110.,     70.,      &
579 &           90.,     70.,    160.,    160.,    200.,    200.      /)
580!-
581  !DATA vjmax_opt_tab          /      0.,    130.,    130.,     75.,     90.,    120.,     75.,   &
582  !                                 100.,     80.,    200.,    200.,    200.,    200. /
583!-
584! length of death of leaves, tabulated (d)
585  leaffall_tab(2:nvm) =    &
586 & (/      undef,     10.,   undef,   undef,     10.,   undef,        &
587 &           10.,     10.,     10.,     10.,     10.,     10.        /)
588! critical leaf age, tabulated (d)
589! Shilong modification
590  leafagecrit_tab(2:nvm) =     &
591 & (/       730.,    180.,    910.,    730.,    180.,    910.,            &
592 &          180.,    180.,    120.,    120.,    90.,    90.            /)
593! OLD HEAD
594!!$  DATA leafagecrit_tab        /    730.,    180.,    910.,    730.,    180.,    910.,   &
595!!$                                   180.,    180.,    120.,    120.,    120.,    120. /
596!NEW SHILONG
597! & (/     730.,    180.,    910.,    730.,    180.,    910.,            &
598! &        180.,    180.,    120.,    120.,     70.,     70.            /)
599!-
600  ! which phenology model is used? (tabulated)
601  pheno_model_tab(1:nvm) =   &
602 & (/  'none  ',   'none  ',   'moi   ',   'none  ',   'none  ',   &
603 &     'ncdgdd',   'none  ',   'ncdgdd',   'ngd   ',   'moigdd',   &
604 &     'moigdd',   'moigdd',   'moigdd'           /) 
605! List of avaible phenology models :
606! 'hum   ', 'moi   ', 'ncdgdd', 'ngd   ', 'humgdd', 'moigdd', 'none  '
607!-
608  ! type of senescence, tabulated
609  senescence_type_tab(1:nvm) =   &
610 & (/  'none  ',  'none  ',   'dry   ',  'none  ',  'none  ',   &
611 &     'cold  ',  'none  ',   'cold  ',  'cold  ',  'mixed ',   &
612 &     'mixed ',  'mixed ',   'mixed '            /)
613!-
614! List of avaible types of senescence :
615! 'cold  ', 'dry   ', 'mixed ', 'none  '
616!-
617! critical temperature for senescence (C),
618! constant c of aT^2+bT+c , tabulated
619  senescence_temp1_tab(2:nvm) =   &
620 & (/      undef,   undef,   undef,   undef,     12.,   undef,               &
621 &            7.,      2.,  -1.375,      5.,      5.,     10.               /)
622! critical temperature for senescence (C),
623! constant b of aT^2+bT+c , tabulated
624  senescence_temp2_tab(2:nvm) =   &
625 & (/      undef,   undef,   undef,   undef,      0.,   undef,               &
626 &            0.,      0.,      .1,      0.,      0.,      0.               /)
627! critical temperature for senescence (C),
628! constant a of aT^2+bT+c , tabulated
629  senescence_temp3_tab(2:nvm) =   &
630 & (/      undef,   undef,   undef,   undef,      0.,   undef,               &
631 &            0.,      0.,  .00375,      0.,      0.,      0.               /)
632! critical relative moisture availability for senescence
633!SZ 080806, reparameterisation of TrBR: reduce criticial moisture from .6 to .3
634! to mimic a leaf dropping at -1.49 MPa, buffered to account for sechiba
635  senescence_hum_tab(2:nvm) =  &
636 & (/      undef,      .3,   undef,   undef,   undef,   undef,            &
637 &         undef,   undef,      .2,      .2,      .3,      .2            /)
638! 1.9.3
639!!$  senescence_hum_tab(2:nvm) =  &
640!!$ & (/      undef,      .6,   undef,   undef,   undef,   undef,            &
641!!$ &         undef,   undef,      .2,      .2,      .3,      .2            /)
642! relative moisture availability above which
643! there is no humidity-related senescence
644!SZ 080806, reparameterisation of TrBR: reduce nosenencemoisture to avoid leaf dropping
645! when phenology routine would give new flushing of leaves: 1.0 to 0.8
646  nosenescence_hum_tab(2:nvm) =  &
647 & (/      undef,      .8,   undef,   undef,   undef,   undef,              &
648 &               undef,   undef,      .3,      .3,      .3,      .3              /)
649! 1.9.3
650!!$  nosenescence_hum_tab(2:nvm) =  &
651!!$ & (/      undef,      1.,   undef,   undef,   undef,   undef,              &
652!!$ &               undef,   undef,      .3,      .3,      .3,      .3              /)
653
654! maximum turnover time for grasse
655  max_turnover_time_tab(2:nvm) =   &
656 & (/      undef,   undef,    undef,   undef,   undef,   undef,                &
657 &         undef,   undef,      80.,     80.,     80.,     80.                /)
658! minimum turnover time for grasse
659  min_turnover_time_tab(2:nvm) =   &
660 & (/      undef,    undef,    undef,    undef,   undef,   undef,              &
661 &         undef,   undef,      10.,      10.,      10.,      10.             /)
662! minimum leaf age to allow senescence g
663  min_leaf_age_for_senescence_tab(2:nvm) =   &
664 & (/    undef,    90.,   undef,   undef,    90.,    undef,          &
665 &         60.,    60.,     30.,     30.,    30.,      30.          /)
666!-
667! slope of maintenance respiration coefficient (1/K),
668! constant c of aT^2+bT+c , tabulated
669!SZ - 1.9.3
670  maint_resp_slope1_tab(2:nvm) =   &
671 & (/        .12,     .12,     .16,     .16,     .16,     .16,                &
672 &           .16,     .16,     .16,     .12,     .16,     .12                /)
673!OLD MERGE
674!!$  maint_resp_slope1_tab(2:nvm) =   &
675!!$ & (/        .16,     .16,     .16,     .16,     .16,     .16,                &
676!!$ &                 .16,     .16,     .16,     .12,     .16,     .16                /)
677!Shilong
678!!$  maint_resp_slope1_tab(2:nvm) =   &
679!!$ & (/      .12,     .12,     .16,     .16,     .16,     .16,                &
680!!$ &         .16,     .16,     .16,     .16,     .16,     .16                /)
681!-
682! slope of maintenance respiration coefficient (1/K),
683! constant b of aT^2+bT+c , tabulated
684  maint_resp_slope2_tab(2:nvm) =   &
685 & (/         .0,      .0,      .0,      .0,      .0,      .0,                &
686 &            .0,      .0, -.00133,      .0, -.00133,      .0                /)
687  ! DATA maint_resp_slope2_tab  /      .0,      .0,      .0,      .0,      .0,      .0,      .0,   &
688  !                                    .0,      .0,      .0,      .0,      .0,      .0 /
689! slope of maintenance respiration coefficient (1/K),
690! constant a of aT^2+bT+c , tabulated
691  maint_resp_slope3_tab(2:nvm) =   &
692 & (/         .0,      .0,      .0,      .0,      .0,      .0,                &
693 &            .0,      .0,      .0,      .0,      .0,      .0                /)
694!-
695! maintenance respiration coefficient (g/g/day) at 0 deg C,
696! for leaves, tabulated
697  cm_zero_leaf_tab(2:nvm) =    &
698 & (/    2.35E-3, 2.62E-3, 1.01E-3, 2.35E-3, 2.62E-3, 1.01E-3,            &
699 &       2.62E-3, 2.05E-3, 2.62E-3, 2.62E-3, 2.62E-3, 2.62E-3            /)
700!-
701! maintenance respiration coefficient (g/g/day) at 0 deg C,
702! for sapwood above, tabulated
703  cm_zero_sapabove_tab(2:nvm) =    &
704 & (/    1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4,                &
705 &       1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4                /)
706!-
707! maintenance respiration coefficient (g/g/day) at 0 deg C,
708! for sapwood below, tabulated
709  cm_zero_sapbelow_tab(2:nvm) =    &
710 & (/    1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4,                &
711 &       1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4                /)
712!-
713! maintenance respiration coefficient (g/g/day) at 0 deg C,
714! for heartwood above, tabulated
715  cm_zero_heartabove_tab(2:nvm) =  &
716 & (/         0.,      0.,      0.,      0.,      0.,      0.,                &
717 &            0.,      0.,      0.,      0.,      0.,      0.                /)
718!-
719! maintenance respiration coefficient (g/g/day) at 0 deg C,
720! for heartwood below, tabulated
721  cm_zero_heartbelow_tab(2:nvm) =  &
722 & (/         0.,      0.,      0.,      0.,      0.,      0.,                &
723 &            0.,      0.,      0.,      0.,      0.,      0.                /)
724!-
725! maintenance respiration coefficient (g/g/day) at 0 deg C,
726! for roots, tabulated
727  cm_zero_root_tab(2:nvm) =    &
728 & (/    1.67E-3, 1.67E-3, 1.67E-3, 1.67E-3, 1.67E-3, 1.67E-3,            &
729 &       1.67E-3, 1.67E-3, 1.67E-3, 1.67E-3, 1.67E-3, 1.67E-3            /)
730!-
731! maintenance respiration coefficient (g/g/day) at 0 deg C,
732! for fruits, tabulated
733  cm_zero_fruit_tab(2:nvm) =   &
734 & (/    1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4,            &
735 &       1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4            /)
736!-
737! maintenance respiration coefficient (g/g/day) at 0 deg C,
738! for carbohydrate reserve, tabulated
739  cm_zero_carbres_tab(2:nvm) =    &
740 & (/    1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4,               &
741 &       1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4, 1.19E-4               /)
742!-
743! minimum photosynthesis temperature,
744! constant a of ax^2+bx+c (deg C), tabulated
745  tphoto_min_a_tab(2:nvm) =   &
746 & (/         0.,      0.,      0.,      0.,      0.,      0.,           &
747 &            0.,      0.,  0.0025,      0.,      0.,      0.           /)
748!-
749! minimum photosynthesis temperature,
750! constant b of ax^2+bx+c (deg C), tabulated
751  tphoto_min_b_tab(2:nvm) =   &
752 & (/         0.,      0.,      0.,      0.,      0.,      0.,           &
753 &            0.,      0.,     0.1,      0.,      0.,      0.           /)
754!-
755! minimum photosynthesis temperature,
756! constant c of ax^2+bx+c (deg C), tabulated
757  tphoto_min_c_tab(2:nvm) =   &
758 & (/         2.,      2.,     -4.,     -3.,     -2.,     -4.,           &
759 &           -4.,     -4.,   -3.25,     13.,     -5.,     13.           /)
760!-
761! optimum photosynthesis temperature,
762! constant a of ax^2+bx+c (deg C), tabulated
763  tphoto_opt_a_tab(2:nvm) =   &
764 & (/         0.,      0.,      0.,      0.,      0.,      0.,           &
765              0.,      0.,  0.0025,      0.,      0.,      0.           /)
766! optimum photosynthesis temperature,
767! constant b of ax^2+bx+c (deg C), tabulated
768  tphoto_opt_b_tab(2:nvm) =   &
769 & (/         0.,      0.,      0.,      0.,      0.,      0.,           &
770 &            0.,      0.,    0.25,      0.,      0.,      0.           /)
771!-
772! optimum photosynthesis temperature,
773! constant c of ax^2+bx+c (deg C), tabulated
774  tphoto_opt_c_tab(2:nvm) =    &
775 & (/        37.,     37.,     25.,     32.,     26.,     25.,           &
776 &           25.,     25.,   27.25,     36.,     30.,     36.           /)
777!-
778! maximum photosynthesis temperature,
779! constant a of ax^2+bx+c (deg C), tabulated
780  tphoto_max_a_tab(2:nvm) =    &
781 & (/         0.,      0.,      0.,      0.,      0.,      0.,             &
782 &            0.,      0., 0.00375,      0.,      0.,      0.            /)
783!-
784! maximum photosynthesis temperature,
785! constant b of ax^2+bx+c (deg C), tabulated
786  tphoto_max_b_tab(2:nvm) =    &
787 & (/         0.,      0.,      0.,      0.,      0.,      0.,            &
788 &            0.,      0.,    0.35,      0.,      0.,      0.            /)
789!-
790! maximum photosynthesis temperature,
791! constant c of ax^2+bx+c (deg C), tabulated
792  tphoto_max_c_tab(2:nvm) =    &
793 & (/        55.,     55.,     38.,     48.,     38.,     38.,            &
794 &           38.,     38.,  41.125,     55.,     45.,     55.            /)
795!-
796  ! NEW - allocation above/below = f(age) - 30/01/04 NV/JO/PF
797  alloc_min(2:nvm) =               &
798 & (/          0.2,       0.2,       0.2,       0.2,     0.2,     0.2,   &
799 &             0.2,       0.2,     undef,     undef,   undef,   undef   /)
800  alloc_max(2:nvm) =               &
801 & (/          0.8,       0.8,       0.8,       0.8,     0.8,     0.8,   &
802 &             0.8,       0.8,     undef,     undef,   undef,   undef   /)
803  demi_alloc(2:nvm) =              &
804 & (/           5.,        5.,       5.,        5.,       5.,      5.,   &
805 &              5.,        5.,    undef,     undef,    undef,   undef   /)
806
807  ! Coeff of biomass export for the year
808  coeff_lcchange_1(2:nvm) = &
809 & (/        0.597,     0.597,    0.597,     0.597,    0.597,   0.597,   &
810 &           0.597,     0.597,    0.597,     0.597,    0.597,   0.597   /)
811  ! Coeff of biomass export for the decade
812  coeff_lcchange_10(2:nvm) = &
813 & (/        0.403,     0.403,    0.299,     0.299,    0.299,   0.299,   &
814 &           0.299,     0.299,    0.299,     0.403,    0.299,   0.403   /)
815  ! Coeff of biomass export for the century
816  coeff_lcchange_100(2:nvm) = &
817 & (/           0.,        0.,    0.104,     0.104,    0.104,   0.104,   &
818 &           0.104,     0.104,    0.104,        0.,    0.104,      0.   /)
819
820  END SUBROUTINE stomate_constants_init
821
822!---------------------------
823END MODULE stomate_constants
Note: See TracBrowser for help on using the repository browser.