Difference between revisions of "cppdefs.h"

From WikiROMS
Jump to navigationJump to search
 
(22 intermediate revisions by 5 users not shown)
Line 1: Line 1:
<div class="title">cppdefs.h</div>
<div class="title">cppdefs.h</div>


Internal header file containing all the [[C-preprocessing]] [[Options | options]] that defines a particular application. It is included at the top of every ROMS source file.
Internal header file containing all the [[C-preprocessing]] [[Options | options]] that defines a particular application. It is included at the top of every ROMS source file. The application CPP option is specified in the [[makefile]] definition '''ROMS_APPLICATION'''. The application header file is determined during compilation as the lowercase value of '''ROMS_APPLICATION''' with the '''.h''' extension and loaded into the '''ROMS_HEADER''' definition.  Then, during [[C-preprocessing]] the application header file is included in '''cppdefs.h''' using the following directive:


* '''Options associated with momentum equations''': The default horizontal and vertical advection is 4th-order centered. Use the splines vertical advection option is shallow, high vertical resolution applications.                                               
  <span class="red">#if defined ROMS_HEADER
  # include ROMS_HEADER
  #else
    CPPDEFS - Choose an appropriate ROMS application.
  #endif
</span>


{| border="0" cellspacing="0" cellpadding="15" align="left"
 
===Options associated with momentum equations===
:The default horizontal advection is 3rd-order upstream bias for 3D momentum and 4th-order centered for 2D momentum. The default vertical advection is 4th-order centered for 3D momentum. If this is the case, no flags for momentum advection need to be activated.
 
:The 3rd-order upstream split advection (UV_U3ADV_SPLIT) can be used to correct for the spurious mixing of the advection operator in terrain-following coordinates. If this is the case, the advection operator is split in advective and viscosity components and several internal flags are activated in "globaldefs.h".  Notice that horizontal and vertical advection of momentum is 4th-order centered plus biharmonic viscosity to correct for spurious mixing. The total time-dependent horizontal mixing coefficient are computed in <span class="red">hmixing.F</span>.                                                           
 
:{{warning}} '''Warning:'''  Use the splines vertical advection option ([[UV_SADVECTION]]) only in idealized, high vertical resolution applications.
 
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
|-
| [[UV_ADV]]
| [[UV_ADV]]
| use to turn on or off advection terms
| use to activate advection terms
|-
|-
| [[UV_COR]]
| [[UV_COR]]
| use to turn on or off Coriolis term
| use to activate Coriolis term
|-
| [[UV_U3ADV_SPLIT]]
| use if 3rd-order upstream split momentum advection
|-
|-
| [[UV_C2ADVECTION]]
| [[UV_C2ADVECTION]]
| use to turn on or off 2nd-order centered advection
| use to activate 2nd-order centered advection
|-
|-
| [[UV_C4ADVECTION]]
| [[UV_C4ADVECTION]]
| use to turn on or off 4th-order centered advection
| use to activate 4th-order centered advection
|-
|-
| [[UV_SADVECTION]]
| [[UV_SADVECTION]]
| use to turn on or off splines vertical advection
| use to activate splines vertical advection
|-
|-
| [[UV_VIS2]]
| [[UV_VIS2]]
| use to turn on or off harmonic horizontal mixing
| use to activate harmonic horizontal mixing
|-
|-
| [[UV_VIS4]]
| [[UV_VIS4]]
| use to turn on or off biharmonic horizontal mixing
| use to activate biharmonic horizontal mixing
|-
| [[UV_SMAGORINSKY]]
| use to turn ON or OFF Smagorinsky-like viscosity
|-
| [[UV_DRAG_GRID]]
| use if spatially varying bottom friction parameters
|-
|-
| [[UV_LOGDRAG]]
| [[UV_LOGDRAG]]
| use to turn on or off logarithmic bottom friction
| use to activate logarithmic bottom friction
|-
|-
| [[UV_LDRAG]]
| [[UV_LDRAG]]
| use to turn on or off linear bottom friction
| use to activate linear bottom friction
|-
|-
| [[UV_QDRAG]]
| [[UV_QDRAG]]
| use to turn on or off quadratic bottom friction
| use to activate quadratic bottom friction
|-
| [[SPLINES_VVISC]]
| use if splines reconstruction of vertical viscosity
|}
 
===Option to limit bottom stress===
 
:Do not allow the bottom stress components to change the direction of bottom momentum (change sign of velocity components).
 
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
| [[LIMIT_BSTRESS]]
| use to limit the magnitude of bottom stress
|}
 
===Options associated with tracers equations===
 
:The default horizontal and vertical advection is 4th-order centered. Use the splines vertical advection option is shallow, high vertical resolution applications.
 
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
| [[TS_DIF2]]
| use to turn ON or OFF harmonic horizontal mixing
|-
| [[TS_DIF4]]
| use to turn ON or OFF biharmonic horizontal mixing
|-
| [[TS_SMAGORINSKY]]
| use to turn ON or OFF Smagorinsky-like diffusion
|-
| [[TS_FIXED]]
| use if diagnostic run, no evolution of tracers
|-
| [[T_PASSIVE]]
| use if inert passive tracers (dyes, etc)
|-
| [[AGE_MEAN]]
| use if computing Mean Age of inert passive tracers
|-
| [[NONLIN_EOS]]
| use if using nonlinear equation of state
|-
| [[QCORRECTION]]
| use if net heat flux correction
|-
| [[SALINITY]]
| use if having salinity
|-
| [[SCORRECTION]]
| use if freshwater flux correction
|-
| [[SOLAR_SOURCE]]
| use if solar radiation source term
|-
| [[SPLINES_VDIFF]]
| use if splines reconstruction of vertical diffusion
|-
| [[SRELAXATION]]
| use if salinity relaxation as a freshwater flux
|-
| [[WTYPE_GRID]]
| use to turn ON spatially varying Jerlov water type
|}
 
===Option to suppress further surface cooling===
:Use this option to suppress further surface cooling if the SST is at freezing point or below and the net surface heat flux is cooling:
 
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
| [[LIMIT_STFLX_COOLING]]
| use to suppress SST cooling below freezing point
|}
 
===Option for MPDATA 3D Advection===
:[[Variables#Hadvection|Hadvection]]([[Variables#itrc|itrc]],[[Variables#ng|ng]])%[[Options#MPDATA|MPDATA]] and [[Variables#Vadvection|Vadvection]]([[Variables#itrc|itrc]],[[Variables#ng|ng]])%[[Options#MPDATA|MPDATA]] switches.
 
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
| [[TS_MPDATA_LIMIT]]
| use to limit upwind corrector fluxes for stability
|}
 
===Options for pressure gradient algorithm===
:If no option is selected, the pressure gradient term is computed using standard density Jacobian algorithm. Notice that there are two quartic pressure Jacobian options. They differ on how the WENO reconciliation step is done and in the monotonicity constraining algorithms.
 
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
| [[DJ_GRADPS]]
| use if splines density Jacobian (Shchepetkin, 2000)
|-
| [[PJ_GRADP]]
| use if finite volume Pressure Jacobian (Lin,1997)   
|-
| [[PJ_GRADPQ2]]
| use if quartic 2 Pressure Jacobian (Shchepetkin,2000)
|-
| [[PJ_GRADPQ4]]
| use if quartic 4 Pressure Jacobian (Shchepetkin,2000)
|-
| [[WJ_GRADP]]
| use if weighted density Jacobian (Song,1998)         
|-
| &nbsp;
| &nbsp;
|-
| [[ATM_PRESS]]
| use to impose atmospheric pressure onto sea surface
|-
| [[PRESS_COMPENSATE]]
| use to compensate for boundary without ATM pressure
|}
 
===Options for atmospheric boundary layer surface fluxes===
:It is possible to compute surface wind stress and surface net heat and freshwater fluxes form atmospheric fields using the bulk flux parameterization of [[Bibliography#FairallCW_1996a | Fairall et al. (1996)]]. There are three ways to provide longwave radiation in the atmospheric boundary layer: (i) compute the net longwave radiation internally using the Berliand (1952) equation ([[LONGWAVE]]) as function of air temperature, sea surface temperature, relative humidity, and cloud fraction; (ii) provide (read) longwave downwelling radiation only  and then add outgoing longwave radiation ([[LONGWAVE_OUT]]) as a function of the model sea surface temperature; and (iii) provide net longwave radiation (default).
 
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
| [[BULK_FLUXES]]
| use if bulk fluxes computation                       
|-
| [[NL_BULK_FLUXES]]
| use if bulk fluxes computed by nonlinear model                       
|-
| [[COOL_SKIN]]
| use if cool skin correction                         
|-
| [[LONGWAVE]]
| use if computing net longwave radiation             
|-
| [[LONGWAVE_OUT]]
| use if computing ougoing longwave radiation         
|-
| [[EMINUSP]]
| use if computing E-P
|-
| [[WIND_MINUS_CURRENT]]
| use if compute effective wind by removing current       
|}
 
===Options for wave roughness formulation in bulk fluxes===
 
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
| [[COARE_TAYLOR_YELLAND]]
| use Taylor and Yelland (2001) relation             
|-
|-
| [[UV_PSOURCE]]
| [[COARE_OOST]]
| use to turn on or off point Sources/Sinks
| use Oost et al (2002) relation                     
|-
|-
| [[DEEPWATER_WAVES]]
| use Deep water waves approximation                 
|}
|}


===Options for shortwave radiation===
:The shortwave radiation can be computed using the global albedo equation with a cloud correction. Alternatively, input shortwave radiation data computed from averaged data (with snapshots greater or equal than 24 hours) can be modulated by the local diurnal cycle which is a function longitude, latitude and year day.


{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
| [[ALBEDO]]
| use if albedo equation for shortwave radiation       
|-
| [[DIURNAL_SRFLUX]]
| use to impose shortwave radiation local diurnal cycle
|}


* Options associated with tracers equations: The default horizontal and vertical advection is 4th-order centered. Use the splines vertical advection option is shallow, high vertical resolution applications.                                               
===Options for model configuration===


