/* ** Include file "cppdefs.h" ******************************************************************************* ** Copyright (c) 2005 ROMS/TOMS Group, version 3.0 ** ********************************************************** Hernan G. Arango *** ** ** ** Choose the appropriate C-preprocessing options by using the command ** ** #define to activate option or #undef to deactivate option. ** ** ** ******************************************************************************* */ /* **----------------------------------------------------------------------------- ** Choose a pre-defined model application. If building a new application, ** choose a unique CPP flag for it and select the appropriate configuration. **----------------------------------------------------------------------------- */ #define SOGLOBEC /* for SOGLOBEC Simulation */ # if defined MY_APPL /* **----------------------------------------------------------------------------- ** Detailed description of all available CPP options. **----------------------------------------------------------------------------- ** ** Select model dynamics for MOMENTUM equations: ** (The default advection is third-order upstream bias) */ #undef UV_ADV /* turn ON or OFF advection terms */ #undef UV_COR /* turn ON or OFF Coriolis term */ #undef UV_C2ADVECTION /* turn ON or OFF 2nd-order centered advection */ #undef UV_C4ADVECTION /* turn ON or OFF 4th-order centered advection */ #undef UV_SADVECTION /* turn ON or OFF splines vertical advection */ #undef UV_VIS2 /* turn ON or OFF Laplacian horizontal mixing */ #undef UV_VIS4 /* turn ON or OFF biharmonic horizontal mixing */ #undef UV_LOGDRAG /* turn ON or OFF logarithmic bottom friction */ #undef UV_LDRAG /* turn ON or OFF linear bottom friction */ #undef UV_QDRAG /* turn ON or OFF quadratic bottom friction */ #undef UV_PSOURCE /* turn ON or OFF point Sources/Sinks */ /* ** Select model dynamics for TRACER equations: ** (The default horizontal and vertical advection is 4th-order centered) */ #undef TS_A4HADVECTION /* define if 4th-order Akima horiz. advection */ #undef TS_C2HADVECTION /* define if 2nd-order centered horiz. advection */ #undef TS_C4HADVECTION /* define if 4th-order centered horiz. advection */ #undef TS_MPDATA /* define if recursive MPDATA 3D advection */ #undef TS_U3HADVECTION /* define if 3rd-order upstream horiz. advection */ #undef TS_A4VADVECTION /* define if 4th-order Akima vertical advection */ #undef TS_C2VADVECTION /* define if 2nd-order centered vertical advection */ #undef TS_C4VADVECTION /* define if 4th-order centered vertical advection */ #undef TS_SVADVECTION /* define if splines vertical advection */ #undef TS_DIF2 /* turn ON or OFF Laplacian horizontal mixing */ #undef TS_DIF4 /* turn ON or OFF biharmonic horizontal mixing */ #undef TS_FIXED /* define if diagnostic run, no evolution of tracers */ #undef T_PASSIVE /* define if inert passive tracers (dyes, etc) */ #undef SALINITY /* define if using salinity */ #undef NONLIN_EOS /* define if using nonlinear equation of state */ #undef OFFLINE_FLOATS /* define if offline simulation of floats */ #undef OFFLINE_BIOLOGY /* define if offline simulation of bio tracers */ #undef QCORRECTION /* define if net heat flux correction */ #undef SCORRECTION /* define if freshwater flux correction */ #undef SOLAR_SOURCE /* define solar radiation source term */ #undef SRELAXATION /* define if salinity relaxation as a freshwater flux*/ #undef TS_PSOURCE /* turn ON or OFF point Sources/Sinks */ /* ** Select 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 reconsicliation step is done ** and in the monotonicity constraining algorithms. */ #undef PJ_GRADP /* Finite volume Pressure Jacobian (Lin, 1997) */ #undef PJ_GRADPQ2 /* Quartic 2 Pressure Jacobian (Shchepetkin, 2000) */ #undef PJ_GRADPQ4 /* Quartic 4 Pressure Jacobian (Shchepetkin, 2000) */ #undef DJ_GRADPS /* Splines density Jacobian (Shchepetkin, 2000) */ #undef WJ_GRADP /* Weighted density Jacobian (Song, 1998) */ /* ** Select surface model fluxes formutalion via atmospheric boundary ** layer (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 a ** 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; (iii) provide net longwave radiation ** (default). */ #undef AIR_OCEAN /* turn ON two-way atmosphere-ocean models coupling */ #undef BULK_FLUXES /* turn ON or OFF bulk fluxes computation */ #undef NCEP_FLUXES #undef COOL_SKIN /* turn ON or OFF cool skin correction */ #undef LONGWAVE /* Compute net longwave radiation internally */ #undef LONGWAVE_OUT /* Compute ougoing longwave radiation internally */ #undef EMINUSP /* turn ON internal calculation of E-P */ /* ** Select 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. */ #undef ALBEDO /* use albedo equation for shortwave radiation */ #undef DIURNAL_SRFLUX /* impose shortwave radiation local diurnal cycle */ /* ** Select model configuration: */ #undef SOLVE3D /* define if solving 3D primitive equations */ #undef CURVGRID /* define if using curvilinear coordinate grid*/ #undef MASKING /* define if there is land in the domain */ #undef BODYFORCE /* define if applying stresses as bodyforces */ #undef PROFILE /* define if time profiling */ #undef AVERAGES /* define if writing out time-averaged data */ #undef AVERAGES_AKV /* define if writing out time-averaged AKv */ #undef AVERAGES_AKT /* define if writing out time-averaged AKt */ #undef AVERAGES_AKS /* define if writing out time-averaged AKs */ #undef AVERAGES_FLUXES /* define if writing out time-averaged fluxes */ #undef AVERAGES_QUADRATIC /* define if writing out quadratic terms */ #undef AVERAGES_BEDLOAD /* define if writing out time-averaged bed load */ #undef DIAGNOSTICS_BIO /* define if writing out biological diagnostics */ #undef DIAGNOSTICS_UV /* define if writing out momentum diagnostics */ #undef DIAGNOSTICS_TS /* define if writing out tracer diagnostics */ #undef ICESHELF /* define if including ice shelf cavities */ #undef SPHERICAL /* define if analytical spherical grid */ #undef STATIONS /* define if writing out station data */ #undef STATIONS_CGRID /* define if extracting data at native C-grid */ /* ** Lagrangian drifters options */ #undef FLOATS /* define if simulated Lagrangian drifters */ #undef FLOAT_VWALK /* define if vertical random walk */ /* ** Activate conservative, parabolic spline reconstruction in the ** vertical. Notice that there also options (see above) for vertical ** advection of momentum and tracers using splines. */ #undef SPLINES /* turn ON or OFF parabolic splines reconstruction */ /* ** Select analytical fields configuration: define if using any of the ** following options. Set the appropriate analytical expression in ** file "analytical.F". */ #undef ANA_BIOLOGY /* analytical biology initial conditions */ #undef ANA_BPFLUX /* analytical bottom passive tracers fluxes */ #undef ANA_BSFLUX /* analytical bottom salinity flux */ #undef ANA_BTFLUX /* analytical bottom temperature flux */ #undef ANA_CLOUD /* analytical cloud fraction */ #undef ANA_DIAG /* Customized diagnostics */ #undef ANA_FSOBC /* analytical free-surface boundary conditions */ #undef ANA_GRID /* analytical model grid set-up */ #undef ANA_HUMIDITY /* analytical surface air humidity */ #undef ANA_INITIAL /* analytical initial conditions */ #undef ANA_M2CLIMA /* analytical 2D momentum climatology */ #undef ANA_M2OBC /* analytical 2D momentum boundary conditions */ #undef ANA_M3CLIMA /* analytical 3D momentum climatology */ #undef ANA_M3OBC /* analytical 3D momentum boundary conditions */ #undef ANA_MASK /* analytical Land/Sea masking */ #undef ANA_PAIR /* analytical surface air pressure */ #undef ANA_PASSIVE /* analytical initial condtions for inert tracers */ #undef ANA_PERTURB /* analytical perturbation of initial conditions */ #undef ANA_PSOURCE /* analytical point Sources/Sinks */ #undef ANA_RAIN /* analytical rain fall rate */ #undef ANA_SEDIMENT /* analytical sediment initial fields */ #undef ANA_SMFLUX /* analytical surface momentum stress */ #undef ANA_SPFLUX /* analytical surface passive tracers fluxes */ #undef ANA_SPINNING /* analytical time-varying rotation force */ #undef ANA_SRFLUX /* analytical surface shortwave radiation flux */ #undef ANA_SSFLUX /* analytical surface salinity flux */ #undef ANA_SSH /* analytical sea surface height */ #undef ANA_SSS /* analytical sea surface salinity */ #undef ANA_SST /* analytical SST and dQdSST */ #undef ANA_STFLUX /* analytical surface temperature flux */ #undef ANA_TAIR /* analytical surface air temperature */ #undef ANA_TCLIMA /* analytical tracers climatology */ #undef ANA_TOBC /* analytical tracers boundary conditions */ #undef ANA_VMIX /* analytical vertical mixing coefficients */ #undef ANA_WINDS /* analytical surface winds */ #undef ANA_WWAVE /* analytical wind induced waves */ /* ** Select options for horizontal mixing of MOMENTUM: */ #undef VISC_GRID /* viscosity coefficient scaled by grid size */ #undef MIX_S_UV /* mixing along constant S-surfaces */ #undef MIX_GEO_UV /* mixing on geopotential (constant Z) surfaces */ /* ** Select options for horizontal mixing of TRACERS: */ #undef DIFF_GRID /* diffusion coefficient scaled by grid size */ #undef MIX_S_TS /* mixing along constant S-surfaces */ #undef MIX_GEO_TS /* mixing on geopotential (constant Z) surfaces */ #undef MIX_ISO_TS /* mixing on epineutral (constant RHO) surfaces */ /* ** Select vertical turbulent mixing scheme for MOMENTUM and TRACERS ** (activate only one closure): */ #undef BVF_MIXING /* Activate Brunt-Vaisala frequency mixing */ #undef GLS_MIXING /* Activate Generic Length-Scale mixing */ #undef MY25_MIXING /* Activate Mellor/Yamada Level-2.5 closure */ #undef LMD_MIXING /* Activate Large/McWilliams/Doney interior closure */ /* ** Select options for the Generic Length-Scale closure: ** (The default advection is third-order upstream bias, G-Scheme) */ #undef CANUTO_A /* Canuto A-stability function formulation */ #undef CANUTO_B /* Canuto B-stability function formulation */ #undef CHARNOK /* Charnok surface roughness from wind stress */ #undef CRAIG_BANNER /* Craig and Banner wave breaking surface flux */ #undef KANTHA_CLAYSON /* Kantha and Clayson stability function formulation */ #undef K_C2ADVECTION /* turn ON or OFF 2nd-order centered advection */ #undef K_C4ADVECTION /* turn ON or OFF 4th-order centered advection */ #undef N2S2_HORAVG /* Activate horizontal smoothing of buoyancy/shear */ /* ** Select options for the Mellor/Yamada level 2.5 closure: ** (The default advection is third-order upstream bias, G-Scheme) */ #undef N2S2_HORAVG /* Activate horizontal smoothing of buoyancy/shear */ #undef KANTHA_CLAYSON /* Kantha and Clayson stability function formulation */ #undef K_C2ADVECTION /* turn ON or OFF 2nd-order centered advection */ #undef K_C4ADVECTION /* turn ON or OFF 4th-order centered advection */ /* ** Select options for the Large/McWilliams/Doney interior mixing: */ # ifdef LMD_MIXING #undef LMD_RIMIX /* Add diffusivity due to shear instability */ #undef LMD_CONVEC /* Add convective mixing due to shear instability */ #undef LMD_DDMIX /* Add double-diffusive mixing */ # endif /* ** Select Large/McWilliams/Doney Oceanic Planetary Boundary Layer scheme ** and its associated options: local K-Profile Parameterization (KPP) */ #undef LMD_SKPP /* turn ON or OFF surface boundary layer KPP mixing */ #undef LMD_BKPP /* turn ON or OFF bottom boundary layer KPP mixing */ #undef LMD_NONLOCAL /* turn ON or OFF nonlocal transport */ /* ** If not SPLINES, activate smoothing of Richardson number. */ #undef RI_HORAVG /* Activate horizontal smoothing */ #undef RI_VERAVG /* Activate vertical smoothing */ /* ** Select options for Meinte Blass bottom boundary layer closure. ** Options MB_Z0BL and MB_Z0RIP should be activated concurrently. */ #undef MB_BBL /* turn ON or OFF Meinte Blaas BBL closure */ #undef MB_CALC_ZNOT /* activate internal computation of bottom roughness */ #undef MB_Z0BIO /* biogenic bedform roughness ripple height & length */ #undef MB_Z0BL /* bedload roughness for ripples */ #undef MB_Z0RIP /* bedform roughness ripple height and length */ /* ** Select options for Styles and Glenn (2000) bottom boundary layer closure. */ #undef SG_BBL /* turn ON or OFF Styles and Glenn (2000) BBL closure */ #undef SG_CALC_ZNOT /* activate internal computation of bottom roughness */ #undef SG_LOGINT /* activate logarithmic interpolation of (Ur,Vr) */ /* ** Select options for SSW bottom boundary layer closure. */ #undef SSW_BBL /* turn ON or OFF Styles and Glenn (2000) BBL closure */ #undef SSW_CALC_ZNOT /* activate internal computation of bottom roughness */ #undef SSW_LOGINT /* activate logarithmic interpolation of (Ur,Vr) */ /* ** Select lateral boundary options. Usually, select ONE option at each ** boundary edge for free-surface, 2D momentum, 3D momentum, and tracers. ** The turbulent kineric energy (TKE) conditions are only activated for ** the Mellor-Yamada 2.5 closure. If open boundary radiation conditions, ** an additional option can be activated at each boundary edge to include ** a passive/active nudging term with weak/strong values for outflow/inflow. */ #undef SPONGE /* activate areas of enhanced viscosity/diffusion */ #undef EAST_VOLCONS /* Eastern edge, enforce mass conservation */ #undef WEST_VOLCONS /* Western edge, enforce mass conservation */ #undef NORTH_VOLCONS /* Northern edge, enforce mass conservation */ #undef SOUTH_VOLCONS /* Southern edge, enforce mass conservation */ #undef EW_PERIODIC /* East-West periodic boundaries */ #undef NS_PERIODIC /* North-South periodic boundaries */ #undef EASTERN_WALL /* Eastern edge, closed wall condition */ #undef WESTERN_WALL /* Western edge, closed wall condition */ #undef NORTHERN_WALL /* Northern edge, closed wall condition */ #undef SOUTHERN_WALL /* Southern edge, closed wall condition */ #undef RADIATION_2D /* Tangential phase speed in radiation conditions */ #undef EAST_FSCHAPMAN /* Eastern edge, free-surface, Chapman condition */ #undef EAST_FSGRADIENT /* Eastern edge, free-surface, gradient condition */ #undef EAST_FSRADIATION /* Eastern edge, free-surface, radiation condition */ #undef EAST_FSNUDGING /* Eastern edge, free-surface, passive/active term */ #undef EAST_FSCLAMPED /* Eastern edge, free-surface, clamped condition */ #undef EAST_M2FLATHER /* Eastern edge, 2D momentum, Flather condition */ #undef EAST_M2GRADIENT /* Eastern edge, 2D momentum, gradient condition */ #undef EAST_M2RADIATION /* Eastern edge, 2D momentum, radiation condition */ #undef EAST_M2REDUCED /* Eastern edge, 2D momentum, reduced-physics */ #undef EAST_M2NUDGING /* Eastern edge, 2D momentum, passive/active term */ #undef EAST_M2CLAMPED /* Eastern edge, 2D momentum, clamped condition */ #undef EAST_M3GRADIENT /* Eastern edge, 3D momentum, gradient condition */ #undef EAST_M3RADIATION /* Eastern edge, 3D momentum, radiation condition */ #undef EAST_M3NUDGING /* Eastern edge, 3D momentum, passive/active term */ #undef EAST_M3CLAMPED /* Eastern edge, 3D momentum, clamped condition */ #undef EAST_KGRADIENT /* Eastern edge, TKE fields, gradient condition */ #undef EAST_KRADIATION /* Eastern edge, TKE fields, radiation condition */ #undef EAST_TGRADIENT /* Eastern edge, tracers, gradient condition */ #undef EAST_TRADIATION /* Eastern edge, tracers, radiation condition */ #undef EAST_TNUDGING /* Eastern edge, tracers, passive/active term */ #undef EAST_TCLAMPED /* Eastern edge, tracers, clamped condition */ #undef WEST_FSCHAPMAN /* Western edge, free-surface, Chapman condition */ #undef WEST_FSGRADIENT /* Western edge, free-surface, gradient condition */ #undef WEST_FSRADIATION /* Western edge, free-surface, radiation condition */ #undef WEST_FSNUDGING /* Western edge, free-surface, passive/active term */ #undef WEST_FSCLAMPED /* Western edge, free-surface, clamped condition */ #undef WEST_M2FLATHER /* Western edge, 2D momentum, Flather condition */ #undef WEST_M2GRADIENT /* Western edge, 2D momentum, gradient condition */ #undef WEST_M2RADIATION /* Western edge, 2D momentum, radiation condition */ #undef WEST_M2REDUCED /* Western edge, 2D momentum, reduced-physics */ #undef WEST_M2NUDGING /* Western edge, 2D momentum, passive/active term */ #undef WEST_M2CLAMPED /* Western edge, 2D momentum, clamped condition */ #undef WEST_M3GRADIENT /* Western edge, 3D momentum, gradient condition */ #undef WEST_M3RADIATION /* Western edge, 3D momentum, radiation condition */ #undef WEST_M3NUDGING /* Western edge, 3D momentum, passive/active term */ #undef WEST_M3CLAMPED /* Western edge, 3D momentum, clamped condition */ #undef WEST_KGRADIENT /* Western edge, TKE fields, gradient condition */ #undef WEST_KRADIATION /* Western edge, TKE fields, radiation condition */ #undef WEST_TGRADIENT /* Western edge, tracers, gradient condition */ #undef WEST_TRADIATION /* Western edge, tracers, radiation condition */ #undef WEST_TNUDGING /* Western edge, tracers, passive/active term */ #undef WEST_TCLAMPED /* Western edge, tracers, clamped condition */ #undef NORTH_FSCHAPMAN /* Northern edge, 2D momentum, Chapman condition */ #undef NORTH_FSGRADIENT /* Northern edge, free-surface, gradient condition */ #undef NORTH_FSRADIATION /* Northern edge, free-surface, radiation condition*/ #undef NORTH_FSNUDGING /* Northern edge, free-surface, passive/active term*/ #undef NORTH_FSCLAMPED /* Northern edge, free-surface, clamped condition */ #undef NORTH_M2FLATHER /* Northern edge, 2D momentum, Flather condition */ #undef NORTH_M2GRADIENT /* Northern edge, 2D momentum, gradient condition */ #undef NORTH_M2RADIATION /* Northern edge, 2D momentum, radiation condition */ #undef NORTH_M2REDUCED /* Northern edge, 2D momentum, reduced-physics */ #undef NORTH_M2NUDGING /* Northern edge, 2D momentum, passive/active term */ #undef NORTH_M2CLAMPED /* Northern edge, 2D momentum, clamped condition */ #undef NORTH_M3GRADIENT /* Northern edge, 3D momentum, gradient condition */ #undef NORTH_M3RADIATION /* Northern edge, 3D momentum, radiation condition */ #undef NORTH_M3NUDGING /* Northern edge, 3D momentum, passive/active term */ #undef NORTH_M3CLAMPED /* Northern edge, 3D momentum, clamped condition */ #undef NORTH_KGRADIENT /* Northern edge, TKE fields, gradient condition */ #undef NORTH_KRADIATION /* Northern edge, TKE fields, radiation condition */ #undef NORTH_TGRADIENT /* Northern edge, tracers, gradient condition */ #undef NORTH_TRADIATION /* Northern edge, tracers, radiation condition */ #undef NORTH_TNUDGING /* Northern edge, tracers, passive/active term */ #undef NORTH_TCLAMPED /* Northern edge, tracers, clamped condition */ #undef SOUTH_FSCHAPMAN /* Southern edge, 2D momentum, Chapman condition */ #undef SOUTH_FSGRADIENT /* Southern edge, free-surface, gradient condition */ #undef SOUTH_FSRADIATION /* Southern edge, free-surface, radiation condition*/ #undef SOUTH_FSNUDGING /* Southern edge, free-surface, passive/active term*/ #undef SOUTH_FSCLAMPED /* Southern edge, free-surface, clamped condition */ #undef SOUTH_M2FLATHER /* Southern edge, 2D momentum, Flather condition */ #undef SOUTH_M2GRADIENT /* Southern edge, 2D momentum, gradient condition */ #undef SOUTH_M2RADIATION /* Southern edge, 2D momentum, radiation condition */ #undef SOUTH_M2REDUCED /* Southern edge, 2D momentum, reduced-physics */ #undef SOUTH_M2NUDGING /* Southern edge, 2D momentum, passive/active term */ #undef SOUTH_M2CLAMPED /* Southern edge, 2D momentum, clamped condition */ #undef SOUTH_M3GRADIENT /* Southern edge, 3D momentum, gradient condition */ #undef SOUTH_M3RADIATION /* Southern edge, 3D momentum, radiation condition */ #undef SOUTH_M3NUDGING /* Southern edge, 3D momentum, passive/active term */ #undef SOUTH_M3CLAMPED /* Southern edge, 3D momentum, clamped condition */ #undef SOUTH_KGRADIENT /* Southern edge, TKE fields, gradient condition */ #undef SOUTH_KRADIATION /* Southern edge, TKE fields, radiation condition */ #undef SOUTH_TGRADIENT /* Southern edge, tracers, gradient condition */ #undef SOUTH_TRADIATION /* Southern edge, tracers, radiation condition */ #undef SOUTH_TNUDGING /* Southern edge, tracers, passive/active term */ #undef SOUTH_TCLAMPED /* Southern edge, tracers, clamped condition */ /* ** Process tidal forcing for desired tidal component, classified by ** period. The tidal forcing is computed for the full horizontal grid. ** If requested, the tidal forcing is added to the processed (read and ** time-interpolated) open boundary data. Also, if applicable, the tidal ** forcing is added to the open boundary array. ** ** Both tidal elevation and tidal currents are required to force the ** model properly. However, if only tidal elevation is available, the ** tidal currents at the open boundary can be estimated by reduced ** physics. Only 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 (*_M2FLATHER) or reduced physics (*_M2REDUCED) ** conditions. Use FSOBS_REDUCED to use elevation data from tides, ** nested models and/or climatology. */ #undef SSH_TIDES /* turn on computation of tidal elevation */ #undef UV_TIDES /* turn on computation of tidal currents */ #undef TIDES_ASTRO /* tidal amplitude and phase adjustments */ #undef FSOBC_REDUCED /* Use SSH data in reduced physics conditions */ #undef ADD_FSOBC /* Add tidal elevation to processed OBC data */ #undef ADD_M2OBC /* Add tidal currents to processed OBC data */ /* ** Turn ON or OFF options for reading and processing of climatological ** fields. The nudging of climatology data is primarily used in sponge ** areas. */ #undef M2CLIMATOLOGY /* Processing of 2D momentum climatology */ #undef M3CLIMATOLOGY /* Processing of 3D momentum climatology */ #undef OCLIMATOLOGY /* Processing of omega climatology */ #undef TCLIMATOLOGY /* Processing of tracer climatology */ #undef ZCLIMATOLOGY /* Processing of SSH climatology */ #undef M2CLM_NUDGING /* Nudging of 2D momentum climatology */ #undef M3CLM_NUDGING /* Nudging of 3D momentum climatology */ #undef TCLM_NUDGING /* Nudging of tracer climatology */ #undef ZCLM_NUDGING /* Nudging of SSH climatology */ /* ** Select data assimilation options. The assimilation is via OI and ** intermittent. Nudging is continuous and observations are time- ** interpolated. If applicable, choose only one option for each ** field update: assimilation or nudging. */ #undef ASSIMILATION_SSH /* assimilation of SSH observations */ #undef ASSIMILATION_SST /* assimilation of SST observations */ #undef ASSIMILATION_T /* assimilation of tracer observations */ #undef ASSIMILATION_UVsur /* assimilation of surface current observations */ #undef ASSIMILATION_UV /* assimilation of horizontal current observations*/ #undef UV_BAROCLINIC /* assimilation of only baroclinic currents */ #undef NUDGING_SSH /* nudging of SSH observations */ #undef NUDGING_SST /* nudging of SST observations */ #undef NUDGING_T /* nudging of tracer observations */ #undef NUDGING_UVsur /* nudging of surface current observations */ #undef NUDGING_UV /* nudging of horizontal currents observations */ /* ** Options associated with tangent linear and adjoint models. The TANGENT ** and ADJOINT switches are activate in the Makefile macro CPPFLAGS. */ #undef AD_EIGENMODES /* adjoint eingenmodes */ #undef BACKGROUND /* include background cost function */ #undef CELERITY_WRITE /* Write out radiation celerity in forward file */ #undef ENERGY1_NORM /* cost function scaled with the energy norm, 1 */ #undef ENERGY2_NORM /* cost function scaled with the energy norm, 2 */ #undef ENERGY3_NORM /* cost function scaled with the energy norm, 3 */ #undef ENSEMBLE /* ensemble forecasting */ #undef FORCING_SV /* forcing singular vectors */ #undef FORWARD_WRITE /* Write out forward solution for tangent/adjoint */ #undef FORWARD_READ /* Read in forward solution for tangent/adjoint */ #undef N2NORM_PROFILE /* Use N2(z) profile during energy normalization */ #undef OPT_PERTURBATION /* optimal perturbations */ #undef PICARD_TEST /* Representer tangent linear model test */ #undef PSEUDOSPECTRA /* pseudospectra of tangent linear resolvant */ #undef GRADIENT_CHECK /* Tangent linear and adjoint codes gradient test */ #undef SANITY_CHECK /* Tangent linear and adjoint codes sanity check */ #undef S4DVAR /* strong constraint 4DVar data assimilation */ #undef IS4DVAR /* Incremental S4DVar data assimilation */ #undef SO_TRACE /* stochastic optimals randomized trace */ #undef STOCHASTIC_OPT /* stochastic optimals */ #undef TL_EIGENMODES /* tangent linear eigenmodes */ #undef TLM_CHECK /* tangent linear model linearization check */ /* ** Determine if processing full grid range (interior and boundary points) ** or only interior points (undef) of the state vector in variational ** data assimilation and generalized stability theory analysis. */ #undef FULL_GRID /* consider both interior and boundary points */ /* ** Fasham-type biology model options. */ #undef BIO_FASHAM /* Fasham type nitrogen-based model */ #undef BIO_SEDIMENT /* Restore fallen material to the nutrient pool */ #undef CARBON /* Add Carbon constituents */ #undef DENITRIFICATION /* Add denitrification processes */ #undef OXYGEN /* Add Oxygen dynamics */ #undef OCMIP_OXYGEN_SC /* Schmidt number from Keeling et al. (1998) */ #undef RIVER_BIOLOGY /* Process river biology point-sources */ #undef TALK_PROGNOSTIC /* Turn on/off prognostic/diagnotic alkalinity */ /* ** Bio-optical EcoSim model options. */ #undef ECOSIM /* Bio-optical EcoSim model */ /* ** Sediment transport model options. */ #undef SEDIMENT /* Activate sediment transport model */ #undef BEDLOAD /* Activate bed load transport */ #undef RIVER_SEDIMENT /* Process river sediment point-sources */ #undef SED_DENS /* Activate sediment to affect equation of state */ #undef SED_MORPH /* allow bottom model elevation to evolve */ #undef SUSPLOAD /* Activate suspended load transport */ /* ** NetCDF IO options. */ #undef NO_WRITE_GRID /* define if not writing grid arrays */ #undef READ_WATER /* define if only reading water points data */ #undef WRITE_WATER /* define if only writing water points data */ #undef RST_SINGLE /* define if single precision restart fields */ #undef OUT_DOUBLE /* define if double precision output fields */ /* ** Flag to process 3D data level by level (2D slabs) to reduce memory ** needs in distributed-memory configurations. This option is convinient ** for large problems on nodes with limited memory. */ #undef INLINE_2DIO /* define if processing 3D IO level by level */ /* ** Sea ice options */ #undef ICE_MODEL #undef ICE_THERMO #undef ICE_MK #undef ICE_SMOOTH #undef ICE_ALB_EC92 #undef ICE_MOMENTUM #undef ICE_MOM_BULK #undef ICE_EVP #undef ICE_ADVECT #undef ICE_SMOLAR #undef ICE_UPWIND #undef ICE_BULK_FLUX /* **----------------------------------------------------------------------------- ** Set pre-defined configuration flags for model test problems. **----------------------------------------------------------------------------- */ # elif defined SOGLOBEC /* ** Options for SOGLOBEC Bellingshausen/WAP Model */ #define UV_ADV #define DJ_GRADPS #define UV_QDRAG #define UV_VIS2 #define UV_COR #define TS_DIF2 #define TS_U3HADVECTION #define TS_C4VADVECTION #undef TS_SVADVECTION /* Try this for starters */ #define SALINITY #define NONLIN_EOS #define SOLVE3D #undef BODYFORCE #undef ANA_SMFLUX #undef ANA_STFLUX #undef ANA_SSFLUX #define ANA_SRFLUX #define ANA_BTFLUX #define ANA_BSFLUX #define MIX_S_UV /* Try this for starters */ #define MIX_GEO_TS #define LMD_MIXING #define LMD_RIMIX #define LMD_CONVEC #define LMD_SKPP #define LMD_NONLOCAL #undef NS_PERIODIC #undef EW_PERIODIC #undef RADIATION_2D /* Think about this */ #define NORTH_M2FLATHER #define NORTH_M3RADIATION #define NORTH_FSCHAPMAN #define NORTH_TRADIATION #undef NORTH_M2NUDGING #define NORTH_TNUDGING #undef NORTH_TFRS /* Need to think about FRS tracer scheme */ #define NORTH_AICLAMPED #define NORTH_HICLAMPED /* This may change */ #define NORTH_HSNCLAMPED #define NORTH_TIGRADIENT #define NORTH_SFWATGRADIENT #define NORTH_SIG11GRADIENT #define NORTH_SIG22GRADIENT #define NORTH_SIG12GRADIENT #define NORTH_MIGRADIENT #define SOUTH_M2FLATHER #define SOUTH_M3RADIATION #define SOUTH_FSCHAPMAN #define SOUTH_TRADIATION #undef SOUTH_M2NUDGING #define SOUTH_TNUDGING #undef SOUTH_TFRS /* Need to think about FRS tracer scheme */ #define SOUTH_AICLAMPED #define SOUTH_HICLAMPED /* This may change */ #define SOUTH_HSNCLAMPED #define SOUTH_TIGRADIENT #define SOUTH_SFWATGRADIENT #define SOUTH_SIG11GRADIENT #define SOUTH_SIG22GRADIENT #define SOUTH_SIG12GRADIENT #define SOUTH_MIGRADIENT #define EAST_M2FLATHER #define EAST_M3RADIATION #define EAST_FSCHAPMAN #define EAST_TRADIATION #undef EAST_M2NUDGING #define EAST_TNUDGING #undef EAST_TFRS /* Need to think about FRS tracer scheme */ #define EAST_AICLAMPED #define EAST_HICLAMPED /* This may change */ #define EAST_HSNCLAMPED #define EAST_TIGRADIENT #define EAST_SFWATGRADIENT #define EAST_SIG11GRADIENT #define EAST_SIG22GRADIENT #define EAST_SIG12GRADIENT #define EAST_MIGRADIENT #define WEST_M2FLATHER #define WEST_M3RADIATION #define WEST_FSCHAPMAN #define WEST_TRADIATION #undef WEST_M2NUDGING #define WEST_TNUDGING #undef WEST_TFRS /* Need to think about FRS tracer scheme */ #define WEST_AICLAMPED #define WEST_HICLAMPED /* This may change */ #define WEST_HSNCLAMPED #define WEST_TIGRADIENT #define WEST_SFWATGRADIENT #define WEST_SIG11GRADIENT #define WEST_SIG22GRADIENT #define WEST_SIG12GRADIENT #define WEST_MIGRADIENT #define SPLINES #undef EAST_VOLCONS #undef WEST_VOLCONS #undef NORTH_VOLCONS #undef SOUTH_VOLCONS #undef SPONGE #undef SOUTHERN_WALL #undef NORTHERN_WALL #undef EASTERN_WALL #undef WESTERN_WALL #define MASKING #define TCLIMATOLOGY #define TCLM_NUDGING #define ICE_MODEL # ifdef ICE_MODEL # define ICE_THERMO # define ICE_MK # undef ICE_ALB_EC92 /* fancier albedo calculation */ # define ICE_MOMENTUM # define ICE_MOM_BULK # define ICE_EVP # define ICE_ADVECT # define ICE_SMOLAR # define ICE_UPWIND # endif #define BULK_FLUXES #ifdef BULK_FLUXES # ifdef ICE_MODEL # define ICE_BULK_FLUXES # endif # define LONGWAVE # define EMINUSP # define SOLAR_SOURCE #endif #define NUT_UPTAKE #define STATIONS #define ICESHELF #define AVERAGES #define AVERAGES_FLUXES #undef DIAGNOSTICS_UV #define DIAGNOSTICS_TS # else CPPDEFS - Choose an appropriate ROMS application. # endif /* **----------------------------------------------------------------------------- ** Include other internal CPP definitions: **----------------------------------------------------------------------------- */ #include "globaldefs.h"