diff --git a/.github/workflows/mom6_obgc_1d.yml b/.github/workflows/mom6_obgc_1d.yml index cbaca03..4044ddb 100644 --- a/.github/workflows/mom6_obgc_1d.yml +++ b/.github/workflows/mom6_obgc_1d.yml @@ -36,7 +36,19 @@ jobs: sudo rm -rf "/usr/local/share/boost" sudo rm -rf "$AGENT_TOOLSDIRECTORY" df -h - pwd - ls -l -h echo "docker image build ..." -# docker build --file "./tests/Dockerfile.ci" -t mom6_obgc_1d:develop . + docker build --file "./tests/Dockerfile.ci" -t mom6_obgc_1d:develop . + + - name: Check Docker Image + run: | + docker images + if [[ $(docker image inspect mom6_obgc_1d:develop) ]]; then + echo "mom6_obgc_1d:develop generated ..." + else + echo "mom6_obgc_1d:develop was not generated ..." + exit 1 + fi + +# - name: Docker Logout +# run: | +# docker logout diff --git a/.gitmodules b/.gitmodules index ff19cea..fe56f4c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,30 +1,40 @@ [submodule "src/mkmf"] path = src/mkmf url = https://github.com/NOAA-GFDL/mkmf.git + branch = master [submodule "src/FMS"] path = src/FMS url = https://github.com/NOAA-GFDL/FMS.git -[submodule "src/SIS2"] - path = src/SIS2 - url = https://github.com/NOAA-GFDL/SIS2.git -[submodule "src/MOM6"] - path = src/MOM6 - url = https://github.com/nikizadehgfdl/MOM6.git + branch = 2022.04 [submodule "src/icebergs"] path = src/icebergs url = https://github.com/NOAA-GFDL/icebergs.git + branch = dev/gfdl [submodule "src/coupler"] path = src/coupler url = https://github.com/NOAA-GFDL/coupler.git + branch = 2022.04 [submodule "src/atmos_null"] path = src/atmos_null url = https://github.com/NOAA-GFDL/atmos_null.git + branch = 2021.03 [submodule "src/land_null"] path = src/land_null url = https://github.com/NOAA-GFDL/land_null.git + branch = 2021.03 [submodule "src/ice_param"] path = src/ice_param url = https://github.com/NOAA-GFDL/ice_param.git + branch = 2021.03 +[submodule "src/SIS2"] + path = src/SIS2 + url = https://github.com/NOAA-GFDL/SIS2.git + branch = dev/gfdl [submodule "src/ocean_BGC"] path = src/ocean_BGC - url = https://github.com/nikizadehgfdl/ocean_BGC.git + url = https://github.com/yichengt900/ocean_BGC.git + branch = feature/4P-2023-10-diags +[submodule "src/MOM6"] + path = src/MOM6 + url = https://github.com/yichengt900/MOM6.git + branch = feature/4P-2023-10-diags diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 0000000..ea39cdf --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,22 @@ +# .readthedocs.yaml +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + +# Set the version of Python and other tools you might need +build: + os: ubuntu-22.04 + tools: + python: "3.11" + +# Build documentation in the docs/ directory with Sphinx +sphinx: + configuration: docs/source/conf.py + +# We recommend specifying your dependencies to enable reproducible builds: +# https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html +python: + install: + - requirements: docs/requirements.txt diff --git a/builds/docker/linux-gnu.env b/builds/docker/linux-gnu.env new file mode 100644 index 0000000..e69de29 diff --git a/builds/docker/linux-gnu.mk b/builds/docker/linux-gnu.mk new file mode 100644 index 0000000..a412b52 --- /dev/null +++ b/builds/docker/linux-gnu.mk @@ -0,0 +1,277 @@ +# Template for the GNU Compiler Collection on Trusty version of Ubuntu Linux systems (used by Travis-CI) +# +# Typical use with mkmf +# mkmf -t linux-ubuntu-trusty-gnu.mk -c"-Duse_libMPI -Duse_netCDF" path_names /usr/local/include + +############ +# Commands Macors +FC = mpif90 +CC = mpicc +LD = mpif90 $(MAIN_PROGRAM) + +####################### +# Build target macros +# +# Macros that modify compiler flags used in the build. Target +# macrose are usually set on the call to make: +# +# make REPRO=on NETCDF=3 +# +# Most target macros are activated when their value is non-blank. +# Some have a single value that is checked. Others will use the +# value of the macro in the compile command. + +DEBUG = # If non-blank, perform a debug build (Cannot be + # mixed with REPRO or TEST) + +REPRO = # If non-blank, erform a build that guarentees + # reprodicuibilty from run to run. Cannot be used + # with DEBUG or TEST + +TEST = # If non-blank, use the compiler options defined in + # the FFLAGS_TEST and CFLAGS_TEST macros. Cannot be + # use with REPRO or DEBUG + +VERBOSE = # If non-blank, add additional verbosity compiler + # options + +OPENMP = # If non-blank, compile with openmp enabled + +NO_OVERRIDE_LIMITS = # If non-blank, do not use the -qoverride-limits + # compiler option. Default behavior is to compile + # with -qoverride-limits. + +NETCDF = # If value is '3' and CPPDEFS contains + # '-Duse_netCDF', then the additional cpp macro + # '-Duse_LARGEFILE' is added to the CPPDEFS macro. + +INCLUDES = # A list of -I Include directories to be added to the + # the compile command. + +SSE = # The SSE options to be used to compile. If blank, + # than use the default SSE settings for the host. + # Current default is to use SSE2. + +COVERAGE = # Add the code coverage compile options. + +# Need to use at least GNU Make version 3.81 +need := 3.81 +ok := $(filter $(need),$(firstword $(sort $(MAKE_VERSION) $(need)))) +ifneq ($(need),$(ok)) +$(error Need at least make version $(need). Load module gmake/3.81) +endif + +# REPRO, DEBUG and TEST need to be mutually exclusive of each other. +# Make sure the user hasn't supplied two at the same time +ifdef REPRO +ifneq ($(DEBUG),) +$(error Options REPRO and DEBUG cannot be used together) +else ifneq ($(TEST),) +$(error Options REPRO and TEST cannot be used together) +endif +else ifdef DEBUG +ifneq ($(TEST),) +$(error Options DEBUG and TEST cannot be used together) +endif +endif + +# Required Preprocessor Macros: +CPPDEFS += -Duse_netCDF + +# Additional Preprocessor Macros needed due to Autotools and CMake +CPPDEFS += -DHAVE_SCHED_GETAFFINITY + +# Macro for Fortran preprocessor +FPPFLAGS := $(INCLUDES) +# Fortran Compiler flags for the NetCDF library +FPPFLAGS += $(shell nc-config --fflags) + +# Base set of Fortran compiler flags +FFLAGS := -fcray-pointer -fdefault-double-8 -fdefault-real-8 -Waliasing -ffree-line-length-none -fno-range-check + +# Flags based on perforance target (production (OPT), reproduction (REPRO), or debug (DEBUG) +FFLAGS_OPT = -O3 +FFLAGS_REPRO = -O2 -fbounds-check +FFLAGS_DEBUG = -O0 -g -W -fbounds-check -fbacktrace -ffpe-trap=invalid,zero,overflow + +# Flags to add additional build options +FFLAGS_OPENMP = -fopenmp +FFLAGS_VERBOSE = +FFLAGS_COVERAGE = + +# Macro for C preprocessor +CPPFLAGS = $(INCLUDES) +# C Compiler flags for the NetCDF library +CPPFLAGS += $(shell nc-config --cflags) + +# Base set of C compiler flags +CFLAGS := -D__IFC + +# Flags based on perforance target (production (OPT), reproduction (REPRO), or debug (DEBUG) +CFLAGS_OPT = -O2 +CFLAGS_REPRO = -O2 +CFLAGS_DEBUG = -O0 -g + +# Flags to add additional build options +CFLAGS_OPENMP = -fopenmp +CFLAGS_VERBOSE = +CFLAGS_COVERAGE = + +# 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 = $(FFLAGS_OPT) +CFLAGS_TEST = $(CFLAGS_OPT) + +# Linking flags +LDFLAGS := +LDFLAGS_OPENMP := -fopenmp +LDFLAGS_VERBOSE := +LDFLAGS_COVERAGE := + +# Start with a blank LIBS +LIBS = +# NetCDF library flags +LIBS += $(shell nc-config --flibs) + +# Get compile flags based on target macros. +ifdef REPRO +CFLAGS += $(CFLAGS_REPRO) +FFLAGS += $(FFLAGS_REPRO) +else ifdef DEBUG +CFLAGS += $(CFLAGS_DEBUG) +FFLAGS += $(FFLAGS_DEBUG) +else ifdef TEST +CFLAGS += $(CFLAGS_TEST) +FFLAGS += $(FFLAGS_TEST) +else +CFLAGS += $(CFLAGS_OPT) +FFLAGS += $(FFLAGS_OPT) +endif + +ifdef OPENMP +CFLAGS += $(CFLAGS_OPENMP) +FFLAGS += $(FFLAGS_OPENMP) +LDFLAGS += $(LDFLAGS_OPENMP) +endif + +ifdef SSE +CFLAGS += $(SSE) +FFLAGS += $(SSE) +endif + +ifdef NO_OVERRIDE_LIMITS +FFLAGS += $(FFLAGS_OVERRIDE_LIMITS) +endif + +ifdef VERBOSE +CFLAGS += $(CFLAGS_VERBOSE) +FFLAGS += $(FFLAGS_VERBOSE) +LDFLAGS += $(LDFLAGS_VERBOSE) +endif + +ifeq ($(NETCDF),3) + # add the use_LARGEFILE cppdef + ifneq ($(findstring -Duse_netCDF,$(CPPDEFS)),) + CPPDEFS += -Duse_LARGEFILE + endif +endif + +ifdef COVERAGE +ifdef BUILDROOT +PROF_DIR=-prof-dir=$(BUILDROOT) +endif +CFLAGS += $(CFLAGS_COVERAGE) $(PROF_DIR) +FFLAGS += $(FFLAGS_COVERAGE) $(PROF_DIR) +LDFLAGS += $(LDFLAGS_COVERAGE) $(PROF_DIR) +endif + +LDFLAGS += $(LIBS) + +#--------------------------------------------------------------------------- +# 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/builds/linux-build.bash b/builds/linux-build.bash index 18446ed..a1e7728 100755 --- a/builds/linux-build.bash +++ b/builds/linux-build.bash @@ -74,11 +74,13 @@ fi srcdir=$abs_rootdir/../src +sed -i 's/static pid_t gettid(void)/pid_t gettid(void)/g' $srcdir/FMS/affinity/affinity.c + mkdir -p build/$machine_name-$platform/shared/$target pushd build/$machine_name-$platform/shared/$target rm -f path_names $srcdir/mkmf/bin/list_paths $srcdir/FMS/{affinity,amip_interp,column_diagnostics,diag_integral,drifters,horiz_interp,memutils,sat_vapor_pres,topography,astronomy,constants,diag_manager,field_manager,include,monin_obukhov,platform,tracer_manager,axis_utils,coupler,fms,fms2_io,interpolator,mosaic,mosaic2,random_numbers,time_interp,tridiagonal,block_control,data_override,exchange,mpp,time_manager,string_utils,parser}/ $srcdir/FMS/libFMS.F90 -$srcdir/mkmf/bin/mkmf -t $abs_rootdir/$machine_name/$platform.mk -p libfms.a -c "-Duse_libMPI -Duse_netCDF -DMAXFIELDMETHODS_=400" path_names +$srcdir/mkmf/bin/mkmf -t $abs_rootdir/$machine_name/$platform.mk -p libfms.a -c "-Duse_libMPI -Duse_netCDF -DMAXFIELDMETHODS_=800" path_names make $makeflags libfms.a @@ -93,10 +95,10 @@ if [[ $flavor =~ "mom6sis2" ]] ; then mkdir -p build/$machine_name-$platform/ocean_ice/$target pushd build/$machine_name-$platform/ocean_ice/$target rm -f path_names - $srcdir/mkmf/bin/list_paths $srcdir/MOM6/{config_src/infra/FMS2,config_src/memory/dynamic_symmetric,config_src/drivers/FMS_cap,config_src/external/ODA_hooks,config_src/external/database_comms,config_src/external/drifters,config_src/external/stochastic_physics,pkg/GSW-Fortran/{modules,toolbox}/,src/{*,*/*}/} $srcdir/SIS2/{config_src/dynamic,config_src/external/Icepack_interfaces,src} $srcdir/icebergs $srcdir/FMS/{coupler,include}/ $srcdir/{ocean_BGC/generic_tracers,ocean_BGC/mocsy/src}/ $srcdir/{atmos_null,ice_param,land_null,coupler/shared/,coupler/full/}/ + $srcdir/mkmf/bin/list_paths $srcdir/MOM6/{config_src/infra/FMS2,config_src/memory/dynamic_symmetric,config_src/drivers/FMS_cap,config_src/external/ODA_hooks,config_src/external/database_comms,config_src/external/drifters,config_src/external/stochastic_physics,pkg/GSW-Fortran/{modules,toolbox}/,src/{*,*/*}/} $srcdir/SIS2/{config_src/dynamic_symmetric,config_src/external/Icepack_interfaces,src} $srcdir/icebergs/src $srcdir/FMS/{coupler,include}/ $srcdir/{ocean_BGC/generic_tracers,ocean_BGC/mocsy/src}/ $srcdir/{atmos_null,ice_param,land_null,coupler/shared/,coupler/full/}/ -compiler_options='-DUSE_FMS2_IO -DMAX_FIELDS_=100 -DNOT_SET_AFFINITY -D_USE_MOM6_DIAG -D_USE_GENERIC_TRACER -DUSE_PRECISION=2 -D_USE_LEGACY_LAND_ -Duse_AM3_physics' +compiler_options='-DINTERNAL_FILE_NML -DMAX_FIELDS_=600 -DNOT_SET_AFFINITY -D_USE_MOM6_DIAG -D_USE_GENERIC_TRACER -DUSE_PRECISION=2 -D_USE_LEGACY_LAND_ -Duse_AM3_physics' linker_options='' if [[ "$target" =~ "stdpar" ]] ; then compiler_options="$compiler_options -stdpar -Minfo=accel" diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..69fe55e --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,19 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +SOURCEDIR = source +BUILDDIR = build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) \ No newline at end of file diff --git a/docs/README b/docs/README new file mode 100644 index 0000000..b894ddf --- /dev/null +++ b/docs/README @@ -0,0 +1,32 @@ +Steps to build and use the Sphinx documentation tool: + +1) Get Sphinx, sphinxcontrib-bibtex, and the RTD theme installed on your desktop from + http://www.sphinx-doc.org/en/master/usage/installation.html + https://sphinxcontrib-bibtex.readthedocs.io/en/latest/quickstart.html#installation + https://pypi.org/project/sphinx-rtd-theme/ + + For example: + pip install sphinx + pip install sphinxcontrib-bibtex + pip install sphinx-rtd-theme + + One approach that has worked to resolve "Module Not Found" errors for users with MacPorts package manager: + $ sudo port install py-six # may not be necessary + $ sudo port install py310-sphinxcontrib-bibtex + $ sudo port select --set sphinx py310-sphinx + $ sudo port install py310-sphinx_rtd_theme + + py310 can be replaced with the user's version of Python (e.g., py39) + +To build html: + +$ cd MOM6_OBGC_examples/docs +$ make clean && sphinx-build -b html source build + +The "make html" command can often be used in place of the previous command. + +Sphinx uses Latex to export the documentation as a PDF file. To build pdf: + +make latexpdf + +It will generate a PDF file in ./build/latex/.pdf diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 0000000..543c6b1 --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=source +set BUILDDIR=build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% + +:end +popd diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 0000000..7be32f5 --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,3 @@ +sphinxcontrib-bibtex +sphinx_rtd_theme +docutils==0.16 \ No newline at end of file diff --git a/docs/source/ContainerQuickstart.rst b/docs/source/ContainerQuickstart.rst new file mode 100644 index 0000000..7527ada --- /dev/null +++ b/docs/source/ContainerQuickstart.rst @@ -0,0 +1,79 @@ +.. _QuickstartC: + +==================================== +Container-Based Quick Start Guide +==================================== + +This Container-Based Quick Start Guide will help users build and run the 1D case for the MOM6-OBGC System using a `Singularity/Apptainer `__ container. The :term:`container` approach provides a uniform enviroment in which to build and run the MOM6-OBGC. Normally, the details of building and running the MOM6-OBGC vary from system to system due to the many possible combinations of operating systems, compilers, :term:`MPIs `, and package versions available. Installation via container reduces this variability and allows for a smoother MOM6-OBGC build experience. + +The basic "1D" case described here builds a MOM6-OBGC for the Bermuda Atlantic Time-series Study (BATS) with OM4 single column configuration as well as COBALT-4p (still under development). + +Prerequisites +------------------- + +Users must have either Docker (recommended for personal Windows/macOS systems) or Singularity/Apptainer (recommended for users working on Linux, NOAA Cloud, or HPC systems). + +Install Docker on Windows/macOS +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +To build and run the MOM6-OBGC using a Docker container, first install the software according to the `Docker Installation Guide for Windows `__ or `Docker Installation Guide for macOS `__. + +Install Singularity/Apptainer +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. note:: + + As of November 2021, the Linux-supported version of Singularity has been `renamed `__ to *Apptainer*. Apptainer has maintained compatibility with Singularity, so ``singularity`` commands should work with either Singularity or Apptainer (see compatibility details `here `__.) + +To build and run the MOM6-OBGC using a Singularity/Apptainer container, first install the software according to the `Apptainer Installation Guide `__. This will include the installation of all dependencies. + +Build and run 1-D example using Docker +----------------------------------------- +User can follow the following steps to build and run MOM6-OBGC 1-D case within a Docker container. +.. code-block:: + + #Assume user is under /USER_HOME_PATH + docker pull clouden90/1d_mom6_cobalt:v0.1 #This will pull docker image to your local machine + git clone -b feature/4p-2023-10 https://github.com/yichengt900/MOM6_OBGC_examples.git --recursive #git clone MOM6-OBGC feature branch + cd USER_HOME_PATH//MOM6_OBGC_examples/exps/OM4.single_column.COBALT.p4/INPUT + rm ocean_hgrid.nc; wget https://gfdl-med.s3.amazonaws.com/OceanBGC_dataset/ocean_hgrid.nc + rm COBALT_2023_10_spinup_2003_subset.nc; wget https://gfdl-med.s3.amazonaws.com/OceanBGC_dataset/COBALT_2023_10_spinup_2003_subset.nc + docker run --rm -v /USER_HOME_PATH:/work -it clouden90/1d_mom6_cobalt:v0.1 bash --login # run docker container + cd /work/MOM6_OBGC_examples/builds + ./linux-build.bash -m docker -p linux-gnu -t prod -f mom6sis2 #build MOM6-SIS2-OBGC + cd /work/MOM6_OBGC_examples/exps + ln -fs /opt/datasets ./ + cd OM4.single_column.COBALT.p4 + mpirun -np 1 ../../builds/build/docker-linux-gnu/ocean_ice/prod/MOM6SIS2 + + +Build and run 1-D example using Singularity/Apptainer container +----------------------------------------- +For users working on systems with limited disk space in their ``/home`` directory, it is recommended to set the ``SINGULARITY_CACHEDIR`` and ``SINGULARITY_TMPDIR`` environment variables to point to a location with adequate disk space. For example: + +.. code-block:: + + export SINGULARITY_CACHEDIR=/absolute/path/to/writable/directory/cache + export SINGULARITY_TMPDIR=/absolute/path/to/writable/directory/tmp + +where ``/absolute/path/to/writable/directory/`` refers to a writable directory (usually a project or user directory within ``/lustre``, ``/work``, ``/scratch``, or ``/glade`` on NOAA RDHPC systems). If the ``cache`` and ``tmp`` directories do not exist already, they must be created with a ``mkdir`` command. + +Then User can follow the following steps to build and run MOM6-OBGC 1-D case within a Singularity/Apptainer container. +.. code-block:: + + #Assume user is under /USER_HOME_PATH + singularity pull 1d_mom6_cobalt.sif docker://clouden90/1d_mom6_cobalt:v0.1 #pull docker image and convert to sif + git clone -b feature/4p-2023-10 https://github.com/yichengt900/MOM6_OBGC_examples.git --recursive #git clone MOM6-OBGC feature branch + cd /USER_HOME_PATH/MOM6_OBGC_examples/exps/OM4.single_column.COBALT.p4/INPUT + rm ocean_hgrid.nc; wget https://gfdl-med.s3.amazonaws.com/OceanBGC_dataset/ocean_hgrid.nc + rm COBALT_2023_10_spinup_2003_subset.nc; wget https://gfdl-med.s3.amazonaws.com/OceanBGC_dataset/COBALT_2023_10_spinup_2003_subset.nc + singularity shell -B /USER_HOME_PATH:/work -e /USER_HOME_PATH/1d_mom6_cobalt.sif + cd /work/MOM6_OBGC_examples/builds + ./linux-build.bash -m docker -p linux-gnu -t prod -f mom6sis2 #build MOM6-SIS2-OBGC + cd /work/MOM6_OBGC_examples/exps + ln -fs /opt/datasets ./ + cd OM4.single_column.COBALT.p4 + mpirun -np 1 ../../builds/build/docker-linux-gnu/ocean_ice/prod/MOM6SIS2 + + + + diff --git a/docs/source/Introduction.rst b/docs/source/Introduction.rst new file mode 100644 index 0000000..9a5e666 --- /dev/null +++ b/docs/source/Introduction.rst @@ -0,0 +1,31 @@ +.. _Intro: + +==================================== +Introduction +==================================== + +This User's Guide provides guidance for setting and running the MOM6 Ocean Biogeochemical System. + +The Ocean Biogeochemical component is based on :cite:t:`StockEtAl2019` (2019) + +Disclaimer +========================== + +The United States Department of Commerce (DOC) GitHub project code is +provided on an “as is” basis and the user assumes responsibility for its +use. DOC has relinquished control of the information and no longer has a +responsibility to protect the integrity, confidentiality, or +availability of the information. Any claims against the Department of +Commerce stemming from the use of its GitHub project will be governed by +all applicable Federal laws. Any reference to specific commercial +products, processes, or services by service mark, trademark, +manufacturer, or otherwise, does not constitute or imply their +endorsement, recommendation, or favoring by the Department of Commerce. +The Department of Commerce seal and logo, or the seal and logo of a DOC +bureau, shall not be used in any manner to imply endorsement of any +commercial product or activity by DOC or the United States Government. + +References +========================== + +.. bibliography:: references.bib diff --git a/docs/source/_static/custom.css b/docs/source/_static/custom.css new file mode 100644 index 0000000..c02df7f --- /dev/null +++ b/docs/source/_static/custom.css @@ -0,0 +1,25 @@ +.red { color: red; } +.bolditalic { + font-family: "Courier New", Courier, monospace; + font-weight: bold; + font-style: italic; +} + +.underline { + text-decoration: underline; +} + +.bolditalic { + font-weight: bold; + font-style: italic; +} + +table.align-default { + margin-left: 0px; + margin-right: auto; +} + +table.align-center { + margin-left: 0px; + margin-right: auto; +} diff --git a/docs/source/_static/theme_overrides.css b/docs/source/_static/theme_overrides.css new file mode 100644 index 0000000..deb45e1 --- /dev/null +++ b/docs/source/_static/theme_overrides.css @@ -0,0 +1,21 @@ +/* override table width restrictions */ +@media screen and (min-width: 767px) { + + .wy-table-responsive table td { + /* !important prevents the common CSS stylesheets from overriding + this as on RTD they are loaded after this stylesheet */ + white-space: normal !important; + } + + .wy-nav-content { + max-width: 100% !important; + } + + /* .wy-table-responsive { */ + /* overflow: visible !important; */ + /* } */ + +} + + + diff --git a/docs/source/_templates/.gitignore b/docs/source/_templates/.gitignore new file mode 100644 index 0000000..5e7d273 --- /dev/null +++ b/docs/source/_templates/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/docs/source/conf.py b/docs/source/conf.py new file mode 100644 index 0000000..fd54f1e --- /dev/null +++ b/docs/source/conf.py @@ -0,0 +1,217 @@ +# -*- coding: utf-8 -*- +# +# Configuration file for the Sphinx documentation builder. +# +# This file does only contain a selection of the most common options. For a +# full list see the documentation: +# http://www.sphinx-doc.org/en/master/config + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +import os +import sys +sys.path.insert(0, os.path.abspath('.')) + + + +# -- Project information ----------------------------------------------------- + +project = 'MOM6_OBGC_examples Users Guide' +copyright = '2023, ' +author = ' ' + +# The short X.Y version +version = 'develop' +# The full version, including alpha/beta/rc tags +release = 'Develop Branch Documentation' + +numfig = True + +# -- General configuration --------------------------------------------------- + +# If your documentation needs a minimal Sphinx version, state it here. +# +# needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'sphinx_rtd_theme', + 'sphinx.ext.autodoc', + 'sphinx.ext.doctest', + 'sphinx.ext.intersphinx', + 'sphinx.ext.todo', + 'sphinx.ext.coverage', + 'sphinx.ext.mathjax', + 'sphinx.ext.ifconfig', + 'sphinx.ext.viewcode', + 'sphinx.ext.githubpages', + 'sphinx.ext.napoleon', + 'sphinxcontrib.bibtex', +] + +bibtex_bibfiles = ['references.bib'] +#bibtex_bibfiles = ['refs.bib'] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +# +# source_suffix = ['.rst', '.md'] +source_suffix = '.rst' + +# The master toctree document. +master_doc = 'index' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = None + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = [] + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'sphinx_rtd_theme' +html_theme_path = ["_themes", ] + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +# +# html_theme_options = {} +html_theme_options = {"body_max_width": "none"} + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +#html_static_path = [] +html_static_path = ['_static'] +html_context = {} + +def setup(app): + app.add_css_file('custom.css') # may also be an URL + app.add_css_file('theme_overrides.css') # may also be a URL + +# Custom sidebar templates, must be a dictionary that maps document names +# to template names. +# +# The default sidebars (for documents that don't match any pattern) are +# defined by theme itself. Builtin themes are using these templates by +# default: ``['localtoc.html', 'relations.html', 'sourcelink.html', +# 'searchbox.html']``. +# +# html_sidebars = {} + + +# -- Options for HTMLHelp output --------------------------------------------- + +# Output file base name for HTML help builder. +htmlhelp_basename = 'MOM6_OBGC_examples' + + +# -- Options for LaTeX output ------------------------------------------------ + +latex_engine = 'pdflatex' +latex_elements = { + # The paper size ('letterpaper' or 'a4paper'). + 'papersize': 'letterpaper', + + # The font size ('10pt', '11pt' or '12pt'). + 'pointsize': '11pt', + + # Additional stuff for the LaTeX preamble. + 'preamble': r''' + \usepackage{charter} + \usepackage[defaultsans]{lato} + \usepackage{inconsolata} + ''', + # Release name prefix + 'releasename': ' ', + + # Latex figure (float) alignment + # + # 'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + (master_doc, 'MOM6_OBGC_examples.tex', 'MOM6_OBGC_examples Users Guide', + ' ', 'manual'), +] + + +# -- Options for manual page output ------------------------------------------ + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + (master_doc, 'MOM6_OBGC_examples', 'MOM6_OBGC_examples Users Guide', + [author], 1) +] + + +# -- Options for Texinfo output ---------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + (master_doc, 'MOM6_OBGC_examples', 'MOM6_OBGC_examples Users Guide', + author, 'MOM6_OBGC_examples', 'One line description of project.', + 'Miscellaneous'), +] + + +# -- Options for Epub output ------------------------------------------------- + +# Bibliographic Dublin Core info. +epub_title = project + +# The unique identifier of the text. This can be a ISBN number +# or the project homepage. +# +# epub_identifier = '' + +# A unique identification for the text. +# +# epub_uid = '' + +# A list of files that should not be packed into the epub file. +epub_exclude_files = ['search.html'] + + +# -- Extension configuration ------------------------------------------------- + +# -- Options for intersphinx extension --------------------------------------- + +# Example configuration for intersphinx: refer to the Python standard library. +intersphinx_mapping = { + 'MOM6_OBGC_examples': ('https://MOM6_OBGC_examples.readthedocs.io/en/latest/', None), +} + +# -- Options for todo extension ---------------------------------------------- + +# If true, `todo` and `todoList` produce output, else they produce nothing. +todo_include_todos = True diff --git a/docs/source/index.rst b/docs/source/index.rst new file mode 100644 index 0000000..c647ddf --- /dev/null +++ b/docs/source/index.rst @@ -0,0 +1,15 @@ +.. MOM6_OBGC_examples documentation master file, created by + sphinx-quickstart on Tue Dec 5 10:35:26 2023. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to MOM6_OBGC_examples's documentation! +============================================== + +.. toctree:: + :numbered: + :maxdepth: 3 + :caption: Contents: + + Introduction + ContainerQuickstart diff --git a/docs/source/references.bib b/docs/source/references.bib new file mode 100644 index 0000000..0f41b86 --- /dev/null +++ b/docs/source/references.bib @@ -0,0 +1,11 @@ +@article{StockEtAl2019, + author = {Stock, Charles A. and Dunne, John P. and Fan, Songmiao and Ginoux, Paul and John, Jasmin and Krasting, John P. and Laufkötter, Charlotte and Paulot, Fabien and Zadeh, Niki}, + title = {Ocean Biogeochemistry in GFDL's Earth System Model 4.1 and Its Response to Increasing Atmospheric CO2}, + journal = {Journal of Advances in Modeling Earth Systems}, + year={2019}, + volume = {12}, + number = {10}, + pages = {e2019MS002043}, + keywords = {Earth System Model, ocean biogeochemistry, climate change, carbon cycle, marine ecosystems}, + doi = {https://doi.org/10.1029/2019MS002043}, +} diff --git a/exps/OM4.single_column.COBALT.p4/BuildExchangeGrid.csh b/exps/OM4.single_column.COBALT.p4/BuildExchangeGrid.csh new file mode 100755 index 0000000..4efe3bb --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/BuildExchangeGrid.csh @@ -0,0 +1,22 @@ +#!/bin/tcsh +# + +module load fre/bronx-20 + +cd INPUT +#This is to make the super-grid, so nlon=8 for a 4x4 model, nlon=4 for a 2x2 model. +#make_hgrid --grid_type regular_lonlat_grid --nxbnd 2 --nybnd 2 --xbnd -140.2,-139.8 --ybnd -0.2,0.2 --nlon 8 --nlat 8 --grid_name ocean_hgrid +#make_hgrid --grid_type regular_lonlat_grid --nxbnd 2 --nybnd 2 --xbnd -120.2,-119.8 --ybnd -0.2,0.2 --nlon 8 --nlat 8 --grid_name ocean_hgrid +#BATS (lon, lat)=(-64.1667,31.6667) +make_hgrid --grid_type regular_lonlat_grid --nxbnd 2 --nybnd 2 --xbnd -64.3667,-63.9667 --ybnd 31.4667,31.8667 --nlon 8 --nlat 8 --grid_name ocean_hgrid +#make_hgrid --grid_type regular_lonlat_grid --nxbnd 2 --nybnd 2 --xbnd -90.2,-89.8 --ybnd -0.2,0.2 --nlon 8 --nlat 8 --grid_name ocean_hgrid + +make_solo_mosaic --num_tiles 1 --dir ./ --mosaic_name ocean_mosaic --tile_file ocean_hgrid.nc +make_solo_mosaic --num_tiles 1 --dir ./ --mosaic_name atmos_mosaic --tile_file ocean_hgrid.nc +make_solo_mosaic --num_tiles 1 --dir ./ --mosaic_name land_mosaic --tile_file ocean_hgrid.nc +make_solo_mosaic --num_tiles 1 --dir ./ --mosaic_name wave_mosaic --tile_file ocean_hgrid.nc + +make_topog --mosaic ocean_mosaic.nc --topog_type rectangular_basin --bottom_depth 4000 + +make_coupler_mosaic --atmos_mosaic atmos_mosaic.nc --land_mosaic land_mosaic.nc --ocean_mosaic ocean_mosaic.nc --ocean_topog topog.nc --mosaic_name grid_spec --check --verbose + diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/COBALT_2023_10_spinup_2003_subset.nc b/exps/OM4.single_column.COBALT.p4/INPUT/COBALT_2023_10_spinup_2003_subset.nc new file mode 120000 index 0000000..b0c0484 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/COBALT_2023_10_spinup_2003_subset.nc @@ -0,0 +1 @@ +../../datasets/OceanBGC_dataset/COBALT_2023_10_spinup_2003_subset.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/GLODAPv1.abiotic.filled.20180316.nc b/exps/OM4.single_column.COBALT.p4/INPUT/GLODAPv1.abiotic.filled.20180316.nc new file mode 120000 index 0000000..d43d348 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/GLODAPv1.abiotic.filled.20180316.nc @@ -0,0 +1 @@ +../../datasets/OceanBGC_dataset/GLODAPv1.abiotic.filled.20180316.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/GLODAPv2.2016b.oi-filled.20180322.nc b/exps/OM4.single_column.COBALT.p4/INPUT/GLODAPv2.2016b.oi-filled.20180322.nc new file mode 120000 index 0000000..24fc676 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/GLODAPv2.2016b.oi-filled.20180322.nc @@ -0,0 +1 @@ +../../datasets/OceanBGC_dataset/GLODAPv2.2016b.oi-filled.20180322.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/JRA_huss.nc b/exps/OM4.single_column.COBALT.p4/INPUT/JRA_huss.nc new file mode 120000 index 0000000..6c630a4 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/JRA_huss.nc @@ -0,0 +1 @@ +../../datasets/OM4_025.JRA.single_column/huss_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-4-0_gr_200401010000-200412312100.padded.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/JRA_prra.nc b/exps/OM4.single_column.COBALT.p4/INPUT/JRA_prra.nc new file mode 120000 index 0000000..c3d331d --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/JRA_prra.nc @@ -0,0 +1 @@ +../../datasets/OM4_025.JRA.single_column/prra_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-4-0_gr_200401010130-200412312230.padded.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/JRA_prsn.nc b/exps/OM4.single_column.COBALT.p4/INPUT/JRA_prsn.nc new file mode 120000 index 0000000..f328787 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/JRA_prsn.nc @@ -0,0 +1 @@ +../../datasets/OM4_025.JRA.single_column/prsn_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-4-0_gr_200401010130-200412312230.padded.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/JRA_psl.nc b/exps/OM4.single_column.COBALT.p4/INPUT/JRA_psl.nc new file mode 120000 index 0000000..dbbafca --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/JRA_psl.nc @@ -0,0 +1 @@ +../../datasets/OM4_025.JRA.single_column/psl_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-4-0_gr_200401010000-200412312100.padded.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/JRA_rlds.nc b/exps/OM4.single_column.COBALT.p4/INPUT/JRA_rlds.nc new file mode 120000 index 0000000..87452a4 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/JRA_rlds.nc @@ -0,0 +1 @@ +../../datasets/OM4_025.JRA.single_column/rlds_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-4-0_gr_200401010130-200412312230.padded.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/JRA_rsds.nc b/exps/OM4.single_column.COBALT.p4/INPUT/JRA_rsds.nc new file mode 120000 index 0000000..8ee829a --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/JRA_rsds.nc @@ -0,0 +1 @@ +../../datasets/OM4_025.JRA.single_column/rsds_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-4-0_gr_200401010130-200412312230.padded.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/JRA_tas.nc b/exps/OM4.single_column.COBALT.p4/INPUT/JRA_tas.nc new file mode 120000 index 0000000..dd757a9 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/JRA_tas.nc @@ -0,0 +1 @@ +../../datasets/OM4_025.JRA.single_column/tas_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-4-0_gr_200401010000-200412312100.padded.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/JRA_uas.nc b/exps/OM4.single_column.COBALT.p4/INPUT/JRA_uas.nc new file mode 120000 index 0000000..4f0924a --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/JRA_uas.nc @@ -0,0 +1 @@ +../../datasets/OM4_025.JRA.single_column/uas_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-4-0_gr_200401010000-200412312100.padded.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/JRA_vas.nc b/exps/OM4.single_column.COBALT.p4/INPUT/JRA_vas.nc new file mode 120000 index 0000000..8ebafb3 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/JRA_vas.nc @@ -0,0 +1 @@ +../../datasets/OM4_025.JRA.single_column/vas_input4MIPs_atmosphericState_OMIP_MRI-JRA55-do-1-4-0_gr_200401010000-200412312100.padded.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/MOM_GENERICS.res.nc b/exps/OM4.single_column.COBALT.p4/INPUT/MOM_GENERICS.res.nc new file mode 120000 index 0000000..c13662f --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/MOM_GENERICS.res.nc @@ -0,0 +1 @@ +../../datasets/OceanBGC_dataset/MOM_GENERICS.res.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/Mineral_Fe_Flux_PI.nc b/exps/OM4.single_column.COBALT.p4/INPUT/Mineral_Fe_Flux_PI.nc new file mode 120000 index 0000000..298f05e --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/Mineral_Fe_Flux_PI.nc @@ -0,0 +1 @@ +../../datasets/OceanBGC_dataset/Mineral_Fe_Flux_PI.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/Soluble_Fe_Flux_PI.nc b/exps/OM4.single_column.COBALT.p4/INPUT/Soluble_Fe_Flux_PI.nc new file mode 120000 index 0000000..24c2072 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/Soluble_Fe_Flux_PI.nc @@ -0,0 +1 @@ +../../datasets/OceanBGC_dataset/Soluble_Fe_Flux_PI.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/atm_delta_13C_14C.nc b/exps/OM4.single_column.COBALT.p4/INPUT/atm_delta_13C_14C.nc new file mode 120000 index 0000000..5cb102a --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/atm_delta_13C_14C.nc @@ -0,0 +1 @@ +../../datasets/OceanBGC_dataset/atm_delta_13C_14C.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/atmos_mosaic.nc b/exps/OM4.single_column.COBALT.p4/INPUT/atmos_mosaic.nc new file mode 120000 index 0000000..6c26efa --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/atmos_mosaic.nc @@ -0,0 +1 @@ +../../datasets/OM4_025.JRA.single_column/atmos_mosaic.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/atmos_mosaic_tile1Xocean_mosaic_tile1.nc b/exps/OM4.single_column.COBALT.p4/INPUT/atmos_mosaic_tile1Xocean_mosaic_tile1.nc new file mode 120000 index 0000000..79d57a7 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/atmos_mosaic_tile1Xocean_mosaic_tile1.nc @@ -0,0 +1 @@ +../../datasets/OM4_025.JRA.single_column/atmos_mosaic_tile1Xocean_mosaic_tile1.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/cfc.bc.nc b/exps/OM4.single_column.COBALT.p4/INPUT/cfc.bc.nc new file mode 120000 index 0000000..fc8ef60 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/cfc.bc.nc @@ -0,0 +1 @@ +../../datasets/OM4_025.JRA.single_column/cfc.bc.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/depflux_total.mean.1860.nc b/exps/OM4.single_column.COBALT.p4/INPUT/depflux_total.mean.1860.nc new file mode 120000 index 0000000..b0fed8e --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/depflux_total.mean.1860.nc @@ -0,0 +1 @@ +../../datasets/OceanBGC_dataset/depflux_total.mean.1860.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/diag_rho2.nc b/exps/OM4.single_column.COBALT.p4/INPUT/diag_rho2.nc new file mode 120000 index 0000000..acad15e --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/diag_rho2.nc @@ -0,0 +1 @@ +../../datasets/OM4_025.JRA.single_column/diag_rho2.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/geothermal_davies2013_v1.nc b/exps/OM4.single_column.COBALT.p4/INPUT/geothermal_davies2013_v1.nc new file mode 120000 index 0000000..d076762 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/geothermal_davies2013_v1.nc @@ -0,0 +1 @@ +../../datasets/OM4_025.JRA.single_column/geothermal_davies2013_v1.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/grid_spec.nc b/exps/OM4.single_column.COBALT.p4/INPUT/grid_spec.nc new file mode 120000 index 0000000..66b1814 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/grid_spec.nc @@ -0,0 +1 @@ +../../datasets/OM4_025.JRA.single_column/grid_spec.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/init_ocean_cobalt.res.nc b/exps/OM4.single_column.COBALT.p4/INPUT/init_ocean_cobalt.res.nc new file mode 120000 index 0000000..8eea9bf --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/init_ocean_cobalt.res.nc @@ -0,0 +1 @@ +../../datasets/OceanBGC_dataset/init_ocean_cobalt.res.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/init_ocean_cobalt_nh3.res.nc b/exps/OM4.single_column.COBALT.p4/INPUT/init_ocean_cobalt_nh3.res.nc new file mode 120000 index 0000000..a25a873 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/init_ocean_cobalt_nh3.res.nc @@ -0,0 +1 @@ +../../datasets/OceanBGC_dataset/init_ocean_cobalt_nh3.res.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/land_mask.nc b/exps/OM4.single_column.COBALT.p4/INPUT/land_mask.nc new file mode 120000 index 0000000..b19b197 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/land_mask.nc @@ -0,0 +1 @@ +../../datasets/OM4_025.JRA.single_column/land_mask.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/land_mosaic.nc b/exps/OM4.single_column.COBALT.p4/INPUT/land_mosaic.nc new file mode 120000 index 0000000..8032c51 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/land_mosaic.nc @@ -0,0 +1 @@ +../../datasets/OM4_025.JRA.single_column/land_mosaic.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/land_mosaic_tile1Xocean_mosaic_tile1.nc b/exps/OM4.single_column.COBALT.p4/INPUT/land_mosaic_tile1Xocean_mosaic_tile1.nc new file mode 120000 index 0000000..7d2c263 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/land_mosaic_tile1Xocean_mosaic_tile1.nc @@ -0,0 +1 @@ +../../datasets/OM4_025.JRA.single_column/land_mosaic_tile1Xocean_mosaic_tile1.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/mosaic.nc b/exps/OM4.single_column.COBALT.p4/INPUT/mosaic.nc new file mode 120000 index 0000000..bcee1f3 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/mosaic.nc @@ -0,0 +1 @@ +../../datasets/OM4_025.JRA.single_column/mosaic.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/news_nutrients.nc b/exps/OM4.single_column.COBALT.p4/INPUT/news_nutrients.nc new file mode 120000 index 0000000..f10e7de --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/news_nutrients.nc @@ -0,0 +1 @@ +../../datasets/OceanBGC_dataset/news_nutrients.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/ocean_hgrid.nc b/exps/OM4.single_column.COBALT.p4/INPUT/ocean_hgrid.nc new file mode 120000 index 0000000..576075c --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/ocean_hgrid.nc @@ -0,0 +1 @@ +../../datasets/OM4_025.JRA.single_column/ocean_hgrid.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/ocean_mask.nc b/exps/OM4.single_column.COBALT.p4/INPUT/ocean_mask.nc new file mode 120000 index 0000000..72ecd3a --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/ocean_mask.nc @@ -0,0 +1 @@ +../../datasets/OM4_025.JRA.single_column/ocean_mask.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/ocean_mosaic.nc b/exps/OM4.single_column.COBALT.p4/INPUT/ocean_mosaic.nc new file mode 120000 index 0000000..32f4ff5 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/ocean_mosaic.nc @@ -0,0 +1 @@ +../../datasets/OM4_025.JRA.single_column/ocean_mosaic.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/ocean_topog.nc b/exps/OM4.single_column.COBALT.p4/INPUT/ocean_topog.nc new file mode 120000 index 0000000..42ea967 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/ocean_topog.nc @@ -0,0 +1 @@ +../../datasets/OM4_025.JRA.single_column/ocean_topog.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/river_iron.nc b/exps/OM4.single_column.COBALT.p4/INPUT/river_iron.nc new file mode 120000 index 0000000..c006fcd --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/river_iron.nc @@ -0,0 +1 @@ +../../datasets/OceanBGC_dataset/river_iron.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/seawifs-clim-1997-2010.1440x1080.v20180328.nc b/exps/OM4.single_column.COBALT.p4/INPUT/seawifs-clim-1997-2010.1440x1080.v20180328.nc new file mode 120000 index 0000000..17e74cd --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/seawifs-clim-1997-2010.1440x1080.v20180328.nc @@ -0,0 +1 @@ +../../datasets/OM4_025.JRA.single_column/seawifs-clim-1997-2010.1440x1080.v20180328.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/topog.nc b/exps/OM4.single_column.COBALT.p4/INPUT/topog.nc new file mode 120000 index 0000000..e88055d --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/topog.nc @@ -0,0 +1 @@ +ocean_topog.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/woa13_all_i_annual_01.nc b/exps/OM4.single_column.COBALT.p4/INPUT/woa13_all_i_annual_01.nc new file mode 120000 index 0000000..d719f26 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/woa13_all_i_annual_01.nc @@ -0,0 +1 @@ +../../datasets/OceanBGC_dataset/woa13_all_i_annual_01.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/woa13_all_n_annual_01.nc b/exps/OM4.single_column.COBALT.p4/INPUT/woa13_all_n_annual_01.nc new file mode 120000 index 0000000..fa5bf9f --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/woa13_all_n_annual_01.nc @@ -0,0 +1 @@ +../../datasets/OceanBGC_dataset/woa13_all_n_annual_01.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/woa13_all_o_annual_01.nc b/exps/OM4.single_column.COBALT.p4/INPUT/woa13_all_o_annual_01.nc new file mode 120000 index 0000000..ec5dddc --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/woa13_all_o_annual_01.nc @@ -0,0 +1 @@ +../../datasets/OceanBGC_dataset/woa13_all_o_annual_01.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/woa13_all_p_annual_01.nc b/exps/OM4.single_column.COBALT.p4/INPUT/woa13_all_p_annual_01.nc new file mode 120000 index 0000000..70fbe99 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/woa13_all_p_annual_01.nc @@ -0,0 +1 @@ +../../datasets/OceanBGC_dataset/woa13_all_p_annual_01.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/woa13_decav_ptemp_monthly_fulldepth_01.nc b/exps/OM4.single_column.COBALT.p4/INPUT/woa13_decav_ptemp_monthly_fulldepth_01.nc new file mode 120000 index 0000000..e7774c5 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/woa13_decav_ptemp_monthly_fulldepth_01.nc @@ -0,0 +1 @@ +../../datasets/OM4_025.JRA.single_column/woa13_decav_ptemp_monthly_fulldepth_01.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/INPUT/woa13_decav_s_monthly_fulldepth_01.nc b/exps/OM4.single_column.COBALT.p4/INPUT/woa13_decav_s_monthly_fulldepth_01.nc new file mode 120000 index 0000000..6546f88 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/INPUT/woa13_decav_s_monthly_fulldepth_01.nc @@ -0,0 +1 @@ +../../datasets/OM4_025.JRA.single_column/woa13_decav_s_monthly_fulldepth_01.nc \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/MOM_input b/exps/OM4.single_column.COBALT.p4/MOM_input new file mode 100644 index 0000000..54a0183 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/MOM_input @@ -0,0 +1,664 @@ +/* This input file provides the adjustable run-time parameters for version 6 of + the Modular Ocean Model (MOM6), a numerical ocean model developed at NOAA-GFDL. + Where appropriate, parameters use usually given in MKS units. + + This particular file is for the example in OM4_025. + + This MOM_input file typically contains only the non-default values that are + needed to reproduce this example. A full list of parameters for this example + can be found in the corresponding MOM_parameter_doc.all file which is + generated by the model at run-time. */ + +! === module MOM === +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, interface heights are diffused with a + ! coefficient of KHTH. +THICKNESSDIFFUSE_FIRST = True ! [Boolean] default = False + ! If true, do thickness diffusion before dynamics. + ! This is only used if THICKNESSDIFFUSE is true. +DT = 900.0 ! [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.) +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. +CHECK_BAD_SURFACE_VALS = True ! [Boolean] default = False + ! If true, check the surface state for ridiculous values. +BAD_VAL_SSH_MAX = 50.0 ! [m] default = 20.0 + ! The value of SSH above which a bad value message is + ! triggered, if CHECK_BAD_SURFACE_VALS is true. +BAD_VAL_SSS_MAX = 75.0 ! [PPT] 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_MAX = 55.0 ! [deg C] default = 45.0 + ! The value of SST above which a bad value message is + ! triggered, if CHECK_BAD_SURFACE_VALS is true. +BAD_VAL_SST_MIN = -3.0 ! [deg C] default = -2.1 + ! The value of SST below which a bad value message is + ! triggered, if CHECK_BAD_SURFACE_VALS is true. +WRITE_GEOM = 0 ! default = 1 + ! If =0, never write the geometry and vertical grid files. + ! If =1, write the geometry and vertical grid files only for + ! a new simulation. If =2, always write the geometry and + ! vertical grid files. Other values are invalid. + +! === module MOM_domains === +NIGLOBAL = 4 ! + ! 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 = 4 ! + ! 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. +NIHALO = 3 +NJHALO = 3 +! === module MOM_hor_index === +! Sets the horizontal array index types. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. +NK = 75 ! [nondim] + ! The number of model layers. + +! === module MOM_fixed_initialization === +INPUTDIR = "INPUT" ! default = "." + ! The directory in which input files are found. + +! === module MOM_grid_init === +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.nc" ! + ! Name of the file from which to read horizontal grid data. +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. + ! Neverland - use the Neverland test case topography. + ! DOME - use a slope and channel configuration for the + ! DOME sill-overflow test case. + ! ISOMIP - use a slope and channel configuration for the + ! ISOMIP test case. + ! DOME2D - use a shelf and slope configuration for the + ! DOME2D gravity current/overflow test case. + ! Kelvin - flat but with rotated land mask. + ! seamount - Gaussian bump for spontaneous motion test case. + ! shelfwave - exponential slope for shelfwave test case. + ! supercritical - flat but with 8.95 degree land mask. + ! Phillips - ACC-like idealized topography used in the Phillips config. + ! dense - Denmark Strait-like dense water formation and overflow. + ! USER - call a user modified routine. +TOPO_FILE = "ocean_topog.nc" ! default = "topog.nc" + ! The file from which the bathymetry is read. +MAXIMUM_DEPTH = 6500.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 deeper than MASKING_DEPTH are rounded to MINIMUM_DEPTH. + +! === module MOM_open_boundary === +! Controls where open boundaries are located, what kind of boundary condition to impose, and what data to apply, if any. +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. + +! === module MOM_tracer_registry === + +! === module MOM_EOS === +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. + +! === module ideal_age_example === + +! === module MOM_coord_initialization === +COORD_CONFIG = "none" ! + ! This specifies how layers are to be defined: + ! ALE or none - used to avoid defining layers in ALE mode + ! file - read coordinate information from the file + ! specified by (COORD_FILE). + ! BFB - Custom coords for buoyancy-forced basin case + ! based on SST_S, T_BOT and DRHO_DT. + ! linear - linear based on interfaces not layers + ! layer_ref - linear based on layer densities + ! ts_ref - use reference temperature and salinity + ! ts_range - use range of temperature and salinity + ! (T_REF and S_REF) to determine surface density + ! and GINT calculate internal densities. + ! gprime - use reference density (RHO_0) for surface + ! density and GINT calculate internal densities. + ! ts_profile - use temperature and salinity profiles + ! (read from COORD_FILE) to set layer densities. + ! USER - call a user modified routine. +COORD_FILE = "layer_coord.nc" ! + ! The file from which the coordinate densities are read. +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 +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. +ALE_COORDINATE_CONFIG = "HYBRID:hycom1_75_800m.nc,sigma2,FNC1:2,4000,4.5,.01" ! 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 +!ALE_RESOLUTION = 7*2.0, 2*2.01, 2.02, 2.03, 2.05, 2.08, 2.11, 2.15, 2.21, 2.2800000000000002, 2.37, 2.48, 2.61, 2.77, 2.95, 3.17, 3.4299999999999997, 3.74, 4.09, 4.49, 4.95, 5.48, 6.07, 6.74, 7.5, 8.34, 9.280000000000001, 10.33, 11.49, 12.77, 14.19, 15.74, 17.450000000000003, 19.31, 21.35, 23.56, 25.97, 28.580000000000002, 31.41, 34.47, 37.77, 41.32, 45.14, 49.25, 53.65, 58.370000000000005, 63.42, 68.81, 74.56, 80.68, 87.21000000000001, 94.14, 101.51, 109.33, 117.62, 126.4, 135.68, 145.5, 155.87, 166.81, 178.35, 190.51, 203.31, 216.78, 230.93, 245.8, 261.42, 277.83 ! [m] + ! The distribution of vertical resolution for the target + ! grid used for Eulerian-like coordinates. For example, + ! in z-coordinate mode, the parameter is a list of level + ! thicknesses (in m). In sigma-coordinate mode, the list + ! is of non-dimensional fractions of the water column. +!TARGET_DENSITIES = 1010.0, 1014.3034, 1017.8088, 1020.843, 1023.5566, 1025.813, 1027.0275, 1027.9114, 1028.6422, 1029.2795, 1029.852, 1030.3762, 1030.8626, 1031.3183, 1031.7486, 1032.1572, 1032.5471, 1032.9207, 1033.2798, 1033.6261, 1033.9608, 1034.2519, 1034.4817, 1034.6774, 1034.8508, 1035.0082, 1035.1533, 1035.2886, 1035.4159, 1035.5364, 1035.6511, 1035.7608, 1035.8661, 1035.9675, 1036.0645, 1036.1554, 1036.2411, 1036.3223, 1036.3998, 1036.4739, 1036.5451, 1036.6137, 1036.68, 1036.7441, 1036.8062, 1036.8526, 1036.8874, 1036.9164, 1036.9418, 1036.9647, 1036.9857, 1037.0052, 1037.0236, 1037.0409, 1037.0574, 1037.0738, 1037.0902, 1037.1066, 1037.123, 1037.1394, 1037.1558, 1037.1722, 1037.1887, 1037.206, 1037.2241, 1037.2435, 1037.2642, 1037.2866, 1037.3112, 1037.3389, 1037.3713, 1037.4118, 1037.475, 1037.6332, 1037.8104, 1038.0 ! [m] + ! HYBRID target densities for itnerfaces +REGRID_COMPRESSIBILITY_FRACTION = 0.01 ! [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 +!MAXIMUM_INT_DEPTHS = 0.0, 5.0, 12.75, 23.25, 36.49, 52.480000000000004, 71.22, 92.71000000000001, 116.94000000000001, 143.92000000000002, 173.65, 206.13, 241.36, 279.33000000000004, 320.05000000000007, 363.5200000000001, 409.7400000000001, 458.7000000000001, 510.4100000000001, 564.8700000000001, 622.0800000000002, 682.0300000000002, 744.7300000000002, 810.1800000000003, 878.3800000000003, 949.3300000000004, 1023.0200000000004, 1099.4600000000005, 1178.6500000000005, 1260.5900000000006, 1345.2700000000007, 1432.7000000000007, 1522.8800000000008, 1615.8100000000009, 1711.490000000001, 1809.910000000001, 1911.080000000001, 2015.0000000000011, 2121.670000000001, 2231.080000000001, 2343.2400000000007, 2458.1500000000005, 2575.8100000000004, 2696.2200000000003, 2819.3700000000003, 2945.2700000000004, 3073.9200000000005, 3205.3200000000006, 3339.4600000000005, 3476.3500000000004, 3615.9900000000002, 3758.38, 3903.52, 4051.4, 4202.03, 4355.41, 4511.54, 4670.41, 4832.03, 4996.4, 5163.5199999999995, 5333.379999999999, 5505.989999999999, 5681.3499999999985, 5859.459999999998, 6040.319999999998, 6223.919999999998, 6410.269999999999, 6599.369999999999, 6791.219999999999, 6985.8099999999995, 7183.15, 7383.24, 7586.08, 7791.67, 8000.0 + ! The list of maximum depths for each interface. +MAX_LAYER_THICKNESS_CONFIG = "FNC1:400,31000.0,0.1,.01" ! 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 +!MAX_LAYER_THICKNESS = 400.0, 409.63, 410.32, 410.75, 411.07, 411.32, 411.52, 411.7, 411.86, 412.0, 412.13, 412.24, 412.35, 412.45, 412.54, 412.63, 412.71, 412.79, 412.86, 412.93, 413.0, 413.06, 413.12, 413.18, 413.24, 413.29, 413.34, 413.39, 413.44, 413.49, 413.54, 413.58, 413.62, 413.67, 413.71, 413.75, 413.78, 413.82, 413.86, 413.9, 413.93, 413.97, 414.0, 414.03, 414.06, 414.1, 414.13, 414.16, 414.19, 414.22, 414.24, 414.27, 414.3, 414.33, 414.35, 414.38, 414.41, 414.43, 414.46, 414.48, 414.51, 414.53, 414.55, 414.58, 414.6, 414.62, 414.65, 414.67, 414.69, 414.71, 414.73, 414.75, 414.77, 414.79, 414.83 ! [m] + ! The list of maximum thickness for each layer. +REMAPPING_SCHEME = "PPM_H4" ! 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) + +! === module MOM_grid === +! Parameters providing information about the lateral grid. + +! === module MOM_state_initialization === +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. + +! === module MOM_initialize_layers_from_Z === +TEMP_SALT_Z_INIT_FILE = "" ! default = "temp_salt_z.nc" + ! The name of the z-space input file used to initialize + ! temperatures (T) and salinities (S). If T and S are not + ! in the same file, TEMP_Z_INIT_FILE and SALT_Z_INIT_FILE + ! must be set. +TEMP_Z_INIT_FILE = "woa13_decav_ptemp_monthly_fulldepth_01.nc" ! default = "" + ! The name of the z-space input file used to initialize + ! temperatures, only. +SALT_Z_INIT_FILE = "woa13_decav_s_monthly_fulldepth_01.nc" ! default = "" + ! The name of the z-space input file used to initialize + ! temperatures, only. +Z_INIT_FILE_PTEMP_VAR = "ptemp_an" ! default = "ptemp" + ! The name of the potential temperature variable in + ! TEMP_Z_INIT_FILE. +Z_INIT_FILE_SALT_VAR = "s_an" ! default = "salt" + ! The name of the salinity variable in + ! SALT_Z_INIT_FILE. +Z_INIT_ALE_REMAPPING = True ! [Boolean] default = False + ! If True, then remap straight to model coordinate from file. + +! === module MOM_diag_mediator === +NUM_DIAG_COORDS = 2 ! default = 1 + ! 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:diag_rho2.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 + +! === module MOM_set_visc === +PRANDTL_TURB = 1.25 ! [nondim] default = 1.0 + ! The turbulent Prandtl number applied to shear + ! instability. +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. +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. +KV = 1.0E-04 ! [m2 s-1] + ! The background kinematic viscosity in the interior. + ! The molecular value, ~1e-6 m2 s-1, may be used. +KV_BBL_MIN = 0.0 ! [m2 s-1] default = 1.0E-04 + ! The minimum viscosities in the bottom boundary layer. +KV_TBL_MIN = 0.0 ! [m2 s-1] default = 1.0E-04 + ! The minimum viscosities in the top boundary layer. + +! === module MOM_continuity === + +! === module MOM_continuity_PPM === +ETA_TOLERANCE = 1.0E-06 ! [m] default = 3.75E-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. +ETA_TOLERANCE_AUX = 0.001 ! [m] default = 1.0E-06 + ! The tolerance for free-surface height discrepancies + ! between the barotropic solution and the sum of the + ! layer thicknesses when calculating the auxiliary + ! corrected velocities. By default, this is the same as + ! ETA_TOLERANCE, but can be made larger for efficiency. + +! === module MOM_CoriolisAdv === +CORIOLIS_SCHEME = "SADOURNY75_ENSTRO" ! default = "SADOURNY75_ENERGY" + ! CORIOLIS_SCHEME selects the discretization for the + ! Coriolis terms. Valid values are: + ! SADOURNY75_ENERGY - Sadourny, 1975; energy cons. + ! ARAKAWA_HSU90 - Arakawa & Hsu, 1990 + ! SADOURNY75_ENSTRO - Sadourny, 1975; enstrophy cons. + ! ARAKAWA_LAMB81 - Arakawa & Lamb, 1981; En. + Enst. + ! ARAKAWA_LAMB_BLEND - A blend of Arakawa & Lamb with + ! Arakawa & Hsu and Sadourny energy +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. + +! === module MOM_PressureForce === + +! === module MOM_PressureForce_AFV === +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. + +! === module MOM_hor_visc === +LAPLACIAN = True ! [Boolean] default = False + ! If true, use a Laplacian horizontal viscosity. +AH_VEL_SCALE = 0.01 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the cube of + ! the grid spacing to calculate the biharmonic viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky and Leith viscosities, and AH. +SMAGORINSKY_AH = True ! [Boolean] default = False + ! If true, use a biharmonic Smagorinsky nonlinear eddy + ! viscosity. +SMAG_BI_CONST = 0.06 ! [nondim] default = 0.0 + ! The nondimensional biharmonic Smagorinsky constant, + ! typically 0.015 - 0.06. + +! === module MOM_vert_friction === +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. +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. +MAXVEL = 6.0 ! [m s-1] default = 3.0E+08 + ! The maximum velocity allowed before the velocity + ! components are truncated. + +! === module MOM_PointAccel === + +! === module MOM_barotropic === +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 maxCFL_BT_cont to be accommodated. +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. +DYNAMIC_SURFACE_PRESSURE = True ! [Boolean] default = False + ! If true, add a dynamic pressure due to a viscous ice + ! shelf, for instance. +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.9 ! [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. +BT_USE_OLD_CORIOLIS_BRACKET_BUG = True ! [Boolean] default = False + ! If True, use an order of operations that is not bitwise + ! rotationally symmetric in the meridional Coriolis term of + ! the barotropic solver. + +! === module MOM_thickness_diffuse === +KHTH_MAX_CFL = 0.1 ! [nondimensional] default = 0.8 + ! The maximum value of the local diffusive CFL ratio that + ! is permitted for the thickness diffusivity. 1.0 is the + ! marginally unstable value in a pure layered model, but + ! much smaller numbers (e.g. 0.1) seem to work better for + ! ALE-based models. + + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +ENERGETICS_SFC_PBL = True ! [Boolean] default = False + ! If true, use an implied energetics planetary boundary + ! layer scheme to determine the diffusivity and viscosity + ! in the surface boundary layer. +EPBL_IS_ADDITIVE = False ! [Boolean] default = True + ! If true, the diffusivity from ePBL is added to all + ! other diffusivities. Otherwise, the larger of kappa- + ! shear and ePBL diffusivities are used. + +! === module MOM_KPP === +! This is the MOM wrapper to CVmix:KPP +! See http://code.google.com/p/cvmix/ + +! === module MOM_diffConvection === +! This module implements enhanced diffusivity as a +! function of static stability, N^2. +CONVECTION% +%CONVECTION + +! === module MOM_entrain_diffusive === + + +! === module MOM_set_diffusivity === +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. +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. +HENYEY_IGW_BACKGROUND = True ! [Boolean] default = False + ! If true, use a latitude-dependent scaling for the near + ! surface background diffusivity, as described in + ! Harrison & Hallberg, JPO 2008. +N2_FLOOR_IOMEGA2 = 0.0 ! [nondim] default = 1.0 + ! The floor applied to N2(k) scaled by Omega^2: + ! If =0., N2(k) is simply positive definite. + ! If =1., N2(k) > Omega^2 everywhere. +KD = 1.5E-05 ! [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. +KD_MIN = 2.0E-06 ! [m2 s-1] default = 1.5E-07 + ! The minimum diapycnal diffusivity. +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. + +! === module MOM_kappa_shear === +! Parameterization of shear-driven turbulence following Jackson, Hallberg and Legg, JPO 2008 +USE_JACKSON_PARAM = True ! [Boolean] default = False + ! If true, use the Jackson-Hallberg-Legg (JPO 2008) + ! shear mixing parameterization. +MAX_RINO_IT = 25 ! [nondim] default = 50 + ! The maximum number of iterations that may be used to + ! estimate the Richardson number driven mixing. + +! === module MOM_CVMix_shear === +! Parameterization of shear-driven turbulence via CVMix (various options) + +! === module MOM_diabatic_aux === +! The following parameters are used for auxiliary diabatic processes. +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. + +! === module MOM_energetic_PBL === +!MSTAR_MODE = 2 ! [units=nondim] default = 0 + ! An integer switch for how to compute MSTAR. + ! 0 for constant MSTAR + ! 1 for MSTAR w/ MLD in stabilizing limit + ! 2 for MSTAR w/ L_E/L_O in stabilizing limit. +MSTAR = 0.0 ! [units=nondim] default = 1.2 + ! The ratio of the friction velocity cubed to the TKE + ! input to the mixed layer. +MIX_LEN_EXPONENT = 1.0 ! [units=nondim] default = 2.0 + ! The exponent applied to the ratio of the distance to the MLD + ! and the MLD depth which determines the shape of the mixing length. +MSTAR_CAP = 10.0 ! [units=nondim] default = -1.0 + ! Maximum value of mstar allowed in model if non-negative + ! (used if MSTAR_MODE>0). +MSTAR_CONV_ADJ = 0.667 ! [units=nondim] default = 0.0 + ! Factor used for reducing mstar during convection + ! due to reduction of stable density gradient. +MSTAR2_COEF1 = 0.29 ! [units=nondim] default = 0.3 + ! Coefficient in computing mstar when rotation and + ! stabilizing effects are both important (used if MSTAR_MODE=2) +MSTAR2_COEF2 = 0.152 ! [units=nondim] default = 0.085 + ! Coefficient in computing mstar when only rotation limits + ! the total mixing. (used only if MSTAR_MODE=2) +NSTAR = 0.06 ! [nondim] default = 0.2 + ! The portion of the buoyant potential energy imparted by + ! surface fluxes that is available to drive entrainment + ! at the base of mixed layer when that energy is positive. +TKE_DECAY = 0.01 ! [nondim] default = 2.5 + ! TKE_DECAY relates the vertical rate of decay of the + ! TKE available for mechanical entrainment to the natural + ! Ekman depth. +ML_OMEGA_FRAC = 0.001 ! [nondim] default = 0.0 + ! When setting the decay scale for turbulence, use this + ! fraction of the absolute rotation rate blended with the + ! local value of f, as sqrt((1-of)*f^2 + of*4*omega^2). +USE_MLD_ITERATION = True ! [Boolean] default = False + ! A logical that specifies whether or not to use the + ! distance to the bottom of the actively turblent boundary + ! layer to help set the EPBL length scale. +ORIG_MLD_ITERATION = False ! [Boolean] default = True + ! A logical that specifies whether or not to use the + ! old method for determining MLD depth in iteration, which + ! is limited to resolution. +EPBL_TRANSITION_SCALE = 0.01 ! [nondim] default = 0.1 + ! A scale for the mixing length in the transition layer + ! at the edge of the boundary layer as a fraction of the + ! boundary layer thickness. The default is 0.1. +USE_LA_LI2016 = True ! [nondim] default = False + ! A logical to use the Li et al. 2016 (submitted) formula to + ! determine the Langmuir number. +LT_ENHANCE = 3 ! [nondim] default = 0 + ! Integer for Langmuir number mode. + ! *Requires USE_LA_LI2016 to be set to True. + ! Options: 0 - No Langmuir + ! 1 - Van Roekel et al. 2014/Li et al., 2016 + ! 2 - Multiplied w/ adjusted La. + ! 3 - Added w/ adjusted La. +LT_ENHANCE_COEF = 0.044 ! [nondim] default = 0.447 + ! Coefficient for Langmuir enhancement if LT_ENHANCE > 1 +LT_ENHANCE_EXP = -1.5 ! [nondim] default = -1.33 + ! Exponent for Langmuir enhancement if LT_ENHANCE > 1 +LT_MOD_LAC1 = 0.0 ! [nondim] default = -0.87 + ! Coefficient for modification of Langmuir number due to + ! MLD approaching Ekman depth if LT_ENHANCE=2. +LT_MOD_LAC4 = 0.0 ! [nondim] default = 0.95 + ! Coefficient for modification of Langmuir number due to + ! ratio of Ekman to stable Obukhov depth if LT_ENHANCE=2. +LT_MOD_LAC5 = 0.22 ! [nondim] default = 0.95 + ! Coefficient for modification of Langmuir number due to + ! ratio of Ekman to unstable Obukhov depth if LT_ENHANCE=2. +EPBL_USTAR_MIN = 1.45842E-18 ! [m s-1] + ! The (tiny) minimum friction velocity used within the + ! ePBL code, derived from OMEGA and ANGSTROM. + +! === module MOM_regularize_layers === + +! === module MOM_opacity === +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.1440x1080.v20180328.nc" ! + ! CHL_FILE is the file containing chl_a concentrations in + ! the variable CHL_A. It is used when VAR_PEN_SW and + ! CHL_FROM_FILE are true. +CHL_VARNAME = "chlor_a" ! default = "CHL_A" + ! Name of CHL_A variable in CHL_FILE. +PEN_SW_NBANDS = 3 ! default = 1 + ! The number of bands of penetrating shortwave radiation. + +! === module MOM_tracer_advect === +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) + ! PPM - Piecewise Parabolic Method (Colella-Woodward) + +! === module MOM_tracer_hor_diff === +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 1 iteration. + +! === module MOM_neutral_diffusion === +! This module implements neutral diffusion of tracers + +! === module ocean_model_init === +ENERGYSAVEDAYS = 0.25 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the + ! energies of the run and other globally summed diagnostics. + +! === module MOM_surface_forcing === +MAX_P_SURF = 0.0 ! [Pa] default = -1.0 + ! The maximum surface pressure that can be exerted by the + ! atmosphere and floating sea-ice or ice shelves. This is + ! needed because the FMS coupling structure does not + ! limit the water that can be frozen out of the ocean and + ! the ice-ocean heat fluxes are treated explicitly. No + ! limit is applied if a negative value is used. +CD_TIDES = 0.0018 ! [nondim] default = 1.0E-04 + ! The drag coefficient that applies to the tides. +GUST_CONST = 0.0 ! [Pa] default = 0.02 + ! The background gustiness in the winds. +USE_RIGID_SEA_ICE = True ! [Boolean] default = False + ! If true, sea-ice is rigid enough to exert a + ! nonhydrostatic pressure that resist vertical motion. +SEA_ICE_RIGID_MASS = 100.0 ! [kg m-2] default = 1000.0 + ! The mass of sea-ice per unit area at which the sea-ice + ! starts to exhibit rigidity + +! === module MOM_restart === + +! === module MOM_sum_output === +MAXTRUNC = 100000 ! [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. + +! === module MOM_file_parser === diff --git a/exps/OM4.single_column.COBALT.p4/MOM_layout b/exps/OM4.single_column.COBALT.p4/MOM_layout new file mode 100644 index 0000000..aaf12a7 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/MOM_layout @@ -0,0 +1,4 @@ +#override IO_LAYOUT = 0,0 +#override LAYOUT = 1,1 +#override OCEAN_OMP_THREADS = 1 + diff --git a/exps/OM4.single_column.COBALT.p4/MOM_override b/exps/OM4.single_column.COBALT.p4/MOM_override new file mode 100644 index 0000000..831851a --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/MOM_override @@ -0,0 +1,72 @@ +! Blank file in which we can put "overrides" for parameters +REENTRANT_Y = True +REENTRANT_X = True +!Overrides to shortwave to make model work +#override VAR_PEN_SW = False +#override PEN_SW_FRAC = 1.0 +#override EXP_OPACITY_SCHEME = "DOUBLE_EXP" +#override PEN_SW_NBANDS = 2 +#override PEN_SW_SCALE = 0.35 +#override PEN_SW_SCALE_2ND = 23.0 +#override SW_1ST_EXP_RATIO = 0.58 +! Use KPP +!#override ENERGETICS_SFC_PBL = False +!#override USE_JACKSON_PARAM = False +#override ALE_COORDINATE_CONFIG = "FNC1:2,6500,6,.01" +#override INTERPOLATION_SCHEME = "PPM_H4" +#override REGRIDDING_COORDINATE_MODE = "Z*" +! Newest ePBL +!#override EPBL_IS_ADDITIVE = False +!#override TKE_DECAY = 0.001 +!#override EPBL_MSTAR_SCHEME = "REICHL_H18" +!#override MSTAR = 0.0 +!#override RH18_MSTAR_CN3 = -6.0 +!#override NSTAR = 0.06 +!#override MSTAR_CONV_ADJ = 0.66 +!#override USE_MLD_ITERATION = True +!#override EPBL_VEL_SCALE_SCHEME = "REICHL_H18" +!#override WSTAR_USTAR_COEF = 15. +!#override EPBL_VEL_SCALE_FACTOR = 0.5477 +!#override VSTAR_SURF_FAC = 1.8258 +!#override EPBL_TRANSITION_SCALE = 0.01 +!#override EPBL_LT = True +!#override EPBL_LANGMUIR_SCHEME = "ADDITIVE" +!#override LT_MOD_LAC1 = 0.0 +!#override LT_MOD_LAC2 = 0.0 +!#override LT_MOD_LAC3 = 0.0 +!#override LT_MOD_LAC4 = 0.8 +!#override LT_MOD_LAC5 = 0.8 +!#override LT_ENHANCE_COEF = 0.1056 +!#override LT_ENHANCE_EXP = -1. +!#override LA_DEPTH_RATIO = 0.2 +!!More ePBL Changes +!MIX_LEN_EXPONENT = 2.0 +!!!!!!!! +#override KD = 5.e-4 +#override RESOLN_SCALED_KH = False +#override RESOLN_SCALED_KHTH = False +#override HENYEY_IGW_BACKGROUND = False +#override KAPPA_BUOY_SCALE_COEF = 100.0 +#override THICKNESSDIFFUSE = False +#override LAPLACIAN = False +#override SMAGORINSKY_AH = False +!Extra flags needed +Z_INIT_HOMOGENIZE = True +ROTATION = "betaplane" +F_0 = 0 +HOMOGENIZE_IOB_FORCINGS = True +!!OBGC tracers +#override USE_OCMIP2_CFC = False +#override USE_IDEAL_AGE_TRACER = False +#override USE_generic_tracer = True +GENERIC_TRACER_IC_FILE = "MOM_GENERICS.res.nc" +!#override VAR_PEN_SW = True +!#override PEN_SW_NBANDS = 3 ! default = 1 +!#override CHL_FROM_FILE = False +#override Z_INIT_REMAP_OLD_ALG = True +#override TRACERS_MAY_REINIT = True +#override DO_GEOTHERMAL = True +#override GEOTHERMAL_SCALE = 0.0 +! GEOTHERMAL_FILE = "geothermal_davies2013_v1.nc" +! GEOTHERMAL_VARNAME = "geothermal_hf" ! default = "geo_heat" + diff --git a/exps/OM4.single_column.COBALT.p4/MOM_saltrestore b/exps/OM4.single_column.COBALT.p4/MOM_saltrestore new file mode 100644 index 0000000..591c022 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/MOM_saltrestore @@ -0,0 +1,23 @@ +! These parameters are used in CORE mode but should not be used in +! the coupled model (CM4). +RESTORE_SALINITY = False ! [Boolean] default = False + ! If true, the coupled driver will add a globally-balanced + ! fresh-water flux that drives sea-surface salinity + ! toward specified values. +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. +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 = "salt_restore_PHC2.720x576.v20180405.nc" ! default = "salt_restore.nc" + ! A file in which to find the surface salinity to use for restoring. +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. +MAX_DELTA_SRESTORE = 5.0 ! [PSU or g kg-1] default = 999.0 + ! The maximum salinity difference used in restoring terms. +USE_NET_FW_ADJUSTMENT_SIGN_BUG = False ! [Boolean] default = True + ! If true, use the wrong sign for the adjustment to + ! the net fresh-water. diff --git a/exps/OM4.single_column.COBALT.p4/SIS_input b/exps/OM4.single_column.COBALT.p4/SIS_input new file mode 100644 index 0000000..bc24c30 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/SIS_input @@ -0,0 +1,19 @@ +! This file was written by the model and records the non-default parameters used at run-time. +OMEGA = 0.0 ! The rotation rate of the earth in s-1. +NIGLOBAL = 4 ! + ! The total number of thickness grid points in the + ! x-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in SIS2_memory.h at compile time. +NJGLOBAL = 4 ! + ! The total number of thickness grid points in the + ! y-direction in the physical domain. With STATIC_MEMORY_ + ! this is set in SIS2_memory.h at compile time. +NIHALO = 2 +NJHALO = 2 +GRID_CONFIG = "mosaic" +GRID_FILE = "ocean_hgrid.nc" +TOPO_CONFIG = "file" +TOPO_FILE = "ocean_topog.nc" +MAXIMUM_DEPTH = 5000.0 +MINIMUM_DEPTH = 0.5 +INPUTDIR = "INPUT" \ No newline at end of file diff --git a/exps/OM4.single_column.COBALT.p4/SIS_layout b/exps/OM4.single_column.COBALT.p4/SIS_layout new file mode 100644 index 0000000..991c6b2 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/SIS_layout @@ -0,0 +1,2 @@ +#override IO_LAYOUT = 0,0 +#override LAYOUT = 1,1 diff --git a/exps/OM4.single_column.COBALT.p4/SIS_override b/exps/OM4.single_column.COBALT.p4/SIS_override new file mode 100644 index 0000000..908d1c8 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/SIS_override @@ -0,0 +1,2 @@ +! Blank file in which we can put "overrides" for parameters +ADD_DIURNAL_SW = False ! This must ONLY be used in the ice-ocean mode, NOT fully coupled mode. diff --git a/exps/OM4.single_column.COBALT.p4/data_table b/exps/OM4.single_column.COBALT.p4/data_table new file mode 100644 index 0000000..af14f5d --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/data_table @@ -0,0 +1,20 @@ + "ATM", "p_surf", "psl", "./INPUT/JRA_psl.nc", "bilinear", 1.0 + "ATM", "p_bot", "psl", "./INPUT/JRA_psl.nc", "bilinear", 1.0 + "ATM", "t_bot", "tas", "./INPUT/JRA_tas.nc", "bilinear", 1.0 + "ATM", "sphum_bot", "huss", "./INPUT/JRA_huss.nc", "bilinear", 1.0 + "ATM", "u_bot", "uas", "./INPUT/JRA_uas.nc", "bicubic", 1.0 + "ATM", "v_bot", "vas", "./INPUT/JRA_vas.nc", "bicubic", 1.0 + "ATM", "z_bot", "", "", "bilinear", 10.0 + "ATM", "gust", "", "", "bilinear", 1.0e-4 + "ICE", "lw_flux_dn", "rlds", "./INPUT/JRA_rlds.nc", "bilinear", 1.0 + "ICE", "sw_flux_vis_dir_dn", "rsds", "./INPUT/JRA_rsds.nc", "bilinear", 0.285 + "ICE", "sw_flux_vis_dif_dn", "rsds", "./INPUT/JRA_rsds.nc", "bilinear", 0.285 + "ICE", "sw_flux_nir_dir_dn", "rsds", "./INPUT/JRA_rsds.nc", "bilinear", 0.215 + "ICE", "sw_flux_nir_dif_dn", "rsds", "./INPUT/JRA_rsds.nc", "bilinear", 0.215 + "ICE", "lprec", "prra", "./INPUT/JRA_prra.nc", "bilinear", 1.0 + "ICE", "fprec", "prsn", "./INPUT/JRA_prsn.nc", "bilinear", 1.0 + "ICE" , "runoff" , "" , "", "none", 0.0 + "ICE" , "calving" , "" , "" , "none" , 0.0 + "ICE", "dhdt", "", "", "none", 80.0 + "ICE", "dedt", "", "", "none", 2.0e-6 + "ICE", "drdt", "", "", "none", 10.0 diff --git a/exps/OM4.single_column.COBALT.p4/diag_table b/exps/OM4.single_column.COBALT.p4/diag_table new file mode 100644 index 0000000..2ed2361 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/diag_table @@ -0,0 +1,1197 @@ +OM4_single_column +2004 1 1 0 0 0 +#============================================================================================================================= +# OBGC/COBALT DIAG Table (CAS, 1/17/2018) +#========================================================================================== +#========================================================================================== +# Proposed ESM4 production diagnostics (CAS, 1/11/18) +#========================================================================================== +"ocean_cobalt_sfc", 1, "months", 1, "days", "time", +"ocean_cobalt_btm", 1, "months", 1, "days", "time", +"ocean_cobalt_tracers_int", 1, "months", 1, "days", "time", +"ocean_cobalt_fluxes_int", 1, "months", 1, "days", "time", +"ocean_cobalt_fdet_100", 1, "months", 1, "days", "time", +"ocean_cobalt_tracers_month_z", 1, "months", 1, "days", "time", +"ocean_cobalt_tracers_instant",12, "months", 1, "days", "time", +"ocean_cobalt_daily_2d", 24, "hours", 1, "days", "time", +# +#====================== +# GENERIC OCEAN COBALT DIAGNOSTICS +#====================== +# +# "generic_cobalt","mld03", "mld03", "ocean_cobalt_daily_2d","all","mean","none",2 +# "generic_cobalt","sfc_chl", "sfc_chl", "ocean_cobalt_daily_2d","all","mean","none",2 +# "generic_cobalt","sfc_chl_lgp", "sfc_chl_lgp", "ocean_cobalt_daily_2d","all","mean","none",2 +# "generic_cobalt","sfc_chl_mdp", "sfc_chl_mdp", "ocean_cobalt_daily_2d","all","mean","none",2 +# "generic_cobalt","sfc_chl_smp", "sfc_chl_smp", "ocean_cobalt_daily_2d","all","mean","none",2 +# "generic_cobalt","sfc_chl_di", "sfc_chl_di", "ocean_cobalt_daily_2d","all","mean","none",2 +"generic_cobalt", "phos", "phos", "ocean_cobalt_daily_2d","all","mean","none",2 +"generic_cobalt", "no3os", "no3os", "ocean_cobalt_daily_2d","all","mean","none",2 +"generic_cobalt", "pco2surf", "pco2surf", "ocean_cobalt_daily_2d","all","mean","none",2 +"generic_cobalt", "mesozoo_200", "mesozoo_200", "ocean_cobalt_daily_2d","all","mean","none",2 +"generic_cobalt", "btm_o2", "btm_o2", "ocean_cobalt_daily_2d","all","mean","none",2 +"generic_cobalt", "btm_co3_sol_arag", "btm_co3_sol_arag", "ocean_cobalt_daily_2d","all","mean","none",2 +"generic_cobalt", "btm_co3_sol_calc", "btm_co3_sol_calc", "ocean_cobalt_daily_2d","all","mean","none",2 +"generic_cobalt", "btm_co3_ion", "btm_co3_ion", "ocean_cobalt_daily_2d","all","mean","none",2 +"generic_cobalt", "btm_htotal", "btm_htotal", "ocean_cobalt_daily_2d","all","mean","none",2 +#=================== +# Generic COBALT surface fields: +#================== + "generic_cobalt","dic_csurf", "dic_csurf", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","dic_deltap", "dic_deltap", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","dic_kw", "dic_kw", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","dic_sc_no", "dic_sc_no", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","pco2surf", "pco2surf", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","o2_alpha", "o2_alpha", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","o2_csurf", "o2_csurf", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","o2_deltap", "o2_deltap", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","o2_kw", "o2_kw", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","o2_sc_no", "o2_sc_no", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","dic_stf_gas", "dic_stf_gas", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","o2_stf_gas", "o2_stf_gas", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","dep_dry_fed", "dep_dry_fed", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","dep_dry_nh4", "dep_dry_nh4", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","dep_dry_no3", "dep_dry_no3", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","dep_dry_po4", "dep_dry_po4", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","dep_dry_lith", "dep_dry_lith", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","dep_wet_fed", "dep_wet_fed", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","dep_wet_nh4", "dep_wet_nh4", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","dep_wet_no3", "dep_wet_no3", "ocean_cobalt_sfc","all","mean","none",2 + # no wet dep of po4 + #"generic_cobalt","dep_wet_po4", "dep_wet_po4", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","dep_wet_lith", "dep_wet_lith", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","runoff_flux_alk", "runoff_flux_alk", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","runoff_flux_dic", "runoff_flux_dic", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","runoff_flux_fed", "runoff_flux_fed", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","runoff_flux_lith", "runoff_flux_lith", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","runoff_flux_no3", "runoff_flux_no3", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","runoff_flux_ldon", "runoff_flux_ldon", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","runoff_flux_sldon", "runoff_flux_sldon","ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","runoff_flux_srdon", "runoff_flux_srdon","ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","runoff_flux_ndet", "runoff_flux_ndet", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","runoff_flux_pdet", "runoff_flux_pdet", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","runoff_flux_po4", "runoff_flux_po4", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","runoff_flux_ldop", "runoff_flux_ldop", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","runoff_flux_sldop", "runoff_flux_sldop","ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","runoff_flux_srdop", "runoff_flux_srdop","ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_def_fe_di", "sfc_def_fe_di", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_def_fe_lgp", "sfc_def_fe_lgp", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_def_fe_mdp", "sfc_def_fe_mdp", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_def_fe_smp", "sfc_def_fe_smp", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_felim_di", "sfc_felim_di", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_felim_lgp", "sfc_felim_lgp", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_felim_mdp", "sfc_felim_mdp", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_felim_smp", "sfc_felim_smp", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_irrlim_di", "sfc_irrlim_di", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_irrlim_lgp", "sfc_irrlim_lgp", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_irrlim_mdp", "sfc_irrlim_mdp", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_irrlim_smp", "sfc_irrlim_smp", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_theta_di", "sfc_theta_di", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_theta_lgp", "sfc_theta_lgp", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_theta_mdp", "sfc_theta_mdp", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_theta_smp", "sfc_theta_smp", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_mu_di", "sfc_mu_di", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_mu_lgp", "sfc_mu_lgp", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_mu_mdp", "sfc_mu_mdp", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_mu_smp", "sfc_mu_smp", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_nh4lim_lgp", "sfc_nh4lim_lgp", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_nh4lim_mdp", "sfc_nh4lim_mdp", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_nh4lim_smp", "sfc_nh4lim_smp", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_no3lim_lgp", "sfc_no3lim_lgp", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_no3lim_mdp", "sfc_no3lim_mdp", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_no3lim_smp", "sfc_no3lim_smp", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_po4lim_di", "sfc_po4lim_di", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_po4lim_lgp", "sfc_po4lim_lgp", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_po4lim_mdp", "sfc_po4lim_mdp", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_po4lim_smp", "sfc_po4lim_smp", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_q_fe_2_n_di", "sfc_q_fe_2_n_di", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_q_fe_2_n_lgp", "sfc_q_fe_2_n_lgp", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_q_fe_2_n_mdp", "sfc_q_fe_2_n_mdp", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_q_fe_2_n_smp", "sfc_q_fe_2_n_smp", "ocean_cobalt_sfc","all","mean","none",2 +# "generic_cobalt","pka_nh3", "pka_nh3", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","nh4_stf", "nh4_stf", "ocean_cobalt_sfc","all","mean","none",2 +# "generic_cobalt","nh4_stf_gas", "nh4_stf_gas", "ocean_cobalt_sfc","all","mean","none",2 +# "generic_cobalt","nh4_alpha", "nh4_alpha", "ocean_cobalt_sfc","all","mean","none",2 +# "generic_cobalt","nh4_csurf", "nh4_csurf", "ocean_cobalt_sfc","all","mean","none",2 +# "generic_cobalt","nh4_deltap", "nh4_deltap", "ocean_cobalt_sfc","all","mean","none",2 +# "generic_cobalt","nh4_kw", "nh4_kw", "ocean_cobalt_sfc","all","mean","none",2 +# "generic_cobalt","nh4_sc_no", "nh4_sc_no", "ocean_cobalt_sfc","all","mean","none",2 +# "generic_cobalt","pnh3surf", "pnh3surf", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","mld03", "mld03", "ocean_cobalt_sfc","all","mean","none",2 +# "ocean_model", "h_ML", "h_ML", "ocean_cobalt_sfc","all","mean","none",2 +# "ocean_model", "ePBL_h_ML", "ePBL_h_ML", "ocean_cobalt_sfc","all","mean","none",2 +# "ocean_model", "mlotst", "mlotst", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt_z","irr_mem_sfc", "irr_mem_sfc", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt","sfc_no3", "sfc_no3", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_po4", "sfc_po4", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_sio4", "sfc_sio4", "ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_co3_sol_arag", "sfc_co3_sol_arag","ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_co3_sol_calc", "sfc_co3_sol_calc","ocean_cobalt_sfc","all","mean","none",2 + "generic_cobalt","sfc_co3_ion", "sfc_co3_ion", "ocean_cobalt_sfc","all","mean","none",2 +#=================== +# Generic COBALT bottom fields: +#================== + "generic_cobalt","btm_temp", "btm_temp", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","btm_o2", "btm_o2", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","ffedet_btm", "ffedet_btm", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","ffedi_btm", "ffedi_btm", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","ffetot_btm", "ffetot_btm", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","ffemd_btm", "ffemd_btm", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","ffelg_btm", "ffelg_btm", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","ffe_sed", "ffe_sed", "ocean_cobalt_btm","all","mean","none",2 +# "generic_cobalt","ffe_geotherm", "ffe_geotherm", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","flithdet_btm", "flithdet_btm", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","fndet_btm", "fndet_btm", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","fndi_btm", "fndi_btm", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","fntot_btm", "fntot_btm", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","fnmd_btm", "fnmd_btm", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","fnlg_btm", "fnlg_btm", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","fpdet_btm", "fpdet_btm", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","fpdi_btm", "fpdi_btm", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","fptot_btm", "fptot_btm", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","fpmd_btm", "fpmd_btm", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","fplg_btm", "fplg_btm", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","fsidet_btm", "fsidet_btm", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","fsimd_btm", "fsimd_btm", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","fsilg_btm", "fsilg_btm", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","fcadet_arag_btm", "fcadet_arag_btm", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","fcadet_calc_btm", "fcadet_calc_btm", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","fcased_burial", "fcased_burial", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","fcased_redis", "fcased_redis", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","fnfeso4red_sed", "fnfeso4red_sed", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","fno3denit_sed", "fno3denit_sed", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","fnoxic_sed", "fnoxic_sed", "ocean_cobalt_btm","all","mean","none",2 +# "generic_cobalt","fndet_burial", "fndet_burial", "ocean_cobalt_btm","all","mean","none",2 +# "generic_cobalt","fpdet_burial", "fpdet_burial", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","cased_2d", "cased", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","btm_co3_sol_arag", "btm_co3_sol_arag","ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","btm_co3_sol_calc", "btm_co3_sol_calc","ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","btm_co3_ion", "btm_co3_ion", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","btm_htotal", "btm_htotal", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","fcased_redis_surfresp","fcased_redis_surfresp","ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","cased_redis_coef", "cased_redis_coef", "ocean_cobalt_btm","all","mean","none",2 + "generic_cobalt","cased_redis_delz", "cased_redis_delz", "ocean_cobalt_btm","all","mean","none",2 +#====================== +# Generic COBALT downward fluxes at 100 meters +#====================== + "generic_cobalt","fndet_100", "fndet_100", "ocean_cobalt_fdet_100","all","mean","none",2 + "generic_cobalt","fntot_100", "fntot_100", "ocean_cobalt_fdet_100","all","mean","none",2 + "generic_cobalt","fpdet_100", "fpdet_100", "ocean_cobalt_fdet_100","all","mean","none",2 + "generic_cobalt","fptot_100", "fptot_100", "ocean_cobalt_fdet_100","all","mean","none",2 + "generic_cobalt","ffedet_100", "ffedet_100", "ocean_cobalt_fdet_100","all","mean","none",2 + "generic_cobalt","fsidet_100", "fsidet_100", "ocean_cobalt_fdet_100","all","mean","none",2 + "generic_cobalt","fcadet_calc_100", "fcadet_calc_100", "ocean_cobalt_fdet_100","all","mean","none",2 + "generic_cobalt","fcadet_arag_100", "fcadet_arag_100", "ocean_cobalt_fdet_100","all","mean","none",2 + "generic_cobalt","flithdet_100", "flithdet_100", "ocean_cobalt_fdet_100","all","mean","none",2 +#======================= +# Generic COBALT integrated tracer variables +#======================= + "generic_cobalt","nsmp_100", "nsmp_100", "ocean_cobalt_tracers_int","all","mean","none",2 + "generic_cobalt","nmdp_100", "nmdp_100", "ocean_cobalt_tracers_int","all","mean","none",2 + "generic_cobalt","nlgp_100", "nlgp_100", "ocean_cobalt_tracers_int","all","mean","none",2 + "generic_cobalt","ndi_100", "ndi_100", "ocean_cobalt_tracers_int","all","mean","none",2 + "generic_cobalt","silgp_100", "silgp_100", "ocean_cobalt_tracers_int","all","mean","none",2 + "generic_cobalt","simdp_100", "simdp_100", "ocean_cobalt_tracers_int","all","mean","none",2 + "generic_cobalt","nsmz_100", "nsmz_100", "ocean_cobalt_tracers_int","all","mean","none",2 + "generic_cobalt","nmdz_100", "nmdz_100", "ocean_cobalt_tracers_int","all","mean","none",2 + "generic_cobalt","nlgz_100", "nlgz_100", "ocean_cobalt_tracers_int","all","mean","none",2 + "generic_cobalt","nbact_100", "nbact_100", "ocean_cobalt_tracers_int","all","mean","none",2 + "generic_cobalt","don_100", "don_100", "ocean_cobalt_tracers_int","all","mean","none",2 + "generic_cobalt","ndet_100", "ndet_100", "ocean_cobalt_tracers_int","all","mean","none",2 + "generic_cobalt","mesozoo_200", "mesozoo_200", "ocean_cobalt_tracers_int","all","mean","none",2 + "generic_cobalt","dp_fac", "dp_fac", "ocean_cobalt_tracers_int","all","mean","none",2 +#======================= +# Generic COBALT instant tracer variables (for budgets) +#======================= + "generic_cobalt","wc_vert_int_c", "wc_vert_int_c", "ocean_cobalt_tracers_instant","all",".false.","none",2 + "generic_cobalt","wc_vert_int_dic", "wc_vert_int_dic", "ocean_cobalt_tracers_instant","all",".false.","none",2 + "generic_cobalt","wc_vert_int_doc", "wc_vert_int_doc", "ocean_cobalt_tracers_instant","all",".false.","none",2 + "generic_cobalt","wc_vert_int_poc", "wc_vert_int_poc", "ocean_cobalt_tracers_instant","all",".false.","none",2 + "generic_cobalt","wc_vert_int_n", "wc_vert_int_n", "ocean_cobalt_tracers_instant","all",".false.","none",2 + "generic_cobalt","wc_vert_int_p", "wc_vert_int_p", "ocean_cobalt_tracers_instant","all",".false.","none",2 + "generic_cobalt","wc_vert_int_fe", "wc_vert_int_fe", "ocean_cobalt_tracers_instant","all",".false.","none",2 + "generic_cobalt","wc_vert_int_si", "wc_vert_int_si", "ocean_cobalt_tracers_instant","all",".false.","none",2 + "generic_cobalt","wc_vert_int_o2", "wc_vert_int_o2", "ocean_cobalt_tracers_instant","all",".false.","none",2 + "generic_cobalt","wc_vert_int_alk", "wc_vert_int_alk", "ocean_cobalt_tracers_instant","all",".false.","none",2 +#======================= +# Generic COBALT integrated flux variables +#======================= + "generic_cobalt","jprod_nsmp_100", "jprod_nsmp_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jprod_nmdp_100", "jprod_nmdp_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jprod_nlgp_100", "jprod_nlgp_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jprod_ndi_100", "jprod_ndi_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jprod_nsmp_new_100", "jprod_nsmp_new_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jprod_nmdp_new_100", "jprod_nmdp_new_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jprod_nlgp_new_100", "jprod_nlgp_new_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jprod_ndi_new_100", "jprod_ndi_new_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jprod_ndi_n2_100", "jprod_ndi_n2_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jprod_nsmz_100", "jprod_nsmz_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jprod_nmdz_100", "jprod_nmdz_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jprod_nlgz_100", "jprod_nlgz_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jprod_nbact_100", "jprod_nbact_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jprod_mesozoo_200", "jprod_mesozoo_200", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jzloss_nsmp_100", "jzloss_nsmp_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jzloss_nmdp_100", "jzloss_nmdp_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jzloss_nlgp_100", "jzloss_nlgp_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jzloss_ndi_100", "jzloss_ndi_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jaggloss_nsmp_100", "jaggloss_nsmp_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jaggloss_nmdp_100", "jaggloss_nmdp_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jaggloss_nlgp_100", "jaggloss_nlgp_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jvirloss_nsmp_100", "jvirloss_nsmp_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jvirloss_nmdp_100", "jvirloss_nmdp_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jvirloss_nlgp_100", "jvirloss_nlgp_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jmortloss_nsmp_100", "jmortloss_nsmp_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jmortloss_nmdp_100", "jmortloss_nmdp_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jmortloss_nlgp_100", "jmortloss_nlgp_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jmortloss_ndi_100", "jmortloss_ndi_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jexuloss_nsmp_100", "jexuloss_nsmp_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jexuloss_nmdp_100", "jexuloss_nmdp_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jexuloss_nlgp_100", "jexuloss_nlgp_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jexuloss_ndi_100", "jexuloss_ndi_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jingest_n_nsmz_100", "jingest_n_nsmz_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jingest_n_nmdz_100", "jingest_n_nmdz_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jingest_n_nlgz_100", "jingest_n_nlgz_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jingest_n_hp_100", "jingest_n_hp_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jzloss_nsmz_100", "jzloss_nsmz_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jzloss_nmdz_100", "jzloss_nmdz_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jhploss_nmdz_100", "jhploss_nmdz_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jhploss_nlgz_100", "jhploss_nlgz_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jprod_ndet_nmdz_100", "jprod_ndet_nmdz_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jprod_ndet_nlgz_100", "jprod_ndet_nlgz_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jprod_ndet_hp_100", "jprod_ndet_hp_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jprod_don_nsmz_100", "jprod_don_nsmz_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jprod_don_nmdz_100", "jprod_don_nmdz_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jremin_n_nsmz_100", "jremin_n_nsmz_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jremin_n_nmdz_100", "jremin_n_nmdz_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jremin_n_nlgz_100", "jremin_n_nlgz_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jremin_n_hp_100", "jremin_n_hp_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","juptake_ldon_nbact_100", "juptake_ldon_nbact_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jvirloss_nbact_100", "jvirloss_nbact_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jzloss_nbact_100", "jzloss_nbact_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jremin_n_nbact_100", "jremin_n_nbact_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jprod_lithdet_100", "jprod_lithdet_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jprod_sidet_100", "jprod_sidet_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jprod_cadet_calc_100", "jprod_cadet_calc_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt","jprod_cadet_arag_100", "jprod_cadet_arag_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt ","jremin_ndet_100", "jremin_ndet_100", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt ","wc_vert_int_jdiss_sidet","wc_vert_int_jdiss_sidet", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt ","wc_vert_int_jdiss_cadet","wc_vert_int_jdiss_cadet", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt ","wc_vert_int_jo2resp", "wc_vert_int_jo2resp", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt ","wc_vert_int_jprod_cadet","wc_vert_int_jprod_cadet", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt ","wc_vert_int_jno3denit", "wc_vert_int_jno3denit", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt ","wc_vert_int_jprod_no3nitrif","wc_vert_int_jprod_no3nitrif","ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt ","wc_vert_int_juptake_nh4","wc_vert_int_juptake_nh4", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt ","wc_vert_int_juptake_no3","wc_vert_int_juptake_no3", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt ","wc_vert_int_nfix", "wc_vert_int_nfix", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt ","wc_vert_int_jprod_nh4", "wc_vert_int_jprod_nh4", "ocean_cobalt_fluxes_int","all","mean","none",2 + #"generic_cobalt ","wc_vert_int_jfe_iceberg","wc_vert_int_jfe_iceberg", "ocean_cobalt_fluxes_int","all","mean","none",2 + #"generic_cobalt ","wc_vert_int_jno3_iceberg","wc_vert_int_jno3_iceberg","ocean_cobalt_fluxes_int","all","mean","none",2 + #"generic_cobalt ","wc_vert_int_jpo4_iceberg","wc_vert_int_jpo4_iceberg","ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt ","wc_vert_int_jprod_n2amx", "wc_vert_int_jprod_n2amx", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt ","wc_vert_int_net_phyto_resp", "wc_vert_int_net_phyto_resp", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt ","wc_vert_int_npp", "wc_vert_int_npp", "ocean_cobalt_fluxes_int","all","mean","none",2 + "generic_cobalt ","wc_vert_int_chemoautopp", "wc_vert_int_chemoautopp", "ocean_cobalt_fluxes_int","all","mean","none",2 +#======================================= +# ocean_cobalt_tracers_month_z +#======================================= +"generic_cobalt_z","htotal", "htotal", "ocean_cobalt_tracers_month_z","all","mean","none",2 +"ocean_model_z","volcello", "volcello", "ocean_cobalt_tracers_month_z","all","mean","none",2 + #"generic_cobalt_z","chl2sfcchl", "chl2sfcchl", "ocean_cobalt_tracers_month_z","all","mean","none",2 + #"generic_cobalt_z","jupswim_n_Smz", "jupswim_n_Smz", "ocean_cobalt_tracers_month_z","all","mean","none",2 + #"generic_cobalt_z","jupswim_n_Mdz", "jupswim_n_Mdz", "ocean_cobalt_tracers_month_z","all","mean","none",2 + #"generic_cobalt_z","jupswim_n_Lgz", "jupswim_n_Lgz", "ocean_cobalt_tracers_month_z","all","mean","none",2 + #"generic_cobalt_z","chl", "chl", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","no3", "no3", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","o2", "o2", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","o2", "o2min", "ocean_cobalt_tracers_month_z","all","min","none",2 + "generic_cobalt_z","o2", "o2max", "ocean_cobalt_tracers_month_z","all","max","none",2 +# "generic_cobalt_z","cadet_arag", "cadet_arag", "ocean_cobalt_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","cadet_calc", "cadet_calc", "ocean_cobalt_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","ldon", "ldon", "ocean_cobalt_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","ldop", "ldop", "ocean_cobalt_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","lith", "lith", "ocean_cobalt_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","lithdet", "lithdet", "ocean_cobalt_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","pdet", "pdet", "ocean_cobalt_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","srdon", "srdon", "ocean_cobalt_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","srdop", "srdop", "ocean_cobalt_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","sldon", "sldon", "ocean_cobalt_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","sldop", "sldop", "ocean_cobalt_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","sidet", "sidet", "ocean_cobalt_tracers_month_z","all","mean","none",2 +"generic_cobalt_z","omega_arag", "omega_arag", "ocean_cobalt_tracers_month_z","all","mean","none",2 +"generic_cobalt_z","omega_calc", "omega_calc", "ocean_cobalt_tracers_month_z","all","mean","none",2 +"generic_cobalt_z","ndi", "ndi", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","nlg", "nlg", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","nmd", "nmd", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","nsm", "nsm", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","pdi", "pdi", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","plg", "plg", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","pmd", "pmd", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","psm", "psm", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","q_p_2_n_Sm", "q_p_2_n_Sm", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","q_p_2_n_Md", "q_p_2_n_Md", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","q_p_2_n_Lg", "q_p_2_n_Lg", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","q_p_2_n_Di", "q_p_2_n_Di", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","silg", "silg", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","simd", "simd", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","chl", "chl", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","chl_Lg", "chl_Lg", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","chl_Md", "chl_Md", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","chl_Sm", "chl_Sm", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","chl_Di", "chl_Di", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","mu_Lg", "mu_Lg", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","mu_Md", "mu_Md", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","mu_Sm", "mu_Sm", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","mu_Di", "mu_Di", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","irrlim_Lg", "irrlim_Lg", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","irrlim_Md", "irrlim_Md", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","irrlim_Sm", "irrlim_Sm", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","irrlim_Di", "irrlim_Di", "ocean_cobalt_tracers_month_z","all","mean","none",2 + # agg_lim diags are not registered + #"generic_cobalt_z","agg_lim_Lg", "agg_lim_Lg", "ocean_cobalt_tracers_month_z","all","mean","none",2 + #"generic_cobalt_z","agg_lim_Md", "agg_lim_Md", "ocean_cobalt_tracers_month_z","all","mean","none",2 + #"generic_cobalt_z","agg_lim_Sm", "agg_lim_Sm", "ocean_cobalt_tracers_month_z","all","mean","none",2 + #"generic_cobalt_z","agg_lim_Di", "agg_lim_Di", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","nbact", "nbact", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","nsmz", "nsmz", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","nmdz", "nmdz", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","nlgz", "nlgz", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","po4", "po4", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","nh4", "nh4", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","fed", "fed", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","fedet", "fedet", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","ndet", "ndet", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","feprime", "feprime", "ocean_cobalt_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","kfe_eq_lig", "kfe_eq_lig", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","theta_Lg", "theta_Lg", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","theta_Md", "theta_Md", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","theta_Sm", "theta_Sm", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","theta_Di", "theta_Di", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","irr_mix", "irr_mix", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","irr_acclim", "irr_acclim", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","irr_inst", "irr_inst", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","irr_mem", "irr_mem", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","vmove_Di", "vmove_Di", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","vmove_Sm", "vmove_Sm", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","vmove_Md", "vmove_Md", "ocean_cobalt_tracers_month_z","all","mean","none",2 + "generic_cobalt_z","vmove_Lg", "vmove_Lg", "ocean_cobalt_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","chl2sfcchl", "chl2sfcchl", "ocean_cobalt_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","jupswim_n_Smz", "jupswim_n_Smz","ocean_cobalt_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","jupswim_n_Mdz", "jupswim_n_Mdz","ocean_cobalt_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","jupswim_n_Lgz", "jupswim_n_Lgz","ocean_cobalt_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","vmove_Smz", "vmove_Smz", "ocean_cobalt_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","vmove_Mdz", "vmove_Mdz", "ocean_cobalt_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","vmove_Lgz", "vmove_Lgz", "ocean_cobalt_tracers_month_z","all","mean","none",2 +"generic_cobalt_z","dissic", "dissic", "ocean_cobalt_tracers_month_z","all","mean","none",2 +"generic_cobalt_z","dissoc", "dissoc", "ocean_cobalt_tracers_month_z","all","mean","none",2 +"generic_cobalt_z","talk", "talk", "ocean_cobalt_tracers_month_z","all","mean","none",2 +"generic_cobalt_z","si", "si", "ocean_cobalt_tracers_month_z","all","mean","none",2 +"generic_cobalt_z","co3", "co3", "ocean_cobalt_tracers_month_z","all","mean","none",2 +#============================================================================================================================= +# CMIP6_OMIP_biogeochemistry DIAGNOSTICS JGJ 2017/12/04 +# To be used with GENERIC OCEAN COBALT +# Oyr, Omon and day are requested. +# Additionally, output _z versions of 3-D fields. +# added variables not in spreadsheet (but in OMIP BGC documentation paper) +# Based on Data Request Version_01.00.18 - omitted any fields not in this data request +## 2017/12/11 added volcello to 3-D fields +## 2018/07/13 Updated - removed geolon/geolat, geolon_c/geolat_c, removed redundant volcello +# reorganized and cleaned-up for production sumulations +# Match Data Request 01.00.27b1 +## 2018/07/19 Updated to add P limitation diagnostics, daily mesozoo_200, and remove limndiaz (redundant) +## 2018/08/21 added nh4os, removed fields from ocean_cobalt_omip_tracers_month_z (being saved annual and sfc, and will cut down on disk space) +#============================================================================================================================= +#output files (native horizontal and vertical). Will be remapped to 1x1 +# +"ocean_cobalt_omip_daily", 24, "hours", 1, "days", "time", +"ocean_cobalt_omip_sfc", 1, "months", 1, "days", "time", +"ocean_cobalt_omip_2d", 1, "months", 1, "days", "time", +#"ocean_cobalt_omip_2d_ann", 12, "months", 1, "days", "time", +# +#output files (native horizontal on _z). fields here will be remapped to 1x1_z +# +# "ocean_cobalt_omip_tracers_month_z", 1, "months", 1, "days", "time", +"ocean_cobalt_omip_tracers_year_z", 12, "months", 1, "days", "time", +"ocean_cobalt_omip_rates_year_z", 12, "months", 1, "days", "time", +# +#============================================================================================================================= +# ocean_cobalt_omip_daily +# should we serve publicly as daily ? priority 3 duplicated as monthly priority 2 +#============================================================================================================================= +"generic_cobalt","chlos", "chlos", "ocean_cobalt_omip_daily","all","mean","none",2 +"generic_cobalt","phycos", "phycos", "ocean_cobalt_omip_daily","all","mean","none",2 +# not requested by CMIP/OMIP +# "generic_cobalt","mesozoo_200", "mesozoo_200", "ocean_cobalt_omip_daily","all","mean","none",2 +# +#==================================================================================================================== +# Omon: 2-D Marine Biogeochemical Surface Tracer Fields: ocean_cobalt_omip_sfc +#==================================================================================================================== + "generic_cobalt","dissicos", "dissicos", "ocean_cobalt_omip_sfc","all","mean","none",2 +# pending +# "generic_cobalt","dissicnatos", "dissicnatos", "ocean_cobalt_omip_sfc","all","mean","none",2 +# "generic_cobalt","dissicabioos", "dissicabioos", "ocean_cobalt_omip_sfc","all","mean","none",2 +# "generic_cobalt","dissi14cabioos", "dissi14cabioos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","dissocos", "dissocos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","phycos", "phycos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","zoocos", "zoocos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","baccos", "baccos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","detocos", "detocos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","calcos", "calcos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","aragos", "aragos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","phydiatos", "phydiatos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","phydiazos", "phydiazos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","phypicoos", "phypicoos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","phymiscos", "phymiscos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","zmicroos", "zmicroos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","zmesoos", "zmesoos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","talkos", "talkos", "ocean_cobalt_omip_sfc","all","mean","none",2 +# pending +# "generic_cobalt","talknatos", "talknatos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","phos", "phos", "ocean_cobalt_omip_sfc","all","mean","none",2 +# pending +# "generic_cobalt","phnatos", "phnat", "ocean_cobalt_omip_sfc","all","mean","none",2 +# "generic_cobalt","phabioos", "phabio", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","o2os", "o2os", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","o2satos", "o2satos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","no3os", "no3os", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","nh4os", "nh4os", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","po4os", "po4os", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","dfeos", "dfeos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","sios", "sios", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","chlos", "chlos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","chldiatos", "chldiatos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","chldiazos", "chldiazos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","chlpicoos", "chlpicoos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","chlmiscos", "chlmiscos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","ponos", "ponos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","popos", "popos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","bfeos", "bfeos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","bsios", "bsios", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","phynos", "phynos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","phypos", "phypos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","phyfeos", "phyfeos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","physios", "physios", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","co3os", "co3os", "ocean_cobalt_omip_sfc","all","mean","none",2 +#pending +# "generic_cobalt","co3natos", "co3natos", "ocean_cobalt_omip_sfc","all","mean","none",2 +# "generic_cobalt","co3abioos", "co3abioos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","co3satcalcos", "co3satcalcos", "ocean_cobalt_omip_sfc","all","mean","none",2 + "generic_cobalt","co3sataragos", "co3sataragos", "ocean_cobalt_omip_sfc","all","mean","none",2 +# +#============================================================================================================================= +# Omon: Additional 2-D Marine Biogeochemical Fields (e.g. vertically integrated, 100m, etc) +#============================================================================================================================= + "generic_cobalt","limndiat", "limndiat", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","limnpico", "limnpico", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","limnmisc", "limnmisc", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","limirrdiat", "limirrdiat", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","limirrdiaz", "limirrdiaz", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","limirrpico", "limirrpico", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","limirrmisc", "limirrmisc", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","limfediat", "limfediat", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","limfediaz", "limfediaz", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","limfepico", "limfepico", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","limfemisc", "limfemisc", "ocean_cobalt_omip_2d","all","mean","none",2 +# NOTE: P limitation diagnostics not requested by CMIP + "generic_cobalt","limpdiat", "limpdiat", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","limpdiaz", "limpdiaz", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","limppico", "limppico", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","limpmisc", "limpmisc", "ocean_cobalt_omip_2d","all","mean","none",2 +# + "generic_cobalt","intpp", "intpp", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","intppnitrate", "intppnitrate", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","intppdiat", "intppdiat", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","intppdiaz", "intppdiaz", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","intpppico", "intpppico", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","intppmisc", "intppmisc", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","intpbn", "intpbn", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","intpbp", "intpbp", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","intpbfe", "intpbfe", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","intpbsi", "intpbsi", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","intpcalcite", "intpcalcite", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","intparag", "intparag", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","epc100", "epc100", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","epn100", "epn100", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","epp100", "epp100", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","epfe100", "epfe100", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","epsi100", "epsi100", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","epcalc100", "epcalc100", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","eparag100", "eparag100", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","intdic", "intdic", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","intdoc", "intdoc", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","intpoc", "intpoc", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","spco2", "spco2", "ocean_cobalt_omip_2d","all","mean","none",2 +# pending +# "generic_cobalt","spco2nat", "spco2nat", "ocean_cobalt_omip_2d","all","mean","none",2 +# "generic_cobalt","spco2abio", "spco2abio", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","dpco2", "dpco2", "ocean_cobalt_omip_2d","all","mean","none",2 +# pending +# "generic_cobalt","dpco2nat", "dpco2nat", "ocean_cobalt_omip_2d","all","mean","none",2 +# "generic_cobalt","dpco2abio", "dpco2abio", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","dpo2", "dpo2", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","fgco2", "fgco2", "ocean_cobalt_omip_2d","all","mean","none",2 +# pending +# "generic_cobalt","fgco2nat", "fgco2nat", "ocean_cobalt_omip_2d","all","mean","none",2 +# "generic_cobalt","fgco2abio", "fgco2abio", "ocean_cobalt_omip_2d","all","mean","none",2 +# "generic_cobalt","fg14co2abio", "fg14co2abio", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","fgo2", "fgo2", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","icfriver", "icfriver", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","fric", "fric", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","ocfriver", "ocfriver", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","froc", "froc", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","intpn2", "intpn2", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","fsn", "fsn", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","frn", "frn", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","fsfe", "fsfe", "ocean_cobalt_omip_2d","all","mean","none",2 + "generic_cobalt","frfe", "frfe", "ocean_cobalt_omip_2d","all","mean","none",2 +# +#============================================================================================================================= +# Oyr: Additional 2-D Marine Biogeochemical Fields +# Will be postprocessed via ts/ann +#============================================================================================================================= +# "generic_cobalt","fgco2", "fgco2", "ocean_cobalt_omip_2d_ann","all","mean","none",2 +# pending +# "generic_cobalt","fgco2nat", "fgco2nat", "ocean_cobalt_omip_2d_ann","all","mean","none",2 +# "generic_cobalt","fgco2abio", "fgco2abio", "ocean_cobalt_omip_2d_ann","all","mean","none",2 +# "generic_cobalt","fg14co2abio", "fg14co2abio", "ocean_cobalt_omip_2d_ann","all","mean","none",2 +# +#============================================================================================================================= +# CMIP6_OMIP_biogeochemistry DIAGNOSTICS JGJ 2016/08/15 +# To be used with GENERIC OCEAN COBALT +# output _z versions of 3-D fields. +#============================================================================================================================= +# Omon: 3-D Marine Biogeochemical Tracer Fields: ocean_cobalt_omip_tracers_month_z +#============================================================================================================================= + #"ocean_model_z","volcello", "volcello", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# +# "generic_cobalt_z","dissic", "dissic", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# pending +# "generic_cobalt_z","dissicnat", "dissicnat", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","dissicabio", "dissicabio", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","dissi14cabio", "dissi14cabio", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","dissoc", "dissoc", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","phyc", "phyc", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","zooc", "zooc", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# sufficient to save annually and at sfc for CMIP6 +# "generic_cobalt_z","bacc", "bacc", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","detoc", "detoc", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","calc", "calc", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","arag", "arag", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","phydiat", "phydiat", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","phydiaz", "phydiaz", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","phypico", "phypico", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","phymisc", "phymisc", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","zmicro", "zmicro", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","zmeso", "zmeso", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","talk", "talk", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# pending +# "generic_cobalt_z","talknat", "talknat", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","ph", "ph", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# pending +# "generic_cobalt_z","phnat", "phnat", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","phabio", "phabio", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","o2_cmip", "o2", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","o2sat", "o2sat", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","no3_cmip", "no3", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","nh4_cmip", "nh4", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","po4_cmip", "po4", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","dfe", "dfe", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","si", "si", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","chl_cmip", "chl", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# sufficient to save annually and at sfc for CMIP6 +# "generic_cobalt_z","chldiat", "chldiat", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","chldiaz", "chldiaz", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","chlpico", "chlpico", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","chlmisc", "chlmisc", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","pon", "pon", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# sufficient to save annually and at sfc for CMIP6 +# "generic_cobalt_z","pop", "pop", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","bfe", "bfe", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","bsi", "bsi", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","phyn", "phyn", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","phyp", "phyp", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","phyfe", "phyfe", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","physi", "physi", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","co3", "co3", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# pending +# "generic_cobalt_z","co3nat", "co3nat", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","co3abio", "co3abio", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","co3satcalc", "co3satcalc", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","co3satarag", "co3satarag", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# +#============================================================================================================================= +# Additional Omon: 3-D Marine Biogeochemical Fields: ocean_cobalt_omip_tracers_month_z +#============================================================================================================================= +# "generic_cobalt_z","pp", "pp", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","graz", "graz", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# "generic_cobalt_z","expc", "expc", "ocean_cobalt_omip_tracers_month_z","all","mean","none",2 +# +#============================================================================================================================= +# Oyr: 3-D Marine Biogeochemical Tracer Fields: ocean_cobalt_omip_tracers_year_z +#============================================================================================================================= +# "ocean_model_z","volcello", "volcello", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# +# "generic_cobalt_z","dissic", "dissic", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# pending +# "generic_cobalt_z","dissicnat", "dissicnat", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","dissicabio", "dissicabio", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","dissi14cabio", "dissi14cabio", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","dissoc", "dissoc", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","phyc", "phyc", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","zooc", "zooc", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","bacc", "bacc", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","detoc", "detoc", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","calc", "calc", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","arag", "arag", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","phydiat", "phydiat", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","phydiaz", "phydiaz", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","phypico", "phypico", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","phymisc", "phymisc", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","zmicro", "zmicro", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","zmeso", "zmeso", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","talk", "talk", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# pending +# "generic_cobalt_z","talknat", "talknat", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","ph", "ph", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# pending +# "generic_cobalt_z","phnat", "phnat", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","phabio", "phabio", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","o2_cmip", "o2", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","o2sat", "o2sat", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","no3_cmip", "no3", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","nh4_cmip", "nh4", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","po4_cmip", "po4", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","dfe", "dfe", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","si", "si", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","chl_cmip", "chl", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","chldiat", "chldiat", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","chldiaz", "chldiaz", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","chlpico", "chlpico", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","chlmisc", "chlmisc", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","pon", "pon", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","pop", "pop", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","bfe", "bfe", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","bsi", "bsi", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","phyn", "phyn", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","phyp", "phyp", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","phyfe", "phyfe", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","physi", "physi", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","co3", "co3", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# pending +# "generic_cobalt_z","co3nat", "co3nat", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","co3abio", "co3abio", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","co3satcalc", "co3satcalc", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# "generic_cobalt_z","co3satarag", "co3satarag", "ocean_cobalt_omip_tracers_year_z","all","mean","none",2 +# +#============================================================================================================================= +# Oyr: 3-D Marine Biogeochemical Rates of Production and Removal: ocean_cobalt_omip_rates_year_z +#============================================================================================================================= +# volcello is needed here of model will crash + "ocean_model_z","volcello", "volcello", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","pp", "pp", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","pnitrate", "pnitrate", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","pbfe", "pbfe", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","pbsi", "pbsi", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","pcalc", "pcalc", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","parag", "parag", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","expc", "expc", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","expn", "expn", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","expp", "expp", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","expfe", "expfe", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","expsi", "expsi", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","expcalc", "expcalc", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","exparag", "exparag", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","remoc", "remoc", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","dcalc", "dcalc", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","darag", "darag", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","ppdiat", "ppdiat", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","ppdiaz", "ppdiaz", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","pppico", "pppico", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","ppmisc", "ppmisc", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","bddtdic", "bddtdic", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","bddtdin", "bddtdin", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","bddtdip", "bddtdip", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","bddtdife", "bddtdife", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","bddtdisi", "bddtdisi", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","bddtalk", "bddtalk", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","fescav", "fescav", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","fediss", "fediss", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 + "generic_cobalt_z","graz", "graz", "ocean_cobalt_omip_rates_year_z","all","mean","none",2 +# +# MOM6 ocean diagnostics files +"ocean_daily", 1, "days", 1, "days", "time" +"ocean_month_snap", 1, "months", 1, "days", "time" +"ocean_month", 1, "months", 1, "days", "time" +"ocean_month_z", 1, "months", 1, "days", "time" +"ocean_annual", 12, "months", 1, "days", "time" +"ocean_annual_z", 12, "months", 1, "days", "time" +"ocean_static", -1, "months", 1, "days", "time" # ocean_static is a protected name. Do not change this line. +# ----------------------------------------------------------------------------------------- +# CMIP6/OMIP Table G1: static information + "ocean_model", "areacello", "areacello", "ocean_static", "all", "none", "none", 2 + "ocean_model", "deptho", "deptho", "ocean_static", "all", "none", "none", 2 +#"ocean_model", "basin", "basin", "ocean_static", "all", "none", "none", 2 # in /archive/gold/datasets/OM4_025/ +# "ocean_model", "hfgeou", "hfgeou", "ocean_static", "all", "none", "none", 2 # for static geothermal heat + "ocean_model", "sftof", "sftof", "ocean_static", "all", "none", "none", 2 +# Extra static geometry data beyond CMIP6/OMIP Table 2.1 + "ocean_model", "Coriolis", "Coriolis", "ocean_static", "all", "none", "none", 2 + "ocean_model", "geolon", "geolon", "ocean_static", "all", "none", "none", 2 + "ocean_model", "geolat", "geolat", "ocean_static", "all", "none", "none", 2 + "ocean_model", "geolon_c", "geolon_c", "ocean_static", "all", "none", "none", 2 + "ocean_model", "geolat_c", "geolat_c", "ocean_static", "all", "none", "none", 2 + "ocean_model", "geolon_u", "geolon_u", "ocean_static", "all", "none", "none", 2 + "ocean_model", "geolat_u", "geolat_u", "ocean_static", "all", "none", "none", 2 + "ocean_model", "geolon_v", "geolon_v", "ocean_static", "all", "none", "none", 2 + "ocean_model", "geolat_v", "geolat_v", "ocean_static", "all", "none", "none", 2 + "ocean_model", "wet", "wet", "ocean_static", "all", "none", "none", 2 + "ocean_model", "wet_c", "wet_c", "ocean_static", "all", "none", "none", 2 + "ocean_model", "wet_u", "wet_u", "ocean_static", "all", "none", "none", 2 + "ocean_model", "wet_v", "wet_v", "ocean_static", "all", "none", "none", 2 + "ocean_model", "dxt", "dxt", "ocean_static", "all", "none", "none", 2 + "ocean_model", "dyt", "dyt", "ocean_static", "all", "none", "none", 2 + "ocean_model", "dxCu", "dxCu", "ocean_static", "all", "none", "none", 2 + "ocean_model", "dyCu", "dyCu", "ocean_static", "all", "none", "none", 2 + "ocean_model", "dxCv", "dxCv", "ocean_static", "all", "none", "none", 2 + "ocean_model", "dyCv", "dyCv", "ocean_static", "all", "none", "none", 2 + "ocean_model", "areacello_cu","areacello_cu","ocean_static", "all", "none", "none", 2 + "ocean_model", "areacello_cv","areacello_cv","ocean_static", "all", "none", "none", 2 + "ocean_model", "areacello_bu","areacello_bu","ocean_static", "all", "none", "none", 2 +# ----------------------------------------------------------------------------------------- +# CMIP6/OMIP Table H1: scalar fields such as tracers, cell mass/volume, sea level, MLD +# Generally save annuals, and sometimes monthly and daily. + "ocean_model_z", "volcello", "volcello", "ocean_annual_z", "all", "mean", "none",2 # Cell measure for 3d data + "ocean_model_z", "volcello", "volcello", "ocean_month_z", "all", "mean", "none",2 # Cell measure for 3d data + "ocean_model", "volcello", "volcello", "ocean_annual", "all", "mean", "none",2 # Cell measure for 3d data +# "ocean_model", "volcello", "volcello", "ocean_month", "all", "mean", "none",2 # Cell measure for 3d data + "ocean_model", "pbo", "pbo", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "pbo", "pbo", "ocean_month", "all", "mean", "none",2 +# "ocean_model", "pso", "pso", "ocean_annual", "all", "mean", "none",2 +# "ocean_model", "pso", "pso", "ocean_month", "all", "mean", "none",2 + "ocean_model", "masscello", "masscello", "ocean_annual", "all", "mean", "none",2 +#"ocean_model", "masscello", "masscello", "ocean_month", "all", "mean", "none",2 + "ocean_model", "thkcello", "thkcello", "ocean_annual", "all", "mean", "none",2 # Only needed in native space a static field needs to be provided for CMIP6 +#"ocean_model", "thkcello", "thkcello", "ocean_month", "all", "mean", "none",2 + "ocean_model", "ssh", "ssh", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "zos", "zos", "ocean_month", "all", "mean", "none",2 + "ocean_model", "ssh", "ssh", "ocean_month", "all", "mean", "none",2 +# "ocean_model", "zos", "zos", "ocean_daily", "all", "mean", "none",2 + "ocean_model", "ssh", "ssh", "ocean_daily", "all", "mean", "none",2 +# "ocean_model", "zos", "zosmin", "ocean_daily", "all", "min", "none",2 +# "ocean_model", "zos", "zosmax", "ocean_daily", "all", "max", "none",2 + "ocean_model", "ssh", "sshmin", "ocean_daily", "all", "min", "none",2 + "ocean_model", "ssh", "sshmax", "ocean_daily", "all", "max", "none",2 + "ocean_model", "zossq", "zossq", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "zossq", "zossq", "ocean_month", "all", "mean", "none",2 +#"ocean_model", "zostoga", "zostoga", "ocean_month", "all", "mean", "none",2 # to be done offline + "ocean_model", "thetao", "thetao", "ocean_annual", "all", "mean", "none",2 # if use pre-TEOS10 +#"ocean_model", "thetao", "thetao", "ocean_month", "all", "mean", "none",2 # if use pre-TEOS10 + "ocean_model_z", "thetao", "thetao", "ocean_annual_z", "all", "mean", "none",2 # if use pre-TEOS10 + "ocean_model_z", "thetao", "thetao", "ocean_month_z", "all", "mean", "none",2 # if use pre-TEOS10 + "ocean_model_z", "thetao_xyave", "thetao_xyave", "ocean_annual_z", "all", "mean", "none",2 # if use pre-TEOS10 +#"ocean_model", "bigthetao", "bigthetao", "ocean_annual", "all", "mean", "none",2 # if use TEOS10 +#"ocean_model", "bigthetao", "bigthetao", "ocean_month", "all", "mean", "none",2 # if use TEOS10 + "ocean_model", "tos", "tos", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "tos", "tos", "ocean_month", "all", "mean", "none",2 + "ocean_model", "tos", "tos", "ocean_daily", "all", "mean", "none",2 + "ocean_model", "tos", "tosmin", "ocean_daily", "all", "min" , "none",2 + "ocean_model", "tos", "tosmax", "ocean_daily", "all", "max" , "none",2 + "ocean_model", "tossq", "tossq", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "tossq", "tossq", "ocean_month", "all", "mean", "none",2 + "ocean_model", "tossq", "tossq", "ocean_daily", "all", "mean", "none",2 + "ocean_model", "tob", "tob", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "tob", "tob", "ocean_month", "all", "mean", "none",2 + "ocean_model", "tob", "tob", "ocean_daily", "all", "mean", "none",2 + "ocean_model", "so", "so", "ocean_annual", "all", "mean", "none",2 +#"ocean_model", "so", "so", "ocean_month", "all", "mean", "none",2 + "ocean_model_z", "so", "so", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z", "so", "so", "ocean_month_z", "all", "mean", "none",2 + "ocean_model_z", "so_xyave", "so_xyave", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model", "sos", "sos", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "sos", "sos", "ocean_month", "all", "mean", "none",2 + "ocean_model", "sos", "sos", "ocean_daily", "all", "mean", "none",2 + "ocean_model", "sossq", "sossq", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "sossq", "sossq", "ocean_month", "all", "mean", "none",2 + "ocean_model", "sossq", "sossq", "ocean_daily", "all", "mean", "none",2 + "ocean_model", "sob", "sob", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "sob", "sob", "ocean_month", "all", "mean", "none",2 + "ocean_model", "sob", "sob", "ocean_daily", "all", "mean", "none",2 + # not registered + #"ocean_model_z", "obvfsq", "obvfsq", "ocean_annual_z", "all", "mean", "none",2 + #"ocean_model_z", "obvfsq", "obvfsq", "ocean_month_z", "all", "mean", "none",2 +# "ocean_model", "mlotst", "mlotst", "ocean_annual", "all", "mean", "none",2 +# "ocean_model", "mlotst", "mlotst", "ocean_month", "all", "mean", "none",2 +# "ocean_model", "mlotstsq", "mlotstsq", "ocean_annual", "all", "mean", "none",2 +# "ocean_model", "mlotstsq", "mlotstsq", "ocean_month", "all", "mean", "none",2 + "ocean_model", "mlotst", "mlotstmin", "ocean_annual", "all", "min", "none",2 + "ocean_model", "mlotst", "mlotstmin", "ocean_month", "all", "min", "none",2 + "ocean_model", "mlotst", "mlotstmax", "ocean_annual", "all", "max", "none",2 + "ocean_model", "mlotst", "mlotstmax", "ocean_month", "all", "max", "none",2 +#"ocean_model", "msftbarot", "msftbarot", "ocean_month", "all", "mean", "none",2 # to be done offline +# ----------------------------------------------------------------------------------------- +# CMIP6/OMIP Table I1: components of vector fields +# (umo,vmo) =net mass transport from residual mean velocity (model resolved + SGS) +# (uhml,vhml)=parameterized mixed layer restratification mass transport +# (uhGM,vhGM)=parameterized eddy-induced mass transport from GM +# (T_adx_2d,T_ady_2d) = heat transport by residual mean advection (yet to code neutral diffusion diagnostic) +# Offline calculations needed for meridional overturning streamfunctions. +#"ocean_model", "uo", "uo", "ocean_annual", "all", "mean", "none",2 + "ocean_model_z","uo", "uo", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z","uo", "uo", "ocean_month_z", "all", "mean", "none",2 +#"ocean_model", "uo", "uo", "ocean_month", "all", "mean", "none",2 +#"ocean_model", "vo", "vo", "ocean_annual", "all", "mean", "none",2 + "ocean_model_z","vo", "vo", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z","vo", "vo", "ocean_month_z", "all", "mean", "none",2 +#"ocean_model", "vo", "vo", "ocean_month", "all", "mean", "none",2 +#"ocean_model", "umo", "umo", "ocean_annual", "all", "mean", "none",2 + "ocean_model_z","umo", "umo", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z","umo", "umo", "ocean_month_z", "all", "mean", "none",2 +#"ocean_model", "vmo", "vmo", "ocean_annual", "all", "mean", "none",2 + "ocean_model_z","vmo", "vmo", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z","vmo", "vmo", "ocean_month_z", "all", "mean", "none",2 +#"ocean_model", "wmo", "wmo", "ocean_annual", "all", "mean", "none",2 # calculated offline +#"ocean_model", "wmo", "wmo", "ocean_month", "all", "mean", "none",2 # calculated offline +#"ocean_model", "uhml", "uhml", "ocean_annual", "all", "mean", "none",2 + "ocean_model_z","uhml", "uhml", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z","uhml", "uhml", "ocean_month_z", "all", "mean", "none",2 +#"ocean_model", "vhml", "vhml", "ocean_annual", "all", "mean", "none",2 + "ocean_model_z","vhml", "vhml", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z","vhml", "vhml", "ocean_month_z", "all", "mean", "none",2 +#"ocean_model", "uhGM", "uhGM", "ocean_annual", "all", "mean", "none",2 +#"ocean_model_z","uhGM", "uhGM", "ocean_annual_z", "all", "mean", "none",2 +#"ocean_model_z","uhGM", "uhGM", "ocean_month_z", "all", "mean", "none",2 +#"ocean_model", "vhGM", "vhGM", "ocean_annual", "all", "mean", "none",2 +#"ocean_model_z","vhGM", "vhGM", "ocean_annual_z", "all", "mean", "none",2 +#"ocean_model_z","vhGM", "vhGM", "ocean_month_z", "all", "mean", "none",2 + "ocean_model_z","uh", "uh", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z","vh", "vh", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z","T_adx", "T_adx", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z","T_ady", "T_ady", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model", "T_adx_2d", "T_adx_2d", "ocean_month", "all", "mean", "none",2 + "ocean_model", "T_ady_2d", "T_ady_2d", "ocean_month", "all", "mean", "none",2 + "ocean_model", "T_adx_2d", "T_adx_2d", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "T_ady_2d", "T_ady_2d", "ocean_annual", "all", "mean", "none",2 + "ocean_model_z","S_adx", "S_adx", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z","S_ady", "S_ady", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model", "S_adx_2d", "S_adx_2d", "ocean_month", "all", "mean", "none",2 + "ocean_model", "S_ady_2d", "S_ady_2d", "ocean_month", "all", "mean", "none",2 +# ----------------------------------------------------------------------------------------- +# CMIP6/OMIP Table J1: in support of mass transport through straits +# net transport of mass through straits is either done offline using +# umo_2d and vmo_2d or via the Sections output just below. + "ocean_model", "umo_2d", "umo_2d", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "vmo_2d", "vmo_2d", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "umo_2d", "umo_2d", "ocean_month", "all", "mean", "none",2 + "ocean_model", "vmo_2d", "vmo_2d", "ocean_month", "all", "mean", "none",2 +# ----------------------------------------------------------------------------------------- +# CMIP6/OMIP Table K1: surface mass fluxes + "ocean_model", "prlq", "prlq", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "prsn", "prsn", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "evs", "evs", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "friver", "friver", "ocean_annual", "all", "mean", "none",2 +# "ocean_model", "ficeberg", "ficeberg", "ocean_annual", "all", "mean", "none",2 +# "ocean_model", "fsitherm", "fsitherm", "ocean_annual", "all", "mean", "none",2 # need code to split ice melt from prlq + "ocean_model", "wfo", "wfo", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "prlq", "prlq", "ocean_month", "all", "mean", "none",2 # MOM6 has ice melt/form added to prlq + "ocean_model", "prsn", "prsn", "ocean_month", "all", "mean", "none",2 + "ocean_model", "evs", "evs", "ocean_month", "all", "mean", "none",2 + "ocean_model", "friver", "friver", "ocean_month", "all", "mean", "none",2 + "ocean_model", "ficeberg", "ficeberg", "ocean_month", "all", "mean", "none",2 + "ocean_model", "fsitherm", "fsitherm", "ocean_month", "all", "mean", "none",2 # need code to split ice melt from prlq + "ocean_model", "wfo", "wfo", "ocean_month", "all", "mean", "none",2 +# extra mass flux information beyond CMIP6/OMIP Table K1 + "ocean_model", "net_massout", "net_massout", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "net_massin", "net_massin", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "net_massout", "net_massout", "ocean_month", "all", "mean", "none",2 + "ocean_model", "net_massin", "net_massin", "ocean_month", "all", "mean", "none",2 +# ----------------------------------------------------------------------------------------- +# CMIP6/OMIP Table K2: surface salt fluxes + "ocean_model", "sfdsi", "sfdsi", "ocean_annual", "all", "mean", "none",2 +#"ocean_model", "sfriver", "sfriver", "ocean_annual", "all", "mean", "none",2 # to be coded if rivers have salt + "ocean_model", "sfdsi", "sfdsi", "ocean_month", "all", "mean", "none",2 +#"ocean_model", "sfriver", "sfriver", "ocean_month", "all", "mean", "none",2 # to be coded if rivers have salt +# ----------------------------------------------------------------------------------------- +# CMIP6/OMIP Table K3: boundary heat fluxes +# "ocean_model", "hfgeou", "hfgeou", "ocean_annual", "all", "mean", "none",2 # geothermal heat flux is static + "ocean_model", "hfrainds", "hfrainds", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "hfevapds", "hfevapds", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "hfrunoffds", "hfrunoffds", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "hfsnthermds", "hfsnthermds", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "hfsifrazil", "hfsifrazil", "ocean_annual", "all", "mean", "none",2 +# "ocean_model", "hfibthermds", "hfibthermds", "ocean_annual", "all", "mean", "none",2 +# "ocean_model", "hfsolidrunoffds", "hfsolidrunoffds", "ocean_annual", "all", "mean", "none",2 # =0 if ice = 0C # not registered + "ocean_model", "rlntds", "rlntds", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "hflso", "hflso", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "hfsso", "hfsso", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "rsntds", "rsntds", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "rsdo", "rsdo", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "hfds", "hfds", "ocean_annual", "all", "mean", "none",2 +# "ocean_model", "hfgeou", "hfgeou", "ocean_month", "all", "mean", "none",2 # geothermal heat flux is static + "ocean_model", "hfrainds", "hfrainds", "ocean_month", "all", "mean", "none",2 # heat content of lprec fprec condensate + "ocean_model", "hfevapds", "hfevapds", "ocean_month", "all", "mean", "none",2 # heat content of mass leaving ocean + "ocean_model", "hfrunoffds", "hfrunoffds", "ocean_month", "all", "mean", "none",2 # heat content of lrunoff frunoff + "ocean_model", "hfsnthermds", "hfsnthermds", "ocean_month", "all", "mean", "none",2 # latent heat to melt snow + "ocean_model", "hfsifrazil", "hfsifrazil", "ocean_month", "all", "mean", "none",2 # frazil formation +#"ocean_model", "hfsithermds", "hfsithermds", "ocean_month", "all", "mean", "none",2 # computed in SIS2 + "ocean_model", "hfibthermds", "hfibthermds", "ocean_month", "all", "mean", "none",2 # latent heat to melt icebergs +# "ocean_model", "hfsolidrunoffds", "hfsolidrunoffds", "ocean_month", "all", "mean", "none",2 # ne 0 since ice has SST + "ocean_model", "rlntds", "rlntds", "ocean_month", "all", "mean", "none",2 # longwave down + "ocean_model", "hflso", "hflso", "ocean_month", "all", "mean", "none",2 # latent heat for evap+melt + "ocean_model", "hfsso", "hfsso", "ocean_month", "all", "mean", "none",2 # sensible from air-sea and ice-sea + "ocean_model", "rsntds", "rsntds", "ocean_month", "all", "mean", "none",2 # shortwave + "ocean_model", "hfds", "hfds", "ocean_month", "all", "mean", "none",2 # total heat entering ocean surface + "ocean_model", "rsdo", "rsdo", "ocean_month_z", "all", "mean", "none",2 # penetrative shortwave flux at interface +# Extra heat flux terms beyond Table K3 from CMIP6/OMIP + "ocean_model", "net_heat_coupler", "net_heat_coupler", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "heat_content_massin", "heat_content_massin", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "heat_content_massout", "heat_content_massout", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "heat_content_surfwater", "heat_content_surfwater", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "heat_content_fprec", "heat_content_fprec", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "heat_content_cond", "heat_content_cond", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "LwLatSens", "LwLatSens", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "Heat_PmE", "Heat_PmE", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "nonpenSW", "nonpenSW", "ocean_annual", "all", "mean", "none",2 +#"ocean_model", "internal_heat", "internal_heat", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "net_heat_coupler", "net_heat_coupler", "ocean_month", "all", "mean", "none",2 + "ocean_model", "heat_content_massin", "heat_content_massin", "ocean_month", "all", "mean", "none",2 + "ocean_model", "heat_content_massout", "heat_content_massout", "ocean_month", "all", "mean", "none",2 + "ocean_model", "heat_content_surfwater", "heat_content_surfwater", "ocean_month", "all", "mean", "none",2 + "ocean_model", "heat_content_fprec", "heat_content_fprec", "ocean_month", "all", "mean", "none",2 + "ocean_model", "heat_content_cond", "heat_content_cond", "ocean_month", "all", "mean", "none",2 + "ocean_model", "LwLatSens", "LwLatSens", "ocean_month", "all", "mean", "none",2 + "ocean_model", "Heat_PmE", "Heat_PmE", "ocean_month", "all", "mean", "none",2 +# "ocean_model", "nonpenSW", "nonpenSW", "ocean_month", "all", "mean", "none",2 +#"ocean_model", "internal_heat", "internal_heat", "ocean_month", "all", "mean", "none",2 +# ----------------------------------------------------------------------------------------- +# CMIP6/OMIP Table K4: boundary momentum fluxes + "ocean_model", "tauuo", "tauuo", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "tauvo", "tauvo", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "tauuo", "tauuo", "ocean_month", "all", "mean", "none",2 + "ocean_model", "tauvo", "tauvo", "ocean_month", "all", "mean", "none",2 +# extra mechanical forcing beyond CMIP6/OMIP Table K4 + "ocean_model", "ustar", "ustar", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "ustar", "ustar", "ocean_month", "all", "mean", "none",2 +# ----------------------------------------------------------------------------------------- +# CMIP6/OMIP/BGC : this table should be computed in generic tracer code +#"ocean_model", "fgcfc11", "fgcfc11", "ocean_month", "all", "mean", "none",2 +#"ocean_model", "fgcfc12", "fgcfc12", "ocean_month", "all", "mean", "none",2 +#"ocean_model", "fgsf6", "fgsf6", "ocean_month", "all", "mean", "none",2 +# ----------------------------------------------------------------------------------------- +# CMIP6/OMIP Table L1: table of heat and salt tendencies + "ocean_model", "opottempmint", "opottempmint", "ocean_annual", "all", "mean", "none",2 +#"ocean_model", "ocontempmint", "ocontempmint", "ocean_annual", "all", "mean", "none",2 # to be coded if use TEOS10 + "ocean_model", "somint", "somint", "ocean_annual", "all", "mean", "none",2 + "ocean_model_z", "rsdoabsorb", "rsdoabsorb", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z", "opottemptend", "opottemptend", "ocean_annual_z", "all", "mean", "none",2 +#"ocean_model_z", "opottemprmadvect", "opottemprmadvect", "ocean_annual_z", "all", "mean", "none",2 # T_advection_xy+Th_tendency_vert_remap +# "ocean_model", "opottemppmdiff", "opottemppmdiff", "ocean_annual", "all", "mean", "none",2 + "ocean_model_z", "opottempdiff", "opottempdiff", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z", "osalttend", "osalttend", "ocean_annual_z", "all", "mean", "none",2 +#"ocean_model_z", "osaltrmadvect", "osaltrmadvect", "ocean_annual_z", "all", "mean", "none",2 # S_advection_xy+Sh_tendency_vert_remap + "ocean_model_z", "osaltpmdiff", "osaltpmdiff", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z", "osaltdiff", "osaltdiff", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z", "frazil_heat_tendency", "frazil_heat_tendency", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z", "T_advection_xy", "T_advection_xy", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z", "S_advection_xy", "S_advection_xy", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z", "Th_tendency_vert_remap", "Th_tendency_vert_remap", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z", "Sh_tendency_vert_remap", "Sh_tendency_vert_remap", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z","boundary_forcing_heat_tendency", "boundary_forcing_heat_tendency", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z","boundary_forcing_salt_tendency", "boundary_forcing_salt_tendency", "ocean_annual_z", "all", "mean", "none",2 +# ----------------------------------------------------------------------------------------- +# CMIP6/OMIP Table M1: vertical tracer diffusivities and potential energy dissipation +"ocean_model_z", "difvho", "difvho", "ocean_annual_z", "all", "mean", "none",2 +"ocean_model_z", "difvso", "difvso", "ocean_annual_z", "all", "mean", "none",2 +#"ocean_model", "tnpeo", "tnpeo", "ocean_annual", "all", "mean", "none",2 # code needed +# ----------------------------------------------------------------------------------------- +# CMIP6/OMIP Table N1: lateral viscosity and diffusivities and impact on kinetic energy +#"ocean_model", "diftrblo", "diftrblo", "ocean_annual", "all", "mean", "none",2 +#"ocean_model", "diftrelo", "diftrelo", "ocean_annual", "all", "mean", "none",2 # when neutral tracer diffusion + "ocean_model", "difmxylo", "difmxylo", "ocean_annual", "all", "mean", "none",2 # save if use Laplacian visc + "ocean_model", "difmxybo", "difmxybo", "ocean_annual", "all", "mean", "none",2 + #"ocean_model", "dispkexyfo", "dispkexyfo", "ocean_annual", "all", "mean", "none",2 # not registered +#"ocean_model", "tnkebto", "tnkebto", "ocean_annual", "all", "mean", "none",2 + "ocean_model_z","difmxybo", "difmxybo", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z","dispkexyfo", "dispkexyfo", "ocean_annual_z", "all", "mean", "none",2 +############################################################################################# +###### Diagnostics in addition to CMIP6/OMIP request######################################### +# ----------------------------------------------------------------------------------------- +# High-frequency + "ocean_model", "SSU", "ssu", "ocean_daily", "all", "mean", "none",2 + "ocean_model", "SSV", "ssv", "ocean_daily", "all", "mean", "none",2 +#"ocean_model", "tos", "tos_max", "ocean_daily", "all", "max", "none",2 +#"ocean_model", "tos", "tos_min", "ocean_daily", "all", "min", "none",2 + "ocean_model", "ePBL_h_ML", "omldamax", "ocean_daily", "all", "max", "none",2 +# ----------------------------------------------------------------------------------------- +# various fields + "ocean_model", "e", "e", "ocean_annual", "all", "mean", "none",2 +#"ocean_model", "e", "e", "ocean_month", "all", "mean", "none",2 + "ocean_model", "speed", "speed", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "speed", "speed", "ocean_month", "all", "mean", "none",2 + "ocean_model", "KE", "KE", "ocean_annual", "all", "mean", "none",2 +# "ocean_model", "KE", "KE", "ocean_month", "all", "mean", "none",2 + "ocean_model", "mass_wt", "mass_wt", "ocean_annual", "all", "mean", "none",2 +"ocean_model_z", "Kd_interface", "Kd_interface", "ocean_annual_z", "all", "mean", "none",2 +"ocean_model_z", "Kd_shear", "Kd_shear", "ocean_annual_z", "all", "mean", "none",2 +"ocean_model_z", "Kd_itides", "Kd_itides", "ocean_annual_z", "all", "mean", "none",2 +"ocean_model_z", "Kd_BBL", "Kd_BBL", "ocean_annual_z", "all", "mean", "none",2 +"ocean_model_z", "Kd_ePBL", "Kd_ePBL", "ocean_annual_z", "all", "mean", "none",2 +"ocean_model_z", "Kd_heat", "Kd_heat", "ocean_annual_z", "all", "mean", "none",2 +"ocean_model_z", "Kd_salt", "Kd_salt", "ocean_annual_z", "all", "mean", "none",2 +# "ocean_model", "TKE_tidal", "TKE_tidal", "ocean_annual", "all", "mean", "none",2 +# "ocean_model", "TKE_itidal", "TKE_itidal", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "MLD_003", "MLD_003", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "MLD_003", "MLD_003", "ocean_month", "all", "mean", "none",2 + "ocean_model", "MLD_003", "MLD_003_min", "ocean_annual", "all", "min", "none",2 + "ocean_model", "MLD_003", "MLD_003_max", "ocean_annual", "all", "max", "none",2 + "ocean_model", "MLD_restrat", "MLD_restrat", "ocean_month", "all", "mean", "none",2 + "ocean_model", "udml_restrat", "udml_restrat", "ocean_month", "all", "mean", "none",2 + "ocean_model", "vdml_restrat", "vdml_restrat", "ocean_month", "all", "mean", "none",2 + "ocean_model", "uml_restrat", "uml_restrat", "ocean_month", "all", "mean", "none",2 + "ocean_model", "vml_restrat", "vml_restrat", "ocean_month", "all", "mean", "none",2 + "ocean_model", "MLD_EN1", "MLD_EN1", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "MLD_EN1", "MLD_EN1", "ocean_month", "all", "mean", "none",2 +#"ocean_model", "MSTAR_LT", "MSTAR_LT", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "MSTAR", "MSTAR", "ocean_annual", "all", "mean", "none",2 +#"ocean_model", "MSTAR_LT", "MSTAR_LT", "ocean_month", "all", "mean", "none",2 + "ocean_model", "MSTAR", "MSTAR", "ocean_month", "all", "mean", "none",2 +#"ocean_model", "vintage", "vintage", "ocean_annual", "all", "mean", "none",2 +# MEKE not used +# "ocean_model", "MEKE_Ue", "MEKE_Ue", "ocean_annual", "all", "mean", "none",2 +# "ocean_model", "MEKE_Le", "MEKE_Le", "ocean_annual", "all", "mean", "none",2 +# "ocean_model", "MEKE_KH", "MEKE_KH", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "subML_N2", "subML_N2", "ocean_annual", "all", "mean", "none",2 + "ocean_model", "tos", "tos_max", "ocean_annual", "all", "max", "none",2 + "ocean_model", "tos", "tos_min", "ocean_annual", "all", "min", "none",2 + "ocean_model_z", "rhopot0", "rhopot0", "ocean_month_z", "all", "mean", "none",2 + "ocean_model_z", "rhopot0", "rhopot0", "ocean_annual_z", "all", "mean", "none",2 + "ocean_model_z", "rhoinsitu", "rhoinsitu", "ocean_month_z", "all", "mean", "none",2 + "ocean_model_z", "rhoinsitu", "rhoinsitu", "ocean_annual_z", "all", "mean", "none",2 +# ----------------------------------------------------------------------------------------- +# Monthly snapshots + "ocean_model", "mass_wt", "mass_wt", "ocean_month_snap", "all", "none", "none",2 + "ocean_model", "opottempmint","opottempmint","ocean_month_snap", "all", "none", "none",2 + "ocean_model", "somint", "somint", "ocean_month_snap", "all", "none", "none",2 +# ----------------------------------------------------------------------------------------- +# tracer concentration time tendencies due to various processes +# vertical diffusion tendencies for T and S +"ocean_model","diabatic_diff_temp_tendency","diabatic_diff_temp_tendency","ocean_annual","all","mean","none",2 +"ocean_model","diabatic_diff_saln_tendency","diabatic_diff_saln_tendency","ocean_annual","all","mean","none",2 +# neutral diffusion tendencies for T and S +#"ocean_model","ndiff_tracer_conc_tendency_T","ndiff_tracer_conc_tendency_T" ,"ocean_annual","all","mean","none",2 +#"ocean_model","ndiff_tracer_conc_tendency_S","ndiff_tracer_conc_tendency_S" ,"ocean_annual","all","mean","none",2 +# "ocean_model","opottemppmdiff_2d" ,"opottemppmdiff_2d" ,"ocean_annual","all","mean","none",2 +# "ocean_model","osaltpmdiff_2d" ,"osaltpmdiff_2d" ,"ocean_annual","all","mean","none",2 +# net tendencies and lateral advection tendencies for T and S + "ocean_model", "T_tendency", "T_tendency", "ocean_annual","all","mean","none",2 + "ocean_model", "S_tendency", "S_tendency", "ocean_annual","all","mean","none",2 + "ocean_model", "opottemptend_2d", "opottemptend_2d", "ocean_annual","all","mean","none",2 + "ocean_model", "osalttend_2d", "osalttend_2d", "ocean_annual","all","mean","none",2 + "ocean_model", "T_advection_xy_2d", "T_advection_xy_2d", "ocean_annual","all","mean","none",2 + "ocean_model", "S_advection_xy_2d", "S_advection_xy_2d", "ocean_annual","all","mean","none",2 +# tendencies from vertical remapping for T and S +"ocean_model","T_tendency_vert_remap", "T_tendency_vert_remap", "ocean_annual","all","mean","none",2 +"ocean_model","S_tendency_vert_remap", "S_tendency_vert_remap", "ocean_annual","all","mean","none",2 +"ocean_model","Th_tendency_vert_remap_2d", "Th_tendency_vert_remap_2d", "ocean_annual","all","mean","none",2 +"ocean_model","Sh_tendency_vert_remap_2d", "Sh_tendency_vert_remap_2d", "ocean_annual","all","mean","none",2 +# tendencies from boundary terms which have a 3d contribution +"ocean_model","frazil_heat_tendency_2d" ,"frazil_heat_tendency_2d", "ocean_annual","all","mean","none",2 +"ocean_model","boundary_forcing_heat_tendency_2d" ,"boundary_forcing_heat_tendency_2d","ocean_annual","all","mean","none",2 +"ocean_model","boundary_forcing_salt_tendency_2d" ,"boundary_forcing_salt_tendency_2d","ocean_annual","all","mean","none",2 +## output files +"ice_daily", 1, "days", 1, "days", "time" +"ice_month", 1, "months", 1, "days", "time" +"ice_static", -1, "months", 1, "days", "time" +#================ +# ICE DIAGNOSTICS +#================ + "ice_model", "CELL_AREA", "CELL_AREA", "ice_static", "all", "none", "none", 2 + "ice_model", "COSROT", "COSROT", "ice_static", "all", "none", "none", 2 + "ice_model", "GEOLAT", "GEOLAT", "ice_static", "all", "none", "none", 2 + "ice_model", "GEOLON", "GEOLON", "ice_static", "all", "none", "none", 2 + "ice_model", "SINROT", "SINROT", "ice_static", "all", "none", "none", 2 +# Daily sea-ice +#"ice_model", "SST", "SST", "ice_daily", "all", "mean", "none", 2 +# "ice_model", "SSH", "SSH", "ice_daily", "all", "mean", "none", 2 +# "ice_model", "SSS", "SSS", "ice_daily", "all", "mean", "none", 2 + "ice_model", "EXT", "EXT", "ice_daily", "all", "mean", "none", 2 +# Monthly sea-ice +# "ice_model", "CELL_AREA", "CELL_AREA", "ice_month", "all", "none", "none", 2 +# "ice_model", "COSROT", "COSROT", "ice_month", "all", "none", "none", 2 +# "ice_model", "GEOLAT", "GEOLAT", "ice_month", "all", "none", "none", 2 +# "ice_model", "GEOLON", "GEOLON", "ice_month", "all", "none", "none", 2 +# "ice_model", "SINROT", "SINROT", "ice_month", "all", "none", "none", 2 +#"ice_model", "AGE", "AGE", "ice_month", "all", "mean", "none", 2 + "ice_model", "ALB", "ALB", "ice_month", "all", "mean", "none", 2 + "ice_model", "BHEAT", "BHEAT", "ice_month", "all", "mean", "none", 2 + "ice_model", "BMELT", "BMELT", "ice_month", "all", "mean", "none", 2 + "ice_model", "BSNK", "BSNK", "ice_month", "all", "mean", "none", 2 + "ice_model", "CALVING", "CALVING", "ice_month", "all", "mean", "none", 2 + "ice_model", "CALVING_HFLX","CALVING_HFLX","ice_month", "all", "mean", "none", 2 + "ice_model", "CN", "CN", "ice_month", "all", "mean", "none", 2 + "ice_model", "E2MELT", "E2MELT", "ice_month", "all", "mean", "none", 2 +# "ice_model", "EVAP", "EVAP", "ice_month", "all", "mean", "none", 2 + "ice_model", "EXT", "EXT", "ice_month", "all", "mean", "none", 2 + "ice_model", "EXT", "EXT_MIN", "ice_month", "all", "min", "none", 2 + "ice_model", "EXT", "EXT_MAX", "ice_month", "all", "max", "none", 2 + "ice_model", "FA_X", "FA_X", "ice_month", "all", "mean", "none", 2 + "ice_model", "FA_Y", "FA_Y", "ice_month", "all", "mean", "none", 2 +#"ice_model", "FC_X", "FC_X", "ice_month", "all", "mean", "none", 2 +#"ice_model", "FC_Y", "FC_Y", "ice_month", "all", "mean", "none", 2 + "ice_model", "FI_X", "FI_X", "ice_month", "all", "mean", "none", 2 + "ice_model", "FI_Y", "FI_Y", "ice_month", "all", "mean", "none", 2 +#"ice_model", "FW_X", "FW_X", "ice_month", "all", "mean", "none", 2 +#"ice_model", "FW_Y", "FW_Y", "ice_month", "all", "mean", "none", 2 + "ice_model", "FRAZIL", "FRAZIL", "ice_month", "all", "mean", "none", 2 +#"ice_model", "HI_PART", "HI_PART", "ice_month", "all", "mean", "none", 2 + "ice_model", "IX_TRANS", "IX_TRANS", "ice_month", "all", "mean", "none", 2 + "ice_model", "IY_TRANS", "IY_TRANS", "ice_month", "all", "mean", "none", 2 +# "ice_model", "LH", "LH", "ice_month", "all", "mean", "none", 2 + "ice_model", "LSNK", "LSNK", "ice_month", "all", "mean", "none", 2 + "ice_model", "LSRC", "LSRC", "ice_month", "all", "mean", "none", 2 +# "ice_model", "LW", "LW", "ice_month", "all", "mean", "none", 2 +#"ice_model", "LWDN", "LWDN", "ice_month", "all", "mean", "none", 2 +# "ice_model", "RAIN", "RAIN", "ice_month", "all", "mean", "none", 2 +#"ice_model", "RDG_RATE", "RDG_RATE", "ice_month", "all", "mean", "none", 2 +#"ice_model", "RDG_FRAC", "RDG_FRAC", "ice_month", "all", "mean", "none", 2 +# "ice_model", "RUNOFF", "RUNOFF", "ice_month", "all", "mean", "none", 2 +#"ice_model", "RUNOFF_HFLX","RUNOFF_HFLX", "ice_month", "all", "mean", "none", 2 + "ice_model", "SALTF", "SALTF", "ice_month", "all", "mean", "none", 2 +# "ice_model", "SH", "SH", "ice_month", "all", "mean", "none", 2 +#"ice_model", "SIGI", "SIGI", "ice_month", "all", "mean", "none", 2 +#"ice_model", "SIGII", "SIGII", "ice_month", "all", "mean", "none", 2 +#"ice_model", "SLP", "SLP", "ice_month", "all", "mean", "none", 2 + "ice_model", "SNOWFL", "SNOWFL", "ice_month", "all", "mean", "none", 2 + "ice_model", "SN2IC", "SN2IC", "ice_month", "all", "mean", "none", 2 +# "ice_model", "SSH", "SSH", "ice_month", "all", "mean", "none", 2 +# "ice_model", "SSS", "SSS", "ice_month", "all", "mean", "none", 2 +# "ice_model", "SST", "SST", "ice_month", "all", "mean", "none", 2 +#"ice_model", "STRENGTH", "STRENGTH", "ice_month", "all", "mean", "none", 2 +#"ice_model", "STRAIN_ANGLE","STRAIN_ANGLE","ice_month", "all", "mean", "none", 2 +# "ice_model", "SW", "SW", "ice_month", "all", "mean", "none", 2 +#"ice_model", "SWDN", "SWDN", "ice_month", "all", "mean", "none", 2 +#"ice_model", "SW_NIR_DIF", "SW_NIR_DIF", "ice_month", "all", "mean", "none", 2 +#"ice_model", "SW_NIR_DIR", "SW_NIR_DIR", "ice_month", "all", "mean", "none", 2 +#"ice_model", "SW_VIS", "SW_VIS", "ice_month", "all", "mean", "none", 2 +#"ice_model", "SW_VIS_DIF", "SW_VIS_DIF", "ice_month", "all", "mean", "none", 2 +#"ice_model", "SW_VIS_DIR", "SW_VIS_DIR", "ice_month", "all", "mean", "none", 2 + "ice_model", "TMELT", "TMELT", "ice_month", "all", "mean", "none", 2 + "ice_model", "TSN", "TSN", "ice_month", "all", "mean", "none", 2 + "ice_model", "T1", "T1", "ice_month", "all", "mean", "none", 2 + "ice_model", "T2", "T2", "ice_month", "all", "mean", "none", 2 + "ice_model", "T3", "T3", "ice_month", "all", "mean", "none", 2 + "ice_model", "T4", "T4", "ice_month", "all", "mean", "none", 2 +# "ice_model", "UO", "UO", "ice_month", "all", "mean", "none", 2 +# "ice_model", "VO", "VO", "ice_month", "all", "mean", "none", 2 + "ice_model", "XPRT", "XPRT", "ice_month", "all", "mean", "none", 2 + "ice_model", "siu", "siu", "ice_month", "all", "mean", "none", 2 + "ice_model", "siv", "siv", "ice_month", "all", "mean", "none", 2 + "ice_model", "sispeed", "sispeed", "ice_month", "all", "mean", "none", 2 + "ice_model", "STRENGTH_hf","STRENGTH_hf", "ice_month", "all", "mean", "none", 2 + "ice_model", "sitimefrac", "sitimefrac", "ice_month", "all", "mean", "none", 2 + "ice_model", "sitemptop", "sitemptop", "ice_month", "all", "mean", "none", 2 + "ice_model", "siconc", "siconc", "ice_month", "all", "mean", "none", 2 + "ice_model", "sisnconc", "sisnconc", "ice_month", "all", "mean", "none", 2 + "ice_model", "simass", "simass", "ice_month", "all", "mean", "none", 2 + "ice_model", "sisnmass", "sisnmass", "ice_month", "all", "mean", "none", 2 + "ice_model", "sisnthick", "sisnthick", "ice_month", "all", "mean", "none", 2 + "ice_model", "sithick", "sithick", "ice_month", "all", "mean", "none", 2 + "ice_model", "sivol", "sivol", "ice_month", "all", "mean", "none", 2 + "ice_model", "MIB", "MIB", "ice_month", "all", "mean", "none", 2 diff --git a/exps/OM4.single_column.COBALT.p4/field_table b/exps/OM4.single_column.COBALT.p4/field_table new file mode 100644 index 0000000..c47845e --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/field_table @@ -0,0 +1,740 @@ +# specific humidity for moist runs + "TRACER", "atmos_mod", "sphum" + "longname", "specific humidity" + "units", "kg/kg" / +## "profile_type", "fixed", "surface_value=3.e-6" / +# prognostic cloud scheme tracers + "TRACER", "atmos_mod", "liq_wat" + "longname", "cloud liquid specific humidity" + "units", "kg/kg" / + "TRACER", "atmos_mod", "ice_wat" + "longname", "cloud ice water specific humidity" + "units", "kg/kg" / + "TRACER", "atmos_mod", "cld_amt" + "longname", "cloud fraction" + "units", "none" / +# sphum must be present on land as well + "TRACER", "land_mod", "sphum" + "longname", "specific humidity" + "units", "kg/kg" / +# test tracer for radon +# +# "TRACER", "atmos_mod", "radon" +# "longname", "radon test tracer" +# "units", "kg/kg" / +###................................................. +"namelists","ocean_mod","generic_COBALT" +enforce_src_info = t +# +no3_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +no3_src_var_name = no3 +no3_src_var_unit = none +no3_dest_var_name = no3 +no3_dest_var_unit = mol kg-1 +no3_src_var_record = 1 +no3_src_var_gridspec = NONE +no3_valid_min = 0.0 +# +o2_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +o2_src_var_name = o2 +o2_src_var_unit = none +o2_dest_var_name = o2 +o2_dest_var_unit = mol kg-1 +o2_src_var_record = 1 +o2_src_var_gridspec = NONE +o2_valid_min = 0.0 +# +po4_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +po4_src_var_name = po4 +po4_src_var_unit = none +po4_dest_var_name = po4 +po4_dest_var_unit = mol kg-1 +po4_src_var_record = 1 +po4_src_var_gridspec = NONE +po4_valid_min = 0.0 +# +sio4_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +sio4_src_var_name = sio4 +sio4_src_var_unit = none +sio4_dest_var_name = sio4 +sio4_dest_var_unit = mol kg-1 +sio4_src_var_record = 1 +sio4_src_var_gridspec = NONE +sio4_valid_min = 0.0 +# +alk_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +alk_src_var_name = alk +alk_src_var_unit = none +alk_dest_var_name = alk +alk_dest_var_unit = mol kg-1 +alk_src_var_record = 1 +alk_src_var_gridspec = NONE +alk_valid_min = 0.0 +# +dic_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +dic_src_var_name = dic +dic_src_var_unit = none +dic_dest_var_name = dic +dic_dest_var_unit = mol kg-1 +dic_src_var_record = 1 +dic_src_var_gridspec = NONE +dic_valid_min = 0.0 +# +cadet_arag_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +cadet_arag_src_var_name = cadet_arag +cadet_arag_src_var_unit = none +cadet_arag_dest_var_name = cadet_arag +cadet_arag_dest_var_unit = mol kg-1 +cadet_arag_src_var_record = 1 +cadet_arag_src_var_gridspec = NONE +cadet_arag_valid_min = 0.0 +# +cadet_calc_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +cadet_calc_src_var_name = cadet_calc +cadet_calc_src_var_unit = none +cadet_calc_dest_var_name = cadet_calc +cadet_calc_dest_var_unit = mol kg-1 +cadet_calc_src_var_record = 1 +cadet_calc_src_var_gridspec = NONE +cadet_calc_valid_min = 0.0 +# +fed_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +fed_src_var_name = fed +fed_src_var_unit = none +fed_dest_var_name = fed +fed_dest_var_unit = mol kg-1 +fed_src_var_record = 1 +fed_src_var_gridspec = NONE +fed_valid_min = 0.0 +# +fedi_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +fedi_src_var_name = fedi +fedi_src_var_unit = none +fedi_dest_var_name = fedi +fedi_dest_var_unit = mol kg-1 +fedi_src_var_record = 1 +fedi_src_var_gridspec = NONE +fedi_valid_min = 0.0 +# +felg_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +felg_src_var_name = felg +felg_src_var_unit = none +felg_dest_var_name = felg +felg_dest_var_unit = mol kg-1 +felg_src_var_record = 1 +felg_src_var_gridspec = NONE +felg_valid_min = 0.0 +# +fedet_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +fedet_src_var_name = fedet +fedet_src_var_unit = none +fedet_dest_var_name = fedet +fedet_dest_var_unit = mol kg-1 +fedet_src_var_record = 1 +fedet_src_var_gridspec = NONE +fedet_valid_min = 0.0 +# +fesm_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +fesm_src_var_name = fesm +fesm_src_var_unit = none +fesm_dest_var_name = fesm +fesm_dest_var_unit = mol kg-1 +fesm_src_var_record = 1 +fesm_src_var_gridspec = NONE +fesm_valid_min = 0.0 +# +ldon_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +ldon_src_var_name = ldon +ldon_src_var_unit = none +ldon_dest_var_name = ldon +ldon_dest_var_unit = mol kg-1 +ldon_src_var_record = 1 +ldon_src_var_gridspec = NONE +ldon_valid_min = 0.0 +# +ldop_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +ldop_src_var_name = ldop +ldop_src_var_unit = none +ldop_dest_var_name = ldop +ldop_dest_var_unit = mol kg-1 +ldop_src_var_record = 1 +ldop_src_var_gridspec = NONE +ldop_valid_min = 0.0 +# +lith_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +lith_src_var_name = lith +lith_src_var_unit = none +lith_dest_var_name = lith +lith_dest_var_unit = g/kg +lith_src_var_record = 1 +lith_src_var_gridspec = NONE +lith_valid_min = 0.0 +# +lithdet_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +lithdet_src_var_name = lithdet +lithdet_src_var_unit = none +lithdet_dest_var_name = lithdet +lithdet_dest_var_unit = g/kg +lithdet_src_var_record = 1 +lithdet_src_var_gridspec = NONE +lithdet_valid_min = 0.0 +# +nbact_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +nbact_src_var_name = nbact +nbact_src_var_unit = none +nbact_dest_var_name = nbact +nbact_dest_var_unit = mol kg-1 +nbact_src_var_record = 1 +nbact_src_var_gridspec = NONE +nbact_valid_min = 0.0 +# +ndet_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +ndet_src_var_name = ndet +ndet_src_var_unit = none +ndet_dest_var_name = ndet +ndet_dest_var_unit = mol kg-1 +ndet_src_var_record = 1 +ndet_src_var_gridspec = NONE +ndet_valid_min = 0.0 +# +ndi_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +ndi_src_var_name = ndi +ndi_src_var_unit = none +ndi_dest_var_name = ndi +ndi_dest_var_unit = mol kg-1 +ndi_src_var_record = 1 +ndi_src_var_gridspec = NONE +ndi_valid_min = 0.0 +# +nlg_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +nlg_src_var_name = nlg +nlg_src_var_unit = none +nlg_dest_var_name = nlg +nlg_dest_var_unit = mol kg-1 +nlg_src_var_record = 1 +nlg_src_var_gridspec = NONE +nlg_valid_min = 0.0 +# +nsm_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +nsm_src_var_name = nsm +nsm_src_var_unit = none +nsm_dest_var_name = nsm +nsm_dest_var_unit = mol kg-1 +nsm_src_var_record = 1 +nsm_src_var_gridspec = NONE +nsm_valid_min = 0.0 +# +nh4_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +nh4_src_var_name = nh4 +nh4_src_var_unit = none +nh4_dest_var_name = nh4 +nh4_dest_var_unit = mol kg-1 +nh4_src_var_record = 1 +nh4_src_var_gridspec = NONE +nh4_valid_min = 0.0 +# +pdet_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +pdet_src_var_name = pdet +pdet_src_var_unit = none +pdet_dest_var_name = pdet +pdet_dest_var_unit = mol kg-1 +pdet_src_var_record = 1 +pdet_src_var_gridspec = NONE +pdet_valid_min = 0.0 +# +srdon_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +srdon_src_var_name = srdon +srdon_src_var_unit = none +srdon_dest_var_name = srdon +srdon_dest_var_unit = mol kg-1 +srdon_src_var_record = 1 +srdon_src_var_gridspec = NONE +srdon_valid_min = 0.0 +# +srdop_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +srdop_src_var_name = srdop +srdop_src_var_unit = none +srdop_dest_var_name = srdop +srdop_dest_var_unit = mol kg-1 +srdop_src_var_record = 1 +srdop_src_var_gridspec = NONE +srdop_valid_min = 0.0 +# +sldon_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +sldon_src_var_name = sldon +sldon_src_var_unit = none +sldon_dest_var_name = sldon +sldon_dest_var_unit = mol kg-1 +sldon_src_var_record = 1 +sldon_src_var_gridspec = NONE +sldon_valid_min = 0.0 +# +sldop_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +sldop_src_var_name = sldop +sldop_src_var_unit = none +sldop_dest_var_name = sldop +sldop_dest_var_unit = mol kg-1 +sldop_src_var_record = 1 +sldop_src_var_gridspec = NONE +sldop_valid_min = 0.0 +# +sidet_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +sidet_src_var_name = sidet +sidet_src_var_unit = none +sidet_dest_var_name = sidet +sidet_dest_var_unit = mol kg-1 +sidet_src_var_record = 1 +sidet_src_var_gridspec = NONE +sidet_valid_min = 0.0 +# +silg_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +silg_src_var_name = silg +silg_src_var_unit = none +silg_dest_var_name = silg +silg_dest_var_unit = mol kg-1 +silg_src_var_record = 1 +silg_src_var_gridspec = NONE +silg_valid_min = 0.0 +# +nsmz_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +nsmz_src_var_name = nsmz +nsmz_src_var_unit = none +nsmz_dest_var_name = nsmz +nsmz_dest_var_unit = mol kg-1 +nsmz_src_var_record = 1 +nsmz_src_var_gridspec = NONE +nsmz_valid_min = 0.0 +# +nmdz_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +nmdz_src_var_name = nmdz +nmdz_src_var_unit = none +nmdz_dest_var_name = nmdz +nmdz_dest_var_unit = mol kg-1 +nmdz_src_var_record = 1 +nmdz_src_var_gridspec = NONE +nmdz_valid_min = 0.0 +# +nlgz_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +nlgz_src_var_name = nlgz +nlgz_src_var_unit = none +nlgz_dest_var_name = nlgz +nlgz_dest_var_unit = mol kg-1 +nlgz_src_var_record = 1 +nlgz_src_var_gridspec = NONE +nlgz_valid_min = 0.0 +# +simd_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +simd_src_var_name = simd +simd_src_var_unit = none +simd_dest_var_name = simd +simd_dest_var_unit = mol kg-1 +simd_src_var_record = 1 +simd_src_var_gridspec = NONE +simd_valid_min = 0.0 +# +femd_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +femd_src_var_name = femd +femd_src_var_unit = none +femd_dest_var_name = femd +femd_dest_var_unit = mol kg-1 +femd_src_var_record = 1 +femd_src_var_gridspec = NONE +femd_valid_min = 0.0 +# +nmd_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +nmd_src_var_name = nmd +nmd_src_var_unit = none +nmd_dest_var_name = nmd +nmd_dest_var_unit = mol kg-1 +nmd_src_var_record = 1 +nmd_src_var_gridspec = NONE +nmd_valid_min = 0.0 +# +plg_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +plg_src_var_name = plg +plg_src_var_unit = none +plg_dest_var_name = plg +plg_dest_var_unit = mol kg-1 +plg_src_var_record = 1 +plg_src_var_gridspec = NONE +plg_valid_min = 0.0 +# +pmd_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +pmd_src_var_name = pmd +pmd_src_var_unit = none +pmd_dest_var_name = pmd +pmd_dest_var_unit = mol kg-1 +pmd_src_var_record = 1 +pmd_src_var_gridspec = NONE +pmd_valid_min = 0.0 +# +psm_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +psm_src_var_name = psm +psm_src_var_unit = none +psm_dest_var_name = psm +psm_dest_var_unit = mol kg-1 +psm_src_var_record = 1 +psm_src_var_gridspec = NONE +psm_valid_min = 0.0 +# +pdi_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +pdi_src_var_name = pdi +pdi_src_var_unit = none +pdi_dest_var_name = pdi +pdi_dest_var_unit = mol kg-1 +pdi_src_var_record = 1 +pdi_src_var_gridspec = NONE +pdi_valid_min = 0.0 +# +dic14_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +dic14_src_var_name = dic14 +dic14_src_var_unit = none +dic14_dest_var_name = dic14 +dic14_dest_var_unit = mol kg-1 +dic14_src_var_record = 1 +dic14_src_var_gridspec = NONE +dic14_valid_min = 0.0 +# +do14_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +do14_src_var_name = do14 +do14_src_var_unit = none +do14_dest_var_name = do14 +do14_dest_var_unit = mol kg-1 +do14_src_var_record = 1 +do14_src_var_gridspec = NONE +do14_valid_min = 0.0 +# +do14c_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +do14c_src_var_name = do14c +do14c_src_var_unit = none +do14c_dest_var_name = do14c +do14c_dest_var_unit = mol kg-1 +do14c_src_var_record = 1 +do14c_src_var_gridspec = NONE +do14c_valid_min = 0.0 +# +di14c_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +di14c_src_var_name = di14c +di14c_src_var_unit = none +di14c_dest_var_name = di14c +di14c_dest_var_unit = mol kg-1 +di14c_src_var_record = 1 +di14c_src_var_gridspec = NONE +di14c_valid_min = 0.0 +# +nh3_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +nh3_src_var_name = nh3 +nh3_src_var_unit = none +nh3_dest_var_name = nh3 +nh3_dest_var_unit = mol kg-1 +nh3_src_var_record = 1 +nh3_src_var_gridspec = NONE +nh3_valid_min = 0.0 +# +mu_mem_nsm_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +mu_mem_nsm_src_var_name = mu_mem_nsm +mu_mem_nsm_src_var_unit = none +mu_mem_nsm_dest_var_name = mu_mem_nsm +mu_mem_nsm_dest_var_unit = sec-1 +mu_mem_nsm_src_var_record = 1 +mu_mem_nsm_src_var_gridspec = NONE +mu_mem_nsm_valid_min = 0.0 +# +mu_mem_nlg_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +mu_mem_nlg_src_var_name = mu_mem_nlg +mu_mem_nlg_src_var_unit = none +mu_mem_nlg_dest_var_name = mu_mem_nlg +mu_mem_nlg_dest_var_unit = sec-1 +mu_mem_nlg_src_var_record = 1 +mu_mem_nlg_src_var_gridspec = NONE +mu_mem_nlg_valid_min = 0.0 +# +mu_mem_ndi_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +mu_mem_ndi_src_var_name = mu_mem_ndi +mu_mem_ndi_src_var_unit = none +mu_mem_ndi_dest_var_name = mu_mem_ndi +mu_mem_ndi_dest_var_unit = sec-1 +mu_mem_ndi_src_var_record = 1 +mu_mem_ndi_src_var_gridspec = NONE +mu_mem_ndi_valid_min = 0.0 +# +irr_mem_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +irr_mem_src_var_name = irr_mem +irr_mem_src_var_unit = none +irr_mem_dest_var_name = irr_mem +irr_mem_dest_var_unit = Watts/m^2 +irr_mem_src_var_record = 1 +irr_mem_src_var_gridspec = NONE +irr_mem_valid_min = 0.0 +# +htotal_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +htotal_src_var_name = htotal +htotal_src_var_unit = none +htotal_dest_var_name = htotal +htotal_dest_var_unit = mol kg-1 +htotal_src_var_record = 1 +htotal_src_var_gridspec = NONE +htotal_valid_min = 0.0 +# +fedet_btf_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +fedet_btf_src_var_name = fedet_btf +fedet_btf_src_var_unit = none +fedet_btf_dest_var_name = fedet_btf +fedet_btf_dest_var_unit = mol m-2 s-1 +fedet_btf_src_var_record = 1 +fedet_btf_src_var_gridspec = NONE +fedet_btf_valid_min = 0.0 +# +sidet_btf_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +sidet_btf_src_var_name = sidet_btf +sidet_btf_src_var_unit = none +sidet_btf_dest_var_name = sidet_btf +sidet_btf_dest_var_unit = mol m-2 s-1 +sidet_btf_src_var_record = 1 +sidet_btf_src_var_gridspec = NONE +sidet_btf_valid_min = 0.0 +# +pdet_btf_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +pdet_btf_src_var_name = pdet_btf +pdet_btf_src_var_unit = none +pdet_btf_dest_var_name = pdet_btf +pdet_btf_dest_var_unit = mol m-2 s-1 +pdet_btf_src_var_record = 1 +pdet_btf_src_var_gridspec = NONE +pdet_btf_valid_min = 0.0 +# +ndet_btf_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +ndet_btf_src_var_name = ndet_btf +ndet_btf_src_var_unit = none +ndet_btf_dest_var_name = ndet_btf +ndet_btf_dest_var_unit = mol m-2 s-1 +ndet_btf_src_var_record = 1 +ndet_btf_src_var_gridspec = NONE +ndet_btf_valid_min = 0.0 +# +lithdet_btf_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +lithdet_btf_src_var_name = lithdet_btf +lithdet_btf_src_var_unit = none +lithdet_btf_dest_var_name = lithdet_btf +lithdet_btf_dest_var_unit = g m-2 s-1 +lithdet_btf_src_var_record = 1 +lithdet_btf_src_var_gridspec = NONE +lithdet_btf_valid_min = 0.0 +# +cadet_calc_btf_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +cadet_calc_btf_src_var_name = cadet_calc_btf +cadet_calc_btf_src_var_unit = none +cadet_calc_btf_dest_var_name = cadet_calc_btf +cadet_calc_btf_dest_var_unit = mol m-2 s-1 +cadet_calc_btf_src_var_record = 1 +cadet_calc_btf_src_var_gridspec = NONE +cadet_calc_btf_valid_min = 0.0 +# +cadet_arag_btf_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +cadet_arag_btf_src_var_name = cadet_arag_btf +cadet_arag_btf_src_var_unit = none +cadet_arag_btf_dest_var_name = cadet_arag_btf +cadet_arag_btf_dest_var_unit = mol m-2 s-1 +cadet_arag_btf_src_var_record = 1 +cadet_arag_btf_src_var_gridspec = NONE +cadet_arag_btf_valid_min = 0.0 +# +co3_ion_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +co3_ion_src_var_name = co3_ion +co3_ion_src_var_unit = none +co3_ion_dest_var_name = co3_ion +co3_ion_dest_var_unit = mol kg-1 +co3_ion_src_var_record = 1 +co3_ion_src_var_gridspec = NONE +co3_ion_valid_min = 0.0 +# +cased_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +cased_src_var_name = cased +cased_src_var_unit = none +cased_dest_var_name = cased +cased_dest_var_unit = mol m-3 +cased_src_var_record = 1 +cased_src_var_gridspec = NONE +cased_valid_min = 0.0 +# +chl_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +chl_src_var_name = chl +chl_src_var_unit = none +chl_dest_var_name = chl +chl_dest_var_unit = ug kg-1 +chl_src_var_record = 1 +chl_src_var_gridspec = NONE +chl_valid_min = 0.0 +# +nsm_btf_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +nsm_btf_src_var_name = nsm_btf +nsm_btf_src_var_unit = none +nsm_btf_dest_var_name = nsm_btf +nsm_btf_dest_var_unit = mol m-2 s-1 +nsm_btf_src_var_record = 1 +nsm_btf_src_var_gridspec = NONE +nsm_btf_valid_min = 0.0 +# +nmd_btf_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +nmd_btf_src_var_name = nmd_btf +nmd_btf_src_var_unit = none +nmd_btf_dest_var_name = nmd_btf +nmd_btf_dest_var_unit = mol m-2 s-1 +nmd_btf_src_var_record = 1 +nmd_btf_src_var_gridspec = NONE +nmd_btf_valid_min = 0.0 +# +nlg_btf_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +nlg_btf_src_var_name = nlg_btf +nlg_btf_src_var_unit = none +nlg_btf_dest_var_name = nlg_btf +nlg_btf_dest_var_unit = mol m-2 s-1 +nlg_btf_src_var_record = 1 +nlg_btf_src_var_gridspec = NONE +nlg_btf_valid_min = 0.0 +# +ndi_btf_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +ndi_btf_src_var_name = ndi_btf +ndi_btf_src_var_unit = none +ndi_btf_dest_var_name = ndi_btf +ndi_btf_dest_var_unit = mol m-2 s-1 +ndi_btf_src_var_record = 1 +ndi_btf_src_var_gridspec = NONE +ndi_btf_valid_min = 0.0 +# +fesm_btf_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +fesm_btf_src_var_name = fesm_btf +fesm_btf_src_var_unit = none +fesm_btf_dest_var_name = fesm_btf +fesm_btf_dest_var_unit = mol m-2 s-1 +fesm_btf_src_var_record = 1 +fesm_btf_src_var_gridspec = NONE +fesm_btf_valid_min = 0.0 +# +femd_btf_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +femd_btf_src_var_name = femd_btf +femd_btf_src_var_unit = none +femd_btf_dest_var_name = femd_btf +femd_btf_dest_var_unit = mol m-2 s-1 +femd_btf_src_var_record = 1 +femd_btf_src_var_gridspec = NONE +femd_btf_valid_min = 0.0 +# +felg_btf_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +felg_btf_src_var_name = felg_btf +felg_btf_src_var_unit = none +felg_btf_dest_var_name = felg_btf +felg_btf_dest_var_unit = mol m-2 s-1 +felg_btf_src_var_record = 1 +felg_btf_src_var_gridspec = NONE +felg_btf_valid_min = 0.0 +# +fedi_btf_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +fedi_btf_src_var_name = fedi_btf +fedi_btf_src_var_unit = none +fedi_btf_dest_var_name = fedi_btf +fedi_btf_dest_var_unit = mol m-2 s-1 +fedi_btf_src_var_record = 1 +fedi_btf_src_var_gridspec = NONE +fedi_btf_valid_min = 0.0 +# +simd_btf_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +simd_btf_src_var_name = simd_btf +simd_btf_src_var_unit = none +simd_btf_dest_var_name = simd_btf +simd_btf_dest_var_unit = mol m-2 s-1 +simd_btf_src_var_record = 1 +simd_btf_src_var_gridspec = NONE +simd_btf_valid_min = 0.0 +# +silg_btf_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +silg_btf_src_var_name = silg_btf +silg_btf_src_var_unit = none +silg_btf_dest_var_name = silg_btf +silg_btf_dest_var_unit = mol m-2 s-1 +silg_btf_src_var_record = 1 +silg_btf_src_var_gridspec = NONE +silg_btf_valid_min = 0.0 +# +pdi_btf_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +pdi_btf_src_var_name = pdi_btf +pdi_btf_src_var_unit = none +pdi_btf_dest_var_name = pdi_btf +pdi_btf_dest_var_unit = mol m-2 s-1 +pdi_btf_src_var_record = 1 +pdi_btf_src_var_gridspec = NONE +pdi_btf_valid_min = 0.0 +# +plg_btf_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +plg_btf_src_var_name = plg_btf +plg_btf_src_var_unit = none +plg_btf_dest_var_name = plg_btf +plg_btf_dest_var_unit = mol m-2 s-1 +plg_btf_src_var_record = 1 +plg_btf_src_var_gridspec = NONE +plg_btf_valid_min = 0.0 +# +pmd_btf_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +pmd_btf_src_var_name = pmd_btf +pmd_btf_src_var_unit = none +pmd_btf_dest_var_name = pmd_btf +pmd_btf_dest_var_unit = mol m-2 s-1 +pmd_btf_src_var_record = 1 +pmd_btf_src_var_gridspec = NONE +pmd_btf_valid_min = 0.0 +# +psm_btf_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +psm_btf_src_var_name = psm_btf +psm_btf_src_var_unit = none +psm_btf_dest_var_name = psm_btf +psm_btf_dest_var_unit = mol m-2 s-1 +psm_btf_src_var_record = 1 +psm_btf_src_var_gridspec = NONE +psm_btf_valid_min = 0.0 +# +irr_mem_dp_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +irr_mem_dp_src_var_name = irr_mem_dp +irr_mem_dp_src_var_unit = none +irr_mem_dp_dest_var_name = irr_mem_dp +irr_mem_dp_dest_var_unit = Watts/m^2 +irr_mem_dp_src_var_record = 1 +irr_mem_dp_src_var_gridspec = NONE +irr_mem_dp_valid_min = 0.0 +# +mu_mem_nmd_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +mu_mem_nmd_src_var_name = mu_mem_nmd +mu_mem_nmd_src_var_unit = none +mu_mem_nmd_dest_var_name = mu_mem_nmd +mu_mem_nmd_dest_var_unit = sec-1 +mu_mem_nmd_src_var_record = 1 +mu_mem_nmd_src_var_gridspec = NONE +mu_mem_nmd_valid_min = 0.0 +# +irr_aclm_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +irr_aclm_src_var_name = irr_aclm +irr_aclm_src_var_unit = none +irr_aclm_dest_var_name = irr_aclm +irr_aclm_dest_var_unit = Watts/m^2 +irr_aclm_src_var_record = 1 +irr_aclm_src_var_gridspec = NONE +irr_aclm_valid_min = 0.0 +# +irr_aclm_z_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +irr_aclm_z_src_var_name = irr_aclm_z +irr_aclm_z_src_var_unit = none +irr_aclm_z_dest_var_name = irr_aclm_z +irr_aclm_z_dest_var_unit = Watts/m^2 +irr_aclm_z_src_var_record = 1 +irr_aclm_z_src_var_gridspec = NONE +irr_aclm_z_valid_min = 0.0 +# +irr_aclm_sfc_src_file = INPUT/COBALT_2023_10_spinup_2003_subset.nc +irr_aclm_sfc_src_var_name = irr_aclm_sfc +irr_aclm_sfc_src_var_unit = none +irr_aclm_sfc_dest_var_name = irr_aclm_sfc +irr_aclm_sfc_dest_var_unit = Watts/m^2 +irr_aclm_sfc_src_var_record = 1 +irr_aclm_sfc_src_var_gridspec = NONE +irr_aclm_sfc_valid_min = 0.0 +# +/ diff --git a/exps/OM4.single_column.COBALT.p4/input.nml b/exps/OM4.single_column.COBALT.p4/input.nml new file mode 100644 index 0000000..a923191 --- /dev/null +++ b/exps/OM4.single_column.COBALT.p4/input.nml @@ -0,0 +1,151 @@ + &MOM_input_nml + output_directory = '.', + input_filename = 'n' + restart_input_dir = 'INPUT', + restart_output_dir = 'RESTART', + parameter_filename = 'MOM_input', + 'MOM_saltrestore', + 'MOM_layout', + 'MOM_override' +/ + + &SIS_input_nml + output_directory = './', + input_filename = 'n' + restart_input_dir = 'INPUT/', + restart_output_dir = 'RESTART/', + parameter_filename = 'SIS_input', + 'SIS_layout', + 'SIS_override' / + + &atmos_model_nml + layout = 1, 1 +/ + + &coupler_nml + months = 0, + days = 2, + hours = 0, + current_date = 2004,1,1,0,0,0, + calendar = 'julian', + dt_cpld = 1200, + dt_atmos = 1200, + do_atmos = .false., + do_land = .false., + do_ice = .true., + do_ocean = .true., + do_flux = .true., + atmos_npes = 0, + ocean_npes = 0, + concurrent = .false. + use_lag_fluxes=.false. + check_stocks = 0 + do_chksum = .false. + do_endpoint_chksum = .false. +/ + + &diag_manager_nml + max_axes = 600, + flush_nc_files=.false. + max_files = 600, + max_num_axis_sets = 600, + max_input_fields = 2000 + max_output_fields = 5000 + mix_snapshot_average_fields=.false. +/ + + &flux_exchange_nml + debug_stocks = .FALSE. + divert_stocks_report = .TRUE. + do_area_weighted_flux = .FALSE. +/ + + &fms_io_nml + fms_netcdf_restart=.true. + threading_read='multi' + max_files_r = 800 + max_files_w = 800 + checksum_required = .false. +/ + + &fms_nml + clock_grain='ROUTINE' + clock_flags='NONE' + domains_stack_size = 5000000 + stack_size =0 +/ + + &ice_albedo_nml + t_range = 10. +/ + + &ice_model_nml +/ + + &icebergs_nml + verbose=.false., + verbose_hrs=24, + traj_sample_hrs=24, + debug=.false., + really_debug=.false., + use_slow_find=.true., + add_weight_to_ocean=.true., + passive_mode=.false., + generate_test_icebergs=.false., + speed_limit=0., + use_roundoff_fix=.true., + make_calving_reproduce=.true., + / + + &monin_obukhov_nml + neutral = .true. +/ + + &ocean_albedo_nml + ocean_albedo_option = 2 +/ + + &ocean_rough_nml + rough_scheme = 'beljaars' +/ + + &sat_vapor_pres_nml + construct_table_wrt_liq = .true. + construct_table_wrt_liq_and_ice = .true. +/ + + &surface_flux_nml + ncar_ocean_flux = .true. + raoult_sat_vap = .true. +/ + + &topography_nml + topog_file = 'INPUT/navy_topography.data.nc' +/ + + &xgrid_nml + make_exchange_reproduce = .false. + interp_method = 'second_order' +/ + + &generic_tracer_nml + do_generic_tracer=.true. + do_generic_abiotic=.false. + do_generic_CFC=.false. + do_generic_COBALT=.true. + do_generic_SF6=.false. + force_update_fluxes=.true. + as_param='unused' + do_vertfill_post=.true. +/ + &generic_COBALT_nml + co2_calc = 'mocsy' + debug = .false. +! imbalance_tolerance=1.0e-9 +! do_nh3_atm_ocean_exchange = .true. !turn on exchange of NH3 +! scheme_no3_nh4_lim = 2 !update nh4/no3 uptake scheme +! scheme_nitrif = 3 !new nitrification scheme +/ + + + diff --git a/src/FMS b/src/FMS index 0404daa..b21a5e8 160000 --- a/src/FMS +++ b/src/FMS @@ -1 +1 @@ -Subproject commit 0404daa31824cec5b6f829facf6e57ebe593bcc4 +Subproject commit b21a5e88c87db6d3eb26518c6111867a3b2807c8 diff --git a/src/MOM6 b/src/MOM6 index 639248e..3db5490 160000 --- a/src/MOM6 +++ b/src/MOM6 @@ -1 +1 @@ -Subproject commit 639248e8ec365798d5dee20826ab9eadccaeb8aa +Subproject commit 3db5490b34a5b14bcaaf877120a553037ba368ad diff --git a/src/SIS2 b/src/SIS2 index ae959ed..022bd89 160000 --- a/src/SIS2 +++ b/src/SIS2 @@ -1 +1 @@ -Subproject commit ae959ed3efb31dc4f46a6c07fa56e74885bbdcb0 +Subproject commit 022bd89d1bfe03dc259afc24a6e19c334e47eb4b diff --git a/src/coupler b/src/coupler index 4707b25..fd132e4 160000 --- a/src/coupler +++ b/src/coupler @@ -1 +1 @@ -Subproject commit 4707b255c842dd08b3cd65a45b7924e7a9d88720 +Subproject commit fd132e419392a6eebd6907bd7abd410999648b87 diff --git a/src/ice_param b/src/ice_param index 61f94a7..ddedca7 160000 --- a/src/ice_param +++ b/src/ice_param @@ -1 +1 @@ -Subproject commit 61f94a77cd06196b46d617b879612e0fd0cf5b5a +Subproject commit ddedca7d724fad9ad4fc6ec68bd4b22733551ed7 diff --git a/src/icebergs b/src/icebergs index 0908ff0..fd6478f 160000 --- a/src/icebergs +++ b/src/icebergs @@ -1 +1 @@ -Subproject commit 0908ff0f7804ddb7b61ea8372bfd90eb6d08472a +Subproject commit fd6478fecd8891aebcba904fe4b34a415fe30e73 diff --git a/src/mkmf b/src/mkmf index e890903..af34a3f 160000 --- a/src/mkmf +++ b/src/mkmf @@ -1 +1 @@ -Subproject commit e890903abad7618427a4c0f180596aa3e3cdef3d +Subproject commit af34a3f5845c5781101567e043e0dd3d93ff4145 diff --git a/src/ocean_BGC b/src/ocean_BGC index 33c0826..944e018 160000 --- a/src/ocean_BGC +++ b/src/ocean_BGC @@ -1 +1 @@ -Subproject commit 33c08267b79e82fa770d2d33363ca068ae5b8fc7 +Subproject commit 944e018f3cd1e7596c1750679877ee0764ddeb58 diff --git a/tests/Dockerfile.base b/tests/Dockerfile.base new file mode 100644 index 0000000..0d0a0c4 --- /dev/null +++ b/tests/Dockerfile.base @@ -0,0 +1,23 @@ +FROM ubuntu:22.04 as base +ENV DEBIAN_FRONTEND=noninteractive +RUN apt update && \ + apt install -y \ + make \ + gfortran \ + git \ + tcsh \ + netcdf-bin \ + libnetcdf-dev \ + libnetcdff-dev \ + openmpi-bin \ + libopenmpi-dev \ + && apt clean -y \ + && rm -rf /var/lib/apt/lists/* +RUN useradd -u 1001 builder +RUN mkdir -p /opt +WORKDIR /opt +RUN chown -R builder:builder /opt +USER builder + +FROM base +COPY --chown=builder:builder ./exps/datasets /opt/datasets diff --git a/tests/Dockerfile.ci b/tests/Dockerfile.ci index 1b5f911..5f823e3 100644 --- a/tests/Dockerfile.ci +++ b/tests/Dockerfile.ci @@ -1,35 +1,31 @@ -From clouden90/1d_mom6_cobalt:latest +From clouden90/1d_mom6_cobalt:v0.1 SHELL ["/bin/bash","-c"] +USER root + +RUN apt update; apt install -y wget + USER builder COPY --chown=builder:builder . /opt/MOM6_OBGC_examples WORKDIR /opt/datasets/OceanBGC_dataset -RUN tar -zxvf OceanBGC_dataset.tar.gz; rm -rf OceanBGC_dataset.tar.gz - -WORKDIR /opt/datasets +RUN wget https://gfdl-med.s3.amazonaws.com/OceanBGC_dataset/COBALT_2023_10_spinup_2003_subset.nc -RUN tar -zxvf OM4_025.JRA.single_column.tar.gz; rm -rf OM4_025.JRA.single_column.tar.gz +WORKDIR /opt/datasets/OM4_025.JRA.single_column -RUN sed -i '52s/static //' /opt/MOM6_OBGC_examples/src/FMS/affinity/affinity.c +RUN rm ocean_hgrid.nc; wget https://gfdl-med.s3.amazonaws.com/OceanBGC_dataset/ocean_hgrid.nc WORKDIR /opt/MOM6_OBGC_examples/builds -RUN mkdir -p /opt/MOM6_OBGC_examples/builds/docker - -RUN cp /opt/MOM6_OBGC_examples/src/mkmf/templates/linux-ubuntu-trusty-gnu.mk /opt/MOM6_OBGC_examples/builds/docker/linux-gnu.mk - -RUN cp /opt/MOM6_OBGC_examples/builds/windows11/gnu11.env /opt/MOM6_OBGC_examples/builds/docker/linux=gnu.env - RUN /opt/MOM6_OBGC_examples/builds/linux-build.bash -m docker -p linux-gnu -t prod -f mom6sis2 WORKDIR /opt/MOM6_OBGC_examples/exps RUN ln -fs /opt/datasets ./ -WORKDIR /opt/MOM6_OBGC_examples/exps/OM4.single_column.COBALT +WORKDIR /opt/MOM6_OBGC_examples/exps/OM4.single_column.COBALT.p4 -RUN mkdir RESTART; mpirun -np 1 /opt/MOM6_OBGC_examples/builds/build/docker-linux-gnu/ocean_ice/prod/MOM6SIS2 +RUN mpirun -np 1 /opt/MOM6_OBGC_examples/builds/build/docker-linux-gnu/ocean_ice/prod/MOM6SIS2