** TS_A4HADVECTION    use if 4th-order Akima horizontal advection
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
** TS_C2HADVECTION    use if 2nd-order centered horizontal advection
!width="275"|
** TS_C4HADVECTION    use if 4th-order centered horizontal advection
|-
** TS_MPDATA          use if recursive MPDATA 3D advection
| [[SOLVE3D]]
** TS_U3HADVECTION    use if 3rd-order upstream horiz. advection
| use if solving 3D primitive equations                 
** TS_A4VADVECTION    use if 4th-order Akima vertical advection
|-
** TS_C2VADVECTION    use if 2nd-order centered vertical advection
| [[CURVGRID]]
** TS_C4VADVECTION    use if 4th-order centered vertical advection
| use if curvilinear coordinates grid                   
** TS_SVADVECTION      use if splines vertical advection
|-
** TS_DIF2            use to turn ON or OFF harmonic horizontal mixing
| [[MASKING]]
** TS_DIF4            use to turn ON or OFF biharmonic horizontal mixing
| use if land/sea masking                               
** TS_FIXED            use if diagnostic run, no evolution of tracers
|-
** T_PASSIVE          use if inert passive tracers (dyes, etc)
| [[BODYFORCE]]
** SALINITY            use if having salinity
| use if applying stresses as a body force                
** NONLIN_EOS          use if using nonlinear equation of state
|-
** QCORRECTION        use if net heat flux correction
| [[PROFILE]]
** SCORRECTION        use if freshwater flux correction
| use if time profiling                                 
** SOLAR_SOURCE        use if solar radiation source term
|-
** SRELAXATION        use if salinity relaxation as a freshwater flux
| [[AVERAGES]]
** TS_PSOURCE          use to turn ON or OFF point Sources/Sinks
| use if writing out time-averaged data                 
**                                                                          **
|-
** Pressure gradient algorithm OPTIONS:                                     **
| [[AVERAGES_DETIDE]]
**                                                                          **
| use if writing out NLM time-averaged detided fields                  
**  If no option is selected, the pressure gradient term is computed using  **
|-
**  standard density Jacobian algorithm. Notice that there are two quartic  **
| [[AD_AVERAGES]]
**  pressure Jacobian options. They differ on how the WENO reconsicliation  **
| use if writing out ADM time-averaged data                  
**  step is done and in the monotonicity constraining algorithms.          **
|-
**                                                                          **
| [[RP_AVERAGES]]
** DJ_GRADPS          use if splines density Jacobian (Shchepetkin, 2000)  **
| use if writing out RPM time-averaged data                 
** PJ_GRADP            use if finite volume Pressure Jacobian (Lin,1997)    **
|-
** PJ_GRADPQ2          use if quartic 2 Pressure Jacobian (Shchepetkin,2000) **
| [[TL_AVERAGES]]
** PJ_GRADPQ4          use if quartic 4 Pressure Jacobian (Shchepetkin,2000) **
| use if writing out TLM time-averaged data              
** WJ_GRADP            use if weighted density Jacobian (Song,1998)          **
|-
**                                                                          **
| [[DIAGNOSTICS_BIO]]
** ATM_PRESS          use to impose atmospheric pressure onto sea surface  **
| use if writing out biological diagnostics             
**                                                                          **
|-
** Model coupling OPTIONS:                                                  **
| [[DIAGNOSTICS_UV]]
**                                                                          **
| use if writing out momentum diagnostics               
** SWAN_COUPLING      use if two-way coupling to SWAN                      **
|-
** WRF_COUPLING        use if two-way coupling to WRF                        **
| [[DIAGNOSTICS_TS]]
**                                                                          **
| use if writing out tracer diagnostics                 
** OPTIONS for surface fluxes formutalion using atmospheric boundary layer  **
|-
** (Fairall et al, 1996):                                                   **
| [[ICESHELF]]
**                                                                          **
| use if including ice shelf cavities                   
**  There are three ways to provide longwave radiation in the atmospheric  **
|-
**  boundary layer: (1) Compute the net longwave radiation internally using **
| [[SPHERICAL]]
**  the Berliand (1952) equation (LONGWAVE) as function of air temperature, **
| use if analytical spherical grid                       
**  sea surface temperature, relative humidity, and cloud fraction;         **
|-
**  (2) provide (read) longwave downwelling radiation only  and then add    **
| [[STATIONS]]
**  outgoing longwave radiation (LONGWAVE_OUT) as a function of the model  **
| use if writing out station data                       
**  sea surface temperature; (3) provide net longwave radiation (default).  **
|-
**                                                                          **
| [[STATIONS_CGRID]]
** BULK_FLUXES        use if bulk fluxes computation                        **
| use if extracting data at native C-grid               
** COOL_SKIN          use if cool skin correction                          **
|}
** LONGWAVE            use if computing net longwave radiation              **
** LONGWAVE_OUT        use if computing ougoing longwave radiation          **
** EMINUSP            use if computing E-P                                  **
**                                                                          **
** OPTIONS for wave roughness formulation in bulk fluxes:                   **
**                                                                          **
** COARE_TAYLOR_YELLAND  use Taylor and Yelland (2001) relation              **
** COARE_OOST            use Oost et al (2002) relation                      **
** DEEPWATER_WAVES      use Deep water waves approximation                  **
**                                                                          **
** OPTIONS for shortwave radiation:                                          **
**                                                                          **
**  The shortwave radiation can be computed using the global albedo        **
**  equation with a cloud correction. Alternatively, input shortwave        **
**  radiation data computed from averaged data (with snapshots greater      **
**  or equal than 24 hours) can be modulated by the local diurnal cycle    **
**  which is a function longitude, latitude and day-of-year.                **
**                                                                          **
** ALBEDO              use if albedo equation for shortwave radiation        **
** DIURNAL_SRFLUX      use to impose shortwave radiation local diurnal cycle **
**                                                                          **
** Model configuration OPTIONS:                                              **
**                                                                          **
** SOLVE3D            use if solving 3D primitive equations                **
** CURVGRID           use if curvilinear coordinates grid                  **
** MASKING             use if land/sea masking                              **
** BODYFORCE           use if applying stresses as bodyforces               **
** PROFILE             use if time profiling                                **
** AVERAGES           use if writing out time-averaged data                **
** AVERAGES_AKV        use if writing out time-averaged AKv                 **
** AVERAGES_AKT        use if writing out time-averaged AKt                 **
** AVERAGES_AKS        use if writing out time-averaged AKs                  **
** AVERAGES_FLUXES    use if writing out time-averaged fluxes              **
** AVERAGES_NEARSHORE  use if writing out time-averaged nearshore stresses  **
** AVERAGES_QUADRATIC  use if writing out quadratic terms                    **
** AVERAGES_BEDLOAD    use if writing out time-averaged bed load             **
** DIAGNOSTICS_BIO     use if writing out biological diagnostics            **
** DIAGNOSTICS_UV     use if writing out momentum diagnostics              **
** DIAGNOSTICS_TS     use if writing out tracer diagnostics                **
** ICESHELF           use if including ice shelf cavities                  **
** SPHERICAL           use if analytical spherical grid                      **
** STATIONS           use if writing out station data                      **
** STATIONS_CGRID     use if extracting data at native C-grid              **
**                                                                          **
** OPTIONS for Lagrangian drifters:                                          **
**                                                                          **
** FLOATS              use to activate simulated Lagrangian drifters        **
** FLOAT_VWALK        use if vertical random walk                          **
**                                                                          **
** OPTION to activate conservative, parabolic spline reconstruction of      **
** vertical derivatives. Notice that there also options (see above) for      **
** vertical advection of momentum and tracers using splines.                **
**                                                                          **
** SPLINES            use to activate parabolic splines reconstruction      **
**                                                                          **
** OPTIONS for analytical fields configuration:                              **
**                                                                          **
**    Any of the analytical expressions are coded in "analytical.F".        **
**                                                                          **
** ANA_BIOLOGY        use if analytical biology initial conditions          **
** ANA_BPFLUX          use if analytical bottom passive tracers fluxes      **
** ANA_BSFLUX          use if analytical bottom salinity flux                **
** ANA_BTFLUX          use if analytical bottom temperature flux            **
** ANA_CLOUD          use if analytical cloud fraction                      **
** ANA_DIAG            use if customized diagnostics                        **
** ANA_FSOBC          use if analytical free-surface boundary conditions    **
** ANA_GRID            use if analytical model grid set-up                  **
** ANA_HUMIDITY        use if analytical surface air humidity                **
** ANA_INITIAL        use if analytical initial conditions                  **
** ANA_M2CLIMA        use if analytical 2D momentum climatology            **
** ANA_M2OBC          use if analytical 2D momentum boundary conditions    **
** ANA_M3CLIMA        use if analytical 3D momentum climatology            **
** ANA_M3OBC          use if analytical 3D momentum boundary conditions    **
** ANA_MASK            use if analytical Land/Sea masking                    **
** ANA_PAIR            use if analytical surface air pressure                **
** ANA_PASSIVE        use if analytical initial condtions for inert tracers **
** ANA_PERTURB        use if analytical perturbation of initial conditions  **
** ANA_PSOURCE        use if analytical point Sources/Sinks                **
** ANA_RAIN            use if analytical rain fall rate                      **
** ANA_SEDIMENT        use if analytical sediment initial fields            **
** ANA_SMFLUX          use if analytical surface momentum stress            **
** ANA_SPFLUX          use if analytical surface passive tracers fluxes      **
** ANA_SPINNING        use if analytical time-varying rotation force        **
** ANA_SRFLUX          use if analytical surface shortwave radiation flux    **
** ANA_SSFLUX          use if analytical surface salinity flux              **
** ANA_SSH            use if analytical sea surface height                  **
** ANA_SSS            use if analytical sea surface salinity                **
** ANA_SST            use if analytical SST and dQdSST                      **
** ANA_STFLUX          use if analytical surface temperature flux            **
** ANA_TAIR            use if analytical surface air temperature            **
** ANA_TCLIMA          use if analytical tracers climatology                **
** ANA_TOBC            use if analytical tracers boundary conditions        **
** ANA_VMIX            use if analytical vertical mixing coefficients        **
** ANA_WINDS          use if analytical surface winds                      **
** ANA_WWAVE          use if analytical wind induced waves                  **
**                                                                          **
** OPTIONS for horizontal mixing of momentum:                                **
**                                                                          **
** VISC_GRID          use to scale viscosity coefficient by grid size      **
** MIX_S_UV            use if mixing along constant S-surfaces              **
** MIX_GEO_UV          use if mixing on geopotential (constant Z) surfaces  **
**                                                                          **
** OPTIONS for horizontal mixing of tracers:                                **
**                                                                          **
** DIFF_GRID          use to scale diffusion coefficients by grid size      **
** MIX_S_TS            use if mixing along constant S-surfaces              **
** MIX_GEO_TS          use if mixing on geopotential (constant Z) surfaces  **
** MIX_ISO_TS          use if mixing on epineutral (constant RHO) surfaces  **
**                                                                          **
** OPTIONS for vertical turbulent mixing scheme of momentum and tracers      **
** (activate only one closure):                                              **
**                                                                          **
** BVF_MIXING          use if Brunt-Vaisala frequency mixing                **
** GLS_MIXING          use if Generic Length-Scale mixing                    **
** MY25_MIXING        use if Mellor/Yamada Level-2.5 closure                **
** LMD_MIXING          use if Large et al. (1994) interior closure          **
**                                                                          **
** OPTIONS for the Generic Length-Scale closure (Warner et al., 2005):      **
**                                                                          **
**  The default horizontal advection is third-order upstream bias.  The    **
**  default vertical advection is 4th-order centered advection.            **
**                                                                          **
** CANUTO_A            use if Canuto A-stability function formulation        **
** CANUTO_B            use if Canuto B-stability function formulation        **
** CHARNOK            use if Charnok surface roughness from wind stress    **
** CRAIG_BANNER        use if Craig and Banner wave breaking surface flux    **
** KANTHA_CLAYSON      use if Kantha and Clayson stability function          **
** K_C2ADVECTION      use if 2nd-order centered advection                  **
** K_C4ADVECTION      use if 4th-order centered advection                  **
** N2S2_HORAVG        use if horizontal smoothing of buoyancy/shear        **
** ZOS_HSIG            use if surface roughness from wave amplitude          **
** TKE_WAVEDISS        use if wave breaking surface flux from wave amplitude **
**                                                                          **
** OPTIONS for the Mellor/Yamada level 2.5 closure:                          **
**                                                                          **
**  The default horizontal advection is third-order upstream bias.  The    **
**  default vertical advection is 4th-order centered advection.            **
**                                                                          **
** N2S2_HORAVG        use if horizontal smoothing of buoyancy/shear        **
** KANTHA_CLAYSON      use if Kantha and Clayson stability function          **
** K_C2ADVECTION      use if 2nd-order centered advection                  **
** K_C4ADVECTION      use if 4th-order centered advection                  **
**                                                                          **
** OPTIONS for the Large et al. (1994) K-profile parameterization mixing:    **
** mixing:                                                                  **
**                                                                          **
** LMD_BKPP            use if bottom boundary layer KPP mixing              **
** LMD_CONVEC          use to add convective mixing due to shear instability **
** LMD_DDMIX          use to add double-diffusive mixing                    **
** LMD_NONLOCAL        use if nonlocal transport                            **
** LMD_RIMIX          use to add diffusivity due to shear instability      **
** LMD_SHAPIRO        use if Shapiro filtering boundary layer depth        **


** LMD_SKPP            use if surface boundary layer KPP mixing              **
===Options for Lagrangian drifters===
**                                                                          **
 
** OPTIONS to activate smoothing of Richardson number, if SPLINES is not    **
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
** activated:                                                                **
!width="275"|
**                                                                          **
|-
** RI_HORAVG          use if horizontal Richardson number smoothing        **
| [[FLOATS]]
** RI_VERAVG          use if vertical  Richardson number smoothing        **
| use to activate simulated Lagrangian drifters
**                                                                          **
|-
** OPTIONS for Meinte Blass bottom boundary layer closure:                   **
| [[FLOAT_OYSTER]]
**                                                                          **
| use to activate oyster model behavior in floats
**  The Options MB_Z0BL and MB_Z0RIP should be activated concurrently.     **
|-
**                                                                          **
| [[FLOAT_STICKY]]
** MB_BBL              use if Meinte Blaas BBL closure                      **
| ues to reflect/stick floats that hit surface/bottom
** MB_CALC_ZNOT        use if computing bottom roughness internally          **
|-
** MB_CALC_UB         use if computing bottom orbital velocity internally  **
| [[FLOAT_VWALK]]
** MB_Z0BIO            use if biogenic bedform roughness for ripples        **
| use if vertical random walk
** MB_Z0BL             use if bedload roughness for ripples                  **
|-
** MB_Z0RIP            use if bedform roughness for ripples                  **
| [[VWALK_FORWARD]]
**                                                                          **
| use if forward time stepping vertical random walk    
** OPTIONS for Styles and Glenn (2000) bottom boundary layer closure:        **
|}
**                                                                          **
 
** SG_BBL              use if Styles and Glenn (2000) BBL closure            **
===Options for analytical fields configuration===
** SG_CALC_ZNOT        use if computing bottom roughness internally          **
:The model may be configured, initialized, and forced with analytical expressions. These analytical expressions are coded in several header files which are included in [[analytical.F]]. The analytical header files in the '''ROMS/Functionals''' sub-directory correspond to all the distributed idealized test cases. Another set of analytical header files templates are provided in the '''User/Functionals''' sub-directory.   
** SG_CALC_UB          use if computing bottom orbital velocity internally  **
 
