SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
read_pgd_isba_parn.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 read_pgd_isba_par_n (DTCO, U, &
7  dti, ig, i, &
8  hprogram,ksize,oland_use,hdir)
9 ! ################################################
10 !
11 !!**** *READ_PGD_ISBA_PAR_n* - reads ISBA physiographic fields
12 !!
13 !! PURPOSE
14 !! -------
15 !!
16 !!** METHOD
17 !! ------
18 !!
19 !! EXTERNAL
20 !! --------
21 !!
22 !!
23 !! IMPLICIT ARGUMENTS
24 !! ------------------
25 !!
26 !! REFERENCE
27 !! ---------
28 !!
29 !!
30 !! AUTHOR
31 !! ------
32 !! V. Masson *Meteo France*
33 !!
34 !! MODIFICATIONS
35 !! -------------
36 !! Original 01/2003
37 !! P. Le Moigne 12/2004 : add type of photosynthesis
38 !! P. Samuelsson 02/2012 : MEB
39 !! B. Decharme 01/16 : Bug when vegetation veg, z0 and emis are imposed whith interactive vegetation
40 !-------------------------------------------------------------------------------
41 !
42 !* 0. DECLARATIONS
43 ! ------------
44 !
45 !
46 !
47 !
48 !
50 USE modd_surf_atm_n, ONLY : surf_atm_t
51 !
52 USE modd_data_isba_n, ONLY : data_isba_t
53 USE modd_isba_grid_n, ONLY : isba_grid_t
54 USE modd_isba_n, ONLY : isba_t
55 !
56 USE modd_assim, ONLY : lread_all, lassim
57 !
58 USE modd_data_cover_par, ONLY : nvegtype
59 USE modd_prep, ONLY : linterp
60 !
61 !
62 USE modi_get_luout
64 USE modi_hor_interpol
65 USE modi_read_surf_isba_par_n
66 !
67 USE yomhook ,ONLY : lhook, dr_hook
68 USE parkind1 ,ONLY : jprb
69 !
70 IMPLICIT NONE
71 !
72 !* 0.1 Declarations of arguments
73 ! -------------------------
74 !
75 !
76 !
77 TYPE(data_cover_t), INTENT(INOUT) :: dtco
78 TYPE(surf_atm_t), INTENT(INOUT) :: u
79 !
80 TYPE(data_isba_t), INTENT(INOUT) :: dti
81 TYPE(isba_grid_t), INTENT(INOUT) :: ig
82 TYPE(isba_t), INTENT(INOUT) :: i
83 !
84  CHARACTER(LEN=6), INTENT(IN) :: hprogram ! program calling
85 INTEGER, INTENT(IN) :: ksize
86 LOGICAL, INTENT(IN) :: oland_use !
87  CHARACTER(LEN=1),OPTIONAL,INTENT(IN) :: hdir ! type of field :
88 ! ! 'H' : field with
89 ! ! horizontal spatial dim.
90 ! ! '-' : no horizontal dim.
91 !
92 !* 0.2 Declarations of local variables
93 ! -------------------------------
94 !
95 REAL, DIMENSION(KSIZE,NVEGTYPE) :: zfield
96 REAL, DIMENSION(:,:), ALLOCATABLE :: zwork
97 INTEGER :: iluout
98 INTEGER :: itime
99 INTEGER :: iresp ! IRESP : return-code if a problem appears
100  CHARACTER(LEN=12) :: yrecfm ! Name of the article to be read
101  CHARACTER(LEN=16) :: yrecfm2
102  CHARACTER(LEN=100):: ycomment ! Comment string
103  CHARACTER(LEN=1) :: ydir
104 INTEGER :: jtime ! loop index
105 INTEGER :: jlayer ! loop index
106 INTEGER :: jpatch ! loop index
107 INTEGER :: iversion ! surface version
108 INTEGER :: ibugfix
109 INTEGER :: isize_lmeb_patch
110 !
111 LOGICAL :: gread_all
112 !
113 REAL(KIND=JPRB) :: zhook_handle
114 !
115 !-------------------------------------------------------------------------------
116 !
117 IF (lhook) CALL dr_hook('READ_PGD_ISBA_PAR_N',0,zhook_handle)
118 !
119  CALL get_luout(hprogram,iluout)
120 !
121 ydir = 'H'
122 IF (present(hdir)) ydir = hdir
123 !
124 IF (lassim) THEN
125  gread_all = lread_all
126  lread_all = .true.
127 ENDIF
128 !
129 yrecfm='VERSION'
130  CALL read_surf(&
131  hprogram,yrecfm,iversion,iresp)
132 WRITE(iluout,*) 'read version ',iversion
133 !
134 yrecfm='BUG'
135  CALL read_surf(&
136  hprogram,yrecfm,ibugfix,iresp)
137 !
138 isize_lmeb_patch=count(i%LMEB_PATCH(:))
139 !
140 dti%LDATA_MIXPAR = .false.
141 !
142 IF (iversion<7 .AND. .NOT.i%LECOCLIMAP) THEN
143  !
144  dti%LDATA_VEGTYPE=.true.
145  dti%LDATA_VEG=.true.
146  dti%LDATA_LAI=.true.
147  dti%LDATA_Z0=.true.
148  dti%LDATA_EMIS=.true.
149  dti%LDATA_RSMIN=.true.
150  dti%LDATA_GAMMA=.true.
151  dti%LDATA_WRMAX_CF=.true.
152  dti%LDATA_RGL=.true.
153  dti%LDATA_CV=.true.
154  dti%LDATA_Z0_O_Z0H=.true.
155  dti%LDATA_DG=.true.
156  dti%LDATA_ROOTFRAC=.true.
157  !
158  dti%LDATA_DICE=.false.
159  dti%LDATA_GROUND_DEPTH=.false.
160  dti%LDATA_ROOT_DEPTH=.false.
161  dti%LDATA_ROOT_LIN=.false.
162  dti%LDATA_ROOT_EXTINCTION=.false.
163  !
164  dti%LDATA_ALBNIR_VEG=.true.
165  dti%LDATA_ALBVIS_VEG=.true.
166  dti%LDATA_ALBUV_VEG=.true.
167  dti%LDATA_ALBNIR_SOIL=.true.
168  dti%LDATA_ALBVIS_SOIL=.true.
169  dti%LDATA_ALBUV_SOIL=.true.
170  dti%LDATA_GMES=.true.
171  dti%LDATA_BSLAI=.true.
172  dti%LDATA_LAIMIN=.true.
173  dti%LDATA_SEFOLD=.true.
174  dti%LDATA_GC=.true.
175  dti%LDATA_DMAX=.true.
176  dti%LDATA_F2I=.true.
177  dti%LDATA_STRESS=.true.
178  dti%LDATA_H_TREE=.true.
179  dti%LDATA_RE25=.true.
180  dti%LDATA_CE_NITRO=.true.
181  dti%LDATA_CF_NITRO=.true.
182  dti%LDATA_CNA_NITRO=.true.
183  !
184  dti%LDATA_IRRIG=.false.
185  dti%LDATA_WATSUP=.false.
186  !
187 ENDIF
188 !
189 IF ((iversion<8.AND..NOT.i%LECOCLIMAP).OR.isize_lmeb_patch==0.0) THEN
190  !
191  dti%LDATA_GNDLITTER=.false.
192  dti%LDATA_RGLGV=.false.
193  dti%LDATA_GAMMAGV=.false.
194  dti%LDATA_RSMINGV=.false.
195  dti%LDATA_ROOTFRACGV=.false.
196  dti%LDATA_WRMAX_CFGV=.false.
197  dti%LDATA_LAIGV=.false.
198  dti%LDATA_Z0LITTER=.false.
199  dti%LDATA_H_VEG=.false.
200  dti%LDATA_ROOT_DEPTHGV=.false.
201  dti%LDATA_ROOT_EXTINCTIONGV=.false.
202  !
203 ENDIF
204 !
205 dti%LIMP_VEG=.false.
206 dti%LIMP_Z0=.false.
207 dti%LIMP_EMIS=.false.
208 !
209 IF (.NOT.oland_use) THEN
210  !
211  IF (iversion>=7) THEN
212  !
213  yrecfm='L_VEGTYPE'
214  ycomment=yrecfm
215  CALL read_surf(&
216  hprogram,yrecfm,dti%LDATA_VEGTYPE,iresp,hcomment=ycomment)
217  IF (dti%LDATA_VEGTYPE) dti%LDATA_MIXPAR = .true.
218  !
219  yrecfm='L_VEG'
220  ycomment=yrecfm
221  CALL read_surf(&
222  hprogram,yrecfm,dti%LDATA_VEG,iresp,hcomment=ycomment)
223  IF (dti%LDATA_VEG) THEN
224  dti%LDATA_MIXPAR = .true.
225  dti%LIMP_VEG = .true.
226  ENDIF
227  yrecfm='L_LAI'
228  ycomment=yrecfm
229  CALL read_surf(&
230  hprogram,yrecfm,dti%LDATA_LAI,iresp,hcomment=ycomment)
231  IF (dti%LDATA_LAI) dti%LDATA_MIXPAR = .true.
232  yrecfm='L_Z0'
233  ycomment=yrecfm
234  CALL read_surf(&
235  hprogram,yrecfm,dti%LDATA_Z0,iresp,hcomment=ycomment)
236  IF (dti%LDATA_Z0) THEN
237  dti%LDATA_MIXPAR = .true.
238  dti%LIMP_Z0 = .true.
239  ENDIF
240  yrecfm='L_EMIS'
241  ycomment=yrecfm
242  CALL read_surf(&
243  hprogram,yrecfm,dti%LDATA_EMIS,iresp,hcomment=ycomment)
244  IF (dti%LDATA_EMIS) THEN
245  dti%LDATA_MIXPAR = .true.
246  dti%LIMP_EMIS = .true.
247  ENDIF
248  !
249  yrecfm='L_RSMIN'
250  ycomment=yrecfm
251  CALL read_surf(&
252  hprogram,yrecfm,dti%LDATA_RSMIN,iresp,hcomment=ycomment)
253  IF (dti%LDATA_RSMIN) dti%LDATA_MIXPAR = .true.
254  yrecfm='L_GAMMA'
255  ycomment=yrecfm
256  CALL read_surf(&
257  hprogram,yrecfm,dti%LDATA_GAMMA,iresp,hcomment=ycomment)
258  IF (dti%LDATA_GAMMA) dti%LDATA_MIXPAR = .true.
259  yrecfm='L_WRMAX_CF'
260  ycomment=yrecfm
261  CALL read_surf(&
262  hprogram,yrecfm,dti%LDATA_WRMAX_CF,iresp,hcomment=ycomment)
263  IF (dti%LDATA_WRMAX_CF) dti%LDATA_MIXPAR = .true.
264  yrecfm='L_RGL'
265  ycomment=yrecfm
266  CALL read_surf(&
267  hprogram,yrecfm,dti%LDATA_RGL,iresp,hcomment=ycomment)
268  IF (dti%LDATA_RGL) dti%LDATA_MIXPAR = .true.
269  yrecfm='L_CV'
270  ycomment=yrecfm
271  CALL read_surf(&
272  hprogram,yrecfm,dti%LDATA_CV,iresp,hcomment=ycomment)
273  IF (dti%LDATA_CV) dti%LDATA_MIXPAR = .true.
274  yrecfm='L_Z0_O_Z0H'
275  ycomment=yrecfm
276  CALL read_surf(&
277  hprogram,yrecfm,dti%LDATA_Z0_O_Z0H,iresp,hcomment=ycomment)
278  IF (dti%LDATA_Z0_O_Z0H) dti%LDATA_MIXPAR = .true.
279  yrecfm='L_DG'
280  ycomment=yrecfm
281  CALL read_surf(&
282  hprogram,yrecfm,dti%LDATA_DG,iresp,hcomment=ycomment)
283  IF (dti%LDATA_DG) dti%LDATA_MIXPAR = .true.
284  yrecfm='L_ROOTFRAC'
285  ycomment=yrecfm
286  CALL read_surf(&
287  hprogram,yrecfm,dti%LDATA_ROOTFRAC,iresp,hcomment=ycomment)
288  IF (dti%LDATA_ROOTFRAC) dti%LDATA_MIXPAR = .true.
289  yrecfm='L_DICE'
290  ycomment=yrecfm
291  CALL read_surf(&
292  hprogram,yrecfm,dti%LDATA_DICE,iresp,hcomment=ycomment)
293  IF (dti%LDATA_DICE) dti%LDATA_MIXPAR = .true.
294  !
295  IF ( (iversion==7 .AND. ibugfix>=2) .OR. iversion>7 ) THEN
296  yrecfm2='L_GROUND_DPT'
297  ycomment=yrecfm
298  CALL read_surf(&
299  hprogram,yrecfm2,dti%LDATA_GROUND_DEPTH,iresp,hcomment=ycomment)
300  IF (dti%LDATA_GROUND_DEPTH) dti%LDATA_MIXPAR = .true.
301  yrecfm='L_ROOT_DEPTH'
302  ycomment=yrecfm
303  CALL read_surf(&
304  hprogram,yrecfm,dti%LDATA_ROOT_DEPTH,iresp,hcomment=ycomment)
305  IF (dti%LDATA_ROOT_DEPTH) dti%LDATA_MIXPAR = .true.
306  yrecfm='L_ROOT_EXT'
307  ycomment=yrecfm
308  CALL read_surf(&
309  hprogram,yrecfm,dti%LDATA_ROOT_EXTINCTION,iresp,hcomment=ycomment)
310  IF (dti%LDATA_ROOT_EXTINCTION) dti%LDATA_MIXPAR = .true.
311  yrecfm='L_ROOT_LIN'
312  ycomment=yrecfm
313  CALL read_surf(&
314  hprogram,yrecfm,dti%LDATA_ROOT_LIN,iresp,hcomment=ycomment)
315  IF (dti%LDATA_ROOT_LIN) dti%LDATA_MIXPAR = .true.
316  ELSE
317  dti%LDATA_GROUND_DEPTH = .false.
318  dti%LDATA_ROOT_DEPTH = .false.
319  dti%LDATA_ROOT_EXTINCTION = .false.
320  dti%LDATA_ROOT_LIN = .false.
321  ENDIF
322  !
323  yrecfm='L_ALBNIR_VEG'
324  ycomment=yrecfm
325  CALL read_surf(&
326  hprogram,yrecfm,dti%LDATA_ALBNIR_VEG,iresp,hcomment=ycomment)
327  IF (dti%LDATA_ALBNIR_VEG) dti%LDATA_MIXPAR = .true.
328  yrecfm='L_ALBVIS_VEG'
329  ycomment=yrecfm
330  CALL read_surf(&
331  hprogram,yrecfm,dti%LDATA_ALBVIS_VEG,iresp,hcomment=ycomment)
332  IF (dti%LDATA_ALBVIS_VEG) dti%LDATA_MIXPAR = .true.
333  yrecfm='L_ALBUV_VEG'
334  ycomment=yrecfm
335  CALL read_surf(&
336  hprogram,yrecfm,dti%LDATA_ALBUV_VEG,iresp,hcomment=ycomment)
337  IF (dti%LDATA_ALBUV_VEG) dti%LDATA_MIXPAR = .true.
338  yrecfm='L_ALBNIR_SOI'
339  ycomment=yrecfm
340  CALL read_surf(&
341  hprogram,yrecfm,dti%LDATA_ALBNIR_SOIL,iresp,hcomment=ycomment)
342  IF (dti%LDATA_ALBNIR_SOIL) dti%LDATA_MIXPAR = .true.
343  yrecfm='L_ALBVIS_SOI'
344  ycomment=yrecfm
345  CALL read_surf(&
346  hprogram,yrecfm,dti%LDATA_ALBVIS_SOIL,iresp,hcomment=ycomment)
347  IF (dti%LDATA_ALBVIS_SOIL) dti%LDATA_MIXPAR = .true.
348  yrecfm='L_ALBUV_SOI'
349  ycomment=yrecfm
350  CALL read_surf(&
351  hprogram,yrecfm,dti%LDATA_ALBUV_SOIL,iresp,hcomment=ycomment)
352  IF (dti%LDATA_ALBUV_SOIL) dti%LDATA_MIXPAR = .true.
353  yrecfm='L_GMES'
354  ycomment=yrecfm
355  CALL read_surf(&
356  hprogram,yrecfm,dti%LDATA_GMES,iresp,hcomment=ycomment)
357  IF (dti%LDATA_GMES) dti%LDATA_MIXPAR = .true.
358  yrecfm='L_BSLAI'
359  ycomment=yrecfm
360  CALL read_surf(&
361  hprogram,yrecfm,dti%LDATA_BSLAI,iresp,hcomment=ycomment)
362  IF (dti%LDATA_BSLAI) dti%LDATA_MIXPAR = .true.
363  yrecfm='L_LAIMIN'
364  ycomment=yrecfm
365  CALL read_surf(&
366  hprogram,yrecfm,dti%LDATA_LAIMIN,iresp,hcomment=ycomment)
367  IF (dti%LDATA_LAIMIN) dti%LDATA_MIXPAR = .true.
368  yrecfm='L_SEFOLD'
369  ycomment=yrecfm
370  CALL read_surf(&
371  hprogram,yrecfm,dti%LDATA_SEFOLD,iresp,hcomment=ycomment)
372  IF (dti%LDATA_SEFOLD) dti%LDATA_MIXPAR = .true.
373  yrecfm='L_GC'
374  ycomment=yrecfm
375  CALL read_surf(&
376  hprogram,yrecfm,dti%LDATA_GC,iresp,hcomment=ycomment)
377  IF (dti%LDATA_GC) dti%LDATA_MIXPAR = .true.
378  yrecfm='L_DMAX'
379  ycomment=yrecfm
380  CALL read_surf(&
381  hprogram,yrecfm,dti%LDATA_DMAX,iresp,hcomment=ycomment)
382  IF (dti%LDATA_DMAX) dti%LDATA_MIXPAR = .true.
383  yrecfm='L_F2I'
384  ycomment=yrecfm
385  CALL read_surf(&
386  hprogram,yrecfm,dti%LDATA_F2I,iresp,hcomment=ycomment)
387  IF (dti%LDATA_F2I) dti%LDATA_MIXPAR = .true.
388  yrecfm='L_STRESS'
389  ycomment=yrecfm
390  CALL read_surf(&
391  hprogram,yrecfm,dti%LDATA_STRESS,iresp,hcomment=ycomment)
392  IF (dti%LDATA_STRESS) dti%LDATA_MIXPAR = .true.
393  yrecfm='L_H_TREE'
394  ycomment=yrecfm
395  CALL read_surf(&
396  hprogram,yrecfm,dti%LDATA_H_TREE,iresp,hcomment=ycomment)
397  IF (dti%LDATA_H_TREE) dti%LDATA_MIXPAR = .true.
398  yrecfm='L_RE25'
399  ycomment=yrecfm
400  CALL read_surf(&
401  hprogram,yrecfm,dti%LDATA_RE25,iresp,hcomment=ycomment)
402  IF (dti%LDATA_RE25) dti%LDATA_MIXPAR = .true.
403  yrecfm='L_CE_NITRO'
404  ycomment=yrecfm
405  CALL read_surf(&
406  hprogram,yrecfm,dti%LDATA_CE_NITRO,iresp,hcomment=ycomment)
407  IF (dti%LDATA_CE_NITRO) dti%LDATA_MIXPAR = .true.
408  yrecfm='L_CF_NITRO'
409  ycomment=yrecfm
410  CALL read_surf(&
411  hprogram,yrecfm,dti%LDATA_CF_NITRO,iresp,hcomment=ycomment)
412  IF (dti%LDATA_CF_NITRO) dti%LDATA_MIXPAR = .true.
413  yrecfm='L_CNA_NITRO'
414  ycomment=yrecfm
415  CALL read_surf(&
416  hprogram,yrecfm,dti%LDATA_CNA_NITRO,iresp,hcomment=ycomment)
417  IF (dti%LDATA_CNA_NITRO) dti%LDATA_MIXPAR = .true.
418  yrecfm='L_IRRIG'
419  ycomment=yrecfm
420  CALL read_surf(&
421  hprogram,yrecfm,dti%LDATA_IRRIG,iresp,hcomment=ycomment)
422  IF (dti%LDATA_IRRIG) dti%LDATA_MIXPAR = .true.
423  yrecfm='L_WATSUP'
424  ycomment=yrecfm
425  CALL read_surf(&
426  hprogram,yrecfm,dti%LDATA_WATSUP,iresp,hcomment=ycomment)
427  IF (dti%LDATA_WATSUP) dti%LDATA_MIXPAR = .true.
428  !
429  ENDIF
430  !
431  IF (iversion>=8.AND.isize_lmeb_patch>0) THEN
432  !
433  yrecfm='L_LAIGV'
434  ycomment=yrecfm
435  CALL read_surf(&
436  hprogram,yrecfm,dti%LDATA_LAIGV,iresp,hcomment=ycomment)
437  IF (dti%LDATA_LAIGV) dti%LDATA_MIXPAR = .true.
438  yrecfm='L_H_VEG'
439  ycomment=yrecfm
440  CALL read_surf(&
441  hprogram,yrecfm,dti%LDATA_H_VEG,iresp,hcomment=ycomment)
442  IF (dti%LDATA_H_VEG) dti%LDATA_MIXPAR = .true.
443  yrecfm='L_Z0LITTER'
444  ycomment=yrecfm
445  CALL read_surf(&
446  hprogram,yrecfm,dti%LDATA_Z0LITTER,iresp,hcomment=ycomment)
447  IF (dti%LDATA_Z0LITTER) dti%LDATA_MIXPAR = .true.
448  yrecfm='L_GNDLITTER'
449  ycomment=yrecfm
450  CALL read_surf(&
451  hprogram,yrecfm,dti%LDATA_GNDLITTER,iresp,hcomment=ycomment)
452  IF (dti%LDATA_GNDLITTER) dti%LDATA_MIXPAR = .true.
453  yrecfm='L_RSMINGV'
454  ycomment=yrecfm
455  CALL read_surf(&
456  hprogram,yrecfm,dti%LDATA_RSMINGV,iresp,hcomment=ycomment)
457  IF (dti%LDATA_RSMINGV) dti%LDATA_MIXPAR = .true.
458  yrecfm='L_GAMMAGV'
459  ycomment=yrecfm
460  CALL read_surf(&
461  hprogram,yrecfm,dti%LDATA_GAMMAGV,iresp,hcomment=ycomment)
462  IF (dti%LDATA_GAMMAGV) dti%LDATA_MIXPAR = .true.
463  yrecfm='L_WRMAX_CFGV'
464  ycomment=yrecfm
465  CALL read_surf(&
466  hprogram,yrecfm,dti%LDATA_WRMAX_CFGV,iresp,hcomment=ycomment)
467  IF (dti%LDATA_WRMAX_CFGV) dti%LDATA_MIXPAR = .true.
468  yrecfm='L_RGLGV'
469  ycomment=yrecfm
470  CALL read_surf(&
471  hprogram,yrecfm,dti%LDATA_RGLGV,iresp,hcomment=ycomment)
472  yrecfm='L_RTFRACGV'
473  ycomment=yrecfm
474  CALL read_surf(&
475  hprogram,yrecfm,dti%LDATA_ROOTFRACGV,iresp,hcomment=ycomment)
476  IF (dti%LDATA_ROOTFRACGV) dti%LDATA_MIXPAR = .true.
477  yrecfm='L_RT_DEPTHGV'
478  ycomment=yrecfm
479  CALL read_surf(&
480  hprogram,yrecfm,dti%LDATA_ROOT_DEPTHGV,iresp,hcomment=ycomment)
481  IF (dti%LDATA_ROOT_DEPTHGV) dti%LDATA_MIXPAR = .true.
482  yrecfm='L_RT_EXTGV'
483  ycomment=yrecfm
484  CALL read_surf(&
485  hprogram,yrecfm,dti%LDATA_ROOT_EXTINCTIONGV,iresp,hcomment=ycomment)
486  IF (dti%LDATA_ROOT_EXTINCTIONGV) dti%LDATA_MIXPAR = .true.
487  !
488  ELSE
489  !
490  dti%LDATA_GNDLITTER=.false.
491  dti%LDATA_RGLGV=.false.
492  dti%LDATA_GAMMAGV=.false.
493  dti%LDATA_RSMINGV=.false.
494  dti%LDATA_ROOTFRACGV=.false.
495  dti%LDATA_WRMAX_CFGV=.false.
496  dti%LDATA_LAIGV=.false.
497  dti%LDATA_Z0LITTER=.false.
498  dti%LDATA_H_VEG=.false.
499  dti%LDATA_ROOT_DEPTHGV=.false.
500  dti%LDATA_ROOT_EXTINCTIONGV=.false.
501  !
502  ENDIF
503  !
504  IF (ALLOCATED(linterp)) linterp(:) = .true.
505  !
506  IF (dti%LDATA_VEGTYPE) THEN
507  yrecfm='D_VEGTYPE'
508  CALL read_surf(&
509  hprogram,yrecfm,zfield(:,:),iresp,hcomment=ycomment,hdir=ydir)
510  ALLOCATE(dti%XPAR_VEGTYPE (ig%NDIM,nvegtype))
511  IF (ig%NDIM/=ksize) THEN
512  CALL hor_interpol(dtco, u, &
513  iluout,zfield,dti%XPAR_VEGTYPE)
514  ELSE
515  dti%XPAR_VEGTYPE(:,:) = zfield(:,:)
516  ENDIF
517  ENDIF
518 !
519  IF (dti%LDATA_LAI .OR. dti%LDATA_VEG .OR. dti%LDATA_Z0 .OR. dti%LDATA_EMIS) THEN
520  yrecfm='NDATA_TIME'
521  CALL read_surf(&
522  hprogram,yrecfm,dti%NTIME,iresp,hcomment=ycomment)
523  itime = dti%NTIME
524  ELSE
525  dti%NTIME = 1
526  ENDIF
527 !
528  IF (dti%LDATA_VEG) THEN
529  ALLOCATE(dti%XPAR_VEG(ig%NDIM,dti%NTIME,nvegtype))
530  DO jtime=1,itime
531  WRITE(yrecfm,fmt='(A7,I2.2)') 'D_VEG_T',jtime
532  CALL read_surf_isba_par_n(dtco, u, i, &
533  hprogram,yrecfm,iluout,ksize,dti%XPAR_VEG(:,jtime,:),iresp,iversion,&
534  hcomment=ycomment,hdir=ydir)
535  END DO
536  ENDIF
537 !
538  IF (dti%LDATA_LAI) THEN
539  ALLOCATE(dti%XPAR_LAI(ig%NDIM,dti%NTIME,nvegtype))
540  DO jtime=1,itime
541  WRITE(yrecfm,fmt='(A7,I2.2)') 'D_LAI_T',jtime
542  CALL read_surf_isba_par_n(dtco, u, i, &
543  hprogram,yrecfm,iluout,ksize,dti%XPAR_LAI(:,jtime,:),iresp,iversion,&
544  hcomment=ycomment,hdir=ydir)
545  END DO
546  ENDIF
547 !
548  IF (dti%LDATA_LAIGV) THEN
549  ALLOCATE(dti%XPAR_LAIGV(ig%NDIM,dti%NTIME,nvegtype))
550  DO jtime=1,itime
551  WRITE(yrecfm,fmt='(A9,I2.2)') 'D_LAIGV_T',jtime
552  CALL read_surf_isba_par_n(dtco, u, i, &
553  hprogram,yrecfm,iluout,ksize,dti%XPAR_LAIGV(:,jtime,:),iresp,iversion,&
554  hcomment=ycomment,hdir=ydir)
555  END DO
556  ENDIF
557 !
558  IF (dti%LDATA_H_VEG) THEN
559  ALLOCATE(dti%XPAR_H_VEG(ig%NDIM,dti%NTIME,nvegtype))
560  DO jtime=1,itime
561  WRITE(yrecfm,fmt='(A9,I2.2)') 'D_H_VEG_T',jtime
562  CALL read_surf_isba_par_n(dtco, u, i, &
563  hprogram,yrecfm,iluout,ksize,dti%XPAR_H_VEG(:,jtime,:),iresp,iversion,&
564  hcomment=ycomment,hdir=ydir)
565  END DO
566  ENDIF
567 !
568  IF (dti%LDATA_GNDLITTER) THEN
569  ALLOCATE(dti%XPAR_GNDLITTER(ig%NDIM,dti%NTIME,nvegtype))
570  DO jtime=1,itime
571  WRITE(yrecfm,fmt='(A7,I2.2)') 'D_GNDLITTER',jtime
572  CALL read_surf_isba_par_n(dtco, u, i, &
573  hprogram,yrecfm,iluout,ksize,dti%XPAR_GNDLITTER(:,jtime,:),iresp,iversion,&
574  hcomment=ycomment,hdir=ydir)
575  END DO
576  ENDIF
577 !
578  IF (dti%LDATA_Z0) THEN
579  ALLOCATE(dti%XPAR_Z0 (ig%NDIM,dti%NTIME,nvegtype))
580  DO jtime=1,itime
581  WRITE(yrecfm,fmt='(A6,I2.2)') 'D_Z0_T',jtime
582  CALL read_surf_isba_par_n(dtco, u, i, &
583  hprogram,yrecfm,iluout,ksize,dti%XPAR_Z0(:,jtime,:),iresp,iversion,&
584  hcomment=ycomment,hdir=ydir)
585  END DO
586  ENDIF
587 !
588  IF (dti%LDATA_Z0LITTER) THEN
589  ALLOCATE(dti%XPAR_Z0LITTER (ig%NDIM,dti%NTIME,nvegtype))
590  DO jtime=1,itime
591  WRITE(yrecfm,fmt='(A8,I2.2)') 'D_Z0LITTER_T',jtime
592  CALL read_surf_isba_par_n(dtco, u, i, &
593  hprogram,yrecfm,iluout,ksize,dti%XPAR_Z0LITTER(:,jtime,:),iresp,iversion,&
594  hcomment=ycomment,hdir=ydir)
595  END DO
596  ENDIF
597 !
598  IF (dti%LDATA_EMIS) THEN
599  ALLOCATE(dti%XPAR_EMIS (ig%NDIM,dti%NTIME,nvegtype))
600  DO jtime=1,itime
601  WRITE(yrecfm,fmt='(A8,I2.2)') 'D_EMIS_T',jtime
602  CALL read_surf_isba_par_n(dtco, u, i, &
603  hprogram,yrecfm,iluout,ksize,dti%XPAR_EMIS(:,jtime,:),iresp,iversion,&
604  hcomment=ycomment,hdir=ydir)
605  END DO
606  ENDIF
607 !
608  IF (dti%LDATA_RSMIN) THEN
609  ALLOCATE(dti%XPAR_RSMIN (ig%NDIM,nvegtype))
610  yrecfm='D_RSMIN'
611  CALL read_surf_isba_par_n(dtco, u, i, &
612  hprogram,yrecfm,iluout,ksize,dti%XPAR_RSMIN(:,:),iresp,iversion,&
613  hcomment=ycomment,hdir=ydir)
614  ENDIF
615 !
616  IF (dti%LDATA_RSMINGV) THEN
617  ALLOCATE(dti%XPAR_RSMINGV (ig%NDIM,nvegtype))
618  yrecfm='D_RSMINGV'
619  CALL read_surf_isba_par_n(dtco, u, i, &
620  hprogram,yrecfm,iluout,ksize,dti%XPAR_RSMINGV(:,:),iresp,iversion,&
621  hcomment=ycomment,hdir=ydir)
622  ENDIF
623 !
624  IF (dti%LDATA_GAMMA) THEN
625  ALLOCATE(dti%XPAR_GAMMA (ig%NDIM,nvegtype))
626  yrecfm='D_GAMMA'
627  CALL read_surf_isba_par_n(dtco, u, i, &
628  hprogram,yrecfm,iluout,ksize,dti%XPAR_GAMMA(:,:),iresp,iversion,&
629  hcomment=ycomment,hdir=ydir)
630  ENDIF
631 !
632  IF (dti%LDATA_GAMMAGV) THEN
633  ALLOCATE(dti%XPAR_GAMMAGV (ig%NDIM,nvegtype))
634  yrecfm='D_GAMMAGV'
635  CALL read_surf_isba_par_n(dtco, u, i, &
636  hprogram,yrecfm,iluout,ksize,dti%XPAR_GAMMAGV(:,:),iresp,iversion,&
637  hcomment=ycomment,hdir=ydir)
638  ENDIF
639 !
640  IF (dti%LDATA_WRMAX_CF) THEN
641  ALLOCATE(dti%XPAR_WRMAX_CF (ig%NDIM,nvegtype))
642  yrecfm='D_WRMAX_CF'
643  CALL read_surf_isba_par_n(dtco, u, i, &
644  hprogram,yrecfm,iluout,ksize,dti%XPAR_WRMAX_CF(:,:),iresp,iversion,&
645  hcomment=ycomment,hdir=ydir)
646  ENDIF
647 !
648  IF (dti%LDATA_WRMAX_CFGV) THEN
649  ALLOCATE(dti%XPAR_WRMAX_CFGV (ig%NDIM,nvegtype))
650  yrecfm='D_WRMAX_CFGV'
651  CALL read_surf_isba_par_n(dtco, u, i, &
652  hprogram,yrecfm,iluout,ksize,dti%XPAR_WRMAX_CFGV(:,:),iresp,iversion,&
653  hcomment=ycomment,hdir=ydir)
654  ENDIF
655 !
656  IF (dti%LDATA_RGL) THEN
657  ALLOCATE(dti%XPAR_RGL (ig%NDIM,nvegtype))
658  yrecfm='D_RGL'
659  CALL read_surf_isba_par_n(dtco, u, i, &
660  hprogram,yrecfm,iluout,ksize,dti%XPAR_RGL(:,:),iresp,iversion,&
661  hcomment=ycomment,hdir=ydir)
662  ENDIF
663 !
664  IF (dti%LDATA_RGLGV) THEN
665  ALLOCATE(dti%XPAR_RGLGV (ig%NDIM,nvegtype))
666  yrecfm='D_RGLGV'
667  CALL read_surf_isba_par_n(dtco, u, i, &
668  hprogram,yrecfm,iluout,ksize,dti%XPAR_RGLGV(:,:),iresp,iversion,&
669  hcomment=ycomment,hdir=ydir)
670  ENDIF
671 !
672  IF (dti%LDATA_CV) THEN
673  ALLOCATE(dti%XPAR_CV (ig%NDIM,nvegtype))
674  yrecfm='D_CV'
675  CALL read_surf_isba_par_n(dtco, u, i, &
676  hprogram,yrecfm,iluout,ksize,dti%XPAR_CV(:,:),iresp,iversion,&
677  hcomment=ycomment,hdir=ydir)
678  ENDIF
679 !
680  IF (dti%LDATA_Z0_O_Z0H) THEN
681  ALLOCATE(dti%XPAR_Z0_O_Z0H (ig%NDIM,nvegtype))
682  yrecfm='D_Z0_O_Z0H'
683  CALL read_surf_isba_par_n(dtco, u, i, &
684  hprogram,yrecfm,iluout,ksize,dti%XPAR_Z0_O_Z0H(:,:),iresp,iversion,&
685  hcomment=ycomment,hdir=ydir)
686  ENDIF
687 !
688  IF (dti%LDATA_DG) THEN
689  ALLOCATE(dti%XPAR_DG (ig%NDIM,i%NGROUND_LAYER,nvegtype))
690  ALLOCATE(zwork(SIZE(dti%XPAR_DG,1),SIZE(dti%XPAR_DG,3)))
691  DO jlayer=1,SIZE(dti%XPAR_DG,2)
692  IF (jlayer<10) WRITE(yrecfm,fmt='(A4,I1.1)') 'D_DG',jlayer
693  IF (jlayer>=10) WRITE(yrecfm,fmt='(A4,I2.2)') 'D_DG',jlayer
694  CALL read_surf_isba_par_n(dtco, u, i, &
695  hprogram,yrecfm,iluout,ksize,zwork,iresp,iversion,&
696  hcomment=ycomment,hdir=ydir)
697  DO jpatch=1,SIZE(dti%XPAR_DG,3)
698  dti%XPAR_DG(:,jlayer,jpatch) = zwork(:,jpatch)
699  END DO
700  END DO
701  DEALLOCATE(zwork)
702  ENDIF
703 !
704  IF (dti%LDATA_ROOTFRAC) THEN
705  ALLOCATE(dti%XPAR_ROOTFRAC (ig%NDIM,i%NGROUND_LAYER,nvegtype))
706  ALLOCATE(zwork(SIZE(dti%XPAR_ROOTFRAC,1),SIZE(dti%XPAR_ROOTFRAC,3)))
707  DO jlayer=1,SIZE(dti%XPAR_ROOTFRAC,2)
708  IF (jlayer<10) WRITE(yrecfm,fmt='(A10,I1.1)') 'D_ROOTFRAC',jlayer
709  IF (jlayer>=10) WRITE(yrecfm,fmt='(A10,I2.2)') 'D_ROOTFRAC',jlayer
710  CALL read_surf_isba_par_n(dtco, u, i, &
711  hprogram,yrecfm,iluout,ksize,zwork,iresp,iversion,&
712  hcomment=ycomment,hdir=ydir)
713  DO jpatch=1,SIZE(dti%XPAR_ROOTFRAC,3)
714  dti%XPAR_ROOTFRAC(:,jlayer,jpatch) = zwork(:,jpatch)
715  END DO
716  END DO
717  DEALLOCATE(zwork)
718  ENDIF
719 !
720  IF (dti%LDATA_ROOTFRACGV) THEN
721  ALLOCATE(dti%XPAR_ROOTFRACGV (ig%NDIM,i%NGROUND_LAYER,nvegtype))
722  ALLOCATE(zwork(SIZE(dti%XPAR_ROOTFRACGV,1),SIZE(dti%XPAR_ROOTFRACGV,3)))
723  DO jlayer=1,SIZE(dti%XPAR_ROOTFRACGV,2)
724  IF (jlayer<10) WRITE(yrecfm,fmt='(A10,I1.1)') 'D_RTFRACGV',jlayer
725  IF (jlayer>=10) WRITE(yrecfm,fmt='(A10,I2.2)') 'D_RTFRACGV',jlayer
726  CALL read_surf_isba_par_n(dtco, u, i, &
727  hprogram,yrecfm,iluout,ksize,zwork,iresp,iversion,&
728  hcomment=ycomment,hdir=ydir)
729  DO jpatch=1,SIZE(dti%XPAR_ROOTFRACGV,3)
730  dti%XPAR_ROOTFRACGV(:,jlayer,jpatch) = zwork(:,jpatch)
731  END DO
732  END DO
733  DEALLOCATE(zwork)
734  ENDIF
735 !
736  IF (dti%LDATA_DICE) THEN
737  ALLOCATE(dti%XPAR_DICE (ig%NDIM,nvegtype))
738  yrecfm='D_DICE'
739  CALL read_surf_isba_par_n(dtco, u, i, &
740  hprogram,yrecfm,iluout,ksize,dti%XPAR_DICE(:,:),iresp,iversion,&
741  hcomment=ycomment,hdir=ydir)
742  ENDIF
743 !
744  IF (dti%LDATA_GROUND_DEPTH) THEN
745  ALLOCATE(dti%XPAR_GROUND_DEPTH(ig%NDIM,nvegtype))
746  yrecfm2='D_GROUND_DEPTH'
747  IF (iversion>7 .OR. iversion==7 .AND. ibugfix>=3) yrecfm2='D_GROUND_DPT'
748  CALL read_surf_isba_par_n(dtco, u, i, &
749  hprogram,yrecfm2,iluout,ksize,dti%XPAR_GROUND_DEPTH(:,:),iresp,iversion,&
750  hcomment=ycomment,hdir=ydir)
751  ENDIF
752 !
753  IF (dti%LDATA_ROOT_DEPTH) THEN
754  ALLOCATE(dti%XPAR_ROOT_DEPTH(ig%NDIM,nvegtype))
755  yrecfm='D_ROOT_DEPTH'
756  CALL read_surf_isba_par_n(dtco, u, i, &
757  hprogram,yrecfm,iluout,ksize,dti%XPAR_ROOT_DEPTH(:,:),iresp,iversion,&
758  hcomment=ycomment,hdir=ydir)
759  ENDIF
760 !
761  IF (dti%LDATA_ROOT_DEPTHGV) THEN
762  ALLOCATE(dti%XPAR_ROOT_DEPTHGV(ig%NDIM,nvegtype))
763  yrecfm='D_RT_DEPTHGV'
764  CALL read_surf_isba_par_n(dtco, u, i, &
765  hprogram,yrecfm,iluout,ksize,dti%XPAR_ROOT_DEPTHGV(:,:),iresp,iversion,&
766  hcomment=ycomment,hdir=ydir)
767  ENDIF
768 !
769  IF (dti%LDATA_ROOT_EXTINCTION) THEN
770  ALLOCATE(dti%XPAR_ROOT_EXTINCTION(ig%NDIM,nvegtype))
771  yrecfm='D_ROOT_EXT'
772  CALL read_surf_isba_par_n(dtco, u, i, &
773  hprogram,yrecfm,iluout,ksize,dti%XPAR_ROOT_EXTINCTION(:,:),iresp,iversion,&
774  hcomment=ycomment,hdir=ydir)
775  ENDIF
776 !
777  IF (dti%LDATA_ROOT_EXTINCTIONGV) THEN
778  ALLOCATE(dti%XPAR_ROOT_EXTINCTIONGV(ig%NDIM,nvegtype))
779  yrecfm='D_RT_EXTGV'
780  CALL read_surf_isba_par_n(dtco, u, i, &
781  hprogram,yrecfm,iluout,ksize,dti%XPAR_ROOT_EXTINCTIONGV(:,:),iresp,iversion,&
782  hcomment=ycomment,hdir=ydir)
783  ENDIF
784 
785  IF (dti%LDATA_ROOT_LIN) THEN
786  ALLOCATE(dti%XPAR_ROOT_LIN(ig%NDIM,nvegtype))
787  yrecfm='D_ROOT_LIN'
788  CALL read_surf_isba_par_n(dtco, u, i, &
789  hprogram,yrecfm,iluout,ksize,dti%XPAR_ROOT_LIN(:,:),iresp,iversion,&
790  hcomment=ycomment,hdir=ydir)
791  ENDIF
792 !
793  IF (dti%LDATA_ALBNIR_VEG) THEN
794  ALLOCATE(dti%XPAR_ALBNIR_VEG(ig%NDIM,nvegtype))
795  yrecfm='D_ALBNIR_VEG'
796  CALL read_surf_isba_par_n(dtco, u, i, &
797  hprogram,yrecfm,iluout,ksize,dti%XPAR_ALBNIR_VEG(:,:),iresp,iversion,&
798  hcomment=ycomment,hdir=ydir)
799  ENDIF
800 !
801  IF (dti%LDATA_ALBVIS_VEG) THEN
802  ALLOCATE(dti%XPAR_ALBVIS_VEG(ig%NDIM,nvegtype))
803  yrecfm='D_ALBVIS_VEG'
804  CALL read_surf_isba_par_n(dtco, u, i, &
805  hprogram,yrecfm,iluout,ksize,dti%XPAR_ALBVIS_VEG(:,:),iresp,iversion,&
806  hcomment=ycomment,hdir=ydir)
807  ENDIF
808 !
809  IF (dti%LDATA_ALBUV_VEG) THEN
810  ALLOCATE(dti%XPAR_ALBUV_VEG (ig%NDIM,nvegtype))
811  yrecfm='D_ALBUV_VEG'
812  CALL read_surf_isba_par_n(dtco, u, i, &
813  hprogram,yrecfm,iluout,ksize,dti%XPAR_ALBUV_VEG(:,:),iresp,iversion,&
814  hcomment=ycomment,hdir=ydir)
815  ENDIF
816 !
817  IF (dti%LDATA_ALBNIR_SOIL) THEN
818  ALLOCATE(dti%XPAR_ALBNIR_SOIL(ig%NDIM,nvegtype))
819  yrecfm='D_ALBNIR_SOI'
820  CALL read_surf_isba_par_n(dtco, u, i, &
821  hprogram,yrecfm,iluout,ksize,dti%XPAR_ALBNIR_SOIL(:,:),iresp,iversion,&
822  hcomment=ycomment,hdir=ydir)
823  ENDIF
824 !
825  IF (dti%LDATA_ALBVIS_SOIL) THEN
826  ALLOCATE(dti%XPAR_ALBVIS_SOIL(ig%NDIM,nvegtype))
827  yrecfm='D_ALBVIS_SOI'
828  CALL read_surf_isba_par_n(dtco, u, i, &
829  hprogram,yrecfm,iluout,ksize,dti%XPAR_ALBVIS_SOIL(:,:),iresp,iversion,&
830  hcomment=ycomment,hdir=ydir)
831  ENDIF
832 !
833  IF (dti%LDATA_ALBUV_SOIL) THEN
834  ALLOCATE(dti%XPAR_ALBUV_SOIL (ig%NDIM,nvegtype))
835  yrecfm='D_ALBUV_SOI'
836  CALL read_surf_isba_par_n(dtco, u, i, &
837  hprogram,yrecfm,iluout,ksize,dti%XPAR_ALBUV_SOIL(:,:),iresp,iversion,&
838  hcomment=ycomment,hdir=ydir)
839  ENDIF
840 !
841  IF (dti%LDATA_GMES) THEN
842  ALLOCATE(dti%XPAR_GMES (ig%NDIM,nvegtype))
843  yrecfm='D_GMES'
844  CALL read_surf_isba_par_n(dtco, u, i, &
845  hprogram,yrecfm,iluout,ksize,dti%XPAR_GMES(:,:),iresp,iversion,&
846  hcomment=ycomment,hdir=ydir)
847  ENDIF
848 !
849  IF (dti%LDATA_BSLAI) THEN
850  ALLOCATE(dti%XPAR_BSLAI (ig%NDIM,nvegtype))
851  yrecfm='D_BSLAI'
852  CALL read_surf_isba_par_n(dtco, u, i, &
853  hprogram,yrecfm,iluout,ksize,dti%XPAR_BSLAI(:,:),iresp,iversion,&
854  hcomment=ycomment,hdir=ydir)
855  ENDIF
856 !
857  IF (dti%LDATA_LAIMIN) THEN
858  ALLOCATE(dti%XPAR_LAIMIN (ig%NDIM,nvegtype))
859  yrecfm='D_LAIMIN'
860  CALL read_surf_isba_par_n(dtco, u, i, &
861  hprogram,yrecfm,iluout,ksize,dti%XPAR_LAIMIN(:,:),iresp,iversion,&
862  hcomment=ycomment,hdir=ydir)
863  ENDIF
864 !
865  IF (dti%LDATA_SEFOLD) THEN
866  ALLOCATE(dti%XPAR_SEFOLD (ig%NDIM,nvegtype))
867  yrecfm='D_SEFOLD'
868  CALL read_surf_isba_par_n(dtco, u, i, &
869  hprogram,yrecfm,iluout,ksize,dti%XPAR_SEFOLD(:,:),iresp,iversion,&
870  hcomment=ycomment,hdir=ydir)
871  ENDIF
872 !
873  IF (dti%LDATA_GC) THEN
874  ALLOCATE(dti%XPAR_GC (ig%NDIM,nvegtype))
875  yrecfm='D_GC'
876  CALL read_surf_isba_par_n(dtco, u, i, &
877  hprogram,yrecfm,iluout,ksize,dti%XPAR_GC(:,:),iresp,iversion,&
878  hcomment=ycomment,hdir=ydir)
879  ENDIF
880 !
881  IF (dti%LDATA_DMAX) THEN
882  ALLOCATE(dti%XPAR_DMAX (ig%NDIM,nvegtype))
883  yrecfm='D_DMAX'
884  CALL read_surf_isba_par_n(dtco, u, i, &
885  hprogram,yrecfm,iluout,ksize,dti%XPAR_DMAX(:,:),iresp,iversion,&
886  hcomment=ycomment,hdir=ydir)
887  ENDIF
888 !
889  IF (dti%LDATA_F2I) THEN
890  ALLOCATE(dti%XPAR_F2I (ig%NDIM,nvegtype))
891  yrecfm='D_F2I'
892  CALL read_surf_isba_par_n(dtco, u, i, &
893  hprogram,yrecfm,iluout,ksize,dti%XPAR_F2I(:,:),iresp,iversion,&
894  hcomment=ycomment,hdir=ydir)
895  ENDIF
896 !
897  IF (dti%LDATA_STRESS) THEN
898  ALLOCATE(dti%LPAR_STRESS (ig%NDIM,nvegtype))
899  ALLOCATE(zwork(SIZE(dti%LPAR_STRESS,1),SIZE(dti%LPAR_STRESS,2)))
900  yrecfm='D_STRESS'
901  CALL read_surf_isba_par_n(dtco, u, i, &
902  hprogram,yrecfm,iluout,ksize,zwork(:,:),iresp,iversion,&
903  hcomment=ycomment,hdir=ydir)
904  dti%LPAR_STRESS = .false.
905  WHERE(zwork==1.) dti%LPAR_STRESS = .true.
906  DEALLOCATE(zwork)
907  ENDIF
908 !
909  IF (dti%LDATA_H_TREE) THEN
910  ALLOCATE(dti%XPAR_H_TREE (ig%NDIM,nvegtype))
911  yrecfm='D_H_TREE'
912  CALL read_surf_isba_par_n(dtco, u, i, &
913  hprogram,yrecfm,iluout,ksize,dti%XPAR_H_TREE(:,:),iresp,iversion,&
914  hcomment=ycomment,hdir=ydir)
915  ENDIF
916 !
917  IF (dti%LDATA_RE25) THEN
918  ALLOCATE(dti%XPAR_RE25 (ig%NDIM,nvegtype))
919  yrecfm='D_RE25'
920  CALL read_surf_isba_par_n(dtco, u, i, &
921  hprogram,yrecfm,iluout,ksize,dti%XPAR_RE25(:,:),iresp,iversion,&
922  hcomment=ycomment,hdir=ydir)
923  ENDIF
924 !
925  IF (dti%LDATA_CE_NITRO) THEN
926  ALLOCATE(dti%XPAR_CE_NITRO (ig%NDIM,nvegtype))
927  yrecfm='D_CE_NITRO'
928  CALL read_surf_isba_par_n(dtco, u, i, &
929  hprogram,yrecfm,iluout,ksize,dti%XPAR_CE_NITRO(:,:),iresp,iversion,&
930  hcomment=ycomment,hdir=ydir)
931  ENDIF
932 !
933  IF (dti%LDATA_CF_NITRO) THEN
934  ALLOCATE(dti%XPAR_CF_NITRO (ig%NDIM,nvegtype))
935  yrecfm='D_CF_NITRO'
936  CALL read_surf_isba_par_n(dtco, u, i, &
937  hprogram,yrecfm,iluout,ksize,dti%XPAR_CF_NITRO(:,:),iresp,iversion,&
938  hcomment=ycomment,hdir=ydir)
939  ENDIF
940 !
941  IF (dti%LDATA_CNA_NITRO) THEN
942  ALLOCATE(dti%XPAR_CNA_NITRO (ig%NDIM,nvegtype))
943  yrecfm='D_CNA_NITRO'
944  CALL read_surf_isba_par_n(dtco, u, i, &
945  hprogram,yrecfm,iluout,ksize,dti%XPAR_CNA_NITRO(:,:),iresp,iversion,&
946  hcomment=ycomment,hdir=ydir)
947  ENDIF
948 !
949  IF (dti%LDATA_IRRIG) THEN
950  ALLOCATE(dti%XPAR_IRRIG (ig%NDIM,dti%NTIME,nvegtype))
951  DO jtime=1,itime
952  WRITE(yrecfm,fmt='(A9,I2.2)') 'D_IRRIG_T',jtime
953  CALL read_surf_isba_par_n(dtco, u, i, &
954  hprogram,yrecfm,iluout,ksize,dti%XPAR_IRRIG(:,jtime,:),iresp,iversion,&
955  hcomment=ycomment,hdir=ydir)
956  END DO
957  ENDIF
958 !
959  IF (dti%LDATA_WATSUP) THEN
960  ALLOCATE(dti%XPAR_WATSUP (ig%NDIM,dti%NTIME,nvegtype))
961  DO jtime=1,itime
962  WRITE(yrecfm,fmt='(A10,I2.2)') 'D_WATSUP_T',jtime
963  CALL read_surf_isba_par_n(dtco, u, i, &
964  hprogram,yrecfm,iluout,ksize,dti%XPAR_WATSUP(:,jtime,:),iresp,iversion,&
965  hcomment=ycomment,hdir=ydir)
966  END DO
967  ENDIF
968 !
969 ENDIF
970 !
971 IF (lassim) lread_all = gread_all
972 !
973 IF (lhook) CALL dr_hook('READ_PGD_ISBA_PAR_N',1,zhook_handle)
974 !
975 !-------------------------------------------------------------------------------
976 !
977 END SUBROUTINE read_pgd_isba_par_n
subroutine read_pgd_isba_par_n(DTCO, U, DTI, IG, I, HPROGRAM, KSIZE, OLAND_USE, HDIR)
subroutine read_surf_isba_par_n(DTCO, U, I, HPROGRAM, HREC, KLUOUT, KSIZE, PFIELD, KRESP, KVERSION, HCOMMENT, HDIR)
subroutine hor_interpol(DTCO, U, KLUOUT, PFIELDIN, PFIELDOUT)
Definition: hor_interpol.F90:6
subroutine get_luout(HPROGRAM, KLUOUT)
Definition: get_luout.F90:6