6 SUBROUTINE init_outfn_sea_n (CHS, DGO, DGS, DGSI, DGU, O, S, SSB, UG, U, &
65 USE modi_get_dim_full_n
66 USE modi_ol_define_dim
69 USE modi_def_var_netcdf
70 USE modi_ol_write_coord
72 USE yomhook
,ONLY : lhook, dr_hook
73 USE parkind1
,ONLY : jprb
84 TYPE(ocean_t),
INTENT(INOUT) :: o
90 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
91 INTEGER,
INTENT(IN) :: kluout
96 CHARACTER(LEN=100),
DIMENSION(:),
POINTER :: yname_dim
97 CHARACTER(LEN=100),
DIMENSION(1) :: yatt_title, yatt
98 CHARACTER(LEN=40),
DIMENSION(1) :: ydate
99 CHARACTER(LEN=13),
DIMENSION(1) :: yunit1, yunit2
100 CHARACTER(LEN=100) :: ycomment
101 CHARACTER(LEN=50) :: yfile
102 CHARACTER(LEN=12) :: yrecfm
103 CHARACTER(LEN=3) :: ypas, ylvl
105 INTEGER,
DIMENSION(:),
POINTER :: idims, iddim, iddim1
109 INTEGER :: ifile_id, jsv, jret
112 REAL,
DIMENSION(:),
POINTER :: zx, zy
114 REAL(KIND=JPRB) :: zhook_handle
120 IF (lhook) CALL dr_hook(
'INIT_OUTFN_SEA_N',0,zhook_handle)
124 hprogram, kluout, ini, idim1, yunit1, yunit2, &
125 zx, zy, idims, iddim, yname_dim)
131 IF (
ALLOCATED(xvar_to_fileout))
DEALLOCATE(xvar_to_fileout)
132 IF (
ALLOCATED(xid))
DEALLOCATE(xid)
136 yatt_title(1)=
'units'
138 yfile=
'SEAFLUX_DIAGNOSTICS.OUT.nc'
139 CALL
create_file(yfile,idims,yname_dim,ifile_id,iddim)
140 jret=nf_redef(ifile_id)
143 gmisc=(dgs%N2M>=1.OR.dgs%LSURF_BUDGET.OR.dgs%LSURF_BUDGETC)
144 IF (gmisc.AND.s%LHANDLE_SIC)
THEN
147 ifile_id,
'TS_SEA' ,
'Surface_temperature_over_sea',iddim,yatt_title,yatt)
149 ifile_id,
'TSRAD_SEA',
'Surface_radiative_temperature_over_sea',iddim,yatt_title,yatt)
155 ifile_id,
'CD_SEA' ,
'Drag_Coefficient_For_Momentum ',iddim,yatt_title,yatt)
158 ifile_id,
'CH_SEA' ,
'Drag_Coefficient_For_Heat ',iddim,yatt_title,yatt)
161 ifile_id,
'CE_SEA' ,
'Drag_Coefficient_For_Evaporation',iddim,yatt_title,yatt)
164 ifile_id,
'Z0_SEA' ,
'Roughness_Length_For_Momentum ',iddim,yatt_title,yatt)
166 ifile_id,
'Z0H_SEA' ,
'Roughness_Length_For_Heat ',iddim,yatt_title,yatt)
169 IF (dgs%LSURF_VARS)
THEN
172 ifile_id,
'QS_SEA' ,
'Surface_Humidity ' ,iddim,yatt_title,yatt)
178 ifile_id,
'T2M_SEA' ,
'2m_Temperature ' ,iddim,yatt_title,yatt)
180 ifile_id,
'T2MMIN_SEA' ,
'Minimum_2m_Temperature ' ,iddim,yatt_title,yatt)
182 ifile_id,
'T2MMAX_SEA' ,
'Maximum_2m_Temperature ' ,iddim,yatt_title,yatt)
185 ifile_id,
'Q2M_SEA' ,
'2m_Specific_Humidity ' ,iddim,yatt_title,yatt)
188 ifile_id,
'HU2M_SEA',
'2m_Relative_Humidity ' ,iddim,yatt_title,yatt)
190 ifile_id,
'HU2MMIN_SEA',
'Minimum_2m_Relative_Humidity ' ,iddim,yatt_title,yatt)
192 ifile_id,
'HU2MMAX_SEA',
'Maximum_2m_Relative_Humidity ' ,iddim,yatt_title,yatt)
195 ifile_id,
'ZON10M_SEA',
'10m_Zonal_wind ' ,iddim,yatt_title,yatt)
197 ifile_id,
'MER10M_SEA',
'10m_Meridian_Wind ' ,iddim,yatt_title,yatt)
199 ifile_id,
'W10M_SEA',
'10m_Wind ' ,iddim,yatt_title,yatt)
201 ifile_id,
'W10MMAX_SEA',
'Maximum_10m_Wind ' ,iddim,yatt_title,yatt)
207 ifile_id,
'RI_SEA' ,
'Averaged_Richardson_Number' ,iddim,yatt_title,yatt)
210 IF (dgs%LSURF_BUDGET)
THEN
213 ifile_id,
'RN_SEA' ,
'Averaged_Net_Radiation' ,iddim,yatt_title,yatt)
215 ifile_id,
'H_SEA' ,
'Averaged_Sensible_Heat_Flux' ,iddim,yatt_title,yatt)
217 ifile_id,
'LE_SEA' ,
'Averaged_Total_Latent_Heat_Flux ' ,iddim,yatt_title,yatt)
218 IF(.NOT.dgsi%LDIAG_SEAICE)
THEN
220 ifile_id,
'LEI_SEA' ,
'Averaged_SublimationLatent_Heat_Flux ' ,iddim,yatt_title,yatt)
223 ifile_id,
'GFLUX_SEA',
'Averaged_Ground_Heat_Flux ' ,iddim,yatt_title,yatt)
224 IF(dgs%LRAD_BUDGET)
THEN
226 ifile_id,
'SWD_SEA' ,
'Averaged_Downward_SW ' ,iddim,yatt_title,yatt)
228 ifile_id,
'SWU_SEA' ,
'Averaged_Upward_SW ' ,iddim,yatt_title,yatt)
230 ifile_id,
'LWD_SEA' ,
'Averaged_Downward_LW ' ,iddim,yatt_title,yatt)
232 ifile_id,
'LWU_SEA' ,
'Averaged_Upward_LW ' ,iddim,yatt_title,yatt)
236 ifile_id,
'FMU_SEA' ,
'Averaged_Zonal_Wind_Stress ' ,iddim,yatt_title,yatt)
238 ifile_id,
'FMV_SEA' ,
'Averaged_Merid_Wind_Stress ' ,iddim,yatt_title,yatt)
241 ifile_id,
'EVAP_SEA' ,
'Averaged_Total_Evaporation' ,iddim,yatt_title,yatt)
243 ifile_id,
'SUBL_SEA' ,
'Averaged_Sublimation_of_seaice',iddim,yatt_title,yatt)
246 IF (dgs%LSURF_BUDGET.OR.dgs%LSURF_BUDGETC)
THEN
249 ifile_id,
'TALB_SEA' ,
'Sea_total_albedo ' ,iddim,yatt_title,yatt)
252 IF (dgo%LDIAG_OCEAN)
THEN
256 ifile_id,
'TOML',
'Mean cmo Tempe ',iddim,yatt_title,yatt)
260 ifile_id,
'SOML',
'Mean cmo Salin ',iddim,yatt_title,yatt)
264 ifile_id,
'UOML',
'Mean cmo U-cur ',iddim,yatt_title,yatt)
268 ifile_id,
'VOML',
'Mean cmo V-cur ',iddim,yatt_title,yatt)
272 ifile_id,
'DOML',
'Mean cmo Densi ',iddim,yatt_title,yatt)
276 IF (chs%SVS%NBEQ>0 .AND. chs%CCH_DRY_DEP==
"WES89 ")
THEN
280 DO jsv = 1,
SIZE(chs%CCH_NAMES,1)
282 yrecfm =
'DV_SEA_'//trim(chs%CCH_NAMES(jsv))
283 WRITE(ycomment,
'(A7,I3.3)')
'DV_SEA_',jsv
285 ifile_id,yrecfm,ycomment,iddim,yatt_title,yatt)
291 IF (dgsi%LDIAG_SEAICE)
THEN
293 IF (trim(s%CSEAICE_SCHEME) ==
'GELATO')
THEN
296 ifile_id,
'SIT',
'Sea Ice Thickness ',iddim,yatt_title,yatt)
299 ifile_id,
'SIC',
'Sea Ice Cover ',iddim,yatt_title,yatt)
302 ifile_id,
'SND',
'Sea Ice Snow Depth ',iddim,yatt_title,yatt)
305 ifile_id,
'MLT',
'Sea Mixed Layer temp for Gelato ',iddim,yatt_title,yatt)
307 IF(lcpl_seaice.OR.s%LHANDLE_SIC)
THEN
310 ifile_id,
'TSICE',
'Sea Ice Temperature ',iddim,yatt_title,yatt)
313 ifile_id,
'IALB',
'Sea Ice Albedo ',iddim,yatt_title,yatt)
318 ifile_id,
'RI_SEAICE',
'Sea Ice Richardson_Number',iddim,yatt_title,yatt)
321 IF (dgs%LSURF_BUDGET)
THEN
323 ifile_id,
'RN_SEAICE',
'Sea Ice Net_Radiation',iddim,yatt_title,yatt)
325 ifile_id,
'H_SEAICE',
'Sea Ice Sensible_Heat_Flux',iddim,yatt_title,yatt)
327 ifile_id,
'LE_SEAICE' ,
'Averaged_SublimationLatent_Heat_Flux ' ,iddim,yatt_title,yatt)
329 ifile_id,
'GFLX_SEAICE',
'Sea Ice Ground_Heat_Flux ',iddim,yatt_title,yatt)
330 IF(dgs%LRAD_BUDGET)
THEN
332 ifile_id,
'LWU_SEAICE',
'Sea Ice Upward_LW',iddim,yatt_title,yatt)
334 ifile_id,
'SWU_SEAICE',
'Sea Ice Upward_SW',iddim,yatt_title,yatt)
339 ifile_id,
'FMU_SEAICE',
'Sea Ice Zonal_Wind_Stress',iddim,yatt_title,yatt)
341 ifile_id,
'FMV_SEAICE',
'Sea Ice Meridian_Wind_Stress',iddim,yatt_title,yatt)
345 ifile_id,
'CD_SEAICE',
'Sea Ice Drag_Coefficient_For_Momentum',iddim,yatt_title,yatt)
348 ifile_id,
'CH_SEAICE',
'Sea Ice Drag_Coefficient_For_Heat',iddim,yatt_title,yatt)
351 ifile_id,
'Z0_SEAICE',
'Sea Ice Roughness_Length_For_Momentum',iddim,yatt_title,yatt)
353 ifile_id,
'Z0H_SEAICE',
'Sea Ice Roughness_Length_For_Heat',iddim,yatt_title,yatt)
356 IF (dgs%LSURF_VARS)
THEN
358 ifile_id,
'QS_SEAICE',
'Sea Ice Surface_Humidity',iddim,yatt_title,yatt)
363 ifile_id,
'T2M_SEAICE',
'Sea Ice 2m_Temperature',iddim,yatt_title,yatt)
366 ifile_id,
'Q2M_SEAICE',
'Sea Ice 2m_Specific_Humidity ',iddim,yatt_title,yatt)
369 ifile_id,
'HU2M_SEAICE',
'Sea Ice 2m_Relative_Humidity',iddim,yatt_title,yatt)
372 ifile_id,
'ZON10M_SEAICE',
'Sea Ice 10m_Zonal_wind ',iddim,yatt_title,yatt)
374 ifile_id,
'MER10M_SEAICE',
'Sea Ice 10m_Meridian_Wind',iddim,yatt_title,yatt)
376 ifile_id,
'W10M_SEAICE',
'Sea Ice 10m_Wind',iddim,yatt_title,yatt)
381 yfile,ifile_id,iddim,yatt_title,yname_dim,yunit1,yunit2,idim1,ydate,zx,zy)
383 IF (dgs%LSURF_BUDGETC)
THEN
385 yfile=
'SEAFLUX_DIAG_CUMUL.OUT.nc'
386 CALL
create_file(yfile,idims,yname_dim,ifile_id,iddim)
387 jret=nf_redef(ifile_id)
391 ifile_id,
'RNC_SEA' ,
'Cumulated_Averaged_Net_Radiation' ,iddim,yatt_title,yatt)
393 ifile_id,
'HC_SEA' ,
'Cumulated_Averaged_Sensible_Heat_Flux' ,iddim,yatt_title,yatt)
395 ifile_id,
'LEC_SEA' ,
'Cumulated_Averaged_Total_Latent_Heat_Flux',iddim,yatt_title,yatt)
396 IF (.NOT.dgsi%LDIAG_SEAICE)
THEN
398 ifile_id,
'LEIC_SEA' ,
'Cumulated_Averaged_Sublimation_Latent_Heat_Flux',iddim,yatt_title,yatt)
401 ifile_id,
'GFLUXC_SEA',
'Cumulated_Averaged_Ground_Heat_Flux' ,iddim,yatt_title,yatt)
402 IF(dgs%LRAD_BUDGET)
THEN
404 ifile_id,
'SWDC_SEA' ,
'Cumulated_Averaged_Downward_SW ' ,iddim,yatt_title,yatt)
406 ifile_id,
'SWUC_SEA' ,
'Cumulated_Averaged_Upward_SW ' ,iddim,yatt_title,yatt)
408 ifile_id,
'LWDC_SEA' ,
'Cumulated_Averaged_Downward_LW ' ,iddim,yatt_title,yatt)
410 ifile_id,
'LWUC_SEA' ,
'Cumulated_Averaged_Upward_LW ' ,iddim,yatt_title,yatt)
414 ifile_id,
'FMUC_SEA' ,
'Cumulated_Averaged_Zonal_Wind_Stress ' ,iddim,yatt_title,yatt)
416 ifile_id,
'FMVC_SEA' ,
'Cumulated_Averaged_Merid_Wind_Stress ' ,iddim,yatt_title,yatt)
419 ifile_id,
'EVAPC_SEA' ,
'Cumulated_Averaged_Total_Evaporation' ,iddim,yatt_title,yatt)
421 ifile_id,
'SUBLC_SEA' ,
'Cumulated_Averaged_Sublimation_of_seaice',iddim,yatt_title,yatt)
423 IF (dgsi%LDIAG_SEAICE)
THEN
426 ifile_id,
'RNC_SEAICE',
'Cumulated_Seaice_Net_Radiation',iddim,yatt_title,yatt)
428 ifile_id,
'HC_SEAICE',
'Cumulated_Seaice_Sensible_Heat_Flux',iddim,yatt_title,yatt)
430 ifile_id,
'LEC_SEAICE' ,
'Cumulated_Averaged_Sublimation_Latent_Heat_Flux',iddim,yatt_title,yatt)
432 ifile_id,
'GFLXC_SEAICE',
'Cumulated_Seaice_Ground_Heat_Flux',iddim,yatt_title,yatt)
433 IF(dgs%LRAD_BUDGET)
THEN
435 ifile_id,
'SWUC_SEAICE',
'Cumulated_Seaice_Upward_SW',iddim,yatt_title,yatt)
437 ifile_id,
'LWUC_SEAICE',
'Cumulated_Seaice_Upward_LW',iddim,yatt_title,yatt)
441 ifile_id,
'FMUC_SEAICE',
'Cumulated_Seaice_Zonal_Wind_Stress',iddim,yatt_title,yatt)
443 ifile_id,
'FMVC_SEAICE',
'Cumulated_Seaice_Merid_Wind_Stress',iddim,yatt_title,yatt)
447 yfile,ifile_id,iddim,yatt_title,yname_dim,yunit1,yunit2,idim1,ydate,zx,zy)
451 yfile=
'SEAFLUX_PROGNOSTIC.OUT.nc'
452 CALL
create_file(yfile,idims,yname_dim,ifile_id,iddim)
453 jret=nf_redef(ifile_id)
457 ifile_id,
'SST' ,
'Sea_Surface_Temperature' ,iddim,yatt_title,yatt)
461 ifile_id,
'Z0SEA' ,
'Roughness_Length' ,iddim,yatt_title,yatt)
465 DO jlayer=nockmin+1,nockmax
467 WRITE(ypas,
'(I1.1,1X)') jlayer
469 WRITE(ypas,
'(I2.2,1X)') jlayer
471 ylvl=adjustl(ypas(:len_trim(ypas)))
475 ifile_id,
'TEMP_OC'//ylvl,
'Ocean Tempe '//ylvl ,iddim,yatt_title,yatt)
479 ifile_id,
'SALT_OC'//ylvl,
'Ocean Salinity '//ylvl ,iddim,yatt_title,yatt)
483 ifile_id,
'UCUR_OC'//ylvl,
'Ocean U-cur '//ylvl ,iddim,yatt_title,yatt)
487 ifile_id,
'VCUR_OC'//ylvl,
'Ocean V-cur '//ylvl ,iddim,yatt_title,yatt)
491 ifile_id,
'TKE_OC'//ylvl,
'Ocean TKE '//ylvl ,iddim,yatt_title,yatt)
495 ifile_id,
'KMEL_OC'//ylvl,
'Ocean KMEL '//ylvl ,iddim,yatt_title,yatt)
499 ifile_id,
'T_OC_REL'//ylvl,
'Ocean T rel'//ylvl ,iddim,yatt_title,yatt)
503 ifile_id,
'S_OC_REL'//ylvl,
'Ocean S rel'//ylvl ,iddim,yatt_title,yatt)
507 ifile_id,
'U_OC_REL'//ylvl,
'Ocean U rel'//ylvl ,iddim,yatt_title,yatt)
511 ifile_id,
'V_OC_REL'//ylvl,
'Ocean V rel'//ylvl ,iddim,yatt_title,yatt)
520 WRITE(ypas,
'(I2.2,1X)') jlayer ; ylvl=adjustl(ypas(:len_trim(ypas)))
522 ifile_id,
'SEA_SBL_Z'//ylvl,
'Height_of_canopy_Layer_'//ylvl ,iddim,yatt_title,yatt)
527 WRITE(ypas,
'(I2.2,1X)') jlayer ; ylvl=adjustl(ypas(:len_trim(ypas)))
529 ifile_id,
'SEA_SBL_U'//ylvl,
'Wind_of_canopy_Layer_'//ylvl ,iddim,yatt_title,yatt)
534 WRITE(ypas,
'(I2.2,1X)') jlayer ; ylvl=adjustl(ypas(:len_trim(ypas)))
536 ifile_id,
'SEA_SBL_T'//ylvl,
'Temperature_of_canopy_Layer_'//ylvl ,iddim,yatt_title,yatt)
541 WRITE(ypas,
'(I2.2,1X)') jlayer ; ylvl=adjustl(ypas(:len_trim(ypas)))
543 ifile_id,
'SEA_SBL_Q'//ylvl,
'Humidity_of_canopy_Layer_'//ylvl ,iddim,yatt_title,yatt)
548 WRITE(ypas,
'(I2.2,1X)') jlayer ; ylvl=adjustl(ypas(:len_trim(ypas)))
550 ifile_id,
'SEA_SBL_E'//ylvl,
'TKE_of_canopy_Layer_'//ylvl ,iddim,yatt_title,yatt)
555 yfile,ifile_id,iddim,yatt_title,yname_dim,yunit1,yunit2,idim1,ydate,zx,zy)
557 IF (lhook) CALL dr_hook(
'INIT_OUTFN_SEA_N',1,zhook_handle)
subroutine create_file(HFILE, KDIMS, HNAME_DIM, KFILE_ID, KDIM_ID)
subroutine get_dim_full_n(U, KDIM_FULL)
subroutine ol_write_coord(DGU, HFILE, KFILE_ID, KDDIM, HATT_TITLE, HNAME_DIM, HUNIT1, HUNIT2, KDIM1, HDATE, PX, PY)
subroutine get_date_ol(TPTIME, PTSTEP, HDATE)
subroutine init_outfn_sea_n(CHS, DGO, DGS, DGSI, DGU, O, S, SSB, UG, U, HPROGRAM, KLUOUT)
subroutine ol_define_dim(UG, U, HPROGRAM, KLUOUT, KNI, KDIM1, HUNIT1, HUNIT2, PX, PY, KDIMS, KDDIM, HNAME_DIM, KNPATCH)
subroutine def_var_netcdf(DGU, KFILE_ID, HNAME, HLONG_NAME, KDIM_ID, HATT_TITLE, HATT_TEXT, KVAR_ID, KTYPE, KLEN)