** SG_LOGINT          use if logarithmic interpolation of (Ur,Vr)          **
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
**                                                                          **
!width="275"|
** OPTIONS for the Sherwood/Signell/Warner bottom boundary layer closure:    **
|-
**                                                                          **
| [[ANA_BIOLOGY]]
** SSW_BBL            use if Sherwood et al. BBL closure                    **
| use if analytical biology initial conditions          
** SSW_CALC_ZNOT      use if computing bottom roughness internally          **
|-
** SSW_LOGINT          use if logarithmic interpolation of (Ur,Vr)          **
| [[ANA_BPFLUX]]
** SSW_CALC_UB        use if computing bottom orbital velocity internally  **
| use if analytical bottom passive tracers fluxes     
** SSW_FORM_DRAG_COR  use to activate form drag coefficient                **
|-
** SSW_Z0BIO          use if biogenic bedform roughness from ripples        **
| [[ANA_BSFLUX]]
** SSW_Z0BL            use if bedload roughness for ripples                  **
| use if analytical bottom salinity flux               
** SSW_Z0RIP          use if bedform roughness from ripples                **
|-
**                                                                          **
| [[ANA_BTFLUX]]
** Lateral boundary conditions OPTIONS:                                      **
| use if analytical bottom temperature flux              
**                                                                          **
|-
**  Select ONE option at each boundary edge for free-surface, 2D momentum, **
| [[ANA_CLOUD]]
**  3D momentum, and tracers. The turbulent kineric energy (TKE) conditions **
| use if analytical cloud fraction                     
**  are only activated for the Generic length scale or Mellor-Yamada 2.5    **
|-
**  vertical mixing closures. If open boundary radiation conditions, an    **
| [[ANA_DIAG]]
**  additional option can be activated at each boundary edge to include    **
| use if customized diagnostics                       
**  a passive (active) nudging term with weak (strong) values for outflow  **
|-
**  (inflow).                                                              **
| [[ANA_DQDSST]]
**                                                                          **
| use if analytical surface heat flux sensitivity to SST                       
** Option to impose a sponge layer near the lateral boundary:                **
|-
**                                                                          **
| [[ANA_DRAG]]
** SPONGE              use if enhanced viscosity/diffusion areas             **
| use if analytical spatially varying drag parameters                       
**                                                                          **
|-
** OPTIONS to impose mass conservation at the open boundary:                **
| [[ANA_FSOBC]]
**                                                                          **
| use if analytical free-surface boundary conditions   
** EAST_VOLCONS        use if Eastern  edge mass conservation enforcement   **
|-
** WEST_VOLCONS        use if Western  edge mass conservation enforcement    **
| [[ANA_GRID]]
** NORTH_VOLCONS      use if Northern edge mass conservation enforcement   **
| use if analytical model grid set-up                 
** SOUTH_VOLCONS      use if Southern edge mass conservation enforcement    **
|-
**                                                                          **
| [[ANA_HUMIDITY]]
** OPTIONS for periodic boundary conditions:                                **
| use if analytical surface air humidity               
**                                                                          **
|-
** EW_PERIODIC        use if East-West periodic boundaries                  **
| [[ANA_INITIAL]]
** NS_PERIODIC        use if North-South periodic boundaries                **
| use if analytical initial conditions                 
**                                                                          **
|-
** OPTIONS for closed boundary conditions:                                  **
| [[ANA_M2CLIMA]]
**                                                                          **
| use if analytical 2D momentum climatology           
** EASTERN_WALL        use if Eastern  edge, closed wall condition          **
|-
** WESTERN_WALL        use if Western  edge, closed wall condition          **
| [[ANA_M2OBC]]
** NORTHERN_WALL      use if Northern edge, closed wall condition          **
| use if analytical 2D momentum boundary conditions   
** SOUTHERN_WALL      use if Southern edge, closed wall condition          **
|-
**                                                                          **
| [[ANA_M3CLIMA]]
** Additional OPTION for radiation open boundary conditions:                **
| use if analytical 3D momentum climatology           
**                                                                          **
|-
** RADIATION_2D        use if tangential phase speed in radiation conditions **
| [[ANA_M3OBC]]
**                                                                          **
| use if analytical 3D momentum boundary conditions   
** Eastern edge open boundary condtions OPTIONS:                            **
|-
**                                                                          **
| [[ANA_MASK]]
** EAST_FSCHAPMAN      use if free-surface Chapman condition                **
| use if analytical Land/Sea masking                   
** EAST_FSGRADIENT    use if free-surface gradient condition                **
|-
** EAST_FSRADIATION    use if free-surface radiation condition              **
| [[ANA_NUDGCOEF]]
** EAST_FSNUDGING      use if free-surface passive/active nudging term      **
| use if analytical climatology nudging coefficients               
** EAST_FSCLAMPED      use if free-surface clamped condition                **
|-
** EAST_M2FLATHER      use if 2D momentum Flather condition                  **
| [[ANA_PAIR]]
** EAST_M2GRADIENT    use if 2D momentum gradient condition                **
| use if analytical surface air pressure               
** EAST_M2RADIATION    use if 2D momentum radiation condition                **
|-
** EAST_M2REDUCED      use if 2D momentum reduced-physics                    **
| [[ANA_PASSIVE]]
** EAST_M2NUDGING     use if 2D momentum passive/active nudging term        **
| use if analytical initial conditions for inert tracers
** EAST_M2CLAMPED      use if 2D momentum clamped condition                  **
|-
** EAST_M3GRADIENT    use if 3D momentum gradient condition                **
| [[ANA_PERTURB]]
** EAST_M3RADIATION    use if 3D momentum radiation condition                **
| use if analytical perturbation of initial conditions  
** EAST_M3NUDGING      use if 3D momentum passive/active nudging term        **
|-
** EAST_M3CLAMPED      use if 3D momentum clamped condition                  **
| [[ANA_PSOURCE]]
** EAST_KGRADIENT      use if TKE fields gradient condition                  **
| use if analytical point Sources/Sinks               
** EAST_KRADIATION    use if TKE fields radiation condition                **
|-
** EAST_TGRADIENT      use if tracers gradient condition                    **
| [[ANA_RAIN]]
** EAST_TRADIATION    use if tracers radiation condition                    **
| use if analytical rain fall rate                     
** EAST_TNUDGING      use if tracers passive/active nudging term            **
|-
** EAST_TCLAMPED      use if tracers clamped condition                      **
| [[ANA_SEDIMENT]]
**                                                                          **
| use if analytical sediment initial fields           
** Western edge open boundary condtions OPTIONS:                            **
|-
**                                                                          **
| [[ANA_SMFLUX]]
** WEST_FSCHAPMAN      use if free-surface Chapman condition                **
| use if analytical surface momentum stress              
** WEST_FSGRADIENT    use if free-surface gradient condition                **
|-
** WEST_FSRADIATION    use if free-surface radiation condition              **
| [[ANA_SPFLUX]]
** WEST_FSNUDGING      use if free-surface passive/active nudging term      **
| use if analytical surface passive tracers fluxes     
** WEST_FSCLAMPED      use if free-surface clamped condition                **
|-
** WEST_M2FLATHER      use if 2D momentum Flather condition                  **
| [[ANA_SPINNING]]
** WEST_M2GRADIENT    use if 2D momentum gradient condition                **
| use if analytical time-varying rotation force    
** WEST_M2RADIATION    use if 2D momentum radiation condition                **
|-
** WEST_M2REDUCED      use if 2D momentum reduced-physics                    **
| [[ANA_SPONGE]]
** WEST_M2NUDGING      use if 2D momentum passive/active nudging term        **
| use if analytical enhanced viscosity/diffusion sponge   
** WEST_M2CLAMPED      use if 2D momentum clamped condition                  **
|-
** WEST_M3GRADIENT    use if 3D momentum gradient condition                **
| [[ANA_SRFLUX]]
** WEST_M3RADIATION    use if 3D momentum radiation condition                **
| use if analytical surface shortwave radiation flux    
** WEST_M3NUDGING      use if 3D momentum passive/active nudging term       **
|-
** WEST_M3CLAMPED      use if 3D momentum clamped condition                  **
| [[ANA_SSFLUX]]
** WEST_KGRADIENT      use if TKE fields gradient condition                  **
| use if analytical surface salinity flux             
** WEST_KRADIATION    use if TKE fields radiation condition                **
|-
** WEST_TGRADIENT      use if tracers gradient condition                    **
| [[ANA_SSH]]
** WEST_TRADIATION    use if tracers radiation condition                    **
| use if analytical sea surface height                 
** WEST_TNUDGING      use if tracers passive/active nudging term            **
|-
** WEST_TCLAMPED      use if tracers clamped condition                      **
| [[ANA_SSS]]
**                                                                          **
| use if analytical sea surface salinity               
** Northern edge open boundary condtions OPTIONS:                            **
|-
**                                                                          **
| [[ANA_SST]]
** NORTH_FSCHAPMAN    use if free-surface Chapman condition                **
| use if analytical SST and dQdSST                     
** NORTH_FSGRADIENT    use if free-surface gradient condition                **
|-
** NORTH_FSRADIATION  use if free-surface radiation condition              **
| [[ANA_STFLUX]]
** NORTH_FSNUDGING    use if free-surface passive/active nudging term      **
| use if analytical surface temperature flux           
** NORTH_FSCLAMPED    use if free-surface clamped condition                **
|-
** NORTH_M2FLATHER    use if 2D momentum Flather condition                  **
| [[ANA_TAIR]]
** NORTH_M2GRADIENT    use if 2D momentum gradient condition                **
| use if analytical surface air temperature           
** NORTH_M2RADIATION  use if 2D momentum radiation condition                **
|-
** NORTH_M2REDUCED    use if 2D momentum reduced-physics                    **
| [[ANA_TCLIMA]]
** NORTH_M2NUDGING    use if 2D momentum passive/active nudging term        **
| use if analytical tracers climatology               
** NORTH_M2CLAMPED    use if 2D momentum clamped condition                  **
|-
** NORTH_M3GRADIENT    use if 3D momentum gradient condition                **
| [[ANA_TOBC]]
** NORTH_M3RADIATION  use if 3D momentum radiation condition                **
| use if analytical tracers boundary conditions        
** NORTH_M3NUDGING    use if 3D momentum passive/active nudging term        **
|-
** NORTH_M3CLAMPED    use if 3D momentum clamped condition                  **
| [[ANA_VMIX]]
** NORTH_KGRADIENT    use if TKE fields gradient condition                  **
| use if analytical vertical mixing coefficients       
** NORTH_KRADIATION    use if TKE fields radiation condition                **
|-
** NORTH_TGRADIENT    use if tracers gradient condition                    **
| [[ANA_WINDS]]
** NORTH_TRADIATION    use if tracers radiation condition                    **
| use if analytical surface winds                     
** NORTH_TNUDGING      use if tracers passive/active nudging term            **
|-
** NORTH_TCLAMPED      use if tracers clamped condition                      **
| [[ANA_WWAVE]]
**                                                                          **
| use if analytical wind induced waves                 
** Southern edge open boundary condtions OPTIONS:                            **
|}
**                                                                          **
 
** SOUTH_FSCHAPMAN    use if free-surface Chapman condition                **
===Options for horizontal mixing of momentum===
** SOUTH_FSGRADIENT    use if free-surface gradient condition                **
 
** SOUTH_FSRADIATION  use if free-surface radiation condition              **
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
** SOUTH_FSNUDGING    use if free-surface passive/active nudging term      **
!width="275"|
** SOUTH_FSCLAMPED    use if free-surface clamped condition                **
|-
** SOUTH_M2FLATHER    use if 2D momentum Flather condition                  **
| [[VISC_GRID]]
** SOUTH_M2GRADIENT    use if 2D momentum gradient condition                **
| use to scale viscosity coefficient by grid size     
** SOUTH_M2RADIATION  use if 2D momentum radiation condition                **
|-
** SOUTH_M2REDUCED    use if 2D momentum reduced-physics                    **
| [[MIX_S_UV]]
** SOUTH_M2NUDGING    use if 2D momentum passive/active nudging term        **
| use if mixing along constant S-surfaces             
** SOUTH_M2CLAMPED    use if 2D momentum clamped condition                  **
|-
** SOUTH_M3GRADIENT    use if 3D momentum gradient condition                **
| [[MIX_GEO_UV]]
** SOUTH_M3RADIATION  use if 3D momentum radiation condition                **
| use if mixing along geopotential (constant Z) surfaces 
** SOUTH_M3NUDGING    use if 3D momentum passive/active nudging term        **
|}
** SOUTH_M3CLAMPED    use if 3D momentum clamped condition                  **
 
** SOUTH_KGRADIENT    use if TKE fields gradient condition                  **
===Options for horizontal mixing of tracers===
** SOUTH_KRADIATION    use if TKE fields radiation condition                **
 
** SOUTH_TGRADIENT    use if tracers gradient condition                    **
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
** SOUTH_TRADIATION    use if tracers radiation condition                    **
!width="275"|
** SOUTH_TNUDGING      use if tracers passive/active nudging term            **
|-
** SOUTH_TCLAMPED      use if tracers clamped condition                      **
| [[DIFF_GRID]]
**                                                                          **
| use to scale diffusion coefficients by grid size      
** OPTIONS for tidal forcing at open boundaries:                            **
|-
**                                                                          **
| [[MIX_S_TS]]
**  The tidal data is processed in terms of tidal components, classified by **
| use if mixing along constant S-surfaces             
**  period. The tidal forcing is computed for the full horizontal grid. If  **
|-
**  requested, the tidal forcing is added to the processed open boundary    **
| [[MIX_GEO_TS]]
**  data.                                                                  **
| use if mixing along geopotential (constant depth) surfaces 
**                                                                          **
|-
**  Both tidal elevation and tidal currents are required to force the model **
| [[MIX_ISO_TS]]
**  properly. However, if only the tidal elevation is available, the tidal  **
| use if mixing along epineutral (constant density) surfaces
**   currents at the open boundary can be estimated by reduced physics. Only **
|-
**  the pressure gradient, Coriolis, and surface and bottom stresses terms  **
| [[TS_MIX_CLIMA]]
**  are considered at the open boundary. See "u2dbc_im.F" or "v2dbc_im.F"   **
| use if diffusion of tracer perturbation (t-tclm)
**  for details. Notice that there is an additional option (FSOBC_REDUCED)  **
|-
**  for the computation of the pressure gradient term in both Flather or    **
| [[TS_MIX_MAX_SLOPE]]
**  reduced physics conditions (*_M2FLATHER, *_M2REDUCED).                  **
| use if maximum slope in epineutral diffusion
**                                                                          **
|-
** SSH_TIDES          use if imposing tidal elevation                      **
| [[TS_MIX_MIN_STRAT]]
** UV_TIDES            use if imposing tidal currents                        **
| use if minimum stratification in epineutral diffusion
** RAMP_TIDES          use if ramping (over one day) tidal forcing          **
|-
** FSOBC_REDUCED      use if SSH data and reduced physics conditions        **
| [[TS_MIX_STABILITY]]
** ADD_FSOBC          use to add tidal elevation to processed OBC data      **
| use if weighting diffusion between two time levels
** ADD_M2OBC          use to add tidal currents  to processed OBC data      **
|}
**                                                                          **
 
** OPTIONS for reading and processing of climatological fields:             **
===Options for vertical mixing of momentum and tracers===
**                                                                          **
:There are several vertical mixing parameterizations in ROMS. Activate only one closure.
** M2CLIMATOLOGY      use if processing 2D momentum climatology            **
 
