2** include file
"cppdefs.h"
5********************************************************** hernan g. arango ***
6** copyright(c) 2002-2025 the roms group **
7** licensed under a mit/x style license **
8** see license_roms.md **
9*******************************************************************************
11** the following is short description of all available cpp options. **
13** options
associated with momentum equations: **
15** the default horizontal advection is 3rd-order upstream bias for **
16** 3d momentum and 4th-order centered for 2d momentum. the default **
17** vertical advection is 4th-order centered for 3d momentum.
If this **
18** is the
case, no flags for momentum advection need to be activated. **
20** the 3rd-order upstream split advection(uv_u3adv_split) can be used **
21** to correct for the spurious mixing of the advection operator in **
22** terrain-following coordinates.
If this is the
case, the advection **
23** operator is split in advective and viscosity components and several **
24** internal flags are activated in
"globaldefs.h". notice that **
25** horizontal and vertical advection of momentum is 4th-order centered **
26** plus biharmonic viscosity to correct for spurious mixing. the total **
27** time-dependent horizontal mixing coefficient are computed in **
30** warning:
Use the splines vertical advection option (uv_sadvection) **
31** only in idealized, high vertical resolution applications. **
33** uv_adv to turn on or off advection terms **
34** uv_cor to turn on or off coriolis term **
35** uv_u3adv_split
if 3rd-order upstream split momentum advection **
36** uv_c2advection to turn on or off 2nd-order centered advection **
37** uv_c4advection to turn on or off 4th-order centered advection **
38** uv_sadvection to turn on or off splines vertical advection **
39** uv_vis2 to turn on or off harmonic horizontal mixing **
40** uv_vis4 to turn on or off biharmonic horizontal mixing **
41** uv_smagorinsky to turn on or off smagorinsky-like viscosity **
42** uv_drag_grid
if spatially varying bottom friction parameters **
43** uv_logdrag to turn on or off logarithmic bottom friction **
44** uv_ldrag to turn on or off linear bottom friction **
45** uv_qdrag to turn on or off quadratic bottom friction **
46** omega_implicit to add adaptive
implicit vertical advection **
47** splines_vvisc
if splines reconstruction of vertical viscosity **
49** option for barotropic kernel time-stepping algorithm. currently, the **
50** default is the legacy predictor/corrector lf-am3 scheme. see shchepetkin **
51** and mcwilliams(2005, 2009) for details. the efficient and accurate **
52** forward-backward ab3-am4 kernel will become the default soon. **
54** step2d_corilis to add coriolis to barotropic kernel in 3d set-up **
55** step2d_fb_lf_am3 lf-am3 scheme but with forward-backward feedback **
56** step2d_fb_ab3_am4 forward-backward ab3-am4 scheme **
58** option to not allow the bottom stress components to change the direction **
59** of bottom momentum(change sign of velocity components. **
61** limit_bstress to limit the magnitude of bottom stress **
63** options
associated with tracers equations: **
65** ts_dif2 to turn on or off harmonic horizontal mixing **
66** ts_dif4 to turn on or off biharmonic horizontal mixing **
67** ts_smagorinsky to turn on or off smagorinsky-like diffusion **
68** ts_fixed
if diagnostic run, no evolution of tracers **
69** t_passive
if inert passive tracers(dyes, etc) **
70** age_mean
if computing mean age of inert passive tracers **
71** nonlin_eos
if using nonlinear equation of state **
72** qcorrection
if net heat flux correction **
73** salinity
if having salinity **
74** scorrection
if freshwater flux correction **
75** solar_source
if solar radiation source term **
76** splines_vdiff
if splines reconstruction of vertical diffusion **
77** srelaxation
if salinity relaxation as a freshwater flux **
78** wtype_grid to turn on spatially varying jerlov water
type **
80** option to suppress further surface cooling
if the sst is at freezing **
81** point or below and the net surface heat flux is cooling: **
83** limit_stflx_cooling
use to suppress sst cooling below freezing point **
85** options for mpdata 3d advection: hadvection(itrc,ng)%MPDATA and **
86** vadvection(itrc,ng)%MPDATA switches **
88** ts_mpdata_limit to limit upwind corrector fluxes for stability **
90** pressure gradient algorithm options: **
92**
If no option is selected, the pressure gradient term is computed using **
93** standard density jacobian algorithm. notice that there are two quartic **
94** pressure jacobian options. they differ on how the weno reconciliation **
95** step is done and in the monotonicity constraining algorithms. **
97** dj_gradps
if splines density jacobian(shchepetkin, 2000) **
98** pj_gradp
if finite volume pressure jacobian(lin,1997) **
99** pj_gradpq2
if quartic 2 pressure jacobian(shchepetkin,2000) **
100** pj_gradpq4
if quartic 4 pressure jacobian(shchepetkin,2000) **
101** wj_gradp
if weighted density jacobian(song,1998) **
103** atm_press to impose atmospheric pressure onto sea surface **
104** press_compensate to compensate for boundary without atm pressure **
106** options for surface fluxes formulation using atmospheric boundary layer **
107** (fairall et al, 1996): **
109** there are three ways to provide longwave radiation in the atmospheric **
110** boundary layer: (1) compute the net longwave radiation internally using **
111** the berliand(1952) equation(longwave) as
function of air temperature, **
112** sea surface temperature, relative humidity, and cloud fraction; **
113** (2) provide(read) longwave downwelling radiation only and
then add **
114** outgoing longwave radiation(longwave_out) as a
function of the model **
115** sea surface temperature; (3) provide net longwave radiation(default). **
117** bulk_fluxes
if bulk fluxes computation **
118** cool_skin
if cool skin correction **
119** longwave
if computing net longwave radiation **
120** longwave_out
if computing outgoing longwave radiation **
121** eminusp
if computing e-p **
122** wind_minus_current
if compute effective wind by removing current **
124** options for wave roughness formulation in bulk fluxes: **
126** coare_taylor_yelland
if taylor and yelland(2001) relation **
127** coare_oost
if oost et al. (2002) relation **
128** drennan
if drennan(2003) relation **
129** deepwater_waves
if deep water waves approximation **
131** options for shortwave radiation: **
133** the shortwave radiation can be computed using the global albedo **
134** equation with a cloud correction. alternatively, input shortwave **
135** radiation
data computed from averaged
data (with snapshots greater **
136** or equal than 24 hours) can be modulated by the local diurnal cycle **
137** which is a
function longitude, latitude and day-of-year. **
139** albedo
if albedo equation for shortwave radiation **
140** diurnal_srflux to impose shortwave radiation local diurnal cycle **
142** model configuration options: **
144** solve3d
if solving 3d primitive equations **
145** curvgrid
if curvilinear coordinates grid **
146** masking
if land/sea masking **
147** bodyforce
if applying stresses as bodyforces **
148** profile
if time profiling **
149** averages
if writing out nlm time-averaged
data **
150** averages_detide
if writing out nlm time-averaged detided fields **
151** ad_averages
if writing out adm time-averaged
data **
152** rp_averages
if writing out tlm time-averaged
data **
153** tl_averages
if writing out adm time-averaged
data **
154** diagnostics_bio
if writing out biological diagnostics **
155** diagnostics_uv
if writing out momentum diagnostics **
156** diagnostics_ts
if writing out tracer diagnostics **
157** iceshelf
if including ice shelf cavities **
158** single_precision
if single precision arithmetic numerical kernel **
159** spherical
if analytical spherical grid **
160** stations
if writing out station
data **
161** stations_cgrid
if extracting
data at native c-grid **
163** options for lagrangian drifters: **
165** floats to activate simulated lagrangian drifters **
166** float_oyster to activate oyster model behavior in floats **
167** float_sticky to reflect/stick floats that hit surface/bottom **
168** float_vwalk
if vertical random walk **
169** vwalk_forward
if forward time stepping vertical random walk **
171** options for analytical fields configuration: **
173** any of the analytical expressions are coded in
"analytical.F". **
175** ana_biology
if analytical biology
initial conditions **
176** ana_bpflux
if analytical bottom passive tracers fluxes **
177** ana_bsflux
if analytical bottom salinity flux **
178** ana_btflux
if analytical bottom temperature flux **
179** ana_cloud
if analytical cloud fraction **
180** ana_diag
if customized diagnostics **
181** ana_dqdsst
if analytical surface heat flux sensitivity to sst**
182** ana_drag
if analytical spatially varying drag parameters **
183** ana_fsobc
if analytical free-surface boundary conditions **
184**
ana_grid if analytical model grid set-up **
185** ana_humidity
if analytical surface air humidity **
186** ana_initial
if analytical
initial conditions **
187** ana_m2clima
if analytical 2d momentum climatology **
188** ana_m2obc
if analytical 2d momentum boundary conditions **
189** ana_m3clima
if analytical 3d momentum climatology **
190** ana_m3obc
if analytical 3d momentum boundary conditions **
191** ana_mask
if analytical land/sea masking **
192** ana_nudgcoef
if analytical climatology nudging coefficients **
193** ana_pair
if analytical surface air pressure **
194** ana_passive
if analytical inert tracers
initial conditions **
195** ana_perturb
if analytical perturbation of
initial conditions **
196** ana_psource
if analytical point sources/sinks **
197** ana_rain
if analytical rain fall rate **
198** ana_sediment
if analytical sediment
initial fields **
199** ana_smflux
if analytical surface momentum stress **
200** ana_spflux
if analytical surface passive tracers fluxes **
201** ana_spinning
if analytical time-varying rotation force **
202** ana_sponge
if analytical enhanced viscosity/diffusion sponge **
203** ana_srflux
if analytical surface shortwave radiation flux **
204** ana_ssflux
if analytical surface salinity flux **
205** ana_ssh
if analytical sea surface height **
206** ana_sss
if analytical sea surface salinity **
207** ana_sst
if analytical sea surface temperature, sst **
208** ana_stflux
if analytical surface net heat flux **
209** ana_tair
if analytical surface air temperature **
210** ana_tclima
if analytical tracers climatology **
211** ana_tobc
if analytical tracers boundary conditions **
212** ana_vmix
if analytical vertical mixing coefficients **
213** ana_winds
if analytical surface winds **
214** ana_wwave
if analytical wind induced waves **
216** options for horizontal mixing of momentum: **
218** visc_grid to scale viscosity coefficient by grid
size **
219** mix_s_uv
if mixing along constant s-surfaces **
220** mix_geo_uv
if mixing on geopotential(constant z) surfaces **
222** options for horizontal mixing of tracers: **
224** diff_grid to scale diffusion coefficients by grid
size **
225** mix_s_ts
if mixing along constant s-surfaces **
226** mix_geo_ts
if mixing on geopotential(constant z) surfaces **
227** mix_iso_ts
if mixing on epineutral(constant rho) surfaces **
228** ts_mix_clima
if diffusion of tracer perturbation(t-tclm) **
229** ts_mix_max_slope
if maximum slope in epineutral diffusion **
230** ts_mix_min_strat
if minimum stratification in epineutral diffusion **
231** ts_mix_stability
if weighting diffusion between two time levels **
233** options for vertical turbulent mixing scheme of momentum and tracers **
234** (activate only one closure): **
236** bvf_mixing
if brunt-vaisala frequency mixing **
237** gls_mixing
if generic length-scale mixing closure **
238** my25_mixing
if mellor/yamada level-2.5 closure **
239** lmd_mixing
if large et al. (1994) interior closure **
241** limit_vdiff to impose an upper limit on vertical diffusion **
242** limit_vvisc to impose an upper limit on vertical viscosity **
244** options for the generic length-scale closure(warner et al., 2005): **
246** the default horizontal advection is third-order upstream bias. the **
247** default vertical advection is 4th-order centered advection. **
249** canuto_a
if canuto a-stability
function formulation **
250** canuto_b
if canuto b-stability
function formulation **
251** charnok
if charnock surface roughness from wind stress **
252** craig_banner
if craig and banner wave breaking surface flux **
253** kantha_clayson
if kantha and clayson stability
function **
254** k_c2advection
if 2nd-order centered advection **
255** k_c4advection
if 4th-order centered advection **
256** n2s2_horavg
if horizontal smoothing of buoyancy/shear **
257** ri_splines
if splines reconstruction for vertical sheer **
258** zos_hsig
if surface roughness from wave amplitude **
259** tke_wavediss
if wave breaking surface flux from wave amplitude **
261** options for the mellor/yamada level 2.5 closure: **
263** the default horizontal advection is third-order upstream bias. the **
264** default vertical advection is 4th-order centered advection. **
266** n2s2_horavg
if horizontal smoothing of buoyancy/shear **
267** kantha_clayson
if kantha and clayson stability
function **
268** k_c2advection
if 2nd-order centered advection **
269** k_c4advection
if 4th-order centered advection **
270** ri_splines
if splines reconstruction for vertical sheer **
272** options for the large et al. (1994) k-profile parameterization mixing: **
275**
lmd_bkpp if bottom boundary layer kpp mixing **
276** lmd_convec to add convective mixing due to shear instability **
277** lmd_ddmix to add double-diffusive mixing **
278** lmd_nonlocal
if nonlocal transport **
279** lmd_rimix to add diffusivity due to shear instability **
280** lmd_shapiro
if shapiro filtering boundary layer depth **
281**
lmd_skpp if surface boundary layer kpp mixing **
282** ri_splines
if splines reconstruction for richardson number **
284** options in the k-profile parameterization to activate smoothing of **
285** richardson number,
if ri_splines is not activated: **
287** ri_horavg
if horizontal richardson number smoothing **
288** ri_veravg
if vertical richardson number smoothing **
290** options for meinte blass bottom boundary layer closure: **
292** the options mb_z0bl and mb_z0rip should be activated concurrently. **
294** mb_bbl
if meinte blaas bbl closure **
295** mb_calc_znot
if computing bottom roughness internally **
296** mb_calc_ub
if computing bottom orbital velocity internally **
297** mb_z0bio
if biogenic bedform roughness for ripples **
298** mb_z0bl
if bedload roughness for ripples **
299** mb_z0rip
if bedform roughness for ripples **
301** options for styles and glenn(2000) bottom boundary layer closure: **
303** sg_bbl
if styles and glenn(2000) bbl closure **
304** sg_calc_znot
if computing bottom roughness internally **
305** sg_calc_ub
if computing bottom orbital velocity internally **
306** sg_logint
if logarithmic interpolation of(ur,vr) **
308** options for the sherwood/signell/warner bottom boundary layer closure: **
310** ssw_bbl
if sherwood et al. bbl closure **
311** ssw_calc_znot
if computing bottom roughness internally **
312** ssw_logint
if logarithmic interpolation of(ur,vr) **
313** ssw_logint_wbl
if wave boundary layer height for ur,vr elevation **
314** ssw_logint_direct
if user height for ur,vr elevation **
315** ssw_calc_ub
if computing bottom orbital velocity internally **
316** ssw_form_drag_cor to activate form drag coefficient **
317** ssw_zobio
if biogenic bedform roughness from ripples **
318** ssw_zobl
if bedload roughness for ripples **
319** ssw_zorip
if bedform roughness from ripples **
321** lateral boundary conditions options: **
323** implicit_nudging
if implicit nudging term in momentum radiation **
324** radiation_2d
if tangential phase speed in radiation conditions **
326** options for tidal forcing at
open boundaries: **
328** the tidal
data is processed in terms of tidal components, classified by **
329** period. the tidal forcing is computed for the full horizontal grid.
If **
330** requested, the tidal forcing is added to the processed
open boundary **
333** both tidal elevation and tidal currents are required to force the model **
334** properly. however,
if only the tidal elevation is available, the tidal **
335** currents at the
open boundary can be estimated by reduced physics. only **
336** the pressure gradient, coriolis, and surface and bottom stresses terms **
337** are considered at the
open boundary. see
"u2dbc_im.F" or
"v2dbc_im.F" **
338** for details. notice that there is an additional option(fsobc_reduced) **
339** for the computation of the pressure gradient term in both flather or **
340** reduced physics conditions(*_m2flather, *_m2reduced). **
342** ssh_tides
if imposing tidal elevation **
343** uv_tides
if imposing tidal currents **
344** ramp_tides
if ramping(over one day) tidal forcing **
345** tide_generating_forces adds tide generation forces to pressure gradient **
346** fsobc_reduced
if ssh
data and reduced physics conditions **
347** add_fsobc to add tidal elevation to processed obc
data **
348** add_m2obc to add tidal currents to processed obc
data **
350** roms driver options: **
352** adm_driver
if generic adjoint model **
353** ad_sensitivity
if adjoint sensitivity **
354** aft_eigenmodes
if adjoint finite time eingenmodes **
355** array_modes
if 4d-var representer matrix array modes **
356** clipping
if r4d-var representer matrix clipping analysis**
357** correlation
if background-error correlation model **
358** ensemble
if ensemble prediction **
359** evolved_lcz
if 4d-var evolved hessian singular vectors **
360** forcing_sv
if forcing singular vectors driver **
361** ft_eigenmodes
if finite time eingenmodes: normal modes **
362** hessian_fsv
if hessian forcing singular vectors **
363** hessian_so
if hessian stochastic optimals **
364** hessian_sv
if hessian singular vectors **
365** inner_product
if tangent/adjoint inner product check **
366** i4dvar
if incremental 4d-var
data assimilation **
367** i4dvar_ana_sensitivity
if i4d-var observations sensitivity **
368** initialize_automatic to initialize automatic arrays in step2d **
369** jedi
if using joint effort for da integration **
370** lcz_final
if computing 4d-var hessian singular vectors **
371** opt_observations
if optimal observations **
372** opt_perturbation
if optimal perturbations, singular vectors **
373** picard_test
if representer tangent linear model test **
374** pseudospectra
if pseudospectra of tangent linear resolvant **
375** rbl4dvar
if weak constraint rbl4d-var
data assimilation **
376** rbl4dvar_ana_sensitivity
if rbl4d-var analysis observation sensitivity **
377** rbl4dvar_fct_sensitivity
if rbl4d-var forecast observation sensitivity **
378** rpm_driver
if generic representers model **
379** r_symmetry
if representer matrix symmetry test **
380** r4dvar
if r4d-var
data assimilation **
381** r4dvar_ana_sensitivity
if r4d-var analysis observation sensitivity **
382** sanity_check
if tangent/adjoint codes sanity check **
383** so_semi
if stochastic optimals driver, semi-norm **
384** so_trace
if stochastic optimals, randomized trace **
385** split_i4dvar
if split i4d-var
data assimilation **
386** split_rbl4dvar
if split rbl4d-var
data assimilation **
387** split_r4dvar
if split r4d-var
data assimilation **
388** split_sp4dvar
if split sp4d-var
data assimilation **
389** sp4dvar
if saddle-point 4d-var
data assimilation **
390** stochastic_opt
if stochastic optimals **
391** tlm_check
if tangent linear model linearization check **
392** tlm_driver
if generic tangent linear model driver **
394** options
associated with tangent linear, representer and adjoint models: **
396** ad_impulse to force adjoint model with intermittent impulses **
397** ad_output_state to
write full adjoint state by adding time levels **
398** adjust_boundary
if including boundary conditions in 4dvar state **
399** adjust_stflux
if including surface tracer flux in 4dvar state **
400** adjust_wstress
if including wind-stress in 4dvar state **
401** array_modes_split to separate analysis due to ic, forcing, and obc **
402** balance_operator
if error covariance multivariate balance term **
403** beofs_only
if computing eofs of background error covariance **
404** bgqc
if background quality control of observations **
405** bnorm
if background norm hessian singular vectors **
406** celerity_write
if writing radiation celerity in forward file **
407** clipping_split to separate analysis due to ic, forcing, and obc **
408** compute_mld to compute mixed layer depth for background error **
409** dataless_loops
if testing convergence of picard iterations **
410** enkf_restart
if writting restart fields for enkf **
411** forward_fluxes
if using nlm trajectory surface fluxes **
412** forward_mixing
if processing forward vertical mixing coefficient **
413** forward_write
if writing out forward solution, basic state **
414** forward_read
if reading in forward solution, basic state **
415** forward_rhs
if processing forward right-hand-side terms **
416** geopotential_hconv
if horizontal convolutions along geopotentials **
417** impact_inner to
write observations impacts for each inner loop **
418** implicit_vconv
if implicit vertical convolution algorithm **
419** impulse
if processing adjoint impulse forcing **
420** minres
if minimal residual method for 4dvar minimization **
421** multiple_tlm
if multiple tlm history files in 4dvar **
422** nlm_outer
if nonlinear model as basic state in outer loop **
423** obs_impact
if observation impact to 4dvar
data assimilation **
424** obs_impact_split to separate impact due to ic, forcing, and obc **
425** posterior_eofs
if posterior analysis error covariance eofs **
426** posterior_error_f
if final posterior analysis error covariance **
427** posterior_error_i
if initial posterior analysis error covariance **
428** prior_bulk_fluxes
if imposing prior nlm surface fluxes **
429** recompute_4dvar
if recomputing 4dvar in analysis algorithms **
430** remove_lapack_gotos to replace gotos in customized lapack routines **
431** rpcg
if restricted b-preconditioned lanczos solver **
432** rpm_relaxation
if picard iterations, diffusive relaxation of rpm **
433** skip_nlm to skip running nlm, reading nlm trajectory **
434**
so_semi_white to activate so semi norm white/red noise processes**
435** std_model
if background error standard deviation modeling **
436** stoch_opt_white to activate so white/red noise processes **
437** splines_vconv to activate
implicit splines vertical convolution **
438** time_conv
if weak-constraint 4d-var time convolutions **
439** vconvolution to add vertical correlation to 3d convolution **
440** verification
if writing out solution at observation locations **
441** weak_nointerp
if not time interpolation in weak 4d-var forcing **
442** zeta_elliptic
if ssh elliptic equation in balance operator **
444** option for processing the full grid range(interior and boundary points) **
445** of the state vector in variational
data assimilation and generalized **
446** stability theory analysis. otherwise, only interior points are processed. **
448** full_grid to consider both interior and boundary points **
450** fennel et al. (2006) biology model options: **
452** bio_fennel
if fennel et al. (2006) nitrogen-based model **
453** bio_sediment to restore fallen material to the nutrient pool **
454** carbon to add carbon constituents **
455** denitrification to add denitrification processes **
456** ocmip_oxygen_sc
if o2 schmidt number from keeling et al. (1998) **
457** oxygen to add oxygen dynamics **
458** pco2air_data
if pco2 climatology from laurent et al. (2017) **
459** pco2air_secular
if pco2 time-depedent evolution **
460** rw14_c02_sc
if co2 schmidt number from wanninkhof(2014) **
461** rw14_oxygen_sc
if o2 schmidt number from wanninkhof(2014) **
462** po4
if phytoplanckton growth limitef by phosphorus **
463** river_don
if don non-sinking source from rivers **
464** talk_nonconserv
if nonconservative computation of alkalinity **
466** hypoxia ecosysten model options: **
468** hypoxia_srm
if hypoxia simple respiration model **
469** ocmip_oxygen_sc
if o2 schmidt number from keeling et al. (1998) **
471** npzd biology model options: **
473** npzd_franks
if npzd biology model, franks et al. (1986) **
474** npzd_iron
if npzd biology model with iron limitation **
475** npzd_powell
if npzd biology model, powell et al. (2006) **
476** iron_limit
if fe limitation on phytoplankton growth **
477** iron_relax
if nudging fe over the shelf, h <= fehmin **
479** bio-optical ecosim model options: **
481** ecosim
if bio-optical ecosim model **
482** bio_optical to compute underwater spectral light properties **
484** nemuro lower trophic level ecosystem model options: **
486** need to choose a zooplankton grazing option(holling_grazing or **
487** ivlev_explicit). the default
implicit ivlev algorithm does not **
490** nemuro
if nemuro ecosystem model. **
491** bio_sediment to restore fallen material to the nutrient pool **
492** holling_grazing
if holling-
type s-shaped curve grazing(
implicit) **
493** ivlev_explicit
if ivlev explicit grazing algorithm **
495** red tide biological model options: **
497** red_tide
if red tide biological model. **
499** sediment transport model options: **
501** sediment to activate sediment transport model **
502** bedload_mpm to activate meyer-peter-mueller bed load **
503** bedload_soulsby to activate soulsby wave/current bed load **
504** cohesive_bed to activate cohesive bed model **
505** floc_turb_diss dissipation for flocculation based on turbulence **
506** floc_bbl_diss dissipation for flocs from bottom boundary layer **
507** mixed_bed to activate mixed bed behavior **
508** noncohesive_bed1 original bed model of warner et al 2008, default **
509** noncohesive_bed2 modified bed model of sherwood et al **
510** sed_biodiff to activate sediment biodiffusivity **
511** sed_defloc flocculation decomposition in sediment bed **
512** sed_dens to activate sediment to affect equation of state **
513** sed_flocs flocculation model of verney et al., 2011 **
514** sed_morph to allow bottom model elevation to evolve **
515** sed_tau_cd_const constant critical stress for deposition **
516** sed_tau_cd_lin linear critical stress for deposition **
517** suspload to activate suspended load transport **
519** wave effoct on currents(wec) and shallow water options: **
521** bottom_streaming activate wave enhanced bottom streaming **
522** roller_svendsen activate wave roller based on svendsen **
523** roller_mono activate wave roller for monchromatic waves **
524** roller_reniers activate wave roller based on reniers **
525** surface_streaming activate wave enhanced surface streaming **
526** wave_mixing activate enhanced vertical viscosity mixing from waves**
527** wdiss_churthor activate wave dissipation from church/thorton. **
528** wdiss_gamma activate wave dissipation when using inwave **
529** wdiss_roelvink activate wave dissipation roelvink when using inwave **
530** wdiss_thorguza activate wave dissipation from thorton/guza. **
531** wdiss_wavemod activate wave dissipation from a wave model **
532** wec_vf activate wave-current stresses from uchiyama et al. **
533** wet_dry activate wetting and drying **
535** options for grid nesting: **
537** nesting to activate grid nesting: composite/refinement **
538** nesting_debug to check mass fluxes conservation in refinement **
539** no_correct_tracer to avoid two-way correction of boundary tracer **
540** one_way
if one-way nesting in refinement grids **
541** refine_boundary fine-to-coarse averaging at coarse grid boundary **
542** time_interp_flux time interpolate coarse mass flux instead persist **
544** options for coupling to other earth system models(esm) via the earth **
545** modeling framework(esmf) or modeling coupling toolkit(mct) libraries. **
546**
If coupling with esmf library, it uses the national unified operational **
547** prediction capability(nuopc) layer
"cap" files to facilitate exchanges **
548** with other esm components. **
550** esmf_lib
if coupling with the esmf/nuopc library **
551** mct_lib
if coupling with the mct library **
553** cice_coupling
if coupling to cice sea ice model **
554** coamps_coupling
if coupling to coamps atmospheric model **
555** data_coupling
if coupling to
DATA model **
556** exclude_sponge
if excluding sponge point in export fields **
557** frc_coupling
if forcing from atmopheric or
Data model **
558** refdif_coupling
if coupling to refdit wave model **
559** regcm_coupling
if coupling to regcm atmospheric model **
560** swan_coupling
if coupling to swan wave model **
561** time_interp
if importing snapshots for time interpolation **
562** wam_coupling
if coupling to wam wave model **
563** wrf_coupling
if coupling to wrf atmospheric model **
564** wrf_timeavg
if time-averaged fields over coupling interval **
566** nearshore and shallow water model options: **
568** wet_dry to activate wetting and drying **
570** mpi communication options: the routines
"mp_assemble" (used in nesting), **
571**
"mp_collect" (used in netcdf i/o and 4d-var), **
572** and
"mp_reduce" (used in global reductions) are coded in
"distribution.F" **
573** by either using low-level(
"mpi_isend" and
"mpi_irecv") or high-level **
574** (
"mpi_allgather" and
"mpi_allreduce") mpi calls. the default is to
use **
575** the low-level mpi calls. the options for routine
"mp_boundary" (used to **
576** process lateral
open boundary conditions is either
"mpi_allgather" or **
577**
"mpi_allreduce" (default). **
579** the user needs to be aware that the choice of these mpi communication **
580** routines it will affect performance issue. in some computers, the **
581** low-level are either slower or faster than the high-level mpi library **
582** calls. it depends on the computer(cluster) set-up. some vendors provide **
583** native mpi libraries fine-tuned for the computer architecture. the **
584** user needs to find which
function option performs better by carrying on **
585** benchmarks. we provides the following choices: **
587** assemble_allgather
use "mpi_allgather" in
"mp_assemble" **
588** assemble_allreduce
use "mpi_allreduce" in
"mp_assemble" **
590** boundary_allgather
use "mpi_allgather" in
"mp_boundary" **
592** collect_allgather
use "mpi_allgather" in
"mp_collect" **
593** collect_allreduce
use "mpi_allreduce" in
"mp_collect" **
595** reduce_allgather
use "mpi_allgather" in
"mp_reduce" **
596** reduce_allreduce
use "mpi_allreduce" in
"mp_reduce" **
598** netcdf input/output options: **
600** checksum to report checksum when processing i/o **
601** check_open_files to report number opened/closed/created files **
602** deflate to set compression netcdf-4/hdf5
format files **
603** hdf5 to create netcdf-4/hdf5
format files **
604** metadata_report to report/dump yaml metadata dictionary **
605** no_lbc_att to not check nlm_lbc global attribute on restart **
606** no_read_ghost to not include ghost points during read/scatter **
607** no_write_grid
if not writing grid arrays **
608** out_double
if writing
double precision output fields **
609** output_stats to report netcdf output fields statistics **
610** parallel_io
if parallel i/o via hdf5 or pnetcdf libraries **
611** perfect_restart to include perfect restart variables **
612** pio_lib to include parallel-io from the pio library **
613** pnetcdf
if parallel i/o with pnetcdf(classic format) **
614** positive_zero to impose positive zero in ouput
data **
615** read_water
if only reading water points
data **
616** regrid_shapiro to apply shapiro filter to regridded
data **
617** roms_stdout to
write standard output into the
'log.roms' file **
618** rst_single
if writing single precision restart fields **
619** write_water
if only writing water points
data **
621** option to process 3d
data by levels(2d slabs) to reduce
memory needs in **
622** distributed-
memory configurations. this option is convenient for large **
623** problems on nodes with limited
memory. **
625** inline_2dio
if processing 3d io level by level **
627** sea-ice modeling options: **
629** ice_model to activate sea-ice model **
630** ice_thermo
if thermodynamic component **
631** ice_mk
if mellor-kantha thermodynamics(only choice) **
632** ice_alb_ec92
if albedo computation from ebert and curry **
633** ice_momentum
if momentum component **
634** ice_mom_bulk
if alternate ice-water stress computation **
635** ice_evp
if elastic-viscous-plastic rheology **
636** ice_advect
if advection of ice tracers **
637** ice_smolar
if mpdata advection scheme **
638** ice_upwind
if upwind advection scheme **
639** ice_bulk_fluxes
if ice part of bulk flux computation **
640** ice_convsnow
if conversion of flooded snow to ice **
641** ice_strength_quad
if quadratic ice strength, a
function of thickness**
642** no_scorrection_ice
if no salinity correction under the ice **
643** outflow_mask
if hibler style outflow cells **
645** option to avoid writing current date and cpp options to netcdf file **
646** headers. this is used to compare serial and parallel solutions
where **
647** the unix command
"diff" is used between netcdf files. it will only **
648** tell us that the binary files are different or not. finding the **
649** parallel bug is complete different story. **
651** debugging
use to activate parallel debugging switch **
653*******************************************************************************
654*******************************************************************************
655*******************************************************************************
657** idealized test problems: **
659** basin big bad basin example **
660** benchmark benchmark tests(small, medium, big grids) **
661** bio_toy one-
dimension (vertical) biology toy **
662** bl_test boundary layers test **
663** channel periodic channel, optimal perturbations test **
664** canyon coastal form stress canyon test **
665** channel_neck channel with a constriction **
666** coupling_test two-way atmosphere-ocean coupling test **
667** dogbone idealize nesting grids(composite/refinement) test **
668** double_gyre idealized double-gyre example **
669** estuary_test test estuary for sediment **
670** flt_test float tracking example **
671** grav_adj gravitational adjustment example **
672** inlet_test test inlet application **
673** kelvin kelvin wave test **
674** lab_canyon lab canyon, polar coordinates example **
675** lake_jersey lake jersey nesting test
Case **
676** lake_signell lake signell sediment test
Case **
677** lmd_test test for lmd and kpp **
678** overflow gravitational/overflow example **
679** riverplume1 river plume example 1 **
680** riverplume2 river plume example 2 (hyatt and signell) **
681** seamount seamount example **
682** sed_test1 suspended sediment test in a channel **
683** sed_toy one-
dimension (vertical) sediment toy **
684** shoreface shore face planar beach test
Case **
685** soliton equatorial rossby wave example **
686** test_chan sediment test channel
Case **
687** test_head sediment test headland
Case **
688** upwelling upwelling example(default) **
689** weddell idealized weddell sea shelf application **
690** windbasin linear wind-driven constant coriolis basin **
692** climatological applications: (see www.
myroms.org/datasets) **
694** damee_4 north atlantic damee application, 3/4 degree **
696** selected realistic applications: **
698** adria02 adriatic sea application **
699** nj_bight new jersey bight application **
700** wc13 california current system, 1/3 degree resolution **
702*******************************************************************************
703*******************************************************************************
704*******************************************************************************
706** the user needs to choose either a pre-defined application or his/her **
707** own application. the application cpp flag to run is activated in the **
708** makefile. for example, to activate the upwelling example(upwelling) **
711** roms_application ?= upwelling **
713** in the makefile. roms will include the
associated header file located **
714** in the roms/include directory. the application header file name is the **
715** lowercase
value of roms_application with the .h extension and passed **
716** as roms_header definition during c-preprocessing. for example, the **
717** upwelling test problem includes the
"upwelling.h" header file: **
719** roms_header=
"upwelling.h" **
721**
If building a new application, choose an unique cpp flag for it and **
722** create its
associated include file(*.h) to specify the appropriate **
723** configuration options. **
725*******************************************************************************
728#if defined ROMS_HEADER
731 cppdefs - choose an appropriate roms application.
735** include internal cpp definitions.
738#include "globaldefs.h"
subroutine ana_grid(ng, tile, model)
subroutine lmd_bkpp(ng, tile)
subroutine lmd_skpp(ng, tile)
subroutine so_semi_white(ng, tile, mstr, mend, state, ad_state)