55 USE yomhook
,ONLY : lhook, dr_hook
56 USE parkind1
,ONLY : jprb
64 TYPE(isba_t
),
INTENT(INOUT) :: i
67 INTEGER,
INTENT(IN) :: ksize, ksw, kpatch
69 INTEGER :: isize_simple, isize_ground, isize_snow, isize_ksw, &
70 isize_abc, isize_0, isize_00
71 REAL(KIND=JPRB) :: zhook_handle
74 IF (lhook) CALL dr_hook(
'PACK_DIAG_PATCH_N',0,zhook_handle)
78 ALLOCATE(pkdi%XBLOCK_SIMPLE(ksize,pkdi%NSIZE_SIMPLE))
79 ALLOCATE(pkdi%XBLOCK_GROUND(ksize,i%NGROUND_LAYER,pkdi%NSIZE_GROUND))
80 ALLOCATE(pkdi%XBLOCK_SNOW(ksize,i%TSNOW%NLAYER,pkdi%NSIZE_SNOW))
81 ALLOCATE(pkdi%XBLOCK_KSW(ksize,ksw,pkdi%NSIZE_KSW))
82 ALLOCATE(pkdi%XBLOCK_ABC(ksize,
SIZE(i%XABC),pkdi%NSIZE_ABC))
83 ALLOCATE(pkdi%XBLOCK_0(0,pkdi%NSIZE_0))
84 ALLOCATE(pkdi%XBLOCK_00(0,0,pkdi%NSIZE_00))
94 isize_simple = isize_simple + 1
95 pkdi%XP_CH => pkdi%XBLOCK_SIMPLE(:,isize_simple)
96 isize_simple = isize_simple + 1
97 pkdi%XP_CE => pkdi%XBLOCK_SIMPLE(:,isize_simple)
98 isize_simple = isize_simple + 1
99 pkdi%XP_CD => pkdi%XBLOCK_SIMPLE(:,isize_simple)
100 isize_simple = isize_simple + 1
101 pkdi%XP_CDN => pkdi%XBLOCK_SIMPLE(:,isize_simple)
102 isize_simple = isize_simple + 1
103 pkdi%XP_RI => pkdi%XBLOCK_SIMPLE(:,isize_simple)
104 isize_simple = isize_simple + 1
105 pkdi%XP_HU => pkdi%XBLOCK_SIMPLE(:,isize_simple)
106 isize_simple = isize_simple + 1
107 pkdi%XP_HUG => pkdi%XBLOCK_SIMPLE(:,isize_simple)
108 isize_simple = isize_simple + 1
109 pkdi%XP_ALBT => pkdi%XBLOCK_SIMPLE(:,isize_simple)
110 isize_simple = isize_simple + 1
111 pkdi%XP_RN => pkdi%XBLOCK_SIMPLE(:,isize_simple)
112 isize_simple = isize_simple + 1
113 pkdi%XP_H => pkdi%XBLOCK_SIMPLE(:,isize_simple)
114 isize_simple = isize_simple + 1
115 pkdi%XP_LEI => pkdi%XBLOCK_SIMPLE(:,isize_simple)
116 isize_simple = isize_simple + 1
117 pkdi%XP_LEG => pkdi%XBLOCK_SIMPLE(:,isize_simple)
118 isize_simple = isize_simple + 1
119 pkdi%XP_LEGI => pkdi%XBLOCK_SIMPLE(:,isize_simple)
120 isize_simple = isize_simple + 1
121 pkdi%XP_LEV => pkdi%XBLOCK_SIMPLE(:,isize_simple)
122 isize_simple = isize_simple + 1
123 pkdi%XP_LES => pkdi%XBLOCK_SIMPLE(:,isize_simple)
124 isize_simple = isize_simple + 1
125 pkdi%XP_LER => pkdi%XBLOCK_SIMPLE(:,isize_simple)
126 isize_simple = isize_simple + 1
127 pkdi%XP_LETR => pkdi%XBLOCK_SIMPLE(:,isize_simple)
128 isize_simple = isize_simple + 1
129 pkdi%XP_GFLUX => pkdi%XBLOCK_SIMPLE(:,isize_simple)
130 isize_simple = isize_simple + 1
131 pkdi%XP_EVAP => pkdi%XBLOCK_SIMPLE(:,isize_simple)
132 isize_simple = isize_simple + 1
133 pkdi%XP_SUBL => pkdi%XBLOCK_SIMPLE(:,isize_simple)
134 isize_simple = isize_simple + 1
135 pkdi%XP_RESTORE => pkdi%XBLOCK_SIMPLE(:,isize_simple)
136 isize_simple = isize_simple + 1
137 pkdi%XP_DRAIN => pkdi%XBLOCK_SIMPLE(:,isize_simple)
138 isize_simple = isize_simple + 1
139 pkdi%XP_QSB => pkdi%XBLOCK_SIMPLE(:,isize_simple)
140 isize_simple = isize_simple + 1
141 pkdi%XP_RUNOFF => pkdi%XBLOCK_SIMPLE(:,isize_simple)
142 isize_simple = isize_simple + 1
143 pkdi%XP_MELT => pkdi%XBLOCK_SIMPLE(:,isize_simple)
144 isize_simple = isize_simple + 1
145 pkdi%XP_MELTADV => pkdi%XBLOCK_SIMPLE(:,isize_simple)
146 isize_simple = isize_simple + 1
147 pkdi%XP_SRSFC => pkdi%XBLOCK_SIMPLE(:,isize_simple)
148 isize_simple = isize_simple + 1
149 pkdi%XP_RRSFC => pkdi%XBLOCK_SIMPLE(:,isize_simple)
150 isize_simple = isize_simple + 1
151 pkdi%XP_SNOWFREE_ALB=> pkdi%XBLOCK_SIMPLE(:,isize_simple)
153 isize_simple = isize_simple + 1
154 pkdi%XP_HORT => pkdi%XBLOCK_SIMPLE(:,isize_simple)
155 isize_simple = isize_simple + 1
156 pkdi%XP_DRIP => pkdi%XBLOCK_SIMPLE(:,isize_simple)
157 isize_simple = isize_simple + 1
158 pkdi%XP_RRVEG => pkdi%XBLOCK_SIMPLE(:,isize_simple)
159 isize_simple = isize_simple + 1
160 pkdi%XP_IRRIG_FLUX=> pkdi%XBLOCK_SIMPLE(:,isize_simple)
162 isize_ksw = isize_ksw + 1
163 pkdi%XP_SWBD => pkdi%XBLOCK_KSW(:,:,isize_ksw)
164 isize_ksw = isize_ksw + 1
165 pkdi%XP_SWBU => pkdi%XBLOCK_KSW(:,:,isize_ksw)
167 isize_simple = isize_simple + 1
168 pkdi%XP_SWD => pkdi%XBLOCK_SIMPLE(:,isize_simple)
169 isize_simple = isize_simple + 1
170 pkdi%XP_SWU => pkdi%XBLOCK_SIMPLE(:,isize_simple)
171 isize_simple = isize_simple + 1
172 pkdi%XP_LWD => pkdi%XBLOCK_SIMPLE(:,isize_simple)
173 isize_simple = isize_simple + 1
174 pkdi%XP_LWU => pkdi%XBLOCK_SIMPLE(:,isize_simple)
175 isize_simple = isize_simple + 1
176 pkdi%XP_FMU => pkdi%XBLOCK_SIMPLE(:,isize_simple)
177 isize_simple = isize_simple + 1
178 pkdi%XP_FMV => pkdi%XBLOCK_SIMPLE(:,isize_simple)
180 isize_simple = isize_simple + 1
181 pkdi%XP_Z0_WITH_SNOW => pkdi%XBLOCK_SIMPLE(:,isize_simple)
182 isize_simple = isize_simple + 1
183 pkdi%XP_Z0H_WITH_SNOW=> pkdi%XBLOCK_SIMPLE(:,isize_simple)
184 isize_simple = isize_simple + 1
185 pkdi%XP_Z0EFF => pkdi%XBLOCK_SIMPLE(:,isize_simple)
187 isize_simple = isize_simple + 1
188 pkdi%XP_CG => pkdi%XBLOCK_SIMPLE(:,isize_simple)
189 isize_simple = isize_simple + 1
190 pkdi%XP_C1 => pkdi%XBLOCK_SIMPLE(:,isize_simple)
191 isize_simple = isize_simple + 1
192 pkdi%XP_C2 => pkdi%XBLOCK_SIMPLE(:,isize_simple)
193 isize_simple = isize_simple + 1
194 pkdi%XP_WGEQ => pkdi%XBLOCK_SIMPLE(:,isize_simple)
195 isize_simple = isize_simple + 1
196 pkdi%XP_CT => pkdi%XBLOCK_SIMPLE(:,isize_simple)
197 isize_simple = isize_simple + 1
198 pkdi%XP_RS => pkdi%XBLOCK_SIMPLE(:,isize_simple)
199 isize_simple = isize_simple + 1
200 pkdi%XP_HV => pkdi%XBLOCK_SIMPLE(:,isize_simple)
201 isize_simple = isize_simple + 1
202 pkdi%XP_QS => pkdi%XBLOCK_SIMPLE(:,isize_simple)
204 isize_simple = isize_simple + 1
205 pkdi%XP_TS => pkdi%XBLOCK_SIMPLE(:,isize_simple)
206 isize_simple = isize_simple + 1
207 pkdi%XP_TSRAD => pkdi%XBLOCK_SIMPLE(:,isize_simple)
209 isize_simple = isize_simple + 1
210 pkdi%XP_RESP_AUTO => pkdi%XBLOCK_SIMPLE(:,isize_simple)
211 isize_simple = isize_simple + 1
212 pkdi%XP_RESP_ECO => pkdi%XBLOCK_SIMPLE(:,isize_simple)
213 isize_simple = isize_simple + 1
214 pkdi%XP_GPP => pkdi%XBLOCK_SIMPLE(:,isize_simple)
216 isize_simple = isize_simple + 1
217 pkdi%XP_IFLOOD => pkdi%XBLOCK_SIMPLE(:,isize_simple)
218 isize_simple = isize_simple + 1
219 pkdi%XP_PFLOOD => pkdi%XBLOCK_SIMPLE(:,isize_simple)
220 isize_simple = isize_simple + 1
221 pkdi%XP_LE_FLOOD => pkdi%XBLOCK_SIMPLE(:,isize_simple)
222 isize_simple = isize_simple + 1
223 pkdi%XP_LEI_FLOOD=> pkdi%XBLOCK_SIMPLE(:,isize_simple)
225 IF (i%TSNOW%SCHEME==
'3-L' .OR. i%TSNOW%SCHEME==
'CRO')
THEN
226 isize_simple = isize_simple + 1
227 pkdi%XP_RNSNOW => pkdi%XBLOCK_SIMPLE(:,isize_simple)
228 isize_simple = isize_simple + 1
229 pkdi%XP_HSNOW => pkdi%XBLOCK_SIMPLE(:,isize_simple)
230 isize_simple = isize_simple + 1
231 pkdi%XP_HPSNOW => pkdi%XBLOCK_SIMPLE(:,isize_simple)
232 isize_simple = isize_simple + 1
233 pkdi%XP_GFLUXSNOW => pkdi%XBLOCK_SIMPLE(:,isize_simple)
234 isize_simple = isize_simple + 1
235 pkdi%XP_USTARSNOW => pkdi%XBLOCK_SIMPLE(:,isize_simple)
236 isize_simple = isize_simple + 1
237 pkdi%XP_GRNDFLUX => pkdi%XBLOCK_SIMPLE(:,isize_simple)
238 isize_simple = isize_simple + 1
239 pkdi%XP_LESL => pkdi%XBLOCK_SIMPLE(:,isize_simple)
240 isize_simple = isize_simple + 1
241 pkdi%XP_SNDRIFT => pkdi%XBLOCK_SIMPLE(:,isize_simple)
242 isize_simple = isize_simple + 1
243 pkdi%XP_CDSNOW => pkdi%XBLOCK_SIMPLE(:,isize_simple)
244 isize_simple = isize_simple + 1
245 pkdi%XP_CHSNOW => pkdi%XBLOCK_SIMPLE(:,isize_simple)
246 isize_simple = isize_simple + 1
247 pkdi%XP_SNOWHMASS => pkdi%XBLOCK_SIMPLE(:,isize_simple)
248 isize_simple = isize_simple + 1
249 pkdi%XP_RN_ISBA => pkdi%XBLOCK_SIMPLE(:,isize_simple)
250 isize_simple = isize_simple + 1
251 pkdi%XP_H_ISBA => pkdi%XBLOCK_SIMPLE(:,isize_simple)
252 isize_simple = isize_simple + 1
253 pkdi%XP_LEG_ISBA => pkdi%XBLOCK_SIMPLE(:,isize_simple)
254 isize_simple = isize_simple + 1
255 pkdi%XP_LEGI_ISBA => pkdi%XBLOCK_SIMPLE(:,isize_simple)
256 isize_simple = isize_simple + 1
257 pkdi%XP_LEV_ISBA => pkdi%XBLOCK_SIMPLE(:,isize_simple)
258 isize_simple = isize_simple + 1
259 pkdi%XP_LETR_ISBA => pkdi%XBLOCK_SIMPLE(:,isize_simple)
260 isize_simple = isize_simple + 1
261 pkdi%XP_USTAR_ISBA=> pkdi%XBLOCK_SIMPLE(:,isize_simple)
262 isize_simple = isize_simple + 1
263 pkdi%XP_LER_ISBA => pkdi%XBLOCK_SIMPLE(:,isize_simple)
264 isize_simple = isize_simple + 1
265 pkdi%XP_LE_ISBA => pkdi%XBLOCK_SIMPLE(:,isize_simple)
266 isize_simple = isize_simple + 1
267 pkdi%XP_LEI_ISBA => pkdi%XBLOCK_SIMPLE(:,isize_simple)
268 isize_simple = isize_simple + 1
269 pkdi%XP_GFLUX_ISBA=> pkdi%XBLOCK_SIMPLE(:,isize_simple)
270 isize_snow = isize_snow + 1
271 pkdi%XP_SNOWLIQ => pkdi%XBLOCK_SNOW(:,:,isize_snow)
272 isize_snow = isize_snow + 1
273 pkdi%XP_SNOWDZ => pkdi%XBLOCK_SNOW(:,:,isize_snow)
274 isize_simple = isize_simple + 1
275 pkdi%XP_SWNET_N => pkdi%XBLOCK_SIMPLE(:,isize_simple)
276 isize_simple = isize_simple + 1
277 pkdi%XP_SWNET_NS => pkdi%XBLOCK_SIMPLE(:,isize_simple)
278 isize_simple = isize_simple + 1
279 pkdi%XP_LWNET_N => pkdi%XBLOCK_SIMPLE(:,isize_simple)
281 isize_0 = isize_0 + 1
282 pkdi%XP_RNSNOW => pkdi%XBLOCK_0(:,isize_0)
283 isize_0 = isize_0 + 1
284 pkdi%XP_HSNOW => pkdi%XBLOCK_0(:,isize_0)
285 isize_0 = isize_0 + 1
286 pkdi%XP_HPSNOW => pkdi%XBLOCK_0(:,isize_0)
287 isize_0 = isize_0 + 1
288 pkdi%XP_GFLUXSNOW => pkdi%XBLOCK_0(:,isize_0)
289 isize_0 = isize_0 + 1
290 pkdi%XP_USTARSNOW => pkdi%XBLOCK_0(:,isize_0)
291 isize_0 = isize_0 + 1
292 pkdi%XP_GRNDFLUX => pkdi%XBLOCK_0(:,isize_0)
293 isize_0 = isize_0 + 1
294 pkdi%XP_LESL => pkdi%XBLOCK_0(:,isize_0)
295 isize_0 = isize_0 + 1
296 pkdi%XP_SNDRIFT => pkdi%XBLOCK_0(:,isize_0)
297 isize_0 = isize_0 + 1
298 pkdi%XP_CDSNOW => pkdi%XBLOCK_0(:,isize_0)
299 isize_0 = isize_0 + 1
300 pkdi%XP_CHSNOW => pkdi%XBLOCK_0(:,isize_0)
301 isize_0 = isize_0 + 1
302 pkdi%XP_SNOWHMASS => pkdi%XBLOCK_0(:,isize_0)
303 isize_0 = isize_0 + 1
304 pkdi%XP_RN_ISBA => pkdi%XBLOCK_0(:,isize_0)
305 isize_0 = isize_0 + 1
306 pkdi%XP_H_ISBA => pkdi%XBLOCK_0(:,isize_0)
307 isize_0 = isize_0 + 1
308 pkdi%XP_LEG_ISBA => pkdi%XBLOCK_0(:,isize_0)
309 isize_0 = isize_0 + 1
310 pkdi%XP_LEGI_ISBA => pkdi%XBLOCK_0(:,isize_0)
311 isize_0 = isize_0 + 1
312 pkdi%XP_LEV_ISBA => pkdi%XBLOCK_0(:,isize_0)
313 isize_0 = isize_0 + 1
314 pkdi%XP_LETR_ISBA => pkdi%XBLOCK_0(:,isize_0)
315 isize_0 = isize_0 + 1
316 pkdi%XP_USTAR_ISBA=> pkdi%XBLOCK_0(:,isize_0)
317 isize_0 = isize_0 + 1
318 pkdi%XP_LER_ISBA => pkdi%XBLOCK_0(:,isize_0)
319 isize_0 = isize_0 + 1
320 pkdi%XP_LE_ISBA => pkdi%XBLOCK_0(:,isize_0)
321 isize_0 = isize_0 + 1
322 pkdi%XP_LEI_ISBA => pkdi%XBLOCK_0(:,isize_0)
323 isize_0 = isize_0 + 1
324 pkdi%XP_GFLUX_ISBA=> pkdi%XBLOCK_0(:,isize_0)
325 isize_00 = isize_00 + 1
326 pkdi%XP_SNOWLIQ => pkdi%XBLOCK_00(:,:,isize_00)
327 isize_00 = isize_00 + 1
328 pkdi%XP_SNOWDZ => pkdi%XBLOCK_00(:,:,isize_00)
329 isize_0 = isize_0 + 1
330 pkdi%XP_SWNET_N => pkdi%XBLOCK_0(:,isize_0)
331 isize_0 = isize_0 + 1
332 pkdi%XP_SWNET_NS => pkdi%XBLOCK_0(:,isize_0)
333 isize_0 = isize_0 + 1
334 pkdi%XP_LWNET_N => pkdi%XBLOCK_0(:,isize_0)
337 IF(i%TSNOW%SCHEME/=
'EBA')
THEN
338 isize_snow = isize_snow + 1
339 pkdi%XP_SNOWTEMP => pkdi%XBLOCK_SNOW(:,:,isize_snow)
341 isize_00 = isize_00 + 1
342 pkdi%XP_SNOWTEMP => pkdi%XBLOCK_00(:,:,isize_00)
345 IF(i%TSNOW%SCHEME==
'EBA')
THEN
346 isize_simple = isize_simple + 1
347 pkdi%XP_SNOWFREE_ALB_VEG=> pkdi%XBLOCK_SIMPLE(:,isize_simple)
348 isize_simple = isize_simple + 1
349 pkdi%XP_SNOWFREE_ALB_SOIL=> pkdi%XBLOCK_SIMPLE(:,isize_simple)
351 isize_0 = isize_0 + 1
352 pkdi%XP_SNOWFREE_ALB_VEG=> pkdi%XBLOCK_0(:,isize_0)
353 isize_0 = isize_0 + 1
354 pkdi%XP_SNOWFREE_ALB_SOIL=> pkdi%XBLOCK_0(:,isize_0)
358 isize_simple = isize_simple + 1
359 pkdi%XP_FAPAR => pkdi%XBLOCK_SIMPLE(:,isize_simple)
360 isize_simple = isize_simple + 1
361 pkdi%XP_FAPIR => pkdi%XBLOCK_SIMPLE(:,isize_simple)
362 isize_simple = isize_simple + 1
363 pkdi%XP_FAPAR_BS => pkdi%XBLOCK_SIMPLE(:,isize_simple)
364 isize_simple = isize_simple + 1
365 pkdi%XP_FAPIR_BS => pkdi%XBLOCK_SIMPLE(:,isize_simple)
367 isize_0 = isize_0 + 1
368 pkdi%XP_FAPAR => pkdi%XBLOCK_0(:,isize_0)
369 isize_0 = isize_0 + 1
370 pkdi%XP_FAPIR => pkdi%XBLOCK_0(:,isize_0)
371 isize_0 = isize_0 + 1
372 pkdi%XP_FAPAR_BS => pkdi%XBLOCK_0(:,isize_0)
373 isize_0 = isize_0 + 1
374 pkdi%XP_FAPIR_BS => pkdi%XBLOCK_0(:,isize_0)
377 IF (i%CPHOTO/=
'NON')
THEN
378 isize_abc = isize_abc + 1
379 pkdi%XP_IACAN => pkdi%XBLOCK_ABC(:,:,isize_abc)
381 isize_00 = isize_00 + 1
382 pkdi%XP_IACAN => pkdi%XBLOCK_00(:,:,isize_00)
386 isize_simple = isize_simple + 1
387 pkdi%XP_T2M => pkdi%XBLOCK_SIMPLE(:,isize_simple)
388 isize_simple = isize_simple + 1
389 pkdi%XP_Q2M => pkdi%XBLOCK_SIMPLE(:,isize_simple)
390 isize_simple = isize_simple + 1
391 pkdi%XP_HU2M => pkdi%XBLOCK_SIMPLE(:,isize_simple)
392 isize_simple = isize_simple + 1
393 pkdi%XP_ZON10M => pkdi%XBLOCK_SIMPLE(:,isize_simple)
394 isize_simple = isize_simple + 1
395 pkdi%XP_MER10M => pkdi%XBLOCK_SIMPLE(:,isize_simple)
397 isize_0 = isize_0 + 1
398 pkdi%XP_T2M => pkdi%XBLOCK_0(:,isize_0)
399 isize_0 = isize_0 + 1
400 pkdi%XP_Q2M => pkdi%XBLOCK_0(:,isize_0)
401 isize_0 = isize_0 + 1
402 pkdi%XP_HU2M => pkdi%XBLOCK_0(:,isize_0)
403 isize_0 = isize_0 + 1
404 pkdi%XP_ZON10M => pkdi%XBLOCK_0(:,isize_0)
405 isize_0 = isize_0 + 1
406 pkdi%XP_MER10M => pkdi%XBLOCK_0(:,isize_0)
409 IF (dgmi%LSURF_MISC_BUDGET)
THEN
410 isize_ground = isize_ground + 1
411 pkdi%XP_SWI => pkdi%XBLOCK_GROUND(:,:,isize_ground)
412 isize_ground = isize_ground + 1
413 pkdi%XP_TSWI => pkdi%XBLOCK_GROUND(:,:,isize_ground)
414 isize_simple = isize_simple + 1
415 pkdi%XP_TWSNOW => pkdi%XBLOCK_SIMPLE(:,isize_simple)
416 isize_simple = isize_simple + 1
417 pkdi%XP_TDSNOW => pkdi%XBLOCK_SIMPLE(:,isize_simple)
419 isize_00 = isize_00 + 1
420 pkdi%XP_SWI => pkdi%XBLOCK_00(:,:,isize_00)
421 isize_00 = isize_00 + 1
422 pkdi%XP_TSWI => pkdi%XBLOCK_00(:,:,isize_00)
423 isize_0 = isize_0 + 1
424 pkdi%XP_TWSNOW => pkdi%XBLOCK_0(:,isize_0)
425 isize_0 = isize_0 + 1
426 pkdi%XP_TDSNOW => pkdi%XBLOCK_0(:,isize_0)
430 isize_simple = isize_simple + 1
431 pkdi%XP_ICEFLUX=> pkdi%XBLOCK_SIMPLE(:,isize_simple)
433 isize_0 = isize_0 + 1
434 pkdi%XP_ICEFLUX=> pkdi%XBLOCK_0(:,isize_0)
438 IF (i%LMEB_PATCH(kpatch))
THEN
439 isize_simple = isize_simple + 1
440 pkdi%XP_SWUP => pkdi%XBLOCK_SIMPLE(:,isize_simple)
441 isize_simple = isize_simple + 1
442 pkdi%XP_SWNET_V => pkdi%XBLOCK_SIMPLE(:,isize_simple)
443 isize_simple = isize_simple + 1
444 pkdi%XP_SWNET_G => pkdi%XBLOCK_SIMPLE(:,isize_simple)
445 isize_simple = isize_simple + 1
446 pkdi%XP_LWUP => pkdi%XBLOCK_SIMPLE(:,isize_simple)
447 isize_simple = isize_simple + 1
448 pkdi%XP_LWNET_V => pkdi%XBLOCK_SIMPLE(:,isize_simple)
449 isize_simple = isize_simple + 1
450 pkdi%XP_LWNET_G => pkdi%XBLOCK_SIMPLE(:,isize_simple)
451 isize_simple = isize_simple + 1
452 pkdi%XP_LEVCV => pkdi%XBLOCK_SIMPLE(:,isize_simple)
453 isize_simple = isize_simple + 1
454 pkdi%XP_LESC => pkdi%XBLOCK_SIMPLE(:,isize_simple)
455 isize_simple = isize_simple + 1
456 pkdi%XP_H_V_C => pkdi%XBLOCK_SIMPLE(:,isize_simple)
457 isize_simple = isize_simple + 1
458 pkdi%XP_H_G_C => pkdi%XBLOCK_SIMPLE(:,isize_simple)
461 isize_simple = isize_simple + 1
462 pkdi%XP_LETRCV => pkdi%XBLOCK_SIMPLE(:,isize_simple)
465 isize_simple = isize_simple + 1
466 pkdi%XP_LELITTER => pkdi%XBLOCK_SIMPLE(:,isize_simple)
467 isize_simple = isize_simple + 1
468 pkdi%XP_LELITTERI => pkdi%XBLOCK_SIMPLE(:,isize_simple)
469 isize_simple = isize_simple + 1
470 pkdi%XP_DRIPLIT => pkdi%XBLOCK_SIMPLE(:,isize_simple)
471 isize_simple = isize_simple + 1
472 pkdi%XP_RRLIT => pkdi%XBLOCK_SIMPLE(:,isize_simple)
473 isize_simple = isize_simple + 1
474 pkdi%XP_LERCV => pkdi%XBLOCK_SIMPLE(:,isize_simple)
475 isize_simple = isize_simple + 1
476 pkdi%XP_H_C_A => pkdi%XBLOCK_SIMPLE(:,isize_simple)
477 isize_simple = isize_simple + 1
478 pkdi%XP_H_N_C => pkdi%XBLOCK_SIMPLE(:,isize_simple)
479 isize_simple = isize_simple + 1
480 pkdi%XP_LE_C_A => pkdi%XBLOCK_SIMPLE(:,isize_simple)
481 isize_simple = isize_simple + 1
482 pkdi%XP_LE_V_C => pkdi%XBLOCK_SIMPLE(:,isize_simple)
483 isize_simple = isize_simple + 1
484 pkdi%XP_LE_G_C => pkdi%XBLOCK_SIMPLE(:,isize_simple)
485 isize_simple = isize_simple + 1
486 pkdi%XP_LE_N_C => pkdi%XBLOCK_SIMPLE(:,isize_simple)
487 isize_simple = isize_simple + 1
488 pkdi%XP_EVAP_N_C => pkdi%XBLOCK_SIMPLE(:,isize_simple)
489 isize_simple = isize_simple + 1
490 pkdi%XP_EVAP_G_C => pkdi%XBLOCK_SIMPLE(:,isize_simple)
491 isize_simple = isize_simple + 1
492 pkdi%XP_SR_GN => pkdi%XBLOCK_SIMPLE(:,isize_simple)
493 isize_simple = isize_simple + 1
494 pkdi%XP_MELTCV => pkdi%XBLOCK_SIMPLE(:,isize_simple)
495 isize_simple = isize_simple + 1
496 pkdi%XP_FRZCV => pkdi%XBLOCK_SIMPLE(:,isize_simple)
497 isize_simple = isize_simple + 1
498 pkdi%XP_SWDOWN_GN => pkdi%XBLOCK_SIMPLE(:,isize_simple)
499 isize_simple = isize_simple + 1
500 pkdi%XP_LWDOWN_GN => pkdi%XBLOCK_SIMPLE(:,isize_simple)
502 isize_0 = isize_0 + 1
503 pkdi%XP_SWUP => pkdi%XBLOCK_0(:,isize_0)
504 isize_0 = isize_0 + 1
505 pkdi%XP_SWNET_V => pkdi%XBLOCK_0(:,isize_0)
506 isize_0 = isize_0 + 1
507 pkdi%XP_SWNET_G => pkdi%XBLOCK_0(:,isize_0)
508 isize_0 = isize_0 + 1
509 pkdi%XP_LWUP => pkdi%XBLOCK_0(:,isize_0)
510 isize_0 = isize_0 + 1
511 pkdi%XP_LWNET_V => pkdi%XBLOCK_0(:,isize_0)
512 isize_0 = isize_0 + 1
513 pkdi%XP_LWNET_G => pkdi%XBLOCK_0(:,isize_0)
514 isize_0 = isize_0 + 1
515 pkdi%XP_LEVCV => pkdi%XBLOCK_0(:,isize_0)
516 isize_0 = isize_0 + 1
517 pkdi%XP_LESC => pkdi%XBLOCK_0(:,isize_0)
518 isize_0 = isize_0 + 1
519 pkdi%XP_H_V_C => pkdi%XBLOCK_0(:,isize_0)
520 isize_0 = isize_0 + 1
521 pkdi%XP_H_G_C => pkdi%XBLOCK_0(:,isize_0)
524 isize_0 = isize_0 + 1
525 pkdi%XP_LETRCV => pkdi%XBLOCK_0(:,isize_0)
528 isize_0 = isize_0 + 1
529 pkdi%XP_LELITTER => pkdi%XBLOCK_0(:,isize_0)
530 isize_0 = isize_0 + 1
531 pkdi%XP_LELITTERI => pkdi%XBLOCK_0(:,isize_0)
532 isize_0 = isize_0 + 1
533 pkdi%XP_DRIPLIT => pkdi%XBLOCK_0(:,isize_0)
534 isize_0 = isize_0 + 1
535 pkdi%XP_RRLIT => pkdi%XBLOCK_0(:,isize_0)
536 isize_0 = isize_0 + 1
537 pkdi%XP_LERCV => pkdi%XBLOCK_0(:,isize_0)
538 isize_0 = isize_0 + 1
539 pkdi%XP_H_C_A => pkdi%XBLOCK_0(:,isize_0)
540 isize_0 = isize_0 + 1
541 pkdi%XP_H_N_C => pkdi%XBLOCK_0(:,isize_0)
542 isize_0 = isize_0 + 1
543 pkdi%XP_LE_C_A => pkdi%XBLOCK_0(:,isize_0)
544 isize_0 = isize_0 + 1
545 pkdi%XP_LE_V_C => pkdi%XBLOCK_0(:,isize_0)
546 isize_0 = isize_0 + 1
547 pkdi%XP_LE_G_C => pkdi%XBLOCK_0(:,isize_0)
548 isize_0 = isize_0 + 1
549 pkdi%XP_LE_N_C => pkdi%XBLOCK_0(:,isize_0)
550 isize_0 = isize_0 + 1
551 pkdi%XP_EVAP_N_C => pkdi%XBLOCK_0(:,isize_0)
552 isize_0 = isize_0 + 1
553 pkdi%XP_EVAP_G_C => pkdi%XBLOCK_0(:,isize_0)
554 isize_0 = isize_0 + 1
555 pkdi%XP_SR_GN => pkdi%XBLOCK_0(:,isize_0)
556 isize_0 = isize_0 + 1
557 pkdi%XP_MELTCV => pkdi%XBLOCK_0(:,isize_0)
558 isize_0 = isize_0 + 1
559 pkdi%XP_FRZCV => pkdi%XBLOCK_0(:,isize_0)
560 isize_0 = isize_0 + 1
561 pkdi%XP_SWDOWN_GN => pkdi%XBLOCK_0(:,isize_0)
562 isize_0 = isize_0 + 1
563 pkdi%XP_LWDOWN_GN => pkdi%XBLOCK_0(:,isize_0)
565 isize_0 = isize_0 + 1
566 pkdi%XP_LETRGV => pkdi%XBLOCK_0(:,isize_0)
567 isize_0 = isize_0 + 1
568 pkdi%XP_LERGV => pkdi%XBLOCK_0(:,isize_0)
570 IF(dgei%LWATER_BUDGET)
THEN
571 isize_simple = isize_simple + 1
572 pkdi%XP_DWG=> pkdi%XBLOCK_SIMPLE(:,isize_simple)
573 isize_simple = isize_simple + 1
574 pkdi%XP_DWGI=> pkdi%XBLOCK_SIMPLE(:,isize_simple)
575 isize_simple = isize_simple + 1
576 pkdi%XP_DWR=> pkdi%XBLOCK_SIMPLE(:,isize_simple)
577 isize_simple = isize_simple + 1
578 pkdi%XP_DSWE=> pkdi%XBLOCK_SIMPLE(:,isize_simple)
579 isize_simple = isize_simple + 1
580 pkdi%XP_WATBUD=> pkdi%XBLOCK_SIMPLE(:,isize_simple)
582 isize_0 = isize_0 + 1
583 pkdi%XP_DWG=> pkdi%XBLOCK_0(:,isize_0)
584 isize_0 = isize_0 + 1
585 pkdi%XP_DWGI=> pkdi%XBLOCK_0(:,isize_0)
586 isize_0 = isize_0 + 1
587 pkdi%XP_DWR=> pkdi%XBLOCK_0(:,isize_0)
588 isize_0 = isize_0 + 1
589 pkdi%XP_DSWE=> pkdi%XBLOCK_0(:,isize_0)
590 isize_0 = isize_0 + 1
591 pkdi%XP_WATBUD=> pkdi%XBLOCK_0(:,isize_0)
595 IF (isize_simple.GT.pkdi%NSIZE_SIMPLE) &
596 CALL
abor1_sfx(
"PACK_DIAG_PATCH_n: PROBLEM DEFINING SIZE_SIMPLE / NUMBER OF FIELDS")
597 IF (isize_ground.GT.pkdi%NSIZE_GROUND) &
598 CALL
abor1_sfx(
"PACK_DIAG_PATCH_n: PROBLEM DEFINING SIZE_GROUND / NUMBER OF FIELDS")
599 IF (isize_snow.GT.pkdi%NSIZE_SNOW) &
600 CALL
abor1_sfx(
"PACK_DIAG_PATCH_n: PROBLEM DEFINING SIZE_SNOW / NUMBER OF FIELDS")
601 IF (isize_ksw.GT.pkdi%NSIZE_KSW) &
602 CALL
abor1_sfx(
"PACK_DIAG_PATCH_n: PROBLEM DEFINING SIZE_KSW / NUMBER OF FIELDS")
603 IF (isize_abc.GT.pkdi%NSIZE_ABC) &
604 CALL
abor1_sfx(
"PACK_DIAG_PATCH_n: PROBLEM DEFINING SIZE_3 / NUMBER OF FIELDS")
605 IF (isize_0.GT.pkdi%NSIZE_0) &
606 CALL
abor1_sfx(
"PACK_DIAG_PATCH_n: PROBLEM DEFINING SIZE_0 / NUMBER OF FIELDS")
607 IF (isize_00.GT.pkdi%NSIZE_00) &
608 CALL
abor1_sfx(
"PACK_DIAG_PATCH_n: PROBLEM DEFINING SIZE_00 / NUMBER OF FIELDS")
610 IF (lhook) CALL dr_hook(
'PACK_DIAG_PATCH_N',1,zhook_handle)
subroutine pack_diag_patch_n(DGEI, DGI, DGMI, I, PKDI, KSIZE, KSW, KPATCH)
subroutine abor1_sfx(YTEXT)