** M3CLIMATOLOGY      use if processing 3D momentum climatology            **
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
** TCLIMATOLOGY        use if processing tracers climatology                **
!width="275"|
** ZCLIMATOLOGY        use if processing SSH climatology                    **
|-
**                                                                          **
| [[BVF_MIXING]]
** OPTIONS to nudge climatology data (primarily in sponge areas):            **
| use if Brunt-Vaisala frequency mixing
**                                                                          **
|-
** M2CLM_NUDGING      use if nudging 2D momentum climatology                **
| [[GLS_MIXING]]
** M3CLM_NUDGING      use if nudging 3D momentum climatology                **
| use if Generic Length-Scale mixing               
** TCLM_NUDGING        use if nudging tracers climatology                    **
|-
** ZCLM_NUDGING        use if nudging SSH climatology                        **
| [[MY25_MIXING]]
**                                                                          **
| use if Mellor/Yamada Level-2.5 closure
** Optimal Interpolation (OI) or nudging data assimilation OPTIONS:          **
|-
**                                                                          **
| [[LMD_MIXING]]
**  The OI assimilation is intermittent whereas nudging is continuous      **
| use if [[Bibliography#LargeWG_1994a | Large et al. (1994)]] K-profile vertical parameterization
**  (observations are time interpolated). If applicable, choose only one    **
|-
**  option for each field to update: either OI assimilation or nudging.    **
| &nbsp;
**                                                                          **
| &nbsp;
** ASSIMILATION_SSH    use if assimilating SSH observations                  **
|-
** ASSIMILATION_SST    use if assimilating SST observations                  **
| [[LIMIT_VDIFF]]
** ASSIMILATION_T      use if assimilating tracers observations              **
| use to impose an upper limit on vertical diffusion
** ASSIMILATION_UVsur  use if assimilating surface current observations      **
|-
** ASSIMILATION_UV    use if assimilating horizontal current observations  **
| [[LIMIT_VVISC]]
** UV_BAROCLINIC      use if assimilating baroclinic currents only          **
| use to impose an upper limit on vertical viscosity
** NUDGING_SSH        use if nudging SSH observations                      **
|}
** NUDGING_SST        use if nudging SST observations                      **
 
** NUDGING_T          use if nudging tracers observations                  **
===Options for the Generic Length-Scale closure===
** NUDGING_UVsur      use if nudging surface current observations          **
:The Generic Length Scale (GLS) uses two prognostic equations for turbulent kinetic energy (TKE) and length scale (&psi;) variables. The GLS may be configured as k-kl, k-&epsilon; k-&omega; by tuning several parameters in [[roms.in]], see [[Bibliography#WarnerJC_2005a | Warner et al., 2005]] for more details. The default horizontal advection is third-order upstream bias.  The default vertical advection is 4th-order centered advection.
** NUDGING_UV          use if nudging horizontal currents observations      **
 
**                                                                          **
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
** ROMS/TOMS driver OPTIONS:                                                 **
!width="275"|
**                                                                          **
|-
** ADM_DRIVER         use if generic adjoint model driver                   **
| [[CANUTO_A]]
** AD_SENSITIVITY     use if adjoint sensitivity driver                     **
| use if Canuto A-stability function formulation        
** AFT_EIGENMODES     use if adjoint finite time eingenmodes driver         **
|-
** CONVOLUTION        use if adjoint convolution driver                    **
| [[CANUTO_B]]
** CORRELATION         use if background-error correlation model driver     **
| use if Canuto B-stability function formulation       
** ENSEMBLE           use if ensemble prediction driver                     **
|-
** FORCING_SV         use if forcing singular vectors driver               **
| [[CHARNOK]]
** FT_EIGENMODES       use if finite time eingenmodes driver: normal modes   **
| use if Charnok surface roughness from wind stress   
** GRADIENT_CHECK      use if tangent linear and adjoint codes gradient test **
|-
** INNER_PRODUCT       use if tangent linear and adjoint inner product check **
| [[CRAIG_BANNER]]
** IS4DVAR            use if incremental 4DVar data assimilation           **
| use if Craig and Banner wave breaking surface flux   
** IS4DVAR_OLD        use if old incremental 4DVar data assimilation        **
|-
** OPT_OBSERVATIONS   use if optimal observations driver                    **
| [[KANTHA_CLAYSON]]
** OPT_PERTURBATION   use if optimal perturbations driver, singular vectors **
| use if Kantha and Clayson stability function         
** PICARD_TEST         use if representer tangent linear model test          **
|-
** PSEUDOSPECTRA       use if pseudospectra of tangent linear resolvant     **
| [[K_C2ADVECTION]]
** R_SYMMETRY          use if representer matrix symmetry test              **
| use if 2nd-order centered advection                 
** RPM_DRIVER          use if generic representers model driver              **
|-
** SANITY_CHECK        use if tangent linear and adjoint codes sanity check  **
| [[K_C4ADVECTION]]
** SO_SEMI            use if stochastic optimals driver, semi-norm          **
| use if 4th-order centered advection                 
** SO_TRACE            use if stochastic optimals, randomized trace          **
|-
** STOCHASTIC_OPT      use if stochastic optimals                            **
| [[N2S2_HORAVG]]
** S4DVAR              use if Strong constraint 4DVar data assimilation     **
| use if horizontal smoothing of buoyancy/shear       
** TLM_CHECK          use if tangent linear model linearization check      **
|-
** TLM_DRIVER          use if generic tangent linear model driver            **
| [[RI_SPLINES]]
** W4DPSAS            use if weak constraint 4D-PSAS data assimilation     **
| use if splines reconstruction for vertical sheer
** W4DVAR              use if Weak constraint 4DVar data assimilation       **
|-
**                                                                          **
| [[ZOS_HSIG]]
** OPTIONS associated with tangent linear, representer and adjoint models:  **
| use if surface roughness from wave amplitude         
**                                                                          **
|-
** ADJUST_STFLUX      use if including surface tracer flux in 4DVar state  **
| [[TKE_WAVEDISS]]
** ADJUST_WSTRESS      use if including wind-stress in 4DVar state          **
| use if wave breaking surface flux from wave amplitude
** BALANCE_OPERATOR    use if error covariance multivariate balance term    **
|}
** CELERITY_WRITE      use if writing radiation celerity in forward file    **
 
** CONVOLVE            use if convolving solution with diffusion operators  **
===Options for the Mellor/Yamada level 2.5 closure===
** ENERGY1_NORM        use if cost function scaled with the energy norm, 1  **
:This is the original closure proposed by [[Bibliography#MellorGL_1982 | Mellor and Yamda (1982)]] and latter modified by [[Bibliography#GalperinG_1988a | Galperin et al. (1994)]]. The default horizontal advection is third-order upstream bias.  The default vertical advection is 4th-order centered advection.
** ENERGY2_NORM        use if cost function scaled with the energy norm, 2  **
 
** ENERGY3_NORM        use if cost function scaled with the energy norm, 3  **
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
** FORWARD_MIXING      use if processing forward vertical mixing coefficient **
!width="275"|
** FORWARD_WRITE      use if writing out forward solution, basic state     **
|-
** FORWARD_READ        use if reading in forward solution, basic state      **
| [[N2S2_HORAVG]]
** FORWARD_RHS        use if processing forward right-hand-side terms      **
| use if horizontal smoothing of buoyancy/shear       
** IMPLICIT_VCONV      use if implicit vertical convolution algorithm        **
|-
** IMPULSE            use if processing adjoint impulse forcing            **
| [[KANTHA_CLAYSON]]
** IOM                use to activate IOM multiple executables              **
| use if Kantha and Clayson stability function         
** LANCZOS            use to activate Lanczos conjugate gradient algorithm  **
|-
** MULTIPLE_TLM        use if multiple TLM history files in 4DVAR            **
| [[K_C2ADVECTION]]
** N2NORM_PROFILE      use if N2(z) profile for energy normalization        **
| use if 2nd-order centered advection                 
** NLM_OUTER          use if nonlinear model as basic state in outer loop  **
|-
** RPM_RELAXATION      use if Picard iterations, Diffusive Relaxation of RPM **
| [[K_C4ADVECTION]]
** SO_SEMI_WHITE      use to activate white/red noise processes            **
| use if 4th-order centered advection                 
** VCONVOLUTION        use to add vertical correlation to 3D convolution    **
|-
** VERIFICATION        use if writing out solution at observation locations **
| [[RI_SPLINES]]
**                                                                          **
| use if splines reconstruction for vertical sheer
** OPTION for processing the full grid range (interior and boundary points)  **
|}
** of the state vector in variational data assimilation and generalized      **
 
** stability theory analysis. Otherwise, only interior points are processed. **
===Options for K-profile vertical mixing parameterization===
**                                                                          **
 
** FULL_GRID          use to consider both interior and boundary points    **
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
**                                                                          **
!width="275"|
** Fasham-type biology model OPTIONS:                                        **
|-
**                                                                          **
| [[LMD_BKPP]]
** BIO_FASHAM          use if Fasham type nitrogen-based model              **
| use if bottom boundary layer KPP mixing             
** BIO_SEDIMENT        use to restore fallen material to the nutrient pool  **
|-
** CARBON              use to add carbon constituents                        **
| [[LMD_CONVEC]]
** DENITRIFICATION    use to add denitrification processes                  **
| use to add convective mixing due to shear instability
** OXYGEN              use to add oxygen dynamics                            **
|-
** OCMIP_OXYGEN_SC    use if Schmidt number from Keeling et al. (1998)      **
| [[LMD_DDMIX]]
** RIVER_BIOLOGY      use to process river biology point-sources            **
| use to add double-diffusive mixing                   
** TALK_PROGNOSTIC    use if prognostic/diagnotic alkalinity                **
|-
**                                                                          **
| [[LMD_NONLOCAL]]
** NPZD biology model OPTIONS:                                              **
| use if nonlocal transport                           
**                                                                          **
|-
** NPZD_FRANKS        use if NPZD Biology model, Franks et al. (1986)      **
| [[LMD_RIMIX]]
** NPZD_POWELL        use if NPZD Biology model, Powell et al. (2006)      **
| use to add diffusivity due to shear instability     
**                                                                          **
|-
** Bio-optical EcoSim model OPTIONS:                                        **
| [[LMD_SHAPIRO]]
**                                                                          **
| use if Shapiro filtering boundary layer depth       
** ECOSIM              use if bio-optical EcoSim model                      **
|-
**                                                                          **
| [[LMD_SKPP]]
** Sediment transport model OPTIONS:                                        **
| use if surface boundary layer KPP mixing             
**                                                                          **
|-
** SEDIMENT            use to activate sediment transport model              **
| [[RI_SPLINES]]
** BEDLOAD_MPM        use to activate Meyer-Peter-Mueller bed load          **
| use if splines reconstruction for vertical sheer
** BEDLOAD_SOULSBY    use to activate Soulsby wave/current bed load        **
|}
** RIVER_SEDIMENT      use to process river sediment point-sources          **
 
** SED_DENS            use to activate sediment to affect equation of state **
===Options for Richardson number smoothing===
** SED_MORPH          use to allow bottom model elevation to evolve        **
:Mostly all vertical mixing parameterization are based on the Richardson Number (buoyancy/shear ratio). This computation is usually noisy and requires some smoothing. Use the options below if [[RI_SPLINES]] is not activated.
** SUSPLOAD            use to activate suspended load transport              **
 
**                                                                          **
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
** OPTIONS for two-way coupling to other models:                            **
!width="275"|
**                                                                          **
|-
** REFDIF_COUPLING    use if coupling to REFDIT wave model                  **
| [[RI_HORAVG]]
** SWAN_COUPLING      use if coupling to SWAN wave model                    **
| use if horizontal Richardson number smoothing       
** WRF_COUPLING        use if coupling to WRF atmospheric model             **
|-
**                                                                          **
| [[RI_VERAVG]]
** Nearshore and shallow water model OPTIONS:                               **
| use if vertical Richardson number smoothing       
**                                                                          **
|}
** WET_DRY            use to activate wetting and drying                    **
 
** NEARSHORE_MELLOR    use to activate radiation stress terms.               **
===Options for Meinte Blass bottom boundary layer closure===
**                                                                          **
:The Options [[MB_Z0BL]] and [[MB_Z0RIP]] should be activated concurrently.
** NetCDF input/output OPTIONS:                                              **
 
**                                                                          **
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
** NO_WRITE_GRID      use if not writing grid arrays                        **
!width="275"|
** PERFECT_RESTART    use to include perfect restart variables              **
|-
** READ_WATER          use if only reading water points data                **
| [[MB_BBL]]
** WRITE_WATER        use if only writing water points data                **
| use if Meinte Blaas BBL closure                     
** RST_SINGLE          use if writing single precision restart fields        **
|-
** OUT_DOUBLE          use if writing double precision output fields        **
| [[MB_CALC_ZNOT]]
**                                                                          **
| use if computing bottom roughness internally         
** OPTION to process 3D data by levels (2D slabs) to reduce memory needs in  **
|-
** distributed-memory configurations. This option is convinient for large    **
| [[MB_CALC_UB]]
** problems on nodes with limited memory.                                    **
| use if computing bottom orbital velocity internally 
**                                                                          **
|-
** INLINE_2DIO        use if processing 3D IO level by level               **
| [[MB_Z0BIO]]
**                                                                          **
| use if biogenic bedform roughness for ripples       
*******************************************************************************
|-
*******************************************************************************
| [[MB_Z0BL]]
*******************************************************************************
| use if bedload roughness for ripples                 
**                                                                          **
|-
** Idealized Test Problems:                                                  **
| [[MB_Z0RIP]]
**                                                                          **
| use if bedform roughness for ripples                 
** A4DVAR_TOY          4DVAR Data Assimilation Toy                          **
|}
** BASIN              Big Bad Basin Example                                **
 
