| SCHISM HOME | Download Source Code | User Manual | Theory Manual | Publications | Join SCHISM mailing list | SCHISM WIKI | Team SCHISM |
|---|
The file uses free format, i.e. the order of each input parameter is not important. Governing rules for this file are:
Each parameter (and its keyword) is explained as follows in alphabetical order; note that you do not have to follow this order. In some cases we have grouped some parameters for easier explanation, but you should specify them on separate lines. Since param.in is the most frequently changed input from version to version, the list below may not be up to date and in the case of conflicting info, you'd refer to the sample param.in.sample in the source code bundle for self-explanatory and up-to-date info there.
Click on bulleted items to expand them.
| bottom friction option. If bfric=-1, and Manning's n
is specified in manning.gr3.
If bfric=0, spatially varying drag coefficients are read in from drag.gr3 (as depth info).
For bfric=1, bottom roughnesses (in meters) are read in from rough.gr3. If bfric=-1, an additional parameter is required: hmin_man (in meters) which sets the minimum depth used in the Manning formulation. If bfric=1, 2 additional parameters are required: dzb_min (in meters) and dzb_decay (nondimensional). In this case the drag coefficients are calculated using the log drag law when dzb>=dzb_min. when dzb< dzb_min, Cd=Cdmax*exp[dzb_decay*(1-dzb/dzb_min)], where Cdmax=Cd(dzb=dzb_min). This is to avoid exaggeration of Cd in very shallow water. |
| blending factors if indvel=0 or -1 (see below), i.e., discontinuous velocity + Shapiro filter option. Use 0. 0. |
| set initial noise for backtracking to avoid underflow problem. Default: 9.013e-3. |
| parameter for checking volume and salt conservation. If turned on (=1), the conservation will be checked in regions specified by fluxflag.prop. |
| centers of projection used to convert lat/long to Cartesian coordinates. These are used if a variable Coriolis parameter is employed (ncor=1). |
| time step (in seconds) |
| Min/max sub-steps allowed in btrack; actual sub-steps are calculated based on local gradients. |
| Global output (in machine-dependent binary) options. The frequency of global
outputs is contolled by 2 parameters: nspool and ihfskip. Output is done every nspool steps,
and a new output stack is opened every ihfskip steps.
Therefore the outputs are named as [1,2,3,...]_[process id]_salt.63 etc.
Each output variable is controlled by 1 flag. pres.61: output options for atmospheric pressure (*pres.61). airt.61: output options for air temperature (*airt.61). shum.61: output options for specific humidity (*shum.61). srad.61: output options for solar radiation (*srad.61). flsu.61: output options for short wave radiation (*flsu.61). fllu.61: output options for long wave radiation (*fllu.61). radu.61: output options for upward heat flux (*radu.61). radd.61: output options for downward flux (*radd.61). flux.61: output options for total flux (*flux.61). evap.61: output options for evaporation rate (*evap.61). prcp.61: output options for precipitation rate (*prcp.61). wind.62: output options for wind speed (*wind.62). wist.62: output options for wind stresses (*wist.62). dahv.62: output options for depth-averaged velocity (*dahv.62). vert.63: output options for vertical velocity (*vert.63). temp.63: output options for temperature (*temp.63). salt.63: output options for salinity (*salt.63). conc.63: output options for density (*conc.63). tdff.63: output options for eddy diffusivity (*tdff.63). vdff.63: output options for eddy viscosity (*vdff.63). kine.63: output options for turbulent kinetic energy (*kine.63). mixl.63: output options for macroscale mixing length (*mixl.63). zcor.63: output options for z coordinates at each node (*zcor.63). qnon.63: output options for non-hydrostatic pressure at each node (*qnon.63). hvel.64: output options for horizontal velocity (*hvel.64).
If you use passive tracers and modified the code (ntracer/=0 etc), the corresponding flags are needed here; e.g., trcr_[1,2,3...].63.
In additional, each module has its own set of outputs. See sample param.in for details.
hvel.67: horizontal vel. defined at side [m/s]. These are original vel. inside SCHISM.
|
| minimum depth (in m) for wetting and drying (recommended value: 1cm). When the total depth is less than h0, the corresponding nodes/sides/elements are considered dry. It should always be positive to prevent underflow. |
| hot start output control parameters. If hotout=0, no hot start output is generated. If hotout=1, hot start output is spooled to it_[process id]_hotstart every hotout_write time steps, where it is the corresponding time iteration number, and hotout_write must be a multiple of ihfskip. If a run needs to be hot started from step it, the user needs to combine all process-specific hotstart outputs into a hotstart.in using combine_hotstart*.f90. |
| barotropic/baroclinic flags. If ibcc=0, a baroclinic model is used and regardless of the value for itransport, the transport equation
is solved. If ibcc=1, a barotropic model is used, and the transport equation may (when itransport=1) or may not (when itransport=0) be solved;
in the former case, S and T are treated as passive tracers. If ibcc=0, the ramp-up fucntion is specified with nrampbc, drampbc: ramp option flag and ramp-up period (in days). If nrampbc=0, drampbc is not used. |
| mean T,S profile option. If ibcc_mean=1 (or ihot=0 and icst=2), mean profile is read in from ts.ic, and will be removed when calculating baroclinic force. No ts.ic is needed if ibcc_mean=0. |
| elevation initial condition flag for cold start. If ic_elev=1, elev.ic (in *.gr3 format) is needed to specify the initial elevations.
Otherwise elevation is initialized to 0 everywhere (cold start only). If ic_elev=1, elevation boundary condition ramp-up flag is nramp_elev. nramp_elev=0: ramp up from 0; =1: ramp up from elev. values read in from elev.ic or hotstart.in - if neither is present, from 0. This flag is mainly used to start the simulation from non-zero elev. The ramp-up period is same as 'dramp' below. |
| needed if USE_WWM pre-processor is enabled;
icou_elfe_wwm - 0: no feedback from WWM to SCHISM (decoupled); 1: coupled SCHISM-WWM. If icou_elfe_wwm=1, additional parameters required are:
|
| coordinate frame flag. If ics=1, Cartesian coordinates are used; if ics=2, both hgrid.ll and hgrid.gr3 use degrees latitude/longitude (and they should be identical to each other). |
| options for specifying initial temperature and salinity field for cold start. If icst=1, a vertically homogeneous but horizontally varying initial temperature and salinity field is contained in temp.ic and salt.ic. If icst=2, a horizontally homogeneous but vertically varying initial temperature and salinity field, prescribed in a series of z-levels, is contained in ts.ic. For general 3D initial S,T fields, use the hot start option. |
| bottom drag option. idrag=1: linear drag formulation; idrag=2: quadratic drag formulation (default). |
| Point sources/sinks option (0: no; 1: on). If if_source=1, needs source_sink.in, vsource,th, vsink.th, and msource.th. |
| harmonic analysis flag. If iharind/=0, an input harm.in is needed. |
| heat budget and salt conservation models flags. If ihconsv=0, the heat budget model is not used. If ihconsv=1, a heat budget model is invoked, and a number of netcdf files for radiation flux input are read in from he directory sflux/. If isconsv=1, the evaporation and precipitation model is evoked but the user needs to turn on the pre-processing flag PREC_EVAP in Makefile and recompile. |
| flag to use non-zero horizontal duffusivity. If ihdif=0, it is not used. If ihdif/=0, input hdif.gr3 is needed. |
| wet/dry option. If ihhat=1, the friction-reduced depth will be kept non-negative to enhance robustness (at the expense of accuracy); if ihhat=0, the depth is unrestricted. |
| hot start flag. If ihot=0, cold start; if ihot/=0, hot start from hotstart.in. If ihot=1, the time and time step are reset to zero, and outputs start from t=0 accordingly. If ihot=2, the run (and output) will continue from the time specified in hotstart.in. |
| Hydraulic model option. If ihydraulics/=0, hydraulics.in is required. This option cannot be used with non-hydrostatic model. |
| 2D (1) or 3D (0) model. Note that for 2D model, choice of many parameters will be limited (see the sample param.in); If im2d=1, theta2 (between [0,1]) specifies the implicitness factor for Coriolis. |
| tsunami option. Default: 0 (no bed deformation); 1: with bed deformation (needs bdef.gr3); 2: 3D bottom deformation (need to interact with code). |
| These parameters control the numerical dissipation in momentum solver; see SCHISM paper for details.
indvel determines the method of converting side velocity to node velocity. If indvel=0,
the node velocity is allowed to be discontinuous across elements and additional viscosity/filter is needed
to filter out grid-scale noises (spurious 'modes').
If indvel=1, an averaging procedure is used instead and the node velocity is continuous across elements; this method
requires no additional viscosity/filter unless kriging ELM is used (inter_mom >0).
In general, indvel=0 leads to smaller numerical diffusion and dissipation and better accuracy, but does require
a velocity boundary condition.
In the presence of spurious modes or dispersion (oscillation), viscosity/filter can be applied. ihorcon=0: no horizontal viscosity; =1: Laplacian (implemented as a filter); =2: bi-harmonic. For ihorcon/=0, hvis_coef0 specifies the non-dimensional viscosity. ishapiro =0,1: turn off|on Shapiro filter. If ishapiro/=0, shapiro specifies the Shapiro filter strength. |
| linear (inter_mom=0) or dual kriging method (inter_mom=1)
for interpolating the velocity in backtracking. If inter_mom=-1, the depth in
krvel.gr3 (0 or 1) will determine the order of interpolation (linear or Kriging). If the kriging ELM
is used, the general covariance function is specified in kr_co: 1: linear f(h)=-h; 2: (h^2*log(h); 3: (cubic h^3); 4: (-h^5). In general, indvel=0 should be used with inter_mom=0 or 1 to avoid large dispersion (with additional viscosity/filter also). indvel=1 can be used with any covariance function. |
| Sponge layer for elevation and vel. If inu_elev=0, no relaxation is applied to elev. If inu_elev=1, relax. constants are specified in elev_nudge.gr3 and applied to eta=0 (thus a depth=0 means no relaxation). Similarly for inu_uv (with input uv_nudge.gr3) |
| nudging flag for tracer model [MOD] (e.g. "TEM" for temperature), and nudging step (in sec).
When inu_[MOD]=0, no nudging is done. When inu_[MOD]=1, nudge to initial conditions. When inu_[MOD]=2, nudge to values specified in [MOD]_nu.in, given at an interval of step_nu_tr. For inu_st/=0, the horizontal nudging factors are given in [MOD]_nudge.gr3 (as depths info), The final relaxation constant is the product of the horizontal nudging factor and dt. |
| choice of inundation algorithm. inunfl=1 can be used if the horizontal resolution is fine enough, and this is critical for tsunami simulations. Otherwise use inunfl=0. |
| station output flag. If iout_sta/=1, an input station.in is needed. In addition, nspool_sta specifies the spool for station output. |
| pre-processing flag. ipre=1: code will output centers.bp, sidecenters.bp, obe.out (centers build point, sidcenters build point, and list of open boundary elements), and mirror.out and stop. This is useful also for checking geometry violation, z-levels at various depths (in mirror.out) for any given choice of vgrid. IMPORTANT: ipre=1 only works for single CPU! ipre=0: normal run. |
| iturbulence closure model selection. If itur=0, constant diffusivities are used for momentum and transport, and the diffusivities are specified in dfv0, dfh0. If itur=-2, vertically homogeneous but horizontally varying diffusivities are used, which are read in from hvd.mom.and hvd.tran. If itur=-1, horizontally homogeneous but vertically varying diffusivities are used, which are read in from vvd.dat. If itur=2, the zero-equation Pacanowski and Philander closure is used. In this case, a few extra parameters are required: h1_pp, vdmax_pp1, vdmin_pp1, tdmin_pp1, h2_pp, vdmax_pp2, vdmin_pp2,tdmin_pp2 . Eddy viscosity is computed as: vdiff=vdiff_max/(1+rich)^2+vdiff_min, and diffusivity tdiff=vdiff_max/(1+rich)^2+tdiff_min, where rich is a Richardson number. The limits (vdiff_max, vdiff_min and tdiff_min) vary linearly with depth between depths h1_pp and h2_pp . If itur=3, then the two-equation closure schemes (Mellor-Yamada-Galperin, K-epsilon, Umlauf and Burchard etc.) are used. In this case, 2 additional parameters are required: turb_met, turb_stab, which specify the closure scheme and stability function used (turb_met= "MY"-Mellor & Yamada, "KL"-GLS as k-kl, "KE"-GLS as k-epsilon, "KW"-GLS as k-omega, or "UB"-Umlauf & Burchard's optimal; turb_stab= "GA"-Galperin's, or "KC"-Kantha & Clayson's stability function) Also the user needs to specify max/min diffusivity/viscosity in diffmax.gr3 and diffmin.gr3, as well as a surface mixing length scale constant xlsc0. If itur=4, GOTM turbulence model is invoked; the user needs to compile the GOTM libraries first (see FAQ or README inside GOTM/ for instructions), and turn on pre-processing flag USE_GOTM in Makefile and recompile. In this case, the minimum and maximum viscosity/diffusivity are still specified in diffmin.gr3 and diffmax.gr3. In addition, GOTM also requires an input called gotmturb.inp. There are some ready-made samples for this input in the source code bundle. If you wish to tune some parameters inside, you may consult gotm.net for more details. |
| Transport option for all tracers. itr_met=1 for the upwind option, itr_met=2 for the higher-order mass-conservative (explicit) TVD scheme, and itr_met=3 for TVD2. If itr_met>=2, 1 extra parameter is needed: h_tvd which specifies the transition depth (in meters) between upwind and TVD scheme; i.e. more efficient upwind is used when the local depth < h_tvd. Also in this case, additional control between upwind and TVD is specified in tvd.prop. The TVD limiter function is specified in mk/include_modules. |
| advection on/off switch. If nadv=0, advection is selectively turned off based on the input file adv.gr3. If nadv=1 or 2, advection is on for the whole domain, and backtracking is done using either Euler or 2nd-order Runge-Kutta (more expensive) scheme. |
| Coriolis option. If ncor=0 or -1, a constant Coriolis parameter is used.
If ncor=0, coriolis specifies the Coriolis factor. If ncor=-1, latitude specifies the
mean latitude used to calculate the Coriolis factor. If ncor=1, a variable Coriolis parameter, based either on a beta-plane approximation (ics=1) or on the latitude-dependent Coriolis (ics=2), is used, with the lat/long. coordinates read in from hgrid.ll. For ics=1, the center of CPP projection must be correctly specified. |
| ramp option for the tides and some boundary conditions, and ramp-up period in days (not used if nramp=0). |
| wind forcing options and the interval (in seconds) with which the wind input is read in. If nws=0, no wind is applied
(and wtiminc becomes unused). If nws=1, constant wind is applied to the whole domain at any given time, and the time
history of wind is read in from wind.th. If nws=2 or 3, spatially and temporally variable wind is applied
and the input consists
of a number of netcdf files in the directory sflux/. The option nws=3 is only for checking heat conservation and needs sflux.th. If nws>0, the ramp-up option is specified with nrampwind and drampwind. These are ramp flag and period (in days) for wind. In addition, the user can scale the wind by using iwindoff. If iwindoff=0, wind is applied as is. If iwindoff=1, the scaling factors are the depths in windfactor.gr3. The wind stress formulation is selected with iwind_form. If nws=1 or 4, or nws=2 and ihconsv=0, or nws=2 and iwind_form=-1, the stress is calculated from Pond & Pichard formulation. If nws=2, ihconsv=1 and iwind_form=0, the stress is calculated from heat exchange routine. If WWM is enabled and icou_elfe_wwm > 0 and iwind_form=-2, stress is calculated by WWM; otherwise the formulations above are used. |
| maximum velocity. This is needed mainly for the air-water exchange as the model may blow up if the water velocity is above 20m^2/s. |
| total run time in days |
| dimensioning parameters used in inter-subdomain backtracking. Start from s[12]_mxnbt=0.5 3, and increase them (gradually) if the array size is not enough. Accuracy is not affected by the choice of these two parameters. |
| parallel JCG solver control parameters. Recommended values: 50 1000 1.e-12 |
| implicitness parameter (between 0.5 and 1). Recommended value: 0.6. |
| minimum velocity before backtracking is invoked. e.g., 1.e-4 (m/s). |