Opened 9 years ago
Closed 9 years ago
#704 closed request (Done)
New QUICKSAVE output NetCDF file
Reported by: | arango | Owned by: | arango |
---|---|---|---|
Priority: | major | Milestone: | Release ROMS/TOMS 3.7 |
Component: | Nonlinear | Version: | 3.7 |
Keywords: | Cc: |
Description (last modified by )
A new output QUICKSAVE NetCDF has been added to write instantaneous fields.
Notice that it is possible to have two types of output NetCDF files in ROMS for instantaneous fields: HISTORY and QUICKSAVE. The QUICKSAVE file can be used for writing fewer fields at shorter time intervals. For example, the User may just write 2D and surface fields frequently (hourly) to reduce file size and to time resolve fast dynamics. In conjunction, the User may write full history fields infrequently (daily, weekly, etc) to avoid creating large output files. This gives a lot of flexibility to manage ROMS output.
Like with the HISTORY file, there are several parameters that control the QUICKSAVE file in input script ocean.in:
! Output history, quicksave, average, diagnostic files parameters. ... NHIS == 72 NDEFHIS == 0 NQCK == 18 NDEFQCK == 0 ...
where
- NQCK: Number of time-steps between writing fields into QUICKSAVE file. Set NQCK=0 to supress writing of QUICKSAVE file.
- NDEFQCK: is the number of time-steps between the creation of new QUICKSAVE file. If NDEFQCK=0, the model will only process one QUICKSAVE file. This feature is useful for long simulations when QUICKSAVE file get too large; it creates a new file every NDEFQCK time-steps.
The following new set of Qout switches in ocean.in can be used to control the fields written into the QUICKSAVE file:
! Logical switches (TRUE/FALSE) to activate writing of fields into ! QUICKSAVE output file. Qout(idUvel) == F ! u 3D U-velocity Qout(idVvel) == F ! v 3D V-velocity Qout(idu3dE) == F ! u_eastward 3D U-eastward at RHO-points Qout(idv3dN) == F ! v_northward 3D V-northward at RHO-points Qout(idWvel) == F ! w 3D W-velocity Qout(idOvel) == F ! omega omega vertical velocity Qout(idUbar) == T ! ubar 2D U-velocity Qout(idVbar) == T ! vbar 2D V-velocity Qout(idu2dE) == T ! ubar_eastward 2D U-eastward at RHO-points Qout(idv2dN) == T ! vbar_northward 2D V-northward at RHO-points Qout(idFsur) == T ! zeta free-surface Qout(idBath) == T ! bath time-dependent bathymetry Qout(idTvar) == F F ! temp, salt temperature and salinity Qout(idUsur) == T ! u_sur surface U-velocity Qout(idVsur) == T ! v_sur surface V-velocity Qout(idUsuE) == T ! u_sur_eastward surface U-eastward velocity Qout(idVsuN) == T ! v_sur_northward surface V-northward velocity Qout(idsurT) == T T ! temp_sur, salt_sur surface temperature and salinity Qout(idpthR) == F ! z_rho time-varying depths of RHO-points Qout(idpthU) == F ! z_u time-varying depths of U-points Qout(idpthV) == F ! z_v time-varying depths of V-points Qout(idpthW) == F ! z_w time-varying depths of W-points Qout(idUsms) == F ! sustr surface U-stress Qout(idVsms) == F ! svstr surface V-stress Qout(idUbms) == F ! bustr bottom U-stress Qout(idVbms) == F ! bvstr bottom V-stress Qout(idUbrs) == F ! bustrc bottom U-current stress Qout(idVbrs) == F ! bvstrc bottom V-current stress Qout(idUbws) == F ! bustrw bottom U-wave stress Qout(idVbws) == F ! bvstrw bottom V-wave stress Qout(idUbcs) == F ! bustrcwmax bottom max wave-current U-stress Qout(idVbcs) == F ! bvstrcwmax bottom max wave-current V-stress Qout(idUbot) == F ! Ubot bed wave orbital U-velocity Qout(idVbot) == F ! Vbot bed wave orbital V-velocity Qout(idUbur) == F ! Ur bottom U-velocity above bed Qout(idVbvr) == F ! Vr bottom V-velocity above bed Qout(idW2xx) == F ! Sxx_bar 2D radiation stress, Sxx component Qout(idW2xy) == F ! Sxy_bar 2D radiation stress, Sxy component Qout(idW2yy) == F ! Syy_bar 2D radiation stress, Syy component Qout(idU2rs) == F ! Ubar_Rstress 2D radiation U-stress Qout(idV2rs) == F ! Vbar_Rstress 2D radiation V-stress Qout(idU2Sd) == F ! ubar_stokes 2D U-Stokes velocity Qout(idV2Sd) == F ! vbar_stokes 2D V-Stokes velocity Qout(idW3xx) == F ! Sxx 3D radiation stress, Sxx component Qout(idW3xy) == F ! Sxy 3D radiation stress, Sxy component Qout(idW3yy) == F ! Syy 3D radiation stress, Syy component Qout(idW3zx) == F ! Szx 3D radiation stress, Szx component Qout(idW3zy) == F ! Szy 3D radiation stress, Szy component Qout(idU3rs) == F ! u_Rstress 3D U-radiation stress Qout(idV3rs) == F ! v_Rstress 3D V-radiation stress Qout(idU3Sd) == F ! u_stokes 3D U-Stokes velocity Qout(idV3Sd) == F ! v_stokes 3D V-Stokes velocity Qout(idWamp) == F ! Hwave wave height Qout(idWlen) == F ! Lwave wave length Qout(idWdir) == F ! Dwave wave direction Qout(idWptp) == F ! Pwave_top wave surface period Qout(idWpbt) == F ! Pwave_bot wave bottom period Qout(idWorb) == F ! Ub_swan wave bottom orbital velocity Qout(idWdis) == F ! Wave_dissip wave dissipation Qout(idPair) == F ! Pair surface air pressure Qout(idUair) == F ! Uair surface U-wind component Qout(idVair) == F ! Vair surface V-wind component Qout(idTsur) == F F ! shflux, ssflux surface net heat and salt flux Qout(idLhea) == F ! latent latent heat flux Qout(idShea) == F ! sensible sensible heat flux Qout(idLrad) == F ! lwrad longwave radiation flux Qout(idSrad) == F ! swrad shortwave radiation flux Qout(idEmPf) == F ! EminusP E-P flux Qout(idevap) == F ! evaporation evaporation rate Qout(idrain) == F ! rain precipitation rate Qout(idDano) == F ! rho density anomaly Qout(idVvis) == F ! AKv vertical viscosity Qout(idTdif) == F ! AKt vertical T-diffusion Qout(idSdif) == F ! AKs vertical Salinity diffusion Qout(idHsbl) == F ! Hsbl depth of surface boundary layer Qout(idHbbl) == F ! Hbbl depth of bottom boundary layer Qout(idMtke) == F ! tke turbulent kinetic energy Qout(idMtls) == F ! gls turbulent length scale ! Logical switches (TRUE/FALSE) to activate writing of extra inert passive ! tracers other than biological and sediment tracers into the QUICKSAVE ! output file. An inert passive tracer is one that it is only advected and ! diffused. Other processes are ignored. These tracers include, for example, ! dyes, pollutants, oil spills, etc. NPT values are expected. However, these ! switches can be activated using compact parameter specification. Qout(inert) == F ! dye_01, ... inert passive tracer
Notice that Qout and Hout are similar except that Qout has additional switches for several model surface fields:
Qout(idUsur) == T ! u_sur surface U-velocity Qout(idVsur) == T ! v_sur surface V-velocity Qout(idUsuE) == T ! u_sur_eastward surface U-eastward velocity Qout(idVsuN) == T ! v_sur_northward surface V-northward velocity Qout(idsurT) == T T ! temp_sur, salt_sur surface temperature and salinity
The QUICKSAVE output NetCDF file name is specified in ocean.in parameter QCKNAME:
! Output NetCDF file names, [1:Ngrids]. ... HISNAME == ocean_his.nc QCKNAME == ocean_qck.nc ...
New metadata has been added to varinfo.dat to write output model surface fields in the QUICKSAVE NetCDF file:
double u_sur(ocean_time, eta_u, xi_u) ; u_sur:long_name = "model surface u-momentum component" ; u_sur:units = "meter second-1" ; u_sur:time = "ocean_time" ; u_sur:grid = "grid" ; u_sur:location = "edge1" ; u_sur:coordinates = "x_u y_u ocean_time" ; u_sur:field = "u_sur, scalar, series" ; double v_sur(ocean_time, eta_v, xi_v) ; v_sur:long_name = "model surface v-momentum component" ; v_sur:units = "meter second-1" ; v_sur:time = "ocean_time" ; v_sur:grid = "grid" ; v_sur:location = "edge2" ; v_sur:coordinates = "x_v y_v ocean_time" ; v_sur:field = "v_sur, scalar, series" ; double u_sur_eastward(ocean_time, eta_rho, xi_rho) ; u_sur_eastward:long_name = "model surface eastward momentum component at RHO-points" ; u_sur_eastward:units = "meter second-1" ; u_sur_eastward:time = "ocean_time" ; u_sur_eastward:standard_name = "surface_eastward_sea_water_velocity" ; u_sur_eastward:grid = "grid" ; u_sur_eastward:location = "face" ; u_sur_eastward:coordinates = "x_rho y_rho ocean_time" ; u_sur_eastward:field = "u_sur_eastward, scalar, series" ; double v_sur_northward(ocean_time, eta_rho, xi_rho) ; v_sur_northward:long_name = "model surface northward momentum component at RHO-points" ; v_sur_northward:units = "meter second-1" ; v_sur_northward:time = "ocean_time" ; v_sur_northward:standard_name = "surface_northward_sea_water_velocity" ; v_sur_northward:grid = "grid" ; v_sur_northward:location = "face" ; v_sur_northward:coordinates = "x_rho y_rho ocean_time" ; v_sur_northward:field = "v_sur_northward, scalar, series" ; double temp_sur(ocean_time, eta_rho, xi_rho) ; temp_sur:long_name = "model surface potential temperature" ; temp_sur:units = "Celsius" ; temp_sur:time = "ocean_time" ; temp_sur:grid = "grid" ; temp_sur:location = "face" ; temp_sur:coordinates = "x_rho y_rho ocean_time" ; temp_sur:field = "temp_sur, scalar, series" ; double salt_sur(ocean_time, eta_rho, xi_rho) ; salt_sur:long_name = "model surface salinity" ; salt_sur:time = "ocean_time" ; salt_sur:grid = "grid" ; salt_sur:location = "face" ; salt_sur:coordinates = "x_rho y_rho ocean_time" ; salt_sur:field = "salinity, scalar, series" ;
Notice that it is possible to write model surface 3D momentum and active/passive tracer in QUICKSAVE file.
WARNINGS
All the input ocean_*.in, biology, and sediment input scripts were modified to include the new Qout switches in the code trunk and test repositories. The varinfo.dat was modified to include model surface metadata.
Change History (1)
comment:1 by , 9 years ago
Description: | modified (diff) |
---|---|
Resolution: | → Done |
Status: | new → closed |