** BENCHMARK          Benchmark Tests (small, Medium, big grids)            **
===Options for Styles and Glenn (2000) bottom boundary layer closure===
** BIO_TOY            One-dimension (vertical) Biology Toy                  **
 
** BL_TEST            Boundary Layers Test                                  **
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
** CANYON_A            Canyon_A Example                                      **
!width="275"|
** CANYON_B            Canyon_B Example                                      **
|-
** CHANNEL_NECK        Channel with a Constriction                          **
| [[SG_BBL]]
** COUPLING_TEST      Two-way Atmosphere-Ocean Coupling Test                **
| use if Styles and Glenn (2000) BBL closure           
** DOUBLE_GYRE        Idealized Double-gyre Example                        **
|-
** ESTUARY_TEST        Test Estuary for Sediment                            **
| [[SG_CALC_ZNOT]]
** FLT_TEST            Float Tracking Example                                **
| use if computing bottom roughness internally         
** GRAV_ADJ            Graviational Adjustment Example                      **
|-
** INLET_TEST          Test Inlet Application                                **
| [[SG_CALC_UB]]
** KELVIN              Kelvin wave test                                      **
| use if computing bottom orbital velocity internally    
** LAB_CANYON          Lab Canyon, Polar Coordinates Example                **
|-
** LAKE_SIGNELL        Lake Signell Sediment Test Case                      **
| [[SG_LOGINT]]
** LMD_TEST            Test for LMD and KPP                                  **
| use if logarithmic interpolation of (Ur,Vr)         
** OVERFLOW            Graviational/Overflow Example                        **
|}
** RIVERPLUME1        River Plume Example 1                                **
 
** RIVERPLUME2        River plume Example 2 (Hyatt and Signell)            **
===Options for the Sherwood/Signell/Warner bottom boundary layer closure===
** SEAMOUNT            Seamount Example                                      **
 
** SED_TEST1          Suspended Sediment Test in a Channel                  **
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
** SED_TOY            One-dimension (vertical) Sediment Toy                **
!width="275"|
** SHOREFACE          Shore Face Planar Beach Test Case                    **
|-
** SOLITON            Equatorial Rossby Wave Example                        **
| [[SSW_BBL]]
** TEST_CHAN          Sediment Test Channel Case                            **
| use if Sherwood et al. BBL closure                   
** TEST_HEAD          Sediment Test Headland Case                          **
|-
** UPWELLING          Upwelling Example (default)                          **
| [[SSW_CALC_ZNOT]]
** WEDDELL            Idealized Weddell Sea Shelf Application               **
| use if computing bottom roughness internally         
** WINDBASIN          Linear Wind-driven Constant Coriolis Basin            **
|-
**                                                                          **
| [[SSW_LOGINT]]
** Climatological Applications: (See www.myroms.org/Datasets)                **
| use if logarithmic interpolation of (Ur,Vr)          
**                                                                          **
|-
** DAMEE_4            North Atlantic DAMEE Application, 3/4 degree         **
| [[SSW_CALC_UB]]
**                                                                          **
| use if computing bottom orbital velocity internally 
** Selected Realistic Applications:                                          **
|-
**                                                                          **
| [[SSW_FORM_DRAG_COR]]
** ADRIA02            Adriatic Sea Application                              **
| use to activate form drag coefficient               
** NJ_BIGHT            New Jersey Bight Application                          **
|-
| [[SSW_Z0BIO]]
| use if biogenic bedform roughness from ripples       
|-
| [[SSW_Z0BL]]
| use if bedload roughness for ripples                 
|-
| [[SSW_Z0RIP]]
| use if bedform roughness from ripples               
|}
 
===Options for lateral boundary conditions===
 
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
| [[IMPLICIT_NUDGING]]
| use if implicit nudging term in momentum radiation
|-
| [[RADIATION_2D]]
| use if tangential phase speed in radiation conditions
|}
 
===Options for tidal forcing at open boundaries===
:The tidal data is processed in terms of tidal components, classified by period. The tidal forcing is computed for the full horizontal grid. If requested, the tidal forcing is added to the processed open boundary data. Both tidal elevation and tidal currents are required to force the model properly. However, if only the tidal elevation is available, the tidal currents at the open boundary can be estimated using reduced physics equations. Only the pressure gradient, Coriolis, and surface and bottom stresses terms are considered at the open boundary. See [[u2dbc_im.F]] or [[v2dbc_im.F]] for details. Notice that there is an additional option ([[FSOBC_REDUCED]]) for the computation of the pressure gradient term in both Flather or reduced physics conditions (*_M2FLATHER, *_M2REDUCED).
 
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
| [[SSH_TIDES]]
| use if imposing tidal elevation                     
|-
| [[UV_TIDES]]
| use if imposing tidal currents                       
|-
| [[RAMP_TIDES]]
| use if ramping (over one day) tidal forcing         
|-
| [[FSOBC_REDUCED]]
| use if SSH data and reduced physics conditions       
|-
| [[ADD_FSOBC]]
| use to add tidal elevation to processed open boundary conditions data     
|-
| [[ADD_M2OBC]]
| use to add tidal currents to processed open boundary conditions data     
|}
 
===Options for ROMS/TOMS driver===
:Choose only one option.
 
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
| [[ADM_DRIVER]]
| use if generic adjoint model driver
|-
| [[AD_SENSITIVITY]]
| use if adjoint sensitivity driver
|-
| [[AFT_EIGENMODES]]
| use if adjoint finite time eingenmodes driver
|-
| [[ARRAY_MODES]]
| use if 4D-Var representer matrix array modes
|-
| [[CLIPPING]]
| use if R4D-Var representer matrix clipping analysis
|-
| [[CORRELATION]]
| use if background-error correlation model driver
|-
| [[ENSEMBLE]]
| use if ensemble prediction driver
|-
| [[EVOLVED_LCZ]]
| use if 4D-Var evolved Hessian singular vectors
|-
| [[FORCING_SV]]
| use if forcing singular vectors driver
|-
| [[FT_EIGENMODES]]
| use if finite time eingenmodes driver: normal modes
|-
| [[HESSIAN_FSV]]
| use if Hessian forcing singular vectors
|-
| [[HESSIAN_SO]]
| use if Hessian stochastic optimals
|-
| [[HESSIAN_SV]]
| use if Hessian singular vectors
|-
| [[INNER_PRODUCT]]
| use if tangent linear and adjoint inner product check
|-
| [[I4DVAR]]
| use if incremental 4DVar data assimilation
|-
| [[I4DVAR_ANA_SENSITIVITY]]
| use if I4D-Var observations sensitivity
|-
| [[LCZ_FINAL]]
| use if computing 4D-Var Hessian singular vectors
|-
| [[OPT_OBSERVATIONS]]
| use if optimal observations driver                     
|-
| [[OPT_PERTURBATION]]
| use if optimal perturbations driver, singular vectors  
|-
| [[PICARD_TEST]]
| use if representer tangent linear model test           
|-
| [[PSEUDOSPECTRA]]
| use if pseudospectra of tangent linear resolvant
|-
| [[RBL4DVAR]]
| use if weak constraint RBL4D-Var data assimilation
|-
| [[RBL4DVAR_ANA_SENSITIVITY]]
| use if RBL4D-Var analysis observation sensitivity
|-
| [[RBL4DVAR_FCT_SENSITIVITY]]
| use if RBL4D-Var forecast observation sensitivity
|-
| [[RPM_DRIVER]]
| use if generic representers model driver            
|-
| [[R_SYMMETRY]]
| use if representer matrix symmetry test             
|-
| [[R4DVAR]]
| use if Strong/Weak constraint dual formulation 4DVar data assimilation (Formerly W4DVAR)
|-
| [[R4DVAR_ANA_SENSITIVITY]]
| use if R4D-Var analysis observation sensitivity
|-
| [[SANITY_CHECK]]
| use if tangent linear and adjoint codes sanity check 
|-
| [[SO_SEMI]]
| use if stochastic optimals driver, semi-norm         
|-
| [[SO_TRACE]]
| use if stochastic optimals, randomized trace         
|-
| [[SPLIT_I4DVAR]]
| use if split I4D-Var data assimilation
|-
| [[SPLIT_RBL4DVAR]]
| use if split RBL4D-Var data assimilation
|-
| [[SPLIT_R4DVAR]]
| use if split R4D-Var data assimilation
|-
| [[SPLIT_SP4DVAR]]
| use if split SP4D-Var data assimilation
|-
| [[SP4DVAR]]
| use if Saddle-Point 4D-Var data assimilation
|-
| [[STOCHASTIC_OPT]]
| use if stochastic optimals                           
|-
| [[TLM_CHECK]]
| use if tangent linear model linearization check     
|-
| [[TLM_DRIVER]]
| use if generic tangent linear model driver           
|}
 
===Options associated with tangent linear, representer and adjoint models===
 
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
| [[AD_IMPULSE]]
| use to force adjoint model with intermittent impulses
|-
| [[ADJUST_BOUNDARY]]
| use if including boundary conditions in 4DVar state
|-
| [[ADJUST_STFLUX]]
| use if including surface tracer flux in 4DVar state  
|-
| [[ADJUST_WSTRESS]]
| use if including wind-stress in 4DVar state         
|-
| [[ARRAY_MODES_SPLIT]]
| use to separate analysis due to IC, forcing, and OBC
|-
| [[BALANCE_OPERATOR]]
| use if error covariance multivariate balance term
|-
| [[BEOFS_ONLY]]
| use if computing EOFs of background error covariance
|-
| [[BGQC]]
| use if background quality control of observations
|-
| [[BNORM]]
| use if Background norm Hessian singular vectors
|-
| [[CELERITY_WRITE]]
| use if writing radiation celerity in forward file   
|-
| [[CLIPPING_SPLIT]]
| use to separate analysis due to IC, forcing, and OBC
|-
| [[DATALESS_LOOPS]]
| use if testing convergence of Picard iterations
|-
| [[ENKF_RESTART]]
| use if writting restart fields for EnKF
|-
| [[FORWARD_MIXING]]
| use if processing forward vertical mixing coefficient
|-
| [[FORWARD_WRITE]]
| use if writing out forward solution, basic state     
|-
| [[FORWARD_READ]]
| use if reading in forward solution, basic state     
|-
| [[FORWARD_RHS]]
| use if processing forward right-hand-side terms     
|-
| [[FULL_GRID]]
| use to consider both interior and boundary points
|-
| [[GEOPOTENTIAL_HCONV]]
| use if horizontal convolutions along geopotentials
|-
| [[IMPACT_INNER]]
| use to write observations impacts for each inner loop
|-
| [[IMPLICIT_VCONV]]
| use if implicit vertical convolution algorithm       
|-
| [[IMPULSE]]
| use if processing adjoint impulse forcing           
|-
| [[MINRES]]
| use if Minimal Residual Method for 4DVar minimization
|-
| [[MULTIPLE_TLM]]
| use if multiple TLM history files in 4DVAR           
|-
| [[NLM_OUTER]]
| use if nonlinear model as basic state in outer loop 
|-
| [[OBS_IMPACT]]
| use if observation impact to 4DVAR data assimilation
|-
| [[OBS_IMPACT_SPLIT]]
| use to separate impact due to IC, forcing, and OBC
|-
| [[POSTERIOR_EOFS]]
| use if posterior analysis error covariance EOFS
|-
| [[POSTERIOR_ERROR_F]]
| use if final posterior analysis error covariance
|-
| [[POSTERIOR_ERROR_I]]
| use if initial posterior analysis error covariance
|-
| [[RECOMPUTE_4DVAR]]
| use if recomputing 4DVar in analysis algorithms
|-
| [[RPCG]]
| use if Restricted B-preconditioned Lanczos solver
|-
| [[RPM_RELAXATION]]
| use if Picard iterations, Diffusive Relaxation of RPM
|-
| [[SKIP_NLM]]
| use to skip running NLM, reading NLM trajectory
|-
| [[SO_SEMI_WHITE]]
| use to activate SO semi norm white/red noise processes           
|-
| [[STOCH_OPT_WHITE]]
| use to activate SO white/red noise processes
|-
| [[SPLINES_VCONV]]
| use to activate implicit splines vertical convolution
|-
| [[TIME_CONV]]
| use if weak-constraint 4D-Var time convolutions
|-
| [[VCONVOLUTION]]
| use to add vertical correlation to 3D convolution   
|-
| [[VERIFICATION]]
| use if writing out solution at observation locations  
|-
| [[WEAK_NOINTERP]]
| use if not time interpolation in weak 4D-Var forcing
|-
| [[ZETA_ELLIPTIC]]
| use if SSH elliptic Equation in balance operator
|}
 
===Options for [[Bibliography#FennelK_2006a|Fennel ''et. al'' (2006)]] biological model===
 
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
| [[BIO_FENNEL]]
| use if Fennel et al. (2006) nitrogen-based model
|-
| [[BIO_SEDIMENT]]
| use to restore fallen material to the nutrient pool
|-
| [[CARBON]]
| use to add carbon constituents
|-
| [[DENITRIFICATION]]
| use to add denitrification processes
|-
| [[OXYGEN]]
| use to add oxygen dynamics
|-
| [[OCMIP_OXYGEN_SC]]
| use if Schmidt number from Keeling et al. (1998)
|-
| [[TALK_NONCONSERV]]
| use if nonconservative computation of alkalinity                
|}
 
===Options for Hypoxia ecosystem model===
 
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
| [[HYPOXIA_SRM]]
| use if Hypoxia Simple Respiration Model
|}
 
