48 USE modi_init_io_surf_n
50 USE modi_end_io_surf_n
51 USE modi_sum_on_all_procs
64 TYPE(
diag_t),
INTENT(INOUT) :: D
65 TYPE(
diag_t),
INTENT(INOUT) :: DC
67 CHARACTER(LEN=*),
INTENT(IN) :: HGRID
69 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
76 CHARACTER(LEN=12) :: YRECFM
77 CHARACTER(LEN=100):: YCOMMENT
78 CHARACTER(LEN=2) :: YNUM
81 REAL(KIND=JPRB) :: ZHOOK_HANDLE
87 IF (
lhook)
CALL dr_hook(
'WRITE_DIAG_SEB_SURF_ATM_N',0,zhook_handle)
88 CALL init_io_surf_n(dtco, u, hprogram,
'FULL ',
'SURF ',
'WRITE',
'SURF_ATM_DIAGNOSTICS.OUT.nc' 96 ycomment=
'X_Y_'//yrecfm
98 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XRI(:),iresp,hcomment=ycomment
105 IF (dgo%N2M>=1.OR.dgo%LSURF_BUDGET.OR.dgo%LSURF_BUDGETC)
THEN 108 ycomment=
'X_Y_'//yrecfm//
' (K)' 109 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XTS(:),iresp,hcomment=ycomment
112 ycomment=
'X_Y_'//yrecfm//
' (K)' 113 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XTRAD(:),iresp,hcomment=ycomment
116 ycomment=
'X_Y_'//yrecfm//
' (-)' 117 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XEMIS(:),iresp,hcomment=ycomment
120 ycomment=
'X_Y_'//yrecfm//
' (M.kgCO2.S-1.kgAIR-1)' 121 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XSFCO2(:),iresp,hcomment
128 ycomment=
'X_Y_'//yrecfm//
' (K)' 129 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XT2M(:),iresp,hcomment=ycomment
132 ycomment=
'X_Y_'//yrecfm//
' (K)' 133 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XT2M_MIN(:),iresp,hcomment
136 ycomment=
'X_Y_'//yrecfm//
' (K)' 137 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XT2M_MAX(:),iresp,hcomment
140 ycomment=
'X_Y_'//yrecfm//
' (KG/KG)' 141 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XQ2M(:),iresp,hcomment=ycomment
144 ycomment=
'X_Y_'//yrecfm//
' (-)' 145 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XHU2M(:),iresp,hcomment=ycomment
148 ycomment=
'X_Y_'//yrecfm//
' (-)' 149 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XHU2M_MIN(:),iresp,hcomment
152 ycomment=
'X_Y_'//yrecfm//
' (-)' 153 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XHU2M_MAX(:),iresp,hcomment
158 ycomment=
'X_Y_'//yrecfm//
' (M/S)' 159 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XZON10M(:),iresp,hcomment
162 ycomment=
'X_Y_'//yrecfm//
' (M/S)' 163 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XMER10M(:),iresp,hcomment
166 ycomment=
'X_Y_'//yrecfm//
' (M/S)' 167 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XWIND10M(:),iresp,hcomment
170 ycomment=
'X_Y_'//yrecfm//
' (M/S)' 171 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XWIND10M_MAX(:),iresp,hcomment
175 IF (dgo%L2M_MIN_ZS)
THEN 178 ycomment=
'X_Y_'//yrecfm//
' (K)' 179 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XT2M_MIN_ZS(:),iresp,hcomment
182 ycomment=
'X_Y_'//yrecfm//
' (KG/KG)' 183 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XQ2M_MIN_ZS(:),iresp,hcomment
186 ycomment=
'X_Y_'//yrecfm//
' (KG/KG)' 187 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XHU2M_MIN_ZS(:),iresp,hcomment
196 IF (dgo%LSURF_BUDGET)
THEN 199 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 200 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XRN(:),iresp,hcomment=ycomment
203 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 204 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XH(:),iresp,hcomment=ycomment
207 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 208 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XLE(:),iresp,hcomment=ycomment
211 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 212 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XLEI(:),iresp,hcomment=ycomment
215 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 216 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XGFLUX(:),iresp,hcomment
219 ycomment=
'X_Y_'//yrecfm//
' (kg/m2/s)' 221 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XEVAP(:),iresp,hcomment=ycomment
224 ycomment=
'X_Y_'//yrecfm//
' (kg/m2/s)' 226 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XSUBL(:),iresp,hcomment=ycomment
228 IF (dgo%LRAD_BUDGET)
THEN 231 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 232 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XSWD(:),iresp,hcomment
235 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 236 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XSWU(:),iresp,hcomment
239 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 240 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XLWD(:),iresp,hcomment
243 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 244 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XLWU(:),iresp,hcomment
249 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 251 hprogram,yrecfm,d%XSWBD(:,:),iresp,hcomment=ycomment, hnam_dim
254 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 256 hprogram,yrecfm,d%XSWBD(:,:),iresp,hcomment=ycomment, hnam_dim
260 DO jsw=1,
SIZE(d%XSWBD,2)
264 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 265 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XSWBD(:,jsw),iresp
268 ycomment=
'X_Y_'//yrecfm//
' (W/m2)' 269 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XSWBU(:,jsw),iresp
278 ycomment=
'X_Y_'//yrecfm//
' (kg/ms2)' 279 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XFMU(:),iresp,hcomment=ycomment
282 ycomment=
'X_Y_'//yrecfm//
' (kg/ms2)' 283 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XFMV(:),iresp,hcomment=ycomment
286 ycomment=
'X_Y_'//yrecfm//
' (kg/ms2)' 287 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XSSO_FMU(:),iresp,hcomment
290 ycomment=
'X_Y_'//yrecfm//
' (kg/ms2)' 291 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XSSO_FMV(:),iresp,hcomment
297 IF (dgo%LSURF_BUDGETC)
THEN 300 ycomment=
'X_Y_'//yrecfm//
' (J/m2)' 301 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,dc%XRN(:),iresp,hcomment=ycomment
304 ycomment=
'X_Y_'//yrecfm//
' (J/m2)' 305 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,dc%XH(:),iresp,hcomment=ycomment
308 ycomment=
'X_Y_'//yrecfm//
' (J/m2)' 309 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,dc%XLE(:),iresp,hcomment=ycomment
312 ycomment=
'X_Y_'//yrecfm//
' (J/m2)' 313 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,dc%XLEI(:),iresp,hcomment=ycomment
316 ycomment=
'X_Y_'//yrecfm//
' (J/m2)' 317 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,dc%XGFLUX(:),iresp,hcomment
320 ycomment=
'X_Y_'//yrecfm//
' (kg/m2)' 322 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,dc%XEVAP(:),iresp,hcomment
325 ycomment=
'X_Y_'//yrecfm//
' (kg/m2)' 327 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,dc%XSUBL(:),iresp,hcomment
329 IF (dgo%LRAD_BUDGET .OR. (dgo%LSURF_BUDGETC .AND. .NOT.dgo%LRESET_BUDGETC
THEN 332 ycomment=
'X_Y_'//yrecfm//
' (J/m2)' 333 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,dc%XSWD(:),iresp,hcomment
336 ycomment=
'X_Y_'//yrecfm//
' (J/m2)' 337 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,dc%XSWU(:),iresp,hcomment
340 ycomment=
'X_Y_'//yrecfm//
' (J/m2)' 341 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,dc%XLWD(:),iresp,hcomment
344 ycomment=
'X_Y_'//yrecfm//
' (J/m2)' 345 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,dc%XLWU(:),iresp,hcomment
350 ycomment=
'X_Y_'//yrecfm//
' (kg/ms)' 351 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,dc%XFMU(:),iresp,hcomment=ycomment
354 ycomment=
'X_Y_'//yrecfm//
' (kg/ms)' 355 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,dc%XFMV(:),iresp,hcomment=ycomment
366 ycomment=
'X_Y_'//yrecfm
367 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XCD(:),iresp,hcomment=ycomment
370 ycomment=
'X_Y_'//yrecfm
371 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XCH(:),iresp,hcomment=ycomment
374 ycomment=
'X_Y_'//yrecfm
375 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XCE(:),iresp,hcomment=ycomment
378 ycomment=
'X_Y_'//yrecfm
379 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XZ0(:),iresp,hcomment=ycomment
382 ycomment=
'X_Y_'//yrecfm
383 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XZ0H(:),iresp,hcomment=ycomment
386 ycomment=
'X_Y_'//yrecfm
387 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XUREF(:),iresp,hcomment=ycomment
390 ycomment=
'X_Y_'//yrecfm
391 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XZREF(:),iresp,hcomment=ycomment
399 IF (dgo%LSURF_VARS)
THEN 402 ycomment=
'X_Y_'//yrecfm//
' (kg/kg)' 404 CALL write_surf(dgo%CSELECT,hprogram,yrecfm,d%XQS(:),iresp,hcomment=ycomment
413 IF (
lhook)
CALL dr_hook(
'WRITE_DIAG_SEB_SURF_ATM_N',1,zhook_handle)
subroutine write_diag_seb_surf_atm_n(DTCO, DGO, D, DC, U, HGRID,
integer function sum_on_all_procs(HPROGRAM, HGRID, OIN, HNAME)
character(len=30) yswband_dim_name
subroutine end_io_surf_n(HPROGRAM)
subroutine init_io_surf_n(DTCO, U, HPROGRAM, HMASK, HSCHEME, HACTION