48 USE modi_init_io_surf_n
50 USE modi_end_io_surf_n
52 USE yomhook
,ONLY : lhook, dr_hook
53 USE parkind1
,ONLY : jprb
67 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
73 CHARACTER(LEN=12) :: yrecfm
74 CHARACTER(LEN=100):: ycomment
75 CHARACTER(LEN=2) :: ynum
78 REAL(KIND=JPRB) :: zhook_handle
84 IF (lhook) CALL dr_hook(
'WRITE_DIAG_SEB_SEAICE_N',0,zhook_handle)
87 hprogram,
'SEA ',
'SEAFLX',
'WRITE')
89 IF(lcpl_seaice.OR.s%LHANDLE_SIC)
THEN
91 ycomment=
'Sea-ice temperature (K)'
93 hprogram,
'TSICE',s%XTICE(:),iresp,ycomment)
95 ycomment=
'Sea-ice albedo (-)'
97 hprogram,
'IALB',s%XICE_ALB(:),iresp,ycomment)
101 IF (trim(s%CSEAICE_SCHEME) ==
'GELATO')
THEN
102 ycomment=
'Sea-ice thickness (m)'
104 hprogram,
'SIT',dgsi%XSIT(:),iresp,ycomment)
106 ycomment=
'Sea-ice snow depth (m)'
108 hprogram,
'SND',dgsi%XSND(:),iresp,ycomment)
110 ycomment=
'Sea mixed layer temp for Glt (K)'
112 hprogram,
'SIMLT',dgsi%XMLT(:),iresp,ycomment)
122 ycomment=
'X_Y_'//yrecfm
125 hprogram,yrecfm,dgs%XRI_ICE(:),iresp,hcomment=ycomment)
132 IF (dgs%LSURF_BUDGET)
THEN
135 ycomment=
'X_Y_'//yrecfm//
' (W/m2)'
138 hprogram,yrecfm,dgs%XRN_ICE(:),iresp,hcomment=ycomment)
141 ycomment=
'X_Y_'//yrecfm//
' (W/m2)'
144 hprogram,yrecfm,dgs%XH_ICE(:),iresp,hcomment=ycomment)
147 ycomment=
'X_Y_'//yrecfm//
' (W/m2)'
150 hprogram,yrecfm,dgs%XLE_ICE(:),iresp,hcomment=ycomment)
153 ycomment=
'X_Y_'//yrecfm//
' (W/m2)'
156 hprogram,yrecfm,dgs%XGFLUX_ICE(:),iresp,hcomment=ycomment)
158 IF (dgs%LRAD_BUDGET)
THEN
161 ycomment=
'X_Y_'//yrecfm//
' (W/m2)'
164 hprogram,yrecfm,dgs%XSWU_ICE(:),iresp,hcomment=ycomment)
167 ycomment=
'X_Y_'//yrecfm//
' (W/m2)'
170 hprogram,yrecfm,dgs%XLWU_ICE(:),iresp,hcomment=ycomment)
172 DO jsw=1,
SIZE(dgs%XSWBU_ICE,2)
175 yrecfm=
'SWU_SEAICE_'//ynum
176 ycomment=
'X_Y_'//yrecfm//
' (W/m2)'
179 hprogram,yrecfm,dgs%XSWBU_ICE(:,jsw),iresp,hcomment=ycomment)
186 ycomment=
'X_Y_'//yrecfm//
' (kg/ms2)'
189 hprogram,yrecfm,dgs%XFMU_ICE(:),iresp,hcomment=ycomment)
192 ycomment=
'X_Y_'//yrecfm//
' (kg/ms2)'
195 hprogram,yrecfm,dgs%XFMV_ICE(:),iresp,hcomment=ycomment)
199 IF (dgs%LSURF_BUDGETC)
THEN
202 ycomment=
'X_Y_'//yrecfm//
' (J/m2)'
205 hprogram,yrecfm,dgs%XRNC_ICE(:),iresp,hcomment=ycomment)
208 ycomment=
'X_Y_'//yrecfm//
' (J/m2)'
211 hprogram,yrecfm,dgs%XHC_ICE(:),iresp,hcomment=ycomment)
214 ycomment=
'X_Y_'//yrecfm//
' (J/m2)'
217 hprogram,yrecfm,dgs%XLEC_ICE(:),iresp,hcomment=ycomment)
219 yrecfm=
'GFLXC_SEAICE'
220 ycomment=
'X_Y_'//yrecfm//
' (J/m2)'
223 hprogram,yrecfm,dgs%XGFLUXC_ICE(:),iresp,hcomment=ycomment)
224 IF (dgs%LRAD_BUDGET .OR. (dgs%LSURF_BUDGETC .AND. .NOT.dgu%LRESET_BUDGETC))
THEN
227 ycomment=
'X_Y_'//yrecfm//
' (J/m2)'
230 hprogram,yrecfm,dgs%XSWUC_ICE(:),iresp,hcomment=ycomment)
233 ycomment=
'X_Y_'//yrecfm//
' (J/m2)'
236 hprogram,yrecfm,dgs%XLWUC_ICE(:),iresp,hcomment=ycomment)
241 ycomment=
'X_Y_'//yrecfm//
' (kg/ms)'
244 hprogram,yrecfm,dgs%XFMUC_ICE(:),iresp,hcomment=ycomment)
247 ycomment=
'X_Y_'//yrecfm//
' (kg/ms)'
250 hprogram,yrecfm,dgs%XFMVC_ICE(:),iresp,hcomment=ycomment)
260 ycomment=
'X_Y_'//yrecfm//
' (W/s2)'
263 hprogram,yrecfm,dgs%XCD_ICE(:),iresp,hcomment=ycomment)
266 ycomment=
'X_Y_'//yrecfm//
' (W/s)'
269 hprogram,yrecfm,dgs%XCH_ICE(:),iresp,hcomment=ycomment)
272 ycomment=
'X_Y_'//yrecfm//
' (M)'
275 hprogram,yrecfm,dgs%XZ0_ICE(:),iresp,hcomment=ycomment)
278 ycomment=
'X_Y_'//yrecfm//
' (M)'
281 hprogram,yrecfm,dgs%XZ0H_ICE(:),iresp,hcomment=ycomment)
289 IF (dgs%LSURF_VARS)
THEN
291 ycomment=
'X_Y_'//yrecfm//
' (KG/KG)'
294 hprogram,yrecfm,dgs%XQS_ICE(:),iresp,hcomment=ycomment)
306 ycomment=
'X_Y_'//yrecfm//
' (K)'
309 hprogram,yrecfm,dgs%XT2M_ICE(:),iresp,hcomment=ycomment)
312 ycomment=
'X_Y_'//yrecfm//
' (KG/KG)'
315 hprogram,yrecfm,dgs%XQ2M_ICE(:),iresp,hcomment=ycomment)
318 ycomment=
'X_Y_'//yrecfm//
' (-)'
321 hprogram,yrecfm,dgs%XHU2M_ICE(:),iresp,hcomment=ycomment)
323 yrecfm=
'ZON10M_SEAICE'
324 ycomment=
'X_Y_'//yrecfm//
' (M/S)'
327 hprogram,yrecfm,dgs%XZON10M_ICE(:),iresp,hcomment=ycomment)
329 yrecfm=
'MER10M_SEAICE'
330 ycomment=
'X_Y_'//yrecfm//
' (M/S)'
333 hprogram,yrecfm,dgs%XMER10M_ICE(:),iresp,hcomment=ycomment)
336 ycomment=
'X_Y_'//yrecfm//
' (M/S)'
339 hprogram,yrecfm,dgs%XWIND10M_ICE(:),iresp,hcomment=ycomment)
347 IF (lhook) CALL dr_hook(
'WRITE_DIAG_SEB_SEAICE_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_seaice_n(DTCO, DGU, U, DGS, DGSI, S, HPROGRAM)