===Options for NPZD biological model===
 
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
| [[NPZD_FRANKS]]
| use if NPZD Biology model, Franks et al. (1986)     
|-
| [[NPZD_IRON]]
| use if NPZD Biology model with iron limitation
|-
| [[NPZD_POWELL]]
| use if NPZD Biology model, Powell et al. (2006)     
|-
| [[IRON_LIMIT]]
| use if Fe limitation on phytoplankton growth
|-
| [[IRON_RELAX]]
| use if nudging Fe over the shelf, h <= FeHmin
|}
 
===Options for bio-optical EcoSim model===
 
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
| [[ECOSIM]]
| use if bio-optical EcoSim model
|-
| [[BIO_OPTICAL]]
| use to compute underwater spectral light properties
|}
 
===Options for Nemuro lower trophic level ecosystem model===
:Need to choose a zooplankton grazing option ([[HOLLING_GRAZING]] or [[IVLEV_EXPLICIT]]). The default implicit IVLEV algorithm does not work yet.
 
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
| [[NEMURO]]
| use if Nemuro ecosystem model
|-
| [[BIO_SEDIMENT]]
| use to restore fallen material to the nutrient pool
|-
| [[HOLLING_GRAZING]]
| use if Holling-type s-shaped curve grazing (implicit)
|-
| [[IVLEV_EXPLICIT]]
| use if Ivlev explicit grazing algorithm
|}
 
===Options for red tide biological model===
 
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
| [[RED_TIDE]]
| if red tide biological model
|}
 
===Options for sediment transport model===
 
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
| [[SEDIMENT]]
| use to activate sediment transport model             
|-
| [[BEDLOAD_MPM]]
| use to activate Meyer-Peter-Mueller bed load         
|-
| [[BEDLOAD_SOULSBY]]
| use to activate Soulsby wave/current bed load       
|-
| [[SED_DENS]]
| use to activate sediment to affect equation of state 
|-
| [[SED_MORPH]]
| use to allow bottom model elevation to evolve       
|-
| [[SUSPLOAD]]
| use to activate suspended load transport             
|}
 
===Options for grid nesting===
 
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
| [[NESTING]]
| to activate grid nesting: composite/refinement
|-
| [[NESTING_DEBUG]]
| to check mass fluxes conservation in refinement
|-
| [[NO_CORRECT_TRACER]]
| to avoid two-way correction of boundary tracer
|-
| [[ONE_WAY]]
| if one-way nesting in refinement grids
|-
| [[TIME_INTERP_FLUX]]
| time interpolate coarse mass flux instead persist
|}
 
===Options for two-way coupling to other models===
:These options are for coupling to other Earth System Models (ESM) via the Earth Modeling Framework (ESMF) or Modeling Coupling Toolkit (MCT) libraries. If coupling with ESMF library, it uses the National Unified Operational Prediction Capability (NUOPC) layer "cap" files to facilitate exchanges with other ESM components.
 
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
| [[ESMF_LIB]]
| use if coupling with the ESMF/NUOPC library
|-
| [[MCT_LIB]]
| use if Coupling with the MCT library
|-
| &nbsp;
| &nbsp;
|-
| [[CICE_COUPLING]]
| use if coupling to CICE sea ice model
|-
| [[COAMPS_COUPLING]]
| use if coupling to COAMPS atmospheric model
|-
| [[DATA_COUPLING]]
| use if coupling to DATA model
|-
| [[EXCLUDE_SPONGE]]
| use if excluding sponge point in export fields
|-
| [[FRC_COUPLING]]
| if forcing from Atmopheric or Data model
|-
| [[REFDIF_COUPLING]]
| use if coupling to REFDIf wave model
|-
| [[REGCM_COUPLING]]
| if coupling to RegCM atmospheric model
|-
| [[SWAN_COUPLING]]
| use if coupling to SWAN wave model
|-
| [[TIME_INTERP]]
| use if importing snapshots for time interpolation
|-
| [[WAM_COUPLING]]
| use if coupling to WAM wave model
|-
| [[WRF_COUPLING]]
| use if coupling to WRF atmospheric model
|-
| [[WRF_TIMEAVG]]
| use if time-averaged fields over coupling interval
|}
 
===Options for nearshore stresses and shallow water configurations===
 
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
| [[WET_DRY]]
| use to activate wetting and drying                   
|-
| [[NEARSHORE_MELLOR05]]
| use to activate radiation stress terms (Mellor 2005)                
|-
| [[NEARSHORE_MELLOR08]]
| use to activate radiation stress terms (Mellor 2008)             
|}
 
===Options for MPI communications===
:The routines '''mp_assemble''' (used in nesting), '''mp_collect''' (used in NetCDF I/O and 4D-Var), and '''mp_reduce''' (used in global reductions) are coded in <span class="forestGreen">distribution.F</span> by either using low-level ('''mpi_isend''' and '''mpi_irecv''') or high-level ('''mpi_allgather''' and '''mpi_allreduce''') MPI calls. The default is to use the low-level MPI  calls. The options for routine '''mp_boundary''' (used to process lateral open boundary conditions is either '''mpi_allgather''' or '''mpi_allreduce''' (default).
 
:The user needs to be aware that the choice of these MPI communication routines it will affect performance issue. In some computers, the low-level are either slower or faster than the high-level MPI library calls. It depends on the computer (cluster) set-up. Some vendors provide native MPI libraries fine-tuned for the computer architecture. The user needs to find which function option performs better by carrying on benchmarks. We provides the following choices:
 
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
| [[ASSEMBLE_ALLGATHER]]
| use mpi_allgather in mp_assemble
|-
| [[ASSEMBLE_ALLREDUCE]]
| use mpi_allreduce in mp_assemble
|-
| &nbsp;
| &nbsp;
|-
| [[BOUNDARY_ALLGATHER]]
| use mpi_allgather in mp_boundary
|-
| &nbsp;
| &nbsp;
|-
| [[COLLECT_ALLGATHER]]
| use mpi_allgather in mp_collect
|-
| [[COLLECT_ALLREDUCE]]
| use mpi_allreduce in mp_collect
|-
| &nbsp;
| &nbsp;
|-
| [[REDUCE_ALLGATHER]]
| use mpi_allgather in mp_reduce
|-
| [[REDUCE_ALLREDUCE]]
| use mpi_allreduce in mp_reduce
|}
 
===Options for NetCDF input and output===
:The CPP option [[INLINE_2DIO]] is used to process 3D data by levels (2D slabs) to reduce memory needs in distributed-memory configurations. This option is convenient for large problems on nodes with limited memory.
 
:The CPP option [[DEUGGING]] is use to avoid writing current date and CPP options to NetCDF file headers. This is used to compare serial and parallel solutions where the UNIX command "diff" is used between NetCDF files. It will only tell us that the binary files are different or not. Finding the parallel bug is completely different story.
 
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
| [[DEBUGGING]]
| use to activate parallel debugging switch
|-
| [[DEFLATE]]
| use to set compression NetCDF-4/HDF5 format files
|-
| [[HDF5]]
| to create NetCDF-4/HDF5 format files
|-
| [[INLINE_2DIO]]
| use if processing 3D IO level by level
|-
| [[NO_LBC_ATT]]
| use to not check NLM_LBC global attribute on restart
|-
| [[NO_READ_GHOST ]]
| use to not include ghost points during read/scatter
|-
| [[NO_WRITE_GRID]]
| use if not writing grid arrays
|-
| [[PARALLEL_IO]]
| if parallel I/O via HDF5 or pnetcdf libraries
|-
| [[PERFECT_RESTART]]
| use to include perfect restart variables
|-
| [[PNETCDF]]
| use if parallel I/O with pnetcdf (classic format)
|-
| [[POSITIVE_ZERO]]
| use to impose positive zero in ouput data
|-
| [[READ_WATER]]
| use if only reading water points data
|-
| [[WRITE_WATER]]
| use if only writing water points data
|-
| [[RST_SINGLE]]
| use if writing single precision restart fields
|-
| [[OUT_DOUBLE]]
| use if writing double precision output fields
|}
 
===Option for debugging===
:
 
===Options for idealized test problems===
:These tests are defined using analytical expressions. Choose only one configuration.
 
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
| [[BASIN]]
| Big Bad Basin Example
|-
| [[BENCHMARK]]
| Benchmark Tests (small, Medium, big grids)
|-
| [[BIO_TOY]]
| One-dimension (vertical) Biology Toy
|-
| [[BL_TEST]]
| Boundary Layers Test
|-
| [[CANYON]]
| Costal Form Stress Canyon Test
|-
| [[CHANNEL_NECK]]
| Channel with a Constriction
|-
| [[COUPLING_TEST]]
| Two-way Atmosphere-Ocean Coupling Test
|-
| [[DOGBONE]]
| Idealize nesting grids (Composite/Refinement) Test
|-
| [[DOUBLE_GYRE]]
| Idealized Double-gyre Example
|-
| [[ESTUARY_TEST]]
| Test Estuary for Sediment
|-
| [[FLT_TEST]]
| Float Tracking Example
|-
| [[GRAV_ADJ]]
| Graviational Adjustment Example
|-
| [[INLET_TEST]]
| Test Inlet Application
|-
| [[KELVIN]]
| Kelvin wave test
|-
| [[LAB_CANYON]]
| Lab Canyon, Polar Coordinates Example
|-
| [[LAKE_JERSEY]]
| Lake Jersey Nesting Test Case
|-
| [[LAKE_SIGNELL]]
| Lake Signell Sediment Test Case
|-
| [[LMD_TEST]]
| Test for LMD and KPP
|-
| [[OVERFLOW]]
| Graviational/Overflow Example
|-
| [[RIVERPLUME1]]
| River Plume Example 1
|-
| [[RIVERPLUME2]]
| River plume Example 2 (Hyatt and Signell)
|-
| [[SEAMOUNT]]
| Seamount Example
|-
| [[SED_TEST1]]
| Suspended Sediment Test in a Channel
|-
| [[SED_TOY]]
| One-dimension (vertical) Sediment Toy
|-
| [[SHOREFACE]]
| Shore Face Planar Beach Test Case
|-
| [[SOLITON]]
| Equatorial Rossby Wave Example
|-
| [[TEST_CHAN]]
| Sediment Test Channel Case
|-
| [[TEST_HEAD]]
| Sediment Test Headland Case
|-
| [[UPWELLING]]
| Upwelling Example (default)
|-
| [[WEDDELL]]
| Idealized Weddell Sea Shelf Application
|-
| [[WINDBASIN]]
| Linear Wind-driven Constant Coriolis Basin
|}
 
===Options for climatological applications===
 
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
| [[DAMEE_4]]
| North Atlantic DAMEE Application, 3/4 degree
|}
 
===Options for selected realistic applications===
 
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;"
!width="275"|
|-
| [[ADRIA02]]
| Adriatic Sea Application
|-
| [[NJ_BIGHT]]
| New Jersey Bight Application
|-
| [[WC13]]
| California Current System, 1/3 degree resolution
|}

Latest revision as of 20:37, 3 August 2020

cppdefs.h

Internal header file containing all the C-preprocessing options that defines a particular application. It is included at the top of every ROMS source file. The application CPP option is specified in the makefile definition ROMS_APPLICATION. The application header file is determined during compilation as the lowercase value of ROMS_APPLICATION with the .h extension and loaded into the ROMS_HEADER definition. Then, during C-preprocessing the application header file is included in cppdefs.h using the following directive:

 #if defined ROMS_HEADER
 # include ROMS_HEADER
 #else
   CPPDEFS - Choose an appropriate ROMS application.
 #endif


Options associated with momentum equations

The default horizontal advection is 3rd-order upstream bias for 3D momentum and 4th-order centered for 2D momentum. The default vertical advection is 4th-order centered for 3D momentum. If this is the case, no flags for momentum advection need to be activated.
The 3rd-order upstream split advection (UV_U3ADV_SPLIT) can be used to correct for the spurious mixing of the advection operator in terrain-following coordinates. If this is the case, the advection operator is split in advective and viscosity components and several internal flags are activated in "globaldefs.h". Notice that horizontal and vertical advection of momentum is 4th-order centered plus biharmonic viscosity to correct for spurious mixing. The total time-dependent horizontal mixing coefficient are computed in hmixing.F.
Warning Warning: Use the splines vertical advection option (UV_SADVECTION) only in idealized, high vertical resolution applications.
UV_ADV use to activate advection terms
UV_COR use to activate Coriolis term
UV_U3ADV_SPLIT use if 3rd-order upstream split momentum advection
UV_C2ADVECTION use to activate 2nd-order centered advection
UV_C4ADVECTION use to activate 4th-order centered advection
UV_SADVECTION use to activate splines vertical advection
UV_VIS2 use to activate harmonic horizontal mixing
UV_VIS4 use to activate biharmonic horizontal mixing
UV_SMAGORINSKY use to turn ON or OFF Smagorinsky-like viscosity
UV_DRAG_GRID use if spatially varying bottom friction parameters
UV_LOGDRAG use to activate logarithmic bottom friction
UV_LDRAG use to activate linear bottom friction
UV_QDRAG use to activate quadratic bottom friction
SPLINES_VVISC use if splines reconstruction of vertical viscosity

Option to limit bottom stress

Do not allow the bottom stress components to change the direction of bottom momentum (change sign of velocity components).
LIMIT_BSTRESS use to limit the magnitude of bottom stress

Options associated with tracers equations

The default horizontal and vertical advection is 4th-order centered. Use the splines vertical advection option is shallow, high vertical resolution applications.
TS_DIF2 use to turn ON or OFF harmonic horizontal mixing
TS_DIF4 use to turn ON or OFF biharmonic horizontal mixing
TS_SMAGORINSKY use to turn ON or OFF Smagorinsky-like diffusion
TS_FIXED use if diagnostic run, no evolution of tracers
T_PASSIVE use if inert passive tracers (dyes, etc)
AGE_MEAN use if computing Mean Age of inert passive tracers
NONLIN_EOS use if using nonlinear equation of state
QCORRECTION use if net heat flux correction
SALINITY use if having salinity
SCORRECTION use if freshwater flux correction
SOLAR_SOURCE use if solar radiation source term
SPLINES_VDIFF use if splines reconstruction of vertical diffusion
SRELAXATION use if salinity relaxation as a freshwater flux
WTYPE_GRID use to turn ON spatially varying Jerlov water type

