8 hprogram,ksize,oland_use,hdir)
65 USE modi_read_surf_isba_par_n
67 USE yomhook
,ONLY : lhook, dr_hook
68 USE parkind1
,ONLY : jprb
81 TYPE(isba_grid_t
),
INTENT(INOUT) :: ig
82 TYPE(isba_t
),
INTENT(INOUT) :: i
84 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
85 INTEGER,
INTENT(IN) :: ksize
86 LOGICAL,
INTENT(IN) :: oland_use
87 CHARACTER(LEN=1),
OPTIONAL,
INTENT(IN) :: hdir
95 REAL,
DIMENSION(KSIZE,NVEGTYPE) :: zfield
96 REAL,
DIMENSION(:,:),
ALLOCATABLE :: zwork
100 CHARACTER(LEN=12) :: yrecfm
101 CHARACTER(LEN=16) :: yrecfm2
102 CHARACTER(LEN=100):: ycomment
103 CHARACTER(LEN=1) :: ydir
109 INTEGER :: isize_lmeb_patch
113 REAL(KIND=JPRB) :: zhook_handle
117 IF (lhook) CALL dr_hook(
'READ_PGD_ISBA_PAR_N',0,zhook_handle)
122 IF (present(hdir)) ydir = hdir
125 gread_all = lread_all
131 hprogram,yrecfm,iversion,iresp)
132 WRITE(iluout,*)
'read version ',iversion
136 hprogram,yrecfm,ibugfix,iresp)
138 isize_lmeb_patch=count(i%LMEB_PATCH(:))
140 dti%LDATA_MIXPAR = .false.
142 IF (iversion<7 .AND. .NOT.i%LECOCLIMAP)
THEN
144 dti%LDATA_VEGTYPE=.true.
148 dti%LDATA_EMIS=.true.
149 dti%LDATA_RSMIN=.true.
150 dti%LDATA_GAMMA=.true.
151 dti%LDATA_WRMAX_CF=.true.
154 dti%LDATA_Z0_O_Z0H=.true.
156 dti%LDATA_ROOTFRAC=.true.
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.
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.
175 dti%LDATA_DMAX=.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.
184 dti%LDATA_IRRIG=.false.
185 dti%LDATA_WATSUP=.false.
189 IF ((iversion<8.AND..NOT.i%LECOCLIMAP).OR.isize_lmeb_patch==0.0)
THEN
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.
207 dti%LIMP_EMIS=.false.
209 IF (.NOT.oland_use)
THEN
211 IF (iversion>=7)
THEN
216 hprogram,yrecfm,dti%LDATA_VEGTYPE,iresp,hcomment=ycomment)
217 IF (dti%LDATA_VEGTYPE) dti%LDATA_MIXPAR = .true.
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.
230 hprogram,yrecfm,dti%LDATA_LAI,iresp,hcomment=ycomment)
231 IF (dti%LDATA_LAI) dti%LDATA_MIXPAR = .true.
235 hprogram,yrecfm,dti%LDATA_Z0,iresp,hcomment=ycomment)
236 IF (dti%LDATA_Z0)
THEN
237 dti%LDATA_MIXPAR = .true.
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.
252 hprogram,yrecfm,dti%LDATA_RSMIN,iresp,hcomment=ycomment)
253 IF (dti%LDATA_RSMIN) dti%LDATA_MIXPAR = .true.
257 hprogram,yrecfm,dti%LDATA_GAMMA,iresp,hcomment=ycomment)
258 IF (dti%LDATA_GAMMA) dti%LDATA_MIXPAR = .true.
262 hprogram,yrecfm,dti%LDATA_WRMAX_CF,iresp,hcomment=ycomment)
263 IF (dti%LDATA_WRMAX_CF) dti%LDATA_MIXPAR = .true.
267 hprogram,yrecfm,dti%LDATA_RGL,iresp,hcomment=ycomment)
268 IF (dti%LDATA_RGL) dti%LDATA_MIXPAR = .true.
272 hprogram,yrecfm,dti%LDATA_CV,iresp,hcomment=ycomment)
273 IF (dti%LDATA_CV) dti%LDATA_MIXPAR = .true.
277 hprogram,yrecfm,dti%LDATA_Z0_O_Z0H,iresp,hcomment=ycomment)
278 IF (dti%LDATA_Z0_O_Z0H) dti%LDATA_MIXPAR = .true.
282 hprogram,yrecfm,dti%LDATA_DG,iresp,hcomment=ycomment)
283 IF (dti%LDATA_DG) dti%LDATA_MIXPAR = .true.
287 hprogram,yrecfm,dti%LDATA_ROOTFRAC,iresp,hcomment=ycomment)
288 IF (dti%LDATA_ROOTFRAC) dti%LDATA_MIXPAR = .true.
292 hprogram,yrecfm,dti%LDATA_DICE,iresp,hcomment=ycomment)
293 IF (dti%LDATA_DICE) dti%LDATA_MIXPAR = .true.
295 IF ( (iversion==7 .AND. ibugfix>=2) .OR. iversion>7 )
THEN
296 yrecfm2=
'L_GROUND_DPT'
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'
304 hprogram,yrecfm,dti%LDATA_ROOT_DEPTH,iresp,hcomment=ycomment)
305 IF (dti%LDATA_ROOT_DEPTH) dti%LDATA_MIXPAR = .true.
309 hprogram,yrecfm,dti%LDATA_ROOT_EXTINCTION,iresp,hcomment=ycomment)
310 IF (dti%LDATA_ROOT_EXTINCTION) dti%LDATA_MIXPAR = .true.
314 hprogram,yrecfm,dti%LDATA_ROOT_LIN,iresp,hcomment=ycomment)
315 IF (dti%LDATA_ROOT_LIN) dti%LDATA_MIXPAR = .true.
317 dti%LDATA_GROUND_DEPTH = .false.
318 dti%LDATA_ROOT_DEPTH = .false.
319 dti%LDATA_ROOT_EXTINCTION = .false.
320 dti%LDATA_ROOT_LIN = .false.
323 yrecfm=
'L_ALBNIR_VEG'
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'
331 hprogram,yrecfm,dti%LDATA_ALBVIS_VEG,iresp,hcomment=ycomment)
332 IF (dti%LDATA_ALBVIS_VEG) dti%LDATA_MIXPAR = .true.
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'
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'
346 hprogram,yrecfm,dti%LDATA_ALBVIS_SOIL,iresp,hcomment=ycomment)
347 IF (dti%LDATA_ALBVIS_SOIL) dti%LDATA_MIXPAR = .true.
351 hprogram,yrecfm,dti%LDATA_ALBUV_SOIL,iresp,hcomment=ycomment)
352 IF (dti%LDATA_ALBUV_SOIL) dti%LDATA_MIXPAR = .true.
356 hprogram,yrecfm,dti%LDATA_GMES,iresp,hcomment=ycomment)
357 IF (dti%LDATA_GMES) dti%LDATA_MIXPAR = .true.
361 hprogram,yrecfm,dti%LDATA_BSLAI,iresp,hcomment=ycomment)
362 IF (dti%LDATA_BSLAI) dti%LDATA_MIXPAR = .true.
366 hprogram,yrecfm,dti%LDATA_LAIMIN,iresp,hcomment=ycomment)
367 IF (dti%LDATA_LAIMIN) dti%LDATA_MIXPAR = .true.
371 hprogram,yrecfm,dti%LDATA_SEFOLD,iresp,hcomment=ycomment)
372 IF (dti%LDATA_SEFOLD) dti%LDATA_MIXPAR = .true.
376 hprogram,yrecfm,dti%LDATA_GC,iresp,hcomment=ycomment)
377 IF (dti%LDATA_GC) dti%LDATA_MIXPAR = .true.
381 hprogram,yrecfm,dti%LDATA_DMAX,iresp,hcomment=ycomment)
382 IF (dti%LDATA_DMAX) dti%LDATA_MIXPAR = .true.
386 hprogram,yrecfm,dti%LDATA_F2I,iresp,hcomment=ycomment)
387 IF (dti%LDATA_F2I) dti%LDATA_MIXPAR = .true.
391 hprogram,yrecfm,dti%LDATA_STRESS,iresp,hcomment=ycomment)
392 IF (dti%LDATA_STRESS) dti%LDATA_MIXPAR = .true.
396 hprogram,yrecfm,dti%LDATA_H_TREE,iresp,hcomment=ycomment)
397 IF (dti%LDATA_H_TREE) dti%LDATA_MIXPAR = .true.
401 hprogram,yrecfm,dti%LDATA_RE25,iresp,hcomment=ycomment)
402 IF (dti%LDATA_RE25) dti%LDATA_MIXPAR = .true.
406 hprogram,yrecfm,dti%LDATA_CE_NITRO,iresp,hcomment=ycomment)
407 IF (dti%LDATA_CE_NITRO) dti%LDATA_MIXPAR = .true.
411 hprogram,yrecfm,dti%LDATA_CF_NITRO,iresp,hcomment=ycomment)
412 IF (dti%LDATA_CF_NITRO) dti%LDATA_MIXPAR = .true.
416 hprogram,yrecfm,dti%LDATA_CNA_NITRO,iresp,hcomment=ycomment)
417 IF (dti%LDATA_CNA_NITRO) dti%LDATA_MIXPAR = .true.
421 hprogram,yrecfm,dti%LDATA_IRRIG,iresp,hcomment=ycomment)
422 IF (dti%LDATA_IRRIG) dti%LDATA_MIXPAR = .true.
426 hprogram,yrecfm,dti%LDATA_WATSUP,iresp,hcomment=ycomment)
427 IF (dti%LDATA_WATSUP) dti%LDATA_MIXPAR = .true.
431 IF (iversion>=8.AND.isize_lmeb_patch>0)
THEN
436 hprogram,yrecfm,dti%LDATA_LAIGV,iresp,hcomment=ycomment)
437 IF (dti%LDATA_LAIGV) dti%LDATA_MIXPAR = .true.
441 hprogram,yrecfm,dti%LDATA_H_VEG,iresp,hcomment=ycomment)
442 IF (dti%LDATA_H_VEG) dti%LDATA_MIXPAR = .true.
446 hprogram,yrecfm,dti%LDATA_Z0LITTER,iresp,hcomment=ycomment)
447 IF (dti%LDATA_Z0LITTER) dti%LDATA_MIXPAR = .true.
451 hprogram,yrecfm,dti%LDATA_GNDLITTER,iresp,hcomment=ycomment)
452 IF (dti%LDATA_GNDLITTER) dti%LDATA_MIXPAR = .true.
456 hprogram,yrecfm,dti%LDATA_RSMINGV,iresp,hcomment=ycomment)
457 IF (dti%LDATA_RSMINGV) dti%LDATA_MIXPAR = .true.
461 hprogram,yrecfm,dti%LDATA_GAMMAGV,iresp,hcomment=ycomment)
462 IF (dti%LDATA_GAMMAGV) dti%LDATA_MIXPAR = .true.
463 yrecfm=
'L_WRMAX_CFGV'
466 hprogram,yrecfm,dti%LDATA_WRMAX_CFGV,iresp,hcomment=ycomment)
467 IF (dti%LDATA_WRMAX_CFGV) dti%LDATA_MIXPAR = .true.
471 hprogram,yrecfm,dti%LDATA_RGLGV,iresp,hcomment=ycomment)
475 hprogram,yrecfm,dti%LDATA_ROOTFRACGV,iresp,hcomment=ycomment)
476 IF (dti%LDATA_ROOTFRACGV) dti%LDATA_MIXPAR = .true.
477 yrecfm=
'L_RT_DEPTHGV'
480 hprogram,yrecfm,dti%LDATA_ROOT_DEPTHGV,iresp,hcomment=ycomment)
481 IF (dti%LDATA_ROOT_DEPTHGV) dti%LDATA_MIXPAR = .true.
485 hprogram,yrecfm,dti%LDATA_ROOT_EXTINCTIONGV,iresp,hcomment=ycomment)
486 IF (dti%LDATA_ROOT_EXTINCTIONGV) dti%LDATA_MIXPAR = .true.
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.
504 IF (
ALLOCATED(linterp)) linterp(:) = .true.
506 IF (dti%LDATA_VEGTYPE)
THEN
509 hprogram,yrecfm,zfield(:,:),iresp,hcomment=ycomment,hdir=ydir)
510 ALLOCATE(dti%XPAR_VEGTYPE (ig%NDIM,nvegtype))
511 IF (ig%NDIM/=ksize)
THEN
513 iluout,zfield,dti%XPAR_VEGTYPE)
515 dti%XPAR_VEGTYPE(:,:) = zfield(:,:)
519 IF (dti%LDATA_LAI .OR. dti%LDATA_VEG .OR. dti%LDATA_Z0 .OR. dti%LDATA_EMIS)
THEN
522 hprogram,yrecfm,dti%NTIME,iresp,hcomment=ycomment)
528 IF (dti%LDATA_VEG)
THEN
529 ALLOCATE(dti%XPAR_VEG(ig%NDIM,dti%NTIME,nvegtype))
531 WRITE(yrecfm,fmt=
'(A7,I2.2)')
'D_VEG_T',jtime
533 hprogram,yrecfm,iluout,ksize,dti%XPAR_VEG(:,jtime,:),iresp,iversion,&
534 hcomment=ycomment,hdir=ydir)
538 IF (dti%LDATA_LAI)
THEN
539 ALLOCATE(dti%XPAR_LAI(ig%NDIM,dti%NTIME,nvegtype))
541 WRITE(yrecfm,fmt=
'(A7,I2.2)')
'D_LAI_T',jtime
543 hprogram,yrecfm,iluout,ksize,dti%XPAR_LAI(:,jtime,:),iresp,iversion,&
544 hcomment=ycomment,hdir=ydir)
548 IF (dti%LDATA_LAIGV)
THEN
549 ALLOCATE(dti%XPAR_LAIGV(ig%NDIM,dti%NTIME,nvegtype))
551 WRITE(yrecfm,fmt=
'(A9,I2.2)')
'D_LAIGV_T',jtime
553 hprogram,yrecfm,iluout,ksize,dti%XPAR_LAIGV(:,jtime,:),iresp,iversion,&
554 hcomment=ycomment,hdir=ydir)
558 IF (dti%LDATA_H_VEG)
THEN
559 ALLOCATE(dti%XPAR_H_VEG(ig%NDIM,dti%NTIME,nvegtype))
561 WRITE(yrecfm,fmt=
'(A9,I2.2)')
'D_H_VEG_T',jtime
563 hprogram,yrecfm,iluout,ksize,dti%XPAR_H_VEG(:,jtime,:),iresp,iversion,&
564 hcomment=ycomment,hdir=ydir)
568 IF (dti%LDATA_GNDLITTER)
THEN
569 ALLOCATE(dti%XPAR_GNDLITTER(ig%NDIM,dti%NTIME,nvegtype))
571 WRITE(yrecfm,fmt=
'(A7,I2.2)')
'D_GNDLITTER',jtime
573 hprogram,yrecfm,iluout,ksize,dti%XPAR_GNDLITTER(:,jtime,:),iresp,iversion,&
574 hcomment=ycomment,hdir=ydir)
578 IF (dti%LDATA_Z0)
THEN
579 ALLOCATE(dti%XPAR_Z0 (ig%NDIM,dti%NTIME,nvegtype))
581 WRITE(yrecfm,fmt=
'(A6,I2.2)')
'D_Z0_T',jtime
583 hprogram,yrecfm,iluout,ksize,dti%XPAR_Z0(:,jtime,:),iresp,iversion,&
584 hcomment=ycomment,hdir=ydir)
588 IF (dti%LDATA_Z0LITTER)
THEN
589 ALLOCATE(dti%XPAR_Z0LITTER (ig%NDIM,dti%NTIME,nvegtype))
591 WRITE(yrecfm,fmt=
'(A8,I2.2)')
'D_Z0LITTER_T',jtime
593 hprogram,yrecfm,iluout,ksize,dti%XPAR_Z0LITTER(:,jtime,:),iresp,iversion,&
594 hcomment=ycomment,hdir=ydir)
598 IF (dti%LDATA_EMIS)
THEN
599 ALLOCATE(dti%XPAR_EMIS (ig%NDIM,dti%NTIME,nvegtype))
601 WRITE(yrecfm,fmt=
'(A8,I2.2)')
'D_EMIS_T',jtime
603 hprogram,yrecfm,iluout,ksize,dti%XPAR_EMIS(:,jtime,:),iresp,iversion,&
604 hcomment=ycomment,hdir=ydir)
608 IF (dti%LDATA_RSMIN)
THEN
609 ALLOCATE(dti%XPAR_RSMIN (ig%NDIM,nvegtype))
612 hprogram,yrecfm,iluout,ksize,dti%XPAR_RSMIN(:,:),iresp,iversion,&
613 hcomment=ycomment,hdir=ydir)
616 IF (dti%LDATA_RSMINGV)
THEN
617 ALLOCATE(dti%XPAR_RSMINGV (ig%NDIM,nvegtype))
620 hprogram,yrecfm,iluout,ksize,dti%XPAR_RSMINGV(:,:),iresp,iversion,&
621 hcomment=ycomment,hdir=ydir)
624 IF (dti%LDATA_GAMMA)
THEN
625 ALLOCATE(dti%XPAR_GAMMA (ig%NDIM,nvegtype))
628 hprogram,yrecfm,iluout,ksize,dti%XPAR_GAMMA(:,:),iresp,iversion,&
629 hcomment=ycomment,hdir=ydir)
632 IF (dti%LDATA_GAMMAGV)
THEN
633 ALLOCATE(dti%XPAR_GAMMAGV (ig%NDIM,nvegtype))
636 hprogram,yrecfm,iluout,ksize,dti%XPAR_GAMMAGV(:,:),iresp,iversion,&
637 hcomment=ycomment,hdir=ydir)
640 IF (dti%LDATA_WRMAX_CF)
THEN
641 ALLOCATE(dti%XPAR_WRMAX_CF (ig%NDIM,nvegtype))
644 hprogram,yrecfm,iluout,ksize,dti%XPAR_WRMAX_CF(:,:),iresp,iversion,&
645 hcomment=ycomment,hdir=ydir)
648 IF (dti%LDATA_WRMAX_CFGV)
THEN
649 ALLOCATE(dti%XPAR_WRMAX_CFGV (ig%NDIM,nvegtype))
650 yrecfm=
'D_WRMAX_CFGV'
652 hprogram,yrecfm,iluout,ksize,dti%XPAR_WRMAX_CFGV(:,:),iresp,iversion,&
653 hcomment=ycomment,hdir=ydir)
656 IF (dti%LDATA_RGL)
THEN
657 ALLOCATE(dti%XPAR_RGL (ig%NDIM,nvegtype))
660 hprogram,yrecfm,iluout,ksize,dti%XPAR_RGL(:,:),iresp,iversion,&
661 hcomment=ycomment,hdir=ydir)
664 IF (dti%LDATA_RGLGV)
THEN
665 ALLOCATE(dti%XPAR_RGLGV (ig%NDIM,nvegtype))
668 hprogram,yrecfm,iluout,ksize,dti%XPAR_RGLGV(:,:),iresp,iversion,&
669 hcomment=ycomment,hdir=ydir)
672 IF (dti%LDATA_CV)
THEN
673 ALLOCATE(dti%XPAR_CV (ig%NDIM,nvegtype))
676 hprogram,yrecfm,iluout,ksize,dti%XPAR_CV(:,:),iresp,iversion,&
677 hcomment=ycomment,hdir=ydir)
680 IF (dti%LDATA_Z0_O_Z0H)
THEN
681 ALLOCATE(dti%XPAR_Z0_O_Z0H (ig%NDIM,nvegtype))
684 hprogram,yrecfm,iluout,ksize,dti%XPAR_Z0_O_Z0H(:,:),iresp,iversion,&
685 hcomment=ycomment,hdir=ydir)
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
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)
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
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)
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
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)
736 IF (dti%LDATA_DICE)
THEN
737 ALLOCATE(dti%XPAR_DICE (ig%NDIM,nvegtype))
740 hprogram,yrecfm,iluout,ksize,dti%XPAR_DICE(:,:),iresp,iversion,&
741 hcomment=ycomment,hdir=ydir)
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'
749 hprogram,yrecfm2,iluout,ksize,dti%XPAR_GROUND_DEPTH(:,:),iresp,iversion,&
750 hcomment=ycomment,hdir=ydir)
753 IF (dti%LDATA_ROOT_DEPTH)
THEN
754 ALLOCATE(dti%XPAR_ROOT_DEPTH(ig%NDIM,nvegtype))
755 yrecfm=
'D_ROOT_DEPTH'
757 hprogram,yrecfm,iluout,ksize,dti%XPAR_ROOT_DEPTH(:,:),iresp,iversion,&
758 hcomment=ycomment,hdir=ydir)
761 IF (dti%LDATA_ROOT_DEPTHGV)
THEN
762 ALLOCATE(dti%XPAR_ROOT_DEPTHGV(ig%NDIM,nvegtype))
763 yrecfm=
'D_RT_DEPTHGV'
765 hprogram,yrecfm,iluout,ksize,dti%XPAR_ROOT_DEPTHGV(:,:),iresp,iversion,&
766 hcomment=ycomment,hdir=ydir)
769 IF (dti%LDATA_ROOT_EXTINCTION)
THEN
770 ALLOCATE(dti%XPAR_ROOT_EXTINCTION(ig%NDIM,nvegtype))
773 hprogram,yrecfm,iluout,ksize,dti%XPAR_ROOT_EXTINCTION(:,:),iresp,iversion,&
774 hcomment=ycomment,hdir=ydir)
777 IF (dti%LDATA_ROOT_EXTINCTIONGV)
THEN
778 ALLOCATE(dti%XPAR_ROOT_EXTINCTIONGV(ig%NDIM,nvegtype))
781 hprogram,yrecfm,iluout,ksize,dti%XPAR_ROOT_EXTINCTIONGV(:,:),iresp,iversion,&
782 hcomment=ycomment,hdir=ydir)
785 IF (dti%LDATA_ROOT_LIN)
THEN
786 ALLOCATE(dti%XPAR_ROOT_LIN(ig%NDIM,nvegtype))
789 hprogram,yrecfm,iluout,ksize,dti%XPAR_ROOT_LIN(:,:),iresp,iversion,&
790 hcomment=ycomment,hdir=ydir)
793 IF (dti%LDATA_ALBNIR_VEG)
THEN
794 ALLOCATE(dti%XPAR_ALBNIR_VEG(ig%NDIM,nvegtype))
795 yrecfm=
'D_ALBNIR_VEG'
797 hprogram,yrecfm,iluout,ksize,dti%XPAR_ALBNIR_VEG(:,:),iresp,iversion,&
798 hcomment=ycomment,hdir=ydir)
801 IF (dti%LDATA_ALBVIS_VEG)
THEN
802 ALLOCATE(dti%XPAR_ALBVIS_VEG(ig%NDIM,nvegtype))
803 yrecfm=
'D_ALBVIS_VEG'
805 hprogram,yrecfm,iluout,ksize,dti%XPAR_ALBVIS_VEG(:,:),iresp,iversion,&
806 hcomment=ycomment,hdir=ydir)
809 IF (dti%LDATA_ALBUV_VEG)
THEN
810 ALLOCATE(dti%XPAR_ALBUV_VEG (ig%NDIM,nvegtype))
813 hprogram,yrecfm,iluout,ksize,dti%XPAR_ALBUV_VEG(:,:),iresp,iversion,&
814 hcomment=ycomment,hdir=ydir)
817 IF (dti%LDATA_ALBNIR_SOIL)
THEN
818 ALLOCATE(dti%XPAR_ALBNIR_SOIL(ig%NDIM,nvegtype))
819 yrecfm=
'D_ALBNIR_SOI'
821 hprogram,yrecfm,iluout,ksize,dti%XPAR_ALBNIR_SOIL(:,:),iresp,iversion,&
822 hcomment=ycomment,hdir=ydir)
825 IF (dti%LDATA_ALBVIS_SOIL)
THEN
826 ALLOCATE(dti%XPAR_ALBVIS_SOIL(ig%NDIM,nvegtype))
827 yrecfm=
'D_ALBVIS_SOI'
829 hprogram,yrecfm,iluout,ksize,dti%XPAR_ALBVIS_SOIL(:,:),iresp,iversion,&
830 hcomment=ycomment,hdir=ydir)
833 IF (dti%LDATA_ALBUV_SOIL)
THEN
834 ALLOCATE(dti%XPAR_ALBUV_SOIL (ig%NDIM,nvegtype))
837 hprogram,yrecfm,iluout,ksize,dti%XPAR_ALBUV_SOIL(:,:),iresp,iversion,&
838 hcomment=ycomment,hdir=ydir)
841 IF (dti%LDATA_GMES)
THEN
842 ALLOCATE(dti%XPAR_GMES (ig%NDIM,nvegtype))
845 hprogram,yrecfm,iluout,ksize,dti%XPAR_GMES(:,:),iresp,iversion,&
846 hcomment=ycomment,hdir=ydir)
849 IF (dti%LDATA_BSLAI)
THEN
850 ALLOCATE(dti%XPAR_BSLAI (ig%NDIM,nvegtype))
853 hprogram,yrecfm,iluout,ksize,dti%XPAR_BSLAI(:,:),iresp,iversion,&
854 hcomment=ycomment,hdir=ydir)
857 IF (dti%LDATA_LAIMIN)
THEN
858 ALLOCATE(dti%XPAR_LAIMIN (ig%NDIM,nvegtype))
861 hprogram,yrecfm,iluout,ksize,dti%XPAR_LAIMIN(:,:),iresp,iversion,&
862 hcomment=ycomment,hdir=ydir)
865 IF (dti%LDATA_SEFOLD)
THEN
866 ALLOCATE(dti%XPAR_SEFOLD (ig%NDIM,nvegtype))
869 hprogram,yrecfm,iluout,ksize,dti%XPAR_SEFOLD(:,:),iresp,iversion,&
870 hcomment=ycomment,hdir=ydir)
873 IF (dti%LDATA_GC)
THEN
874 ALLOCATE(dti%XPAR_GC (ig%NDIM,nvegtype))
877 hprogram,yrecfm,iluout,ksize,dti%XPAR_GC(:,:),iresp,iversion,&
878 hcomment=ycomment,hdir=ydir)
881 IF (dti%LDATA_DMAX)
THEN
882 ALLOCATE(dti%XPAR_DMAX (ig%NDIM,nvegtype))
885 hprogram,yrecfm,iluout,ksize,dti%XPAR_DMAX(:,:),iresp,iversion,&
886 hcomment=ycomment,hdir=ydir)
889 IF (dti%LDATA_F2I)
THEN
890 ALLOCATE(dti%XPAR_F2I (ig%NDIM,nvegtype))
893 hprogram,yrecfm,iluout,ksize,dti%XPAR_F2I(:,:),iresp,iversion,&
894 hcomment=ycomment,hdir=ydir)
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)))
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.
909 IF (dti%LDATA_H_TREE)
THEN
910 ALLOCATE(dti%XPAR_H_TREE (ig%NDIM,nvegtype))
913 hprogram,yrecfm,iluout,ksize,dti%XPAR_H_TREE(:,:),iresp,iversion,&
914 hcomment=ycomment,hdir=ydir)
917 IF (dti%LDATA_RE25)
THEN
918 ALLOCATE(dti%XPAR_RE25 (ig%NDIM,nvegtype))
921 hprogram,yrecfm,iluout,ksize,dti%XPAR_RE25(:,:),iresp,iversion,&
922 hcomment=ycomment,hdir=ydir)
925 IF (dti%LDATA_CE_NITRO)
THEN
926 ALLOCATE(dti%XPAR_CE_NITRO (ig%NDIM,nvegtype))
929 hprogram,yrecfm,iluout,ksize,dti%XPAR_CE_NITRO(:,:),iresp,iversion,&
930 hcomment=ycomment,hdir=ydir)
933 IF (dti%LDATA_CF_NITRO)
THEN
934 ALLOCATE(dti%XPAR_CF_NITRO (ig%NDIM,nvegtype))
937 hprogram,yrecfm,iluout,ksize,dti%XPAR_CF_NITRO(:,:),iresp,iversion,&
938 hcomment=ycomment,hdir=ydir)
941 IF (dti%LDATA_CNA_NITRO)
THEN
942 ALLOCATE(dti%XPAR_CNA_NITRO (ig%NDIM,nvegtype))
945 hprogram,yrecfm,iluout,ksize,dti%XPAR_CNA_NITRO(:,:),iresp,iversion,&
946 hcomment=ycomment,hdir=ydir)
949 IF (dti%LDATA_IRRIG)
THEN
950 ALLOCATE(dti%XPAR_IRRIG (ig%NDIM,dti%NTIME,nvegtype))
952 WRITE(yrecfm,fmt=
'(A9,I2.2)')
'D_IRRIG_T',jtime
954 hprogram,yrecfm,iluout,ksize,dti%XPAR_IRRIG(:,jtime,:),iresp,iversion,&
955 hcomment=ycomment,hdir=ydir)
959 IF (dti%LDATA_WATSUP)
THEN
960 ALLOCATE(dti%XPAR_WATSUP (ig%NDIM,dti%NTIME,nvegtype))
962 WRITE(yrecfm,fmt=
'(A10,I2.2)')
'D_WATSUP_T',jtime
964 hprogram,yrecfm,iluout,ksize,dti%XPAR_WATSUP(:,jtime,:),iresp,iversion,&
965 hcomment=ycomment,hdir=ydir)
971 IF (lassim) lread_all = gread_all
973 IF (lhook) CALL dr_hook(
'READ_PGD_ISBA_PAR_N',1,zhook_handle)
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)
subroutine get_luout(HPROGRAM, KLUOUT)