I am confusing how to get the average values(ocean_avg.nc). I activated the following two flags in the bash file
export MY_CPP_FLAGS="-DAVERAGES"
export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DDEBUGGING"
But, I still can't get the 'ocean_ave.nc' file. Please let me know how to get it.
Thank you in advance.
I am attaching build and ocean_in files
Code: Select all
#!/bin/bash
#
# svn $Id: build.bash 710 2014-01-23 20:19:56Z arango $
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# Copyright (c) 2002-2014 The ROMS/TOMS Group :::
# Licensed under a MIT/X style license :::
# See License_ROMS.txt :::
#::::::::::::::::::::::::::::::::::::::::::::::::::::: Hernan G. Arango :::
# :::
# ROMS/TOMS Compiling Script :::
# :::
# Script to compile an user application where the application-specific :::
# files are kept separate from the ROMS source code. :::
# :::
# Q: How/why does this script work? :::
# :::
# A: The ROMS makefile configures user-defined options with a set of :::
# flags such as ROMS_APPLICATION. Browse the makefile to see these. :::
# If an option in the makefile uses the syntax ?= in setting the :::
# default, this means that make will check whether an environment :::
# variable by that name is set in the shell that calls make. If so :::
# the environment variable value overrides the default (and the :::
# user need not maintain separate makefiles, or frequently edit :::
# the makefile, to run separate applications). :::
# :::
# Usage: :::
# :::
# ./build.bash [options] :::
# :::
# Options: :::
# :::
# -j [N] Compile in parallel using N CPUs :::
# omit argument for all available CPUs :::
# -noclean Do not clean already compiled objects :::
# :::
# Notice that sometimes the parallel compilation fail to find MPI :::
# include file "mpif.h". :::
# :::
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
parallel=0
clean=1
while [ $# -gt 0 ]
do
case "$1" in
-j )
shift
parallel=1
test=`echo $1 | grep '^[0-9]\+$'`
if [ "$test" != "" ]; then
NCPUS="-j $1"
shift
else
NCPUS="-j"
fi
;;
-noclean )
shift
clean=0
;;
* )
echo ""
echo "$0 : Unknown option [ $1 ]"
echo ""
echo "Available Options:"
echo ""
echo "-j [N] Compile in parallel using N CPUs"
echo " omit argument for all avaliable CPUs"
echo "-noclean Do not clean already compiled objects"
echo ""
exit 1
;;
esac
done
# Set the CPP option defining the particular application. This will
# determine the name of the ".h" header file with the application
# CPP definitions.
export ROMS_APPLICATION=INLET_TEST
# Set a local environmental variable to define the path to the directories
# where all this project's files are kept.
#export MY_ROOT_DIR=/home/1450/ROM/work1/MyDir
export MY_ROOT_DIR=/lustre/work/kirby/jung/MyDir
export MY_PROJECT_DIR=/lustre/work/kirby/jung/work/ROM/work1/inlet_test
# The path to the user's local current ROMS source code.
#
# If using svn locally, this would be the user's Working Copy Path (WCPATH).
# Note that one advantage of maintaining your source code locally with svn
# is that when working simultaneously on multiple machines (e.g. a local
# workstation, a local cluster and a remote supercomputer) you can checkout
# the latest release and always get an up-to-date customized source on each
# machine. This script is designed to more easily allow for differing paths
# to the code and inputs on differing machines.
#export MY_ROMS_SRC=${MY_ROOT_DIR}/branches/arango
export MY_ROMS_SRC=${MY_ROOT_DIR}/
# Set path of the directory containing makefile configuration (*.mk) files.
# The user has the option to specify a customized version of these files
# in a different directory than the one distributed with the source code,
# ${MY_ROMS_SRC}/Compilers. If this is the case, the you need to keep
# these configurations files up-to-date.
export COMPILERS=${MY_ROMS_SRC}/Compilers
#export COMPILERS=${HOME}/Compilers
# Set tunable CPP options.
#
# Sometimes it is desirable to activate one or more CPP options to run
# different variants of the same application without modifying its header
# file. If this is the case, specify each options here using the -D syntax.
# Notice also that you need to use shell's quoting syntax to enclose the
# definition. Both single or double quotes work. For example,
#
export MY_CPP_FLAGS="-DAVERAGES"
export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DDEBUGGING"
#
# can be used to write time-averaged fields. Notice that you can have as
# many definitions as you want by appending values.
export MY_CPP_FLAGS="-DSWAN_COUPLING"
export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DMCT_LIB"
#export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DDEBUGGING"
#export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DOUT_DOUBLE"
#export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DPOSITIVE_ZERO"
#export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DUV_LOGDRAG"
#export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DUV_QDRAG"
#export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DMB_BBL"
#export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DSG_BBL"
export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DSSW_BBL"
export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DNEARSHORE_MELLOR05"
#export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DBEDLOAD_SOULSBY"
#export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DBEDLOAD_MPM"
# Set deprecated lateral boundary conditions CPP flags for backward
# compatibility with older versions of the code.
# export BACK_COMPATIBILITY=on # needed for ROMS 3.4 or older
if [ -n "${BACK_COMPATIBILITY:+1}" ]; then
export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DSOUTHERN_WALL"
export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DNORTH_FSGRADIENT"
export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DNORTH_M2REDUCED"
export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DFSOBC_REDUCED"
export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DNORTH_M3GRADIENT"
export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DNORTH_TGRADIENT"
export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DWEST_FSGRADIENT"
export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DWEST_M2GRADIENT"
export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DWEST_M3GRADIENT"
export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DWEST_TGRADIENT"
export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DEAST_FSGRADIENT"
export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DEAST_M2GRADIENT"
export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DEAST_M3GRADIENT"
export MY_CPP_FLAGS="${MY_CPP_FLAGS} -DEAST_TGRADIENT"
fi
# Other user defined environmental variables. See the ROMS makefile for
# details on other options the user might want to set here. Be sure to
# leave the switches meant to be off set to an empty string or commented
# out. Any string value (including off) will evaluate to TRUE in
# conditional if-statements.
export USE_MPI=on # distributed-memory parallelism
export USE_MPIF90=on # compile with mpif90 script
#export which_MPI=mpich # compile with MPICH library
#export which_MPI=mpich2 # compile with MPICH2 library
export which_MPI=openmpi # compile with OpenMPI library
#export USE_OpenMP=on # shared-memory parallelism
export FORT=ifort
#export FORT=gfortran
#export FORT=pgi
#export USE_DEBUG=on # use Fortran debugging flags
export USE_LARGE=on # activate 64-bit compilation
#export USE_NETCDF4=on # compile with NetCDF-4 library
#export USE_PARALLEL_IO=on # Parallel I/O with Netcdf-4/HDF5
#export USE_MY_LIBS=on # use my library paths below
# There are several MPI libraries available. Here, we set the desired
# "mpif90" script to use during compilation. This only works if the make
# configuration file (say, Linux-pgi.mk) in the "Compilers" directory
# has the following definition for FC (Fortran Compiler) in the USE_MPI
# section:
#
# FC := mpif90
#
# that is, "mpif90" defined without any path. Notice that the path
# where the MPI library is installed is computer dependent. Recall
# that you still need to use the appropriate "mpirun" to execute.
if [ -n "${USE_MPIF90:+1}" ]; then
case "$FORT" in
ifort )
if [ "${which_MPI}" = "mpich" ]; then
export PATH=/opt/intelsoft/mpich/bin:$PATH
elif [ "${which_MPI}" = "mpich2" ]; then
export PATH=/opt/intelsoft/mpich2/bin:$PATH
elif [ "${which_MPI}" = "openmpi" ]; then
export PATH=/opt/intelsoft/openmpi/bin:$PATH
fi
;;
pgi )
if [ "${which_MPI}" = "mpich" ]; then
export PATH=/opt/pgisoft/mpich/bin:$PATH
elif [ "${which_MPI}" = "mpich2" ]; then
export PATH=/opt/pgisoft/mpich2/bin:$PATH
elif [ "${which_MPI}" = "openmpi" ]; then
export PATH=/opt/pgisoft/openmpi/bin:$PATH
fi
;;
gfortran )
if [ "${which_MPI}" = "mpich2" ]; then
export PATH=/opt/gfortransoft/mpich2/bin:$PATH
elif [ "${which_MPI}" = "openmpi" ]; then
export PATH=/opt/gfortransoft/openmpi/bin:$PATH
fi
;;
esac
fi
# If the USE_MY_LIBS is activated above, the path of the libraries
# required by ROMS can be set here using environmental variables
# which take precedence to the values specified in the make macro
# definitions file (Compilers/*.mk). For most applications, only
# the location of the NetCDF library is needed during compilation.
#
# Notice that when the USE_NETCDF4 macro is activated, we need the
# serial or parallel version of the NetCDF-4/HDF5 library. The
# configuration script NC_CONFIG (available since NetCDF 4.0.1)
# is used to set up all the required libraries according to the
# installed options (openDAP, netCDF4/HDF5 file format). The
# parallel library uses the MPI-I/O layer (usually available
# in MPICH2 and OpenMPI) requiring compiling with the selected
# MPI library.
#
# In ROMS distributed-memory applications, you may use either the
# serial or parallel version of the NetCDF-4/HDF5 library. The
# parallel version is required when parallel I/O is activated
# (ROMS cpp option PARALLEL_IO and HDF5).
#
# However, in serial or shared-memory ROMS applications, we need
# to use the serial version of the NetCDF-4/HDF5 to avoid conflicts
# with the compiler. We cannot activate MPI constructs in serial
# or shared-memory ROMS code. Hybrid parallelism is not possible.
#
# Recall also that the MPI library comes in several flavors:
# MPICH, MPICH2, OpenMPI, etc.
if [ -n "${USE_MY_LIBS:+1}" ]; then
case "$FORT" in
ifort )
export ESMF_OS=Linux
export ESMF_COMPILER=ifort
export ESMF_BOPT=O
export ESMF_ABI=64
export ESMF_COMM=mpich
export ESMF_SITE=default
export ARPACK_LIBDIR=/opt/intelsoft/serial/ARPACK
if [ -n "${USE_MPI:+1}" ]; then
if [ "${which_MPI}" = "mpich" ]; then
export ESMF_DIR=/opt/intelsoft/mpich/esmf
export MCT_INCDIR=/opt/intelsoft/mpich/mct/include
export MCT_LIBDIR=/opt/intelsoft/mpich/mct/lib
export PARPACK_LIBDIR=/opt/intelsoft/mpich/PARPACK
elif [ "${which_MPI}" = "mpich2" ]; then
export ESMF_DIR=/opt/intelsoft/mpich2/esmf
export MCT_INCDIR=/opt/intelsoft/mpich2/mct/include
export MCT_LIBDIR=/opt/intelsoft/mpich2/mct/lib
export PARPACK_LIBDIR=/opt/intelsoft/mpich2/PARPACK
elif [ "${which_MPI}" = "openmpi" ]; then
export ESMF_DIR=/opt/intelsoft/openmpi/esmf
export MCT_INCDIR=/opt/intelsoft/openmpi/mct/include
export MCT_LIBDIR=/opt/intelsoft/openmpi/mct/lib
export PARPACK_LIBDIR=/opt/intelsoft/openmpi/PARPACK
fi
fi
if [ -n "${USE_NETCDF4:+1}" ]; then
if [ -n "${USE_PARALLEL_IO:+1}" ] && [ -n "${USE_MPI:+1}" ]; then
if [ "${which_MPI}" = "mpich" ]; then
export NC_CONFIG=/opt/intelsoft/mpich/netcdf4/bin/nc-config
export NETCDF_INCDIR=/opt/intelsoft/mpich/netcdf4/include
elif [ "${which_MPI}" = "mpich2" ]; then
export NC_CONFIG=/opt/intelsoft/mpich2/netcdf4/bin/nc-config
export NETCDF_INCDIR=/opt/intelsoft/mpich2/netcdf4/include
elif [ "${which_MPI}" = "openmpi" ]; then
export NC_CONFIG=/opt/intelsoft/openmpi/netcdf4/bin/nc-config
export NETCDF_INCDIR=/opt/intelsoft/openmpi/netcdf4/include
fi
else
export NC_CONFIG=/opt/intelsoft/serial/netcdf4/bin/nc-config
export NETCDF_INCDIR=/opt/intelsoft/serial/netcdf4/include
fi
else
export NETCDF_INCDIR=/opt/intelsoft/serial/netcdf3/include
export NETCDF_LIBDIR=/opt/intelsoft/serial/netcdf3/lib
fi
;;
pgi )
export ESMF_OS=Linux
export ESMF_COMPILER=pgi
export ESMF_BOPT=O
export ESMF_ABI=64
export ESMF_COMM=mpich
export ESMF_SITE=default
export ARPACK_LIBDIR=/opt/pgisoft/serial/ARPACK
if [ -n "${USE_MPI:+1}" ]; then
if [ "${which_MPI}" = "mpich" ]; then
export ESMF_DIR=/opt/pgisoft/mpich/esmf
export MCT_INCDIR=/opt/pgisoft/mpich/mct/include
export MCT_LIBDIR=/opt/pgisoft/mpich/mct/lib
export PARPACK_LIBDIR=/opt/pgisoft/mpich/PARPACK
elif [ "${which_MPI}" = "mpich2" ]; then
export ESMF_DIR=/opt/pgisoft/mpich2/esmf
export MCT_INCDIR=/opt/pgisoft/mpich2/mct/include
export MCT_LIBDIR=/opt/pgisoft/mpich2/mct/lib
export PARPACK_LIBDIR=/opt/pgisoft/mpich2/PARPACK
elif [ "${which_MPI}" = "openmpi" ]; then
export ESMF_DIR=/opt/pgisoft/openmpi/esmf
export MCT_INCDIR=/opt/pgisoft/openmpi/mct/include
export MCT_LIBDIR=/opt/pgisoft/openmpi/mct/lib
export PARPACK_LIBDIR=/opt/pgisoft/openmpi/PARPACK
fi
fi
if [ -n "${USE_NETCDF4:+1}" ]; then
if [ -n "${USE_PARALLEL_IO:+1}" ] && [ -n "${USE_MPI:+1}" ]; then
if [ "${which_MPI}" = "mpich" ]; then
export NC_CONFIG=/opt/pgisoft/mpich/netcdf4/bin/nc-config
export NETCDF_INCDIR=/opt/pgisoft/mpich/netcdf4/include
elif [ "${which_MPI}" = "mpich2" ]; then
export NC_CONFIG=/opt/pgisoft/mpich2/netcdf4/bin/nc-config
export NETCDF_INCDIR=/opt/pgisoft/mpich2/netcdf4/include
elif [ "${which_MPI}" = "openmpi" ]; then
export NC_CONFIG=/opt/pgisoft/openmpi/netcdf4/bin/nc-config
export NETCDF_INCDIR=/opt/pgisoft/openmpi/netcdf4/include
fi
else
export NC_CONFIG=/opt/pgisoft/serial/netcdf4/bin/nc-config
export NETCDF_INCDIR=/opt/pgisoft/serial/netcdf4/include
fi
else
export NETCDF_INCDIR=/opt/pgisoft/serial/netcdf3/include
export NETCDF_LIBDIR=/opt/pgisoft/serial/netcdf3/lib
fi
;;
gfortran )
export ESMF_OS=Linux
export ESMF_COMPILER=gfortran
export ESMF_BOPT=O
export ESMF_ABI=64
export ESMF_COMM=mpich
export ESMF_SITE=default
export ARPACK_LIBDIR=/opt/gfortransoft/serial/ARPACK
if [ -n "${USE_MPI:+1}" ]; then
if [ "${which_MPI}" = "mpich2" ]; then
export ESMF_DIR=/opt/gfortransoft/mpich2/esmf
export MCT_INCDIR=/opt/gfortransoft/mpich2/mct/include
export MCT_LIBDIR=/opt/gfortransoft/mpich2/mct/lib
export PARPACK_LIBDIR=/opt/gfortransoft/mpich2/PARPACK
elif [ "${which_MPI}" = "openmpi" ]; then
export ESMF_DIR=/opt/gfortransoft/openmpi/esmf
export MCT_INCDIR=/opt/gfortransoft/openmpi/mct/include
export MCT_LIBDIR=/opt/gfortransoft/openmpi/mct/lib
export PARPACK_LIBDIR=/opt/gfortransoft/openmpi/PARPACK
fi
fi
if [ -n "${USE_NETCDF4:+1}" ]; then
if [ -n "${USE_PARALLEL_IO:+1}" ] && [ -n "${USE_MPI:+1}" ]; then
if [ "${which_MPI}" = "mpich2" ]; then
export NC_CONFIG=/opt/gfortransoft/mpich2/netcdf4/bin/nc-config
export NETCDF_INCDIR=/opt/gfortransoft/mpich2/netcdf4/include
elif [ "${which_MPI}" = "openmpi" ]; then
export NC_CONFIG=/opt/gfortransoft/openmpi/netcdf4/bin/nc-config
export NETCDF_INCDIR=/opt/gfortransoft/openmpi/netcdf4/include
fi
else
export NC_CONFIG=/opt/gfortransoft/serial/netcdf4/bin/nc-config
export NETCDF_INCDIR=/opt/gfortransoft/serial/netcdf4/include
fi
else
export NETCDF_INCDIR=/opt/gfortransoft/serial/netcdf3/include
export NETCDF_LIBDIR=/opt/gfortransoft/serial/netcdf3/lib
fi
;;
esac
fi
# The rest of this script sets the path to the users header file and
# analytical source files, if any. See the templates in User/Functionals.
#
# If applicable, use the MY_ANALYTICAL_DIR directory to place your
# customized biology model header file (like fennel.h, nemuro.h, ecosim.h,
# etc).
export MY_HEADER_DIR=${MY_PROJECT_DIR}
export MY_ANALYTICAL_DIR=${MY_PROJECT_DIR}
# Put the binary to execute in the following directory.
export BINDIR=${MY_PROJECT_DIR}
# Put the f90 files in a project specific Build directory to avoid conflict
# with other projects.
export SCRATCH_DIR=${MY_PROJECT_DIR}/Build
# Go to the users source directory to compile. The options set above will
# pick up the application-specific code from the appropriate place.
cd ${MY_ROMS_SRC}
# Remove build directory.
if [ $clean -eq 1 ]; then
make clean
fi
# Compile (the binary will go to BINDIR set above).
if [ $parallel -eq 1 ]; then
make $NCPUS
else
make
fi
Code: Select all
!
! ROMS/TOMS Standard Input parameters.
!
!svn $Id: ocean_inlet_test.in 720 2014-03-13 22:47:51Z arango $
!========================================================= Hernan G. Arango ===
! Copyright (c) 2002-2014 The ROMS/TOMS Group !
! Licensed under a MIT/X style license !
! See License_ROMS.txt !
!==============================================================================
! !
! Input parameters can be entered in ANY order, provided that the parameter !
! KEYWORD (usually, upper case) is typed correctly followed by "=" or "==" !
! symbols. Any comment lines are allowed and must begin with an exclamation !
! mark (!) in column one. Comments may appear to the right of a parameter !
! specification to improve documentation. Comments will be ignored during !
! reading. Blank lines are also allowed and ignored. Continuation lines in !
! a parameter specification are allowed and must be preceded by a backslash !
! (\). In some instances, more than one value is required for a parameter. !
! If fewer values are provided, the last value is assigned for the entire !
! parameter array. The multiplication symbol (*), without blank spaces in !
! between, is allowed for a parameter specification. For example, in a two !
! grids nested application: !
! !
! AKT_BAK == 2*1.0d-6 2*5.0d-6 ! m2/s !
! !
! indicates that the first two entries of array AKT_BAK, in fortran column- !
! major order, will have the same value of "1.0d-6" for grid 1, whereas the !
! next two entries will have the same value of "5.0d-6" for grid 2. !
! !
! In multiple levels of nesting and/or multiple connected domains step-ups, !
! "Ngrids" entries are expected for some of these parameters. In such case, !
! the order of the entries for a parameter is extremely important. It must !
! follow the same order (1:Ngrids) as in the state variable declaration. The !
! USER may follow the above guidelines for specifying his/her values. These !
! parameters are marked by "==" plural symbol after the KEYWORD. !
! !
! Multiple NetCDF files are allowed for input field(s). This is useful when !
! splitting input data (climatology, boundary, forcing) time records into !
! several files (say monthly, annual, etc). In this case, each multiple file !
! entry line needs to be ended by the vertical bar (|) symbol. For example: !
! !
! NFFILES == 7 ! number of forcing files !
! !
! FRCNAME == my_tides.nc \ !
! my_lwrad_year1.nc | !
! my_lwrad_year2.nc \ !
! my_swrad_year1.nc | !
! my_swrad_year2.nc \ !
! my_winds_year1.nc | !
! my_winds_year2.nc \ !
! my_Pair_year1.nc | !
! my_Pair_year2.nc \ !
! my_Qair_year1.nc | !
! my_Qair_year2.nc \ !
! my_Tair_year1.nc | !
! my_Tair_year2.nc !
! !
! Notice that NFFILES is 7 and not 13. There are 7 uniquely different fields !
! in the file list, we DO NOT count file entries followed by the vertical !
! bar symbol. This is because multiple file entries are processed in ROMS !
! with derived type structures. !
! !
!==============================================================================
!
! Application title.
TITLE = Inlet Test Case
! C-preprocessing Flag.
MyAppCPP = INLET_TEST
! Input variable information file name. This file needs to be processed
! first so all information arrays can be initialized properly.
VARNAME = ./varinfo.dat
! Number of nested grids.
Ngrids = 1
! Number of grid nesting layers. This parameter is used to allow refinement
! and composite grid combinations.
NestLayers = 1
! Number of grids in each nesting layer [1:NestLayers].
GridsInLayer = 1
! Grid dimension parameters. See notes below in the Glossary for how to set
! these parameters correctly.
Lm == 75 ! Number of I-direction INTERIOR RHO-points
Mm == 70 ! Number of J-direction INTERIOR RHO-points
N == 8 ! Number of vertical levels
Nbed = 1 ! Number of sediment bed layers
NAT = 2 ! Number of active tracers (usually, 2)
NPT = 0 ! Number of inactive passive tracers
NCS = 1 ! Number of cohesive (mud) sediment tracers
NNS = 0 ! Number of non-cohesive (sand) sediment tracers
! Domain decomposition parameters for serial, distributed-memory or
! shared-memory configurations used to determine tile horizontal range
! indices (Istr,Iend) and (Jstr,Jend), [1:Ngrids].
NtileI == 2 ! I-direction partition
NtileJ == 2 ! J-direction partition
! Set lateral boundary conditions keyword. Notice that a value is expected
! for each boundary segment per nested grid for each state variable.
!
! Each tracer variable requires [1:4,1:NAT+NPT,Ngrids] values. Otherwise,
! [1:4,1:Ngrids] values are expected for other variables. The boundary
! order is: 1=west, 2=south, 3=east, and 4=north. That is, anticlockwise
! starting at the western boundary.
!
! The keyword is case insensitive and usually has three characters. However,
! it is possible to have compound keywords, if applicable. For example, the
! keyword "RadNud" implies radiation boundary condition with nudging. This
! combination is usually used in active/passive radiation conditions.
!
! Keyword Lateral Boundary Condition Type
!
! Cha Chapman_implicit (free-surface)
! Che Chapman_explicit (free-surface)
! Cla Clamped
! Clo Closed
! Fla Flather (2D momentum) _____N_____ j=Mm
! Gra Gradient | 4 |
! Nes Nested (refinement) | |
! Nud Nudging 1 W E 3
! Per Periodic | |
! Rad Radiation |_____S_____|
! Red Reduced Physics (2D momentum) 2 j=1
! Shc Shchepetkin (2D momentum) i=1 i=Lm
!
! W S E N
! e o a o
! s u s r
! t t t t
! h h
!
! 1 2 3 4
LBC(isFsur) == Gra Clo Gra Gra ! free-surface
LBC(isUbar) == Gra Clo Gra Red ! 2D U-momentum
LBC(isVbar) == Gra Clo Gra Red ! 2D V-momentum
LBC(isUvel) == Gra Clo Gra Gra ! 3D U-momentum
LBC(isVvel) == Gra Clo Gra Gra ! 3D V-momentum
LBC(isMtke) == Gra Clo Gra Gra ! mixing TKE
LBC(isTvar) == Gra Clo Gra Gra \ ! temperature
Gra Clo Gra Gra ! salinity
! Adjoint-based algorithms can have different lateral boundary
! conditions keywords.
ad_LBC(isFsur) == Gra Clo Gra Gra ! free-surface
ad_LBC(isUbar) == Gra Clo Gra Red ! 2D U-momentum
ad_LBC(isVbar) == Gra Clo Gra Red ! 2D U-momentum
ad_LBC(isUvel) == Gra Clo Gra Gra ! 3D U-momentum
ad_LBC(isVvel) == Gra Clo Gra Gra ! 3D V-momentum
ad_LBC(isMtke) == Gra Clo Gra Gra ! mixing TKE
ad_LBC(isTvar) == Gra Clo Gra Gra \ ! temperature
Gra Clo Gra Gra ! salinity
! Set lateral open boundary edge volume conservation switch for
! nonlinear model and adjoint-based algorithms. Usually activated
! with radiation boundary conditions to enforce global mass
! conservation, except if tidal forcing is enabled. [1:Ngrids].
VolCons(west) == F ! western boundary
VolCons(east) == F ! eastern boundary
VolCons(south) == F ! southern boundary
VolCons(north) == F ! northern boundary
ad_VolCons(west) == F ! western boundary
ad_VolCons(east) == F ! eastern boundary
ad_VolCons(south) == F ! southern boundary
ad_VolCons(north) == F ! northern boundary
! Time-Stepping parameters.
NTIMES == 34560
DT == 5.0d0
NDTFAST == 20
! Model iteration loops parameters.
ERstr = 1
ERend = 1
Nouter = 1
Ninner = 1
Nintervals = 1
! Number of eigenvalues (NEV) and eigenvectors (NCV) to compute for the
! Lanczos/Arnoldi problem in the Generalized Stability Theory (GST)
! analysis. NCV must be greater than NEV (see documentation below).
NEV = 2 ! Number of eigenvalues
NCV = 10 ! Number of eigenvectors
! Input/Output parameters.
NRREC == 0
LcycleRST == T
NRST == 720
NSTA == 1
NFLT == 1
NINFO == 1
! Output history, average, diagnostic files parameters.
LDEFOUT == T
NHIS == 720
NDEFHIS == 0
NTSAVG == 1
NAVG == 3600
NDEFAVG == 0
NTSDIA == 1
NDIA == 3600
NDEFDIA == 0
! Output tangent linear and adjoint models parameters.
LcycleTLM == F
NTLM == 720
NDEFTLM == 0
LcycleADJ == F
NADJ == 720
NDEFADJ == 0
NSFF == 720
NOBC == 720
! GST output and check pointing restart parameters.
LmultiGST = F ! one eigenvector per file
LrstGST = F ! GST restart switch
MaxIterGST = 500 ! maximum number of iterations
NGST = 10 ! check pointing interval
! Relative accuracy of the Ritz values computed in the GST analysis.
Ritz_tol = 1.0d-15
! Harmonic/biharmonic horizontal diffusion of tracer for nonlinear model
! and adjoint-based algorithms: [1:NAT+NPT,Ngrids].
TNU2 == 0.0d0 0.0d0 ! m2/s
TNU4 == 0.0d0 0.0d0 ! m4/s
ad_TNU2 == 0.0d0 0.0d0 ! m2/s
ad_TNU4 == 0.0d0 0.0d0 ! m4/s
! Harmonic/biharmonic, horizontal viscosity coefficient for nonlinear model
! and adjoint-based algorithms: [Ngrids].
VISC2 == 0.001d0 ! m2/s
VISC4 == 0.0d0 ! m4/s
ad_VISC2 == 0.0d0 ! m2/s
ad_VISC4 == 0.0d0 ! m4/s
! Logical switches (TRUE/FALSE) to increase/decrease horizontal viscosity
! and/or diffusivity in specific areas of the application domain (like
! sponge areas) for the desired application grid.
LuvSponge == F ! horizontal momentum
LtracerSponge == F F ! temperature, salinity, inert
! Vertical mixing coefficients for tracers in nonlinear model and
! basic state scale factor in adjoint-based algorithms: [1:NAT+NPT,Ngrids]
AKT_BAK == 5.0d-6 5.0d-6 ! m2/s
ad_AKT_fac == 1.0d0 1.0d0 ! nondimensional
! Vertical mixing coefficient for momentum for nonlinear model and
! basic state scale factor in adjoint-based algorithms: [Ngrids].
AKV_BAK == 5.0d-5 ! m2/s
ad_AKV_fac == 1.0d0 ! nondimensional
! Turbulent closure parameters.
AKK_BAK == 5.0d-6 ! m2/s
AKP_BAK == 5.0d-6 ! m2/s
TKENU2 == 0.0d0 ! m2/s
TKENU4 == 0.0d0 ! m4/s
! Generic length-scale turbulence closure parameters.
GLS_P == 3.0d0 ! K-epsilon
GLS_M == 1.5d0
GLS_N == -1.0d0
GLS_Kmin == 7.6d-6
GLS_Pmin == 1.0d-12
GLS_CMU0 == 0.5477d0
GLS_C1 == 1.44d0
GLS_C2 == 1.92d0
GLS_C3M == -0.4d0
GLS_C3P == 1.0d0
GLS_SIGK == 1.0d0
GLS_SIGP == 1.30d0
! Constants used in surface turbulent kinetic energy flux computation.
CHARNOK_ALPHA == 1400.0d0 ! Charnok surface roughness
ZOS_HSIG_ALPHA == 0.5d0 ! roughness from wave amplitude
SZ_ALPHA == 0.25d0 ! roughness from wave dissipation
CRGBAN_CW == 100.0d0 ! Craig and Banner wave breaking
! Constants used in momentum stress computation.
RDRG == 3.0d-04 ! m/s
RDRG2 == 0.025d0 ! nondimensional
Zob == 0.015d0 ! m
Zos == 0.5d0 ! m
! Height (m) of atmospheric measurements for Bulk fluxes parameterization.
BLK_ZQ == 10.0d0 ! air humidity
BLK_ZT == 10.0d0 ! air temperature
BLK_ZW == 10.0d0 ! winds
! Minimum depth for wetting and drying.
DCRIT == 0.10d0 ! m
! Various parameters.
WTYPE == 1
LEVSFRC == 15
LEVBFRC == 1
! Set vertical, terrain-following coordinates transformation equation and
! stretching function (see below for details), [1:Ngrids].
Vtransform == 1 ! transformation equation
Vstretching == 1 ! stretching function
! Vertical S-coordinates parameters (see below for details), [1:Ngrids].
THETA_S == 1.0d0 ! surface stretching parameter
THETA_B == 1.0d0 ! bottom stretching parameter
TCLINE == 0.0d0 ! critical depth (m)
! Mean Density and Brunt-Vaisala frequency.
RHO0 = 1025.0d0 ! kg/m3
BVF_BAK = 1.0d-5 ! 1/s2
! Time-stamp assigned for model initialization, reference time
! origin for tidal forcing, and model reference time for output
! NetCDF units attribute.
DSTART = 0.0d0 ! days
TIDE_START = 0.0d0 ! days
TIME_REF = 0.0d0 ! yyyymmdd.dd
! Nudging/relaxation time scales, inverse scales will be computed
! internally, [1:Ngrids].
TNUDG == 0.0d0 0.0d0 ! days
ZNUDG == 0.0d0 ! days
M2NUDG == 0.0d0 ! days
M3NUDG == 0.0d0 ! days
! Factor between passive (outflow) and active (inflow) open boundary
! conditions, [1:Ngrids]. If OBCFAC > 1, nudging on inflow is stronger
! than on outflow (recommended).
OBCFAC == 0.0d0 ! nondimensional
! Linear equation of State parameters:
R0 == 1027.0d0 ! kg/m3
T0 == 10.0d0 ! Celsius
S0 == 30.0d0 ! nondimensional
TCOEF == 1.7d-4 ! 1/Celsius
SCOEF == 7.6d-4 ! nondimensional
! Slipperiness parameter: 1.0 (free slip) or -1.0 (no slip)
GAMMA2 == 1.0d0
! Logical switches (TRUE/FALSE) to activate horizontal momentum transport
! point Sources/Sinks (like river runoff transport) and mass point
! Sources/Sinks (like volume vertical influx), [1:Ngrids].
LuvSrc == F ! horizontal momentum transport
LwSrc == F ! volume vertical influx
! Logical switches (TRUE/FALSE) to activate tracers point Sources/Sinks
! (like river runoff) and to specify which tracer variables to consider:
! [1:NAT+NPT,Ngrids]. See glossary below for details.
LtracerSrc == F F ! temperature, salinity, inert
! Logical switches (TRUE/FALSE) to read and process climatology fields.
! See glossary below for details.
LsshCLM == F ! sea-surface height
Lm2CLM == F ! 2D momentum
Lm3CLM == F ! 3D momentum
LtracerCLM == F F ! temperature, salinity, inert
! Logical switches (TRUE/FALSE) to nudge the desired climatology field(s).
! If not analytical climatology fields, users need to turn ON the logical
! switches above to process the fields from the climatology NetCDF file
! that are needed for nudging. See glossary below for details.
LnudgeM2CLM == F ! 2D momentum
LnudgeM3CLM == F ! 3D momentum
LnudgeTCLM == F F ! temperature, salinity, inert
! Starting (DstrS) and ending (DendS) day for adjoint sensitivity forcing.
! DstrS must be less or equal to DendS. If both values are zero, their
! values are reset internally to the full range of the adjoint integration.
DstrS == 0.0d0 ! starting day
DendS == 0.0d0 ! ending day
! Starting and ending vertical levels of the 3D adjoint state variables
! whose sensitivity is required.
KstrS == 1 ! starting level
KendS == 1 ! ending level
! Logical switches (TRUE/FALSE) to specify the adjoint state variables
! whose sensitivity is required.
Lstate(isFsur) == F ! free-surface
Lstate(isUbar) == F ! 2D U-momentum
Lstate(isVbar) == F ! 2D V-momentum
Lstate(isUvel) == F ! 3D U-momentum
Lstate(isVvel) == F ! 3D V-momentum
Lstate(isTvar) == F F ! NT tracers
! Logical switches (TRUE/FALSE) to specify the state variables for
! which Forcing Singular Vectors or Stochastic Optimals is required.
Fstate(isFsur) == F ! free-surface
Fstate(isUbar) == F ! 2D U-momentum
Fstate(isVbar) == F ! 2D V-momentum
Fstate(isUvel) == F ! 3D U-momentum
Fstate(isVvel) == F ! 3D V-momentum
Fstate(isTvar) == F F ! NT tracers
Fstate(isUstr) == T ! surface U-stress
Fstate(isVstr) == T ! surface V-stress
Fstate(isTsur) == F F ! NT surface tracers flux
! Stochastic Optimals time decorrelation scale (days) assumed for
! red noise processes.
SO_decay == 2.0d0 ! days
! Stochastic Optimals surface forcing standard deviation for
! dimensionalization.
SO_sdev(isFsur) == 1.0d0 ! free-surface
SO_sdev(isUbar) == 1.0d0 ! 2D U-momentum
SO_sdev(isVbar) == 1.0d0 ! 2D V-momentum
SO_sdev(isUvel) == 1.0d0 ! 3D U-momentum
SO_sdev(isVvel) == 1.0d0 ! 3D V-momentum
SO_sdev(isTvar) == 1.0d0 1.0d0 ! NT tracers
SO_sdev(isUstr) == 1.0d0 ! surface U-stress
SO_sdev(isVstr) == 1.0d0 ! surface V-stress
SO_sdev(isTsur) == 1.0d0 1.0d0 ! NT surface tracers flux
! Logical switches (TRUE/FALSE) to activate writing of fields into
! HISTORY output file.
Hout(idUvel) == T ! u 3D U-velocity
Hout(idVvel) == T ! v 3D V-velocity
Hout(idu3dE) == F ! u_eastward 3D U-eastward at RHO-points
Hout(idv3dN) == F ! v_northward 3D V-northward at RHO-points
Hout(idWvel) == T ! w 3D W-velocity
Hout(idOvel) == F ! omega omega vertical velocity
Hout(idUbar) == F ! ubar 2D U-velocity
Hout(idVbar) == F ! vbar 2D V-velocity
Hout(idu2dE) == F ! ubar_eastward 2D U-eastward at RHO-points
Hout(idv2dN) == F ! vbar_northward 2D V-northward at RHO-points
Hout(idFsur) == T ! zeta free-surface
Hout(idBath) == F ! bath time-dependent bathymetry
Hout(idTvar) == F F ! temp, salt temperature and salinity
Hout(idUsms) == F ! sustr surface U-stress
Hout(idVsms) == F ! svstr surface V-stress
Hout(idUbms) == F ! bustr bottom U-stress
Hout(idVbms) == F ! bvstr bottom V-stress
Hout(idUbrs) == F ! bustrc bottom U-current stress
Hout(idVbrs) == F ! bvstrc bottom V-current stress
Hout(idUbws) == F ! bustrw bottom U-wave stress
Hout(idVbws) == F ! bvstrw bottom V-wave stress
Hout(idUbcs) == F ! bustrcwmax bottom max wave-current U-stress
Hout(idVbcs) == F ! bvstrcwmax bottom max wave-current V-stress
Hout(idUbot) == F ! Ubot bed wave orbital U-velocity
Hout(idVbot) == F ! Vbot bed wave orbital V-velocity
Hout(idUbur) == F ! Ur bottom U-velocity above bed
Hout(idVbvr) == F ! Vr bottom V-velocity above bed
Hout(idW2xx) == F ! Sxx_bar 2D radiation stress, Sxx component
Hout(idW2xy) == F ! Sxy_bar 2D radiation stress, Sxy component
Hout(idW2yy) == F ! Syy_bar 2D radiation stress, Syy component
Hout(idU2rs) == F ! Ubar_Rstress 2D radiation U-stress
Hout(idV2rs) == F ! Vbar_Rstress 2D radiation V-stress
Hout(idU2Sd) == F ! ubar_stokes 2D U-Stokes velocity
Hout(idV2Sd) == F ! vbar_stokes 2D V-Stokes velocity
Hout(idW3xx) == F ! Sxx 3D radiation stress, Sxx component
Hout(idW3xy) == F ! Sxy 3D radiation stress, Sxy component
Hout(idW3yy) == F ! Syy 3D radiation stress, Syy component
Hout(idW3zx) == F ! Szx 3D radiation stress, Szx component
Hout(idW3zy) == F ! Szy 3D radiation stress, Szy component
Hout(idU3rs) == F ! u_Rstress 3D U-radiation stress
Hout(idV3rs) == F ! v_Rstress 3D V-radiation stress
Hout(idU3Sd) == F ! u_stokes 3D U-Stokes velocity
Hout(idV3Sd) == F ! v_stokes 3D V-Stokes velocity
Hout(idWamp) == T ! Hwave wave height
Hout(idWlen) == T ! Lwave wave length
Hout(idWdir) == T ! Dwave wave direction
Hout(idWptp) == F ! Pwave_top wave surface period
Hout(idWpbt) == F ! Pwave_bot wave bottom period
Hout(idWorb) == F ! Ub_swan wave bottom orbital velocity
Hout(idWdis) == F ! Wave_dissip wave dissipation
Hout(idPair) == F ! Pair surface air pressure
Hout(idUair) == F ! Uair surface U-wind component
Hout(idVair) == F ! Vair surface V-wind component
Hout(idTsur) == F F ! shflux, ssflux surface net heat and salt flux
Hout(idLhea) == F ! latent latent heat flux
Hout(idShea) == F ! sensible sensible heat flux
Hout(idLrad) == F ! lwrad longwave radiation flux
Hout(idSrad) == F ! swrad shortwave radiation flux
Hout(idEmPf) == F ! EminusP E-P flux
Hout(idevap) == F ! evaporation evaporation rate
Hout(idrain) == F ! rain precipitation rate
Hout(idDano) == F ! rho density anomaly
Hout(idVvis) == F ! AKv vertical viscosity
Hout(idTdif) == F ! AKt vertical T-diffusion
Hout(idSdif) == F ! AKs vertical Salinity diffusion
Hout(idHsbl) == F ! Hsbl depth of surface boundary layer
Hout(idHbbl) == F ! Hbbl depth of bottom boundary layer
Hout(idMtke) == F ! tke turbulent kinetic energy
Hout(idMtls) == F ! gls turbulent length scale
! Logical switches (TRUE/FALSE) to activate writing of extra inert passive
! tracers other than biological and sediment tracers. An inert passive tracer
! is one that it is only advected and diffused. Other processes are ignored.
! These tracers include, for example, dyes, pollutants, oil spills, etc.
! NPT values are expected. However, these switches can be activated using
! compact parameter specification.
Hout(inert) == T ! dye_01, ... inert passive tracers
! Logical switches (TRUE/FALSE) to activate writing of exposed sediment
! layer properties into HISTORY output file. Currently, MBOTP properties
! are expected for the bottom boundary layer and/or sediment models:
!
! idBott( 1=isd50) grain_diameter mean grain diameter
! idBott( 2=idens) grain_density mean grain density
! idBott( 3=iwsed) settling_vel mean settling velocity
! idBott( 4=itauc) erosion_stress critical erosion stress
! idBott( 5=irlen) ripple_length ripple length
! idBott( 6=irhgt) ripple_height ripple height
! idBott( 7=ibwav) bed_wave_amp wave excursion amplitude
! idBott( 8=izdef) Zo_def default bottom roughness
! idBott( 9=izapp) Zo_app apparent bottom roughness
! idBott(10=izNik) Zo_Nik Nikuradse bottom roughness
! idBott(11=izbio) Zo_bio biological bottom roughness
! idBott(12=izbfm) Zo_bedform bed form bottom roughness
! idBott(13=izbld) Zo_bedload bed load bottom roughness
! idBott(14=izwbl) Zo_wbl wave bottom roughness
! idBott(15=iactv) active_layer_thickness active layer thickness
! idBott(16=ishgt) saltation saltation height
!
! 1 1 1 1 1 1 1
! 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6
Hout(idBott) == T T T T T T T T T F F F F F F F
! Logical switches (TRUE/FALSE) to activate writing of time-averaged
! fields into AVERAGE output file.
Aout(idUvel) == T ! u 3D U-velocity
Aout(idVvel) == T ! v 3D V-velocity
Aout(idu3dE) == F ! u_eastward 3D U-eastward at RHO-points
Aout(idv3dN) == F ! v_northward 3D V-northward at RHO-points
Aout(idWvel) == T ! w 3D W-velocity
Aout(idOvel) == F ! omega omega vertical velocity
Aout(idUbar) == F ! ubar 2D U-velocity
Aout(idVbar) == F ! vbar 2D V-velocity
Aout(idu2dE) == F ! ubar_eastward 2D U-eastward at RHO-points
Aout(idv2dN) == F ! vbar_northward 2D V-northward at RHO-points
Aout(idFsur) == T ! zeta free-surface
Aout(idTvar) == F F ! temp, salt temperature and salinity
Aout(idUsms) == F ! sustr surface U-stress
Aout(idVsms) == F ! svstr surface V-stress
Aout(idUbms) == F ! bustr bottom U-stress
Aout(idVbms) == F ! bvstr bottom V-stress
Aout(idW2xx) == F ! Sxx_bar 2D radiation stress, Sxx component
Aout(idW2xy) == F ! Sxy_bar 2D radiation stress, Sxy component
Aout(idW2yy) == F ! Syy_bar 2D radiation stress, Syy component
Aout(idU2rs) == F ! Ubar_Rstress 2D radiation U-stress
Aout(idV2rs) == F ! Vbar_Rstress 2D radiation V-stress
Aout(idU2Sd) == F ! ubar_stokes 2D U-Stokes velocity
Aout(idV2Sd) == F ! vbar_stokes 2D V-Stokes velocity
Aout(idW3xx) == F ! Sxx 3D radiation stress, Sxx component
Aout(idW3xy) == F ! Sxy 3D radiation stress, Sxy component
Aout(idW3yy) == F ! Syy 3D radiation stress, Syy component
Aout(idW3zx) == F ! Szx 3D radiation stress, Szx component
Aout(idW3zy) == F ! Szy 3D radiation stress, Szy component
Aout(idU3rs) == F ! u_Rstress 3D U-radiation stress
Aout(idV3rs) == F ! v_Rstress 3D V-radiation stress
Aout(idU3Sd) == F ! u_stokes 3D U-Stokes velocity
Aout(idV3Sd) == F ! v_stokes 3D V-Stokes velocity
Aout(idPair) == F ! Pair surface air pressure
Aout(idUair) == F ! Uair surface U-wind component
Aout(idVair) == F ! Vair surface V-wind component
Aout(idTsur) == F F ! shflux, ssflux surface net heat and salt flux
Aout(idLhea) == F ! latent latent heat flux
Aout(idShea) == F ! sensible sensible heat flux
Aout(idLrad) == F ! lwrad longwave radiation flux
Aout(idSrad) == F ! swrad shortwave radiation flux
Aout(idevap) == F ! evaporation evaporation rate
Aout(idrain) == F ! rain precipitation rate
Aout(idDano) == F ! rho density anomaly
Aout(idVvis) == F ! AKv vertical viscosity
Aout(idTdif) == F ! AKt vertical T-diffusion
Aout(idSdif) == F ! AKs vertical Salinity diffusion
Aout(idHsbl) == F ! Hsbl depth of surface boundary layer
Aout(idHbbl) == F ! Hbbl depth of bottom boundary layer
Aout(id2dRV) == F ! pvorticity_bar 2D relative vorticity
Aout(id3dRV) == F ! pvorticity 3D relative vorticity
Aout(id2dPV) == F ! rvorticity_bar 2D potential vorticity
Aout(id3dPV) == F ! rvorticity 3D potential vorticity
Aout(idu3dD) == F ! u_detided detided 3D U-velocity
Aout(idv3dD) == F ! v_detided detided 3D V-velocity
Aout(idu2dD) == F ! ubar_detided detided 2D U-velocity
Aout(idv2dD) == F ! vbar_detided detided 2D V-velocity
Aout(idFsuD) == F ! zeta_detided detided free-surface
Aout(idTrcD) == F F ! temp_detided, ... detided temperature and salinity
Aout(idHUav) == F ! Huon u-volume flux, Huon
Aout(idHVav) == F ! Hvom v-volume flux, Hvom
Aout(idUUav) == F ! uu quadratic <u*u> term
Aout(idUVav) == F ! uv quadratic <u*v> term
Aout(idVVav) == F ! vv quadratic <v*v> term
Aout(idU2av) == F ! ubar2 quadratic <ubar*ubar> term
Aout(idV2av) == F ! vbar2 quadratic <vbar*vbar> term
Aout(idZZav) == F ! zeta2 quadratic <zeta*zeta> term
Aout(idTTav) == F F ! temp_2, ... quadratic <t*t> tracer terms
Aout(idUTav) == F F ! u_temp, ... quadratic <u*t> tracer terms
Aout(idVTav) == F F ! v_temp, ... quadratic <v*t> tracer terms
Aout(iHUTav) == F F ! Huon_temp, ... tracer volume flux, <Huon*t>
Aout(iHVTav) == F F ! Hvom_temp, ... tracer volume flux, <Hvom*t>
! Logical switches (TRUE/FALSE) to activate writing of extra inert passive
! tracers other than biological and sediment tracers into the AVERAGE file.
Aout(inert) == T ! dye_01, ... inert passive tracers
! Logical switches (TRUE/FALSE) to activate writing of time-averaged,
! 2D momentum (ubar,vbar) diagnostic terms into DIAGNOSTIC output file.
Dout(M2rate) == T ! ubar_accel, ... acceleration
Dout(M2pgrd) == T ! ubar_prsgrd, ... pressure gradient
Dout(M2fcor) == T ! ubar_cor, ... Coriolis force
Dout(M2hadv) == T ! ubar_hadv, ... horizontal total advection
Dout(M2xadv) == T ! ubar_xadv, ... horizontal XI-advection
Dout(M2yadv) == T ! ubar_yadv, ... horizontal ETA-advection
Dout(M2hrad) == T ! ubar_hrad, ... horizontal total radiation stress
Dout(M2hvis) == T ! ubar_hvisc, ... horizontal total viscosity
Dout(M2xvis) == T ! ubar_xvisc, ... horizontal XI-viscosity
Dout(M2yvis) == T ! ubar_yvisc, ... horizontal ETA-viscosity
Dout(M2sstr) == T ! ubar_sstr, ... surface stress
Dout(M2bstr) == T ! ubar_bstr, ... bottom stress
! Logical switches (TRUE/FALSE) to activate writing of time-averaged,
! 3D momentum (u,v) diagnostic terms into DIAGNOSTIC output file.
Dout(M3rate) == T ! u_accel, ... acceleration
Dout(M3pgrd) == T ! u_prsgrd, ... pressure gradient
Dout(M3fcor) == T ! u_cor, ... Coriolis force
Dout(M3hadv) == T ! u_hadv, ... horizontal total advection
Dout(M3xadv) == T ! u_xadv, ... horizontal XI-advection
Dout(M3yadv) == T ! u_yadv, ... horizontal ETA-advection
Dout(M3vadv) == T ! u_vadv, ... vertical advection
Dout(M3hrad) == T ! u_hrad, ... horizontal total radiation stress
Dout(M3vrad) == T ! u_vrad, ... vertical radiation stress
Dout(M3hvis) == T ! u_hvisc, ... horizontal total viscosity
Dout(M3xvis) == T ! u_xvisc, ... horizontal XI-viscosity
Dout(M3yvis) == T ! u_yvisc, ... horizontal ETA-viscosity
Dout(M3vvis) == T ! u_vvisc, ... vertical viscosity
! Logical switches (TRUE/FALSE) to activate writing of time-averaged,
! active (temperature and salinity) and passive (inert) tracer diagnostic
! terms into DIAGNOSTIC output file: [1:NAT+NPT,Ngrids].
Dout(iTrate) == T T ! temp_rate, ... time rate of change
Dout(iThadv) == T T ! temp_hadv, ... horizontal total advection
Dout(iTxadv) == T T ! temp_xadv, ... horizontal XI-advection
Dout(iTyadv) == T T ! temp_yadv, ... horizontal ETA-advection
Dout(iTvadv) == T T ! temp_vadv, ... vertical advection
Dout(iThdif) == T T ! temp_hdiff, ... horizontal total diffusion
Dout(iTxdif) == T T ! temp_xdiff, ... horizontal XI-diffusion
Dout(iTydif) == T T ! temp_ydiff, ... horizontal ETA-diffusion
Dout(iTsdif) == T T ! temp_sdiff, ... horizontal S-diffusion
Dout(iTvdif) == T T ! temp_vdiff, ... vertical diffusion
! Generic User parameters, [1:NUSER].
NUSER = 0
USER = 0.d0
! NetCDF-4/HDF5 compression parameters for output files.
NC_SHUFFLE = 1 ! if non-zero, turn on shuffle filter
NC_DEFLATE = 1 ! if non-zero, turn on deflate filter
NC_DLEVEL = 1 ! deflate level [0-9]
! Input NetCDF file names, [1:Ngrids].
GRDNAME == Data/inlet_test_grid.nc
ININAME == ocean_ini.nc
ITLNAME == ocean_itl.nc
IRPNAME == ocean_irp.nc
IADNAME == ocean_iad.nc
FWDNAME == ocean_fwd.nc
ADSNAME == ocean_ads.nc
! Nesting grids connectivity data: contact points information. This
! NetCDF file is special and complex. It is currently generated using
! the script "matlab/grid/contact.m" from the Matlab repository.
NGCNAME = ocean_ngc.nc
! Input lateral boundary conditions and climatology file names. The
! USER has the option to split input data time records into several
! NetCDF files (see prologue instructions above). If so, use a single
! line per entry with a vertical bar (|) symbol after each entry,
! except the last one.
BRYNAME == ocean_bry.nc
CLMNAME == ocean_clm.nc
! Input climatology nudging coefficients file name.
NUDNAME == ocean_nud.nc
! Input Sources/Sinks forcing (like river runoff) file name.
SSFNAME == ocean_rivers.nc
! Input forcing NetCDF file name(s). The USER has the option to enter
! several file names for each nested grid. For example, the USER may
! have different files for wind products, heat fluxes, tides, etc.
! The model will scan the file list and will read the needed data from
! the first file in the list containing the forcing field. Therefore,
! the order of the file names is very important. If using multiple forcing
! files per grid, first enter all the file names for grid 1, then grid 2,
! and so on. It is also possible to split input data time records into
! several NetCDF files (see prologue instructions above). Use a single line
! per entry with a continuation (\) or vertical bar (|) symbol after each
! entry, except the last one.
NFFILES == 1 ! number of unique forcing files
FRCNAME == ocean_frc.nc ! forcing file 1, grid 1
! Output NetCDF file names, [1:Ngrids].
GSTNAME == ocean_gst.nc
RSTNAME == ocean_rst.nc
HISNAME == ocean_his.nc
TLMNAME == ocean_tlm.nc
TLFNAME == ocean_tlf.nc
ADJNAME == ocean_adj.nc
AVGNAME == ./ocean_avg.nc
DIANAME == ocean_dia.nc
STANAME == ocean_sta.nc
FLTNAME == ocean_flt.nc
! Input ASCII parameter filenames.
APARNAM = s4dvar.in
SPOSNAM = stations.in
FPOSNAM = floats.in
BPARNAM = bio_Fennel.in
SPARNAM = sediment_inlet_test.in
USRNAME = MyFile.dat