Option to suppress further surface cooling

Use this option to suppress further surface cooling if the SST is at freezing point or below and the net surface heat flux is cooling:
LIMIT_STFLX_COOLING use to suppress SST cooling below freezing point

Option for MPDATA 3D Advection

Hadvection(itrc,ng)%MPDATA and Vadvection(itrc,ng)%MPDATA switches.
TS_MPDATA_LIMIT use to limit upwind corrector fluxes for stability

Options for pressure gradient algorithm

If no option is selected, the pressure gradient term is computed using standard density Jacobian algorithm. Notice that there are two quartic pressure Jacobian options. They differ on how the WENO reconciliation step is done and in the monotonicity constraining algorithms.
DJ_GRADPS use if splines density Jacobian (Shchepetkin, 2000)
PJ_GRADP use if finite volume Pressure Jacobian (Lin,1997)
PJ_GRADPQ2 use if quartic 2 Pressure Jacobian (Shchepetkin,2000)
PJ_GRADPQ4 use if quartic 4 Pressure Jacobian (Shchepetkin,2000)
WJ_GRADP use if weighted density Jacobian (Song,1998)
   
ATM_PRESS use to impose atmospheric pressure onto sea surface
PRESS_COMPENSATE use to compensate for boundary without ATM pressure

Options for atmospheric boundary layer surface fluxes

It is possible to compute surface wind stress and surface net heat and freshwater fluxes form atmospheric fields using the bulk flux parameterization of Fairall et al. (1996). There are three ways to provide longwave radiation in the atmospheric boundary layer: (i) compute the net longwave radiation internally using the Berliand (1952) equation (LONGWAVE) as function of air temperature, sea surface temperature, relative humidity, and cloud fraction; (ii) provide (read) longwave downwelling radiation only and then add outgoing longwave radiation (LONGWAVE_OUT) as a function of the model sea surface temperature; and (iii) provide net longwave radiation (default).
BULK_FLUXES use if bulk fluxes computation
NL_BULK_FLUXES use if bulk fluxes computed by nonlinear model
COOL_SKIN use if cool skin correction
LONGWAVE use if computing net longwave radiation
LONGWAVE_OUT use if computing ougoing longwave radiation
EMINUSP use if computing E-P
WIND_MINUS_CURRENT use if compute effective wind by removing current

Options for wave roughness formulation in bulk fluxes

COARE_TAYLOR_YELLAND use Taylor and Yelland (2001) relation
COARE_OOST use Oost et al (2002) relation
DEEPWATER_WAVES use Deep water waves approximation

Options for shortwave radiation

The shortwave radiation can be computed using the global albedo equation with a cloud correction. Alternatively, input shortwave radiation data computed from averaged data (with snapshots greater or equal than 24 hours) can be modulated by the local diurnal cycle which is a function longitude, latitude and year day.
ALBEDO use if albedo equation for shortwave radiation
DIURNAL_SRFLUX use to impose shortwave radiation local diurnal cycle

Options for model configuration

SOLVE3D use if solving 3D primitive equations
CURVGRID use if curvilinear coordinates grid
MASKING use if land/sea masking
BODYFORCE use if applying stresses as a body force
PROFILE use if time profiling
AVERAGES use if writing out time-averaged data
AVERAGES_DETIDE use if writing out NLM time-averaged detided fields
AD_AVERAGES use if writing out ADM time-averaged data
RP_AVERAGES use if writing out RPM time-averaged data
TL_AVERAGES use if writing out TLM time-averaged data
DIAGNOSTICS_BIO use if writing out biological diagnostics
DIAGNOSTICS_UV use if writing out momentum diagnostics
DIAGNOSTICS_TS use if writing out tracer diagnostics
ICESHELF use if including ice shelf cavities
SPHERICAL use if analytical spherical grid
STATIONS use if writing out station data
STATIONS_CGRID use if extracting data at native C-grid

Options for Lagrangian drifters

FLOATS use to activate simulated Lagrangian drifters
FLOAT_OYSTER use to activate oyster model behavior in floats
FLOAT_STICKY ues to reflect/stick floats that hit surface/bottom
FLOAT_VWALK use if vertical random walk
VWALK_FORWARD use if forward time stepping vertical random walk

Options for analytical fields configuration

The model may be configured, initialized, and forced with analytical expressions. These analytical expressions are coded in several header files which are included in analytical.F. The analytical header files in the ROMS/Functionals sub-directory correspond to all the distributed idealized test cases. Another set of analytical header files templates are provided in the User/Functionals sub-directory.
ANA_BIOLOGY use if analytical biology initial conditions
ANA_BPFLUX use if analytical bottom passive tracers fluxes
ANA_BSFLUX use if analytical bottom salinity flux
ANA_BTFLUX use if analytical bottom temperature flux
ANA_CLOUD use if analytical cloud fraction
ANA_DIAG use if customized diagnostics
ANA_DQDSST use if analytical surface heat flux sensitivity to SST
ANA_DRAG use if analytical spatially varying drag parameters
ANA_FSOBC use if analytical free-surface boundary conditions
ANA_GRID use if analytical model grid set-up
ANA_HUMIDITY use if analytical surface air humidity
ANA_INITIAL use if analytical initial conditions
ANA_M2CLIMA use if analytical 2D momentum climatology
ANA_M2OBC use if analytical 2D momentum boundary conditions
ANA_M3CLIMA use if analytical 3D momentum climatology
ANA_M3OBC use if analytical 3D momentum boundary conditions
ANA_MASK use if analytical Land/Sea masking
ANA_NUDGCOEF use if analytical climatology nudging coefficients
ANA_PAIR use if analytical surface air pressure
ANA_PASSIVE use if analytical initial conditions for inert tracers
ANA_PERTURB use if analytical perturbation of initial conditions
ANA_PSOURCE use if analytical point Sources/Sinks
ANA_RAIN use if analytical rain fall rate
ANA_SEDIMENT use if analytical sediment initial fields
ANA_SMFLUX use if analytical surface momentum stress
ANA_SPFLUX use if analytical surface passive tracers fluxes
ANA_SPINNING use if analytical time-varying rotation force
ANA_SPONGE use if analytical enhanced viscosity/diffusion sponge
ANA_SRFLUX use if analytical surface shortwave radiation flux
ANA_SSFLUX use if analytical surface salinity flux
ANA_SSH use if analytical sea surface height
ANA_SSS use if analytical sea surface salinity
ANA_SST use if analytical SST and dQdSST
ANA_STFLUX use if analytical surface temperature flux
ANA_TAIR use if analytical surface air temperature
ANA_TCLIMA use if analytical tracers climatology
ANA_TOBC use if analytical tracers boundary conditions
ANA_VMIX use if analytical vertical mixing coefficients
ANA_WINDS use if analytical surface winds
ANA_WWAVE use if analytical wind induced waves

Options for horizontal mixing of momentum

VISC_GRID use to scale viscosity coefficient by grid size
MIX_S_UV use if mixing along constant S-surfaces
MIX_GEO_UV use if mixing along geopotential (constant Z) surfaces

Options for horizontal mixing of tracers

DIFF_GRID use to scale diffusion coefficients by grid size
MIX_S_TS use if mixing along constant S-surfaces
MIX_GEO_TS use if mixing along geopotential (constant depth) surfaces
MIX_ISO_TS use if mixing along epineutral (constant density) surfaces
TS_MIX_CLIMA use if diffusion of tracer perturbation (t-tclm)
TS_MIX_MAX_SLOPE use if maximum slope in epineutral diffusion
TS_MIX_MIN_STRAT use if minimum stratification in epineutral diffusion
TS_MIX_STABILITY use if weighting diffusion between two time levels

Options for vertical mixing of momentum and tracers

There are several vertical mixing parameterizations in ROMS. Activate only one closure.
BVF_MIXING use if Brunt-Vaisala frequency mixing
GLS_MIXING use if Generic Length-Scale mixing
MY25_MIXING use if Mellor/Yamada Level-2.5 closure
LMD_MIXING use if Large et al. (1994) K-profile vertical parameterization
   
LIMIT_VDIFF use to impose an upper limit on vertical diffusion
LIMIT_VVISC use to impose an upper limit on vertical viscosity

Options for the Generic Length-Scale closure

The Generic Length Scale (GLS) uses two prognostic equations for turbulent kinetic energy (TKE) and length scale (ψ) variables. The GLS may be configured as k-kl, k-ε k-ω by tuning several parameters in roms.in, see Warner et al., 2005 for more details. The default horizontal advection is third-order upstream bias. The default vertical advection is 4th-order centered advection.
CANUTO_A use if Canuto A-stability function formulation
CANUTO_B use if Canuto B-stability function formulation
CHARNOK use if Charnok surface roughness from wind stress
CRAIG_BANNER use if Craig and Banner wave breaking surface flux
KANTHA_CLAYSON use if Kantha and Clayson stability function
K_C2ADVECTION use if 2nd-order centered advection
K_C4ADVECTION use if 4th-order centered advection
N2S2_HORAVG use if horizontal smoothing of buoyancy/shear
RI_SPLINES use if splines reconstruction for vertical sheer
ZOS_HSIG use if surface roughness from wave amplitude
TKE_WAVEDISS use if wave breaking surface flux from wave amplitude

Options for the Mellor/Yamada level 2.5 closure

This is the original closure proposed by Mellor and Yamda (1982) and latter modified by Galperin et al. (1994). The default horizontal advection is third-order upstream bias. The default vertical advection is 4th-order centered advection.
N2S2_HORAVG use if horizontal smoothing of buoyancy/shear
KANTHA_CLAYSON use if Kantha and Clayson stability function
K_C2ADVECTION use if 2nd-order centered advection
K_C4ADVECTION use if 4th-order centered advection
RI_SPLINES use if splines reconstruction for vertical sheer

Options for K-profile vertical mixing parameterization

LMD_BKPP use if bottom boundary layer KPP mixing
LMD_CONVEC use to add convective mixing due to shear instability
LMD_DDMIX use to add double-diffusive mixing
LMD_NONLOCAL use if nonlocal transport
LMD_RIMIX use to add diffusivity due to shear instability
LMD_SHAPIRO use if Shapiro filtering boundary layer depth
LMD_SKPP use if surface boundary layer KPP mixing
RI_SPLINES use if splines reconstruction for vertical sheer

Options for Richardson number smoothing

Mostly all vertical mixing parameterization are based on the Richardson Number (buoyancy/shear ratio). This computation is usually noisy and requires some smoothing. Use the options below if RI_SPLINES is not activated.
RI_HORAVG use if horizontal Richardson number smoothing
RI_VERAVG use if vertical Richardson number smoothing

Options for Meinte Blass bottom boundary layer closure

The Options MB_Z0BL and MB_Z0RIP should be activated concurrently.
MB_BBL use if Meinte Blaas BBL closure
MB_CALC_ZNOT use if computing bottom roughness internally
MB_CALC_UB use if computing bottom orbital velocity internally
MB_Z0BIO use if biogenic bedform roughness for ripples
MB_Z0BL use if bedload roughness for ripples
MB_Z0RIP use if bedform roughness for ripples

Options for Styles and Glenn (2000) bottom boundary layer closure

SG_BBL use if Styles and Glenn (2000) BBL closure
SG_CALC_ZNOT use if computing bottom roughness internally
SG_CALC_UB use if computing bottom orbital velocity internally
SG_LOGINT use if logarithmic interpolation of (Ur,Vr)

Options for the Sherwood/Signell/Warner bottom boundary layer closure

SSW_BBL use if Sherwood et al. BBL closure
SSW_CALC_ZNOT use if computing bottom roughness internally
SSW_LOGINT use if logarithmic interpolation of (Ur,Vr)
SSW_CALC_UB use if computing bottom orbital velocity internally
SSW_FORM_DRAG_COR use to activate form drag coefficient
SSW_Z0BIO use if biogenic bedform roughness from ripples
SSW_Z0BL use if bedload roughness for ripples
SSW_Z0RIP use if bedform roughness from ripples

Options for lateral boundary conditions

IMPLICIT_NUDGING use if implicit nudging term in momentum radiation
RADIATION_2D use if tangential phase speed in radiation conditions

Options for tidal forcing at open boundaries

The tidal data is processed in terms of tidal components, classified by period. The tidal forcing is computed for the full horizontal grid. If requested, the tidal forcing is added to the processed open boundary data. Both tidal elevation and tidal currents are required to force the model properly. However, if only the tidal elevation is available, the tidal currents at the open boundary can be estimated using reduced physics equations. Only the pressure gradient, Coriolis, and surface and bottom stresses terms are considered at the open boundary. See u2dbc_im.F or v2dbc_im.F for details. Notice that there is an additional option (FSOBC_REDUCED) for the computation of the pressure gradient term in both Flather or reduced physics conditions (*_M2FLATHER, *_M2REDUCED).
SSH_TIDES use if imposing tidal elevation
UV_TIDES use if imposing tidal currents
RAMP_TIDES use if ramping (over one day) tidal forcing
FSOBC_REDUCED use if SSH data and reduced physics conditions
ADD_FSOBC use to add tidal elevation to processed open boundary conditions data
ADD_M2OBC use to add tidal currents to processed open boundary conditions data

Options for ROMS/TOMS driver

