60 USE yomhook
,ONLY : lhook, dr_hook
61 USE parkind1
,ONLY : jprb
75 INTEGER,
INTENT(IN) :: klu
76 INTEGER,
INTENT(IN) :: ksw
77 CHARACTER(LEN=6),
INTENT(IN):: hprogram
84 CHARACTER(LEN=12) :: yrec
85 REAL(KIND=JPRB) :: zhook_handle
91 IF (lhook) CALL dr_hook(
'DIAG_WATFLUX_INIT_N',0,zhook_handle)
93 ALLOCATE(dgw%XDIAG_TS(klu))
96 IF (dgw%LSURF_BUDGET.OR.dgw%LSURF_BUDGETC)
THEN
97 ALLOCATE(dgw%XRN (klu))
98 ALLOCATE(dgw%XH (klu))
99 ALLOCATE(dgw%XLE (klu))
100 ALLOCATE(dgw%XLEI (klu))
101 ALLOCATE(dgw%XGFLUX (klu))
102 ALLOCATE(dgw%XEVAP (klu))
103 ALLOCATE(dgw%XSUBL (klu))
104 ALLOCATE(dgw%XSWD (klu))
105 ALLOCATE(dgw%XSWU (klu))
106 ALLOCATE(dgw%XLWD (klu))
107 ALLOCATE(dgw%XLWU (klu))
108 ALLOCATE(dgw%XSWBD (klu,ksw))
109 ALLOCATE(dgw%XSWBU (klu,ksw))
110 ALLOCATE(dgw%XFMU (klu))
111 ALLOCATE(dgw%XFMV (klu))
129 ALLOCATE(dgw%XRN (0))
131 ALLOCATE(dgw%XLE (0))
132 ALLOCATE(dgw%XLEI (0))
133 ALLOCATE(dgw%XGFLUX (0))
134 ALLOCATE(dgw%XEVAP (0))
135 ALLOCATE(dgw%XSUBL (0))
136 ALLOCATE(dgw%XSWD (0))
137 ALLOCATE(dgw%XSWU (0))
138 ALLOCATE(dgw%XLWD (0))
139 ALLOCATE(dgw%XLWU (0))
140 ALLOCATE(dgw%XSWBD (0,0))
141 ALLOCATE(dgw%XSWBU (0,0))
142 ALLOCATE(dgw%XFMU (0))
143 ALLOCATE(dgw%XFMV (0))
149 IF (dgw%LSURF_BUDGETC .OR. (lrestart .AND. .NOT.dgw%LRESET_BUDGETC))
THEN
151 IF (dgw%LSURF_BUDGETC .OR. .NOT.dgw%LRESET_BUDGETC)
THEN
154 ALLOCATE(dgw%XRNC (klu))
155 ALLOCATE(dgw%XHC (klu))
156 ALLOCATE(dgw%XLEC (klu))
157 ALLOCATE(dgw%XLEIC (klu))
158 ALLOCATE(dgw%XGFLUXC (klu))
159 ALLOCATE(dgw%XEVAPC (klu))
160 ALLOCATE(dgw%XSUBLC (klu))
161 ALLOCATE(dgw%XSWDC (klu))
162 ALLOCATE(dgw%XSWUC (klu))
163 ALLOCATE(dgw%XLWDC (klu))
164 ALLOCATE(dgw%XLWUC (klu))
165 ALLOCATE(dgw%XFMUC (klu))
166 ALLOCATE(dgw%XFMVC (klu))
168 IF (.NOT. dgu%LREAD_BUDGETC)
THEN
182 ELSEIF (dgu%LREAD_BUDGETC.AND.dgw%LRESET_BUDGETC)
THEN
199 hprogram,yrec,dgw%XRNC,iresp)
202 hprogram,yrec,dgw%XHC ,iresp)
205 hprogram,yrec,dgw%XLEC,iresp)
208 hprogram,yrec,dgw%XLEIC,iresp)
211 hprogram,yrec,dgw%XGFLUXC,iresp)
214 hprogram,yrec,dgw%XSWDC,iresp)
217 hprogram,yrec,dgw%XSWUC,iresp)
220 hprogram,yrec,dgw%XLWDC,iresp)
223 hprogram,yrec,dgw%XLWUC,iresp)
226 hprogram,yrec,dgw%XFMUC,iresp)
229 hprogram,yrec,dgw%XFMVC,iresp)
232 hprogram,
'VERSION',iversion,iresp)
239 hprogram,yrec,dgw%XEVAPC,iresp)
242 hprogram,yrec,dgw%XSUBLC,iresp)
247 ALLOCATE(dgw%XRNC (0))
248 ALLOCATE(dgw%XHC (0))
249 ALLOCATE(dgw%XLEC (0))
250 ALLOCATE(dgw%XLEIC (0))
251 ALLOCATE(dgw%XGFLUXC (0))
252 ALLOCATE(dgw%XEVAPC (0))
253 ALLOCATE(dgw%XSUBLC (0))
254 ALLOCATE(dgw%XSWDC (0))
255 ALLOCATE(dgw%XSWUC (0))
256 ALLOCATE(dgw%XLWDC (0))
257 ALLOCATE(dgw%XLWUC (0))
258 ALLOCATE(dgw%XFMUC (0))
259 ALLOCATE(dgw%XFMVC (0))
265 ALLOCATE(dgw%XRI (klu))
266 ALLOCATE(dgw%XT2M (klu))
267 ALLOCATE(dgw%XT2M_MIN(klu))
268 ALLOCATE(dgw%XT2M_MAX(klu))
269 ALLOCATE(dgw%XQ2M (klu))
270 ALLOCATE(dgw%XHU2M (klu))
271 ALLOCATE(dgw%XHU2M_MIN(klu))
272 ALLOCATE(dgw%XHU2M_MAX(klu))
273 ALLOCATE(dgw%XZON10M (klu))
274 ALLOCATE(dgw%XMER10M (klu))
275 ALLOCATE(dgw%XWIND10M (klu))
276 ALLOCATE(dgw%XWIND10M_MAX(klu))
280 dgw%XT2M_MIN = xundef
284 dgw%XHU2M_MIN= xundef
285 dgw%XHU2M_MAX=-xundef
288 dgw%XWIND10M = xundef
289 dgw%XWIND10M_MAX = 0.0
291 ALLOCATE(dgw%XRI (0))
292 ALLOCATE(dgw%XT2M (0))
293 ALLOCATE(dgw%XT2M_MIN (0))
294 ALLOCATE(dgw%XT2M_MAX (0))
295 ALLOCATE(dgw%XQ2M (0))
296 ALLOCATE(dgw%XHU2M (0))
297 ALLOCATE(dgw%XHU2M_MIN(0))
298 ALLOCATE(dgw%XHU2M_MAX(0))
299 ALLOCATE(dgw%XZON10M (0))
300 ALLOCATE(dgw%XMER10M (0))
301 ALLOCATE(dgw%XWIND10M (0))
302 ALLOCATE(dgw%XWIND10M_MAX(0))
308 ALLOCATE(dgw%XCD (klu))
309 ALLOCATE(dgw%XCH (klu))
310 ALLOCATE(dgw%XCE (klu))
311 ALLOCATE(dgw%XZ0 (klu))
312 ALLOCATE(dgw%XZ0H (klu))
320 ALLOCATE(dgw%XCD (0))
321 ALLOCATE(dgw%XCH (0))
322 ALLOCATE(dgw%XCE (0))
323 ALLOCATE(dgw%XZ0 (0))
324 ALLOCATE(dgw%XZ0H (0))
330 IF (dgw%LSURF_VARS)
THEN
331 ALLOCATE(dgw%XQS (klu))
335 ALLOCATE(dgw%XQS (0))
340 ALLOCATE(w%XCPL_WATER_WIND(klu))
341 ALLOCATE(w%XCPL_WATER_FWSU(klu))
342 ALLOCATE(w%XCPL_WATER_FWSV(klu))
343 ALLOCATE(w%XCPL_WATER_SNET(klu))
344 ALLOCATE(w%XCPL_WATER_HEAT(klu))
345 ALLOCATE(w%XCPL_WATER_EVAP(klu))
346 ALLOCATE(w%XCPL_WATER_RAIN(klu))
347 ALLOCATE(w%XCPL_WATER_SNOW(klu))
348 ALLOCATE(w%XCPL_WATER_FWSM(klu))
349 w%XCPL_WATER_WIND(:) = 0.0
350 w%XCPL_WATER_FWSU(:) = 0.0
351 w%XCPL_WATER_FWSV(:) = 0.0
352 w%XCPL_WATER_SNET(:) = 0.0
353 w%XCPL_WATER_HEAT(:) = 0.0
354 w%XCPL_WATER_EVAP(:) = 0.0
355 w%XCPL_WATER_RAIN(:) = 0.0
356 w%XCPL_WATER_SNOW(:) = 0.0
357 w%XCPL_WATER_FWSM(:) = 0.0
360 ALLOCATE(w%XCPL_WATER_WIND(0))
361 ALLOCATE(w%XCPL_WATER_FWSU(0))
362 ALLOCATE(w%XCPL_WATER_FWSV(0))
363 ALLOCATE(w%XCPL_WATER_SNET(0))
364 ALLOCATE(w%XCPL_WATER_HEAT(0))
365 ALLOCATE(w%XCPL_WATER_EVAP(0))
366 ALLOCATE(w%XCPL_WATER_RAIN(0))
367 ALLOCATE(w%XCPL_WATER_SNOW(0))
368 ALLOCATE(w%XCPL_WATER_FWSM(0))
372 ALLOCATE(w%XCPL_WATERICE_SNET(klu))
373 ALLOCATE(w%XCPL_WATERICE_HEAT(klu))
374 ALLOCATE(w%XCPL_WATERICE_EVAP(klu))
375 w%XCPL_WATERICE_SNET(:) = 0.0
376 w%XCPL_WATERICE_HEAT(:) = 0.0
377 w%XCPL_WATERICE_EVAP(:) = 0.0
379 ALLOCATE(w%XCPL_WATERICE_SNET(0))
380 ALLOCATE(w%XCPL_WATERICE_HEAT(0))
381 ALLOCATE(w%XCPL_WATERICE_EVAP(0))
383 IF (lhook) CALL dr_hook(
'DIAG_WATFLUX_INIT_N',1,zhook_handle)
subroutine diag_watflux_init_n(DGU, DGW, W, HPROGRAM, KLU, KSW)