ROMS
Loading...
Searching...
No Matches
cppdefs.h
Go to the documentation of this file.
1/*
2** include file "cppdefs.h"
3**
4** git $id$
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*******************************************************************************
10** **
11** the following is short description of all available cpp options. **
12** **
13** options associated with momentum equations: **
14** **
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. **
19** **
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 **
28** "hmixing.F". **
29** **
30** warning: Use the splines vertical advection option (uv_sadvection) **
31** only in idealized, high vertical resolution applications. **
32** **
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 **
48** **
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. **
53** **
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 **
57** **
58** option to not allow the bottom stress components to change the direction **
59** of bottom momentum(change sign of velocity components. **
60** **
61** limit_bstress to limit the magnitude of bottom stress **
62** **
63** options associated with tracers equations: **
64** **
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 **
79** **
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: **
82** **
83** limit_stflx_cooling use to suppress sst cooling below freezing point **
84** **
85** options for mpdata 3d advection: hadvection(itrc,ng)%MPDATA and **
86** vadvection(itrc,ng)%MPDATA switches **
87** **
88** ts_mpdata_limit to limit upwind corrector fluxes for stability **
89** **
90** pressure gradient algorithm options: **
91** **
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. **
96** **
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) **
102** **
103** atm_press to impose atmospheric pressure onto sea surface **
104** press_compensate to compensate for boundary without atm pressure **
105** **
106** options for surface fluxes formulation using atmospheric boundary layer **
107** (fairall et al, 1996): **
108** **
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). **
116** **
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 **
123** **
124** options for wave roughness formulation in bulk fluxes: **
125** **
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 **
130** **
131** options for shortwave radiation: **
132** **
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. **
138** **
139** albedo if albedo equation for shortwave radiation **
140** diurnal_srflux to impose shortwave radiation local diurnal cycle **
141** **
142** model configuration options: **
143** **
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 **
162** **
163** options for lagrangian drifters: **
164** **
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 **
170** **
171** options for analytical fields configuration: **
172** **
173** any of the analytical expressions are coded in "analytical.F". **
174** **
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 **
215** **
216** options for horizontal mixing of momentum: **
217** **
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 **
221** **
222** options for horizontal mixing of tracers: **
223** **
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 **
232** **
233** options for vertical turbulent mixing scheme of momentum and tracers **
234** (activate only one closure): **
235** **
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 **
240** **
241** limit_vdiff to impose an upper limit on vertical diffusion **
242** limit_vvisc to impose an upper limit on vertical viscosity **
243** **
244** options for the generic length-scale closure(warner et al., 2005): **
245** **
246** the default horizontal advection is third-order upstream bias. the **
247** default vertical advection is 4th-order centered advection. **
248** **
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 **
260** **
261** options for the mellor/yamada level 2.5 closure: **
262** **
263** the default horizontal advection is third-order upstream bias. the **
264** default vertical advection is 4th-order centered advection. **
265** **
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 **
271** **
272** options for the large et al. (1994) k-profile parameterization mixing: **
273** mixing: **
274** **
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 **
283** **
284** options in the k-profile parameterization to activate smoothing of **
285** richardson number, if ri_splines is not activated: **
286** **
287** ri_horavg if horizontal richardson number smoothing **
288** ri_veravg if vertical richardson number smoothing **
289** **
290** options for meinte blass bottom boundary layer closure: **
291** **
292** the options mb_z0bl and mb_z0rip should be activated concurrently. **
293** **
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 **
300** **
301** options for styles and glenn(2000) bottom boundary layer closure: **
302** **
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) **
307** **
308** options for the sherwood/signell/warner bottom boundary layer closure: **
309** **
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 **
320** **
321** lateral boundary conditions options: **
322** **
323** implicit_nudging if implicit nudging term in momentum radiation **
324** radiation_2d if tangential phase speed in radiation conditions **
325** **
326** options for tidal forcing at open boundaries: **
327** **
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 **
331** data. **
332** **
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). **
341** **
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 **
349** **
350** roms driver options: **
351** **
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 **
393** **
394** options associated with tangent linear, representer and adjoint models: **
395** **
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 **
443** **
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. **
447** **
448** full_grid to consider both interior and boundary points **
449** **
450** fennel et al. (2006) biology model options: **
451** **
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 **
465** **
466** hypoxia ecosysten model options: **
467** **
468** hypoxia_srm if hypoxia simple respiration model **
469** ocmip_oxygen_sc if o2 schmidt number from keeling et al. (1998) **
470** **
471** npzd biology model options: **
472** **
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 **
478** **
479** bio-optical ecosim model options: **
480** **
481** ecosim if bio-optical ecosim model **
482** bio_optical to compute underwater spectral light properties **
483** **
484** nemuro lower trophic level ecosystem model options: **
485** **
486** need to choose a zooplankton grazing option(holling_grazing or **
487** ivlev_explicit). the default implicit ivlev algorithm does not **
488** work yet. **
489** **
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 **
494** **
495** red tide biological model options: **
496** **
497** red_tide if red tide biological model. **
498** **
499** sediment transport model options: **
500** **
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 **
518** **
519** wave effoct on currents(wec) and shallow water options: **
520** **
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 **
534** **
535** options for grid nesting: **
536** **
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 **
543** **
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. **
549** **
550** esmf_lib if coupling with the esmf/nuopc library **
551** mct_lib if coupling with the mct library **
552** **
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 **
565** **
566** nearshore and shallow water model options: **
567** **
568** wet_dry to activate wetting and drying **
569** **
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). **
578** **
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: **
586** **
587** assemble_allgather use "mpi_allgather" in "mp_assemble" **
588** assemble_allreduce use "mpi_allreduce" in "mp_assemble" **
589** **
590** boundary_allgather use "mpi_allgather" in "mp_boundary" **
591** **
592** collect_allgather use "mpi_allgather" in "mp_collect" **
593** collect_allreduce use "mpi_allreduce" in "mp_collect" **
594** **
595** reduce_allgather use "mpi_allgather" in "mp_reduce" **
596** reduce_allreduce use "mpi_allreduce" in "mp_reduce" **
597** **
598** netcdf input/output options: **
599** **
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 **
620** **
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. **
624** **
625** inline_2dio if processing 3d io level by level **
626** **
627** sea-ice modeling options: **
628** **
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 **
644** **
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. **
650** **
651** debugging use to activate parallel debugging switch **
652** **
653*******************************************************************************
654*******************************************************************************
655*******************************************************************************
656** **
657** idealized test problems: **
658** **
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 **
691** **
692** climatological applications: (see www.myroms.org/datasets) **
693** **
694** damee_4 north atlantic damee application, 3/4 degree **
695** **
696** selected realistic applications: **
697** **
698** adria02 adriatic sea application **
699** nj_bight new jersey bight application **
700** wc13 california current system, 1/3 degree resolution **
701** **
702*******************************************************************************
703*******************************************************************************
704*******************************************************************************
705** **
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) **
709** set: **
710** **
711** roms_application ?= upwelling **
712** **
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: **
718** **
719** roms_header="upwelling.h" **
720** **
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. **
724** **
725*******************************************************************************
726*/
727
728#if defined ROMS_HEADER
729# include ROMS_HEADER
730#else
731 cppdefs - choose an appropriate roms application.
732#endif
733
734/*
735** include internal cpp definitions.
736*/
737
738#include "globaldefs.h"
subroutine ana_grid(ng, tile, model)
Definition ana_grid.h:3
subroutine initial
Definition initial.F:3
subroutine lmd_bkpp(ng, tile)
Definition lmd_bkpp.F:45
subroutine lmd_skpp(ng, tile)
Definition lmd_skpp.F:45
subroutine memory
Definition memory.F:3
subroutine output(ng)
Definition output.F:4
subroutine so_semi_white(ng, tile, mstr, mend, state, ad_state)
Definition packing.F:8788
program myroms
Definition roms.h:1