cppdefs.h: Difference between revisions
From WikiROMS
Jump to navigationJump to search
No edit summary (change visibility) |
No edit summary (change visibility) |
||
(12 intermediate revisions by 5 users not shown) | |||
Line 3: | Line 3: | ||
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: | 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: | ||
<span class="red">#if defined ROMS_HEADER | |||
# include ROMS_HEADER | # include ROMS_HEADER | ||
#else | #else | ||
Line 10: | Line 9: | ||
#endif | #endif | ||
</span> | </span> | ||
===Options associated with momentum equations=== | ===Options associated with momentum equations=== | ||
:The default horizontal and vertical advection is 4th-order centered. Use the splines vertical advection option | :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;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[UV_ADV]] | | [[UV_ADV]] | ||
Line 22: | Line 26: | ||
| [[UV_COR]] | | [[UV_COR]] | ||
| use to activate Coriolis term | | use to activate Coriolis term | ||
|- | |||
| [[UV_U3ADV_SPLIT]] | |||
| use if 3rd-order upstream split momentum advection | |||
|- | |- | ||
| [[UV_C2ADVECTION]] | | [[UV_C2ADVECTION]] | ||
Line 37: | Line 44: | ||
| [[UV_VIS4]] | | [[UV_VIS4]] | ||
| use to activate 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]] | ||
Line 47: | Line 60: | ||
| use to activate quadratic bottom friction | | use to activate quadratic bottom friction | ||
|- | |- | ||
| [[ | | [[SPLINES_VVISC]] | ||
| use to | | 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=== | ===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. | :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;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[TS_DIF2]] | | [[TS_DIF2]] | ||
Line 89: | Line 87: | ||
| [[TS_DIF4]] | | [[TS_DIF4]] | ||
| use to turn ON or OFF biharmonic horizontal mixing | | use to turn ON or OFF biharmonic horizontal mixing | ||
|- | |||
| [[TS_SMAGORINSKY]] | |||
| use to turn ON or OFF Smagorinsky-like diffusion | |||
|- | |- | ||
| [[TS_FIXED]] | | [[TS_FIXED]] | ||
Line 96: | Line 97: | ||
| use if inert passive tracers (dyes, etc) | | use if inert passive tracers (dyes, etc) | ||
|- | |- | ||
| [[ | | [[AGE_MEAN]] | ||
| use if | | use if computing Mean Age of inert passive tracers | ||
|- | |- | ||
| [[NONLIN_EOS]] | | [[NONLIN_EOS]] | ||
Line 104: | Line 105: | ||
| [[QCORRECTION]] | | [[QCORRECTION]] | ||
| use if net heat flux correction | | use if net heat flux correction | ||
|- | |||
| [[SALINITY]] | |||
| use if having salinity | |||
|- | |- | ||
| [[SCORRECTION]] | | [[SCORRECTION]] | ||
Line 110: | Line 114: | ||
| [[SOLAR_SOURCE]] | | [[SOLAR_SOURCE]] | ||
| use if solar radiation source term | | use if solar radiation source term | ||
|- | |||
| [[SPLINES_VDIFF]] | |||
| use if splines reconstruction of vertical diffusion | |||
|- | |- | ||
| [[SRELAXATION]] | | [[SRELAXATION]] | ||
| use if salinity relaxation as a freshwater flux | | use if salinity relaxation as a freshwater flux | ||
|- | |- | ||
| [[ | | [[WTYPE_GRID]] | ||
| use to turn ON or | | 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 | |||
|} | |} | ||
Line 122: | Line 149: | ||
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[DJ_GRADPS]] | | [[DJ_GRADPS]] | ||
Line 138: | Line 165: | ||
| [[WJ_GRADP]] | | [[WJ_GRADP]] | ||
| use if weighted density Jacobian (Song,1998) | | use if weighted density Jacobian (Song,1998) | ||
|- | |||
| | |||
| | |||
|- | |- | ||
| [[ATM_PRESS]] | | [[ATM_PRESS]] | ||
| use to impose atmospheric pressure onto sea surface | | use to impose atmospheric pressure onto sea surface | ||
|- | |- | ||
| [[ | | [[PRESS_COMPENSATE]] | ||
| use | | use to compensate for boundary without ATM pressure | ||
|} | |} | ||
===Options for atmospheric boundary layer=== | ===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). | :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;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[BULK_FLUXES]] | | [[BULK_FLUXES]] | ||
| use if bulk fluxes computation | | use if bulk fluxes computation | ||
|- | |||
| [[NL_BULK_FLUXES]] | |||
| use if bulk fluxes computed by nonlinear model | |||
|- | |- | ||
| [[COOL_SKIN]] | | [[COOL_SKIN]] | ||
Line 174: | Line 198: | ||
|- | |- | ||
| [[EMINUSP]] | | [[EMINUSP]] | ||
| use if computing E-P | | use if computing E-P | ||
|- | |||
| [[WIND_MINUS_CURRENT]] | |||
| use if compute effective wind by removing current | |||
|} | |} | ||
Line 180: | Line 207: | ||
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[COARE_TAYLOR_YELLAND]] | | [[COARE_TAYLOR_YELLAND]] | ||
Line 196: | Line 223: | ||
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[ALBEDO]] | | [[ALBEDO]] | ||
Line 208: | Line 235: | ||
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[SOLVE3D]] | | [[SOLVE3D]] | ||
Line 228: | Line 255: | ||
| use if writing out time-averaged data | | use if writing out time-averaged data | ||
|- | |- | ||
| [[ | | [[AVERAGES_DETIDE]] | ||
| use if writing out time-averaged | | use if writing out NLM time-averaged detided fields | ||
|- | |- | ||
| [[ | | [[AD_AVERAGES]] | ||
| use if writing out time-averaged | | use if writing out ADM time-averaged data | ||
|- | |- | ||
| [[ | | [[RP_AVERAGES]] | ||
| use if writing out time-averaged | | use if writing out RPM time-averaged data | ||
|- | |- | ||
| [[ | | [[TL_AVERAGES]] | ||
| use if writing out time-averaged | | use if writing out TLM time-averaged data | ||
|- | |- | ||
| [[DIAGNOSTICS_BIO]] | | [[DIAGNOSTICS_BIO]] | ||
Line 263: | Line 281: | ||
| [[SPHERICAL]] | | [[SPHERICAL]] | ||
| use if analytical spherical grid | | use if analytical spherical grid | ||
|- | |- | ||
| [[STATIONS]] | | [[STATIONS]] | ||
Line 277: | Line 292: | ||
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[FLOATS]] | | [[FLOATS]] | ||
| use to activate simulated Lagrangian drifters | | 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]] | | [[FLOAT_VWALK]] | ||
| use if vertical random walk | | use if vertical random walk | ||
|- | |||
| [[VWALK_FORWARD]] | |||
| use if forward time stepping vertical random walk | |||
|} | |} | ||
Line 290: | Line 314: | ||
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[ANA_BIOLOGY]] | | [[ANA_BIOLOGY]] | ||
Line 309: | Line 333: | ||
| [[ANA_DIAG]] | | [[ANA_DIAG]] | ||
| use if customized diagnostics | | 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]] | | [[ANA_FSOBC]] | ||
Line 336: | Line 366: | ||
| [[ANA_MASK]] | | [[ANA_MASK]] | ||
| use if analytical Land/Sea masking | | use if analytical Land/Sea masking | ||
|- | |||
| [[ANA_NUDGCOEF]] | |||
| use if analytical climatology nudging coefficients | |||
|- | |- | ||
| [[ANA_PAIR]] | | [[ANA_PAIR]] | ||
Line 362: | Line 395: | ||
|- | |- | ||
| [[ANA_SPINNING]] | | [[ANA_SPINNING]] | ||
| use if analytical time-varying rotation force | | use if analytical time-varying rotation force | ||
|- | |||
| [[ANA_SPONGE]] | |||
| use if analytical enhanced viscosity/diffusion sponge | |||
|- | |- | ||
| [[ANA_SRFLUX]] | | [[ANA_SRFLUX]] | ||
Line 404: | Line 440: | ||
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[VISC_GRID]] | | [[VISC_GRID]] | ||
Line 419: | Line 455: | ||
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[DIFF_GRID]] | | [[DIFF_GRID]] | ||
Line 431: | Line 467: | ||
|- | |- | ||
| [[MIX_ISO_TS]] | | [[MIX_ISO_TS]] | ||
| use if mixing along epineutral (constant density) surfaces | | 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 | |||
|} | |} | ||
Line 438: | Line 486: | ||
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[BVF_MIXING]] | | [[BVF_MIXING]] | ||
| use if Brunt-Vaisala frequency mixing | | use if Brunt-Vaisala frequency mixing | ||
|- | |- | ||
| [[GLS_MIXING]] | | [[GLS_MIXING]] | ||
| use if Generic Length-Scale mixing | | use if Generic Length-Scale mixing | ||
|- | |- | ||
| [[MY25_MIXING]] | | [[MY25_MIXING]] | ||
| use if Mellor/Yamada Level-2.5 closure | | use if Mellor/Yamada Level-2.5 closure | ||
|- | |- | ||
| [[LMD_MIXING]] | | [[LMD_MIXING]] | ||
| use if [[Bibliography#LargeWG_1994a | Large et al. (1994)]] K-profile vertical parameterization | | use if [[Bibliography#LargeWG_1994a | 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=== | ===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 [[ | :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 [[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. | ||
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[CANUTO_A]] | | [[CANUTO_A]] | ||
Line 482: | Line 539: | ||
| [[N2S2_HORAVG]] | | [[N2S2_HORAVG]] | ||
| use if horizontal smoothing of buoyancy/shear | | use if horizontal smoothing of buoyancy/shear | ||
|- | |||
| [[RI_SPLINES]] | |||
| use if splines reconstruction for vertical sheer | |||
|- | |- | ||
| [[ZOS_HSIG]] | | [[ZOS_HSIG]] | ||
Line 494: | Line 554: | ||
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[N2S2_HORAVG]] | | [[N2S2_HORAVG]] | ||
Line 507: | Line 567: | ||
| [[K_C4ADVECTION]] | | [[K_C4ADVECTION]] | ||
| use if 4th-order centered advection | | use if 4th-order centered advection | ||
|- | |||
| [[RI_SPLINES]] | |||
| use if splines reconstruction for vertical sheer | |||
|} | |} | ||
Line 512: | Line 575: | ||
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[LMD_BKPP]] | | [[LMD_BKPP]] | ||
Line 534: | Line 597: | ||
| [[LMD_SKPP]] | | [[LMD_SKPP]] | ||
| use if surface boundary layer KPP mixing | | use if surface boundary layer KPP mixing | ||
|- | |||
| [[RI_SPLINES]] | |||
| use if splines reconstruction for vertical sheer | |||
|} | |} | ||
===Options for Richardson number smoothing=== | ===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 [[ | :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. | ||
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[RI_HORAVG]] | | [[RI_HORAVG]] | ||
Line 546: | Line 612: | ||
|- | |- | ||
| [[RI_VERAVG]] | | [[RI_VERAVG]] | ||
| use if vertical | | use if vertical Richardson number smoothing | ||
|} | |} | ||
Line 553: | Line 619: | ||
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[MB_BBL]] | | [[MB_BBL]] | ||
Line 577: | Line 643: | ||
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[SG_BBL]] | | [[SG_BBL]] | ||
Line 595: | Line 661: | ||
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[SSW_BBL]] | | [[SSW_BBL]] | ||
Line 622: | Line 688: | ||
|} | |} | ||
===Options | ===Options for lateral boundary conditions=== | ||
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[ | | [[IMPLICIT_NUDGING]] | ||
| use if | | use if implicit nudging term in momentum radiation | ||
|- | |- | ||
| [[RADIATION_2D]] | | [[RADIATION_2D]] | ||
| use if tangential phase speed in radiation conditions | | use if tangential phase speed in radiation conditions | ||
|} | |} | ||
===Options for tidal forcing at open boundaries=== | ===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 | :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). | ||
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;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[SSH_TIDES]] | | [[SSH_TIDES]] | ||
Line 986: | Line 723: | ||
| [[ADD_M2OBC]] | | [[ADD_M2OBC]] | ||
| use to add tidal currents to processed open boundary conditions data | | use to add tidal currents to processed open boundary conditions data | ||
|} | |} | ||
Line 1,069: | Line 729: | ||
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[ADM_DRIVER]] | | [[ADM_DRIVER]] | ||
| use if generic adjoint model driver | | use if generic adjoint model driver | ||
|- | |- | ||
| [[AD_SENSITIVITY]] | | [[AD_SENSITIVITY]] | ||
| use if adjoint sensitivity driver | | use if adjoint sensitivity driver | ||
|- | |- | ||
| [[AFT_EIGENMODES]] | | [[AFT_EIGENMODES]] | ||
| use if adjoint finite time eingenmodes driver | | use if adjoint finite time eingenmodes driver | ||
|- | |- | ||
| [[ | | [[ARRAY_MODES]] | ||
| use if | | use if 4D-Var representer matrix array modes | ||
|- | |||
| [[CLIPPING]] | |||
| use if R4D-Var representer matrix clipping analysis | |||
|- | |- | ||
| [[CORRELATION]] | | [[CORRELATION]] | ||
| use if background-error correlation model driver | | use if background-error correlation model driver | ||
|- | |- | ||
| [[ENSEMBLE]] | | [[ENSEMBLE]] | ||
| use if ensemble prediction driver | | use if ensemble prediction driver | ||
|- | |||
| [[EVOLVED_LCZ]] | |||
| use if 4D-Var evolved Hessian singular vectors | |||
|- | |- | ||
| [[FORCING_SV]] | | [[FORCING_SV]] | ||
| use if forcing singular vectors driver | | use if forcing singular vectors driver | ||
|- | |- | ||
| [[FT_EIGENMODES]] | | [[FT_EIGENMODES]] | ||
| use if finite time eingenmodes driver: normal modes | | 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 | | use if Hessian singular vectors | ||
|- | |- | ||
| [[INNER_PRODUCT]] | | [[INNER_PRODUCT]] | ||
| use if tangent linear and adjoint inner product check | | use if tangent linear and adjoint inner product check | ||
|- | |||
| [[I4DVAR]] | |||
| use if incremental 4DVar data assimilation | |||
|- | |- | ||
| [[ | | [[I4DVAR_ANA_SENSITIVITY]] | ||
| use if | | use if I4D-Var observations sensitivity | ||
|- | |- | ||
| [[ | | [[LCZ_FINAL]] | ||
| use if | | use if computing 4D-Var Hessian singular vectors | ||
|- | |- | ||
| [[OPT_OBSERVATIONS]] | | [[OPT_OBSERVATIONS]] | ||
Line 1,117: | Line 792: | ||
|- | |- | ||
| [[PSEUDOSPECTRA]] | | [[PSEUDOSPECTRA]] | ||
| use if pseudospectra of tangent linear resolvant | | 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]] | | [[R_SYMMETRY]] | ||
| use if representer matrix symmetry test | | use if representer matrix symmetry test | ||
|- | |- | ||
| [[ | | [[R4DVAR]] | ||
| use if | | use if Strong/Weak constraint dual formulation 4DVar data assimilation (Formerly W4DVAR) | ||
|- | |||
| [[R4DVAR_ANA_SENSITIVITY]] | |||
| use if R4D-Var analysis observation sensitivity | |||
|- | |- | ||
| [[SANITY_CHECK]] | | [[SANITY_CHECK]] | ||
Line 1,133: | Line 823: | ||
| [[SO_TRACE]] | | [[SO_TRACE]] | ||
| use if stochastic optimals, randomized 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]] | | [[STOCHASTIC_OPT]] | ||
| use if stochastic optimals | | use if stochastic optimals | ||
|- | |- | ||
| [[TLM_CHECK]] | | [[TLM_CHECK]] | ||
Line 1,145: | Line 847: | ||
| [[TLM_DRIVER]] | | [[TLM_DRIVER]] | ||
| use if generic tangent linear model driver | | use if generic tangent linear model driver | ||
|} | |} | ||
Line 1,156: | Line 852: | ||
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |||
| [[AD_IMPULSE]] | |||
| use to force adjoint model with intermittent impulses | |||
|- | |||
| [[ADJUST_BOUNDARY]] | |||
| use if including boundary conditions in 4DVar state | |||
|- | |- | ||
| [[ADJUST_STFLUX]] | | [[ADJUST_STFLUX]] | ||
Line 1,163: | Line 865: | ||
| [[ADJUST_WSTRESS]] | | [[ADJUST_WSTRESS]] | ||
| use if including wind-stress in 4DVar state | | use if including wind-stress in 4DVar state | ||
| [[ | |- | ||
| use if error covariance multivariate balance term | | [[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]] | | [[CELERITY_WRITE]] | ||
| use if writing radiation celerity in forward file | | use if writing radiation celerity in forward file | ||
|- | |- | ||
| [[ | | [[CLIPPING_SPLIT]] | ||
| use | | use to separate analysis due to IC, forcing, and OBC | ||
|- | |- | ||
| [[ | | [[DATALESS_LOOPS]] | ||
| use if | | use if testing convergence of Picard iterations | ||
|- | |- | ||
| [[ | | [[ENKF_RESTART]] | ||
| use if | | use if writting restart fields for EnKF | ||
|- | |- | ||
| [[FORWARD_MIXING]] | | [[FORWARD_MIXING]] | ||
Line 1,195: | Line 907: | ||
| [[FULL_GRID]] | | [[FULL_GRID]] | ||
| use to consider both interior and boundary points | | 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]] | | [[IMPLICIT_VCONV]] | ||
Line 1,202: | Line 920: | ||
| use if processing adjoint impulse forcing | | use if processing adjoint impulse forcing | ||
|- | |- | ||
| [[ | | [[MINRES]] | ||
| use | | use if Minimal Residual Method for 4DVar minimization | ||
|- | |- | ||
| [[MULTIPLE_TLM]] | | [[MULTIPLE_TLM]] | ||
| use if multiple TLM history files in 4DVAR | | use if multiple TLM history files in 4DVAR | ||
|- | |- | ||
| [[NLM_OUTER]] | | [[NLM_OUTER]] | ||
| use if nonlinear model as basic state in outer loop | | 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]] | | [[RPM_RELAXATION]] | ||
| use if Picard iterations, Diffusive Relaxation of RPM | | use if Picard iterations, Diffusive Relaxation of RPM | ||
|- | |||
| [[SKIP_NLM]] | |||
| use to skip running NLM, reading NLM trajectory | |||
|- | |- | ||
| [[SO_SEMI_WHITE]] | | [[SO_SEMI_WHITE]] | ||
| use to activate white/red noise processes | | 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]] | | [[VCONVOLUTION]] | ||
Line 1,228: | Line 973: | ||
| [[VERIFICATION]] | | [[VERIFICATION]] | ||
| use if writing out solution at observation locations | | 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 | ===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;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[ | | [[BIO_FENNEL]] | ||
| use if | | use if Fennel et al. (2006) nitrogen-based model | ||
|- | |- | ||
| [[BIO_SEDIMENT]] | | [[BIO_SEDIMENT]] | ||
| use to restore fallen material to the nutrient pool | | use to restore fallen material to the nutrient pool | ||
|- | |- | ||
| [[CARBON]] | | [[CARBON]] | ||
| use to add carbon constituents | | use to add carbon constituents | ||
|- | |- | ||
| [[DENITRIFICATION]] | | [[DENITRIFICATION]] | ||
| use to add denitrification processes | | use to add denitrification processes | ||
|- | |- | ||
| [[OXYGEN]] | | [[OXYGEN]] | ||
| use to add oxygen dynamics | | use to add oxygen dynamics | ||
|- | |- | ||
| [[OCMIP_OXYGEN_SC]] | | [[OCMIP_OXYGEN_SC]] | ||
| use if Schmidt number from Keeling et al. (1998) | | use if Schmidt number from Keeling et al. (1998) | ||
|- | |- | ||
| [[ | | [[TALK_NONCONSERV]] | ||
| use | | 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 | | use if Hypoxia Simple Respiration Model | ||
|} | |} | ||
Line 1,263: | Line 1,020: | ||
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[NPZD_FRANKS]] | | [[NPZD_FRANKS]] | ||
| use if NPZD Biology model, Franks et al. (1986) | | use if NPZD Biology model, Franks et al. (1986) | ||
|- | |||
| [[NPZD_IRON]] | |||
| use if NPZD Biology model with iron limitation | |||
|- | |- | ||
| [[NPZD_POWELL]] | | [[NPZD_POWELL]] | ||
| use if NPZD Biology model, Powell et al. (2006) | | 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 | |||
|} | |} | ||
Line 1,275: | Line 1,041: | ||
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[ECOSIM]] | | [[ECOSIM]] | ||
| use if bio-optical EcoSim model | | 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 | |||
|} | |} | ||
Line 1,284: | Line 1,081: | ||
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[SEDIMENT]] | | [[SEDIMENT]] | ||
Line 1,294: | Line 1,091: | ||
| [[BEDLOAD_SOULSBY]] | | [[BEDLOAD_SOULSBY]] | ||
| use to activate Soulsby wave/current bed load | | use to activate Soulsby wave/current bed load | ||
|- | |- | ||
| [[SED_DENS]] | | [[SED_DENS]] | ||
Line 1,306: | Line 1,100: | ||
| [[SUSPLOAD]] | | [[SUSPLOAD]] | ||
| use to activate suspended load transport | | 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=== | ===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;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |||
| [[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]] | | [[REFDIF_COUPLING]] | ||
| use if coupling to | | use if coupling to REFDIf wave model | ||
|- | |||
| [[REGCM_COUPLING]] | |||
| if coupling to RegCM atmospheric model | |||
|- | |- | ||
| [[SWAN_COUPLING]] | | [[SWAN_COUPLING]] | ||
| use if coupling to SWAN wave model | | 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]] | | [[WRF_COUPLING]] | ||
| use if coupling to WRF atmospheric model | | use if coupling to WRF atmospheric model | ||
|- | |||
| [[WRF_TIMEAVG]] | |||
| use if time-averaged fields over coupling interval | |||
|} | |} | ||
Line 1,326: | Line 1,178: | ||
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[WET_DRY]] | | [[WET_DRY]] | ||
| use to activate wetting and drying | | use to activate wetting and drying | ||
|- | |- | ||
| [[ | | [[NEARSHORE_MELLOR05]] | ||
| use to activate radiation stress terms. | | 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 | |||
|- | |||
| | |||
| | |||
|- | |||
| [[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=== | ===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;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !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]] | | [[INLINE_2DIO]] | ||
| use if processing 3D IO level by level | | 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]] | | [[NO_WRITE_GRID]] | ||
| use if not writing grid arrays | | use if not writing grid arrays | ||
|- | |||
| [[PARALLEL_IO]] | |||
| if parallel I/O via HDF5 or pnetcdf libraries | |||
|- | |- | ||
| [[PERFECT_RESTART]] | | [[PERFECT_RESTART]] | ||
| use to include perfect restart variables | | 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]] | | [[READ_WATER]] | ||
| use if only reading water points data | | use if only reading water points data | ||
|- | |- | ||
| [[WRITE_WATER]] | | [[WRITE_WATER]] | ||
| use if only writing water points data | | use if only writing water points data | ||
|- | |- | ||
| [[RST_SINGLE]] | | [[RST_SINGLE]] | ||
| use if writing single precision restart fields | | use if writing single precision restart fields | ||
|- | |- | ||
| [[OUT_DOUBLE]] | | [[OUT_DOUBLE]] | ||
| use if writing double precision output fields | | use if writing double precision output fields | ||
|} | |} | ||
===Option for debugging=== | |||
: | |||
===Options for idealized test problems=== | ===Options for idealized test problems=== | ||
Line 1,366: | Line 1,290: | ||
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[BASIN]] | | [[BASIN]] | ||
Line 1,381: | Line 1,302: | ||
|- | |- | ||
| [[BL_TEST]] | | [[BL_TEST]] | ||
| Boundary Layers Test | | Boundary Layers Test | ||
|- | |- | ||
| [[ | | [[CANYON]] | ||
| | | Costal Form Stress Canyon Test | ||
|- | |- | ||
| [[CHANNEL_NECK]] | | [[CHANNEL_NECK]] | ||
| Channel with a Constriction | | Channel with a Constriction | ||
|- | |- | ||
| [[COUPLING_TEST]] | | [[COUPLING_TEST]] | ||
| Two-way Atmosphere-Ocean Coupling Test | | Two-way Atmosphere-Ocean Coupling Test | ||
|- | |||
| [[DOGBONE]] | |||
| Idealize nesting grids (Composite/Refinement) Test | |||
|- | |- | ||
| [[DOUBLE_GYRE]] | | [[DOUBLE_GYRE]] | ||
| Idealized Double-gyre Example | | Idealized Double-gyre Example | ||
|- | |- | ||
| [[ESTUARY_TEST]] | | [[ESTUARY_TEST]] | ||
| Test Estuary for Sediment | | Test Estuary for Sediment | ||
|- | |- | ||
| [[FLT_TEST]] | | [[FLT_TEST]] | ||
| Float Tracking Example | | Float Tracking Example | ||
|- | |- | ||
| [[GRAV_ADJ]] | | [[GRAV_ADJ]] | ||
| Graviational Adjustment Example | | Graviational Adjustment Example | ||
|- | |- | ||
| [[INLET_TEST]] | | [[INLET_TEST]] | ||
| Test Inlet Application | | Test Inlet Application | ||
|- | |- | ||
| [[KELVIN]] | | [[KELVIN]] | ||
| Kelvin wave test | | Kelvin wave test | ||
|- | |- | ||
| [[LAB_CANYON]] | | [[LAB_CANYON]] | ||
| Lab Canyon, Polar Coordinates Example | | Lab Canyon, Polar Coordinates Example | ||
|- | |||
| [[LAKE_JERSEY]] | |||
| Lake Jersey Nesting Test Case | |||
|- | |- | ||
| [[LAKE_SIGNELL]] | | [[LAKE_SIGNELL]] | ||
| Lake Signell Sediment Test Case | | Lake Signell Sediment Test Case | ||
|- | |- | ||
| [[LMD_TEST]] | | [[LMD_TEST]] | ||
| Test for LMD and KPP | | Test for LMD and KPP | ||
|- | |- | ||
| [[OVERFLOW]] | | [[OVERFLOW]] | ||
| Graviational/Overflow Example | | Graviational/Overflow Example | ||
|- | |- | ||
| [[RIVERPLUME1]] | | [[RIVERPLUME1]] | ||
| River Plume Example 1 | | River Plume Example 1 | ||
|- | |- | ||
| [[RIVERPLUME2]] | | [[RIVERPLUME2]] | ||
| River plume Example 2 (Hyatt and Signell) | | River plume Example 2 (Hyatt and Signell) | ||
|- | |- | ||
| [[SEAMOUNT]] | | [[SEAMOUNT]] | ||
| Seamount Example | | Seamount Example | ||
|- | |- | ||
| [[SED_TEST1]] | | [[SED_TEST1]] | ||
| Suspended Sediment Test in a Channel | | Suspended Sediment Test in a Channel | ||
|- | |- | ||
| [[SED_TOY]] | | [[SED_TOY]] | ||
| One-dimension (vertical) Sediment Toy | | One-dimension (vertical) Sediment Toy | ||
|- | |- | ||
| [[SHOREFACE]] | | [[SHOREFACE]] | ||
| Shore Face Planar Beach Test Case | | Shore Face Planar Beach Test Case | ||
|- | |- | ||
| [[SOLITON]] | | [[SOLITON]] | ||
| Equatorial Rossby Wave Example | | Equatorial Rossby Wave Example | ||
|- | |- | ||
| [[TEST_CHAN]] | | [[TEST_CHAN]] | ||
| Sediment Test Channel Case | | Sediment Test Channel Case | ||
|- | |- | ||
| [[TEST_HEAD]] | | [[TEST_HEAD]] | ||
| Sediment Test Headland Case | | Sediment Test Headland Case | ||
|- | |- | ||
| [[UPWELLING]] | | [[UPWELLING]] | ||
| Upwelling Example (default) | | Upwelling Example (default) | ||
|- | |- | ||
| [[WEDDELL]] | | [[WEDDELL]] | ||
| Idealized Weddell Sea Shelf Application | | Idealized Weddell Sea Shelf Application | ||
|- | |- | ||
| [[WINDBASIN]] | | [[WINDBASIN]] | ||
| Linear Wind-driven Constant Coriolis Basin | | Linear Wind-driven Constant Coriolis Basin | ||
|} | |} | ||
===Options for climatological applications=== | ===Options for climatological applications=== | ||
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[DAMEE_4]] | | [[DAMEE_4]] | ||
| North Atlantic DAMEE Application, 3/4 degree | | North Atlantic DAMEE Application, 3/4 degree | ||
|} | |} | ||
Line 1,475: | Line 1,398: | ||
{| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | {| border="0" cellspacing="0" style="padding-left:3.5em; padding-top:10px; padding-bottom:10px;" | ||
!width=" | !width="275"| | ||
|- | |- | ||
| [[ADRIA02]] | | [[ADRIA02]] | ||
| Adriatic Sea Application | | Adriatic Sea Application | ||
|- | |- | ||
| [[NJ_BIGHT]] | | [[NJ_BIGHT]] | ||
| New Jersey Bight Application | | 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: 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
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 |