SURFEX v8.1
General documentation of Surfex
pgd_isba_par.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! #########
6  SUBROUTINE pgd_isba_par (DTCO, UG, U, USS, DTV, IO, S, KDIM, HPROGRAM)
7 ! ##############################################################
8 !
9 !!**** *PGD_ISBA_PAR* monitor for averaging and interpolations of cover fractions
10 !!
11 !! PURPOSE
12 !! -------
13 !!
14 !! METHOD
15 !! ------
16 !!
17 !
18 !! EXTERNAL
19 !! --------
20 !!
21 !! IMPLICIT ARGUMENTS
22 !! ------------------
23 !!
24 !! REFERENCE
25 !! ---------
26 !!
27 !! AUTHOR
28 !! ------
29 !!
30 !! V. Masson Meteo-France
31 !!
32 !! MODIFICATION
33 !! ------------
34 !!
35 !! Original 10/12/97
36 !!
37 !! Modified 08/12/05, P. Le Moigne: user defined fields
38 !! 05/2012 R. Alkama : 19 vegtypes rather than 12
39 !! Modified 02/2012, P. Samuelsson: MEB
40 !!
41 !----------------------------------------------------------------------------
42 !
43 !* 0. DECLARATION
44 ! -----------
45 !
46 !
47 !
50 USE modd_surf_atm_n, ONLY : surf_atm_t
51 USE modd_sso_n, ONLY : sso_t
52 USE modd_data_isba_n, ONLY : data_isba_t
54 USE modd_isba_n, ONLY : isba_s_t
55 !
56 USE modd_data_cover_par, ONLY : nvegtype
57 USE modd_surf_par, ONLY : xundef
58 !
59 USE modd_agri, ONLY : lagrip
60 !
61 USE modi_av_pgd
62 USE modi_get_luout
63 USE modi_open_namelist
64 USE modi_close_namelist
66 USE modi_extrapol_fields
67 !
68 USE mode_pos_surf
69 !
70 !
71 USE yomhook ,ONLY : lhook, dr_hook
72 USE parkind1 ,ONLY : jprb
73 !
74 USE modi_abor1_sfx
75 !
76 IMPLICIT NONE
77 !
78 !* 0.1 Declaration of arguments
79 ! ------------------------
80 !
81 TYPE(data_cover_t), INTENT(INOUT) :: DTCO
82 TYPE(surf_atm_grid_t), INTENT(INOUT) :: UG
83 TYPE(surf_atm_t), INTENT(INOUT) :: U
84 TYPE(sso_t), INTENT(INOUT) :: USS
85 TYPE(data_isba_t), INTENT(INOUT) :: DTV
86 TYPE(isba_options_t), INTENT(INOUT) :: IO
87 TYPE(isba_s_t), INTENT(INOUT) :: S
88 !
89 INTEGER, INTENT(IN) :: KDIM
90 !
91  CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! Type of program
92 !
93 !
94 !* 0.2 Declaration of local variables
95 ! ------------------------------
96 !
97 REAL, DIMENSION(KDIM,NVEGTYPE) :: TEST,TEST2,TEST3
98 INTEGER :: ILUOUT ! output listing logical unit
99 INTEGER :: ILUNAM ! namelist file logical unit
100 INTEGER :: IHGROUND_LAYER ! Half number of NGROUND_LAYER
101 INTEGER :: IIH ! Ground layer counter
102 LOGICAL :: GFOUND ! true if namelist is found
103 !
104 INTEGER :: JVEG, JL ! loop counter on patch
105 LOGICAL :: GPAR_STRESS ! type of stress
106 !
107 INTEGER :: ISIZE_LMEB_PATCH ! Number of patches with MEB=true
108 !
109 !* 0.3 Declaration of namelists
110 ! ------------------------
111 !
112 INTEGER :: NTIME
113 INTEGER, PARAMETER :: NTIME_MAX = 36
114 INTEGER, PARAMETER :: NGROUND_MAX = 150
115 INTEGER, PARAMETER :: NVEGTYPE_MAX = 20
116 !
117 REAL, DIMENSION(NVEGTYPE_MAX) :: XSTRESS ! 1. if defensive /0. if offensive
118 !
119 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_VEGTYPE ! fractions of each vegtypes
120 !
121 REAL, DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: XUNIF_VEG ! vegetation fraction
122 REAL, DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: XUNIF_LAI ! LAI
123 REAL, DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: XUNIF_Z0 ! roughness length of vegetation
124 REAL, DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: XUNIF_EMIS ! emissivity
125 !
126 REAL, DIMENSION(NVEGTYPE_MAX,NGROUND_MAX) :: XUNIF_DG ! soil depths
127 REAL, DIMENSION(NVEGTYPE_MAX,NGROUND_MAX) :: XUNIF_ROOTFRAC ! root fraction profiles
128 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_GROUND_DEPTH! ground depth
129 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_ROOT_DEPTH ! root depth
130 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_ROOT_EXTINCTION! root extinction parameter
131 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_ROOT_LIN ! root linear parameter
132 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_DICE ! soil ice depth for runoff
133 !
134 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_RSMIN ! minimal stomatal resistance
135 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_GAMMA ! gamma parameter
136 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_WRMAX_CF ! coefficient for interception
137 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_RGL !Rgl
138 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_CV ! Cv
139 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_Z0_O_Z0H ! ratio of roughness lengths
140 REAL, DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: XUNIF_ALBNIR_VEG ! albedo of vegetation (near-infra-red)
141 REAL, DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: XUNIF_ALBVIS_VEG ! albedo of vegetation (visible)
142 REAL, DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: XUNIF_ALBUV_VEG ! albedo of vegetation (UV)
143 REAL, DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: XUNIF_ALBNIR_SOIL! albedo of soil (near-infra-red)
144 REAL, DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: XUNIF_ALBVIS_SOIL! albedo of soil (visible)
145 REAL, DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: XUNIF_ALBUV_SOIL ! albedo of soil (UV)
146 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_GMES ! Gmes
147 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_BSLAI ! Biomass over LAI
148 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_LAIMIN ! minimum LAI
149 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_SEFOLD ! Sefold
150 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_GC ! Gc
151 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_DMAX ! Dmax
152 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_F2I ! F2I
153 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_H_TREE ! height of trees
154 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_RE25 ! soil respiration parameter
155 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_CE_NITRO ! CE for nitrogen
156 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_CF_NITRO ! CF for nitrogen
157 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_CNA_NITRO ! CNA for nitrogen
158 !
159 REAL, DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: XUNIF_IRRIG
160 REAL, DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: XUNIF_WATSUP
161 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_SEED_M
162 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_SEED_D
163 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_REAP_M
164 REAL, DIMENSION(NVEGTYPE_MAX) :: XUNIF_REAP_D
165 !
166 REAL, DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: XUNIF_Z0LITTER
167 REAL, DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: XUNIF_GNDLITTER
168 REAL, DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: XUNIF_H_VEG
169 !
170 LOGICAL, DIMENSION(NVEGTYPE_MAX) :: LUNIF_STRESS ! stress type
171 !
172 REAL, DIMENSION(NGROUND_MAX) :: XUNIF_CONDSAT
173 REAL, DIMENSION(NGROUND_MAX) :: XUNIF_MPOTSAT
174 REAL, DIMENSION(NGROUND_MAX) :: XUNIF_BCOEF
175 REAL, DIMENSION(NGROUND_MAX) :: XUNIF_WWILT
176 REAL, DIMENSION(NGROUND_MAX) :: XUNIF_WFC
177 REAL, DIMENSION(NGROUND_MAX) :: XUNIF_WSAT
178 !
179 ! name of files containing data
180 !
181  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_VEGTYPE ! fractions of each vegtypes
182 !
183  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFNAM_VEG ! vegetation fraction
184  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFNAM_LAI ! LAI
185  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFNAM_Z0 ! roughness length
186  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFNAM_EMIS ! emissivity
187 !
188  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX,NGROUND_MAX) :: CFNAM_DG ! soil depth
189  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX,NGROUND_MAX) :: CFNAM_ROOTFRAC ! root fraction profiles
190  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_GROUND_DEPTH! ground depth
191  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_ROOT_DEPTH ! root depth
192  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_ROOT_EXTINCTION! root extinction parameter
193  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_ROOT_LIN ! root linear parameter
194  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_DICE ! soil ice depth for runoff (m)
195 !
196  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_RSMIN ! minimal stomatal resistance
197  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_GAMMA ! gamma parameter
198  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_WRMAX_CF ! coefficient for interception
199  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_RGL ! Rgl
200  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_CV ! Cv
201  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_Z0_O_Z0H ! ratio of roughness lengths
202  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFNAM_ALBNIR_VEG ! albedo of vegetation (near-infra-red)
203  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFNAM_ALBVIS_VEG ! albedo of vegetation (visible)
204  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFNAM_ALBUV_VEG ! albedo of vegetation (UV)
205  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFNAM_ALBNIR_SOIL! albedo of soil (near-infra-red)
206  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFNAM_ALBVIS_SOIL! albedo of soil (visible)
207  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFNAM_ALBUV_SOIL ! albedo of soil (UV)
208  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_GMES ! Gmes
209  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_BSLAI ! Biomass over LAI
210  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_LAIMIN ! minimum LAI
211  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_SEFOLD ! e-folding time for senesence
212  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_GC ! cuticular conductance
213  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_DMAX ! Dmax
214  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_F2I ! F2I
215  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_H_TREE ! height of trees
216  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_RE25 ! soil respiration parameter
217  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_CE_NITRO ! CE for nitrogen
218  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_CF_NITRO ! CF for nitrogen
219  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_CNA_NITRO ! CNA for nitrogen
220 !
221  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFNAM_IRRIG !
222  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFNAM_WATSUP !
223  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_SEED_M !
224  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_SEED_D !
225  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_REAP_M !
226  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX) :: CFNAM_REAP_D !
227 !
228  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFNAM_Z0LITTER
229  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFNAM_GNDLITTER
230  CHARACTER(LEN=28), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFNAM_H_VEG
231 !
232  CHARACTER(LEN=28), DIMENSION(NGROUND_MAX) :: CFNAM_CONDSAT
233  CHARACTER(LEN=28), DIMENSION(NGROUND_MAX) :: CFNAM_MPOTSAT
234  CHARACTER(LEN=28), DIMENSION(NGROUND_MAX) :: CFNAM_BCOEF
235  CHARACTER(LEN=28), DIMENSION(NGROUND_MAX) :: CFNAM_WWILT
236  CHARACTER(LEN=28), DIMENSION(NGROUND_MAX) :: CFNAM_WFC
237  CHARACTER(LEN=28), DIMENSION(NGROUND_MAX) :: CFNAM_WSAT
238 !
239 ! types of file containing data
240 !
241  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_VEGTYPE ! fractions of each vegtypes
242 !
243  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFTYP_VEG ! vegetation fraction
244  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFTYP_LAI ! LAI
245  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFTYP_Z0 ! roughness length
246  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFTYP_EMIS ! emissivity
247 !
248  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX,NGROUND_MAX) :: CFTYP_DG ! soil depth
249  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX,NGROUND_MAX) :: CFTYP_ROOTFRAC ! root fraction profiles
250  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_GROUND_DEPTH! ground depth
251  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_ROOT_DEPTH ! root depth
252  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_ROOT_EXTINCTION! root extinction parameter
253  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_ROOT_LIN ! root linear parameter
254  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_DICE ! soil ice depth for runoff
255 !
256  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_RSMIN ! minimal stomatal resistance
257  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_GAMMA ! gamma parameter
258  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_WRMAX_CF ! coefficient for interception
259  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_RGL ! Rgl
260  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_CV ! Cv
261  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_Z0_O_Z0H ! ratio of roughness lengths
262  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFTYP_ALBNIR_VEG ! albedo of vegetation (near-infra-red)
263  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFTYP_ALBVIS_VEG ! albedo of vegetation (visible)
264  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFTYP_ALBUV_VEG ! albedo of vegetation (UV)
265  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFTYP_ALBNIR_SOIL! albedo of soil (near-infra-red)
266  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFTYP_ALBVIS_SOIL! albedo of soil (visible)
267  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFTYP_ALBUV_SOIL ! albedo of soil (UV)
268  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_GMES ! Gmes
269  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_BSLAI ! Biomass over LAI
270  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_LAIMIN ! minimum LAI
271  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_SEFOLD ! e-folding time for senesence
272  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_GC ! cuticular conductance
273  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_DMAX ! Dmax
274  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_F2I ! F2I
275  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_H_TREE ! height of trees
276  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_RE25 ! soil respiration parameter
277  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_CE_NITRO ! CE for nitrogen
278  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_CF_NITRO ! CF for nitrogen
279  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_CNA_NITRO ! CNA for nitrogen
280 !
281  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFTYP_IRRIG
282  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFTYP_WATSUP
283  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_SEED_M
284  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_SEED_D
285  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_REAP_M
286  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_REAP_D
287 !
288  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFTYP_Z0LITTER
289  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFTYP_GNDLITTER
290  CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFTYP_H_VEG
291 !
292  CHARACTER(LEN=6), DIMENSION(NGROUND_MAX) :: CFTYP_CONDSAT
293  CHARACTER(LEN=6), DIMENSION(NGROUND_MAX) :: CFTYP_MPOTSAT
294  CHARACTER(LEN=6), DIMENSION(NGROUND_MAX) :: CFTYP_BCOEF
295  CHARACTER(LEN=6), DIMENSION(NGROUND_MAX) :: CFTYP_WWILT
296  CHARACTER(LEN=6), DIMENSION(NGROUND_MAX) :: CFTYP_WFC
297  CHARACTER(LEN=6), DIMENSION(NGROUND_MAX) :: CFTYP_WSAT
298 !
299 REAL(KIND=JPRB) :: ZHOOK_HANDLE
300 !
301 NAMELIST/nam_data_isba/ntime, xunif_vegtype, xunif_dg, xunif_rootfrac, xunif_dice, &
302  xunif_ground_depth, xunif_root_depth, xunif_root_extinction, &
303  xunif_root_lin, xunif_lai, xunif_veg, xunif_z0, xunif_emis, &
304  xunif_rsmin, xunif_gamma, xunif_wrmax_cf, xunif_rgl, &
305  xunif_cv, xunif_z0_o_z0h, &
306  xunif_albnir_veg, xunif_albvis_veg, xunif_albuv_veg, &
307  xunif_albnir_soil, xunif_albvis_soil, xunif_albuv_soil, &
308  xunif_gmes, xunif_bslai, xunif_laimin, xunif_sefold, &
309  xunif_gc, xunif_dmax, xunif_f2i, lunif_stress, xunif_h_tree, xunif_re25, &
310  xunif_ce_nitro, xunif_cf_nitro, xunif_cna_nitro, &
311  xunif_irrig, xunif_watsup, xunif_seed_m, xunif_seed_d, xunif_reap_m, xunif_reap_d, &
312  cfnam_veg,cfnam_lai,cfnam_rsmin,cfnam_gamma,cfnam_wrmax_cf, &
313  cfnam_rgl,cfnam_cv,cfnam_dg,cfnam_dice,cfnam_z0,cfnam_z0_o_z0h, &
314  cfnam_albnir_veg,cfnam_albvis_veg,cfnam_albuv_veg, &
315  cfnam_albnir_soil,cfnam_albvis_soil,cfnam_albuv_soil, &
316  cfnam_emis, &
317  cfnam_vegtype,cfnam_rootfrac, &
318  cfnam_ground_depth,cfnam_root_depth,cfnam_root_extinction,cfnam_root_lin, &
319  cfnam_gmes,cfnam_bslai,cfnam_laimin,cfnam_sefold,cfnam_gc, &
320  cfnam_dmax,cfnam_f2i, cfnam_h_tree,cfnam_re25, &
321  cfnam_ce_nitro,cfnam_cf_nitro,cfnam_cna_nitro, &
322  cfnam_irrig, cfnam_watsup, cfnam_seed_m, cfnam_seed_d, cfnam_reap_m, cfnam_reap_d, &
323  cftyp_veg,cftyp_lai,cftyp_rsmin,cftyp_gamma,cftyp_wrmax_cf, &
324  cftyp_rgl,cftyp_cv,cftyp_dg,cftyp_dice,cftyp_z0,cftyp_z0_o_z0h, &
325  cftyp_albnir_veg,cftyp_albvis_veg,cftyp_albuv_veg, &
326  cftyp_albnir_soil,cftyp_albvis_soil,cftyp_albuv_soil, &
327  cftyp_emis, &
328  cftyp_vegtype,cftyp_rootfrac, &
329  cftyp_ground_depth,cftyp_root_depth,cftyp_root_extinction,cftyp_root_lin, &
330  cftyp_gmes,cftyp_bslai,cftyp_laimin,cftyp_sefold,cftyp_gc, &
331  cftyp_dmax,cftyp_f2i, cftyp_h_tree,cftyp_re25, &
332  cftyp_ce_nitro,cftyp_cf_nitro,cftyp_cna_nitro, &
333  cftyp_irrig, cftyp_watsup, cftyp_seed_m, cftyp_seed_d, cftyp_reap_m, cftyp_reap_d, &
334  xunif_z0litter, xunif_gndlitter, xunif_h_veg, cfnam_z0litter, &
335  cfnam_gndlitter, cfnam_h_veg, cftyp_z0litter, cftyp_gndlitter, cftyp_h_veg, &
336  xunif_condsat, cfnam_condsat, cftyp_condsat, xunif_mpotsat, cfnam_mpotsat, &
337  cftyp_mpotsat, xunif_bcoef, cfnam_bcoef, cftyp_bcoef, xunif_wwilt, cfnam_wwilt, &
338  cftyp_wwilt, xunif_wfc, cfnam_wfc, cftyp_wfc, xunif_wsat, cfnam_wsat, cftyp_wsat
339 
340 !-------------------------------------------------------------------------------
341 !
342 !* 1. Initializations
343 ! ---------------
344 !
345 IF (lhook) CALL dr_hook('PGD_ISBA_PAR',0,zhook_handle)
346 !
347 IF (u%LECOSG) THEN
348  !4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
349  xstress = (/1.,1.,1.,0.,0.,0.,0.,0.,1.,1.,1.,0.,0.,0.,0.,1.,1.,0.,0.,0./)
350 ELSE
351  !1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
352  xstress = (/1.,1.,1.,0.,1.,0.,1.,0.,1.,0.,0.,0.,0.,0.,1.,0.,1.,0.,0.,0./)
353 ENDIF
354 !
355 dtv%NVEGTYPE = nvegtype
356 !
357 ntime = 36
358 xunif_veg = xundef ! vegetation fraction
359 xunif_lai = xundef ! LAI
360 xunif_rsmin = xundef ! minimal stomatal resistance
361 xunif_gamma = xundef ! gamma parameter
362 xunif_wrmax_cf = xundef ! coefficient for interception
363 xunif_rgl = xundef ! Rgl
364 xunif_cv = xundef ! Cv
365 xunif_dg = xundef ! soil depths
366 xunif_dice = xundef ! soil ice depths for runoff
367 xunif_z0 = xundef ! roughness length of vegetation
368 xunif_z0_o_z0h = xundef ! ratio of roughness lengths
369 xunif_albnir_veg = xundef ! albedo of vegetation (near-infra-red)
370 xunif_albvis_veg = xundef ! albedo of vegetation (visible)
371 xunif_albuv_veg = xundef ! albedo of vegetation (UV)
372 xunif_albnir_soil = xundef ! albedo of soil (near-infra-red)
373 xunif_albvis_soil = xundef ! albedo of soil (visible)
374 xunif_albuv_soil = xundef ! albedo of soil (UV)
375 xunif_emis = xundef ! emissivity of vegetation
376 xunif_vegtype = xundef ! fractions of each vegtypes
377 xunif_rootfrac = xundef ! root fraction profiles
378 xunif_ground_depth = xundef ! ground depth
379 xunif_root_depth = xundef ! root depth
380 xunif_root_extinction = xundef ! root extinction parameter
381 xunif_root_lin = xundef ! root linear parameter
382 xunif_gmes = xundef ! Gmes
383 xunif_bslai = xundef ! Biomass over LAI
384 xunif_laimin = xundef ! minimum LAI
385 xunif_sefold = xundef ! Sefold
386 xunif_gc = xundef ! Gc
387 xunif_dmax = xundef ! Dmax
388 xunif_f2i = xundef ! F2I
389 lunif_stress = .true.! stress type
390 xunif_h_tree = xundef ! height of trees
391 xunif_re25 = xundef ! soil respiration parameter
392 xunif_ce_nitro = xundef ! CE for nitrogen
393 xunif_cf_nitro = xundef ! CF for nitrogen
394 xunif_cna_nitro = xundef ! CNA for nitrogen
395 !
396 xunif_irrig = xundef
397 xunif_watsup = xundef
398 xunif_seed_m = xundef
399 xunif_seed_d = xundef
400 xunif_reap_m = xundef
401 xunif_reap_d = xundef
402 !
403 xunif_z0litter = xundef
404 xunif_gndlitter = xundef
405 xunif_h_veg = xundef
406 !
407 xunif_condsat = xundef
408 xunif_mpotsat = xundef
409 xunif_bcoef = xundef
410 xunif_wwilt = xundef
411 xunif_wfc = xundef
412 xunif_wsat = xundef
413 !
414 CFNAM_VEGTYPE (:) = ' '
415 !
416 CFNAM_VEG (:,:) = ' '
417 CFNAM_LAI (:,:) = ' '
418 CFNAM_Z0 (:,:) = ' '
419 CFNAM_EMIS (:,:) = ' '
420 !
421 CFNAM_DG (:,:) = ' '
422 CFNAM_ROOTFRAC (:,:) = ' '
423 CFNAM_DICE (:) = ' '
424 !
425 CFNAM_GROUND_DEPTH (:) = ' '
426 CFNAM_ROOT_DEPTH (:) = ' '
427 CFNAM_ROOT_EXTINCTION (:) = ' '
428 CFNAM_ROOT_LIN (:) = ' '
429 !
430 CFNAM_RSMIN (:) = ' '
431 CFNAM_GAMMA (:) = ' '
432 CFNAM_WRMAX_CF (:) = ' '
433 CFNAM_RGL (:) = ' '
434 CFNAM_CV (:) = ' '
435 CFNAM_Z0_O_Z0H (:) = ' '
436 CFNAM_ALBNIR_VEG (:,:) = ' '
437 CFNAM_ALBVIS_VEG (:,:) = ' '
438 CFNAM_ALBUV_VEG (:,:) = ' '
439 CFNAM_ALBNIR_SOIL (:,:) = ' '
440 CFNAM_ALBVIS_SOIL (:,:) = ' '
441 CFNAM_ALBUV_SOIL (:,:) = ' '
442 CFNAM_GMES (:) = ' '
443 CFNAM_BSLAI (:) = ' '
444 CFNAM_LAIMIN (:) = ' '
445 CFNAM_SEFOLD (:) = ' '
446 CFNAM_GC (:) = ' '
447 CFNAM_DMAX (:) = ' '
448 CFNAM_F2I (:) = ' '
449 CFNAM_H_TREE (:) = ' '
450 CFNAM_RE25 (:) = ' '
451 CFNAM_CE_NITRO (:) = ' '
452 CFNAM_CF_NITRO (:) = ' '
453 CFNAM_CNA_NITRO (:) = ' '
454 !
455 CFNAM_IRRIG (:,:) = ' '
456 CFNAM_WATSUP (:,:) = ' '
457 CFNAM_SEED_M (:) = ' '
458 CFNAM_SEED_D (:) = ' '
459 CFNAM_REAP_M (:) = ' '
460 CFNAM_REAP_D (:) = ' '
461 !
462 CFNAM_Z0LITTER (:,:) = ' '
463 CFNAM_GNDLITTER (:,:) = ' '
464 CFNAM_H_VEG (:,:) = ' '
465 !
466 CFNAM_CONDSAT (:) = ' '
467 CFNAM_MPOTSAT (:) = ' '
468 CFNAM_BCOEF (:) = ' '
469 CFNAM_WWILT (:) = ' '
470 CFNAM_WFC (:) = ' '
471 CFNAM_WSAT (:) = ' '
472 !
473 CFTYP_VEGTYPE (:) = ' '
474 !
475 CFTYP_VEG (:,:) = ' '
476 CFTYP_LAI (:,:) = ' '
477 CFTYP_Z0 (:,:) = ' '
478 CFTYP_EMIS (:,:) = ' '
479 !
480 CFTYP_DG (:,:) = ' '
481 CFTYP_ROOTFRAC (:,:) = ' '
482 CFTYP_DICE (:) = ' '
483 !
484 CFTYP_GROUND_DEPTH (:) = ' '
485 CFTYP_ROOT_DEPTH (:) = ' '
486 CFTYP_ROOT_EXTINCTION (:) = ' '
487 CFTYP_ROOT_LIN (:) = ' '
488 !
489 CFTYP_RSMIN (:) = ' '
490 CFTYP_GAMMA (:) = ' '
491 CFTYP_WRMAX_CF (:) = ' '
492 CFTYP_RGL (:) = ' '
493 CFTYP_CV (:) = ' '
494 CFTYP_Z0_O_Z0H (:) = ' '
495 CFTYP_ALBNIR_VEG (:,:) = ' '
496 CFTYP_ALBVIS_VEG (:,:) = ' '
497 CFTYP_ALBUV_VEG (:,:) = ' '
498 CFTYP_ALBNIR_SOIL (:,:) = ' '
499 CFTYP_ALBVIS_SOIL (:,:) = ' '
500 CFTYP_ALBUV_SOIL (:,:) = ' '
501 CFTYP_GMES (:) = ' '
502 CFTYP_BSLAI (:) = ' '
503 CFTYP_LAIMIN (:) = ' '
504 CFTYP_SEFOLD (:) = ' '
505 CFTYP_GC (:) = ' '
506 CFTYP_DMAX (:) = ' '
507 CFTYP_F2I (:) = ' '
508 CFTYP_H_TREE (:) = ' '
509 CFTYP_RE25 (:) = ' '
510 CFTYP_CE_NITRO (:) = ' '
511 CFTYP_CF_NITRO (:) = ' '
512 CFTYP_CNA_NITRO (:) = ' '
513 !
514 CFTYP_IRRIG (:,:) = ' '
515 CFTYP_WATSUP (:,:) = ' '
516 CFTYP_SEED_M (:) = ' '
517 CFTYP_SEED_D (:) = ' '
518 CFTYP_REAP_M (:) = ' '
519 CFTYP_REAP_D (:) = ' '
520 !
521 CFTYP_Z0LITTER (:,:) = ' '
522 CFTYP_GNDLITTER (:,:) = ' '
523 CFTYP_H_VEG (:,:) = ' '
524 !
525 CFTYP_CONDSAT (:) = ' '
526 CFTYP_MPOTSAT (:) = ' '
527 CFTYP_BCOEF (:) = ' '
528 CFTYP_WWILT (:) = ' '
529 CFTYP_WFC (:) = ' '
530 CFTYP_WSAT (:) = ' '
531 !
532 isize_lmeb_patch=count(io%LMEB_PATCH(:))
533 !-------------------------------------------------------------------------------
534 !
535 !* 2. Input file for cover types
536 ! --------------------------
537 !
538  CALL get_luout(hprogram,iluout)
539  CALL open_namelist(hprogram,ilunam)
540 !
541  CALL posnam(ilunam,'NAM_DATA_ISBA',gfound,iluout)
542 IF (gfound) READ(unit=ilunam,nml=nam_data_isba)
543 !
544  CALL close_namelist(hprogram,ilunam)
545 !
546 dtv%NTIME = ntime
547 !
548 !-------------------------------------------------------------------------------
549 IF (nvegtype_max < nvegtype) THEN
550  WRITE(iluout,*) '------------------------------------'
551  WRITE(iluout,*) 'Please update pgd_isba_par.f90 routine : '
552  WRITE(iluout,*) 'The maximum number of VEGTYPE '
553  WRITE(iluout,*) 'in the declaration of the namelist variables '
554  WRITE(iluout,*) 'must be increased to : ', nvegtype
555  WRITE(iluout,*) '------------------------------------'
556  CALL abor1_sfx('PGD_ISBA_PAR: MAXIMUM NUMBER OF VEGTYPE MUST BE INCREASED IN NAMELIST DECLARATION')
557 END IF
558 !-------------------------------------------------------------------------------
559 IF (nground_max < io%NGROUND_LAYER) THEN
560  WRITE(iluout,*) '------------------------------------'
561  WRITE(iluout,*) 'Please update pgd_isba_par.f90 routine : '
562  WRITE(iluout,*) 'The maximum number of soil layers '
563  WRITE(iluout,*) 'in the declaration of the namelist variables '
564  WRITE(iluout,*) 'must be increased to : ', io%NGROUND_LAYER
565  WRITE(iluout,*) '------------------------------------'
566  CALL abor1_sfx('PGD_ISBA_PAR: MAXIMUM NUMBER OF SOIL LAYERS MUST BE INCREASED IN NAMELIST DECLARATION')
567 END IF
568 !-------------------------------------------------------------------------------
569 !
570 IF (ntime/=36 .AND. ntime/=12 .AND. ntime/=2 .AND. ntime/=1) &
571  CALL abor1_sfx('PGD_ISBA_PAR: WRONG VALUE FOR NTIME (POSSIBLE VALUES ARE 1, 12 OR 36')
572 !
573 !-------------------------------------------------------------------------------
574 !
575 !* 3. Uniform fields are prescribed
576 ! -----------------------------
577 !
578 !-------------------------------------vegtypes-----------------------------------------
579 !
580 ALLOCATE(dtv%XPAR_VEGTYPE(kdim,nvegtype))
581  CALL ini_var_from_data(dtco, ug, u, uss, &
582  hprogram,'ARI','VEGTYPE: vegetation type','NAT',cfnam_vegtype, &
583  cftyp_vegtype,xunif_vegtype,dtv%XPAR_VEGTYPE,dtv%LDATA_VEGTYPE)
584 IF (.NOT. dtv%LDATA_VEGTYPE ) THEN
585  DO jveg = 1,nvegtype
586  CALL av_pgd(dtco, dtv%XPAR_VEGTYPE(:,jveg),s%XCOVER,dtco%XDATA_VEGTYPE(:,jveg),'NAT','ARI',s%LCOVER)
587  ENDDO
588 ENDIF
589 !
590 IF (.NOT.io%LECOCLIMAP .AND. .NOT.dtv%LDATA_VEGTYPE) THEN
591  !
592  WRITE(iluout,*) ' '
593  WRITE(iluout,*) '***********************************************************'
594  WRITE(iluout,*) '* Error in PGD field preparation of field VEGTYPE *'
595  WRITE(iluout,*) '* There is no prescribed value and no input file *'
596  WRITE(iluout,*) '* Without ECOCLIMAP, this field must be prescribed *'
597  WRITE(iluout,*) '***********************************************************'
598  WRITE(iluout,*) ' '
599  CALL abor1_sfx('PGD_ISBA_PAR: NO PRESCRIBED VALUE NOR INPUT FILE FOR VEGTYPE')
600  !
601 ELSEIF (dtv%LDATA_VEGTYPE) THEN
602  !
603  WHERE (dtv%XPAR_VEGTYPE(:,:)==xundef) dtv%XPAR_VEGTYPE(:,:)=0.
604  WHERE (dtv%XPAR_VEGTYPE(:,:)/=0.) dtv%XPAR_VEGTYPE(:,:) = dtv%XPAR_VEGTYPE(:,:) / &
605  spread(sum(dtv%XPAR_VEGTYPE(:,:),2),2,nvegtype)
606  !
607 ENDIF
608 !
609 !--------------------------------temporal fields-----------------------------------
610 !
611 ALLOCATE(dtv%LDATA_VEG(ntime*nvegtype))
612 ALLOCATE(dtv%XPAR_VEG(kdim,ntime,nvegtype))
613  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
614  hprogram,'ARI','VEG: vegetation fraction','NAT',cfnam_veg,cftyp_veg,xunif_veg, &
615  dtv%XPAR_VEG,dtv%LDATA_VEG)
616 IF (all(.NOT.dtv%LDATA_VEG)) DEALLOCATE(dtv%XPAR_VEG)
617 !
618 ALLOCATE(dtv%LDATA_LAI(ntime*nvegtype))
619 ALLOCATE(dtv%XPAR_LAI(kdim,ntime,nvegtype))
620  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
621  hprogram,'ARI','LAI: leaf area index','NAT',cfnam_lai,cftyp_lai,xunif_lai, &
622  dtv%XPAR_LAI,dtv%LDATA_LAI)
623 IF (all(.NOT.dtv%LDATA_LAI)) DEALLOCATE(dtv%XPAR_LAI)
624 !
625 ALLOCATE(dtv%LDATA_H_VEG(ntime*nvegtype))
626 ALLOCATE(dtv%XPAR_H_VEG(kdim,ntime,nvegtype))
627  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
628  hprogram,'ARI','H_VEG: vegetation height','NAT',cfnam_h_veg,cftyp_h_veg,xunif_h_veg, &
629  dtv%XPAR_H_VEG,dtv%LDATA_H_VEG)
630 IF (all(.NOT.dtv%LDATA_H_VEG)) DEALLOCATE(dtv%XPAR_H_VEG)
631 !
632 ALLOCATE(dtv%LDATA_Z0(ntime*nvegtype))
633 ALLOCATE(dtv%XPAR_Z0(kdim,ntime,nvegtype))
634  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
635  hprogram,'CDN','Z0: roughness length','NAT',cfnam_z0,cftyp_z0,xunif_z0, &
636  dtv%XPAR_Z0,dtv%LDATA_Z0)
637 IF (all(.NOT.dtv%LDATA_Z0)) DEALLOCATE(dtv%XPAR_Z0)
638 !
639 ALLOCATE(dtv%LDATA_EMIS(ntime*nvegtype))
640 ALLOCATE(dtv%XPAR_EMIS(kdim,ntime,nvegtype))
641  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
642  hprogram,'ARI','EMIS: emissivity','NAT',cfnam_emis,cftyp_emis,xunif_emis, &
643  dtv%XPAR_EMIS,dtv%LDATA_EMIS)
644 IF (all(.NOT.dtv%LDATA_EMIS)) DEALLOCATE(dtv%XPAR_EMIS)
645 !
646 IF (.NOT.io%LECOCLIMAP .AND. .NOT.(any(dtv%LDATA_VEG) .AND. any(dtv%LDATA_LAI) .AND. &
647  any(dtv%LDATA_Z0) .AND. any(dtv%LDATA_EMIS))) THEN
648  !
649  WRITE(iluout,*) ' '
650  WRITE(iluout,*) '***********************************************************'
651  WRITE(iluout,*) '* Error in PGD field preparation of temporal fields *'
652  WRITE(iluout,*) '* There is no prescribed value and no input file : *'
653  IF (all(.NOT.dtv%LDATA_VEG )) WRITE(iluout,*) '* for VEG *'
654  IF (all(.NOT.dtv%LDATA_LAI )) WRITE(iluout,*) '* for LAI *'
655  IF (all(.NOT.dtv%LDATA_Z0 )) WRITE(iluout,*) '* for Z0 *'
656  IF (all(.NOT.dtv%LDATA_EMIS)) WRITE(iluout,*) '* for EMIS *'
657  WRITE(iluout,*) '* Without ECOCLIMAP, these fields must be prescribed *'
658  WRITE(iluout,*) '***********************************************************'
659  WRITE(iluout,*) ' '
660  CALL abor1_sfx('PGD_ISBA_PAR: NO PRESCRIBED VALUE NOR INPUT FILE FOR TEMPORAL PARAMETERS')
661  !
662 ENDIF
663 !
664 ALLOCATE(dtv%LDATA_ALBNIR_VEG(ntime*nvegtype))
665 ALLOCATE(dtv%XPAR_ALBNIR_VEG(kdim,ntime,nvegtype))
666  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
667  hprogram,'ARI','ALBNIR_VEG: NIR albedo of vegetation','NAT',cfnam_albnir_veg, &
668  cftyp_albnir_veg,xunif_albnir_veg,dtv%XPAR_ALBNIR_VEG,dtv%LDATA_ALBNIR_VEG)
669 IF (all(.NOT.dtv%LDATA_ALBNIR_VEG)) DEALLOCATE(dtv%XPAR_ALBNIR_VEG)
670 !
671 ALLOCATE(dtv%LDATA_ALBVIS_VEG(ntime*nvegtype))
672 ALLOCATE(dtv%XPAR_ALBVIS_VEG(kdim,ntime,nvegtype))
673  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
674  hprogram,'ARI','ALBVIS_VEG: VIS albedo of vegetation','NAT',cfnam_albvis_veg, &
675  cftyp_albvis_veg,xunif_albvis_veg,dtv%XPAR_ALBVIS_VEG,dtv%LDATA_ALBVIS_VEG)
676 IF (all(.NOT.dtv%LDATA_ALBVIS_VEG)) DEALLOCATE(dtv%XPAR_ALBVIS_VEG)
677 !
678 ALLOCATE(dtv%LDATA_ALBUV_VEG(ntime*nvegtype))
679 ALLOCATE(dtv%XPAR_ALBUV_VEG(kdim,ntime,nvegtype))
680  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
681  hprogram,'ARI','ALBUV_VEG: UV albedo of vegetation','NAT',cfnam_albuv_veg, &
682  cftyp_albuv_veg,xunif_albuv_veg,dtv%XPAR_ALBUV_VEG,dtv%LDATA_ALBUV_VEG)
683 IF (all(.NOT.dtv%LDATA_ALBUV_VEG)) DEALLOCATE(dtv%XPAR_ALBUV_VEG)
684 !
685 ALLOCATE(dtv%LDATA_ALBNIR_SOIL(ntime*nvegtype))
686 ALLOCATE(dtv%XPAR_ALBNIR_SOIL(kdim,ntime,nvegtype))
687  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
688  hprogram,'ARI','ALBNIR_SOIL: NIR albedo of SOIL','NAT',cfnam_albnir_soil, &
689  cftyp_albnir_soil,xunif_albnir_soil,dtv%XPAR_ALBNIR_SOIL,dtv%LDATA_ALBNIR_SOIL)
690 IF (all(.NOT.dtv%LDATA_ALBNIR_SOIL)) DEALLOCATE(dtv%XPAR_ALBNIR_SOIL)
691 !
692 ALLOCATE(dtv%LDATA_ALBVIS_SOIL(ntime*nvegtype))
693 ALLOCATE(dtv%XPAR_ALBVIS_SOIL(kdim,ntime,nvegtype))
694  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
695  hprogram,'ARI','ALBVIS_SOIL: VIS albedo of SOIL','NAT',cfnam_albvis_soil, &
696  cftyp_albvis_soil,xunif_albvis_soil,dtv%XPAR_ALBVIS_SOIL,dtv%LDATA_ALBVIS_SOIL)
697 IF (all(.NOT.dtv%LDATA_ALBVIS_SOIL)) DEALLOCATE(dtv%XPAR_ALBVIS_SOIL)
698 !
699 ALLOCATE(dtv%LDATA_ALBUV_SOIL(ntime*nvegtype))
700 ALLOCATE(dtv%XPAR_ALBUV_SOIL(kdim,ntime,nvegtype))
701  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
702  hprogram,'ARI','ALBUV_SOIL: UV albedo of SOIL','NAT',cfnam_albuv_soil, &
703  cftyp_albuv_soil,xunif_albuv_soil,dtv%XPAR_ALBUV_SOIL,dtv%LDATA_ALBUV_SOIL)
704 IF (all(.NOT.dtv%LDATA_ALBUV_SOIL)) DEALLOCATE(dtv%XPAR_ALBUV_SOIL)
705 !
706 !
707 ! ------------ Begin MEB parameters ---------------------
708 !
709 ALLOCATE(dtv%LDATA_GNDLITTER(ntime*nvegtype))
710 ALLOCATE(dtv%LDATA_Z0LITTER (ntime*nvegtype))
711 dtv%LDATA_GNDLITTER(:) = .false.
712 dtv%LDATA_Z0LITTER (:) = .false.
713 !
714 IF(isize_lmeb_patch>0) THEN
715  !
716  ALLOCATE(dtv%XPAR_GNDLITTER(kdim,ntime,nvegtype))
717  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
718  hprogram,'ARI','GNDLITTER: ground litter fraction','NAT',&
719  cfnam_gndlitter,cftyp_gndlitter,xunif_gndlitter,dtv%XPAR_GNDLITTER,dtv%LDATA_GNDLITTER)
720  IF (all(.NOT.dtv%LDATA_GNDLITTER)) DEALLOCATE(dtv%XPAR_GNDLITTER)
721  !
722  ALLOCATE(dtv%XPAR_Z0LITTER(kdim,ntime,nvegtype))
723  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
724  hprogram,'CDN','Z0LITTER: ground litter roughness length','NAT', &
725  cfnam_z0litter,cftyp_z0litter,xunif_z0litter,dtv%XPAR_Z0LITTER,dtv%LDATA_Z0LITTER)
726  IF (all(.NOT.dtv%LDATA_Z0LITTER)) DEALLOCATE(dtv%XPAR_Z0LITTER)
727  !
728 ENDIF
729 ! ------------ End MEB parameters ---------------------
730 !
731 !--------------------------------depths fields-----------------------------------
732 !
733 ALLOCATE(dtv%XPAR_DG(kdim,io%NGROUND_LAYER,nvegtype))
734  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
735  hprogram,'ARI','DG: ground depth','NAT',cfnam_dg,cftyp_dg,&
736  xunif_dg,dtv%XPAR_DG,dtv%LDATA_DG(1:nvegtype))
737 IF (all(.NOT.dtv%LDATA_DG)) DEALLOCATE(dtv%XPAR_DG)
738 !
739 ALLOCATE(dtv%XPAR_ROOT_DEPTH(kdim,nvegtype))
740  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
741  hprogram,'ARI','ROOT_DEPTH: root depth','NAT',cfnam_root_depth,cftyp_root_depth,&
742  xunif_root_depth,dtv%XPAR_ROOT_DEPTH,dtv%LDATA_ROOT_DEPTH)
743 IF (all(.NOT.dtv%LDATA_ROOT_DEPTH)) DEALLOCATE(dtv%XPAR_ROOT_DEPTH)
744 ALLOCATE(dtv%XPAR_GROUND_DEPTH(kdim,nvegtype))
745  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
746  hprogram,'ARI','GROUND_DEPTH: ground depth','NAT',cfnam_ground_depth,cftyp_ground_depth,&
747  xunif_ground_depth,dtv%XPAR_GROUND_DEPTH,dtv%LDATA_GROUND_DEPTH)
748 IF (all(.NOT.dtv%LDATA_GROUND_DEPTH)) DEALLOCATE(dtv%XPAR_GROUND_DEPTH)
749 !
750 IF(io%CISBA=='DIF')THEN
751  !
752  ALLOCATE(dtv%XPAR_ROOTFRAC(kdim,io%NGROUND_LAYER,nvegtype))
753  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
754  hprogram,'ARI','ROOTFRAC: root fraction','NAT',&
755  cfnam_rootfrac,cftyp_rootfrac,xunif_rootfrac,&
756  dtv%XPAR_ROOTFRAC,dtv%LDATA_ROOTFRAC(1:nvegtype))
757  IF (all(.NOT.dtv%LDATA_ROOTFRAC)) DEALLOCATE(dtv%XPAR_ROOTFRAC)
758  !
759  ALLOCATE(dtv%XPAR_ROOT_EXTINCTION(kdim,nvegtype))
760  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
761  hprogram,'ARI','ROOT_EXTINCTION: root extinction','NAT',cfnam_root_extinction,cftyp_root_extinction,&
762  xunif_root_extinction,dtv%XPAR_ROOT_EXTINCTION,dtv%LDATA_ROOT_EXTINCTION)
763  IF (all(.NOT.dtv%LDATA_ROOT_EXTINCTION)) DEALLOCATE(dtv%XPAR_ROOT_EXTINCTION)
764  !
765  ALLOCATE(dtv%XPAR_ROOT_LIN(kdim,nvegtype))
766  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
767  hprogram,'ARI','ROOT_LIN: root linear','NAT',cfnam_root_lin,cftyp_root_lin,&
768  xunif_root_lin,dtv%XPAR_ROOT_LIN,dtv%LDATA_ROOT_LIN)
769  IF (all(.NOT.dtv%LDATA_ROOT_LIN)) DEALLOCATE(dtv%XPAR_ROOT_LIN)
770  !
771  IF (.NOT.io%LECOCLIMAP) THEN
772  IF(all(.NOT.dtv%LDATA_DG) .AND. all(.NOT.dtv%LDATA_ROOTFRAC) .AND. &
773  (all(.NOT.dtv%LDATA_ROOT_DEPTH).OR.all(.NOT.dtv%LDATA_ROOT_EXTINCTION).OR.all(.NOT.dtv%LDATA_ROOT_LIN))) THEN
774  WRITE(iluout,*) ' '
775  WRITE(iluout,*) '****************************************************************************'
776  WRITE(iluout,*) '* Without ECOCLIMAP, Error in PGD field preparation for ISBA-DIF *'
777  WRITE(iluout,*) '* There is no prescribed value and no input file *'
778  WRITE(iluout,*) '* (1) XUNIF_ROOTFRAC must be given. *'
779  WRITE(iluout,*) '* (2) Other solution, give all these fields: *'
780  WRITE(iluout,*) '* - XUNIF_ROOT_DEPTH (soil root depth) *'
781  WRITE(iluout,*) '* - XUNIF_ROOT_EXTINCTION (root extinction parameter [Jackson 1996]) *'
782  WRITE(iluout,*) '* - XUNIF_ROOT_LIN (0.05 usually; 1=uniform root distribution!!)*'
783  WRITE(iluout,*) '****************************************************************************'
784  WRITE(iluout,*) ' '
785  CALL abor1_sfx("PGD_ISBA_PAR: PROBLEM IN SOIL GRID COMPUTATION")
786  ELSEIF( .NOT.all(io%XSOILGRID(:)==xundef) .AND. &
787  (all(.NOT.dtv%LDATA_GROUND_DEPTH) .OR.all(.NOT.dtv%LDATA_ROOT_DEPTH).OR. &
788  all(.NOT.dtv%LDATA_ROOT_EXTINCTION).OR.all(.NOT.dtv%LDATA_ROOT_LIN) )) THEN
789  WRITE(iluout,*) ' '
790  WRITE(iluout,*) '****************************************************************************'
791  WRITE(iluout,*) '* Without ECOCLIMAP, Error in PGD field preparation for ISBA-DIF *'
792  WRITE(iluout,*) '* There is no prescribed value and no input file. *'
793  WRITE(iluout,*) '* When XSOILGRID is given, other field are needed : *'
794  WRITE(iluout,*) '* - XUNIF_GROUND_DEPTH (soil ground depth for moisture) *'
795  WRITE(iluout,*) '* - XUNIF_ROOT_DEPTH (soil root depth) *'
796  WRITE(iluout,*) '* - XUNIF_ROOT_LIN (0.05 usually; 1=uniform root distribution!!)*'
797  WRITE(iluout,*) '* - XUNIF_ROOT_EXTINCTION (root extinction parameter [Jackson 1996]) *'
798  WRITE(iluout,*) '****************************************************************************'
799  WRITE(iluout,*) ' '
800  CALL abor1_sfx("PGD_ISBA_PAR: PROBLEM IN SOIL GRID COMPUTATION")
801  ENDIF
802  IF(all(.NOT.dtv%LDATA_DG) .AND.all(io%XSOILGRID(:)==xundef))THEN
803  WRITE(iluout,*) ' '
804  WRITE(iluout,*) '****************************************************************************'
805  WRITE(iluout,*) '* Without ECOCLIMAP, Error in PGD field preparation for ISBA-DIF *'
806  WRITE(iluout,*) '* There is no prescribed value to compute vertical soil grid. *'
807  WRITE(iluout,*) '* 2 solutions: *'
808  WRITE(iluout,*) '* (1) Give XUNIF_DG in NAM_DATA_ISBA. *'
809  WRITE(iluout,*) '* OR *'
810  WRITE(iluout,*) '* (2) Give XSOILGRID in NAM_ISBA *'
811  WRITE(iluout,*) '****************************************************************************'
812  WRITE(iluout,*) ' '
813  CALL abor1_sfx("PGD_ISBA_PAR: PROBLEM IN SOIL GRID COMPUTATION")
814  ENDIF
815  ENDIF
816  !
817 ELSE
818  !
819  IF ( .NOT.io%LECOCLIMAP .AND. all(.NOT.dtv%LDATA_DG) .AND. &
820  (all(.NOT.dtv%LDATA_GROUND_DEPTH).OR.all(.NOT.dtv%LDATA_ROOT_DEPTH)) ) THEN
821  WRITE(iluout,*) ' '
822  WRITE(iluout,*) '****************************************************************************'
823  WRITE(iluout,*) '* Without ECOCLIMAP, Error in PGD field preparation *'
824  WRITE(iluout,*) '* There is no prescribed value and no input file *'
825  WRITE(iluout,*) '* XUNIF_DG or both XUNIF_GROUND_DEPTH and XUNIF_ROOT_DEPTH must be given. *'
826  WRITE(iluout,*) '****************************************************************************'
827  WRITE(iluout,*) ' '
828  CALL abor1_sfx("PGD_ISBA_PAR: PROBLEM IN SOIL GRID COMPUTATION")
829  ENDIF
830  !
831 ENDIF
832 !
833 ALLOCATE(dtv%XPAR_DICE(kdim,nvegtype))
834  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
835  hprogram,'ARI','DICE: ice depth for runoff','NAT',cfnam_dice,cftyp_dice,&
836  xunif_dice,dtv%XPAR_DICE,dtv%LDATA_DICE)
837 !
838 IF (.NOT.io%LECOCLIMAP.AND.all(.NOT.dtv%LDATA_DICE)) THEN
839  dtv%LDATA_DICE(:) = .false.
840  IF(io%CISBA/='DIF' .AND. (any(dtv%LDATA_DG).OR.any(dtv%LDATA_ROOT_DEPTH))) THEN
841  DO jveg = 1,nvegtype
842  IF(dtv%LDATA_DG(jveg))THEN
843  dtv%LDATA_DICE(jveg)=.true.
844  WHERE(dtv%XPAR_DG(:,2,jveg)/=xundef) dtv%XPAR_DICE(:,jveg) = max(0.2,0.8*dtv%XPAR_DG(:,2,jveg))
845  ELSEIF(dtv%LDATA_ROOT_DEPTH(jveg))THEN
846  dtv%LDATA_DICE(jveg)=.true.
847  WHERE(dtv%XPAR_ROOT_DEPTH(:,jveg)/=xundef) dtv%XPAR_DICE(:,jveg) = max(0.2,0.8*dtv%XPAR_ROOT_DEPTH(:,jveg))
848  ENDIF
849  ENDDO
850  ELSEIF (io%CISBA=='DIF') THEN
851  dtv%XPAR_DICE(:,:) = 0.0
852  dtv%LDATA_DICE(:) =.true.
853  ELSE
854  WRITE(iluout,*) ' '
855  WRITE(iluout,*) '***********************************************************'
856  WRITE(iluout,*) '* Error in PGD field preparation of field DICE *'
857  WRITE(iluout,*) '* There is no prescribed value and no input file *'
858  WRITE(iluout,*) '* Without ECOCLIMAP, this field must be prescribed *'
859  WRITE(iluout,*) '***********************************************************'
860  WRITE(iluout,*) ' '
861  CALL abor1_sfx('PGD_ISBA_PAR: NO PRESCRIBED VALUE NOR INPUT FILE FOR DICE')
862  ENDIF
863 ENDIF
864 IF (all(.NOT.dtv%LDATA_DICE)) DEALLOCATE(dtv%XPAR_DICE)
865 !
866 !---------------------classical fields---------------------------------------------
867 !
868 ALLOCATE(dtv%XPAR_RSMIN(kdim,nvegtype))
869  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
870  hprogram,'INV','RSMIN: minimal stomatal resistance','NAT',cfnam_rsmin, &
871  cftyp_rsmin,xunif_rsmin,dtv%XPAR_RSMIN,dtv%LDATA_RSMIN)
872 IF (all(.NOT.dtv%LDATA_RSMIN)) DEALLOCATE(dtv%XPAR_RSMIN)
873 !
874 ALLOCATE(dtv%XPAR_GAMMA(kdim,nvegtype))
875  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
876  hprogram,'ARI','GAMMA: gamma coefficient','NAT',cfnam_gamma, &
877  cftyp_gamma,xunif_gamma,dtv%XPAR_GAMMA,dtv%LDATA_GAMMA)
878 IF (all(.NOT.dtv%LDATA_GAMMA)) DEALLOCATE(dtv%XPAR_GAMMA)
879 !
880 ALLOCATE(dtv%XPAR_WRMAX_CF(kdim,nvegtype))
881  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
882  hprogram,'ARI','WRMAX_CF: coeff. for max WR','NAT',cfnam_wrmax_cf, &
883  cftyp_wrmax_cf,xunif_wrmax_cf,dtv%XPAR_WRMAX_CF,dtv%LDATA_WRMAX_CF)
884 IF (all(.NOT.dtv%LDATA_WRMAX_CF)) DEALLOCATE(dtv%XPAR_WRMAX_CF)
885 !
886 ALLOCATE(dtv%XPAR_RGL(kdim,nvegtype))
887  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
888  hprogram,'ARI','RGL: max SW rad. for photosynthesis','NAT',cfnam_rgl, &
889  cftyp_rgl,xunif_rgl,dtv%XPAR_RGL,dtv%LDATA_RGL)
890 IF (all(.NOT.dtv%LDATA_RGL)) DEALLOCATE(dtv%XPAR_RGL)
891 !
892 ALLOCATE(dtv%XPAR_CV(kdim,nvegtype))
893  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
894  hprogram,'INV','CV: thermal inertia for vegetation','NAT',cfnam_cv, &
895  cftyp_cv,xunif_cv,dtv%XPAR_CV,dtv%LDATA_CV)
896 IF (all(.NOT.dtv%LDATA_CV)) DEALLOCATE(dtv%XPAR_CV)
897 !
898 ALLOCATE(dtv%XPAR_Z0_O_Z0H(kdim,nvegtype))
899  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
900  hprogram,'ARI','Z0_O_Z0H: ratio of roughness lengths','NAT',cfnam_z0_o_z0h, &
901  cftyp_z0_o_z0h,xunif_z0_o_z0h,dtv%XPAR_Z0_O_Z0H,dtv%LDATA_Z0_O_Z0H)
902 IF (all(.NOT.dtv%LDATA_Z0_O_Z0H)) DEALLOCATE(dtv%XPAR_Z0_O_Z0H)
903 !
904 IF (.NOT.io%LECOCLIMAP .AND. .NOT.(any(dtv%LDATA_RSMIN).AND.any(dtv%LDATA_GAMMA).AND.any(dtv%LDATA_WRMAX_CF).AND.&
905  any(dtv%LDATA_RGL).AND.any(dtv%LDATA_CV).AND.any(dtv%LDATA_Z0_O_Z0H).AND.any(dtv%LDATA_ALBNIR_VEG).AND. &
906  any(dtv%LDATA_ALBVIS_VEG).AND.any(dtv%LDATA_ALBUV_VEG).AND.any(dtv%LDATA_ALBNIR_SOIL).AND.&
907  any(dtv%LDATA_ALBVIS_SOIL).AND.any(dtv%LDATA_ALBUV_SOIL))) THEN
908  !
909  WRITE(iluout,*) ' '
910  WRITE(iluout,*) '***********************************************************'
911  WRITE(iluout,*) '* Error in PGD field preparation of classical fields *'
912  WRITE(iluout,*) '* There is no prescribed value and no input file : *'
913  IF (all(.NOT.dtv%LDATA_RSMIN )) WRITE(iluout,*) '* for RSMIN *'
914  IF (all(.NOT.dtv%LDATA_GAMMA )) WRITE(iluout,*) '* for GAMMA *'
915  IF (all(.NOT.dtv%LDATA_WRMAX_CF )) WRITE(iluout,*) '* for WRMAX_CF *'
916  IF (all(.NOT.dtv%LDATA_RGL )) WRITE(iluout,*) '* for RGL *'
917  IF (all(.NOT.dtv%LDATA_CV )) WRITE(iluout,*) '* for CV *'
918  IF (all(.NOT.dtv%LDATA_Z0_O_Z0H )) WRITE(iluout,*) '* for Z0_O_Z0H *'
919  IF (all(.NOT.dtv%LDATA_ALBNIR_VEG )) WRITE(iluout,*) '* for ALBNIR_VEG *'
920  IF (all(.NOT.dtv%LDATA_ALBVIS_VEG )) WRITE(iluout,*) '* for ALBVIS_VEG *'
921  IF (all(.NOT.dtv%LDATA_ALBUV_VEG )) WRITE(iluout,*) '* for ALBUV_VEG *'
922  IF (all(.NOT.dtv%LDATA_ALBNIR_SOIL )) WRITE(iluout,*) '* for ALBNIR_SOIL *'
923  IF (all(.NOT.dtv%LDATA_ALBVIS_SOIL )) WRITE(iluout,*) '* for ALBVIS_SOIL *'
924  IF (all(.NOT.dtv%LDATA_ALBUV_SOIL )) WRITE(iluout,*) '* for ALBUV_SOIL *'
925  WRITE(iluout,*) '* Without ECOCLIMAP, these fields must be prescribed *'
926  WRITE(iluout,*) '***********************************************************'
927  WRITE(iluout,*) ' '
928  CALL abor1_sfx('PGD_ISBA_PAR: NO PRESCRIBED VALUE NOR INPUT FILE FOR CLASSICAL PARAMETERS')
929  !
930 ENDIF
931 !
932 !--------------------------------------AGS parameters----------------------------
933 !
934 IF (io%CPHOTO/='NON' .OR. &
935  (all(.NOT.dtv%LDATA_Z0).AND.(any(dtv%LDATA_LAI).OR.dtv%LDATA_VEGTYPE)) .OR. isize_lmeb_patch>0) THEN
936  !
937  ALLOCATE(dtv%XPAR_H_TREE(kdim,nvegtype))
938  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
939  hprogram,'ARI','H_TREE: height of trees','NAT',cfnam_h_tree, &
940  cftyp_h_tree,xunif_h_tree,dtv%XPAR_H_TREE,dtv%LDATA_H_TREE)
941  IF (all(.NOT.dtv%LDATA_H_TREE)) THEN
942  DEALLOCATE(dtv%XPAR_H_TREE)
943  ELSE
944  IF (u%LECOSG) THEN
945  dtv%LDATA_H_TREE(1:3) = .false.
946  dtv%LDATA_H_TREE(13:18) = .false.
947  dtv%LDATA_H_TREE(20) = .false.
948  ELSE
949  dtv%LDATA_H_TREE (1:3) = .false.
950  dtv%LDATA_H_TREE (7:12) = .false.
951  dtv%LDATA_H_TREE(18:19) = .false.
952  ENDIF
953  ENDIF
954  !
955 ENDIF
956 
957 IF (io%CPHOTO/='NON' .OR. isize_lmeb_patch>0) THEN
958  ALLOCATE(dtv%XPAR_BSLAI(kdim,nvegtype))
959  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
960  hprogram,'ARI','BSLAI: biomass over LAI','NAT',cfnam_bslai, &
961  cftyp_bslai,xunif_bslai,dtv%XPAR_BSLAI,dtv%LDATA_BSLAI)
962  IF (all(.NOT.dtv%LDATA_BSLAI)) DEALLOCATE(dtv%XPAR_BSLAI)
963 ENDIF
964 !
965 IF (.NOT.io%LECOCLIMAP .AND. isize_lmeb_patch>0 ) THEN
966  IF (.NOT.(any(dtv%LDATA_H_TREE).AND.any(dtv%LDATA_GNDLITTER).AND.any(dtv%LDATA_Z0LITTER) &
967  .AND. any(dtv%LDATA_BSLAI))) THEN
968  WRITE(iluout,*) ' '
969  WRITE(iluout,*) '***********************************************************'
970  WRITE(iluout,*) '* Error in PGD field preparation of MEB fields *'
971  WRITE(iluout,*) '* There is no prescribed value and no input file : *'
972  IF (all(.NOT.dtv%LDATA_GNDLITTER )) WRITE(iluout,*) '* for GNDLITTER *'
973  IF (all(.NOT.dtv%LDATA_Z0LITTER )) WRITE(iluout,*) '* for Z0LITTER *'
974  IF (all(.NOT.dtv%LDATA_H_TREE )) WRITE(iluout,*) '* for H_TREE *'
975  IF (all(.NOT.dtv%LDATA_BSLAI )) WRITE(iluout,*) '* for BSLAI *'
976  WRITE(iluout,*) '* Without ECOCLIMAP, these fields must be prescribed *'
977  WRITE(iluout,*) '***********************************************************'
978  WRITE(iluout,*) ' '
979  CALL abor1_sfx('PGD_ISBA_PAR: NO PRESCRIBED VALUE NOR INPUT FILE FOR MEB PARAMETERS')
980  ENDIF
981  !
982 ENDIF
983 !
984 ALLOCATE(dtv%LDATA_IRRIG (ntime*nvegtype))
985 ALLOCATE(dtv%LDATA_WATSUP(ntime*nvegtype))
986 dtv%LDATA_IRRIG (:) = .false.
987 dtv%LDATA_WATSUP(:) = .false.
988 !
989 IF (io%CPHOTO/='NON') THEN
990  !
991  ALLOCATE(dtv%XPAR_RE25 (kdim,nvegtype))
992  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
993  hprogram,'ARI','RE25: ecosystem respiration','NAT',cfnam_re25, &
994  cftyp_re25,xunif_re25,dtv%XPAR_RE25,dtv%LDATA_RE25)
995  IF (all(.NOT.dtv%LDATA_RE25)) DEALLOCATE(dtv%XPAR_RE25)
996  !
997  ALLOCATE(dtv%XPAR_LAIMIN(kdim,nvegtype))
998  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
999  hprogram,'ARI','LAIMIN: minimum LAI','NAT',cfnam_laimin, &
1000  cftyp_laimin,xunif_laimin,dtv%XPAR_LAIMIN,dtv%LDATA_LAIMIN)
1001  IF (all(.NOT.dtv%LDATA_LAIMIN)) DEALLOCATE(dtv%XPAR_LAIMIN)
1002  !
1003  ALLOCATE(dtv%XPAR_SEFOLD(kdim,nvegtype))
1004  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
1005  hprogram,'ARI','SEFOLD: e-folding time for senescence','NAT',cfnam_sefold, &
1006  cftyp_sefold,xunif_sefold,dtv%XPAR_SEFOLD,dtv%LDATA_SEFOLD)
1007  IF (all(.NOT.dtv%LDATA_SEFOLD)) DEALLOCATE(dtv%XPAR_SEFOLD)
1008  !
1009  ALLOCATE(dtv%XPAR_GMES(kdim,nvegtype))
1010  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
1011  hprogram,'ARI','GMES: mesophyl conductance','NAT',cfnam_gmes, &
1012  cftyp_gmes,xunif_gmes,dtv%XPAR_GMES,dtv%LDATA_GMES)
1013  IF (all(.NOT.dtv%LDATA_GMES)) DEALLOCATE(dtv%XPAR_GMES)
1014  !
1015  ALLOCATE(dtv%XPAR_GC(kdim,nvegtype))
1016  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
1017  hprogram,'ARI','GC: cuticular conductance','NAT',cfnam_gc, &
1018  cftyp_gc,xunif_gc,dtv%XPAR_GC,dtv%LDATA_GC)
1019  IF (all(.NOT.dtv%LDATA_GC)) DEALLOCATE(dtv%XPAR_GC)
1020  !
1021  IF (.NOT.io%LECOCLIMAP .AND. .NOT.(any(dtv%LDATA_H_TREE).AND.any(dtv%LDATA_RE25).AND.&
1022  any(dtv%LDATA_LAIMIN).AND.any(dtv%LDATA_BSLAI).AND.any(dtv%LDATA_SEFOLD).AND.&
1023  any(dtv%LDATA_GMES).AND.any(dtv%LDATA_GC))) THEN
1024  !
1025  WRITE(iluout,*) ' '
1026  WRITE(iluout,*) '***********************************************************'
1027  WRITE(iluout,*) '* Error in PGD field preparation of AGS fields *'
1028  WRITE(iluout,*) '* There is no prescribed value and no input file : *'
1029  IF (all(.NOT.dtv%LDATA_H_TREE )) WRITE(iluout,*) '* for H_TREE *'
1030  IF (all(.NOT.dtv%LDATA_RE25 )) WRITE(iluout,*) '* for RE25 *'
1031  IF (all(.NOT.dtv%LDATA_LAIMIN )) WRITE(iluout,*) '* for LAIMIN *'
1032  IF (all(.NOT.dtv%LDATA_BSLAI )) WRITE(iluout,*) '* for BSLAI *'
1033  IF (all(.NOT.dtv%LDATA_SEFOLD )) WRITE(iluout,*) '* for SEFOLD *'
1034  IF (all(.NOT.dtv%LDATA_GMES )) WRITE(iluout,*) '* for GMES *'
1035  IF (all(.NOT.dtv%LDATA_GC )) WRITE(iluout,*) '* for GC *'
1036  WRITE(iluout,*) '* Without ECOCLIMAP, these fields must be prescribed *'
1037  WRITE(iluout,*) '***********************************************************'
1038  WRITE(iluout,*) ' '
1039  CALL abor1_sfx('PGD_ISBA_PAR: NO PRESCRIBED VALUE NOR INPUT FILE FOR AGS PARAMETERS')
1040  !
1041  ENDIF
1042  !
1043  !--------------------------------------AGS Stress parameters----------------------------
1044  !
1045  ALLOCATE(dtv%XPAR_F2I(kdim,nvegtype))
1046  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
1047  hprogram,'ARI','F2I: critical normalized soil water content (stress)','NAT',cfnam_f2i, &
1048  cftyp_f2i,xunif_f2i,dtv%XPAR_F2I,dtv%LDATA_F2I)
1049  IF (all(.NOT.dtv%LDATA_F2I)) DEALLOCATE(dtv%XPAR_F2I)
1050  !
1051  ALLOCATE(dtv%XPAR_DMAX(kdim,nvegtype))
1052  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
1053  hprogram,'ARI','DMAX: maximum air saturation deficit','NAT',cfnam_dmax, &
1054  cftyp_dmax,xunif_dmax,dtv%XPAR_DMAX,dtv%LDATA_DMAX)
1055  IF (all(.NOT.dtv%LDATA_DMAX)) DEALLOCATE(dtv%XPAR_DMAX)
1056  !
1057  ALLOCATE(dtv%LPAR_STRESS(kdim,nvegtype))
1058  DO jveg=1,nvegtype
1059  gpar_stress = lunif_stress(jveg)
1060  IF (xstress(jveg)<1.) gpar_stress = .false.
1061  IF (xstress(jveg)==1. .AND. .NOT.gpar_stress) dtv%LDATA_STRESS=.true.
1062  dtv%LPAR_STRESS(:,jveg) = gpar_stress
1063  ENDDO
1064  IF (all(.NOT.dtv%LDATA_STRESS)) DEALLOCATE(dtv%LPAR_STRESS)
1065  !
1066  IF (.NOT.io%LECOCLIMAP .AND. .NOT.(any(dtv%LDATA_F2I).AND.any(dtv%LDATA_DMAX))) THEN
1067  !
1068  WRITE(iluout,*) ' '
1069  WRITE(iluout,*) '***********************************************************'
1070  WRITE(iluout,*) '* Error in PGD field preparation of AGS Stress fields *'
1071  WRITE(iluout,*) '* There is no prescribed value and no input file : *'
1072  IF (all(.NOT.dtv%LDATA_F2I )) WRITE(iluout,*) '* for F2I *'
1073  IF (all(.NOT.dtv%LDATA_DMAX )) WRITE(iluout,*) '* for DMAX *'
1074  WRITE(iluout,*) '* Without ECOCLIMAP, these fields must be prescribed *'
1075  WRITE(iluout,*) '***********************************************************'
1076  WRITE(iluout,*) ' '
1077  CALL abor1_sfx('PGD_ISBA_PAR: NO PRESCRIBED VALUE NOR INPUT FILE FOR AGS STRESS PARAMETERS')
1078  !
1079  ENDIF
1080  !
1081  !--------------------------------------AGS Nitrogen parameters----------------------------
1082  !
1083  IF (io%CPHOTO=='NIT' .OR. io%CPHOTO=='NCB') THEN
1084  !
1085  ALLOCATE(dtv%XPAR_CE_NITRO(kdim,nvegtype))
1086  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
1087  hprogram,'ARI','CE_NITRO: leaf area ratio sensitivity to nitrogen ccion','NAT',&
1088  cfnam_ce_nitro, cftyp_ce_nitro,xunif_ce_nitro,dtv%XPAR_CE_NITRO,dtv%LDATA_CE_NITRO)
1089  IF (all(.NOT.dtv%LDATA_CE_NITRO)) DEALLOCATE(dtv%XPAR_CE_NITRO)
1090  !
1091  ALLOCATE(dtv%XPAR_CF_NITRO(kdim,nvegtype))
1092  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
1093  hprogram,'ARI','CF_NITRO: lethal minimum value of leaf area ratio','NAT',&
1094  cfnam_cf_nitro,cftyp_cf_nitro,xunif_cf_nitro,dtv%XPAR_CF_NITRO,dtv%LDATA_CF_NITRO)
1095  IF (all(.NOT.dtv%LDATA_CF_NITRO)) DEALLOCATE(dtv%XPAR_CF_NITRO)
1096  !
1097  ALLOCATE(dtv%XPAR_CNA_NITRO(kdim,nvegtype))
1098  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
1099  hprogram,'ARI','CNA_NITRO: nitrogen ccion of active biomass','NAT',&
1100  cfnam_cna_nitro,cftyp_cna_nitro,xunif_cna_nitro,dtv%XPAR_CNA_NITRO,dtv%LDATA_CNA_NITRO)
1101  IF (all(.NOT.dtv%LDATA_CNA_NITRO)) DEALLOCATE(dtv%XPAR_CNA_NITRO)
1102  !
1103  IF (.NOT.io%LECOCLIMAP .AND. &
1104  .NOT.(any(dtv%LDATA_CE_NITRO).AND.any(dtv%LDATA_CF_NITRO).AND.any(dtv%LDATA_CNA_NITRO))) THEN
1105  !
1106  WRITE(iluout,*) ' '
1107  WRITE(iluout,*) '***********************************************************'
1108  WRITE(iluout,*) '* Error in PGD field preparation of AGS Nitrogen fields *'
1109  WRITE(iluout,*) '* There is no prescribed value and no input file : *'
1110  IF (all(.NOT.dtv%LDATA_CE_NITRO )) WRITE(iluout,*) '* for CE_NITRO *'
1111  IF (all(.NOT.dtv%LDATA_CF_NITRO )) WRITE(iluout,*) '* for CF_NITRO *'
1112  IF (all(.NOT.dtv%LDATA_CNA_NITRO )) WRITE(iluout,*) '* for CNA_NITRO *'
1113  WRITE(iluout,*) '* Without ECOCLIMAP, these fields must be prescribed *'
1114  WRITE(iluout,*) '***********************************************************'
1115  WRITE(iluout,*) ' '
1116  CALL abor1_sfx('PGD_ISBA_PAR: NO PRESCRIBED VALUE NOR INPUT FILE FOR AGS NITROGEN PARAMETERS')
1117  !
1118  ENDIF
1119  !
1120  IF (lagrip) THEN
1121  !
1122  ALLOCATE(dtv%XPAR_IRRIG(kdim,dtv%NTIME,nvegtype))
1123  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
1124  hprogram,'ARI','IRRIG: flag for irrigation','NAT',&
1125  cfnam_irrig,cftyp_irrig,xunif_irrig,dtv%XPAR_IRRIG,dtv%LDATA_IRRIG)
1126  IF (all(.NOT.dtv%LDATA_IRRIG)) DEALLOCATE(dtv%XPAR_IRRIG)
1127  !
1128  ALLOCATE(dtv%XPAR_WATSUP(kdim,dtv%NTIME,nvegtype))
1129  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
1130  hprogram,'ARI','WATSUP: water supply during irr. (mm)','NAT',&
1131  cfnam_watsup,cftyp_watsup,xunif_watsup,dtv%XPAR_WATSUP,dtv%LDATA_WATSUP)
1132  IF (all(.NOT.dtv%LDATA_WATSUP)) DEALLOCATE(dtv%XPAR_WATSUP)
1133  !
1134  ALLOCATE(dtv%XPAR_SEED_M(kdim,nvegtype))
1135  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
1136  hprogram,'MAJ','SEED_M: month of seeding','NAT',&
1137  cfnam_seed_m,cftyp_seed_m,xunif_seed_m,dtv%XPAR_SEED_M,dtv%LDATA_SEED_M)
1138  IF (all(.NOT.dtv%LDATA_SEED_M)) DEALLOCATE(dtv%XPAR_SEED_M)
1139  !
1140  ALLOCATE(dtv%XPAR_SEED_D(kdim,nvegtype))
1141  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
1142  hprogram,'MAJ','SEED_D: day of seeding','NAT',&
1143  cfnam_seed_d,cftyp_seed_d,xunif_seed_d,dtv%XPAR_SEED_D,dtv%LDATA_SEED_D)
1144  IF (all(.NOT.dtv%LDATA_SEED_D)) DEALLOCATE(dtv%XPAR_SEED_D)
1145  !
1146  ALLOCATE(dtv%XPAR_REAP_M(kdim,nvegtype))
1147  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
1148  hprogram,'MAJ','REAP_M: month of reaping','NAT',&
1149  cfnam_reap_m,cftyp_reap_m,xunif_reap_m,dtv%XPAR_REAP_M,dtv%LDATA_REAP_M)
1150  IF (all(.NOT.dtv%LDATA_REAP_M)) DEALLOCATE(dtv%XPAR_REAP_M)
1151  !
1152  ALLOCATE(dtv%XPAR_REAP_D(kdim,nvegtype))
1153  CALL ini_var_from_data(dtco, ug, u, uss, dtv%XPAR_VEGTYPE, &
1154  hprogram,'MAJ','REAP_D: day of reaping','NAT',&
1155  cfnam_reap_d,cftyp_reap_d,xunif_reap_d,dtv%XPAR_REAP_D,dtv%LDATA_REAP_D)
1156  IF (all(.NOT.dtv%LDATA_REAP_D)) DEALLOCATE(dtv%XPAR_REAP_D)
1157  !
1158  ENDIF
1159  !
1160  IF ((any(dtv%LDATA_IRRIG).OR.any(dtv%LDATA_WATSUP).OR.any(dtv%LDATA_SEED_M).OR.&
1161  any(dtv%LDATA_SEED_D).OR.any(dtv%LDATA_REAP_M).OR.any(dtv%LDATA_REAP_D)) .AND. &
1162  (all(.NOT.dtv%LDATA_IRRIG).OR.all(.NOT.dtv%LDATA_WATSUP).OR.all(.NOT.dtv%LDATA_SEED_M).OR.&
1163  all(.NOT.dtv%LDATA_SEED_D).OR.all(.NOT.dtv%LDATA_REAP_M).OR.all(.NOT.dtv%LDATA_REAP_D))) THEN
1164  !
1165  WRITE(iluout,*) ' '
1166  WRITE(iluout,*) '***********************************************************'
1167  WRITE(iluout,*) '* Error in PGD field preparation of irrigation parameters *'
1168  WRITE(iluout,*) '* There is no prescribed value and no input file : *'
1169  WRITE(iluout,*) '* Some are prescribed and some are not. If you prescribe *'
1170  WRITE(iluout,*) '* one of IRRIG, WATSUP, SEED_M, SEED_D, REAP_M and REAP_D, *'
1171  WRITE(iluout,*) '* you need to prescribe all the others. *'
1172  WRITE(iluout,*) '***********************************************************'
1173  WRITE(iluout,*) ' '
1174  CALL abor1_sfx('PGD_ISBA_PAR: MISSING PRESCRIBED VALUE OR INPUT FILE FOR IRRIGATION PARAMETERS')
1175  !
1176  ENDIF
1177  !
1178  IF (.NOT.io%LECOCLIMAP .AND. .NOT.(any(dtv%LDATA_IRRIG).AND.any(dtv%LDATA_WATSUP).AND.&
1179  any(dtv%LDATA_SEED_M).AND.any(dtv%LDATA_SEED_D).AND.any(dtv%LDATA_REAP_M).AND.&
1180  any(dtv%LDATA_REAP_D))) THEN
1181  !
1182  WRITE(iluout,*) ' '
1183  WRITE(iluout,*) '***********************************************************'
1184  WRITE(iluout,*) '* Error in PGD field preparation of irrigation fields *'
1185  WRITE(iluout,*) '* There is no prescribed value and no input file : *'
1186  IF (all(.NOT.dtv%LDATA_IRRIG )) WRITE(iluout,*) '* for IRRIG *'
1187  IF (all(.NOT.dtv%LDATA_WATSUP )) WRITE(iluout,*) '* for WATSUP *'
1188  IF (all(.NOT.dtv%LDATA_SEED_M )) WRITE(iluout,*) '* for SEED_M *'
1189  IF (all(.NOT.dtv%LDATA_SEED_D )) WRITE(iluout,*) '* for SEED_D *'
1190  IF (all(.NOT.dtv%LDATA_REAP_M )) WRITE(iluout,*) '* for REAP_M *'
1191  IF (all(.NOT.dtv%LDATA_REAP_D )) WRITE(iluout,*) '* for REAP_D *'
1192  WRITE(iluout,*) '* Without ECOCLIMAP, these fields must be prescribed *'
1193  WRITE(iluout,*) '***********************************************************'
1194  WRITE(iluout,*) ' '
1195  CALL abor1_sfx('PGD_ISBA_PAR: NO PRESCRIBED VALUE NOR INPUT FILE FOR IRRIGATION PARAMETERS')
1196  !
1197  ENDIF
1198 
1199  !
1200  ENDIF
1201  !
1202 ENDIF
1203 !
1204 !--------------------------------hydrological fields-----------------------------------
1205 !
1206 ALLOCATE(dtv%XPAR_CONDSAT(kdim,io%NGROUND_LAYER))
1207  CALL ini_var_from_data(dtco, ug, u, uss, &
1208  hprogram,'ARI','CONDSAT: ','NAT',cfnam_condsat,cftyp_condsat,&
1209  xunif_condsat,dtv%XPAR_CONDSAT,dtv%LDATA_CONDSAT)
1210 IF (.NOT.dtv%LDATA_CONDSAT) DEALLOCATE(dtv%XPAR_CONDSAT)
1211 !
1212 ALLOCATE(dtv%XPAR_MPOTSAT(kdim,io%NGROUND_LAYER))
1213  CALL ini_var_from_data(dtco, ug, u, uss, &
1214  hprogram,'ARI','MPOTSAT: ','NAT',cfnam_mpotsat,cftyp_mpotsat,&
1215  xunif_mpotsat,dtv%XPAR_MPOTSAT,dtv%LDATA_MPOTSAT)
1216 IF (.NOT.dtv%LDATA_MPOTSAT) DEALLOCATE(dtv%XPAR_MPOTSAT)
1217 !
1218 ALLOCATE(dtv%XPAR_BCOEF(kdim,io%NGROUND_LAYER))
1219  CALL ini_var_from_data(dtco, ug, u, uss, &
1220  hprogram,'ARI','BCOEF: ','NAT',cfnam_bcoef,cftyp_bcoef,&
1221  xunif_bcoef,dtv%XPAR_BCOEF,dtv%LDATA_BCOEF)
1222 IF (.NOT.dtv%LDATA_BCOEF) DEALLOCATE(dtv%XPAR_BCOEF)
1223 !
1224 ALLOCATE(dtv%XPAR_WWILT(kdim,io%NGROUND_LAYER))
1225  CALL ini_var_from_data(dtco, ug, u, uss, &
1226  hprogram,'ARI','WWILT: ','NAT',cfnam_wwilt,cftyp_wwilt,&
1227  xunif_wwilt,dtv%XPAR_WWILT,dtv%LDATA_WWILT)
1228 IF (.NOT.dtv%LDATA_WWILT) DEALLOCATE(dtv%XPAR_WWILT)
1229 !
1230 ALLOCATE(dtv%XPAR_WFC(kdim,io%NGROUND_LAYER))
1231  CALL ini_var_from_data(dtco, ug, u, uss, &
1232  hprogram,'ARI','WFC: ','NAT',cfnam_wfc,cftyp_wfc,&
1233  xunif_wfc,dtv%XPAR_WFC,dtv%LDATA_WFC)
1234 IF (.NOT.dtv%LDATA_WFC) DEALLOCATE(dtv%XPAR_WFC)
1235 !
1236 ALLOCATE(dtv%XPAR_WSAT(kdim,io%NGROUND_LAYER))
1237  CALL ini_var_from_data(dtco, ug, u, uss, &
1238  hprogram,'ARI','WSAT: ','NAT',cfnam_wsat,cftyp_wsat,&
1239  xunif_wsat,dtv%XPAR_WSAT,dtv%LDATA_WSAT)
1240 IF (.NOT.dtv%LDATA_WSAT) DEALLOCATE(dtv%XPAR_WSAT)
1241 !
1242 !----------------------------------------------------------------------------------------
1243 !
1244 IF (io%LECOCLIMAP .AND. dtv%LDATA_VEGTYPE) THEN
1245  !
1246  CALL extrapol_fields(dtco, dtv, kdim, io, s, ug, u, hprogram,iluout)
1247  !
1248 ENDIF
1249 !
1250 
1251 !----------------------------------------------------------------------------------------
1252 !
1253 IF (lhook) CALL dr_hook('PGD_ISBA_PAR',1,zhook_handle)
1254 !
1255 END SUBROUTINE pgd_isba_par
subroutine posnam(KULNAM, HDNAML, OFOUND, KLUOUT)
subroutine pgd_isba_par(DTCO, UG, U, USS, DTV, IO, S, KDIM, HPROG
Definition: pgd_isba_par.F90:7
subroutine abor1_sfx(YTEXT)
Definition: abor1_sfx.F90:7
real, parameter xundef
integer, parameter jprb
Definition: parkind1.F90:32
subroutine extrapol_fields(DTCO, DTV, KDIM, IO, S, UG, U, HPROGRAM, KLUOUT)
subroutine close_namelist(HPROGRAM, KLUNAM)
subroutine get_luout(HPROGRAM, KLUOUT)
Definition: get_luout.F90:7
intent(out) overrides sub arrays one Sort by the least significant key first sum(iindex(1:n))
logical lhook
Definition: yomhook.F90:15
subroutine open_namelist(HPROGRAM, KLUNAM, HFILE)
static int count
Definition: memory_hook.c:21