51 USE modd_io_surf_aro
, ONLY : nblock
59 USE modi_init_io_surf_n
61 USE modi_end_io_surf_n
64 USE yomhook
,ONLY : lhook, dr_hook
65 USE parkind1
,ONLY : jprb
79 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
85 CHARACTER(LEN=12) :: yrecfm
86 CHARACTER(LEN=100):: ycomment
87 CHARACTER(LEN=2) :: ynum
91 REAL(KIND=JPRB) :: zhook_handle
96 IF (lhook) CALL dr_hook(
'WRITE_DIAG_SEB_WATFLUX_N',0,zhook_handle)
104 hprogram,
'WATER ',
'WATFLX',
'WRITE')
113 ycomment=
'X_Y_'//yrecfm
116 hprogram,yrecfm,dgw%XRI(:),iresp,hcomment=ycomment)
123 IF (dgw%LSURF_BUDGET)
THEN
126 ycomment=
'X_Y_'//yrecfm//
' (W/m2)'
129 hprogram,yrecfm,dgw%XRN(:),iresp,hcomment=ycomment)
132 ycomment=
'X_Y_'//yrecfm//
' (W/m2)'
135 hprogram,yrecfm,dgw%XH(:),iresp,hcomment=ycomment)
138 ycomment=
'X_Y_'//yrecfm//
' (W/m2)'
141 hprogram,yrecfm,dgw%XLE(:),iresp,hcomment=ycomment)
144 ycomment=
'X_Y_'//yrecfm//
' (W/m2)'
147 hprogram,yrecfm,dgw%XLEI(:),iresp,hcomment=ycomment)
150 ycomment=
'X_Y_'//yrecfm//
' (W/m2)'
153 hprogram,yrecfm,dgw%XGFLUX(:),iresp,hcomment=ycomment)
156 ycomment=
'X_Y_'//yrecfm//
' (kg/m2/s)'
159 hprogram,yrecfm,dgw%XEVAP(:),iresp,hcomment=ycomment)
162 ycomment=
'X_Y_'//yrecfm//
' (kg/m2/s)'
165 hprogram,yrecfm,dgw%XSUBL(:),iresp,hcomment=ycomment)
167 IF (dgw%LRAD_BUDGET)
THEN
170 ycomment=
'X_Y_'//yrecfm//
' (W/m2)'
173 hprogram,yrecfm,dgw%XSWD(:),iresp,hcomment=ycomment)
176 ycomment=
'X_Y_'//yrecfm//
' (W/m2)'
179 hprogram,yrecfm,dgw%XSWU(:),iresp,hcomment=ycomment)
182 ycomment=
'X_Y_'//yrecfm//
' (W/m2)'
185 hprogram,yrecfm,dgw%XLWD(:),iresp,hcomment=ycomment)
188 ycomment=
'X_Y_'//yrecfm//
' (W/m2)'
191 hprogram,yrecfm,dgw%XLWU(:),iresp,hcomment=ycomment)
193 DO jsw=1,
SIZE(dgw%XSWBD,2)
196 yrecfm=
'SWD_WAT_'//ynum
197 ycomment=
'X_Y_'//yrecfm//
' (W/m2)'
200 hprogram,yrecfm,dgw%XSWBD(:,jsw),iresp,hcomment=ycomment)
202 yrecfm=
'SWU_WAT_'//ynum
203 ycomment=
'X_Y_'//yrecfm//
' (W/m2)'
206 hprogram,yrecfm,dgw%XSWBU(:,jsw),iresp,hcomment=ycomment)
213 ycomment=
'X_Y_'//yrecfm//
' (kg/ms2)'
216 hprogram,yrecfm,dgw%XFMU(:),iresp,hcomment=ycomment)
219 ycomment=
'X_Y_'//yrecfm//
' (kg/ms2)'
222 hprogram,yrecfm,dgw%XFMV(:),iresp,hcomment=ycomment)
226 IF (dgw%LSURF_BUDGETC)
THEN
229 ycomment=
'X_Y_'//yrecfm//
' (J/m2)'
232 hprogram,yrecfm,dgw%XRNC(:),iresp,hcomment=ycomment)
235 ycomment=
'X_Y_'//yrecfm//
' (J/m2)'
238 hprogram,yrecfm,dgw%XHC(:),iresp,hcomment=ycomment)
241 ycomment=
'X_Y_'//yrecfm//
' (J/m2)'
244 hprogram,yrecfm,dgw%XLEC(:),iresp,hcomment=ycomment)
247 ycomment=
'X_Y_'//yrecfm//
' (J/m2)'
250 hprogram,yrecfm,dgw%XLEIC(:),iresp,hcomment=ycomment)
253 ycomment=
'X_Y_'//yrecfm//
' (J/m2)'
256 hprogram,yrecfm,dgw%XGFLUXC(:),iresp,hcomment=ycomment)
259 ycomment=
'X_Y_'//yrecfm//
' (kg/m2)'
262 hprogram,yrecfm,dgw%XEVAPC(:),iresp,hcomment=ycomment)
265 ycomment=
'X_Y_'//yrecfm//
' (kg/m2)'
268 hprogram,yrecfm,dgw%XSUBLC(:),iresp,hcomment=ycomment)
270 IF (dgw%LRAD_BUDGET .OR. (dgw%LSURF_BUDGETC .AND. .NOT.dgu%LRESET_BUDGETC))
THEN
273 ycomment=
'X_Y_'//yrecfm//
' (J/m2)'
276 hprogram,yrecfm,dgw%XSWDC(:),iresp,hcomment=ycomment)
279 ycomment=
'X_Y_'//yrecfm//
' (J/m2)'
282 hprogram,yrecfm,dgw%XSWUC(:),iresp,hcomment=ycomment)
285 ycomment=
'X_Y_'//yrecfm//
' (J/m2)'
288 hprogram,yrecfm,dgw%XLWDC(:),iresp,hcomment=ycomment)
291 ycomment=
'X_Y_'//yrecfm//
' (J/m2)'
294 hprogram,yrecfm,dgw%XLWUC(:),iresp,hcomment=ycomment)
299 ycomment=
'X_Y_'//yrecfm//
' (kg/ms)'
302 hprogram,yrecfm,dgw%XFMUC(:),iresp,hcomment=ycomment)
305 ycomment=
'X_Y_'//yrecfm//
' (kg/ms)'
308 hprogram,yrecfm,dgw%XFMVC(:),iresp,hcomment=ycomment)
319 ycomment=
'X_Y_'//yrecfm
322 hprogram,yrecfm,dgw%XCD(:),iresp,hcomment=ycomment)
325 ycomment=
'X_Y_'//yrecfm
328 hprogram,yrecfm,dgw%XCH(:),iresp,hcomment=ycomment)
331 ycomment=
'X_Y_'//yrecfm
334 hprogram,yrecfm,dgw%XCE(:),iresp,hcomment=ycomment)
337 ycomment=
'X_Y_'//yrecfm
340 hprogram,yrecfm,dgw%XZ0(:),iresp,hcomment=ycomment)
343 ycomment=
'X_Y_'//yrecfm
346 hprogram,yrecfm,dgw%XZ0H(:),iresp,hcomment=ycomment)
354 IF (dgw%LSURF_VARS)
THEN
357 ycomment=
'X_Y_'//yrecfm//
' (KG/KG)'
360 hprogram,yrecfm,dgw%XQS(:),iresp,hcomment=ycomment)
371 ycomment=
'X_Y_'//yrecfm//
' (K)'
374 hprogram,yrecfm,dgw%XT2M(:),iresp,hcomment=ycomment)
377 ycomment=
'X_Y_'//yrecfm//
' (K)'
380 hprogram,yrecfm,dgw%XT2M_MIN(:),iresp,hcomment=ycomment)
381 IF(greset)dgw%XT2M_MIN(:)=xundef
384 ycomment=
'X_Y_'//yrecfm//
' (K)'
387 hprogram,yrecfm,dgw%XT2M_MAX(:),iresp,hcomment=ycomment)
388 IF(greset)dgw%XT2M_MAX(:)=0.0
391 ycomment=
'X_Y_'//yrecfm//
' (KG/KG)'
394 hprogram,yrecfm,dgw%XQ2M(:),iresp,hcomment=ycomment)
397 ycomment=
'X_Y_'//yrecfm//
' (-)'
400 hprogram,yrecfm,dgw%XHU2M(:),iresp,hcomment=ycomment)
403 ycomment=
'X_Y_'//yrecfm//
' (-)'
406 hprogram,yrecfm,dgw%XHU2M_MIN(:),iresp,hcomment=ycomment)
407 IF(greset)dgw%XHU2M_MIN(:)=xundef
410 ycomment=
'X_Y_'//yrecfm//
' (-)'
413 hprogram,yrecfm,dgw%XHU2M_MAX(:),iresp,hcomment=ycomment)
414 IF(greset)dgw%XHU2M_MAX(:)=-xundef
417 ycomment=
'X_Y_'//yrecfm//
' (M/S)'
420 hprogram,yrecfm,dgw%XZON10M(:),iresp,hcomment=ycomment)
423 ycomment=
'X_Y_'//yrecfm//
' (M/S)'
426 hprogram,yrecfm,dgw%XMER10M(:),iresp,hcomment=ycomment)
429 ycomment=
'X_Y_'//yrecfm//
' (M/S)'
432 hprogram,yrecfm,dgw%XWIND10M(:),iresp,hcomment=ycomment)
435 ycomment=
'X_Y_'//yrecfm//
' (M/S)'
438 hprogram,yrecfm,dgw%XWIND10M_MAX(:),iresp,hcomment=ycomment)
439 IF(greset)dgw%XWIND10M_MAX(:)=0.0
447 IF (chw%SVW%NBEQ>0 .AND. chw%CCH_DRY_DEP==
"WES89 ")
THEN
448 DO jsv = 1,
SIZE(chw%CCH_NAMES,1)
449 yrecfm=
'DV_WAT_'//trim(chw%CCH_NAMES(jsv))
450 WRITE(ycomment,
'(A13,I3.3)')
'(m/s) DV_WAT_',jsv
452 hprogram,yrecfm,chw%XDEP(:,jsv),iresp,hcomment=ycomment)
461 IF (lhook) CALL dr_hook(
'WRITE_DIAG_SEB_WATFLUX_N',1,zhook_handle)
subroutine init_io_surf_n(DTCO, DGU, U, HPROGRAM, HMASK, HSCHEME, HACTION)
subroutine end_io_surf_n(HPROGRAM)
subroutine write_diag_seb_watflux_n(DTCO, DGU, U, CHW, DGW, HPROGRAM)