Choose only one option.
ADM_DRIVER use if generic adjoint model driver
AD_SENSITIVITY use if adjoint sensitivity driver
AFT_EIGENMODES use if adjoint finite time eingenmodes driver
ARRAY_MODES use if 4D-Var representer matrix array modes
CLIPPING use if R4D-Var representer matrix clipping analysis
CORRELATION use if background-error correlation model driver
ENSEMBLE use if ensemble prediction driver
EVOLVED_LCZ use if 4D-Var evolved Hessian singular vectors
FORCING_SV use if forcing singular vectors driver
FT_EIGENMODES use if finite time eingenmodes driver: normal modes
HESSIAN_FSV use if Hessian forcing singular vectors
HESSIAN_SO use if Hessian stochastic optimals
HESSIAN_SV use if Hessian singular vectors
INNER_PRODUCT use if tangent linear and adjoint inner product check
I4DVAR use if incremental 4DVar data assimilation
I4DVAR_ANA_SENSITIVITY use if I4D-Var observations sensitivity
LCZ_FINAL use if computing 4D-Var Hessian singular vectors
OPT_OBSERVATIONS use if optimal observations driver
OPT_PERTURBATION use if optimal perturbations driver, singular vectors
PICARD_TEST use if representer tangent linear model test
PSEUDOSPECTRA use if pseudospectra of tangent linear resolvant
RBL4DVAR use if weak constraint RBL4D-Var data assimilation
RBL4DVAR_ANA_SENSITIVITY use if RBL4D-Var analysis observation sensitivity
RBL4DVAR_FCT_SENSITIVITY use if RBL4D-Var forecast observation sensitivity
RPM_DRIVER use if generic representers model driver
R_SYMMETRY use if representer matrix symmetry test
R4DVAR use if Strong/Weak constraint dual formulation 4DVar data assimilation (Formerly W4DVAR)
R4DVAR_ANA_SENSITIVITY use if R4D-Var analysis observation sensitivity
SANITY_CHECK use if tangent linear and adjoint codes sanity check
SO_SEMI use if stochastic optimals driver, semi-norm
SO_TRACE use if stochastic optimals, randomized trace
SPLIT_I4DVAR use if split I4D-Var data assimilation
SPLIT_RBL4DVAR use if split RBL4D-Var data assimilation
SPLIT_R4DVAR use if split R4D-Var data assimilation
SPLIT_SP4DVAR use if split SP4D-Var data assimilation
SP4DVAR use if Saddle-Point 4D-Var data assimilation
STOCHASTIC_OPT use if stochastic optimals
TLM_CHECK use if tangent linear model linearization check
TLM_DRIVER use if generic tangent linear model driver

Options associated with tangent linear, representer and adjoint models

AD_IMPULSE use to force adjoint model with intermittent impulses
ADJUST_BOUNDARY use if including boundary conditions in 4DVar state
ADJUST_STFLUX use if including surface tracer flux in 4DVar state
ADJUST_WSTRESS use if including wind-stress in 4DVar state
ARRAY_MODES_SPLIT use to separate analysis due to IC, forcing, and OBC
BALANCE_OPERATOR use if error covariance multivariate balance term
BEOFS_ONLY use if computing EOFs of background error covariance
BGQC use if background quality control of observations
BNORM use if Background norm Hessian singular vectors
CELERITY_WRITE use if writing radiation celerity in forward file
CLIPPING_SPLIT use to separate analysis due to IC, forcing, and OBC
DATALESS_LOOPS use if testing convergence of Picard iterations
ENKF_RESTART use if writting restart fields for EnKF
FORWARD_MIXING use if processing forward vertical mixing coefficient
FORWARD_WRITE use if writing out forward solution, basic state
FORWARD_READ use if reading in forward solution, basic state
FORWARD_RHS use if processing forward right-hand-side terms
FULL_GRID use to consider both interior and boundary points
GEOPOTENTIAL_HCONV use if horizontal convolutions along geopotentials
IMPACT_INNER use to write observations impacts for each inner loop
IMPLICIT_VCONV use if implicit vertical convolution algorithm
IMPULSE use if processing adjoint impulse forcing
MINRES use if Minimal Residual Method for 4DVar minimization
MULTIPLE_TLM use if multiple TLM history files in 4DVAR
NLM_OUTER use if nonlinear model as basic state in outer loop
OBS_IMPACT use if observation impact to 4DVAR data assimilation
OBS_IMPACT_SPLIT use to separate impact due to IC, forcing, and OBC
POSTERIOR_EOFS use if posterior analysis error covariance EOFS
POSTERIOR_ERROR_F use if final posterior analysis error covariance
POSTERIOR_ERROR_I use if initial posterior analysis error covariance
RECOMPUTE_4DVAR use if recomputing 4DVar in analysis algorithms
RPCG use if Restricted B-preconditioned Lanczos solver
RPM_RELAXATION use if Picard iterations, Diffusive Relaxation of RPM
SKIP_NLM use to skip running NLM, reading NLM trajectory
SO_SEMI_WHITE use to activate SO semi norm white/red noise processes
STOCH_OPT_WHITE use to activate SO white/red noise processes
SPLINES_VCONV use to activate implicit splines vertical convolution
TIME_CONV use if weak-constraint 4D-Var time convolutions
VCONVOLUTION use to add vertical correlation to 3D convolution
VERIFICATION use if writing out solution at observation locations
WEAK_NOINTERP use if not time interpolation in weak 4D-Var forcing
ZETA_ELLIPTIC use if SSH elliptic Equation in balance operator

Options for Fennel et. al (2006) biological model

BIO_FENNEL use if Fennel et al. (2006) nitrogen-based model
BIO_SEDIMENT use to restore fallen material to the nutrient pool
CARBON use to add carbon constituents
DENITRIFICATION use to add denitrification processes
OXYGEN use to add oxygen dynamics
OCMIP_OXYGEN_SC use if Schmidt number from Keeling et al. (1998)
TALK_NONCONSERV use if nonconservative computation of alkalinity

Options for Hypoxia ecosystem model

HYPOXIA_SRM use if Hypoxia Simple Respiration Model

Options for NPZD biological model

NPZD_FRANKS use if NPZD Biology model, Franks et al. (1986)
NPZD_IRON use if NPZD Biology model with iron limitation
NPZD_POWELL use if NPZD Biology model, Powell et al. (2006)
IRON_LIMIT use if Fe limitation on phytoplankton growth
IRON_RELAX use if nudging Fe over the shelf, h <= FeHmin

Options for bio-optical EcoSim model

ECOSIM use if bio-optical EcoSim model
BIO_OPTICAL use to compute underwater spectral light properties

Options for Nemuro lower trophic level ecosystem model

Need to choose a zooplankton grazing option (HOLLING_GRAZING or IVLEV_EXPLICIT). The default implicit IVLEV algorithm does not work yet.
NEMURO use if Nemuro ecosystem model
BIO_SEDIMENT use to restore fallen material to the nutrient pool
HOLLING_GRAZING use if Holling-type s-shaped curve grazing (implicit)
IVLEV_EXPLICIT use if Ivlev explicit grazing algorithm

Options for red tide biological model

RED_TIDE if red tide biological model

Options for sediment transport model

SEDIMENT use to activate sediment transport model
BEDLOAD_MPM use to activate Meyer-Peter-Mueller bed load
BEDLOAD_SOULSBY use to activate Soulsby wave/current bed load
SED_DENS use to activate sediment to affect equation of state
SED_MORPH use to allow bottom model elevation to evolve
SUSPLOAD use to activate suspended load transport

Options for grid nesting

NESTING to activate grid nesting: composite/refinement
NESTING_DEBUG to check mass fluxes conservation in refinement
NO_CORRECT_TRACER to avoid two-way correction of boundary tracer
ONE_WAY if one-way nesting in refinement grids
TIME_INTERP_FLUX time interpolate coarse mass flux instead persist

Options for two-way coupling to other models

These options are for coupling to other Earth System Models (ESM) via the Earth Modeling Framework (ESMF) or Modeling Coupling Toolkit (MCT) libraries. If coupling with ESMF library, it uses the National Unified Operational Prediction Capability (NUOPC) layer "cap" files to facilitate exchanges with other ESM components.
ESMF_LIB use if coupling with the ESMF/NUOPC library
MCT_LIB use if Coupling with the MCT library
   
CICE_COUPLING use if coupling to CICE sea ice model
COAMPS_COUPLING use if coupling to COAMPS atmospheric model
DATA_COUPLING use if coupling to DATA model
EXCLUDE_SPONGE use if excluding sponge point in export fields
FRC_COUPLING if forcing from Atmopheric or Data model
REFDIF_COUPLING use if coupling to REFDIf wave model
REGCM_COUPLING if coupling to RegCM atmospheric model
SWAN_COUPLING use if coupling to SWAN wave model
TIME_INTERP use if importing snapshots for time interpolation
WAM_COUPLING use if coupling to WAM wave model
WRF_COUPLING use if coupling to WRF atmospheric model
WRF_TIMEAVG use if time-averaged fields over coupling interval

Options for nearshore stresses and shallow water configurations

WET_DRY use to activate wetting and drying
NEARSHORE_MELLOR05 use to activate radiation stress terms (Mellor 2005)
NEARSHORE_MELLOR08 use to activate radiation stress terms (Mellor 2008)

Options for MPI communications

The routines mp_assemble (used in nesting), mp_collect (used in NetCDF I/O and 4D-Var), and mp_reduce (used in global reductions) are coded in distribution.F by either using low-level (mpi_isend and mpi_irecv) or high-level (mpi_allgather and mpi_allreduce) MPI calls. The default is to use the low-level MPI calls. The options for routine mp_boundary (used to process lateral open boundary conditions is either mpi_allgather or mpi_allreduce (default).
The user needs to be aware that the choice of these MPI communication routines it will affect performance issue. In some computers, the low-level are either slower or faster than the high-level MPI library calls. It depends on the computer (cluster) set-up. Some vendors provide native MPI libraries fine-tuned for the computer architecture. The user needs to find which function option performs better by carrying on benchmarks. We provides the following choices:
ASSEMBLE_ALLGATHER use mpi_allgather in mp_assemble
ASSEMBLE_ALLREDUCE use mpi_allreduce in mp_assemble
   
BOUNDARY_ALLGATHER use mpi_allgather in mp_boundary
   
COLLECT_ALLGATHER use mpi_allgather in mp_collect
COLLECT_ALLREDUCE use mpi_allreduce in mp_collect
   
REDUCE_ALLGATHER use mpi_allgather in mp_reduce
REDUCE_ALLREDUCE use mpi_allreduce in mp_reduce

Options for NetCDF input and output

The CPP option INLINE_2DIO is used to process 3D data by levels (2D slabs) to reduce memory needs in distributed-memory configurations. This option is convenient for large problems on nodes with limited memory.
The CPP option DEUGGING is use to avoid writing current date and CPP options to NetCDF file headers. This is used to compare serial and parallel solutions where the UNIX command "diff" is used between NetCDF files. It will only tell us that the binary files are different or not. Finding the parallel bug is completely different story.
DEBUGGING use to activate parallel debugging switch
DEFLATE use to set compression NetCDF-4/HDF5 format files
HDF5 to create NetCDF-4/HDF5 format files
INLINE_2DIO use if processing 3D IO level by level
NO_LBC_ATT use to not check NLM_LBC global attribute on restart
NO_READ_GHOST use to not include ghost points during read/scatter
NO_WRITE_GRID use if not writing grid arrays
PARALLEL_IO if parallel I/O via HDF5 or pnetcdf libraries
PERFECT_RESTART use to include perfect restart variables
PNETCDF use if parallel I/O with pnetcdf (classic format)
POSITIVE_ZERO use to impose positive zero in ouput data
READ_WATER use if only reading water points data
WRITE_WATER use if only writing water points data
RST_SINGLE use if writing single precision restart fields
OUT_DOUBLE use if writing double precision output fields

Option for debugging

Options for idealized test problems

These tests are defined using analytical expressions. Choose only one configuration.
BASIN Big Bad Basin Example
BENCHMARK Benchmark Tests (small, Medium, big grids)
BIO_TOY One-dimension (vertical) Biology Toy
BL_TEST Boundary Layers Test
CANYON Costal Form Stress Canyon Test
CHANNEL_NECK Channel with a Constriction
COUPLING_TEST Two-way Atmosphere-Ocean Coupling Test
DOGBONE Idealize nesting grids (Composite/Refinement) Test
DOUBLE_GYRE Idealized Double-gyre Example
ESTUARY_TEST Test Estuary for Sediment
FLT_TEST Float Tracking Example
GRAV_ADJ Graviational Adjustment Example
INLET_TEST Test Inlet Application
KELVIN Kelvin wave test
LAB_CANYON Lab Canyon, Polar Coordinates Example
LAKE_JERSEY Lake Jersey Nesting Test Case
LAKE_SIGNELL Lake Signell Sediment Test Case
LMD_TEST Test for LMD and KPP
OVERFLOW Graviational/Overflow Example
RIVERPLUME1 River Plume Example 1
RIVERPLUME2 River plume Example 2 (Hyatt and Signell)
SEAMOUNT Seamount Example
SED_TEST1 Suspended Sediment Test in a Channel
SED_TOY One-dimension (vertical) Sediment Toy
SHOREFACE Shore Face Planar Beach Test Case
SOLITON Equatorial Rossby Wave Example
TEST_CHAN Sediment Test Channel Case
TEST_HEAD Sediment Test Headland Case
UPWELLING Upwelling Example (default)
WEDDELL Idealized Weddell Sea Shelf Application
WINDBASIN Linear Wind-driven Constant Coriolis Basin

Options for climatological applications

DAMEE_4 North Atlantic DAMEE Application, 3/4 degree

Options for selected realistic applications

ADRIA02 Adriatic Sea Application
NJ_BIGHT New Jersey Bight Application
WC13 California Current System, 1/3 degree resolution