6 SUBROUTINE pgd_isba_par (DTCO, UG, U, USS, DTV, IO, S, KDIM, HPROGRAM)
56 USE modd_data_cover_par
, ONLY : nvegtype
59 USE modd_agri
, ONLY : lagrip
63 USE modi_open_namelist
64 USE modi_close_namelist
66 USE modi_extrapol_fields
84 TYPE(
sso_t),
INTENT(INOUT) :: USS
89 INTEGER,
INTENT(IN) :: KDIM
91 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
97 REAL,
DIMENSION(KDIM,NVEGTYPE) :: TEST,TEST2,TEST3
100 INTEGER :: IHGROUND_LAYER
105 LOGICAL :: GPAR_STRESS
107 INTEGER :: ISIZE_LMEB_PATCH
113 INTEGER,
PARAMETER :: NTIME_MAX = 36
114 INTEGER,
PARAMETER :: NGROUND_MAX = 150
115 INTEGER,
PARAMETER :: NVEGTYPE_MAX = 20
117 REAL,
DIMENSION(NVEGTYPE_MAX) :: XSTRESS
119 REAL,
DIMENSION(NVEGTYPE_MAX) :: XUNIF_VEGTYPE
121 REAL,
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: XUNIF_VEG
122 REAL,
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: XUNIF_LAI
123 REAL,
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: XUNIF_Z0
124 REAL,
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: XUNIF_EMIS
126 REAL,
DIMENSION(NVEGTYPE_MAX,NGROUND_MAX) :: XUNIF_DG
127 REAL,
DIMENSION(NVEGTYPE_MAX,NGROUND_MAX) :: XUNIF_ROOTFRAC
128 REAL,
DIMENSION(NVEGTYPE_MAX) :: XUNIF_GROUND_DEPTH
129 REAL,
DIMENSION(NVEGTYPE_MAX) :: XUNIF_ROOT_DEPTH
130 REAL,
DIMENSION(NVEGTYPE_MAX) :: XUNIF_ROOT_EXTINCTION
131 REAL,
DIMENSION(NVEGTYPE_MAX) :: XUNIF_ROOT_LIN
132 REAL,
DIMENSION(NVEGTYPE_MAX) :: XUNIF_DICE
134 REAL,
DIMENSION(NVEGTYPE_MAX) :: XUNIF_RSMIN
135 REAL,
DIMENSION(NVEGTYPE_MAX) :: XUNIF_GAMMA
136 REAL,
DIMENSION(NVEGTYPE_MAX) :: XUNIF_WRMAX_CF
137 REAL,
DIMENSION(NVEGTYPE_MAX) :: XUNIF_RGL
138 REAL,
DIMENSION(NVEGTYPE_MAX) :: XUNIF_CV
139 REAL,
DIMENSION(NVEGTYPE_MAX) :: XUNIF_Z0_O_Z0H
140 REAL,
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: XUNIF_ALBNIR_VEG
141 REAL,
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: XUNIF_ALBVIS_VEG
142 REAL,
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: XUNIF_ALBUV_VEG
143 REAL,
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: XUNIF_ALBNIR_SOIL
144 REAL,
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: XUNIF_ALBVIS_SOIL
145 REAL,
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: XUNIF_ALBUV_SOIL
146 REAL,
DIMENSION(NVEGTYPE_MAX) :: XUNIF_GMES
147 REAL,
DIMENSION(NVEGTYPE_MAX) :: XUNIF_BSLAI
148 REAL,
DIMENSION(NVEGTYPE_MAX) :: XUNIF_LAIMIN
149 REAL,
DIMENSION(NVEGTYPE_MAX) :: XUNIF_SEFOLD
150 REAL,
DIMENSION(NVEGTYPE_MAX) :: XUNIF_GC
151 REAL,
DIMENSION(NVEGTYPE_MAX) :: XUNIF_DMAX
152 REAL,
DIMENSION(NVEGTYPE_MAX) :: XUNIF_F2I
153 REAL,
DIMENSION(NVEGTYPE_MAX) :: XUNIF_H_TREE
154 REAL,
DIMENSION(NVEGTYPE_MAX) :: XUNIF_RE25
155 REAL,
DIMENSION(NVEGTYPE_MAX) :: XUNIF_CE_NITRO
156 REAL,
DIMENSION(NVEGTYPE_MAX) :: XUNIF_CF_NITRO
157 REAL,
DIMENSION(NVEGTYPE_MAX) :: XUNIF_CNA_NITRO
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
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
170 LOGICAL,
DIMENSION(NVEGTYPE_MAX) :: LUNIF_STRESS
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
181 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: CFNAM_VEGTYPE
183 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFNAM_VEG
184 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFNAM_LAI
185 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFNAM_Z0
186 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFNAM_EMIS
188 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX,NGROUND_MAX) :: CFNAM_DG
189 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX,NGROUND_MAX) :: CFNAM_ROOTFRAC
190 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: CFNAM_GROUND_DEPTH
191 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: CFNAM_ROOT_DEPTH
192 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: CFNAM_ROOT_EXTINCTION
193 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: CFNAM_ROOT_LIN
194 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: CFNAM_DICE
196 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: CFNAM_RSMIN
197 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: CFNAM_GAMMA
198 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: CFNAM_WRMAX_CF
199 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: CFNAM_RGL
200 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: CFNAM_CV
201 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: CFNAM_Z0_O_Z0H
202 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFNAM_ALBNIR_VEG
203 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFNAM_ALBVIS_VEG
204 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFNAM_ALBUV_VEG
205 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFNAM_ALBNIR_SOIL
206 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFNAM_ALBVIS_SOIL
207 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFNAM_ALBUV_SOIL
208 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: CFNAM_GMES
209 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: CFNAM_BSLAI
210 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: CFNAM_LAIMIN
211 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: CFNAM_SEFOLD
212 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: CFNAM_GC
213 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: CFNAM_DMAX
214 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: CFNAM_F2I
215 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: CFNAM_H_TREE
216 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: CFNAM_RE25
217 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: CFNAM_CE_NITRO
218 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: CFNAM_CF_NITRO
219 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: CFNAM_CNA_NITRO
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
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
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
241 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: CFTYP_VEGTYPE
243 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFTYP_VEG
244 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFTYP_LAI
245 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFTYP_Z0
246 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFTYP_EMIS
248 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX,NGROUND_MAX) :: CFTYP_DG
249 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX,NGROUND_MAX) :: CFTYP_ROOTFRAC
250 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: CFTYP_GROUND_DEPTH
251 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: CFTYP_ROOT_DEPTH
252 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: CFTYP_ROOT_EXTINCTION
253 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: CFTYP_ROOT_LIN
254 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: CFTYP_DICE
256 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: CFTYP_RSMIN
257 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: CFTYP_GAMMA
258 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: CFTYP_WRMAX_CF
259 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: CFTYP_RGL
260 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: CFTYP_CV
261 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: CFTYP_Z0_O_Z0H
262 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFTYP_ALBNIR_VEG
263 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFTYP_ALBVIS_VEG
264 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFTYP_ALBUV_VEG
265 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFTYP_ALBNIR_SOIL
266 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFTYP_ALBVIS_SOIL
267 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: CFTYP_ALBUV_SOIL
268 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: CFTYP_GMES
269 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: CFTYP_BSLAI
270 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: CFTYP_LAIMIN
271 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: CFTYP_SEFOLD
272 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: CFTYP_GC
273 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: CFTYP_DMAX
274 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: CFTYP_F2I
275 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: CFTYP_H_TREE
276 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: CFTYP_RE25
277 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: CFTYP_CE_NITRO
278 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: CFTYP_CF_NITRO
279 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: CFTYP_CNA_NITRO
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
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
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
299 REAL(KIND=JPRB) :: ZHOOK_HANDLE
301 NAMELIST/nam_data_isba/ntime, xunif_vegtype, xunif_dg, xunif_rootfrac, xunif_dice
349 xstress = (/1.,1.,1.,0.,0.,0.,0.,0.,1.,1.,1.,0.,0.,0.,0.,1.,1.,0.,0.,0
352 xstress = (/1.,1.,1.,0.,1.,0.,1.,0.,1.,0.,0.,0.,0.,0.,1.,0.,1.,0.,0.,0
355 dtv%NVEGTYPE = nvegtype
372 xunif_albnir_soil =
xundef 373 xunif_albvis_soil =
xundef 378 xunif_ground_depth =
xundef 380 xunif_root_extinction =
xundef 389 lunif_stress = .true.
532 isize_lmeb_patch=
count(io%LMEB_PATCH(:))
541 CALL posnam(ilunam,
'NAM_DATA_ISBA',gfound,iluout)
542 IF (gfound)
READ(unit=ilunam,nml=nam_data_isba)
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' 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' 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' 580 ALLOCATE(dtv%XPAR_VEGTYPE(kdim,nvegtype))
582 hprogram,
'ARI',
'VEGTYPE: vegetation type',
'NAT',cfnam_vegtype
584 IF (.NOT. dtv%LDATA_VEGTYPE )
THEN 586 CALL av_pgd(dtco, dtv%XPAR_VEGTYPE(:,jveg),s%XCOVER,dtco%XDATA_VEGTYPE
'NAT''ARI' 590 IF (.NOT.io%LECOCLIMAP .AND. .NOT.dtv%LDATA_VEGTYPE)
THEN 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,*)
'***********************************************************' 599 CALL abor1_sfx(
'PGD_ISBA_PAR: NO PRESCRIBED VALUE NOR INPUT FILE FOR VEGTYPE' 601 ELSEIF (dtv%LDATA_VEGTYPE)
THEN 603 WHERE (dtv%XPAR_VEGTYPE(:,:)==
xundef) dtv%XPAR_VEGTYPE(:,:)=0.
604 WHERE (dtv%XPAR_VEGTYPE(:,:)/=0.) dtv%XPAR_VEGTYPE(:,:) = dtv%XPAR_VEGTYPE
611 ALLOCATE(dtv%LDATA_VEG(ntime*nvegtype))
612 ALLOCATE(dtv%XPAR_VEG(kdim,ntime,nvegtype))
614 hprogram,
'ARI',
'VEG: vegetation fraction',
'NAT',cfnam_veg
616 IF (all(.NOT.dtv%LDATA_VEG))
DEALLOCATE(dtv%XPAR_VEG)
618 ALLOCATE(dtv%LDATA_LAI(ntime*nvegtype))
619 ALLOCATE(dtv%XPAR_LAI(kdim,ntime,nvegtype))
621 hprogram,
'ARI',
'LAI: leaf area index',
'NAT',cfnam_lai
623 IF (all(.NOT.dtv%LDATA_LAI))
DEALLOCATE(dtv%XPAR_LAI)
625 ALLOCATE(dtv%LDATA_H_VEG(ntime*nvegtype))
626 ALLOCATE(dtv%XPAR_H_VEG(kdim,ntime,nvegtype))
628 hprogram,
'ARI',
'H_VEG: vegetation height',
'NAT',cfnam_h_veg
630 IF (all(.NOT.dtv%LDATA_H_VEG))
DEALLOCATE(dtv%XPAR_H_VEG)
632 ALLOCATE(dtv%LDATA_Z0(ntime*nvegtype))
633 ALLOCATE(dtv%XPAR_Z0(kdim,ntime,nvegtype))
635 hprogram,
'CDN',
'Z0: roughness length',
'NAT',cfnam_z0
637 IF (all(.NOT.dtv%LDATA_Z0))
DEALLOCATE(dtv%XPAR_Z0)
639 ALLOCATE(dtv%LDATA_EMIS(ntime*nvegtype))
640 ALLOCATE(dtv%XPAR_EMIS(kdim,ntime,nvegtype))
642 hprogram,
'ARI',
'EMIS: emissivity',
'NAT',cfnam_emis
644 IF (all(.NOT.dtv%LDATA_EMIS))
DEALLOCATE(dtv%XPAR_EMIS)
646 IF (.NOT.io%LECOCLIMAP .AND. .NOT.(any(dtv%LDATA_VEG) .AND. any(dtv%LDATA_LAI
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,*)
'***********************************************************' 660 CALL abor1_sfx(
'PGD_ISBA_PAR: NO PRESCRIBED VALUE NOR INPUT FILE FOR TEMPORAL PARAMETERS' 664 ALLOCATE(dtv%LDATA_ALBNIR_VEG(ntime*nvegtype))
665 ALLOCATE(dtv%XPAR_ALBNIR_VEG(kdim,ntime,nvegtype))
667 hprogram,
'ARI',
'ALBNIR_VEG: NIR albedo of vegetation''NAT' 669 IF (all(.NOT.dtv%LDATA_ALBNIR_VEG))
DEALLOCATE(dtv%XPAR_ALBNIR_VEG)
671 ALLOCATE(dtv%LDATA_ALBVIS_VEG(ntime*nvegtype))
672 ALLOCATE(dtv%XPAR_ALBVIS_VEG(kdim,ntime,nvegtype))
674 hprogram,
'ARI',
'ALBVIS_VEG: VIS albedo of vegetation''NAT' 676 IF (all(.NOT.dtv%LDATA_ALBVIS_VEG))
DEALLOCATE(dtv%XPAR_ALBVIS_VEG)
678 ALLOCATE(dtv%LDATA_ALBUV_VEG(ntime*nvegtype))
679 ALLOCATE(dtv%XPAR_ALBUV_VEG(kdim,ntime,nvegtype))
681 hprogram,
'ARI',
'ALBUV_VEG: UV albedo of vegetation''NAT' 683 IF (all(.NOT.dtv%LDATA_ALBUV_VEG))
DEALLOCATE(dtv%XPAR_ALBUV_VEG)
685 ALLOCATE(dtv%LDATA_ALBNIR_SOIL(ntime*nvegtype))
686 ALLOCATE(dtv%XPAR_ALBNIR_SOIL(kdim,ntime,nvegtype))
688 hprogram,
'ARI',
'ALBNIR_SOIL: NIR albedo of SOIL',
'NAT' 690 IF (all(.NOT.dtv%LDATA_ALBNIR_SOIL))
DEALLOCATE(dtv%XPAR_ALBNIR_SOIL)
692 ALLOCATE(dtv%LDATA_ALBVIS_SOIL(ntime*nvegtype))
693 ALLOCATE(dtv%XPAR_ALBVIS_SOIL(kdim,ntime,nvegtype))
695 hprogram,
'ARI',
'ALBVIS_SOIL: VIS albedo of SOIL',
'NAT' 697 IF (all(.NOT.dtv%LDATA_ALBVIS_SOIL))
DEALLOCATE(dtv%XPAR_ALBVIS_SOIL)
699 ALLOCATE(dtv%LDATA_ALBUV_SOIL(ntime*nvegtype))
700 ALLOCATE(dtv%XPAR_ALBUV_SOIL(kdim,ntime,nvegtype))
702 hprogram,
'ARI',
'ALBUV_SOIL: UV albedo of SOIL',
'NAT' 704 IF (all(.NOT.dtv%LDATA_ALBUV_SOIL))
DEALLOCATE(dtv%XPAR_ALBUV_SOIL)
709 ALLOCATE(dtv%LDATA_GNDLITTER(ntime*nvegtype))
710 ALLOCATE(dtv%LDATA_Z0LITTER (ntime*nvegtype))
711 dtv%LDATA_GNDLITTER(:) = .false.
712 dtv%LDATA_Z0LITTER (:) = .false.
714 IF(isize_lmeb_patch>0)
THEN 716 ALLOCATE(dtv%XPAR_GNDLITTER(kdim,ntime,nvegtype))
718 hprogram,
'ARI',
'GNDLITTER: ground litter fraction''NAT' 720 IF (all(.NOT.dtv%LDATA_GNDLITTER))
DEALLOCATE(dtv%XPAR_GNDLITTER)
722 ALLOCATE(dtv%XPAR_Z0LITTER(kdim,ntime,nvegtype))
724 hprogram,
'CDN',
'Z0LITTER: ground litter roughness length''NAT' 726 IF (all(.NOT.dtv%LDATA_Z0LITTER))
DEALLOCATE(dtv%XPAR_Z0LITTER)
733 ALLOCATE(dtv%XPAR_DG(kdim,io%NGROUND_LAYER,nvegtype))
735 hprogram,
'ARI',
'DG: ground depth',
'NAT',cfnam_dg
737 IF (all(.NOT.dtv%LDATA_DG))
DEALLOCATE(dtv%XPAR_DG)
739 ALLOCATE(dtv%XPAR_ROOT_DEPTH(kdim,nvegtype))
741 hprogram,
'ARI',
'ROOT_DEPTH: root depth',
'NAT',cfnam_root_depth
743 IF (all(.NOT.dtv%LDATA_ROOT_DEPTH))
DEALLOCATE(dtv%XPAR_ROOT_DEPTH)
744 ALLOCATE(dtv%XPAR_GROUND_DEPTH(kdim,nvegtype))
746 hprogram,
'ARI',
'GROUND_DEPTH: ground depth',
'NAT' 748 IF (all(.NOT.dtv%LDATA_GROUND_DEPTH))
DEALLOCATE(dtv%XPAR_GROUND_DEPTH)
750 IF(io%CISBA==
'DIF')
THEN 752 ALLOCATE(dtv%XPAR_ROOTFRAC(kdim,io%NGROUND_LAYER,nvegtype))
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)
759 ALLOCATE(dtv%XPAR_ROOT_EXTINCTION(kdim,nvegtype))
761 hprogram,
'ARI',
'ROOT_EXTINCTION: root extinction''NAT' 763 IF (all(.NOT.dtv%LDATA_ROOT_EXTINCTION))
DEALLOCATE(dtv%XPAR_ROOT_EXTINCTION
765 ALLOCATE(dtv%XPAR_ROOT_LIN(kdim,nvegtype))
767 hprogram,
'ARI',
'ROOT_LIN: root linear',
'NAT',cfnam_root_lin
769 IF (all(.NOT.dtv%LDATA_ROOT_LIN))
DEALLOCATE(dtv%XPAR_ROOT_LIN)
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
THEN 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,*)
'****************************************************************************' 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
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,*)
'****************************************************************************' 800 CALL abor1_sfx(
"PGD_ISBA_PAR: PROBLEM IN SOIL GRID COMPUTATION")
802 IF(all(.NOT.dtv%LDATA_DG) .AND.all(io%XSOILGRID(:)==
xundef))
THEN 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,*)
'****************************************************************************' 813 CALL abor1_sfx(
"PGD_ISBA_PAR: PROBLEM IN SOIL GRID COMPUTATION")
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 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,*)
'****************************************************************************' 828 CALL abor1_sfx(
"PGD_ISBA_PAR: PROBLEM IN SOIL GRID COMPUTATION")
833 ALLOCATE(dtv%XPAR_DICE(kdim,nvegtype))
835 hprogram,
'ARI',
'DICE: ice depth for runoff',
'NAT' 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 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
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)
850 ELSEIF (io%CISBA==
'DIF')
THEN 851 dtv%XPAR_DICE(:,:) = 0.0
852 dtv%LDATA_DICE(:) =.true.
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,*)
'***********************************************************' 861 CALL abor1_sfx(
'PGD_ISBA_PAR: NO PRESCRIBED VALUE NOR INPUT FILE FOR DICE' 864 IF (all(.NOT.dtv%LDATA_DICE))
DEALLOCATE(dtv%XPAR_DICE)
868 ALLOCATE(dtv%XPAR_RSMIN(kdim,nvegtype))
870 hprogram,
'INV',
'RSMIN: minimal stomatal resistance''NAT' 872 IF (all(.NOT.dtv%LDATA_RSMIN))
DEALLOCATE(dtv%XPAR_RSMIN)
874 ALLOCATE(dtv%XPAR_GAMMA(kdim,nvegtype))
876 hprogram,
'ARI',
'GAMMA: gamma coefficient',
'NAT',cfnam_gamma
878 IF (all(.NOT.dtv%LDATA_GAMMA))
DEALLOCATE(dtv%XPAR_GAMMA)
880 ALLOCATE(dtv%XPAR_WRMAX_CF(kdim,nvegtype))
882 hprogram,
'ARI',
'WRMAX_CF: coeff. for max WR',
'NAT' 884 IF (all(.NOT.dtv%LDATA_WRMAX_CF))
DEALLOCATE(dtv%XPAR_WRMAX_CF)
886 ALLOCATE(dtv%XPAR_RGL(kdim,nvegtype))
888 hprogram,
'ARI',
'RGL: max SW rad. for photosynthesis''NAT' 890 IF (all(.NOT.dtv%LDATA_RGL))
DEALLOCATE(dtv%XPAR_RGL)
892 ALLOCATE(dtv%XPAR_CV(kdim,nvegtype))
894 hprogram,
'INV',
'CV: thermal inertia for vegetation''NAT' 896 IF (all(.NOT.dtv%LDATA_CV))
DEALLOCATE(dtv%XPAR_CV)
898 ALLOCATE(dtv%XPAR_Z0_O_Z0H(kdim,nvegtype))
900 hprogram,
'ARI',
'Z0_O_Z0H: ratio of roughness lengths''NAT' 902 IF (all(.NOT.dtv%LDATA_Z0_O_Z0H))
DEALLOCATE(dtv%XPAR_Z0_O_Z0H)
904 IF (.NOT.io%LECOCLIMAP .AND. .NOT.(any(dtv%LDATA_RSMIN).AND.any(dtv%LDATA_GAMMA
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,*)
'***********************************************************' 928 CALL abor1_sfx(
'PGD_ISBA_PAR: NO PRESCRIBED VALUE NOR INPUT FILE FOR CLASSICAL PARAMETERS' 934 IF (io%CPHOTO/=
'NON' .OR. &
935 (all(.NOT.dtv%LDATA_Z0).AND.(any(dtv%LDATA_LAI).OR.dtv%LDATA_VEGTYPE
THEN 937 ALLOCATE(dtv%XPAR_H_TREE(kdim,nvegtype))
939 hprogram,
'ARI',
'H_TREE: height of trees',
'NAT',cfnam_h_tree
941 IF (all(.NOT.dtv%LDATA_H_TREE))
THEN 942 DEALLOCATE(dtv%XPAR_H_TREE)
945 dtv%LDATA_H_TREE(1:3) = .false.
946 dtv%LDATA_H_TREE(13:18) = .false.
947 dtv%LDATA_H_TREE(20) = .false.
949 dtv%LDATA_H_TREE (1:3) = .false.
950 dtv%LDATA_H_TREE (7:12) = .false.
951 dtv%LDATA_H_TREE(18:19) = .false.
957 IF (io%CPHOTO/=
'NON' .OR. isize_lmeb_patch>0)
THEN 958 ALLOCATE(dtv%XPAR_BSLAI(kdim,nvegtype))
960 hprogram,
'ARI',
'BSLAI: biomass over LAI',
'NAT',cfnam_bslai
962 IF (all(.NOT.dtv%LDATA_BSLAI))
DEALLOCATE(dtv%XPAR_BSLAI)
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
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,*)
'***********************************************************' 979 CALL abor1_sfx(
'PGD_ISBA_PAR: NO PRESCRIBED VALUE NOR INPUT FILE FOR MEB PARAMETERS' 984 ALLOCATE(dtv%LDATA_IRRIG (ntime*nvegtype))
985 ALLOCATE(dtv%LDATA_WATSUP(ntime*nvegtype))
986 dtv%LDATA_IRRIG (:) = .false.
987 dtv%LDATA_WATSUP(:) = .false.
989 IF (io%CPHOTO/=
'NON')
THEN 991 ALLOCATE(dtv%XPAR_RE25 (kdim,nvegtype))
993 hprogram,
'ARI',
'RE25: ecosystem respiration',
'NAT' 995 IF (all(.NOT.dtv%LDATA_RE25))
DEALLOCATE(dtv%XPAR_RE25)
997 ALLOCATE(dtv%XPAR_LAIMIN(kdim,nvegtype))
999 hprogram,
'ARI',
'LAIMIN: minimum LAI',
'NAT',cfnam_laimin
1001 IF (all(.NOT.dtv%LDATA_LAIMIN))
DEALLOCATE(dtv%XPAR_LAIMIN)
1003 ALLOCATE(dtv%XPAR_SEFOLD(kdim,nvegtype))
1005 hprogram,
'ARI',
'SEFOLD: e-folding time for senescence''NAT' 1007 IF (all(.NOT.dtv%LDATA_SEFOLD))
DEALLOCATE(dtv%XPAR_SEFOLD)
1009 ALLOCATE(dtv%XPAR_GMES(kdim,nvegtype))
1011 hprogram,
'ARI',
'GMES: mesophyl conductance',
'NAT' 1013 IF (all(.NOT.dtv%LDATA_GMES))
DEALLOCATE(dtv%XPAR_GMES)
1015 ALLOCATE(dtv%XPAR_GC(kdim,nvegtype))
1017 hprogram,
'ARI',
'GC: cuticular conductance',
'NAT' 1019 IF (all(.NOT.dtv%LDATA_GC))
DEALLOCATE(dtv%XPAR_GC)
1021 IF (.NOT.io%LECOCLIMAP .AND. .NOT.(any(dtv%LDATA_H_TREE).AND.any(dtv%LDATA_RE25
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,*)
'***********************************************************' 1039 CALL abor1_sfx(
'PGD_ISBA_PAR: NO PRESCRIBED VALUE NOR INPUT FILE FOR AGS PARAMETERS' 1045 ALLOCATE(dtv%XPAR_F2I(kdim,nvegtype))
1047 hprogram,
'ARI',
'F2I: critical normalized soil water content (stress)''NAT' 1049 IF (all(.NOT.dtv%LDATA_F2I))
DEALLOCATE(dtv%XPAR_F2I)
1051 ALLOCATE(dtv%XPAR_DMAX(kdim,nvegtype))
1053 hprogram,
'ARI',
'DMAX: maximum air saturation deficit''NAT' 1055 IF (all(.NOT.dtv%LDATA_DMAX))
DEALLOCATE(dtv%XPAR_DMAX)
1057 ALLOCATE(dtv%LPAR_STRESS(kdim,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
1064 IF (all(.NOT.dtv%LDATA_STRESS))
DEALLOCATE(dtv%LPAR_STRESS)
1066 IF (.NOT.io%LECOCLIMAP .AND. .NOT.(any(dtv%LDATA_F2I).AND.any(dtv%LDATA_DMAX
THEN 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,*)
'***********************************************************' 1077 CALL abor1_sfx(
'PGD_ISBA_PAR: NO PRESCRIBED VALUE NOR INPUT FILE FOR AGS STRESS PARAMETERS' 1083 IF (io%CPHOTO==
'NIT' .OR. io%CPHOTO==
'NCB')
THEN 1085 ALLOCATE(dtv%XPAR_CE_NITRO(kdim,nvegtype))
1087 hprogram,
'ARI',
'CE_NITRO: leaf area ratio sensitivity to nitrogen ccion''NAT' 1089 IF (all(.NOT.dtv%LDATA_CE_NITRO))
DEALLOCATE(dtv%XPAR_CE_NITRO)
1091 ALLOCATE(dtv%XPAR_CF_NITRO(kdim,nvegtype))
1093 hprogram,
'ARI',
'CF_NITRO: lethal minimum value of leaf area ratio''NAT' 1095 IF (all(.NOT.dtv%LDATA_CF_NITRO))
DEALLOCATE(dtv%XPAR_CF_NITRO)
1097 ALLOCATE(dtv%XPAR_CNA_NITRO(kdim,nvegtype))
1099 hprogram,
'ARI',
'CNA_NITRO: nitrogen ccion of active biomass''NAT' 1101 IF (all(.NOT.dtv%LDATA_CNA_NITRO))
DEALLOCATE(dtv%XPAR_CNA_NITRO)
1103 IF (.NOT.io%LECOCLIMAP .AND. &
1104 .NOT.(any(dtv%LDATA_CE_NITRO).AND.any(dtv%LDATA_CF_NITRO).AND.any
THEN 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,*)
'***********************************************************' 1116 CALL abor1_sfx(
'PGD_ISBA_PAR: NO PRESCRIBED VALUE NOR INPUT FILE FOR AGS NITROGEN PARAMETERS' 1122 ALLOCATE(dtv%XPAR_IRRIG(kdim,dtv%NTIME,nvegtype))
1124 hprogram,
'ARI',
'IRRIG: flag for irrigation''NAT' 1126 IF (all(.NOT.dtv%LDATA_IRRIG))
DEALLOCATE(dtv%XPAR_IRRIG)
1128 ALLOCATE(dtv%XPAR_WATSUP(kdim,dtv%NTIME,nvegtype))
1130 hprogram,
'ARI',
'WATSUP: water supply during irr. (mm)''NAT' 1132 IF (all(.NOT.dtv%LDATA_WATSUP))
DEALLOCATE(dtv%XPAR_WATSUP)
1134 ALLOCATE(dtv%XPAR_SEED_M(kdim,nvegtype))
1136 hprogram,
'MAJ',
'SEED_M: month of seeding',
'NAT' 1138 IF (all(.NOT.dtv%LDATA_SEED_M))
DEALLOCATE(dtv%XPAR_SEED_M)
1140 ALLOCATE(dtv%XPAR_SEED_D(kdim,nvegtype))
1142 hprogram,
'MAJ',
'SEED_D: day of seeding',
'NAT' 1144 IF (all(.NOT.dtv%LDATA_SEED_D))
DEALLOCATE(dtv%XPAR_SEED_D)
1146 ALLOCATE(dtv%XPAR_REAP_M(kdim,nvegtype))
1148 hprogram,
'MAJ',
'REAP_M: month of reaping',
'NAT' 1150 IF (all(.NOT.dtv%LDATA_REAP_M))
DEALLOCATE(dtv%XPAR_REAP_M)
1152 ALLOCATE(dtv%XPAR_REAP_D(kdim,nvegtype))
1154 hprogram,
'MAJ',
'REAP_D: day of reaping',
'NAT' 1156 IF (all(.NOT.dtv%LDATA_REAP_D))
DEALLOCATE(dtv%XPAR_REAP_D)
1160 IF ((any(dtv%LDATA_IRRIG).OR.any(dtv%LDATA_WATSUP).OR.any(dtv%LDATA_SEED_M
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,*)
'***********************************************************' 1174 CALL abor1_sfx(
'PGD_ISBA_PAR: MISSING PRESCRIBED VALUE OR INPUT FILE FOR IRRIGATION PARAMETERS' 1178 IF (.NOT.io%LECOCLIMAP .AND. .NOT.(any(dtv%LDATA_IRRIG).AND.any(dtv%LDATA_WATSUP
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,*)
'***********************************************************' 1195 CALL abor1_sfx(
'PGD_ISBA_PAR: NO PRESCRIBED VALUE NOR INPUT FILE FOR IRRIGATION PARAMETERS' 1206 ALLOCATE(dtv%XPAR_CONDSAT(kdim,io%NGROUND_LAYER))
1208 hprogram,
'ARI',
'CONDSAT: ',
'NAT',cfnam_condsat,cftyp_condsat
1210 IF (.NOT.dtv%LDATA_CONDSAT)
DEALLOCATE(dtv%XPAR_CONDSAT)
1212 ALLOCATE(dtv%XPAR_MPOTSAT(kdim,io%NGROUND_LAYER))
1214 hprogram,
'ARI',
'MPOTSAT: ',
'NAT',cfnam_mpotsat,cftyp_mpotsat
1216 IF (.NOT.dtv%LDATA_MPOTSAT)
DEALLOCATE(dtv%XPAR_MPOTSAT)
1218 ALLOCATE(dtv%XPAR_BCOEF(kdim,io%NGROUND_LAYER))
1220 hprogram,
'ARI',
'BCOEF: ',
'NAT',cfnam_bcoef,cftyp_bcoef
1222 IF (.NOT.dtv%LDATA_BCOEF)
DEALLOCATE(dtv%XPAR_BCOEF)
1224 ALLOCATE(dtv%XPAR_WWILT(kdim,io%NGROUND_LAYER))
1226 hprogram,
'ARI',
'WWILT: ',
'NAT',cfnam_wwilt,cftyp_wwilt
1228 IF (.NOT.dtv%LDATA_WWILT)
DEALLOCATE(dtv%XPAR_WWILT)
1230 ALLOCATE(dtv%XPAR_WFC(kdim,io%NGROUND_LAYER))
1232 hprogram,
'ARI',
'WFC: ',
'NAT',cfnam_wfc,cftyp_wfc
1234 IF (.NOT.dtv%LDATA_WFC)
DEALLOCATE(dtv%XPAR_WFC)
1236 ALLOCATE(dtv%XPAR_WSAT(kdim,io%NGROUND_LAYER))
1238 hprogram,
'ARI',
'WSAT: ',
'NAT',cfnam_wsat,cftyp_wsat
1240 IF (.NOT.dtv%LDATA_WSAT)
DEALLOCATE(dtv%XPAR_WSAT)
1244 IF (io%LECOCLIMAP .AND. dtv%LDATA_VEGTYPE)
THEN
subroutine posnam(KULNAM, HDNAML, OFOUND, KLUOUT)
subroutine pgd_isba_par(DTCO, UG, U, USS, DTV, IO, S, KDIM, HPROG
subroutine abor1_sfx(YTEXT)
subroutine close_namelist(HPROGRAM, KLUNAM)
subroutine get_luout(HPROGRAM, KLUOUT)
intent(out) overrides sub arrays one Sort by the least significant key first sum(iindex(1:n))
subroutine open_namelist(HPROGRAM, KLUNAM, HFILE)