diff --git a/.gitmodules b/.gitmodules index 630f925..f02dbcc 100644 --- a/.gitmodules +++ b/.gitmodules @@ -2,7 +2,7 @@ path = MOM6 url = https://github.com/NCAR/MOM6.git fxDONOTUSEurl = https://github.com/NCAR/MOM6.git - fxtag = dev/ncar_240923 + fxtag = dev/ncar_241003 fxrequired = AlwaysRequired [submodule "stochastic_physics"] @@ -16,6 +16,6 @@ path = externals/MARBL url = https://github.com/marbl-ecosys/MARBL.git fxDONOTUSEurl = https://github.com/marbl-ecosys/MARBL.git - fxtag = marbl0.47.1 + fxtag = marbl0.48.0 fxrequired = AlwaysRequired diff --git a/MOM6 b/MOM6 index a3e2f14..ad7cf38 160000 --- a/MOM6 +++ b/MOM6 @@ -1 +1 @@ -Subproject commit a3e2f1485cf3a2e91c82c9d4c7934f12574deebb +Subproject commit ad7cf38e6eb3613d9303a2aa53e20f07bddc00f2 diff --git a/cime_config/testdefs/testlist_mom.xml b/cime_config/testdefs/testlist_mom.xml index 12c5049..7533dde 100644 --- a/cime_config/testdefs/testlist_mom.xml +++ b/cime_config/testdefs/testlist_mom.xml @@ -119,9 +119,11 @@ - + + + diff --git a/externals/MARBL b/externals/MARBL index 5db6529..8cab038 160000 --- a/externals/MARBL +++ b/externals/MARBL @@ -1 +1 @@ -Subproject commit 5db6529abae1fe6d363fb653baae37a5c73b6541 +Subproject commit 8cab038cf2f340467bbde442990cc5dcd0e6dbf3 diff --git a/standalone/build/.gitignore b/standalone/build/.gitignore index 2d43e94..3dfc895 100644 --- a/standalone/build/.gitignore +++ b/standalone/build/.gitignore @@ -2,3 +2,5 @@ intel/ intel-*/ gnu/ gnu-*/ +nvhpc/ +nvhpc-*/ diff --git a/standalone/build/build_examples.sh b/standalone/build/build_examples.sh index ccba3a6..75a26c9 100755 --- a/standalone/build/build_examples.sh +++ b/standalone/build/build_examples.sh @@ -18,6 +18,7 @@ FMS_ROOT=${CESM_ROOT}/libraries/FMS # Default compiler COMPILER="intel" MACHINE="ncar" +DEBUG=0 # Set to False (REPRO Mode)! # Parse command line arguments while [[ "$#" -gt 0 ]]; do @@ -28,6 +29,8 @@ while [[ "$#" -gt 0 ]]; do --machine) MACHINE="$2" shift ;; + --debug) + DEBUG=1 ;; *) echo "Unknown parameter passed: $1" echo "Usage: $0 [--compiler ] [--machine ]" @@ -58,7 +61,7 @@ case $MACHINE in JOBS=4 ;; "ncar") - JOBS=36 + JOBS=32 ;; *) echo "Invalid machine type for make -j option: $MACHINE" @@ -66,10 +69,36 @@ case $MACHINE in ;; esac -if [ -e $1 ]; then - BLD_ROOT=${COMPILER} +if [ "${DEBUG}" == 1 ]; then + BLD_ROOT=${COMPILER}-debug else - BLD_ROOT=$1 + BLD_ROOT=${COMPILER} +fi + + +# Load modules for NCAR +if [ "$MACHINE" == "ncar" ]; then + HOST=`hostname` + # Load modules if on derecho + if [ ! "${HOST:0:5}" == "crhtc" ] && [ ! "${HOST:0:6}" == "casper" ]; then + module --force purge + . /glade/u/apps/derecho/23.09/spack/opt/spack/lmod/8.7.24/gcc/7.5.0/c645/lmod/lmod/init/sh + module load cesmdev/1.0 ncarenv/23.09 + case $COMPILER in + "intel" ) + module load craype intel/2023.2.1 mkl ncarcompilers/1.0.0 cmake cray-mpich/8.1.27 netcdf-mpi/4.9.2 parallel-netcdf/1.12.3 parallelio/2.6.2 esmf/8.6.0 + ;; + "gnu" ) + module load craype gcc/12.2.0 cray-libsci/23.02.1.1 ncarcompilers/1.0.0 cmake cray-mpich/8.1.27 netcdf-mpi/4.9.2 parallel-netcdf/1.12.3 parallelio/2.6.2-debug esmf/8.6.0-debug + ;; + "nvhpc" ) + module load craype nvhpc/23.7 ncarcompilers/1.0.0 cmake cray-mpich/8.1.27 netcdf-mpi/4.9.2 parallel-netcdf/1.12.3 parallelio/2.6.2 esmf/8.6.0 + ;; + *) + echo "Not loading any special modules for ${COMPILER}" + ;; + esac + fi fi # 1) Build FMS @@ -77,12 +106,11 @@ cd ${INTERFACE_ROOT}/standalone/build mkdir -p ${BLD_ROOT}/FMS cd ${BLD_ROOT}/FMS ${MKMF_ROOT}/list_paths ${FMS_ROOT}/src -# We need shr_const_mod.F90 and shr_kind_mod.F90 from ${SHR_ROOT}/src -# to build FMS +# We need shr_const_mod.F90 and shr_kind_mod.F90 from ${SHR_ROOT}/src to build FMS echo "${SHR_ROOT}/src/shr_kind_mod.F90" >> path_names echo "${SHR_ROOT}/src/shr_const_mod.F90" >> path_names ${MKMF_ROOT}/mkmf -t ${TEMPLATE} -p libfms.a -c "-Duse_libMPI -Duse_netCDF -DSPMD" path_names -make -j${JOBS} NETCDF=3 REPRO=1 libfms.a +make -j${JOBS} DEBUG=${DEBUG} libfms.a # 2) Build MOM6 cd ${INTERFACE_ROOT}/standalone/build @@ -90,6 +118,6 @@ mkdir -p ${BLD_ROOT}/MOM6 cd ${BLD_ROOT}/MOM6 ${MKMF_ROOT}/list_paths -l ${MOM_ROOT}/{config_src/infra/FMS2,config_src/memory/dynamic_symmetric,config_src/drivers/solo_driver,../externals/MARBL/src,config_src/external,src/{*,*/*}}/ ${MKMF_ROOT}/mkmf -t ${TEMPLATE} -o '-I../FMS' -p MOM6 -l '-L../FMS -lfms' -c '-Duse_libMPI -Duse_netCDF -DSPMD' path_names -make -j${JOBS} NETCDF=3 REPRO=1 MOM6 +make -j${JOBS} DEBUG=${DEBUG} MOM6 -echo "Finished build at `date`" +echo "Finished build at `date`" \ No newline at end of file diff --git a/standalone/examples/cesm_t232_with_MARBL/MOM_input b/standalone/examples/cesm_t232_with_MARBL/MOM_input new file mode 100644 index 0000000..53f9c7c --- /dev/null +++ b/standalone/examples/cesm_t232_with_MARBL/MOM_input @@ -0,0 +1,1311 @@ +/* WARNING: DO NOT EDIT this file. Any changes you make will be + overriden. To make changes in MOM6 parameters within CESM + framework, use SourceMods or user_nl_mom mechanisms. + + This input file provides the adjustable run-time parameters + for version 6 of the Modular Ocean Model (MOM6). By default, + this file contains the out-of-the-box CESM configuration. A + full list of parameters for this case can be found in the + corresponding MOM_parameter_doc.all file which is generated + by the model at runtime. */ + +INPUTDIR = /glade/campaign/cesm/cesmdata/inputdata/ocn/mom/tx2_3v2 + ! "The directory in which input files are found." + ! NOTE: this needs to point to CESM input directory + ! current default is for NCAR super computers + +TRIPOLAR_N = True + ! "[Boolean] default = False + ! Use tripolar connectivity at the northern edge of the + ! domain. With TRIPOLAR_N, NIGLOBAL must be even." + +NIHALO = 4 + ! "default = 2 + ! The number of halo points on each side in the + ! x-direction. With STATIC_MEMORY_ this is set as NIHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NIHALO_ in MOM_memory.h (if defined) or 2." + +NJHALO = 4 + ! "default = 2 + ! The number of halo points on each side in the + ! y-direction. With STATIC_MEMORY_ this is set as NJHALO_ + ! in MOM_memory.h at compile time; without STATIC_MEMORY_ + ! the default is NJHALO_ in MOM_memory.h (if defined) or 2." + +NIGLOBAL = 540 + ! "The total number of thickness grid points in the + ! x-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time." + +NJGLOBAL = 480 + ! "The total number of thickness grid points in the + ! y-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in MOM_memory.h at compile time. + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. + ! The number of processors in the x-direction. With + ! STATIC_MEMORY_ this is set in MOM_memory.h at compile time. + ! The processor layout that was acutally used." + +NK = 75 + ! "[nondim] + ! The number of model layers." + +USE_LEGACY_DIABATIC_DRIVER = False + ! "[Boolean] default = True + ! If true, use the a legacy version of the diabatic subroutine. + ! This is temporary and is needed avoid change in answers." + +USE_REGRIDDING = True + ! "[Boolean] default = False + ! If True, use the ALE algorithm (regridding/remapping). + ! If False, use the layered isopycnal algorithm." + +THICKNESSDIFFUSE = True + ! "[Boolean] default = False + ! If true, interfaces or isopycnal surfaces are diffused, + ! depending on the value of FULL_THICKNESSDIFFUSE." + +THICKNESSDIFFUSE_FIRST = True + ! "[Boolean] default = False + ! If true, do thickness diffusion before dynamics. + ! This is only used if THICKNESSDIFFUSE is true." + +DT = 1800 + ! "[s] + ! The (baroclinic) dynamics time step. The time-step that + ! is actually used will be an integer fraction of the + ! forcing time-step (DT_FORCING in ocean-only mode or the + ! coupling timestep in coupled mode.)" + +DT_THERM = 3600.0 + ! "[s] default = 3600.0 + ! The thermodynamic and tracer advection time step. + ! Ideally DT_THERM should be an integer multiple of DT + ! and less than the forcing or coupling time-step. + ! By default DT_THERM is set to DT. + ! The minimum amount of time in seconds between + ! calculations of depth-space diagnostics. Making this + ! larger than DT_THERM reduces the performance penalty + ! of regridding to depth online." + +HFREEZE = 10.0 + ! "[m] default = -1.0 + ! If HFREEZE > 0, melt potential will be computed. The actual depth + ! over which melt potential is computed will be min(HFREEZE, OBLD), + ! where OBLD is the boundary layer depth. If HFREEZE <= 0 (default), + ! melt potential will not be computed." + +DTBT_RESET_PERIOD = 7200.0 + ! "[s] default = 7200.0 + ! The period between recalculations of DTBT (if DTBT <= 0). + ! If DTBT_RESET_PERIOD is negative, DTBT is set based + ! only on information available at initialization. If 0, + ! DTBT will be set every dynamics time step. The default + ! is set by DT_THERM. This is only used if SPLIT is true." + +FRAZIL = True + ! "[Boolean] default = False + ! If true, water freezes if it gets too cold, and the + ! the accumulated heat deficit is returned in the + ! surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. + ! If true, apply geothermal heating." + +MIN_SALINITY = 0.0 + ! "[PPT] default = 0.01 + ! The minimum value of salinity when BOUND_SALINITY=True. The default is 0.01 + ! for backward compatibility but ideally should be 0." + +BOUND_SALINITY = True + ! "[Boolean] default = False + ! If true, limit salinity to being positive. (The sea-ice + ! model may ask for more salt than is available and + ! drive the salinity negative otherwise.)" + +C_P = 3992.0 + ! "[J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a + ! constant. This is only used if ENABLE_THERMODYNAMICS is + ! true. The default value is from the TEOS-10 definition + ! of conservative temperature." + +USE_PSURF_IN_EOS = True + ! "[Boolean] default = True + ! If true, always include the surface pressure contributions in equation of + ! state calculations." + +CHECK_BAD_SURFACE_VALS = True + ! "[Boolean] default = False + ! If true, check the surface state for ridiculous values." + +SAVE_INITIAL_CONDS = True + ! "[Boolean] default = False + ! If true, write the initial conditions to a file given + ! by IC_OUTPUT_FILE." + +GRID_ROTATION_ANGLE_BUGS = False + ! "[Boolean] default = True + ! If true, use an older algorithm to calculate the sine and + ! cosines needed rotate between grid-oriented directions and + ! true north and east. Differences arise at the tripolar fold." + +DTFREEZE_DP = -7.75e-08 + ! "[deg C Pa-1] default = 0.0 + ! When TFREEZE_FORM=LINEAR, + ! this is the derivative of the freezing potential + ! temperature with pressure." + +USE_IDEAL_AGE_TRACER = True + ! "[Boolean] default = False + ! If true, use the ideal_age_example tracer package." + +USE_CFC_CAP = False + ! "[Boolean] default = False + ! If true, use the MOM_CFC_cap tracer package." + +CFC_BC_FILE = /glade/campaign/cesm/cesmdata/inputdata/ocn/mom/grid_indpt/cfc_atm_20230310.nc + ! "The file in which the CFC-11 and CFC-12 atm concentrations can be found (units + ! must be parts per trillion)." + +USE_MARBL_TRACERS = True + ! "[Boolean] default = False + ! If true, use the MARBL tracer package." + +MARBL_TRACERS_IC_FILE = ecosys_jan_IC_omip_latlon_1x1_180W_c231221.nc + ! "Name of file containing initial conditions + ! for the MARBL tracer package." + +MARBL_FESEDFLUX_FILE = fesedflux_total_reduce_oxic_tx2_3v2.c231205.nc + ! "Name of file containing iron sediment flux + ! forcing field for the MARBL tracer package." + +MARBL_FEVENTFLUX_FILE = feventflux_5gmol_tx2_3v2.c231205.nc + ! "Name of file containing iron sediment flux + ! forcing field for the MARBL tracer package." + +READ_RIV_FLUXES = True + ! "Use river fluxes provided by RIV_FLUX_FILE." + +RIV_FLUX_FILE = riv_nut.gnews_gnm.rJRA025_to_tx2_3v2_nnsm_e333r100_230415.20240202.nc + ! "Name of file containing river fluxes + ! (added to surface tracer flux in tracer_vertdiff for MARBL tracers)." + +CHL_FROM_FILE = False + ! "[Boolean] default = True + ! If true, read chlorophyll from a file. Otherwise MARBL will provide it." + +ATM_CO2_OPT = "constant" + ! "default comes from env_run.xml (OCN_CO2_TYPE) + ! Source of atmospheric CO2 concentration for MARBL. + ! valid values: constant, prognostic, diagnostic" + +ATM_CO2_CONST = 284.317 + ! "default comes from env_run.xml (CCSM_CO2_PPMV) + ! Atmospheric CO2 concentration for MARBL [ppm]." + +ATM_ALT_CO2_OPT = "constant" + ! "default comes from env_run.xml (OCN_CO2_TYPE) + ! Source of atmospheric CO2 concentration for MARBL. + ! valid values: constant, prognostic, diagnostic" + +ATM_ALT_CO2_CONST = 284.317 + ! "default comes from env_run.xml (CCSM_CO2_PPMV) + ! Alternate atmospheric CO2 concentration for MARBL [ppm]." + +USE_ICE_CATEGORIES = False + ! "[Boolean] default = False + ! If true, send multiple ice categories from the coupler to MARBL." + +REMAP_UV_USING_OLD_ALG = False + ! "[Boolean] default = True + ! If true, uses the old remapping-via-a-delta-z method for remapping u and v. If + ! false, uses the new method that remaps between grids described by an old and + ! new thickness." + +BOUNDARY_EXTRAPOLATION = True + ! "[Boolean] default = False + ! When defined, a proper high-order reconstruction + ! scheme is used within boundary cells rather + ! than PCM. E.g., if PPM is used for remapping, a + ! PPM reconstruction will also be used within + ! boundary cells." + +GRID_CONFIG = mosaic + ! "A character string that determines the method for + ! defining the horizontal grid. Current options are: + ! mosaic - read the grid from a mosaic (supergrid) + ! file set by GRID_FILE. + ! cartesian - use a (flat) Cartesian grid. + ! spherical - use a simple spherical grid. + ! mercator - use a Mercator spherical grid." + +GRID_FILE = ocean_hgrid_221123.nc + ! "Name of the file from which to read horizontal grid data." + +USE_TRIPOLAR_GEOLONB_BUG = False + ! "[Boolean] default = True + ! If true, use older code that incorrectly sets the longitude + ! in some points along the tripolar fold to be off by 360 degrees." + +TOPO_CONFIG = file + ! "This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with an vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. + ! benchmark - use the benchmark test case topography. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! DOME2D - use a shelf and slope configuration for the + ! DOME2D gravity current/overflow test case. + ! seamount - Gaussian bump for spontaneous motion test case. + ! USER - call a user modified routine." + +TOPO_FILE = ocean_topo_tx2_3v2_240501.nc + ! "default = 'topog.nc' + ! The file from which the bathymetry is read." + +MAXIMUM_DEPTH = 6000.0 + ! "[m] + ! The maximum depth of the ocean." + +MINIMUM_DEPTH = 9.5 + ! "[m] default = 0.0 + ! If MASKING_DEPTH is unspecified, then anything shallower than + ! MINIMUM_DEPTH is assumed to be land and all fluxes are masked out. + ! If MASKING_DEPTH is specified, then all depths shallower than + ! MINIMUM_DEPTH but depper than MASKING_DEPTH are rounded to + ! MINIMUM_DEPTH." + +MASKING_DEPTH = 0.0 + ! "[m] default = -9999.0 + ! The depth below which to mask points as land points, for which all + ! fluxes are zeroed out. MASKING_DEPTH is ignored if negative." + +REMAPPING_SCHEME = PPM_CW + ! "default = 'PLM' + ! This sets the reconstruction scheme used + ! for vertical remapping for all variables. + ! It can be one of the following schemes: + ! PCM (1st-order accurate) + ! PLM (2nd-order accurate) + ! PPM_H4 (3rd-order accurate) + ! PPM_IH4 (3rd-order accurate) + ! PQM_IH4IH3 (4th-order accurate) + ! PQM_IH6IH5 (5th-order accurate)" + +REMAP_VEL_CONSERVE_KE = False + ! "[Boolean] default = False + ! If true, a correction is applied to the baroclinic component of velocity after + ! remapping so that total KE is conserved. KE may not be conserved when + ! (CS%BBL_h_vel_mask > 0.0) .and. (CS%h_vel_mask > 0.0)" + +INIT_LAYERS_FROM_Z_FILE = True + ! "[Boolean] default = False + ! If true, intialize the layer thicknesses, temperatures, + ! and salnities from a Z-space file on a latitude- + ! longitude grid." + +TEMP_SALT_Z_INIT_FILE = woa18_04_initial_conditions.nc + ! "default = 'temp_salt_z.nc' + ! The name of the z-space input file used to initialize + ! the layer thicknesses, temperatures and salinities." + +Z_INIT_FILE_PTEMP_VAR = theta0 + ! "default = 'ptemp' + ! The name of the potential temperature variable in + ! TEMP_SALT_Z_INIT_FILE." + +Z_INIT_FILE_SALT_VAR = s_an + ! "default = 'salt' + ! The name of the salinity variable in + ! TEMP_SALT_Z_INIT_FILE." + +Z_INIT_REMAP_OLD_ALG = False + ! "[Boolean] default = True + ! If false, uses the preferred remapping algorithm for initialization. If true, + ! use an older, less robust algorithm for remapping." + +Z_INIT_REMAP_GENERAL = True + ! "[Boolean] default = False + ! If false, only initializes to z* coordinates. If true, allows initialization + ! directly to general coordinates." + +USE_VARIABLE_MIXING = True + ! "[Boolean] default = False + ! If true, the variable mixing code will be called. This + ! allows diagnostics to be created even if the scheme is + ! not used. If KHTR_SLOPE_CFF>0 or KhTh_Slope_Cff>0, + ! this is set to true regardless of what is in the + ! parameter file." + +RESOLN_SCALED_KH = True + ! "[Boolean] default = False + ! If true, the Laplacian lateral viscosity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved." + +KHTH_SLOPE_CFF = 0.01 + ! "[nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula for the interface depth + ! diffusivity" + +DEPTH_SCALED_KHTH = True + ! "[Boolean] default = False + ! If true, KHTH is scaled away when the depth is shallower + ! than a reference depth: KHTH = MIN(1,H/H0)**N * KHTH, + ! where H0 is a reference depth, controlled via + ! DEPTH_SCALED_KHTH_H0, and theexponent (N) is + ! controlled via DEPTH_SCALED_KHTH_EXP." + +DEPTH_SCALED_KHTH_H0 = 250.0 + ! "[m] default = 1000.0 + ! The depth above which KHTH is scaled away." + +KHTH_USE_EBT_STRUCT = True + ! "[Boolean] default = False + ! If true, uses the equivalent barotropic structure + ! as the vertical structure of thickness diffusivity." + +RESOLN_SCALED_KHTH = True + ! "[Boolean] default = False + ! If true, the interface depth diffusivity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved." + +RESOLN_SCALED_KHTR = True + ! "[Boolean] default = False + ! If true, the epipycnal tracer diffusivity is scaled away when the first + ! baroclinic deformation radius is well resolved." + +USE_GM_WORK_BUG = False + ! "[Boolean] default = True + ! If true, compute the top-layer work tendency on the u-grid with the incorrect + ! sign, for legacy reproducibility." + +USE_STORED_SLOPES = True + ! "[Boolean] default = False + ! If true, the isopycnal slopes are calculated once and + ! stored for re-use. This uses more memory but avoids calling + ! the equation of state more times than should be necessary." + +USE_STANLEY_ISO = True + ! "[Boolean] default = False + ! If true, turn on Stanley SGS T variance parameterization in isopycnal slope code." + +ETA_TOLERANCE = 1e-06 + ! "[m] default = 3.15E-09 + ! The tolerance for the differences between the + ! barotropic and baroclinic estimates of the sea surface + ! height due to the fluxes through each face. The total + ! tolerance for SSH is 4 times this value. The default + ! is 0.5*NK*ANGSTROM, and this should not be set less x + ! than about 10^-15*MAXIMUM_DEPTH." + +USE_NEUTRAL_DIFFUSION = True + ! "[Boolean] default = False + ! If true, enables the neutral diffusion module." + +NDIFF_INTERIOR_ONLY = True + ! "[Boolean] default = False + ! If true, only applies neutral diffusion in the ocean interior. That is, the + ! algorithm will exclude the surface and bottomboundary layers." + +NDIFF_TAPERING = True + ! "[Boolean] default = False + ! If true, neutral diffusion linearly decays to zero within a transition + ! zone defined using boundary layer depths. Only applicable when + ! NDIFF_INTERIOR_ONLY = True." + +USE_HORIZONTAL_BOUNDARY_DIFFUSION = True + ! "[Boolean] default = False + ! If true, enables the horizontal boundary tracer's diffusion module." + +HBD_LINEAR_TRANSITION = True + ! "[Boolean] default = False + ! If True, apply a linear transition at the base/top of the boundary. + ! The flux will be fully applied at k=k_min and zero at k=k_max." + +SIMPLE_TKE_TO_KD = True + ! "[Boolean] default = False + ! If true, uses a simple estimate of Kd/TKE that will + ! work for arbitrary vertical coordinates. If false, + ! calculates Kd/TKE and bounds based on exact + ! energetics/nfor an isopycnal layer-formulation." + +REGRIDDING_COORDINATE_MODE = HYCOM1 + ! "default = 'LAYER' + ! Coordinate mode for vertical regridding. + ! Choose among the following possibilities: + ! LAYER - Isopycnal or stacked shallow water layers + ! ZSTAR, Z* - stetched geopotential z* + ! SIGMA_SHELF_ZSTAR - stetched geopotential z* ignoring shelf + ! SIGMA - terrain following coordinates + ! RHO - continuous isopycnal + ! HYCOM1 - HyCOM-like hybrid coordinate + ! SLIGHT - stretched coordinates above continuous isopycnal + ! ADAPTIVE - optimize for smooth neutral density surfaces" + +ALE_COORDINATE_CONFIG = "HYBRID:hybrid_75layer_zstar2.50m-2020-11-23.nc,sigma2,dz" + ! "default = 'UNIFORM' + ! Determines how to specify the coordinate + ! resolution. Valid options are: + ! PARAM - use the vector-parameter ALE_RESOLUTION + ! UNIFORM[:N] - uniformly distributed + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,dz + ! or FILE:lev.nc,interfaces=zw + ! WOA09[:N] - the WOA09 vertical grid (approximately) + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! HYBRID:string - read from a file. The string specifies + ! the filename and two variable names, separated + ! by a comma or space, for sigma-2 and dz. e.g. + ! HYBRID:vgrid.nc,sigma2,dz" + +REGRID_COMPRESSIBILITY_FRACTION = 0.0 + ! "[not defined] default = 0.0 + ! When interpolating potential density profiles we can add + ! some artificial compressibility solely to make homogenous + ! regions appear stratified." + +MAXIMUM_INT_DEPTH_CONFIG = "FNC1:5,8000.0,1.0,.01" + ! "default = 'NONE' + ! Determines how to specify the maximum interface depths. + ! Valid options are: + ! NONE - there are no maximum interface depths + ! PARAM - use the vector-parameter MAXIMUM_INTERFACE_DEPTHS + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,Z + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! The list of maximum depths for each interface." + +MAX_LAYER_THICKNESS_CONFIG = '"FILE:/glade/campaign/cesm/cesmdata/inputdata/ocn/mom/grid_indpt/dz_max_90th_quantile.nc,dz"' + + ! "default = 'NONE' + ! Determines how to specify the maximum layer thicknesses. + ! Valid options are: + ! NONE - there are no maximum layer thicknesses + ! PARAM - use the vector-parameter MAX_LAYER_THICKNESS + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,Z + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! The list of maximum thickness for each layer." + +BOUND_CORIOLIS = True + ! "[Boolean] default = False + ! If true, the Coriolis terms at u-points are bounded by + ! the four estimates of (f+rv)v from the four neighboring + ! v-points, and similarly at v-points. This option would + ! have no effect on the SADOURNY Coriolis scheme if it + ! were possible to use centered difference thickness fluxes." + +MASS_WEIGHT_IN_PRESSURE_GRADIENT = True + ! "[Boolean] default = False + ! If true, use mass weighting when interpolation T/S for + ! top/bottom integrals in AFV pressure gradient calculation." + +USE_STANLEY_PGF = True + ! "[Boolean] default = False + ! If true, turn on Stanley SGS T variance parameterization in PGF code." + +LAPLACIAN = True + ! "[Boolean] default = False + ! If true, use a Laplacian horizontal viscosity." + +KH_VEL_SCALE = 0.0 + ! "[m s-1] default = 0.0 + ! The velocity scale which is multiplied by the grid + ! spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky viscosity and KH." + +KH_SIN_LAT = 0.0 + ! "[m2 s-1] default = 0.0 + ! The amplitude of a latidutinally-dependent background + ! viscosity of the form KH_SIN_LAT*(SIN(LAT)**KH_PWR_OF_SINE)." + +BIHARMONIC = True + ! "[Boolean] default = True + ! If true, use a biharmonic horizontal viscosity. + ! BIHARMONIC may be used with LAPLACIAN." + +AH = 1000000000000.0 + ! "[m4 s-1] default = 0.0 + ! The background biharmonic horizontal viscosity." + +LEITH_AH = True + ! "[Boolean] default = False + ! If true, use a biharmonic Leith nonlinear eddy viscosity." + +LEITH_BI_CONST = 128.0 + ! "[nondim] default = 0.0 + ! The nondimensional biharmonic Leith constant, typical values are thus far + ! undetermined." + +USE_LAND_MASK_FOR_HVISC = True + ! "[Boolean] default = False + ! If true, use Use the land mask for the computation of thicknesses + ! at velocity locations. This eliminates the dependence on arbitrary + ! values over land or outside of the domain. Default is False in order to + ! maintain answers with legacy experiments but should be changed to True + ! for new experiments." + +HMIX_FIXED = 0.5 + ! "[m] + ! The prescribed depth over which the near-surface + ! viscosity and diffusivity are elevated when the bulk + ! mixed layer is not used." + +CHANNEL_DRAG = True + ! "[Boolean] default = False + ! If true, the bottom drag is exerted directly on each + ! layer proportional to the fraction of the bottom it + ! overlies." + +HBBL = 10.0 + ! "[m] + ! The thickness of a bottom boundary layer with a viscosity of KVBBL if + ! BOTTOMDRAGLAW is not defined, or the thickness over which near-bottom + ! velocities are averaged for the drag law if BOTTOMDRAGLAW is defined but + ! LINEAR_DRAG is not." + +PRANDTL_TURB = 1.0 + ! "[nondim] default = 0.0 + ! The turbulent Prandtl number applied to shear + ! instability." + +U_TRUNC_FILE = U_velocity_truncations + ! "default = '' + ! The absolute path to a file into which the accelerations + ! leading to zonal velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed." + +V_TRUNC_FILE = V_velocity_truncations + ! "default = '' + ! The absolute path to a file into which the accelerations + ! leading to meridional velocity truncations are written. + ! Undefine this for efficiency if this diagnostic is not + ! needed." + +MAXVEL = 6.0 + ! "[m s-1] default = 3.0E+08 + ! The maximum velocity allowed before the velocity + ! components are truncated." + +CFL_TRUNCATE_RAMP_TIME = 7200.0 + ! "[s] default = 0.0 + ! The time over which the CFL trunction value is ramped + ! up at the beginning of the run." + +Z_INIT_ALE_REMAPPING = True + ! "[Boolean] default = False + ! If True, then remap straight to model coordinate from file." + +NUM_DIAG_COORDS = 2 + ! " The number of diagnostic vertical coordinates to use. + ! For each coordinate, an entry in DIAG_COORDS must be provided." + +DIAG_COORDS = "z Z ZSTAR", "rho2 RHO2 RHO" + ! "A list of string tuples associating diag_table modules to + ! a coordinate definition used for diagnostics. Each string + ! is of the form MODULE_SUFFIX,PARAMETER_SUFFIX,COORDINATE_NAME." + +DIAG_COORD_DEF_RHO2 = "FILE:ocean_rho2_190917.nc,interfaces=rho2" + ! " default = 'WOA09' + ! Determines how to specify the coordinate resolution. Valid options are: + ! PARAM - use the vector-parameter DIAG_COORD_RES_RHO2 + ! UNIFORM[:N] - uniformly distributed + ! FILE:string - read from a file. The string specifies + ! the filename and variable name, separated + ! by a comma or space, e.g. FILE:lev.nc,dz + ! or FILE:lev.nc,interfaces=zw + ! WOA09[:N] - the WOA09 vertical grid (approximately) + ! FNC1:string - FNC1:dz_min,H_total,power,precision + ! HYBRID:string - read from a file. The string specifies + ! the filename and two variable names, separated + ! by a comma or space, for sigma-2 and dz. e.g. + ! HYBRID:vgrid.nc,sigma2,dz" + +INTERPOLATE_RES_FN = False + ! "[Boolean] default = True + ! If true, interpolate the resolution function to the + ! velocity points from the thickness points; otherwise + ! interpolate the wave speed and calculate the resolution + ! function independently at each point." + +GILL_EQUATORIAL_LD = True + ! "[Boolean] default = False + ! If true, uses Gill's definition of the baroclinic + ! equatorial deformation radius, otherwise, if false, use + ! Pedlosky's definition. These definitions differ by a factor + ! of 2 infront of the beta term in the denominator. Gill'sis the more appropriate definition." + +DRAG_BG_VEL = 0.1 + ! "[m s-1] default = 0.0 + ! DRAG_BG_VEL is either the assumed bottom velocity (with + ! LINEAR_DRAG) or an unresolved velocity that is + ! combined with the resolved velocity to estimate the + ! velocity magnitude. DRAG_BG_VEL is only used when + ! BOTTOMDRAGLAW is defined." + +BBL_USE_EOS = True + ! "[Boolean] default = False + ! If true, use the equation of state in determining the + ! properties of the bottom boundary layer. Otherwise use + ! the layer target potential densities." + +BBL_THICK_MIN = 0.1 + ! "[m] default = 0.0 + ! The minimum bottom boundary layer thickness that can be + ! used with BOTTOMDRAGLAW. This might be + ! Kv / (cdrag * drag_bg_vel) to give Kv as the minimum + ! near-bottom viscosity." + +BOUND_BT_CORRECTION = True + ! "[Boolean] default = False + ! If true, the corrective pseudo mass-fluxes into the + ! barotropic solver are limited to values that require + ! less than 0.1*MAXVEL to be accommodated. + ! The barotropic x-halo size that is actually used. + ! The barotropic y-halo size that is actually used." + +BT_PROJECT_VELOCITY = True + ! "[Boolean] default = False + ! If true, step the barotropic velocity first and project + ! out the velocity tendancy by 1+BEBT when calculating the + ! transport. The default (false) is to use a predictor + ! continuity step to find the pressure field, and then + ! to do a corrector continuity step using a weighted + ! average of the old and new velocities, with weights + ! of (1-BEBT) and BEBT." + +BT_THICK_SCHEME = FROM_BT_CONT + ! "default = 'HYBRID' + ! A string describing the scheme that is used to set the + ! open face areas used for barotropic transport and the + ! relative weights of the accelerations. Valid values are: + ! ARITHMETIC - arithmetic mean layer thicknesses + ! HARMONIC - harmonic mean layer thicknesses + ! HYBRID (the default) - use arithmetic means for + ! layers above the shallowest bottom, the harmonic + ! mean for layers below, and a weighted average for + ! layers that straddle that depth + ! FROM_BT_CONT - use the average thicknesses kept + ! in the h_u and h_v fields of the BT_cont_type" + +BEBT = 0.2 + ! "[nondim] default = 0.1 + ! BEBT determines whether the barotropic time stepping + ! uses the forward-backward time-stepping scheme or a + ! backward Euler scheme. BEBT is valid in the range from + ! 0 (for a forward-backward treatment of nonrotating + ! gravity waves) to 1 (for a backward Euler treatment). + ! In practice, BEBT must be greater than about 0.05." + +DTBT = -0.95 + ! "[s or nondim] default = -0.98 + ! The barotropic time step, in s. DTBT is only used with + ! the split explicit time stepping. To set the time step + ! automatically based the maximum stable value use 0, or + ! a negative value gives the fraction of the stable value. + ! Setting DTBT to 0 is the same as setting it to -0.98. + ! The value of DTBT that will actually be used is an + ! integer fraction of DT, rounding down." + +DEPTH_MIN_DYN_PSURF = 1.0 + ! "[m] default = 1.0E-06 + ! The minimum depth to use in limiting the size of the + ! dynamic surface pressure for stability, if + ! DYNAMIC_SURFACE_PRESSURE is true." + +KHTH = 0.0 + ! "[m2 s-1] default = 0.0 + ! The background horizontal thickness diffusivity." + +KHTH_MIN = 50.0 + ! "[m2 s-1] default = 0.0 + ! The minimum horizontal thickness diffusivity" + +FULL_DEPTH_KHTH_MIN = True + ! "[Boolean] default = False + ! KHTH_MIN is enforced throughout the whole water column. Otherwise, + ! KHTH_MIN is only enforced at the surface. This parameter is only available + ! when KHTH_USE_EBT_STRUCT=True and KHTH_MIN>0." + +STOCH_EOS = True + ! [Boolean] default = False If true, stochastic perturbations are applied to the EOS in the PGF. + +STANLEY_COEFF = 0.5 + ! [nondim] default = -1.0 Coefficient correlating the temperature gradient and SGS T variance. + +USE_KH_IN_MEKE = True + ! "[Boolean] default = False + ! If true, uses the thickness diffusivity calculated here to diffuse MEKE." + +KHTH_USE_FGNV_STREAMFUNCTION = True + ! "[Boolean] default = False + ! If true, use the streamfunction formulation of + ! Ferrari et al., 2010, which effectively emphasizes + ! graver vertical modes by smoothing in the vertical." + +FGNV_C_MIN = 0.01 + ! "[m s-1] default = 0.0 + ! A minium wave speed used in the Ferrari et al., 2010, + ! streamfunction formulation." + +USE_STANLEY_GM = True + ! "[Boolean] default = False + ! If true, turn on Stanley SGS T variance parameterization in GM code." + +MIXEDLAYER_RESTRAT = True + ! "[Boolean] default = False + ! If true, a density-gradient dependent re-stratifying + ! flow is imposed in the mixed layer. + ! This is only used if BULKMIXEDLAYER is true." + +FOX_KEMPER_ML_RESTRAT_COEF = 1.0 + ! "[nondim] default = 0.0 + ! A nondimensional coefficient that is proportional to + ! the ratio of the deformation radius to the dominant + ! lengthscale of the submesoscale mixed layer + ! instabilities, times the minimum of the ratio of the + ! mesoscale eddy kinetic energy to the large-scale + ! geostrophic kinetic energy or 1 plus the square of the + ! grid spacing over the deformation radius, as detailed + ! by Fox-Kemper et al. (2010) + ! The file that specifies the vertical grid for + ! depth-space diagnostics, or blank to disable + ! depth-space output. + ! The number of depth-space levels. This is determined + ! from the size of the variable zw in the output grid file." + +MLE_FRONT_LENGTH = 1000.0 + ! "[m] default = 0.0 + ! If non-zero, is the frontal-length scale used to calculate the + ! upscaling of buoyancy gradients that is otherwise represented + ! by the parameter FOX_KEMPER_ML_RESTRAT_COEF. If MLE_FRONT_LENGTH is + ! non-zero, it is recommended to set FOX_KEMPER_ML_RESTRAT_COEF=1." + +MLE_MLD_DECAY_TIME = 345600.0 + ! "[s] default = 0.0 + ! The time-scale for a running-mean filter applied to the mixed-layer + ! depth used in the MLE restratification parameterization. When + ! the MLD deepens below the current running-mean the running-mean + ! is instantaneously set to the current MLD." + +USE_STANLEY_ML = True + ! "[Boolean] default = False + ! If true, turn on Stanley SGS T variance parameterization in ML restrat code." + +USE_CVMix_CONVECTION = True + ! "[Boolean] default = False + ! If true, turns on the enhanced mixing due to convection + ! via CVMix. This scheme increases diapycnal diffs./viscs. + ! at statically unstable interfaces. Relevant parameters are + ! contained in the CVMix_CONVECTION% parameter block." + +BBL_MIXING_AS_MAX = False + ! "[Boolean] default = True + ! If true, take the maximum of the diffusivity from the + ! BBL mixing and the other diffusivities. Otherwise, + ! diffusiviy from the BBL_mixing is simply added." + +USE_LOTW_BBL_DIFFUSIVITY = True + ! "[Boolean] default = False + ! If true, uses a simple, imprecise but non-coordinate dependent, model + ! of BBL mixing diffusivity based on Law of the Wall. Otherwise, uses + ! the original BBL scheme." + +KD_MAX = 0.1 + ! "[m2 s-1] default = -1.0 + ! The maximum permitted increment for the diapycnal + ! diffusivity from TKE-based parameterizations, or a + ! negative value for no limit." + +HORIZ_VARYING_BACKGROUND = True + ! "[Boolean] default = False + ! If true, apply vertically uniform, latitude-dependent background diffusivity, + ! as described in Danabasoglu et al., 2012." + +KD = 0.0 + ! "[m2 s-1] + ! The background diapycnal diffusivity of density in the + ! interior. Zero or the molecular value, ~1e-7 m2 s-1, + ! may be used." + +KDML = 0.0 + ! "[m2 s-1] + ! If BULKMIXEDLAYER is false, KDML is the elevated diapycnal diffusivity in the + ! topmost HMIX of fluid. KDML is only used if BULKMIXEDLAYER is false." + +PRANDTL_BKGND = 5.0 + ! "[nondim] default = 1.0 + ! Turbulent Prandtl number used to convert vertical background diffusivities + ! into viscosities." + +KD_MIN = 2e-07 + ! "[m2 s-1] default = 2.0E-07 + ! The minimum diapycnal diffusivity. + ! If true, use an internal tidal dissipation scheme to + ! drive diapycnal mixing, along the lines of St. Laurent + ! et al. (2002) and Simmons et al. (2004)." + +USE_KPP = True + ! "[Boolean] default = False + ! If true, turns on the [CVMix] KPP scheme of Large et al., 1994, + ! to calculate diffusivities and non-local transport in the OBL." + +USE_CVMix_TIDAL = True + ! "[Boolean] default = False + ! If true, turns on tidal mixing via CVMix" + +INT_TIDE_DISSIPATION = True + ! "[Boolean] default = False + ! If true, use an internal tidal dissipation scheme to + ! drive diapycnal mixing, along the lines of St. Laurent + ! et al. (2002) and Simmons et al. (2004)." + +TIDAL_ENERGY_FILE = energy_new_tx2_3_conserve_230415_cdf5.nc + ! "The path to the file containing tidal energy + ! dissipation. Used with CVMix tidal mixing schemes." + +TIDAL_ENERGY_TYPE = Jayne + ! "The type of input tidal energy flux dataset. Valid values are Jayne + ! ER03" + +USE_LMD94 = True + ! "[Boolean] default = False + ! If true, use the Large-McWilliams-Doney (JGR 1994) + ! shear mixing parameterization." + +N_SMOOTH_RI = 1 + ! "default = 0 + ! If > 0, vertically smooth the Richardson number by applying a 1-2-1 filter + ! N_SMOOTH_RI times." + +USE_CVMIX_DDIFF = True + ! "[Boolean] default = False + ! If true, turns on double diffusive processes via CVMix. + ! Note that double diffusive processes on viscosity are ignored + ! in CVMix, see http://cvmix.github.io/ for justification." + +MAX_ENT_IT = 20 + ! "default = 5 + ! The maximum number of iterations that may be used to + ! calculate the interior diapycnal entrainment." + +TOLERANCE_ENT = 1e-05 + ! "[m] default = 2.683281572999748E-05 + ! The tolerance with which to solve for entrainment values." + +HMIX_MIN = 2.0 + ! "[m] default = 0.0 + ! The minimum mixed layer depth if the mixed layer depth + ! is determined dynamically." + +PRESSURE_DEPENDENT_FRAZIL = True + ! "[Boolean] default = False + ! If true, use a pressure dependent freezing temperature + ! when making frazil. The default is false, which will be + ! faster but is inappropriate with ice-shelf cavities." + +VAR_PEN_SW = True + ! "[Boolean] default = False + ! If true, use one of the CHL_A schemes specified by + ! OPACITY_SCHEME to determine the e-folding depth of + ! incoming short wave radiation." + +CHL_FILE = seawifs-clim-1997-2010-tx2_3v2.230416.nc + ! "CHL_FILE is the file containing chl_a concentrations in the variable CHL_A." + +PEN_SW_NBANDS = 2 + ! "default = 1 + ! The number of bands of penetrating shortwave radiation." + +OPACITY_SCHEME = OHLMANN_03 + ! "default = 'MANIZZA_05' + ! This character string specifies how chlorophyll concentrations are translated + ! into opacities. Currently valid options include: + ! MANIZZA_05 - Use Manizza et al., GRL, 2005. + ! MOREL_88 - Use Morel, JGR, 1988. + ! OHLMANN_03 - Use Ohlmann, J Clim, 2003." + +TRACER_ADVECTION_SCHEME = "PPM:H3" + ! "default = 'PLM' + ! The horizontal transport scheme for tracers: + ! PLM - Piecewise Linear Method + ! PPM:H3 - Piecewise Parabolic Method (Huyhn 3rd order)" + +KHTR_USE_EBT_STRUCT = True + ! "[Boolean] default = False + ! If true, uses the equivalent barotropic structure as the vertical structure of + ! the tracer diffusivity." + +KHTR_MIN = 50.0 + ! "[m2 s-1] default = 0.0 + ! The minimum along-isopycnal tracer diffusivity." + +FULL_DEPTH_KHTR_MIN = True + ! "[Boolean] default = False + ! KHTR_MIN is enforced throughout the whole water column. Otherwise, + ! KHTR_MIN is only enforced at the surface. This parameter is only available + ! when KHTR_USE_EBT_STRUCT=True and KHTR_MIN>0." + +DEBUG = False + ! "If true, write out verbose debugging data." + +CHECK_DIFFUSIVE_CFL = True + ! "[Boolean] default = False + ! If true, use enough iterations the diffusion to ensure + ! that the diffusive equivalent of the CFL limit is not + ! violated. If false, always use the greater of 1 or + ! MAX_TR_DIFFUSION_CFL iteration." + +MAX_TR_DIFFUSION_CFL = 2.0 + ! "[nondim] default = -1.0 + ! If positive, locally limit the along-isopycnal tracer + ! diffusivity to keep the diffusive CFL locally at or + ! below this value. The number of diffusive iterations + ! is often this value or the next greater integer." + +MAXTRUNC = 0 + ! "[truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very + ! large value if the velocity is truncated more than + ! MAXTRUNC times between energy saves. Set MAXTRUNC to 0 + ! to stop if there is any truncation of velocities." + +OCEAN_SURFACE_STAGGER = A + ! "default = 'C' + ! A case-insensitive character string to indicate the + ! staggering of the surface velocity field that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'." + +RESTORE_SALINITY = True + ! "[Boolean] default = False + ! If true, the coupled driver will add a globally-balanced + ! fresh-water flux that drives sea-surface salinity + ! toward specified values." + +ENTHALPY_FROM_COUPLER = True + ! "[Boolean] default = False + ! If True, the heat (enthalpy) associated with mass entering/leaving + ! the ocean is provided via coupler." + +FLUXCONST = 0.1667 + ! "[m day-1] + ! The constant that relates the restoring surface fluxes + ! to the relative surface anomalies (akin to a piston + ! velocity). Note the non-MKS units." + +SALT_RESTORE_FILE = state_restore_tx2_3_20230416.nc + ! "default = 'salt_restore.nc' + ! A file in which to find the surface salinity to use for restoring." + +ADJUST_NET_FRESH_WATER_TO_ZERO = True + ! "[Boolean] default = False + ! If true, adjusts the net fresh-water forcing seen + ! by the ocean (including restoring) to zero." + +MAX_DELTA_SRESTORE = 5.0 + ! "[PSU or g kg-1] default = 999.0 + ! The maximum salinity difference used in restoring terms." + +SRESTORE_AS_SFLUX = True + ! "[Boolean] default = False + ! If true, the restoring of salinity is applied as a salt + ! flux instead of as a freshwater flux." + +GUST_CONST = 0.02 + ! "[Pa] default = 0.02 + ! The background gustiness in the winds." + +FIX_USTAR_GUSTLESS_BUG = True + ! "[Boolean] default = False + ! If true correct a bug in the time-averaging of the gustless wind + ! friction velocity." + +RESTART_CONTROL = 3 + ! "default = 1 + ! An integer whose bits encode which restart files are + ! written. Add 2 (bit 1) for a time-stamped file, and odd + ! (bit 0) for a non-time-stamped file. A non-time-stamped + ! restart file is saved at the end of the run segment + ! for any non-negative value." + +ENERGYSAVEDAYS = 1.0 + ! "[days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the + ! energies of the run and other globally summed diagnostics." + +USE_MEKE = True + ! "[Boolean] default = False + ! If true, turns on the MEKE scheme which calculates + ! a sub-grid mesoscale eddy kinetic energy budget." + +MEKE_GMCOEFF = 1.0 + ! "[nondim] default = -1.0 + ! The efficiency of the conversion of potential energy + ! into MEKE by the thickness mixing parameterization. + ! If MEKE_GMCOEFF is negative, this conversion is not + ! used or calculated." + +MEKE_KHMEKE_FAC = 0.75 + ! "[nondim] default = 0.0 + ! A factor that maps MEKE%Kh to Kh for MEKE itself." + +MEKE_VISCOSITY_COEFF_KU = 0.0 + ! "[nondim] default = 0.0 + ! If non-zero, is the scaling coefficient in the expression forviscosity used to + ! parameterize harmonic lateral momentum mixing byunresolved eddies represented + ! by MEKE. Can be negative torepresent backscatter from the unresolved eddies." + +MEKE_MIN_LSCALE = True + ! "[Boolean] default = False + ! If true, use a strict minimum of provided length scales rather than harmonic + ! mean." + +MEKE_ALPHA_RHINES = 1.0 + ! "[nondim] default = 0.05 + ! If positive, is a coefficient weighting the Rhines scale + ! in the expression for mixing length used in MEKE-derived diffusiviity." + +MEKE_ALPHA_EADY = 1.0 + ! "[nondim] default = 0.05 + ! If positive, is a coefficient weighting the Eady length scale + ! in the expression for mixing length used in MEKE-derived diffusiviity." + +MEKE_ALPHA_DEFORM = 1.0 + ! "[nondim] default = 0.0 + ! If positive, is a coefficient weighting the deformation scale in the + ! expression for mixing length used in MEKE-derived diffusivity." + +MEKE_ALPHA_FRICT = 1.0 + ! "[nondim] default = 0.0 + ! If positive, is a coefficient weighting the frictional arrest scale in the + ! expression for mixing length used in MEKE-derived diffusivity." + +MEKE_ALPHA_GRID = 1.0 + ! "[nondim] default = 0.0 + ! If positive, is a coefficient weighting the grid-spacing as a scale in the + ! expression for mixing length used in MEKE-derived diffusivity." + +MEKE_FRCOEFF = 0.3 + ! "[nondim] default = -1.0 + ! If positive, is a coefficient weighting the grid-spacing as a scale in the + ! expression for mixing length used in MEKE-derived diffusivity." + +MEKE_POSITIVE = True + ! "[Boolean] default = False + ! If true, it guarantees that MEKE will always be >= 0." + +USE_SIMPLER_EADY_GROWTH_RATE = True + ! "[Boolean] default = False + ! If true, use a simpler method to calculate the Eady growth rate that avoids + ! division by layer thickness. Recommended." + +KH_RES_SCALE_COEF = 0.9 + ! "[nondim] default = 1.0 + ! A coefficient that determines how KhTh is scaled away if RESOLN_SCALED_... is + ! true, as F = 1 / (1 + (KH_RES_SCALE_COEF*Rd/dx)^KH_RES_FN_POWER)." + +KH_RES_FN_POWER = 6 + ! "[nondim] default = 2 + ! The power of dx/Ld in the Kh resolution function. Any positive integer may be + ! used, although even integers are more efficient to calculate. Setting this + ! greater than 100 results in a step-function being used." + +VISC_RES_SCALE_COEF = 0.4 + ! "[nondim] default = 1.0 + ! A coefficient that determines how Kh is scaled away if RESOLN_SCALED_... is + ! true, as F = 1 / (1 + (KH_RES_SCALE_COEF*Rd/dx)^KH_RES_FN_POWER). This + ! function affects lateral viscosity, Kh, and not KhTh." + +MEKE_GEOMETRIC = True + ! "[Boolean] default = False + ! If MEKE_GEOMETRIC is true, uses the GM coefficient formulation from the + ! GEOMETRIC framework (Marshall et al., 2012)." + +MEKE_GEOMETRIC_ALPHA = 0.09 + ! "[nondim] default = 0.05 + ! The nondimensional coefficient governing the efficiency of the GEOMETRIC + ! thickness diffusion." + +MEKE_KHTH_FAC = 1.0 + ! "[nondim] default = 0.0 + ! A factor that maps MEKE%Kh to KhTh." + +MEKE_KHTR_FAC = 1.0 + ! "[nondim] default = 0.0 + ! A factor that maps MEKE%Kh to KhTr." + +MEKE_CB = 100.0 + ! "[nondim] default = 25.0 + ! A coefficient in the expression for the ratio of bottom projected eddy energy + ! and mean column energy (see Jansen et al. 2015)." + +MEKE_CDRAG = 0.0025 + ! "[nondim] default = 0.003 + ! Drag coefficient relating the magnitude of the velocity field to the bottom + ! stress in MEKE." + +MEKE_MIN_GAMMA2 = 1e-05 + ! "[nondim] default = 1.0E-04 + ! The minimum allowed value of gamma_b^2." + +MEKE_EQUILIBRIUM_ALT = True + ! "[Boolean] default = False + ! If true, use an alternative formula for computing the (equilibrium)initial + ! value of MEKE." + +MEKE_VISC_DRAG = False + ! "[Boolean] default = True + ! If true, use the vertvisc_type to calculate the bottom drag acting on MEKE." + +MEKE_EQUILIBRIUM_RESTORING = False + ! "[Boolean] default = False + ! If true, restore MEKE back to its equilibrium value, which is calculated + ! at each time step." + +MEKE_RESTORING_TIMESCALE = 10000000.0 + ! "[s] default = 1.0E+06 + ! The timescale used to nudge MEKE toward its equilibrium value." + +MEKE_ADVECTION_FACTOR = 1.0 + ! "[nondim] default = 0.0 + ! A scale factor in front of advection of eddy energy. Zero turns advection off. + ! Using unity would be normal but other values could accommodate a mismatch + ! between the advecting barotropic flow and the vertical structure of MEKE." + +CHANNEL_CONFIG = list + ! "default = 'none' + ! A parameter that determines which set of channels are + ! restricted to specific widths. Options are: + ! none - All channels have the grid width. + ! global_1deg - Sets 16 specific channels appropriate + ! for a 1-degree model, as used in CM2G. + ! list - Read the channel locations and widths from a + ! text file, like MOM_channel_list in the MOM_SIS + ! test case. + ! file - Read open face widths everywhere from a + ! NetCDF file on the model grid." + +CHANNEL_LIST_FILE = MOM_channels_global_tx2_3v2_240501 + ! "default = MOM_channel_list + ! The file from which the list of narrowed channels is read." + +KAPPA_SHEAR_ITER_BUG = False + ! [Boolean] default = True If true, use an older, dimensionally inconsistent estimate of the derivative of diffusivity with energy in the Newton's method iteration. The bug causes undercorrections when dz > 1 m. + +KAPPA_SHEAR_ALL_LAYER_TKE_BUG = False + ! [Boolean] default = True If true, report back the latest estimate of TKE instead of the time average TKE when there is mass in all layers. Otherwise always report the time averaged TKE, as is currently done when there are some massless layers. + +BAD_VAL_SSS_MAX = 75.0 + ! "default = 45.0 + ! The value of SSS above which a bad value message is triggered, if + ! CHECK_BAD_SURFACE_VALS is true." + +BAD_VAL_SST_MIN = -3.0 + ! "default = -2.1 + ! The value of SST below which a bad value message is triggered, if + ! CHECK_BAD_SURFACE_VALS is true." + +DEFAULT_ANSWER_DATE = 99991231 + ! "[Boolean] default = True + ! This sets the default value for the various parameters." + +DO_GEOTHERMAL = True + ! "[Boolean] default = False + ! If true, apply geothermal heating." + +IC_OUTPUT_FILE = 'MOM_IC' + ! "default = 'MOM_IC' + ! The file into which to write the initial conditions." + +HYCOM1_ONLY_IMPROVES = True + ! "[Boolean] default = False + ! When regridding, an interface is only moved if this improves the fit to the + ! target density." + +KV = 0.0 + ! "[m2 s-1] + ! kinematic viscosity in the interior. The molecular value, ~1e-6 + ! m2 s-1, may be used." + +INTERPOLATION_SCHEME = PPM_CW + ! "TODO" + +GEOTHERMAL_SCALE = 1.0 + ! "[W m-2 or various] default = 0.0 + ! The constant geothermal heat flux, a rescaling + ! factor for the heat flux read from GEOTHERMAL_FILE, or + ! 0 to disable the geothermal heating." + +GEOTHERMAL_FILE = geothermal_davies2013_tx2_3_20240318_cdf5.nc + ! "default = '' + ! The file from which the geothermal heating is to be + ! read, or blank to use a constant heating rate." + +GEOTHERMAL_VARNAME = geothermal_hf + ! "default = 'geo_heat' + ! The name of the geothermal heating variable in + ! GEOTHERMAL_FILE." + +MIX_BOUNDARY_TRACER_ALE = True + ! "[Boolean] default = True + ! If true and in ALE mode, mix the passive tracers in massless layers at the + ! bottom into the interior as though a diffusivity of KD_MIN_TR were operating." + +AUTO_MASKTABLE = True + ! Turn on automatic mask table generation to eliminate land blocks + +GEOM_FILE = ocean_geometry.nc + ! default = ocean_geometry.nc + ! The file into which to write the ocean geometry. + +SKEB_NPASS = 10 + ! "default = 3 + ! number of passes of a 9-point smoother of the dissipation estimate." + +SKEB_GM_COEF = 0.75 + ! "[nondim] default = 0.0 + ! Fraction of GM work that is added to backscatter rate." + +KPP% +N_SMOOTH = 3 + ! "default = 0 + ! The number of times the 1-1-4-1-1 Laplacian filter is applied on + ! OBL depth. + ! purely for diagnostic purposes." + +MATCH_TECHNIQUE = MatchGradient + ! "default = 'SimpleShapes' + ! CVMix method to set profile function for diffusivity and NLT, + ! as well as matching across OBL base. Allowed values are: + ! SimpleShapes = sigma*(1-sigma)^2 for both diffusivity and NLT + ! MatchGradient = sigma*(1-sigma)^2 for NLT; diffusivity profile from matching + ! MatchBoth = match gradient for both diffusivity and NLT + ! ParabolicNonLocal = sigma*(1-sigma)^2 for diffusivity; (1-sigma)^2 for NLT" + +INTERP_TYPE2 = LMD94 + ! "Type of interpolation to compute diff and visc at OBL_depth + ! Allowed types are: linear, quadratic, cubic or LMD94." + +KPP_IS_ADDITIVE = False + ! "[Boolean] default = True + ! If true, adds KPP diffusivity to diffusivity from other schemes.If false, KPP is + ! the only diffusivity wherever KPP is non-zero." + +%KPP diff --git a/standalone/examples/cesm_t232_with_MARBL/MOM_override b/standalone/examples/cesm_t232_with_MARBL/MOM_override new file mode 100644 index 0000000..e66f09d --- /dev/null +++ b/standalone/examples/cesm_t232_with_MARBL/MOM_override @@ -0,0 +1,24 @@ +! Parameter changes to run CESM-MOM6 config in standalone mode + +#override READ_RIV_FLUXES = False +WIND_FILE = "ocean_forcing_daily.nc" +DT_FORCING = 1800.0 +EVAPORATION_FILE = "ocean_forcing_daily.nc" +SNOW_FILE = "ocean_precip_monthly.nc" +SSTRESTORE_FILE = "ocean_forcing_daily.nc" +WINDSTRESS_X_VAR = "taux" +LONGWAVE_FILE = "ocean_forcing_daily.nc" +SALINITYRESTORE_FILE = "ocean_forcing_daily.nc" +RUNOFF_FILE = "ocean_precip_monthly.nc" +WINDSTRESS_Y_VAR = "tauy" +SENSIBLEHEAT_FILE = "ocean_forcing_daily.nc" +SHORTWAVE_FILE = "ocean_forcing_daily.nc" +WIND_CONFIG = "file" +BUOY_CONFIG = "file" +WINDSTRESS_STAGGER = "C" +RAIN_FILE = "ocean_precip_monthly.nc" +LATENTHEAT_FILE = "ocean_forcing_daily.nc" +ARCHAIC_OMIP_FORCING_FILE = .false. +DAYMAX = 1.0 + + diff --git a/standalone/examples/cesm_t232_with_MARBL/RESTART/.gitignore b/standalone/examples/cesm_t232_with_MARBL/RESTART/.gitignore new file mode 100644 index 0000000..58f1cda --- /dev/null +++ b/standalone/examples/cesm_t232_with_MARBL/RESTART/.gitignore @@ -0,0 +1,2 @@ +*.nc +*.res diff --git a/standalone/examples/cesm_t232_with_MARBL/diag_table b/standalone/examples/cesm_t232_with_MARBL/diag_table new file mode 100644 index 0000000..44b283e --- /dev/null +++ b/standalone/examples/cesm_t232_with_MARBL/diag_table @@ -0,0 +1,590 @@ +"MOM6 diagnostic fields table for CESM case: c.e20.CMOM.T62_t061.test_repro.001" +1 1 1 0 0 0 +### Section-1: File List +#======================== +"case.hm%4yr-%2mo-%2dy", 1, "days", 1, "days", "time", 1, "days" +"case.h%4yr-%2mo-%2dy", 1, "days", 1, "days", "time", 1, "days" +"case.sfc%4yr-%2mo-%2dy", 1, "days", 1, "days", "time", 1, "days" +"case.static", -1, "days", 1, "days", "time" +"marbl%4yr-%2mo-%2dy", 1, "days", 1, "days", "time", 1, "days" +"marbl2%4yr-%2mo-%2dy", 1, "days", 1, "days", "time", 1, "days" + +### Section-2: Fields List +#========================= + +# "case.hm%4yr-%2mo-%2dy" +"ocean_model", "uo", "uo", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "vo", "vo", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "h", "h", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "e", "e", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "thetao", "thetao", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "so", "so", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "PO4", "PO4", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "NO3", "NO3", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "SiO3", "SiO3", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "NH4", "NH4", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "Fe", "Fe", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "Lig", "Lig", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "O2", "O2", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "DIC", "DIC", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "DIC_ALT_CO2", "DIC_ALT_CO2", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "ALK", "ALK", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "ALK_ALT_CO2", "ALK_ALT_CO2", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "DOC", "DOC", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "DON", "DON", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "DOP", "DOP", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "DOPr", "DOPr", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "DONr", "DONr", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "DOCr", "DOCr", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "microzooC", "microzooC", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "mesozooC", "mesozooC", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "spChl", "spChl", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "spC", "spC", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "spP", "spP", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "spFe", "spFe", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "coccoChl", "coccoChl", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "coccoC", "coccoC", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "coccoP", "coccoP", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "coccoFe", "coccoFe", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "coccoCaCO3", "coccoCaCO3", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "diatChl", "diatChl", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "diatC", "diatC", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "diatP", "diatP", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "diatFe", "diatFe", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "diatSi", "diatSi", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "diazChl", "diazChl", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "diazC", "diazC", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "diazP", "diazP", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "diazFe", "diazFe", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "rhoinsitu", "rhoinsitu", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "KE", "KE", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "rhopot0", "rhopot0", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "soga", "soga", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "thetaoga", "thetaoga", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "uh", "uh", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "vh", "vh", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "vhbt", "vhbt", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "uhbt", "uhbt", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "KPP_OBLdepth", "oml", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "tauuo", "tauuo", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "tauvo", "tauvo", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "friver", "friver", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "prsn", "prsn", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "prlq", "prlq", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "evs", "evs", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "hfsso", "hfsso", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "rlntds", "rlntds", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "hfsnthermds", "hfsnthermds", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "sfdsi", "sfdsi", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "rsntds", "rsntds", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "hfds", "hfds", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "ustar", "ustar", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "hfsifrazil", "hfsifrazil", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "wfo", "wfo", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "vprec", "vprec", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "ficeberg", "ficeberg", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "fsitherm", "fsitherm", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "hflso", "hflso", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "pso", "pso", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "seaice_melt_heat","seaice_melt_heat","case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "Heat_PmE", "Heat_PmE", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "salt_flux_added","salt_flux_added","case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "SSH", "SSH", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "tos", "tos", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "sos", "sos", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "SSU", "SSU", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "SSV", "SSV", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "mass_wt", "mass_wt", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "opottempmint", "opottempmint", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "somint", "somint", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "Rd_dx", "Rd_dx", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "speed", "speed", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "mlotst", "mlotst", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "diftrelo", "diftrelo", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "diftrblo", "diftrblo", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "difmxybo", "difmxybo", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "difmxylo", "difmxylo", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +#"ocean_model", "volcello", "volcello", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "vmo", "vmo", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "vhGM", "vhGM", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "vhml", "vhml", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "umo", "umo", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "uhGM", "uhGM", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "uhml", "uhml", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "agessc", "agessc", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "T_ady_2d", "T_ady_2d", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "T_adx_2d", "T_adx_2d", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "T_diffy_2d", "T_diffy_2d", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "T_diffx_2d", "T_diffx_2d", "case.hm%4yr-%2mo-%2dy", "all", "mean", "none", 1 + +# "case.h%4yr-%2mo-%2dy" +"ocean_model_z", "uo", "uo", "case.h%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model_z", "vo", "vo", "case.h%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model_z", "h", "h", "case.h%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model_z", "e", "e", "case.h%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model_z", "thetao", "thetao", "case.h%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model_z", "so", "so", "case.h%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model_z", "rhoinsitu","rhoinsitu","case.h%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model_z", "KE", "KE", "case.h%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model_z", "rhopot0", "rhopot0", "case.h%4yr-%2mo-%2dy", "all", "mean", "none", 1 + +# "case.sfc%yr4" +"ocean_model", "SSH", "SSH", "case.sfc%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "tos", "tos", "case.sfc%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "sos", "sos", "case.sfc%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "SSU", "SSU", "case.sfc%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "SSV", "SSV", "case.sfc%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "mass_wt", "mass_wt", "case.sfc%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "opottempmint", "opottempmint", "case.sfc%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "somint", "somint", "case.sfc%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "Rd_dx", "Rd_dx", "case.sfc%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "speed", "speed", "case.sfc%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "mlotst", "mlotst", "case.sfc%4yr-%2mo-%2dy", "all", "mean", "none", 1 +"ocean_model", "KPP_OBLdepth", "oml", "case.sfc%4yr-%2mo-%2dy", "all", "mean", "none", 1 + +# "case.static" +"ocean_model", "geolon", "geolon", "case.static", "all", ".false.", "none", 1 +"ocean_model", "geolat", "geolat", "case.static", "all", ".false.", "none", 1 +"ocean_model", "geolon_c", "geolon_c", "case.static", "all", ".false.", "none", 1 +"ocean_model", "geolat_c", "geolat_c", "case.static", "all", ".false.", "none", 1 +"ocean_model", "geolon_u", "geolon_u", "case.static", "all", ".false.", "none", 1 +"ocean_model", "geolat_u", "geolat_u", "case.static", "all", ".false.", "none", 1 +"ocean_model", "geolon_v", "geolon_v", "case.static", "all", ".false.", "none", 1 +"ocean_model", "geolat_v", "geolat_v", "case.static", "all", ".false.", "none", 1 +"ocean_model", "area_t", "area_t", "case.static", "all", ".false.", "none", 1 +"ocean_model", "depth_ocean","depth_ocean","case.static", "all", ".false.", "none", 1 +"ocean_model", "wet", "wet", "case.static", "all", ".false.", "none", 1 +"ocean_model", "wet_c", "wet_c", "case.static", "all", ".false.", "none", 1 +"ocean_model", "wet_u", "wet_u", "case.static", "all", ".false.", "none", 1 +"ocean_model", "wet_v", "wet_v", "case.static", "all", ".false.", "none", 1 +"ocean_model", "Coriolis", "Coriolis", "case.static", "all", ".false.", "none", 1 + +# marbl diagnostics: +#=================== +"ocean_model", "rsdoabsorb", "rsdoabsorb", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "ECOSYS_IFRAC", "ECOSYS_IFRAC", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "ECOSYS_XKW", "ECOSYS_XKW", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "ECOSYS_ATM_PRESS", "ECOSYS_ATM_PRESS", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "PV_O2", "PV_O2", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "SCHMIDT_O2", "SCHMIDT_O2", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "O2SAT", "O2SAT", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "CO2STAR", "CO2STAR", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DCO2STAR", "DCO2STAR", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "pCO2SURF", "pCO2SURF", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DpCO2", "DpCO2", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "PV_CO2", "PV_CO2", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "SCHMIDT_CO2", "SCHMIDT_CO2", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "FG_CO2", "FG_CO2", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "PH", "PH", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "ATM_CO2", "ATM_CO2", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "CO2STAR_ALT_CO2", "CO2STAR_ALT_CO2", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DCO2STAR_ALT_CO2", "DCO2STAR_ALT_CO2", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "pCO2SURF_ALT_CO2", "pCO2SURF_ALT_CO2", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DpCO2_ALT_CO2", "DpCO2_ALT_CO2", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "FG_ALT_CO2", "FG_ALT_CO2", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "PH_ALT_CO2", "PH_ALT_CO2", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "ATM_ALT_CO2", "ATM_ALT_CO2", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "IRON_FLUX", "IRON_FLUX", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DUST_FLUX", "DUST_FLUX", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "NOx_FLUX", "NOx_FLUX", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "NHy_FLUX", "NHy_FLUX", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "NHx_SURFACE_EMIS", "NHx_SURFACE_EMIS", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "zsatcalc", "zsatcalc", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "zsatarag", "zsatarag", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "O2_ZMIN", "O2_ZMIN", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "O2_ZMIN_DEPTH", "O2_ZMIN_DEPTH", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoC_TOT_zint", "photoC_TOT_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoC_TOT_zint_100m", "photoC_TOT_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoC_NO3_TOT_zint", "photoC_NO3_TOT_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoC_NO3_TOT_zint_100m", "photoC_NO3_TOT_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DOC_prod_zint", "DOC_prod_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DOC_prod_zint_100m", "DOC_prod_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DOC_remin_zint", "DOC_remin_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DOC_remin_zint_100m", "DOC_remin_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DOCr_remin_zint", "DOCr_remin_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DOCr_remin_zint_100m", "DOCr_remin_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "Jint_Ctot", "Jint_Ctot", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "Jint_Ntot", "Jint_Ntot", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "Jint_Ptot", "Jint_Ptot", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "Jint_Sitot", "Jint_Sitot", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "Jint_Fetot", "Jint_Fetot", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "calcToFloor", "calcToFloor", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "calcToSed", "calcToSed", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "calcToSed_ALT_CO2", "calcToSed_ALT_CO2", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "pocToFloor", "pocToFloor", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "pocToSed", "pocToSed", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "ponToSed", "ponToSed", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "SedDenitrif", "SedDenitrif", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "OtherRemin", "OtherRemin", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "popToSed", "popToSed", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "bsiToSed", "bsiToSed", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "dustToSed", "dustToSed", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "pfeToSed", "pfeToSed", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "sp_N_lim_surf", "sp_N_lim_surf", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "sp_N_lim_Cweight_avg_100m", "sp_N_lim_Cweight_avg_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "sp_P_lim_surf", "sp_P_lim_surf", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "sp_P_lim_Cweight_avg_100m", "sp_P_lim_Cweight_avg_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "sp_Fe_lim_surf", "sp_Fe_lim_surf", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "sp_Fe_lim_Cweight_avg_100m", "sp_Fe_lim_Cweight_avg_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "sp_light_lim_surf", "sp_light_lim_surf", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "sp_light_lim_Cweight_avg_100m", "sp_light_lim_Cweight_avg_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoC_sp_zint", "photoC_sp_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoC_sp_zint_100m", "photoC_sp_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoC_NO3_sp_zint", "photoC_NO3_sp_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_sp_zint", "graze_sp_zint", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_sp_zint_100m", "graze_sp_zint_100m", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_sp_poc_zint", "graze_sp_poc_zint", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_sp_poc_zint_100m", "graze_sp_poc_zint_100m", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_sp_doc_zint", "graze_sp_doc_zint", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_sp_doc_zint_100m", "graze_sp_doc_zint_100m", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_sp_zoo_zint", "graze_sp_zoo_zint", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_sp_zoo_zint_100m", "graze_sp_zoo_zint_100m", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "sp_loss_zint", "sp_loss_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "sp_loss_zint_100m", "sp_loss_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "sp_loss_poc_zint", "sp_loss_poc_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "sp_loss_poc_zint_100m", "sp_loss_poc_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "sp_loss_doc_zint", "sp_loss_doc_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "sp_loss_doc_zint_100m", "sp_loss_doc_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "sp_agg_zint", "sp_agg_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "sp_agg_zint_100m", "sp_agg_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "cocco_N_lim_surf", "cocco_N_lim_surf", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "cocco_N_lim_Cweight_avg_100m", "cocco_N_lim_Cweight_avg_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "cocco_P_lim_surf", "cocco_P_lim_surf", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "cocco_P_lim_Cweight_avg_100m", "cocco_P_lim_Cweight_avg_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "cocco_Fe_lim_surf", "cocco_Fe_lim_surf", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "cocco_Fe_lim_Cweight_avg_100m", "cocco_Fe_lim_Cweight_avg_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "cocco_light_lim_surf", "cocco_light_lim_surf", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "cocco_light_lim_Cweight_avg_100m", "cocco_light_lim_Cweight_avg_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoC_cocco_zint", "photoC_cocco_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoC_cocco_zint_100m", "photoC_cocco_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoC_NO3_cocco_zint", "photoC_NO3_cocco_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "cocco_CaCO3_form_zint", "cocco_CaCO3_form_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "cocco_CaCO3_form_zint_100m", "cocco_CaCO3_form_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_cocco_zint", "graze_cocco_zint", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_cocco_zint_100m", "graze_cocco_zint_100m", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_cocco_poc_zint", "graze_cocco_poc_zint", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_cocco_poc_zint_100m", "graze_cocco_poc_zint_100m", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_cocco_doc_zint", "graze_cocco_doc_zint", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_cocco_doc_zint_100m", "graze_cocco_doc_zint_100m", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_cocco_zoo_zint", "graze_cocco_zoo_zint", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_cocco_zoo_zint_100m", "graze_cocco_zoo_zint_100m", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "cocco_loss_zint", "cocco_loss_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "cocco_loss_zint_100m", "cocco_loss_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "cocco_loss_poc_zint", "cocco_loss_poc_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "cocco_loss_poc_zint_100m", "cocco_loss_poc_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "cocco_loss_doc_zint", "cocco_loss_doc_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "cocco_loss_doc_zint_100m", "cocco_loss_doc_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "cocco_agg_zint", "cocco_agg_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "cocco_agg_zint_100m", "cocco_agg_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diat_N_lim_surf", "diat_N_lim_surf", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diat_N_lim_Cweight_avg_100m", "diat_N_lim_Cweight_avg_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diat_P_lim_surf", "diat_P_lim_surf", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diat_P_lim_Cweight_avg_100m", "diat_P_lim_Cweight_avg_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diat_Fe_lim_surf", "diat_Fe_lim_surf", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diat_Fe_lim_Cweight_avg_100m", "diat_Fe_lim_Cweight_avg_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diat_SiO3_lim_surf", "diat_SiO3_lim_surf", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diat_SiO3_lim_Cweight_avg_100m", "diat_SiO3_lim_Cweight_avg_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diat_light_lim_surf", "diat_light_lim_surf", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diat_light_lim_Cweight_avg_100m", "diat_light_lim_Cweight_avg_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoC_diat_zint", "photoC_diat_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoC_diat_zint_100m", "photoC_diat_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoC_NO3_diat_zint", "photoC_NO3_diat_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diat_zint", "graze_diat_zint", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diat_zint_100m", "graze_diat_zint_100m", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diat_poc_zint", "graze_diat_poc_zint", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diat_poc_zint_100m", "graze_diat_poc_zint_100m", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diat_doc_zint", "graze_diat_doc_zint", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diat_doc_zint_100m", "graze_diat_doc_zint_100m", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diat_zoo_zint", "graze_diat_zoo_zint", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diat_zoo_zint_100m", "graze_diat_zoo_zint_100m", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diat_loss_zint", "diat_loss_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diat_loss_zint_100m", "diat_loss_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diat_loss_poc_zint", "diat_loss_poc_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diat_loss_poc_zint_100m", "diat_loss_poc_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diat_loss_doc_zint", "diat_loss_doc_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diat_loss_doc_zint_100m", "diat_loss_doc_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diat_agg_zint", "diat_agg_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diat_agg_zint_100m", "diat_agg_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diaz_N_lim_surf", "diaz_N_lim_surf", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diaz_N_lim_Cweight_avg_100m", "diaz_N_lim_Cweight_avg_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diaz_P_lim_surf", "diaz_P_lim_surf", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diaz_P_lim_Cweight_avg_100m", "diaz_P_lim_Cweight_avg_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diaz_Fe_lim_surf", "diaz_Fe_lim_surf", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diaz_Fe_lim_Cweight_avg_100m", "diaz_Fe_lim_Cweight_avg_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diaz_light_lim_surf", "diaz_light_lim_surf", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diaz_light_lim_Cweight_avg_100m", "diaz_light_lim_Cweight_avg_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoC_diaz_zint", "photoC_diaz_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoC_diaz_zint_100m", "photoC_diaz_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoC_NO3_diaz_zint", "photoC_NO3_diaz_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diaz_zint", "graze_diaz_zint", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diaz_zint_100m", "graze_diaz_zint_100m", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diaz_poc_zint", "graze_diaz_poc_zint", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diaz_poc_zint_100m", "graze_diaz_poc_zint_100m", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diaz_doc_zint", "graze_diaz_doc_zint", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diaz_doc_zint_100m", "graze_diaz_doc_zint_100m", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diaz_zoo_zint", "graze_diaz_zoo_zint", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diaz_zoo_zint_100m", "graze_diaz_zoo_zint_100m", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diaz_loss_zint", "diaz_loss_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diaz_loss_zint_100m", "diaz_loss_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diaz_loss_poc_zint", "diaz_loss_poc_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diaz_loss_poc_zint_100m", "diaz_loss_poc_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diaz_loss_doc_zint", "diaz_loss_doc_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diaz_loss_doc_zint_100m", "diaz_loss_doc_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diaz_agg_zint", "diaz_agg_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diaz_agg_zint_100m", "diaz_agg_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "CaCO3_form_zint", "CaCO3_form_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "CaCO3_form_zint_100m", "CaCO3_form_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "microzoo_loss_zint", "microzoo_loss_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "mesozoo_loss_zint", "mesozoo_loss_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "microzoo_loss_zint_100m", "microzoo_loss_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "mesozoo_loss_zint_100m", "mesozoo_loss_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "microzoo_loss_basal_zint", "microzoo_loss_basal_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "mesozoo_loss_basal_zint", "mesozoo_loss_basal_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "microzoo_loss_basal_zint_100m", "microzoo_loss_basal_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "mesozoo_loss_basal_zint_100m", "mesozoo_loss_basal_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "microzoo_loss_poc_zint", "microzoo_loss_poc_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "mesozoo_loss_poc_zint", "mesozoo_loss_poc_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "microzoo_loss_poc_zint_100m", "microzoo_loss_poc_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "mesozoo_loss_poc_zint_100m", "mesozoo_loss_poc_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "microzoo_loss_doc_zint", "microzoo_loss_doc_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "mesozoo_loss_doc_zint", "mesozoo_loss_doc_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "microzoo_loss_doc_zint_100m", "microzoo_loss_doc_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "mesozoo_loss_doc_zint_100m", "mesozoo_loss_doc_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_microzoo_zint", "graze_microzoo_zint", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_mesozoo_zint", "graze_mesozoo_zint", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_microzoo_zint_100m", "graze_microzoo_zint_100m", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_mesozoo_zint_100m", "graze_mesozoo_zint_100m", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_microzoo_poc_zint", "graze_microzoo_poc_zint", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_mesozoo_poc_zint", "graze_mesozoo_poc_zint", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_microzoo_poc_zint_100m", "graze_microzoo_poc_zint_100m", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_mesozoo_poc_zint_100m", "graze_mesozoo_poc_zint_100m", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_microzoo_doc_zint", "graze_microzoo_doc_zint", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_mesozoo_doc_zint", "graze_mesozoo_doc_zint", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_microzoo_doc_zint_100m", "graze_microzoo_doc_zint_100m", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_mesozoo_doc_zint_100m", "graze_mesozoo_doc_zint_100m", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_microzoo_zoo_zint", "graze_microzoo_zoo_zint", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_mesozoo_zoo_zint", "graze_mesozoo_zoo_zint", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_microzoo_zoo_zint_100m", "graze_microzoo_zoo_zint_100m", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_mesozoo_zoo_zint_100m", "graze_mesozoo_zoo_zint_100m", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "x_graze_microzoo_zint", "x_graze_microzoo_zint", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "x_graze_mesozoo_zint", "x_graze_mesozoo_zint", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "x_graze_microzoo_zint_100m", "x_graze_microzoo_zint_100m", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "x_graze_mesozoo_zint_100m", "x_graze_mesozoo_zint_100m", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "insitu_temp", "insitu_temp", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "CO3", "CO3", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "HCO3", "HCO3", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "H2CO3", "H2CO3", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "pH_3D", "pH_3D", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "CO3_ALT_CO2", "CO3_ALT_CO2", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "HCO3_ALT_CO2", "HCO3_ALT_CO2", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "H2CO3_ALT_CO2", "H2CO3_ALT_CO2", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "pH_3D_ALT_CO2", "pH_3D_ALT_CO2", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "co3_sat_calc", "co3_sat_calc", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "co3_sat_arag", "co3_sat_arag", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "NITRIF", "NITRIF", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DENITRIF", "DENITRIF", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "O2_PRODUCTION", "O2_PRODUCTION", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "O2_CONSUMPTION", "O2_CONSUMPTION", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "AOU", "AOU", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "PAR_avg", "PAR_avg", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_auto_TOT", "graze_auto_TOT", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoC_TOT", "photoC_TOT", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoC_NO3_TOT", "photoC_NO3_TOT", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DOC_prod", "DOC_prod", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DOC_remin", "DOC_remin", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DOCr_remin", "DOCr_remin", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DON_prod", "DON_prod", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DON_remin", "DON_remin", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DONr_remin", "DONr_remin", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DOP_prod", "DOP_prod", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DOP_remin", "DOP_remin", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DOPr_remin", "DOPr_remin", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DOP_loss_P_bal", "DOP_loss_P_bal", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "Fe_scavenge", "Fe_scavenge", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "Fe_scavenge_rate", "Fe_scavenge_rate", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "Lig_prod", "Lig_prod", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "Lig_loss", "Lig_loss", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "Lig_scavenge", "Lig_scavenge", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "Fefree", "Fefree", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "Lig_photochem", "Lig_photochem", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "Lig_deg", "Lig_deg", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "FESEDFLUX", "FESEDFLUX", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "POC_FLUX_100m", "POC_FLUX_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "POP_FLUX_100m", "POP_FLUX_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "CaCO3_FLUX_100m", "CaCO3_FLUX_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "SiO2_FLUX_100m", "SiO2_FLUX_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "P_iron_FLUX_100m", "P_iron_FLUX_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "POC_PROD_zint", "POC_PROD_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "POC_PROD_zint_100m", "POC_PROD_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "POC_REMIN_DOCr_zint", "POC_REMIN_DOCr_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "POC_REMIN_DOCr_zint_100m", "POC_REMIN_DOCr_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "POC_REMIN_DIC_zint", "POC_REMIN_DIC_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "POC_REMIN_DIC_zint_100m", "POC_REMIN_DIC_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "CaCO3_PROD_zint", "CaCO3_PROD_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "CaCO3_PROD_zint_100m", "CaCO3_PROD_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "CaCO3_REMIN_zint", "CaCO3_REMIN_zint", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "CaCO3_REMIN_zint_100m", "CaCO3_REMIN_zint_100m", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "POC_FLUX_IN", "POC_FLUX_IN", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "POC_sFLUX_IN", "POC_sFLUX_IN", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "POC_hFLUX_IN", "POC_hFLUX_IN", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "POC_PROD", "POC_PROD", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "POC_REMIN_DOCr", "POC_REMIN_DOCr", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "POC_REMIN_DIC", "POC_REMIN_DIC", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "POP_FLUX_IN", "POP_FLUX_IN", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "POP_PROD", "POP_PROD", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "POP_REMIN_DOPr", "POP_REMIN_DOPr", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "POP_REMIN_PO4", "POP_REMIN_PO4", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "PON_REMIN_DONr", "PON_REMIN_DONr", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "PON_REMIN_NH4", "PON_REMIN_NH4", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "CaCO3_FLUX_IN", "CaCO3_FLUX_IN", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "CaCO3_PROD", "CaCO3_PROD", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "CaCO3_REMIN", "CaCO3_REMIN", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "CaCO3_ALT_CO2_FLUX_IN", "CaCO3_ALT_CO2_FLUX_IN", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "CaCO3_ALT_CO2_PROD", "CaCO3_ALT_CO2_PROD", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "CaCO3_ALT_CO2_REMIN", "CaCO3_ALT_CO2_REMIN", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "SiO2_FLUX_IN", "SiO2_FLUX_IN", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "SiO2_PROD", "SiO2_PROD", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "SiO2_REMIN", "SiO2_REMIN", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "dust_FLUX_IN", "dust_FLUX_IN", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "dust_REMIN", "dust_REMIN", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "P_iron_FLUX_IN", "P_iron_FLUX_IN", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "P_iron_PROD", "P_iron_PROD", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "P_iron_REMIN", "P_iron_REMIN", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "sp_Qp", "sp_Qp", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoC_sp", "photoC_sp", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoC_NO3_sp", "photoC_NO3_sp", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoFe_sp", "photoFe_sp", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoNO3_sp", "photoNO3_sp", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoNH4_sp", "photoNH4_sp", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DOP_sp_uptake", "DOP_sp_uptake", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "PO4_sp_uptake", "PO4_sp_uptake", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_sp", "graze_sp", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_sp_poc", "graze_sp_poc", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_sp_doc", "graze_sp_doc", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_sp_zootot", "graze_sp_zootot", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_sp_microzoo", "graze_sp_microzoo", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_sp_mesozoo", "graze_sp_mesozoo", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "sp_loss", "sp_loss", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "sp_loss_poc", "sp_loss_poc", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "sp_loss_doc", "sp_loss_doc", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "sp_agg", "sp_agg", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "cocco_Qp", "cocco_Qp", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoC_cocco", "photoC_cocco", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoC_NO3_cocco", "photoC_NO3_cocco", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoFe_cocco", "photoFe_cocco", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoNO3_cocco", "photoNO3_cocco", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoNH4_cocco", "photoNH4_cocco", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DOP_cocco_uptake", "DOP_cocco_uptake", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "PO4_cocco_uptake", "PO4_cocco_uptake", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_cocco", "graze_cocco", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_cocco_poc", "graze_cocco_poc", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_cocco_doc", "graze_cocco_doc", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_cocco_zootot", "graze_cocco_zootot", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_cocco_microzoo", "graze_cocco_microzoo", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_cocco_mesozoo", "graze_cocco_mesozoo", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "cocco_loss", "cocco_loss", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "cocco_loss_poc", "cocco_loss_poc", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "cocco_loss_doc", "cocco_loss_doc", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "cocco_agg", "cocco_agg", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "cocco_CaCO3_form", "cocco_CaCO3_form", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diat_Qp", "diat_Qp", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoC_diat", "photoC_diat", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoC_NO3_diat", "photoC_NO3_diat", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoFe_diat", "photoFe_diat", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoNO3_diat", "photoNO3_diat", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoNH4_diat", "photoNH4_diat", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DOP_diat_uptake", "DOP_diat_uptake", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "PO4_diat_uptake", "PO4_diat_uptake", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diat", "graze_diat", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diat_poc", "graze_diat_poc", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diat_doc", "graze_diat_doc", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diat_zootot", "graze_diat_zootot", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diat_microzoo", "graze_diat_microzoo", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diat_mesozoo", "graze_diat_mesozoo", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diat_loss", "diat_loss", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diat_loss_poc", "diat_loss_poc", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diat_loss_doc", "diat_loss_doc", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diat_agg", "diat_agg", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diat_bSi_form", "diat_bSi_form", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diaz_Qp", "diaz_Qp", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoC_diaz", "photoC_diaz", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoC_NO3_diaz", "photoC_NO3_diaz", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoFe_diaz", "photoFe_diaz", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoNO3_diaz", "photoNO3_diaz", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "photoNH4_diaz", "photoNH4_diaz", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DOP_diaz_uptake", "DOP_diaz_uptake", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "PO4_diaz_uptake", "PO4_diaz_uptake", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diaz", "graze_diaz", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diaz_poc", "graze_diaz_poc", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diaz_doc", "graze_diaz_doc", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diaz_zootot", "graze_diaz_zootot", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diaz_microzoo", "graze_diaz_microzoo", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_diaz_mesozoo", "graze_diaz_mesozoo", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diaz_loss", "diaz_loss", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diaz_loss_poc", "diaz_loss_poc", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diaz_loss_doc", "diaz_loss_doc", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diaz_agg", "diaz_agg", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "diaz_Nfix", "diaz_Nfix", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "bSi_form", "bSi_form", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "CaCO3_form", "CaCO3_form", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "Nfix", "Nfix", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "microzoo_loss", "microzoo_loss", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "mesozoo_loss", "mesozoo_loss", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "microzoo_loss_basal", "microzoo_loss_basal", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "mesozoo_loss_basal", "mesozoo_loss_basal", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "microzoo_loss_poc", "microzoo_loss_poc", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "mesozoo_loss_poc", "mesozoo_loss_poc", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "microzoo_loss_doc", "microzoo_loss_doc", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "mesozoo_loss_doc", "mesozoo_loss_doc", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_microzoo", "graze_microzoo", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_mesozoo", "graze_mesozoo", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_microzoo_poc", "graze_microzoo_poc", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_mesozoo_poc", "graze_mesozoo_poc", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_microzoo_doc", "graze_microzoo_doc", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_mesozoo_doc", "graze_mesozoo_doc", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_microzoo_zootot", "graze_microzoo_zootot", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_mesozoo_zootot", "graze_mesozoo_zootot", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_microzoo_microzoo", "graze_microzoo_microzoo", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_microzoo_mesozoo", "graze_microzoo_mesozoo", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_mesozoo_microzoo", "graze_mesozoo_microzoo", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "graze_mesozoo_mesozoo", "graze_mesozoo_mesozoo", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "x_graze_microzoo", "x_graze_microzoo", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "x_graze_mesozoo", "x_graze_mesozoo", "marbl2%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "PO4_RESTORE_TEND", "PO4_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "NO3_RESTORE_TEND", "NO3_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "SiO3_RESTORE_TEND", "SiO3_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "NH4_RESTORE_TEND", "NH4_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "Fe_RESTORE_TEND", "Fe_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "Lig_RESTORE_TEND", "Lig_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "O2_RESTORE_TEND", "O2_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DIC_RESTORE_TEND", "DIC_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "DIC_ALT_CO2_RESTORE_TEND", "DIC_ALT_CO2_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "ALK_RESTORE_TEND", "ALK_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "ALK_ALT_CO2_RESTORE_TEND", "ALK_ALT_CO2_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "DOC_RESTORE_TEND", "DOC_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "DON_RESTORE_TEND", "DON_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "DOP_RESTORE_TEND", "DOP_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DOPr_RESTORE_TEND", "DOPr_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DONr_RESTORE_TEND", "DONr_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +"ocean_model", "DOCr_RESTORE_TEND", "DOCr_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "microzooC_RESTORE_TEND", "microzooC_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "mesozooC_RESTORE_TEND", "mesozooC_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "spChl_RESTORE_TEND", "spChl_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "spC_RESTORE_TEND", "spC_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "spP_RESTORE_TEND", "spP_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "spFe_RESTORE_TEND", "spFe_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "coccoChl_RESTORE_TEND", "coccoChl_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "coccoC_RESTORE_TEND", "coccoC_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "coccoP_RESTORE_TEND", "coccoP_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "coccoFe_RESTORE_TEND", "coccoFe_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "coccoCaCO3_RESTORE_TEND", "coccoCaCO3_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "diatChl_RESTORE_TEND", "diatChl_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "diatC_RESTORE_TEND", "diatC_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "diatP_RESTORE_TEND", "diatP_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "diatFe_RESTORE_TEND", "diatFe_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "diatSi_RESTORE_TEND", "diatSi_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "diazChl_RESTORE_TEND", "diazChl_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "diazC_RESTORE_TEND", "diazC_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "diazP_RESTORE_TEND", "diazP_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 +#"ocean_model", "diazFe_RESTORE_TEND", "diazFe_RESTORE_TEND", "marbl%4yr-%2mo-%2dy", "all", .false., "none", 2 + diff --git a/standalone/examples/cesm_t232_with_MARBL/input.nml b/standalone/examples/cesm_t232_with_MARBL/input.nml new file mode 100644 index 0000000..ccf768a --- /dev/null +++ b/standalone/examples/cesm_t232_with_MARBL/input.nml @@ -0,0 +1,17 @@ + &MOM_input_nml + output_directory = './', + restart_input_dir = './', + restart_output_dir = './RESTART/', + parameter_filename = 'MOM_input', + 'MOM_override' / + &fms_nml + clock_grain='ROUTINE' + clock_flags='NONE' + domains_stack_size = 5000000 + stack_size =0 +/ + + &diag_manager_nml + flush_nc_files = .true. + max_output_fields = 1200 + / diff --git a/standalone/examples/cesm_t232_with_MARBL/marbl_in b/standalone/examples/cesm_t232_with_MARBL/marbl_in new file mode 100644 index 0000000..62a423f --- /dev/null +++ b/standalone/examples/cesm_t232_with_MARBL/marbl_in @@ -0,0 +1,367 @@ +! tracer modules +abio_dic_on = .false. +base_bio_on = .true. +ciso_on = .false. + +! config PFTs +PFT_defaults = "4p2z" +autotroph_cnt = 4 +max_grazer_prey_cnt = 4 +zooplankton_cnt = 2 + +! config flags +ladjust_bury_coeff = .false. +lcheck_forcing = .false. +lcompute_nhx_surface_emis = .true. +lecovars_full_depth_tavg = .false. +lflux_gas_co2 = .true. +lflux_gas_o2 = .true. +lo2_consumption_scalef = .false. +lp_remin_scalef = .false. +lsource_sink = .true. +lvariable_PtoC = .true. + +! config strings +init_bury_coeff_opt = "settings_file" + +! general parameters +Jint_Ctot_thres_molpm2pyr = 1e-09 +QCaCO3_max = 1.0 +auto_mort2_exp = 1.75 +bftt_dz_sum_thres = 1e-14 +bury_coeff_rmean_timescale_years = 10.0 +caco3_bury_thres_depth = 3.0000000000000000e+03 +caco3_bury_thres_omega_calc = 1.0 +caco3_bury_thres_opt = "omega_calc" +f_graze_CaCO3_remin = 0.5 +gQ_Fe_kFe_thres = 10.0 +gQ_Si_kSi_thres = 5.0 +gQsi_0 = 0.137 +gQsi_max = 0.685 +gQsi_min = 0.0457 +o2_sf_o2_range_hi = 45.0 +o2_sf_o2_range_lo = 5.0 +o2_sf_val_lo_o2 = 3.0 +parm_CaCO3_gamma = 0.1 +parm_Fe_bioavail = 1.0 +parm_Fe_desorption_rate0 = 9.9999999999999991e-05 +parm_Lig_degrade_rate0 = 9.4e-05 +parm_SiO2_gamma = 0.1 +parm_f_prod_sp_CaCO3 = 0.07 +parm_hPOC_CaCO3_ratio = 0.05 +parm_hPOC_SiO2_ratio = 0.05 +parm_hPOC_dust_ratio = 0.05 +parm_labile_ratio = 0.94 +parm_o2_min = 5.0 +parm_o2_min_delta = 5.0 +parm_sed_denitrif_coeff = 1.0 +particulate_flux_ref_depth = 100.0 +zoo_mort2_exp = 2.0 + +! general parameters (bury coeffs) +POM_bury_frac_max = 0.8 +PON_bury_coeff = 0.5 +bSi_bury_frac_max = 1.0 +parm_init_POC_bury_coeff = 1.1 +parm_init_POP_bury_coeff = 1.1 +parm_init_bSi_bury_coeff = 1.0 + +! general parameters (dissolution) +parm_CaCO3_diss = 5.0000000000000000e+02 +parm_POC_diss = 1.0000000000000000e+02 +parm_SiO2_diss = 6.5000000000000000e+02 + +! general parameters (nitrification) +parm_kappa_nitrif_per_day = 0.06 +parm_nitrif_par_lim = 1.0 + +! general parameters (scavenging) +parm_FeLig_scavenge_rate0 = 130.0 +parm_Fe_scavenge_rate0 = 2400.0 +parm_Lig_scavenge_rate0 = 1.5 + +! Scale lengths +parm_scalelen_vals(1) = 1.0 +parm_scalelen_vals(2) = 3.2 +parm_scalelen_vals(3) = 4.8 +parm_scalelen_vals(4) = 5.3 +parm_scalelen_z(1) = 1.0000000000000000e+02 +parm_scalelen_z(2) = 2.5000000000000000e+02 +parm_scalelen_z(3) = 5.0000000000000000e+02 +parm_scalelen_z(4) = 1.0000000000000000e+03 + +! autotrophs +autotroph_settings(1)%Ea = 0.32 +autotroph_settings(1)%Nfixer = .false. +autotroph_settings(1)%PCref_per_day = 4.8 +autotroph_settings(1)%Qp_fixed = 8.5470085470085479e-03 +autotroph_settings(1)%agg_rate_max = 0.5 +autotroph_settings(1)%agg_rate_min = 0.01 +autotroph_settings(1)%alphaPI_per_day = 0.35 +autotroph_settings(1)%exp_calcifier = .false. +autotroph_settings(1)%gQfe_0 = 3.0000000000000001e-05 +autotroph_settings(1)%gQfe_min = 2.5e-06 +autotroph_settings(1)%imp_calcifier = .false. +autotroph_settings(1)%is_carbon_limited = .false. +autotroph_settings(1)%kCO2 = 0.0 +autotroph_settings(1)%kDOP = 0.3 +autotroph_settings(1)%kFe = 3e-05 +autotroph_settings(1)%kNH4 = 0.01 +autotroph_settings(1)%kNO3 = 0.2 +autotroph_settings(1)%kPO4 = 0.01 +autotroph_settings(1)%kSiO3 = 0.0 +autotroph_settings(1)%lname = "Small Phyto" +autotroph_settings(1)%loss_poc = 0.0 +autotroph_settings(1)%loss_thres = 0.01 +autotroph_settings(1)%loss_thres2 = 0.0 +autotroph_settings(1)%mort2_per_day = 0.01 +autotroph_settings(1)%mort_per_day = 0.1 +autotroph_settings(1)%silicifier = .false. +autotroph_settings(1)%sname = "sp" +autotroph_settings(1)%temp_func_form_opt = "q_10" +autotroph_settings(1)%temp_thres = -10.0 +autotroph_settings(1)%thetaN_max = 2.5 +autotroph_settings(2)%Ea = 0.32 +autotroph_settings(2)%Nfixer = .false. +autotroph_settings(2)%PCref_per_day = 5.3 +autotroph_settings(2)%Qp_fixed = 8.5470085470085479e-03 +autotroph_settings(2)%agg_rate_max = 0.5 +autotroph_settings(2)%agg_rate_min = 0.02 +autotroph_settings(2)%alphaPI_per_day = 0.39 +autotroph_settings(2)%exp_calcifier = .false. +autotroph_settings(2)%gQfe_0 = 3.0000000000000001e-05 +autotroph_settings(2)%gQfe_min = 2.5e-06 +autotroph_settings(2)%imp_calcifier = .false. +autotroph_settings(2)%is_carbon_limited = .false. +autotroph_settings(2)%kCO2 = 0.0 +autotroph_settings(2)%kDOP = 0.5 +autotroph_settings(2)%kFe = 5e-05 +autotroph_settings(2)%kNH4 = 0.05 +autotroph_settings(2)%kNO3 = 0.4 +autotroph_settings(2)%kPO4 = 0.05 +autotroph_settings(2)%kSiO3 = 1.6 +autotroph_settings(2)%lname = "Diatom" +autotroph_settings(2)%loss_poc = 0.0 +autotroph_settings(2)%loss_thres = 0.02 +autotroph_settings(2)%loss_thres2 = 0.0 +autotroph_settings(2)%mort2_per_day = 0.01 +autotroph_settings(2)%mort_per_day = 0.1 +autotroph_settings(2)%silicifier = .true. +autotroph_settings(2)%sname = "diat" +autotroph_settings(2)%temp_func_form_opt = "q_10" +autotroph_settings(2)%temp_thres = -10.0 +autotroph_settings(2)%thetaN_max = 4.0 +autotroph_settings(3)%Ea = 0.32 +autotroph_settings(3)%Nfixer = .true. +autotroph_settings(3)%PCref_per_day = 1.6 +autotroph_settings(3)%Qp_fixed = 2.7350427350427355e-03 +autotroph_settings(3)%agg_rate_max = 0.5 +autotroph_settings(3)%agg_rate_min = 0.01 +autotroph_settings(3)%alphaPI_per_day = 0.31 +autotroph_settings(3)%exp_calcifier = .false. +autotroph_settings(3)%gQfe_0 = 6.0000000000000002e-05 +autotroph_settings(3)%gQfe_min = 2.5e-06 +autotroph_settings(3)%imp_calcifier = .false. +autotroph_settings(3)%is_carbon_limited = .false. +autotroph_settings(3)%kCO2 = 0.0 +autotroph_settings(3)%kDOP = 0.075 +autotroph_settings(3)%kFe = 4.5e-05 +autotroph_settings(3)%kNH4 = 0.2 +autotroph_settings(3)%kNO3 = 2.0 +autotroph_settings(3)%kPO4 = 0.015 +autotroph_settings(3)%kSiO3 = 0.0 +autotroph_settings(3)%lname = "Diazotroph" +autotroph_settings(3)%loss_poc = 0.0 +autotroph_settings(3)%loss_thres = 0.02 +autotroph_settings(3)%loss_thres2 = 0.001 +autotroph_settings(3)%mort2_per_day = 0.01 +autotroph_settings(3)%mort_per_day = 0.1 +autotroph_settings(3)%silicifier = .false. +autotroph_settings(3)%sname = "diaz" +autotroph_settings(3)%temp_func_form_opt = "q_10" +autotroph_settings(3)%temp_thres = 15.0 +autotroph_settings(3)%thetaN_max = 2.5 +autotroph_settings(4)%Ea = 0.32 +autotroph_settings(4)%Nfixer = .false. +autotroph_settings(4)%PCref_per_day = 4.7 +autotroph_settings(4)%Qp_fixed = 8.5470085470085479e-03 +autotroph_settings(4)%agg_rate_max = 0.5 +autotroph_settings(4)%agg_rate_min = 0.01 +autotroph_settings(4)%alphaPI_per_day = 0.31 +autotroph_settings(4)%exp_calcifier = .true. +autotroph_settings(4)%gQfe_0 = 3.0000000000000001e-05 +autotroph_settings(4)%gQfe_min = 2.5e-06 +autotroph_settings(4)%imp_calcifier = .false. +autotroph_settings(4)%is_carbon_limited = .true. +autotroph_settings(4)%kCO2 = 1.0 +autotroph_settings(4)%kDOP = 0.25 +autotroph_settings(4)%kFe = 3.2e-05 +autotroph_settings(4)%kNH4 = 0.01 +autotroph_settings(4)%kNO3 = 0.41 +autotroph_settings(4)%kPO4 = 0.006 +autotroph_settings(4)%kSiO3 = 0.0 +autotroph_settings(4)%lname = "Coccolithophores" +autotroph_settings(4)%loss_poc = 0.0 +autotroph_settings(4)%loss_thres = 0.01 +autotroph_settings(4)%loss_thres2 = 0.0 +autotroph_settings(4)%mort2_per_day = 0.01 +autotroph_settings(4)%mort_per_day = 0.1 +autotroph_settings(4)%silicifier = .false. +autotroph_settings(4)%sname = "cocco" +autotroph_settings(4)%temp_func_form_opt = "power" +autotroph_settings(4)%temp_thres = 0.0 +autotroph_settings(4)%thetaN_max = 3.8 + +! zooplankton +zooplankton_settings(1)%Ea = 0.55 +zooplankton_settings(1)%basal_respiration_rate_per_day = 0.0 +zooplankton_settings(1)%lname = "Microzooplankton" +zooplankton_settings(1)%loss_thres = 0.075 +zooplankton_settings(1)%sname = "microzoo" +zooplankton_settings(1)%temp_func_form_opt = "q_10" +zooplankton_settings(1)%z_mort2_0_per_day = 0.0028 +zooplankton_settings(1)%z_mort_0_per_day = 0.1 +zooplankton_settings(2)%Ea = 0.55 +zooplankton_settings(2)%basal_respiration_rate_per_day = 0.0 +zooplankton_settings(2)%lname = "Mesozooplankton" +zooplankton_settings(2)%loss_thres = 0.075 +zooplankton_settings(2)%sname = "mesozoo" +zooplankton_settings(2)%temp_func_form_opt = "q_10" +zooplankton_settings(2)%z_mort2_0_per_day = 0.02 +zooplankton_settings(2)%z_mort_0_per_day = 0.035 + +! grazing +grazing_relationship_settings(1,1)%auto_ind(1) = 1 +grazing_relationship_settings(1,1)%auto_ind_cnt = 1 +grazing_relationship_settings(1,1)%f_zoo_detr = 0.17 +grazing_relationship_settings(1,1)%graze_doc = 0.057 +grazing_relationship_settings(1,1)%graze_poc = 0.01 +grazing_relationship_settings(1,1)%graze_zoo = 0.35 +grazing_relationship_settings(1,1)%grazing_function = 2 +grazing_relationship_settings(1,1)%lname = "Grazing of sp by microzoo" +grazing_relationship_settings(1,1)%sname = "grz_sp_microzoo" +grazing_relationship_settings(1,1)%z_grz = 1.4 +grazing_relationship_settings(1,1)%z_umax_0_per_day = 4.1 +grazing_relationship_settings(1,1)%zoo_ind_cnt = 0 +grazing_relationship_settings(1,2)%auto_ind(1) = 2 +grazing_relationship_settings(1,2)%auto_ind_cnt = 1 +grazing_relationship_settings(1,2)%f_zoo_detr = 0.4 +grazing_relationship_settings(1,2)%graze_doc = 0.09 +grazing_relationship_settings(1,2)%graze_poc = 0.28 +grazing_relationship_settings(1,2)%graze_zoo = 0.25 +grazing_relationship_settings(1,2)%grazing_function = 1 +grazing_relationship_settings(1,2)%lname = "Grazing of diat by mesozoo" +grazing_relationship_settings(1,2)%sname = "grz_diat_mesozoo" +grazing_relationship_settings(1,2)%z_grz = 1.0 +grazing_relationship_settings(1,2)%z_umax_0_per_day = 0.9 +grazing_relationship_settings(1,2)%zoo_ind_cnt = 0 +grazing_relationship_settings(2,1)%auto_ind(1) = 3 +grazing_relationship_settings(2,1)%auto_ind_cnt = 1 +grazing_relationship_settings(2,1)%f_zoo_detr = 0.17 +grazing_relationship_settings(2,1)%graze_doc = 0.057 +grazing_relationship_settings(2,1)%graze_poc = 0.01 +grazing_relationship_settings(2,1)%graze_zoo = 0.35 +grazing_relationship_settings(2,1)%grazing_function = 1 +grazing_relationship_settings(2,1)%lname = "Grazing of diaz by microzoo" +grazing_relationship_settings(2,1)%sname = "grz_diaz_microzoo" +grazing_relationship_settings(2,1)%z_grz = 1.2 +grazing_relationship_settings(2,1)%z_umax_0_per_day = 1.0 +grazing_relationship_settings(2,1)%zoo_ind_cnt = 0 +grazing_relationship_settings(2,2)%auto_ind(1) = 4 +grazing_relationship_settings(2,2)%auto_ind_cnt = 1 +grazing_relationship_settings(2,2)%f_zoo_detr = 0.27 +grazing_relationship_settings(2,2)%graze_doc = 0.09 +grazing_relationship_settings(2,2)%graze_poc = 0.18 +grazing_relationship_settings(2,2)%graze_zoo = 0.25 +grazing_relationship_settings(2,2)%grazing_function = 1 +grazing_relationship_settings(2,2)%lname = "Grazing of cocco by mesozoo" +grazing_relationship_settings(2,2)%sname = "grz_cocco_mesozoo" +grazing_relationship_settings(2,2)%z_grz = 1.4 +grazing_relationship_settings(2,2)%z_umax_0_per_day = 0.015 +grazing_relationship_settings(2,2)%zoo_ind_cnt = 0 +grazing_relationship_settings(3,1)%auto_ind(1) = 4 +grazing_relationship_settings(3,1)%auto_ind_cnt = 1 +grazing_relationship_settings(3,1)%f_zoo_detr = 0.27 +grazing_relationship_settings(3,1)%graze_doc = 0.09 +grazing_relationship_settings(3,1)%graze_poc = 0.18 +grazing_relationship_settings(3,1)%graze_zoo = 0.25 +grazing_relationship_settings(3,1)%grazing_function = 1 +grazing_relationship_settings(3,1)%lname = "Grazing of cocco by microzoo" +grazing_relationship_settings(3,1)%sname = "grz_cocco_microzoo" +grazing_relationship_settings(3,1)%z_grz = 1.5 +grazing_relationship_settings(3,1)%z_umax_0_per_day = 1.7 +grazing_relationship_settings(3,1)%zoo_ind_cnt = 0 +grazing_relationship_settings(3,2)%auto_ind(1) = 3 +grazing_relationship_settings(3,2)%auto_ind_cnt = 1 +grazing_relationship_settings(3,2)%f_zoo_detr = 0.4 +grazing_relationship_settings(3,2)%graze_doc = 0.09 +grazing_relationship_settings(3,2)%graze_poc = 0.18 +grazing_relationship_settings(3,2)%graze_zoo = 0.25 +grazing_relationship_settings(3,2)%grazing_function = 1 +grazing_relationship_settings(3,2)%lname = "Grazing of diaz by mesozoo" +grazing_relationship_settings(3,2)%sname = "grz_diaz_mesozoo" +grazing_relationship_settings(3,2)%z_grz = 1.2 +grazing_relationship_settings(3,2)%z_umax_0_per_day = 0.5 +grazing_relationship_settings(3,2)%zoo_ind_cnt = 0 +grazing_relationship_settings(4,1)%auto_ind_cnt = 0 +grazing_relationship_settings(4,1)%f_zoo_detr = 0.0 +grazing_relationship_settings(4,1)%graze_doc = 0.0 +grazing_relationship_settings(4,1)%graze_poc = 0.0 +grazing_relationship_settings(4,1)%graze_zoo = 0.0 +grazing_relationship_settings(4,1)%grazing_function = 1 +grazing_relationship_settings(4,1)%lname = "null" +grazing_relationship_settings(4,1)%sname = "null" +grazing_relationship_settings(4,1)%z_grz = 0.0 +grazing_relationship_settings(4,1)%z_umax_0_per_day = 0.0 +grazing_relationship_settings(4,1)%zoo_ind_cnt = 0 +grazing_relationship_settings(4,2)%auto_ind_cnt = 0 +grazing_relationship_settings(4,2)%f_zoo_detr = 0.27 +grazing_relationship_settings(4,2)%graze_doc = 0.09 +grazing_relationship_settings(4,2)%graze_poc = 0.28 +grazing_relationship_settings(4,2)%graze_zoo = 0.25 +grazing_relationship_settings(4,2)%grazing_function = 1 +grazing_relationship_settings(4,2)%lname = "Grazing of microzoo by mesozoo" +grazing_relationship_settings(4,2)%sname = "grz_microzoo_mesozoo" +grazing_relationship_settings(4,2)%z_grz = 1.3 +grazing_relationship_settings(4,2)%z_umax_0_per_day = 0.2 +grazing_relationship_settings(4,2)%zoo_ind(1) = 1 +grazing_relationship_settings(4,2)%zoo_ind_cnt = 1 + +! tracer restoring +tracer_restore_vars(1) = "" +tracer_restore_vars(2) = "" +tracer_restore_vars(3) = "" +tracer_restore_vars(4) = "" +tracer_restore_vars(5) = "" +tracer_restore_vars(6) = "" +tracer_restore_vars(7) = "" +tracer_restore_vars(8) = "" +tracer_restore_vars(9) = "" +tracer_restore_vars(10) = "" +tracer_restore_vars(11) = "" +tracer_restore_vars(12) = "" +tracer_restore_vars(13) = "" +tracer_restore_vars(14) = "" +tracer_restore_vars(15) = "" +tracer_restore_vars(16) = "" +tracer_restore_vars(17) = "" +tracer_restore_vars(18) = "" +tracer_restore_vars(19) = "" +tracer_restore_vars(20) = "" +tracer_restore_vars(21) = "" +tracer_restore_vars(22) = "" +tracer_restore_vars(23) = "" +tracer_restore_vars(24) = "" +tracer_restore_vars(25) = "" +tracer_restore_vars(26) = "" +tracer_restore_vars(27) = "" +tracer_restore_vars(28) = "" +tracer_restore_vars(29) = "" +tracer_restore_vars(30) = "" +tracer_restore_vars(31) = "" +tracer_restore_vars(32) = "" +tracer_restore_vars(33) = "" +tracer_restore_vars(34) = "" +tracer_restore_vars(35) = "" +tracer_restore_vars(36) = "" +tracer_restore_vars(37) = "" diff --git a/standalone/templates/homebrew-gnu.mk b/standalone/templates/homebrew-gnu.mk index 7fbd45d..948e8b5 100644 --- a/standalone/templates/homebrew-gnu.mk +++ b/standalone/templates/homebrew-gnu.mk @@ -12,68 +12,36 @@ LD = mpif90 $(MAIN_PROGRAM) # flags # ######### DEBUG = -REPRO = -VERBOSE = -OPENMP = MAKEFLAGS += --jobs=2 FPPFLAGS := FFLAGS := -fcray-pointer -fdefault-double-8 -fdefault-real-8 -Waliasing -ffree-line-length-none -fno-range-check -FFLAGS += -I$(shell nf-config --includedir) -FFLAGS_OPT = -O3 FFLAGS_REPRO = -O2 -fbounds-check FFLAGS_DEBUG = -O0 -g -W -fbounds-check -fbacktrace -ffpe-trap=invalid,zero,overflow -FFLAGS_OPENMP = -fopenmp -FFLAGS_VERBOSE = CFLAGS := -D__IFC -CFLAGS += -I$(shell nc-config --includedir) -CFLAGS_OPT = -O2 -CFLAGS_OPENMP = -fopenmp +CFLAGS_REPRO= -O2 CFLAGS_DEBUG = -O0 -g -# Optional Testing compile flags. Mutually exclusive from DEBUG, REPRO, and OPT -# *_TEST will match the production if no new option(s) is(are) to be tested. -FFLAGS_TEST = -O2 -CFLAGS_TEST = -O2 - LDFLAGS := -LDFLAGS_OPENMP := -fopenmp -LDFLAGS_VERBOSE := -ifneq ($(REPRO),) -CFLAGS += $(CFLAGS_REPRO) -FFLAGS += $(FFLAGS_REPRO) -else ifneq ($(DEBUG),) +ifeq ($(DEBUG),1) CFLAGS += $(CFLAGS_DEBUG) FFLAGS += $(FFLAGS_DEBUG) -else ifneq ($(TEST),) -CFLAGS += $(CFLAGS_TEST) -FFLAGS += $(FFLAGS_TEST) else -CFLAGS += $(CFLAGS_OPT) -FFLAGS += $(FFLAGS_OPT) -endif - -ifneq ($(OPENMP),) -CFLAGS += $(CFLAGS_OPENMP) -FFLAGS += $(FFLAGS_OPENMP) -LDFLAGS += $(LDFLAGS_OPENMP) +CFLAGS += $(CFLAGS_REPRO) +FFLAGS += $(FFLAGS_REPRO) endif -ifneq ($(VERBOSE),) -CFLAGS += $(CFLAGS_VERBOSE) -FFLAGS += $(FFLAGS_VERBOSE) -LDFLAGS += $(LDFLAGS_VERBOSE) -endif +# NetCDF Things +FFLAGS += -I$(shell nf-config --includedir) +CFLAGS += -I$(shell nc-config --includedir) -ifeq ($(NETCDF),3) - # add the use_LARGEFILE cppdef - ifneq ($(findstring -Duse_netCDF,$(CPPDEFS)),) - CPPDEFS += -Duse_LARGEFILE - endif +# add the use_LARGEFILE cppdef +ifneq ($(findstring -Duse_netCDF,$(CPPDEFS)),) + CPPDEFS += -Duse_LARGEFILE endif LIBS := $(shell nc-config --libs) $(shell nf-config --flibs) diff --git a/standalone/templates/ncar-gnu.mk b/standalone/templates/ncar-gnu.mk index a60e316..2f2bb7f 100644 --- a/standalone/templates/ncar-gnu.mk +++ b/standalone/templates/ncar-gnu.mk @@ -1,86 +1,51 @@ # template for the GNU fortran compiler -# typical use with mkmf -# mkmf -t linux-gnu.mk -c"-Duse_libMPI -Duse_netCDF" path_names /usr/local/include + ############ # commands # ############ + FC = mpif90 CC = gcc CXX = g++ LD = mpif90 $(MAIN_PROGRAM) -######### -# flags # -######### -DEBUG = -REPRO = -VERBOSE = -OPENMP = +############ +# flags # +############ +DEBUG = MAKEFLAGS += --jobs=$(shell grep '^processor' /proc/cpuinfo | wc -l) +LDFLAGS := +FC_AUTO_R8 := -fdefault-real-8 -fdefault-double-8 FPPFLAGS := +FFLAGS := $(FC_AUTO_R8) -fconvert=big-endian -ffree-line-length-none -ffixed-line-length-none -fallow-argument-mismatch -fallow-invalid-boz -fcray-pointer +FFLAGS_REPRO = -O +FFLAGS_DEBUG = -g -Wall -Og -fbacktrace -ffpe-trap=zero,overflow -fcheck=bounds -FFLAGS := -fcray-pointer -fdefault-double-8 -fdefault-real-8 -Waliasing -ffree-line-length-none -fno-range-check -fallow-argument-mismatch -FFLAGS += -I$(shell nc-config --includedir) -FFLAGS += $(shell pkg-config --cflags-only-I mpich2-c) -FFLAGS_OPT = -O3 -FFLAGS_REPRO = -O2 -fbounds-check -FFLAGS_DEBUG = -O0 -g -W -fbounds-check -fbacktrace -ffpe-trap=invalid,zero,overflow -FFLAGS_OPENMP = -fopenmp -FFLAGS_VERBOSE = - -CFLAGS := -D__IFC -CFLAGS += -I$(shell nc-config --includedir) -CFLAGS += $(shell pkg-config --cflags-only-I mpich2-c) -CFLAGS_OPT = -O2 -CFLAGS_OPENMP = -fopenmp -CFLAGS_DEBUG = -O0 -g - -# Optional Testing compile flags. Mutually exclusive from DEBUG, REPRO, and OPT -# *_TEST will match the production if no new option(s) is(are) to be tested. -FFLAGS_TEST = -O2 -CFLAGS_TEST = -O2 +CFLAGS := -std=gnu99 +CFLAGS_REPRO = -O +CFLAGS_DEBUG = -g -Wall -Og -fbacktrace -ffpe-trap=invalid,zero,overflow -fcheck=bounds -LDFLAGS := -LDFLAGS_OPENMP := -fopenmp -LDFLAGS_VERBOSE := - -ifneq ($(REPRO),) -CFLAGS += $(CFLAGS_REPRO) -FFLAGS += $(FFLAGS_REPRO) -else ifneq ($(DEBUG),) -CFLAGS += $(CFLAGS_DEBUG) -FFLAGS += $(FFLAGS_DEBUG) -else ifneq ($(TEST),) -CFLAGS += $(CFLAGS_TEST) -FFLAGS += $(FFLAGS_TEST) +ifeq ($(DEBUG),1) + FFLAGS += $(FFLAGS_DEBUG) + CFLAGS += $(CFLAGS_DEBUG) else -CFLAGS += $(CFLAGS_OPT) -FFLAGS += $(FFLAGS_OPT) -endif - -ifneq ($(OPENMP),) -CFLAGS += $(CFLAGS_OPENMP) -FFLAGS += $(FFLAGS_OPENMP) -LDFLAGS += $(LDFLAGS_OPENMP) + FFLAGS += $(FFLAGS_REPRO) + CFLAGS += $(CFLAGS_REPRO) endif -ifneq ($(VERBOSE),) -CFLAGS += $(CFLAGS_VERBOSE) -FFLAGS += $(FFLAGS_VERBOSE) -LDFLAGS += $(LDFLAGS_VERBOSE) -endif +# NetCDF Flags +FFLAGS += -I$(shell nc-config --includedir) +CFLAGS += -I$(shell nc-config --includedir) -ifeq ($(NETCDF),3) +ifneq ($(findstring -Duse_netCDF,$(CPPDEFS)),) # add the use_LARGEFILE cppdef - ifneq ($(findstring -Duse_netCDF,$(CPPDEFS)),) - CPPDEFS += -Duse_LARGEFILE - endif + CPPDEFS += -Duse_LARGEFILE endif -LIBS := $(shell nf-config --flibs) $(shell pkg-config --libs mpich2-f90) -LDFLAGS += $(LIBS) +# Linking Flags +LDFLAGS += $(shell nf-config --flibs) $(shell pkg-config --libs mpich2-f90) #--------------------------------------------------------------------------- # you should never need to change any lines below. diff --git a/standalone/templates/ncar-intel.mk b/standalone/templates/ncar-intel.mk index 4ebac90..5beded2 100644 --- a/standalone/templates/ncar-intel.mk +++ b/standalone/templates/ncar-intel.mk @@ -1,6 +1,4 @@ # template for Intel compilers -# typical use with mkmf: -# mkmf -t nescc-intel.mk -c "-Duse_libMPI -Duse_netCDF" path_names /usr/local/include ############ # commands # @@ -16,72 +14,39 @@ LD = mpif90 ############ DEBUG = -REPRO = -VERBOSE = -OPENMP = - MAKEFLAGS += --jobs=8 +LDFLAGS := +FC_AUTO_R8 := -r8 FPPFLAGS := -fpp -Wp,-w +FFLAGS := $(FC_AUTO_R8) -qno-opt-dynamic-align -convert big_endian -assume byterecl -ftz -traceback -assume realloc_lhs -fp-model source -no-fma -qopt-report -march=core-avx2 +FFLAGS_DEBUG = -O0 -g -check uninit -check bounds -check nopointer -fpe0 -check noarg_temp_created # CESM uses -check pointers, that throws an error, changed to nopointer +FFLAGS_REPRO = -O2 -debug minimal -FFLAGS := -fno-alias -auto -safe-cray-ptr -ftz -assume byterecl -i4 -r8 -nowarn -traceback -FFLAGS += -I$(shell nf-config --includedir) -FFLAGS_OPT = -O3 -debug minimal -fp-model source -qoverride-limits -FFLAGS_DEBUG = -g -O0 -check -check noarg_temp_created -check nopointer -warn -warn noerrors -fpe0 -ftrapuv -FFLAGS_REPRO = -O2 -debug minimal -fp-model source -qoverride-limits -FFLAGS_OPENMP = -openmp -FFLAGS_VERBOSE = -v -V -what - -CFLAGS := -D__IFC -sox -traceback -diag-disable=10441 -CFLAGS += -I$(NETCDF_PATH)/include -CFLAGS_OPT = -O2 -debug minimal -CFLAGS_OPENMP = -openmp -CFLAGS_DEBUG = -O0 -g -ftrapuv - -LDFLAGS := -LDFLAGS_OPENMP := -openmp -LDFLAGS_VERBOSE := -Wl,-V,--verbose,-cref,-M - -# start with blank LIBS -LIBS := +CFLAGS := -qno-opt-dynamic-align -fp-model precise -std=gnu99 -no-fma -qopt-report -march=core-avx2 +CFLAGS_REPRO= -O2 -debug minimal +CFLAGS_DEBUG = -O0 -g -ifneq ($(REPRO),) - CFLAGS += $(CFLAGS_REPRO) - FFLAGS += $(FFLAGS_REPRO) -else ifneq ($(DEBUG),) - CFLAGS += $(CFLAGS_DEBUG) +ifeq ($(DEBUG),1) FFLAGS += $(FFLAGS_DEBUG) + CFLAGS += $(CFLAGS_DEBUG) else - CFLAGS += $(CFLAGS_OPT) - FFLAGS += $(FFLAGS_OPT) -endif - -ifneq ($(OPENMP),) - CFLAGS += $(CFLAGS_OPENMP) - FFLAGS += $(FFLAGS_OPENMP) - LDFLAGS += $(LDFLAGS_OPENMP) + FFLAGS += $(FFLAGS_REPRO) + CFLAGS += $(CFLAGS_REPRO) endif -ifneq ($(VERBOSE),) - CFLAGS += $(CFLAGS_VERBOSE) - FFLAGS += $(FFLAGS_VERBOSE) - LDFLAGS += $(LDFLAGS_VERBOSE) -endif +# NetCDF Flags +FFLAGS += -I$(shell nf-config --includedir) +CFLAGS += -I$(NETCDF_PATH)/include -ifeq ($(NETCDF),3) +ifneq ($(findstring -Duse_netCDF,$(CPPDEFS)),) # add the use_LARGEFILE cppdef - ifneq ($(findstring -Duse_netCDF,$(CPPDEFS)),) - CPPDEFS += -Duse_LARGEFILE - endif + CPPDEFS += -Duse_LARGEFILE endif +CPPDEFS += -D__IFC -# Add netcdf linking -LIBS := $(shell nc-config --libs) $(shell nf-config --flibs) - -#LIBS += -lmpi -#LIBS += -lmpi -lsma -#LIBS += -lmkl_blas95_lp64 -lmkl_lapack95_lp64 -lmkl_intel_lp64 -lmkl_core -lmkl_sequential -LDFLAGS += $(LIBS) +# Linking Flags +LDFLAGS += $(shell nc-config --libs) $(shell nf-config --flibs) #--------------------------------------------------------------------------- # you should never need to change any lines below. diff --git a/standalone/templates/ncar-nvhpc.mk b/standalone/templates/ncar-nvhpc.mk new file mode 100644 index 0000000..6d69464 --- /dev/null +++ b/standalone/templates/ncar-nvhpc.mk @@ -0,0 +1,139 @@ +# Template for the PGI Compilers + +############ +# commands # +############ + +FC = ftn +CC = cc +CXX = cc +LD = ftn $(MAIN_PROGRAM) + +############ +# flags # +############ + +DEBUG = +MAKEFLAGS += --jobs=8 +LDFLAGS := + +FC_AUTO_R8 = -r8 +FPPFLAGS := $(shell pkg-config --cflags yaml-0.1) +FFLAGS = $(FC_AUTO_R8) -Mnofma -i4 -gopt -time -Mextend -byteswapio -Mflushz -Kieee +FFLAGS_DEBUG = -O0 -g # -Mbounds fails compilation and -KTrap=fp fails run! seems like there is a floating point exception in netcdf_io_mod +FFLAGS_REPRO = -O2 -tp=zen3 + +CFLAGS = -gopt -time -Mnofma +CFLAGS_REPRO = -O2 +CFLAGS_DEBUG = +CPPFLAGS := $(shell pkg-config --cflags yaml-0.1) + +# Get compile flags based on target macros. +ifeq ($(DEBUG),1) + FFLAGS += $(FFLAGS_DEBUG) + CFLAGS += $(CFLAGS_DEBUG) +else + FFLAGS += $(FFLAGS_REPRO) + CFLAGS += $(CFLAGS_REPRO) +endif + +# NetCDF Flags +FFLAGS += $(shell nf-config --fflags) +CFLAGS += $(shell nc-config --cflags) + +ifneq ($(findstring -Duse_netCDF,$(CPPDEFS)),) + # add the use_LARGEFILE cppdef + CPPDEFS += -Duse_LARGEFILE +endif + +# Linking Flags +LDFLAGS += $(shell nc-config --libs) $(shell nf-config --flibs) -llapack -lblas -time -Wl,--allow-multiple-definition + +#--------------------------------------------------------------------------- +# you should never need to change any lines below. + +# see the MIPSPro F90 manual for more details on some of the file extensions +# discussed here. +# this makefile template recognizes fortran sourcefiles with extensions +# .f, .f90, .F, .F90. Given a sourcefile ., where is one of +# the above, this provides a number of default actions: + +# make .opt create an optimization report +# make .o create an object file +# make .s create an assembly listing +# make .x create an executable file, assuming standalone +# source +# make .i create a preprocessed file (for .F) +# make .i90 create a preprocessed file (for .F90) + +# The macro TMPFILES is provided to slate files like the above for removal. + +RM = rm -f +TMPFILES = .*.m *.B *.L *.i *.i90 *.l *.s *.mod *.opt + +.SUFFIXES: .F .F90 .H .L .T .f .f90 .h .i .i90 .l .o .s .opt .x + +.f.L: + $(FC) $(FFLAGS) -c -listing $*.f +.f.opt: + $(FC) $(FFLAGS) -c -opt_report_level max -opt_report_phase all -opt_report_file $*.opt $*.f +.f.l: + $(FC) $(FFLAGS) -c $(LIST) $*.f +.f.T: + $(FC) $(FFLAGS) -c -cif $*.f +.f.o: + $(FC) $(FFLAGS) -c $*.f +.f.s: + $(FC) $(FFLAGS) -S $*.f +.f.x: + $(FC) $(FFLAGS) -o $*.x $*.f *.o $(LDFLAGS) +.f90.L: + $(FC) $(FFLAGS) -c -listing $*.f90 +.f90.opt: + $(FC) $(FFLAGS) -c -opt_report_level max -opt_report_phase all -opt_report_file $*.opt $*.f90 +.f90.l: + $(FC) $(FFLAGS) -c $(LIST) $*.f90 +.f90.T: + $(FC) $(FFLAGS) -c -cif $*.f90 +.f90.o: + $(FC) $(FFLAGS) -c $*.f90 +.f90.s: + $(FC) $(FFLAGS) -c -S $*.f90 +.f90.x: + $(FC) $(FFLAGS) -o $*.x $*.f90 *.o $(LDFLAGS) +.F.L: + $(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -c -listing $*.F +.F.opt: + $(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -c -opt_report_level max -opt_report_phase all -opt_report_file $*.opt $*.F +.F.l: + $(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -c $(LIST) $*.F +.F.T: + $(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -c -cif $*.F +.F.f: + $(FC) $(CPPDEFS) $(FPPFLAGS) -EP $*.F > $*.f +.F.i: + $(FC) $(CPPDEFS) $(FPPFLAGS) -P $*.F +.F.o: + $(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -c $*.F +.F.s: + $(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -c -S $*.F +.F.x: + $(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -o $*.x $*.F *.o $(LDFLAGS) +.F90.L: + $(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -c -listing $*.F90 +.F90.opt: + $(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -c -opt_report_level max -opt_report_phase all -opt_report_file $*.opt $*.F90 +.F90.l: + $(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -c $(LIST) $*.F90 +.F90.T: + $(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -c -cif $*.F90 +.F90.f90: + $(FC) $(CPPDEFS) $(FPPFLAGS) -EP $*.F90 > $*.f90 +.F90.i90: + $(FC) $(CPPDEFS) $(FPPFLAGS) -P $*.F90 +.F90.o: + $(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -c $*.F90 +.F90.s: + $(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -c -S $*.F90 +.F90.x: + $(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -o $*.x $*.F90 *.o $(LDFLAGS) diff --git a/standalone/templates/ubuntu-gnu.mk b/standalone/templates/ubuntu-gnu.mk index 034ca5a..0cb14f7 100644 --- a/standalone/templates/ubuntu-gnu.mk +++ b/standalone/templates/ubuntu-gnu.mk @@ -12,68 +12,38 @@ LD = mpif90 $(MAIN_PROGRAM) # flags # ######### DEBUG = -REPRO = -VERBOSE = -OPENMP = + MAKEFLAGS += --jobs=2 FPPFLAGS := FFLAGS := -fcray-pointer -fdefault-double-8 -fdefault-real-8 -Waliasing -ffree-line-length-none -fno-range-check -FFLAGS += -I$(shell nf-config --includedir) -FFLAGS_OPT = -O3 FFLAGS_REPRO = -O2 -fbounds-check FFLAGS_DEBUG = -O0 -g -W -fbounds-check -fbacktrace -ffpe-trap=invalid,zero,overflow -FFLAGS_OPENMP = -fopenmp -FFLAGS_VERBOSE = + CFLAGS := -D__IFC -CFLAGS += -I$(shell nc-config --includedir) -CFLAGS_OPT = -O2 -CFLAGS_OPENMP = -fopenmp +CFLAGS_REPRO= -O2 CFLAGS_DEBUG = -O0 -g -# Optional Testing compile flags. Mutually exclusive from DEBUG, REPRO, and OPT -# *_TEST will match the production if no new option(s) is(are) to be tested. -FFLAGS_TEST = -O2 -CFLAGS_TEST = -O2 - LDFLAGS := -LDFLAGS_OPENMP := -fopenmp -LDFLAGS_VERBOSE := -ifneq ($(REPRO),) -CFLAGS += $(CFLAGS_REPRO) -FFLAGS += $(FFLAGS_REPRO) -else ifneq ($(DEBUG),) +ifeq ($(DEBUG),1) CFLAGS += $(CFLAGS_DEBUG) FFLAGS += $(FFLAGS_DEBUG) -else ifneq ($(TEST),) -CFLAGS += $(CFLAGS_TEST) -FFLAGS += $(FFLAGS_TEST) else -CFLAGS += $(CFLAGS_OPT) -FFLAGS += $(FFLAGS_OPT) -endif - -ifneq ($(OPENMP),) -CFLAGS += $(CFLAGS_OPENMP) -FFLAGS += $(FFLAGS_OPENMP) -LDFLAGS += $(LDFLAGS_OPENMP) +CFLAGS += $(CFLAGS_REPRO) +FFLAGS += $(FFLAGS_REPRO) endif -ifneq ($(VERBOSE),) -CFLAGS += $(CFLAGS_VERBOSE) -FFLAGS += $(FFLAGS_VERBOSE) -LDFLAGS += $(LDFLAGS_VERBOSE) -endif +# NetCDF Things +FFLAGS += -I$(shell nf-config --includedir) +CFLAGS += -I$(shell nc-config --includedir) -ifeq ($(NETCDF),3) - # add the use_LARGEFILE cppdef - ifneq ($(findstring -Duse_netCDF,$(CPPDEFS)),) - CPPDEFS += -Duse_LARGEFILE - endif +# add the use_LARGEFILE cppdef +ifneq ($(findstring -Duse_netCDF,$(CPPDEFS)),) + CPPDEFS += -Duse_LARGEFILE endif LIBS := $(shell nc-config --libs) $(shell nf-config --flibs)