From 11aa01fa27f19fed6bf9eaef87ee77bacfd7232c Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Thu, 5 Nov 2020 19:56:11 +0000 Subject: [PATCH 01/25] updated checkout build and link to use new unified model - changed a few names from fv3 to ufs --- .gitignore | 2 ++ README.md | 2 +- sorc/build_fv3_coupled.sh | 27 --------------------------- sorc/build_ufs_coupled.sh | 22 ++++++++++++++++++++++ sorc/checkout.sh | 14 +++++++------- sorc/link_fv3gfs.sh | 6 +++--- workflow/config/fcst.yaml | 2 +- 7 files changed, 36 insertions(+), 39 deletions(-) delete mode 100755 sorc/build_fv3_coupled.sh create mode 100755 sorc/build_ufs_coupled.sh diff --git a/.gitignore b/.gitignore index b56d24eb21..7515cb055d 100644 --- a/.gitignore +++ b/.gitignore @@ -57,6 +57,7 @@ scripts/exglobal_innovate_obs_fv3gfs.sh.ecf scripts/exglobal_pmgr.sh.ecf sorc/calc_increment_ens.fd sorc/checkout-fv3gfs.log +sorc/checkout-ufs_coupled.log sorc/checkout-gfs_post.log sorc/checkout-gfs_wafs.log sorc/checkout-gsi.log @@ -118,6 +119,7 @@ sorc/recentersigp.fd sorc/shave.fd sorc/tocsbufr.fd/tocsbufr.o sorc/ufs_utils.fd/ +sorc/ufs_coupled.fd/ sorc/verif-global.fd/ sorc/wafs_awc_wafavn.fd sorc/wafs_blending.fd diff --git a/README.md b/README.md index d06083139e..c0d631175d 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ sh checkout.sh coupled # Check out the couple ``` sh build_ncep_post.sh #This command will build ncep_post sh build_ww3prepost.sh #This command will build ww3 prep and post exes -sh build_fv3_coupled.sh #This command will build ufs-s2s-model +sh build_ufs_coupled.sh #This command will build the UFS coupled model exe sh build_reg2grb2.sh #This command will build exes for ocean-ice post To link fixed files and executable programs for the coupled application: diff --git a/sorc/build_fv3_coupled.sh b/sorc/build_fv3_coupled.sh deleted file mode 100755 index 5aee3e911e..0000000000 --- a/sorc/build_fv3_coupled.sh +++ /dev/null @@ -1,27 +0,0 @@ -#! /usr/bin/env bash -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles -else - export MOD_PATH=${cwd}/lib/modulefiles -fi - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - mkdir ../exec -fi - -if [ $target = hera ]; then target=hera.intel ; fi -if [ $target = orion ]; then target=orion.intel ; fi - -cd fv3_coupled.fd/ -FV3=$( pwd -P )/FV3 -cd tests/ -./compile.sh "$FV3" "$target" "CCPP=Y SUITES=FV3_GFS_2017_coupled,FV3_GFS_2017_satmedmf_coupled,FV3_GFS_v15p2_coupled MOM6=Y CICE6=Y WW3=Y CMEPS=Y" 1 -mv -f fcst_1.exe ../NEMS/exe/nems_fv3_ccpp_mom6_cice5_ww3.x - diff --git a/sorc/build_ufs_coupled.sh b/sorc/build_ufs_coupled.sh new file mode 100755 index 0000000000..906108461f --- /dev/null +++ b/sorc/build_ufs_coupled.sh @@ -0,0 +1,22 @@ +#! /usr/bin/env bash +set -eux + +source ./machine-setup.sh > /dev/null 2>&1 +cwd=`pwd` + +# Check final exec folder exists +if [ ! -d "../exec" ]; then + mkdir ../exec +fi + +if [ $target = hera ]; then target=hera.intel ; fi +if [ $target = orion ]; then target=orion.intel ; fi + +MOD_PATH=$cwd/ufs_coupled.fd/modulefiles/$target + +module purge +module use $MOD_PATH +module load fv3 +cd ufs_coupled.fd/ +CMAKE_FLAGS="-DS2S=ON" CCPP_SUITES="FV3_GFS_2017_coupled,FV3_GFS_2017_satmedmf_coupled,FV3_GFS_v15p2_coupled" ./build.sh + diff --git a/sorc/checkout.sh b/sorc/checkout.sh index 0c0a9e4797..4227610d47 100755 --- a/sorc/checkout.sh +++ b/sorc/checkout.sh @@ -10,17 +10,17 @@ fi model=${model:-"uncoupled"} if [ $model = "coupled" ]; then -echo fv3_mom6_cice5 checkout ... -rm -f ${topdir}/checkout-fv3_coupled.log +echo UFS coupled model checkout ... +rm -f ${topdir}/checkout-ufs_coupled.log -if [[ ! -d fv3_coupled.fd ]] ; then - git clone https://github.com/ufs-community/ufs-s2s-model fv3_coupled.fd >> ${topdir}/checkout-fv3_coupled.log 2>&1 - cd fv3_coupled.fd - git checkout f710412c08f730458c33ffb3ee9dc29064a9aed1 +if [[ ! -d ufs_coupled.fd ]] ; then + git clone https://github.com/ufs-community/ufs-weather-model ufs_coupled.fd >> ${topdir}/checkout-ufs_coupled.log 2>&1 + cd ufs_coupled.fd + git checkout develop git submodule update --init --recursive cd ${topdir} else - echo 'Skip. Directory fv3_coupled.fd already exists.' + echo 'Skip. Directory ufs_coupled.fd already exists.' fi fi diff --git a/sorc/link_fv3gfs.sh b/sorc/link_fv3gfs.sh index 643a5092a0..06067f2069 100755 --- a/sorc/link_fv3gfs.sh +++ b/sorc/link_fv3gfs.sh @@ -202,8 +202,8 @@ cd ${pwd}/../ush ||exit 8 cd $pwd/../exec if [ $model == "coupled" ]; then -[[ -s nems_fv3_ccpp_mom6_cice5_ww3.x ]] && rm -f nems_fv3_ccpp_mom6_cice5_ww3.x -$LINK ../sorc/fv3_coupled.fd/NEMS/exe/nems_fv3_ccpp_mom6_cice5_ww3.x . +[[ -s ufs_model ]] && rm -f ufs_model +$LINK ../sorc/ufs_coupled.fd/build/ufs_model . else [[ -s global_fv3gfs.x ]] && rm -f global_fv3gfs.x $LINK ../sorc/fv3gfs.fd/NEMS/exe/global_fv3gfs.x . @@ -325,7 +325,7 @@ cd ${pwd}/../sorc || exit 8 cd $pwd/../fix [[ -d fix_ccpp_suites ]] && rm -rf fix_ccpp_suites if [ $model == "coupled" ]; then -$SLINK ../sorc/fv3_coupled.fd/FV3/ccpp/suites fix_ccpp_suites +$SLINK ../sorc/ufs_coupled.fd/FV3/ccpp/suites fix_ccpp_suites else $SLINK ../sorc/fv3gfs.fd/FV3/ccpp/suites fix_ccpp_suites fi diff --git a/workflow/config/fcst.yaml b/workflow/config/fcst.yaml index 1d31c1cff8..7b0e91598c 100644 --- a/workflow/config/fcst.yaml +++ b/workflow/config/fcst.yaml @@ -6,7 +6,7 @@ config_fcst: filename: config.fcst FCSTEXEC: !FirstTrue - when: !calc doc.settings.cplflx==".true." - do: "nems_fv3_ccpp_mom6_cice5_ww3.x" + do: "ufs_model" - otherwise: "global_fv3gfs.x" more_exports_for_microphys: !FirstTrue - when: !calc ( doc.fv3_gfs_settings.imp_physics=="11" ) From 8adf345380a2e872d25da1a0da8ac18ed2ecf228 Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Fri, 6 Nov 2020 18:34:12 +0000 Subject: [PATCH 02/25] updates for linking to new fix --- sorc/link_fv3gfs.sh | 25 +++++++++++++++---------- workflow/config/base.yaml | 1 - workflow/defaults/places.yaml | 2 +- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/sorc/link_fv3gfs.sh b/sorc/link_fv3gfs.sh index 06067f2069..af198ad9d3 100755 --- a/sorc/link_fv3gfs.sh +++ b/sorc/link_fv3gfs.sh @@ -15,18 +15,24 @@ fi if [ $# -lt 2 ]; then echo '***ERROR*** must specify two arguements: (1) RUN_ENVIR, (2) machine' - echo ' Syntax: link_fv3gfs.sh ( nco | emc ) ( cray | dell | theia | hera | orion )' + echo ' Syntax: link_fv3gfs.sh ( nco | emc ) ( cray | dell | hera | orion )' + echo ' A third argument is needed when coupled: ' + echo ' Syntax: link_fv3gfs.sh ( nco | emc ) ( cray | dell | hera | orion ) coupled' exit 1 fi RUN_ENVIR=${1:-emc} if [ $RUN_ENVIR != emc -a $RUN_ENVIR != nco ]; then - echo 'Syntax: link_fv3gfs.sh ( nco | emc ) ( cray | dell | theia | hera | orion )' + echo 'Syntax: link_fv3gfs.sh ( nco | emc ) ( cray | dell | hera | orion )' + echo 'If coupling add a third argument: ' + echo ' Syntax: link_fv3gfs.sh ( nco | emc ) ( cray | dell | hera | orion ) coupled' exit 1 fi -if [ $machine != cray -a $machine != theia -a $machine != dell -a $machine != hera -a $machine != orion]; then - echo 'Syntax: link_fv3gfs.sh ( nco | emc ) ( cray | dell | theia | hera | orion )' +if [ $machine != cray -a $machine != dell -a $machine != hera -a $machine != orion]; then + echo 'Syntax: link_fv3gfs.sh ( nco | emc ) ( cray | dell | hera | orion )' + echo 'If coupling add a third argument: ' + echo ' Syntax: link_fv3gfs.sh ( nco | emc ) ( cray | dell | hera | orion ) coupled' exit 1 fi @@ -52,9 +58,9 @@ elif [ $target == "gaea" ]; then elif [ $target == "jet" ]; then FIX_DIR="/lfs3/projects/hfv3gfs/glopara/git/fv3gfs/fix" elif [ $target == "hera" ]; then - FIX_DIR="/scratch2/NCEPDEV/climate/climpara/S2S/FIX/fix_UFSp4" + FIX_DIR="/scratch2/NCEPDEV/climate/climpara/S2S/FIX/fix_UFSp6" elif [ $target == "orion" ]; then - FIX_DIR="/work/noaa/marine/jmeixner/tempFixICdir/fix_UFSp4" + FIX_DIR="/work/noaa/marine/jmeixner/tempFixICdir/fix_UFSp6" else echo 'CRITICAL: links to fix files not set' [[ $machine != orion ]] && exit 1 @@ -63,7 +69,7 @@ fi if [ ! -z $FIX_DIR ]; then if [ ! -d ${pwd}/../fix ]; then mkdir ${pwd}/../fix; fi cd ${pwd}/../fix ||exit 8 - for dir in fix_am fix_fv3 fix_orog fix_fv3_gmted2010 fix_verif ; do + for dir in fix_am fix_orog fix_fv3_gmted2010 fix_verif ; do [[ -d $dir ]] && rm -rf $dir done $LINK $FIX_DIR/* . @@ -348,11 +354,10 @@ if [ $model = "coupled" ] ; then #cp -p config.base.emc.dyn_coupled config.base cd $pwd/../fix # Add fixed files needed for coupled ufs-s2s-model - $LINK $FIX_DIR/fix_cice5 . + $LINK $FIX_DIR/fix_cice . $LINK $FIX_DIR/fix_mom6 . - $LINK $FIX_DIR/fix_fv3grid . $LINK $FIX_DIR/fix_cpl . - $LINK $FIX_DIR/fix_wav . + $LINK $FIX_DIR/fix_wave . fi exit 0 diff --git a/workflow/config/base.yaml b/workflow/config/base.yaml index f4fbaf2a1e..89c36c613b 100644 --- a/workflow/config/base.yaml +++ b/workflow/config/base.yaml @@ -52,7 +52,6 @@ config_base: export FIXcice=$HOMEgfs/fix/fix_cice5 export FIXmom=$HOMEgfs/fix/fix_mom6 - export FIXgrid=$HOMEgfs/fix/fix_fv3grid export OCNFIXDIR=$HOMEgfs/fix/fix_reg2grb2 # GLOBAL static environment parameters diff --git a/workflow/defaults/places.yaml b/workflow/defaults/places.yaml index d1e7df8966..fd267a8dc2 100644 --- a/workflow/defaults/places.yaml +++ b/workflow/defaults/places.yaml @@ -11,7 +11,7 @@ default_places: &default_places DMPDIR: !calc doc.platform.DMPDIR RTMFIX: !calc doc.platform.RTMFIX - FIXwave: !expand "{HOMEgfs}/fix/fix_wav" + FIXwave: !expand "{HOMEgfs}/fix/fix_wave" EXPDIR: !expand "{doc.platform.EXPROOT}/{doc.names.experiment}" ROTDIR: !expand "{doc.platform.COMROOT}/{doc.names.experiment}" From 331884483d322d779c174209ebaaf407a3551902 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Mon, 9 Nov 2020 13:54:50 -0600 Subject: [PATCH 03/25] point to a particular hash of ufs model --- sorc/checkout.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sorc/checkout.sh b/sorc/checkout.sh index 4227610d47..d4c3fdbe1a 100755 --- a/sorc/checkout.sh +++ b/sorc/checkout.sh @@ -16,7 +16,9 @@ rm -f ${topdir}/checkout-ufs_coupled.log if [[ ! -d ufs_coupled.fd ]] ; then git clone https://github.com/ufs-community/ufs-weather-model ufs_coupled.fd >> ${topdir}/checkout-ufs_coupled.log 2>&1 cd ufs_coupled.fd - git checkout develop + #git checkout develop + #checkout develop branch hash from 11/9/2020: + git checkout 4e8ef6a879ceefb719cc9cebd8ac9c2208a58b16 git submodule update --init --recursive cd ${topdir} else From f6d3bb22c65de6ffda8f682d46826b2f6320aee7 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Mon, 9 Nov 2020 18:36:05 -0600 Subject: [PATCH 04/25] remove theia modules --- modulefiles/gfs_bufr.theia | 22 ---------------------- modulefiles/module_base.theia | 23 ----------------------- 2 files changed, 45 deletions(-) delete mode 100644 modulefiles/gfs_bufr.theia delete mode 100644 modulefiles/module_base.theia diff --git a/modulefiles/gfs_bufr.theia b/modulefiles/gfs_bufr.theia deleted file mode 100644 index c433c9ca1e..0000000000 --- a/modulefiles/gfs_bufr.theia +++ /dev/null @@ -1,22 +0,0 @@ -#%Module##################################################### -## bufrsnd -############################################################# - -# Loading Intel Compiler Suite -module load intel -module load impi - -module use -a $MOD_PATH - -# Loding nceplibs modules -module load sigio/v2.0.1 -module load bacio/v2.0.1 -module load w3emc/v2.2.0 -module load w3nco/v2.0.6 -module load bufr/v10.2.5 -module load nemsio/v2.2.1 - -export myFC=mpiifort -export myFCFLAGS="-O3 -convert big_endian -traceback -g -fp-model source -openmp" -export myCPP=/lib/cpp -export myCPPFLAGS="-P" diff --git a/modulefiles/module_base.theia b/modulefiles/module_base.theia deleted file mode 100644 index 678a62b4ea..0000000000 --- a/modulefiles/module_base.theia +++ /dev/null @@ -1,23 +0,0 @@ -#%Module###################################################################### -## -## FV3GFS prerequisites -## - -module load intel/18.0.1.163 -module load impi/5.1.2.150 -module load wgrib2/0.2.0.6c -module load hpss/hpss -module load pnetcdf/1.5.0-impi -module load netcdf/4.3.0 -module load nco/4.7.0 -module load hdf5/1.8.14 -module load gempak/6.7.0 - -module use /scratch3/NCEPDEV/nwprod/lib/modulefiles -module load EnvVars/v1.0.2 - -module use /scratch4/NCEPDEV/global/save/glopara/git/NCEPLIBS-prod_util/modulefiles -module load prod_util/v1.1.0_slurm - -module use -a /scratch4/NCEPDEV/nems/noscrub/emc.nemspara/soft/modulefiles -module load esmf/8.0.0bs48 From 648e1cd603fe7681afb8ef81710721b1060f222e Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Tue, 10 Nov 2020 12:34:21 -0600 Subject: [PATCH 05/25] update ww3 build for fv3->ufs naming change --- sorc/build_ww3prepost.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sorc/build_ww3prepost.sh b/sorc/build_ww3prepost.sh index ac689c7ce4..bd30f910b6 100755 --- a/sorc/build_ww3prepost.sh +++ b/sorc/build_ww3prepost.sh @@ -15,7 +15,7 @@ source ../modulefiles/modulefile.ww3.$target set -x -cd fv3_coupled.fd/WW3 +cd ufs_coupled.fd/WW3 export WW3_DIR=$( pwd -P )/model export WW3_BINDIR="${WW3_DIR}/bin" export WW3_TMPDIR=${WW3_DIR}/tmp From ce6a6f3c84a580f2ba74831b0168382dd37bbbf8 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Tue, 10 Nov 2020 15:26:00 -0600 Subject: [PATCH 06/25] adding WW3 to build --- sorc/build_ufs_coupled.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sorc/build_ufs_coupled.sh b/sorc/build_ufs_coupled.sh index 906108461f..d26dd42585 100755 --- a/sorc/build_ufs_coupled.sh +++ b/sorc/build_ufs_coupled.sh @@ -18,5 +18,5 @@ module purge module use $MOD_PATH module load fv3 cd ufs_coupled.fd/ -CMAKE_FLAGS="-DS2S=ON" CCPP_SUITES="FV3_GFS_2017_coupled,FV3_GFS_2017_satmedmf_coupled,FV3_GFS_v15p2_coupled" ./build.sh +CMAKE_FLAGS="-DS2S=ON -DWW3=ON" CCPP_SUITES="FV3_GFS_2017_coupled,FV3_GFS_2017_satmedmf_coupled,FV3_GFS_v15p2_coupled" ./build.sh From 335fd40da1a81a2cd055a916feda5fea0b056bcb Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Tue, 10 Nov 2020 15:26:24 -0600 Subject: [PATCH 07/25] updates for having cice fix file have resolution folders and removing cice5 references --- jobs/rocoto/coupled_ic.sh | 2 +- scripts/exglobal_fcst_nemsfv3gfs.sh | 2 +- ush/forecast_postdet.sh | 22 ++++++++++++---------- ush/forecast_predet.sh | 1 + workflow/config/base.yaml | 2 +- 5 files changed, 16 insertions(+), 13 deletions(-) diff --git a/jobs/rocoto/coupled_ic.sh b/jobs/rocoto/coupled_ic.sh index f7eb548d9a..5db408710f 100755 --- a/jobs/rocoto/coupled_ic.sh +++ b/jobs/rocoto/coupled_ic.sh @@ -57,7 +57,7 @@ cp -r $ORIGIN_ROOT/$CPL_ATMIC/$CDATE/$CDUMP $ICSDIR/$CDATE/ cp -r $ORIGIN_ROOT/$CPL_OCNIC/$CDATE/ocn/$OCNRES/MOM*.nc $ICSDIR/$CDATE/ocn/ #Setup Ice IC files -cp $ORIGIN_ROOT/$CPL_ICEIC/$CDATE/ice/$ICERES/cice5_model_${ICERESdec}.res_$CDATE.nc $ICSDIR/$CDATE/ice/ +cp $ORIGIN_ROOT/$CPL_ICEIC/$CDATE/ice/$ICERES/cice5_model_${ICERESdec}.res_$CDATE.nc $ICSDIR/$CDATE/ice/cice_model_${ICERESdec}.res_$CDATE.nc if [ $cplwav = ".true." ]; then [[ ! -d $ICSDIR/$CDATE/wav ]] && mkdir -p $ICSDIR/$CDATE/wav diff --git a/scripts/exglobal_fcst_nemsfv3gfs.sh b/scripts/exglobal_fcst_nemsfv3gfs.sh index a1543754d7..a5ca1fef76 100755 --- a/scripts/exglobal_fcst_nemsfv3gfs.sh +++ b/scripts/exglobal_fcst_nemsfv3gfs.sh @@ -131,7 +131,7 @@ case $RUN in 'gefs') FV3_GEFS_predet;; esac [[ $cplflx = .true. ]] && MOM6_predet -[[ $cplwav = .true. ]] && WW3_predet +#[[ $cplwav = .true. ]] && WW3_predet #no WW3_predet at this time [[ $cplice = .true. ]] && CICE_predet [[ $cplchem = .true. ]] && GSD_predet diff --git a/ush/forecast_postdet.sh b/ush/forecast_postdet.sh index d2791d540e..196b8dcd3c 100755 --- a/ush/forecast_postdet.sh +++ b/ush/forecast_postdet.sh @@ -728,26 +728,28 @@ CICE_postdet() ICERES=${ICERES:-"025"} if [ $ICERES = '025' ]; then - ICERESmx="mx025" ICERESdec="0.25" fi if [ $ICERES = '050' ]; then - ICERESmx="mx050" ICERESdec="0.50" fi + if [ $ICERES = '100' ]; then + ICERESdec="1.00" + fi + - ice_grid_file=${ice_grid_file:-"grid_cice_NEMS_${ICERESmx}.nc"} - ice_kmt_file=${ice_kmt_file:-"kmtu_cice_NEMS_${ICERESmx}.nc"} + ice_grid_file=${ice_grid_file:-"grid_cice_NEMS_mx${ICERES}.nc"} + ice_kmt_file=${ice_kmt_file:-"kmtu_cice_NEMS_mx${ICERES}.nc"} - iceic="cice5_model.res_$CDATE.nc" + iceic="cice_model.res_$CDATE.nc" - # Copy CICE5 IC - $NCP -p $ICSDIR/$CDATE/ice/cice5_model_${ICERESdec}.res_$CDATE.nc $DATA/$iceic + # Copy CICE IC + $NCP -p $ICSDIR/$CDATE/ice/cice_model_${ICERESdec}.res_$CDATE.nc $DATA/$iceic echo "Link CICE fixed files" - $NLN -sf $FIXcice/${ice_grid_file} $DATA/ - $NLN -sf $FIXcice/${ice_kmt_file} $DATA/ - $NLN -sf $FIXcice/$MESHICE $DATA/ + $NLN -sf $FIXcice/$ICERES/${ice_grid_file} $DATA/ + $NLN -sf $FIXcice/$ICERES/${ice_kmt_file} $DATA/ + $NLN -sf $FIXcice/$ICERES/$MESHICE $DATA/ } CICE_nml() diff --git a/ush/forecast_predet.sh b/ush/forecast_predet.sh index 3d215e248e..96c106623d 100755 --- a/ush/forecast_predet.sh +++ b/ush/forecast_predet.sh @@ -196,6 +196,7 @@ FV3_GFS_predet(){ fi cd $DATA || exit 8 mkdir -p $DATA/INPUT + echo "restart_interval=$restart_interval" if [ $CDUMP = "gfs" -a $restart_interval -gt 0 ]; then RSTDIR_TMP=${RSTDIR:-$ROTDIR}/${CDUMP}.${PDY}/${cyc}/RERUN_RESTART if [ ! -d $RSTDIR_TMP ]; then mkdir -p $RSTDIR_TMP ; fi diff --git a/workflow/config/base.yaml b/workflow/config/base.yaml index 89c36c613b..c66c2de3f7 100644 --- a/workflow/config/base.yaml +++ b/workflow/config/base.yaml @@ -50,7 +50,7 @@ config_base: export EXECgfs=$HOMEgfs/exec export SCRgfs=$HOMEgfs/scripts - export FIXcice=$HOMEgfs/fix/fix_cice5 + export FIXcice=$HOMEgfs/fix/fix_cice export FIXmom=$HOMEgfs/fix/fix_mom6 export OCNFIXDIR=$HOMEgfs/fix/fix_reg2grb2 From b8dba4a87d6ba1cbe708d493fcdd08ca45f828dc Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Tue, 10 Nov 2020 15:57:06 -0600 Subject: [PATCH 08/25] remove CODEwave as it is an unused variable --- workflow/config/wave.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/workflow/config/wave.yaml b/workflow/config/wave.yaml index 8425c33ba9..93c38a0f10 100644 --- a/workflow/config/wave.yaml +++ b/workflow/config/wave.yaml @@ -125,7 +125,6 @@ config_wave: export NTASKS={doc.partition_common.resources.run_prep[0].mpi_ranks} # # # Path to HOME Directory - export CODEwave="{doc.places.HOMEgfs}/sorc/fv3_coupled.fd/WW3" export EXECwave="{doc.places.HOMEgfs}/exec" export FIXwave="{doc.places.FIXwave}" export PARMwave="{doc.places.HOMEgfs}/parm/wave" From df0431e426ce31565ec9acabaeb6e791d71464ac Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Tue, 10 Nov 2020 15:57:28 -0600 Subject: [PATCH 09/25] more fv3->ufs dir name changes --- Externals_coupled.cfg | 2 +- ush/nems_configure.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Externals_coupled.cfg b/Externals_coupled.cfg index 4baa183c23..575033f4fb 100644 --- a/Externals_coupled.cfg +++ b/Externals_coupled.cfg @@ -1,6 +1,6 @@ [ufs-s2s-model] tag = ufss2s_cmeps_v0.7 -local_path = sorc/fv3_coupled.fd +local_path = sorc/ufs_coupled.fd repo_url = https://github.com/ufs-community/ufs-s2s-model protocol = git required = True diff --git a/ush/nems_configure.sh b/ush/nems_configure.sh index 78a6724b12..ec411e87d8 100755 --- a/ush/nems_configure.sh +++ b/ush/nems_configure.sh @@ -144,7 +144,7 @@ EOF echo "$(cat med_modelio.nml)" -cp $HOMEgfs/sorc/fv3_coupled.fd/CMEPS/mediator/fd_nems.yaml fd_nems.yaml +cp $HOMEgfs/sorc/ufs_coupled.fd/CMEPS/mediator/fd_nems.yaml fd_nems.yaml fi From 4424670ad7172f8f15ba811e97513fe751d32d31 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Tue, 10 Nov 2020 16:39:11 -0600 Subject: [PATCH 10/25] update location of fd_nems.yaml file for CMEPS-interface change --- ush/nems_configure.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ush/nems_configure.sh b/ush/nems_configure.sh index ec411e87d8..9628b21f08 100755 --- a/ush/nems_configure.sh +++ b/ush/nems_configure.sh @@ -144,7 +144,7 @@ EOF echo "$(cat med_modelio.nml)" -cp $HOMEgfs/sorc/ufs_coupled.fd/CMEPS/mediator/fd_nems.yaml fd_nems.yaml +cp $HOMEgfs/sorc/ufs_coupled.fd/CMEPS-interface/CMEPS/mediator/fd_nems.yaml fd_nems.yaml fi From 896d60382e20c32fe45eb7a5b3f04f56423d3e83 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Tue, 10 Nov 2020 17:44:40 -0600 Subject: [PATCH 11/25] modules used for successful forecast and atm post, but ocn post failed --- modulefiles/module_base.orion | 60 ++++++++++++++++++++--------------- 1 file changed, 34 insertions(+), 26 deletions(-) diff --git a/modulefiles/module_base.orion b/modulefiles/module_base.orion index 2f78059706..1959e0bca7 100644 --- a/modulefiles/module_base.orion +++ b/modulefiles/module_base.orion @@ -9,38 +9,54 @@ module load contrib noaatools ## -## load programming environment -## this typically includes compiler, MPI and job scheduler -## -module load intel/2018 -module load impi/2018 +module load cmake/3.17.3 +setenv CMAKE_C_COMPILER mpiicc +setenv CMAKE_CXX_COMPILER mpiicpc +setenv CMAKE_Fortran_COMPILER mpiifort +setenv CMAKE_Platform orion.intel + + +module use /apps/contrib/NCEP/libs/hpc-stack/v1.0.0-beta1/modulefiles/stack + +module load hpc/1.0.0-beta1 +module load hpc-intel/2018.4 +module load hpc-impi/2018.4 + #For ocean post: module load ncl/6.6.2 module load nco/4.8.1 +module load jasper/2.0.15 +module load zlib/1.2.11 +module load png/1.6.35 + +module load hdf5/1.10.6 +module load netcdf/4.7.4 +module load pio/2.5.1 +module load esmf/8_1_0_beta_snapshot_27 + +module load bacio/2.4.1 +module load crtm/2.3.0 +module load g2/3.4.1 +module load g2tmpl/1.9.1 +module load ip/3.3.3 +module load nceppost/dceca26 +module load nemsio/2.5.2 +module load sp/2.3.3 +module load w3emc/2.7.3 +module load w3nco/2.4.1 + ## -## NCEP libraries (temporary version to match the CCPP requirements) +## NCEP libraries for atm post and other ## module use -a /apps/contrib/NCEPLIBS/orion/cmake/install/NCEPLIBS/modules -module load bacio/2.4.0 -module load crtm_dev/2.3.0 -module load g2/3.4.0 -module load g2tmpl/1.9.0 -module load ip/3.3.0 -module load nceppost/dceca26 -module load nemsio/2.5.1 -module load sp/2.3.0 -module load w3emc/2.7.0 -module load w3nco/2.4.0 module load gfsio/1.4.0 module load sfcio/1.4.0 module load sigio/2.3.0 module use /apps/contrib/NCEPLIBS/orion/modulefiles -module load jasper/1.900.2 -module load png/1.2.44 module load z/1.2.6 module load prod_util/1.2.0 @@ -58,11 +74,3 @@ module load grib_util/1.2.0 module load slurm/19.05.3-2 -## -### load cmake -### -module load cmake/3.15.4 -setenv CMAKE_C_COMPILER mpiicc -setenv CMAKE_CXX_COMPILER mpiicpc -setenv CMAKE_Fortran_COMPILER mpiifort -setenv CMAKE_Platform orion.intel From 73ba046f3cb350aa31203b7eb54d54dc2b90bb1e Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Tue, 10 Nov 2020 17:47:32 -0600 Subject: [PATCH 12/25] remove nowave parm file --- parm/mom6/MOM_input_025 | 890 ---------------------------------------- 1 file changed, 890 deletions(-) delete mode 100644 parm/mom6/MOM_input_025 diff --git a/parm/mom6/MOM_input_025 b/parm/mom6/MOM_input_025 deleted file mode 100644 index d977f6f298..0000000000 --- a/parm/mom6/MOM_input_025 +++ /dev/null @@ -1,890 +0,0 @@ -/* 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.) -DT_THERM = 1800.0 ! [s] default = 900.0 - ! The thermodynamic and tracer advection time step. - ! Ideally DT_THERM should be an integer multiple of DT - ! and less than the forcing or coupling time-step, unless - ! THERMO_SPANS_COUPLING is true, in which case DT_THERM - ! can be an integer multiple of the coupling timestep. By - ! default DT_THERM is set to DT. -THERMO_SPANS_COUPLING = True ! [Boolean] default = False - ! If true, the MOM will take thermodynamic and tracer - ! timesteps that can be longer than the coupling timestep. - ! The actual thermodynamic timestep that is used in this - ! case is the largest integer multiple of the coupling - ! timestep that is less than or equal to DT_THERM. -HFREEZE = 20.0 ! [m] default = -1.0 - ! If HFREEZE > 0, melt potential will be computed. The actual depth - ! over which melt potential is computed will be min(HFREEZE, OBLD) - ! where OBLD is the boundary layer depth. If HFREEZE <= 0 (default) - ! melt potential will not be computed. -FRAZIL = True ! [Boolean] default = False - ! If true, water freezes if it gets too cold, and the - ! the accumulated heat deficit is returned in the - ! surface state. FRAZIL is only used if - ! ENABLE_THERMODYNAMICS is true. -DO_GEOTHERMAL = True ! [Boolean] default = False - ! If true, apply geothermal heating. -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 = 65.0 ! [deg C] default = 45.0, PTripp: changed from 55.0 on 12/28/2017 - ! 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 = 2 ! 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 === -TRIPOLAR_N = True ! [Boolean] default = False - ! Use tripolar connectivity at the northern edge of the - ! domain. With TRIPOLAR_N, NIGLOBAL must be even. -NIGLOBAL = 1440 ! - ! 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 = 1080 ! - ! 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. - -! === 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. -TOPO_EDITS_FILE = "All_edits.nc" ! default = "" - ! The file from which to read a list of i,j,z topography overrides. -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. -GRID_ROTATION_ANGLE_BUGS = False ! [Boolean] default = True - ! If true, use an older algorithm to calculate the sine and - ! cosines needed rotate between grid-oriented directions and - ! true north and east. Differences arise at the tripolar fold -USE_TRIPOLAR_GEOLONB_BUG = False ! [Boolean] default = True - ! If true, use older code that incorrectly sets the longitude - ! in some points along the tripolar fold to be off by 360 degrees - -! === 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. -CHANNEL_CONFIG = "list" ! default = "none" - ! A parameter that determines which set of channels are - ! restricted to specific widths. Options are: - ! none - All channels have the grid width. - ! global_1deg - Sets 16 specific channels appropriate - ! for a 1-degree model, as used in CM2G. - ! list - Read the channel locations and widths from a - ! text file, like MOM_channel_list in the MOM_SIS - ! test case. - ! file - Read open face widths everywhere from a - ! NetCDF file on the model grid. -CHANNEL_LIST_FILE = "MOM_channels_global_025" ! default = "MOM_channel_list" - ! The file from which the list of narrowed channels is read. - -! === 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 MOM_restart === -RESTART_CHECKSUMS_REQUIRED = False -PARALLEL_RESTARTFILES = True ! [Boolean] default = False - ! If true, each processor writes its own restart file, - ! otherwise a single restart file is generated - -! === module MOM_tracer_flow_control === -USE_IDEAL_AGE_TRACER = False ! [Boolean] default = False - ! If true, use the ideal_age_example tracer package. - -! === module ideal_age_example === - -! === module MOM_coord_initialization === -COORD_CONFIG = "file" ! - ! 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 = "WOA05_pottemp_salt.nc" ! default = "temp_salt_z.nc" -TEMP_SALT_Z_INIT_FILE = "MOM6_IC_TS.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. -Z_INIT_FILE_PTEMP_VAR = "temp" ! default = "ptemp" - ! The name of the potential temperature variable in - ! TEMP_Z_INIT_FILE. -Z_INIT_FILE_SALT_VAR = "salt" ! 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 === -!Jiande NUM_DIAG_COORDS = 2 ! default = 1 -NUM_DIAG_COORDS = 1 - ! The number of diagnostic vertical coordinates to use. - ! For each coordinate, an entry in DIAG_COORDS must be provided. -!Jiande DIAG_COORDS = "z Z ZSTAR", "rho2 RHO2 RHO" ! -DIAG_COORDS = "z Z ZSTAR" - ! 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_Z="FILE:interpolate_zgrid_40L.nc,interfaces=zw" -DIAG_MISVAL = -1e34 -!Jiande DIAG_COORD_DEF_RHO2 = "RFNC1:35,999.5,1028,1028.5,8.,1038.,0.0078125" ! 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_MEKE === -USE_MEKE = True ! [Boolean] default = False - ! If true, turns on the MEKE scheme which calculates - ! a sub-grid mesoscale eddy kinetic energy budget. -MEKE_GMCOEFF = 1.0 ! [nondim] default = -1.0 - ! The efficiency of the conversion of potential energy - ! into MEKE by the thickness mixing parameterization. - ! If MEKE_GMCOEFF is negative, this conversion is not - ! used or calculated. -MEKE_BGSRC = 1.0E-13 ! [W kg-1] default = 0.0 - ! A background energy source for MEKE. -MEKE_KHMEKE_FAC = 1.0 ! [nondim] default = 0.0 - ! A factor that maps MEKE%Kh to Kh for MEKE itself. -MEKE_ALPHA_RHINES = 0.15 ! [nondim] default = 0.05 - ! If positive, is a coefficient weighting the Rhines scale - ! in the expression for mixing length used in MEKE-derived diffusiviity. -MEKE_ALPHA_EADY = 0.15 ! [nondim] default = 0.05 - ! If positive, is a coefficient weighting the Eady length scale - ! in the expression for mixing length used in MEKE-derived diffusiviity. - -! === module MOM_lateral_mixing_coeffs === -USE_VARIABLE_MIXING = True ! [Boolean] default = False - ! If true, the variable mixing code will be called. This - ! allows diagnostics to be created even if the scheme is - ! not used. If KHTR_SLOPE_CFF>0 or KhTh_Slope_Cff>0, - ! this is set to true regardless of what is in the - ! parameter file. -RESOLN_SCALED_KH = True ! [Boolean] default = False - ! If true, the Laplacian lateral viscosity is scaled away - ! when the first baroclinic deformation radius is well - ! resolved. -RESOLN_SCALED_KHTH = True ! [Boolean] default = False - ! If true, the interface depth diffusivity is scaled away - ! when the first baroclinic deformation radius is well - ! resolved. -KHTR_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 - ! The nondimensional coefficient in the Visbeck formula - ! for the epipycnal tracer diffusivity -USE_STORED_SLOPES = True ! [Boolean] default = False - ! If true, the isopycnal slopes are calculated once and - ! stored for re-use. This uses more memory but avoids calling - ! the equation of state more times than should be necessary. -INTERPOLATE_RES_FN = False ! [Boolean] default = True - ! If true, interpolate the resolution function to the - ! velocity points from the thickness points; otherwise - ! interpolate the wave speed and calculate the resolution - ! function independently at each point. -GILL_EQUATORIAL_LD = True ! [Boolean] default = False - ! If true, uses Gill's definition of the baroclinic - ! equatorial deformation radius, otherwise, if false, use - ! Pedlosky's definition. These definitions differ by a factor - ! of 2 infront of the beta term in the denominator. Gill'sis the more appropriate definition. - -! === module MOM_set_visc === -CHANNEL_DRAG = True ! [Boolean] default = False - ! If true, the bottom drag is exerted directly on each - ! layer proportional to the fraction of the bottom it - ! overlies. -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_mixed_layer_restrat === -MIXEDLAYER_RESTRAT = True ! [Boolean] default = False - ! If true, a density-gradient dependent re-stratifying - ! flow is imposed in the mixed layer. Can be used in ALE mode - ! without restriction but in layer mode can only be used if - ! BULKMIXEDLAYER is true. -FOX_KEMPER_ML_RESTRAT_COEF = 1.0 ! [nondim] default = 0.0 - ! A nondimensional coefficient that is proportional to - ! the ratio of the deformation radius to the dominant - ! lengthscale of the submesoscale mixed layer - ! instabilities, times the minimum of the ratio of the - ! mesoscale eddy kinetic energy to the large-scale - ! geostrophic kinetic energy or 1 plus the square of the - ! grid spacing over the deformation radius, as detailed - ! by Fox-Kemper et al. (2010) -MLE_FRONT_LENGTH = 500.0 ! [m] default = 0.0 - ! If non-zero, is the frontal-length scale used to calculate the - ! upscaling of buoyancy gradients that is otherwise represented - ! by the parameter FOX_KEMPER_ML_RESTRAT_COEF. If MLE_FRONT_LENGTH is - ! non-zero, it is recommended to set FOX_KEMPER_ML_RESTRAT_COEF=1.0. -MLE_USE_PBL_MLD = True ! [Boolean] default = False - ! If true, the MLE parameterization will use the mixed-layer - ! depth provided by the active PBL parameterization. If false, - ! MLE will estimate a MLD based on a density difference with the - ! surface using the parameter MLE_DENSITY_DIFF. -MLE_MLD_DECAY_TIME = 2.592E+06 ! [s] default = 0.0 - ! The time-scale for a running-mean filter applied to the mixed-layer - ! depth used in the MLE restratification parameterization. When - ! the MLD deepens below the current running-mean the running-mean - ! is instantaneously set to the current MLD. - -! === module MOM_diag_to_Z === -!Z_OUTPUT_GRID_FILE = "analysis_vgrid_lev35.v1.nc" ! default = "" -!Z_OUTPUT_GRID_FILE = "interpolate_zgrid_40L.nc" - ! The file that specifies the vertical grid for - ! depth-space diagnostics, or blank to disable - ! depth-space output. -!NK_ZSPACE (from file) = 35 ! [nondim] - ! The number of depth-space levels. This is determined - ! from the size of the variable zw in the output grid file. - -! === 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_geothermal === -GEOTHERMAL_SCALE = 1.0 ! [W m-2 or various] default = 0.0 - ! The constant geothermal heat flux, a rescaling - ! factor for the heat flux read from GEOTHERMAL_FILE, or - ! 0 to disable the geothermal heating. -GEOTHERMAL_FILE = "geothermal_davies2013_v1.nc" ! default = "" - ! The file from which the geothermal heating is to be - ! read, or blank to use a constant heating rate. -GEOTHERMAL_VARNAME = "geothermal_hf" ! default = "geo_heat" - ! The name of the geothermal heating variable in - ! GEOTHERMAL_FILE. - -! === 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. -INT_TIDE_DISSIPATION = True ! [Boolean] default = False - ! If true, use an internal tidal dissipation scheme to - ! drive diapycnal mixing, along the lines of St. Laurent - ! et al. (2002) and Simmons et al. (2004). -INT_TIDE_PROFILE = "POLZIN_09" ! default = "STLAURENT_02" - ! INT_TIDE_PROFILE selects the vertical profile of energy - ! dissipation with INT_TIDE_DISSIPATION. Valid values are: - ! STLAURENT_02 - Use the St. Laurent et al exponential - ! decay profile. - ! POLZIN_09 - Use the Polzin WKB-streched algebraic - ! decay profile. -INT_TIDE_DECAY_SCALE = 300.3003003003003 ! [m] default = 0.0 - ! The decay scale away from the bottom for tidal TKE with - ! the new coding when INT_TIDE_DISSIPATION is used. -KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 - ! A topographic wavenumber used with INT_TIDE_DISSIPATION. - ! The default is 2pi/10 km, as in St.Laurent et al. 2002. -KAPPA_H2_FACTOR = 0.84 ! [nondim] default = 1.0 - ! A scaling factor for the roughness amplitude with nINT_TIDE_DISSIPATION. -TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 - ! The maximum internal tide energy source availble to mix - ! above the bottom boundary layer with INT_TIDE_DISSIPATION. -READ_TIDEAMP = True ! [Boolean] default = False - ! If true, read a file (given by TIDEAMP_FILE) containing - ! the tidal amplitude with INT_TIDE_DISSIPATION. -TIDEAMP_FILE = "tidal_amplitude.v20140616.nc" ! default = "tideamp.nc" - ! The path to the file containing the spatially varying - ! tidal amplitudes with INT_TIDE_DISSIPATION. -H2_FILE = "ocean_topog.nc" ! - ! The path to the file containing the sub-grid-scale - ! topographic roughness amplitude with INT_TIDE_DISSIPATION. - -! === 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. -VERTEX_SHEAR = True ! [Boolean] default = False - ! If true, do the calculations of the shear-driven mixing - ! at the cell vertices (i.e., the vorticity points). -! === 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. -RECLAIM_FRAZIL = True ! [Boolean] default = True - ! If true, try to use any frazil heat deficit to cool any - ! overlying layers down to the freezing point, thereby - ! avoiding the creation of thin ice when the SST is above - ! the freezing point. - -PRESSURE_DEPENDENT_FRAZIL = False ! [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_1998-2006_smoothed_2X.v20140616.nc" ! -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" -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 === -OCEAN_SURFACE_STAGGER = "A" ! default = "C" - ! A case-insensitive character string to indicate the - ! staggering of the surface velocity field that is - ! returned to the coupler. Valid values include - ! 'A', 'B', or 'C'. -ENERGYSAVEDAYS = 1.00 ! [days] default = 1.0 - ! The interval in units of TIMEUNIT between saves of the - ! energies of the run and other globally summed diagnostics. - -! === module ocean_model_init === -ICE_SHELF = False ! [Boolean] default = False - ! If true, enables the ice shelf model. -ICEBERGS_APPLY_RIGID_BOUNDARY = False ! [Boolean] default = False - ! If true, allows icebergs to change boundary condition felt by ocean - -! === 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. -WIND_STAGGER = "A" ! default = "C" - ! A case-insensitive character string to indicate the - ! staggering of the input wind stress field. Valid - ! values are 'A', 'B', or 'C'. -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 -LIQUID_RUNOFF_FROM_DATA = True ! [Boolean] default = False - ! If true, allows liquid river runoff to be specified via - ! the data_table using the component name 'OCN'. -! === module MOM_restart === - -! === module MOM_sum_output === -CALCULATE_APE = False ! [Boolean] default = True - ! If true, calculate the available potential energy of - ! the interfaces. Setting this to false reduces the - ! memory footprint of high-PE-count models dramatically. -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 === From 2d13d80184a3a154360b908a8a7ffbf3bcee6fd6 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Tue, 10 Nov 2020 17:47:59 -0600 Subject: [PATCH 13/25] rename w/wave file --- parm/mom6/{MOM_input_025_wav => MOM_input_025} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename parm/mom6/{MOM_input_025_wav => MOM_input_025} (100%) diff --git a/parm/mom6/MOM_input_025_wav b/parm/mom6/MOM_input_025 similarity index 100% rename from parm/mom6/MOM_input_025_wav rename to parm/mom6/MOM_input_025 From 508eb239715d0dfc5d16425870cf874f576961a3 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Tue, 10 Nov 2020 17:49:59 -0600 Subject: [PATCH 14/25] change of parameters for mom6 to match rt tests --- parm/mom6/MOM_input_025 | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/parm/mom6/MOM_input_025 b/parm/mom6/MOM_input_025 index 28a4097575..f7ba839392 100644 --- a/parm/mom6/MOM_input_025 +++ b/parm/mom6/MOM_input_025 @@ -19,19 +19,19 @@ THICKNESSDIFFUSE = True ! [Boolean] default = False 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] +DT = DT_DYNAM_MOM6 ! [s] ! The (baroclinic) dynamics time step. The time-step that ! is actually used will be an integer fraction of the ! forcing time-step (DT_FORCING in ocean-only mode or the ! coupling timestep in coupled mode.) -DT_THERM = 1800.0 ! [s] default = 900.0 +DT_THERM = DT_THERM_MOM6 ! [s] default = 900.0 ! The thermodynamic and tracer advection time step. ! Ideally DT_THERM should be an integer multiple of DT ! and less than the forcing or coupling time-step, unless ! THERMO_SPANS_COUPLING is true, in which case DT_THERM ! can be an integer multiple of the coupling timestep. By ! default DT_THERM is set to DT. -THERMO_SPANS_COUPLING = True ! [Boolean] default = False +THERMO_SPANS_COUPLING = MOM6_THERMO_SPAN ! [Boolean] default = False ! If true, the MOM will take thermodynamic and tracer ! timesteps that can be longer than the coupling timestep. ! The actual thermodynamic timestep that is used in this @@ -82,11 +82,11 @@ WRITE_GEOM = 2 ! default = 1 TRIPOLAR_N = True ! [Boolean] default = False ! Use tripolar connectivity at the northern edge of the ! domain. With TRIPOLAR_N, NIGLOBAL must be even. -NIGLOBAL = 1440 ! +NIGLOBAL = NX_GLB ! ! 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 = 1080 ! +NJGLOBAL = NY_GLB ! ! 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. @@ -187,7 +187,6 @@ DTFREEZE_DP = -7.75E-08 ! [deg C Pa-1] default = 0.0 ! temperature with pressure. ! === module MOM_restart === -RESTART_CHECKSUMS_REQUIRED = False PARALLEL_RESTARTFILES = True ! [Boolean] default = False ! If true, each processor writes its own restart file, ! otherwise a single restart file is generated @@ -774,7 +773,7 @@ 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 +USE_LA_LI2016 = MOM6_REPRO_LA ! [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 @@ -784,7 +783,7 @@ LT_ENHANCE = 3 ! [nondim] default = 0 ! 1 - Van Roekel et al. 2014/Li et al., 2016 ! 2 - Multiplied w/ adjusted La. ! 3 - Added w/ adjusted La. -USE_WAVES = True ! [Boolean] default = False +USE_WAVES = MOM6_USE_WAVES ! [Boolean] default = False ! If true, enables surface wave modules. WAVE_METHOD = "SURFACE_BANDS" ! default = "EMPTY" ! Choice of wave method, valid options include: @@ -831,9 +830,7 @@ 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_1998-2006_smoothed_2X.v20140616.nc" ! -CHL_FILE = "seawifs-clim-1997-2010.1440x1080.v20180328.nc" - ! CHL_FILE is the file containing chl_a concentrations in +CHL_FILE = CHLCLIM ! 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" @@ -894,11 +891,11 @@ USE_RIGID_SEA_ICE = True ! [Boolean] default = False 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 -LIQUID_RUNOFF_FROM_DATA = True ! [Boolean] default = False +LIQUID_RUNOFF_FROM_DATA = MOM6_RIVER_RUNOFF ! [Boolean] default = False ! If true, allows liquid river runoff to be specified via ! the data_table using the component name 'OCN'. ! === module MOM_restart === - +RESTART_CHECKSUMS_REQUIRED = False ! === module MOM_sum_output === CALCULATE_APE = False ! [Boolean] default = True ! If true, calculate the available potential energy of From bcdc0411327513ba219f63d0fe78db3e70445c31 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Tue, 10 Nov 2020 17:50:34 -0600 Subject: [PATCH 15/25] add all the parm files for ocean --- .../{MOM_input_025 => MOM_input_template_025} | 0 parm/mom6/MOM_input_template_050 | 947 ++++++++++++++++++ parm/mom6/MOM_input_template_100 | 808 +++++++++++++++ 3 files changed, 1755 insertions(+) rename parm/mom6/{MOM_input_025 => MOM_input_template_025} (100%) create mode 100644 parm/mom6/MOM_input_template_050 create mode 100644 parm/mom6/MOM_input_template_100 diff --git a/parm/mom6/MOM_input_025 b/parm/mom6/MOM_input_template_025 similarity index 100% rename from parm/mom6/MOM_input_025 rename to parm/mom6/MOM_input_template_025 diff --git a/parm/mom6/MOM_input_template_050 b/parm/mom6/MOM_input_template_050 new file mode 100644 index 0000000000..481dcb2454 --- /dev/null +++ b/parm/mom6/MOM_input_template_050 @@ -0,0 +1,947 @@ +/* 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_05. + + 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 = DT_DYNAM_MOM6 ! [s] + ! The (baroclinic) dynamics time step. The time-step that + ! is actually used will be an integer fraction of the + ! forcing time-step (DT_FORCING in ocean-only mode or the + ! coupling timestep in coupled mode.) +DT_THERM = DT_THERM_MOM6 ! [s] default = 1800.0 + ! The thermodynamic and tracer advection time step. + ! Ideally DT_THERM should be an integer multiple of DT + ! and less than the forcing or coupling time-step, unless + ! THERMO_SPANS_COUPLING is true, in which case DT_THERM + ! can be an integer multiple of the coupling timestep. By + ! default DT_THERM is set to DT. +THERMO_SPANS_COUPLING = MOM6_THERMO_SPAN ! [Boolean] default = False + ! If true, the MOM will take thermodynamic and tracer + ! timesteps that can be longer than the coupling timestep. + ! The actual thermodynamic timestep that is used in this + ! case is the largest integer multiple of the coupling + ! timestep that is less than or equal to DT_THERM. +HFREEZE = 20.0 ! [m] default = -1.0 + ! If HFREEZE > 0, melt potential will be computed. The actual depth + ! over which melt potential is computed will be min(HFREEZE, OBLD) + ! where OBLD is the boundary layer depth. If HFREEZE <= 0 (default) + ! melt potential will not be computed. +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the + ! the accumulated heat deficit is returned in the + ! surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +DO_GEOTHERMAL = True ! [Boolean] default = False + ! If true, apply geothermal heating. +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 = 2 ! 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. +SAVE_INITIAL_CONDS = True ! [Boolean] default = False + ! If true, write the initial conditions to a file given by IC_OUTPUT_FILE. +IC_OUTPUT_FILE = "MOM_IC" ! default = "MOM_IC" + ! The file into which to write the initial conditions. + +! === module MOM_domains === +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the + ! domain. With TRIPOLAR_N, NIGLOBAL must be even. +NIGLOBAL = NX_GLB ! + ! 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 = NY_GLB ! + ! 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. + +! === 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. + ! dumbbell - Sloshing channel with reservoirs on both ends. + ! 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. +GRID_ROTATION_ANGLE_BUGS = False ! [Boolean] default = True + ! If true, use an older algorithm to calculate the sine and + ! cosines needed rotate between grid-oriented directions and + ! true north and east. Differences arise at the tripolar fold +USE_TRIPOLAR_GEOLONB_BUG = False ! [Boolean] default = True + ! If true, use older code that incorrectly sets the longitude + ! in some points along the tripolar fold to be off by 360 degrees +! === 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. +CHANNEL_CONFIG = "list" ! default = "none" + ! A parameter that determines which set of channels are + ! restricted to specific widths. Options are: + ! none - All channels have the grid width. + ! global_1deg - Sets 16 specific channels appropriate + ! for a 1-degree model, as used in CM2G. + ! list - Read the channel locations and widths from a + ! text file, like MOM_channel_list in the MOM_SIS + ! test case. + ! file - Read open face widths everywhere from a + ! NetCDF file on the model grid. +CHANNEL_LIST_FILE = "MOM_channels_global_025" ! default = "MOM_channel_list" + ! The file from which the list of narrowed channels is read. + +! === 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 MOM_restart === +PARALLEL_RESTARTFILES = True ! [Boolean] default = False + ! If true, each processor writes its own restart file, + ! otherwise a single restart file is generated + +! === module MOM_tracer_flow_control === +USE_IDEAL_AGE_TRACER = False ! [Boolean] default = False + ! If true, use the ideal_age_example tracer package. + +! === module ideal_age_example === + +! === module MOM_coord_initialization === +COORD_CONFIG = "file" ! + ! 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 = "WOA05_pottemp_salt.nc" ! default = "temp_salt_z.nc" +TEMP_SALT_Z_INIT_FILE = "MOM6_IC_TS.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. +Z_INIT_FILE_PTEMP_VAR = "temp" ! default = "ptemp" + ! The name of the potential temperature variable in + ! TEMP_Z_INIT_FILE. +Z_INIT_FILE_SALT_VAR = "salt" ! 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 === +!Jiande NUM_DIAG_COORDS = 2 ! default = 1 +NUM_DIAG_COORDS = 1 ! default = 1 + ! The number of diagnostic vertical coordinates to use. + ! For each coordinate, an entry in DIAG_COORDS must be provided. +!Jiande DIAG_COORDS = "z Z ZSTAR", "rho2 RHO2 RHO" ! +DIAG_COORDS = "z Z ZSTAR" + ! 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_Z="FILE:interpolate_zgrid_40L.nc,interfaces=zw" +DIAG_MISVAL = -1e34 +!Jiande DIAG_COORD_DEF_RHO2 = "RFNC1:35,999.5,1028,1028.5,8.,1038.,0.0078125" ! 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_MEKE === +USE_MEKE = True ! [Boolean] default = False + ! If true, turns on the MEKE scheme which calculates + ! a sub-grid mesoscale eddy kinetic energy budget. +MEKE_GMCOEFF = 1.0 ! [nondim] default = -1.0 + ! The efficiency of the conversion of potential energy + ! into MEKE by the thickness mixing parameterization. + ! If MEKE_GMCOEFF is negative, this conversion is not + ! used or calculated. +MEKE_BGSRC = 1.0E-13 ! [W kg-1] default = 0.0 + ! A background energy source for MEKE. +MEKE_KHTH_FAC = 0.5 ! [nondim] default = 0.0 + ! A factor that maps MEKE%Kh to KhTh. +MEKE_KHTR_FAC = 0.5 ! [nondim] default = 0.0 + ! A factor that maps MEKE%Kh to KhTr. +MEKE_KHMEKE_FAC = 1.0 ! [nondim] default = 0.0 + ! A factor that maps MEKE%Kh to Kh for MEKE itself. +MEKE_VISCOSITY_COEFF_KU = 1.0 ! [nondim] default = 0.0 + ! If non-zero, is the scaling coefficient in the expression for + ! viscosity used to parameterize lateral momentum mixing by + ! unresolved eddies represented by MEKE. Can be negative to + ! represent backscatter from the unresolved eddies. +MEKE_ALPHA_RHINES = 0.15 ! [nondim] default = 0.05 + ! If positive, is a coefficient weighting the Rhines scale + ! in the expression for mixing length used in MEKE-derived diffusiviity. +MEKE_ALPHA_EADY = 0.15 ! [nondim] default = 0.05 + ! If positive, is a coefficient weighting the Eady length scale + ! in the expression for mixing length used in MEKE-derived diffusiviity. + +! === module MOM_lateral_mixing_coeffs === +USE_VARIABLE_MIXING = True ! [Boolean] default = False + ! If true, the variable mixing code will be called. This + ! allows diagnostics to be created even if the scheme is + ! not used. If KHTR_SLOPE_CFF>0 or KhTh_Slope_Cff>0, + ! this is set to true regardless of what is in the + ! parameter file. +RESOLN_SCALED_KH = True ! [Boolean] default = False + ! If true, the Laplacian lateral viscosity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +RESOLN_SCALED_KHTH = True ! [Boolean] default = False + ! If true, the interface depth diffusivity is scaled away + ! when the first baroclinic deformation radius is well + ! resolved. +KHTH_USE_EBT_STRUCT = True ! [Boolean] default = False + ! If true, uses the equivalent barotropic structure + ! as the vertical structure of thickness diffusivity. +KHTR_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula + ! for the epipycnal tracer diffusivity +USE_STORED_SLOPES = True ! [Boolean] default = False + ! If true, the isopycnal slopes are calculated once and + ! stored for re-use. This uses more memory but avoids calling + ! the equation of state more times than should be necessary. +KH_RES_FN_POWER = 100 ! [nondim] default = 2 + ! The power of dx/Ld in the Kh resolution function. Any + ! positive integer may be used, although even integers + ! are more efficient to calculate. Setting this greater + ! than 100 results in a step-function being used. +INTERPOLATE_RES_FN = False ! [Boolean] default = True + ! If true, interpolate the resolution function to the + ! velocity points from the thickness points; otherwise + ! interpolate the wave speed and calculate the resolution + ! function independently at each point. +GILL_EQUATORIAL_LD = True ! [Boolean] default = False + ! If true, uses Gill's definition of the baroclinic + ! equatorial deformation radius, otherwise, if false, use + ! Pedlosky's definition. These definitions differ by a factor + ! of 2 infront of the beta term in the denominator. Gill'sis the more appropriate definition. + +! === module MOM_set_visc === +CHANNEL_DRAG = True ! [Boolean] default = False + ! If true, the bottom drag is exerted directly on each + ! layer proportional to the fraction of the bottom it + ! overlies. +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 interpolating T/S for + ! integrals near the bathymetry in AFV pressure gradient + ! calculations. + +! === module MOM_hor_visc === +LAPLACIAN = True ! [Boolean] default = False + ! If true, use a Laplacian horizontal viscosity. +KH_VEL_SCALE = 0.01 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the grid + ! spacing to calculate the Laplacian viscosity. + ! The final viscosity is the largest of this scaled + ! viscosity, the Smagorinsky and Leith viscosities, and KH. +KH_SIN_LAT = 2000.0 ! [m2 s-1] default = 0.0 + ! The amplitude of a latidutinally-dependent background + ! viscosity of the form KH_SIN_LAT*(SIN(LAT)**KH_PWR_OF_SINE). +SMAGORINSKY_KH = True ! [Boolean] default = False + ! If true, use a Smagorinsky nonlinear eddy viscosity. +SMAG_LAP_CONST = 0.15 ! [nondim] default = 0.0 + ! The nondimensional Laplacian Smagorinsky constant, + ! often 0.15. +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. +KHTH_USE_FGNV_STREAMFUNCTION = True ! [Boolean] default = False + ! If true, use the streamfunction formulation of + ! Ferrari et al., 2010, which effectively emphasizes + ! graver vertical modes by smoothing in the vertical. +FGNV_FILTER_SCALE = 0.1 ! [not defined] default = 1.0 + ! A coefficient scaling the vertical smoothing term in the + ! Ferrari et al., 2010, streamfunction formulation. + +! === module MOM_mixed_layer_restrat === +MIXEDLAYER_RESTRAT = True ! [Boolean] default = False + ! If true, a density-gradient dependent re-stratifying + ! flow is imposed in the mixed layer. Can be used in ALE mode + ! without restriction but in layer mode can only be used if + ! BULKMIXEDLAYER is true. +FOX_KEMPER_ML_RESTRAT_COEF = 1.0 ! [nondim] default = 0.0 + ! A nondimensional coefficient that is proportional to + ! the ratio of the deformation radius to the dominant + ! lengthscale of the submesoscale mixed layer + ! instabilities, times the minimum of the ratio of the + ! mesoscale eddy kinetic energy to the large-scale + ! geostrophic kinetic energy or 1 plus the square of the + ! grid spacing over the deformation radius, as detailed + ! by Fox-Kemper et al. (2010) +MLE_FRONT_LENGTH = 200.0 ! [m] default = 0.0 + ! If non-zero, is the frontal-length scale used to calculate the + ! upscaling of buoyancy gradients that is otherwise represented + ! by the parameter FOX_KEMPER_ML_RESTRAT_COEF. If MLE_FRONT_LENGTH is + ! non-zero, it is recommended to set FOX_KEMPER_ML_RESTRAT_COEF=1.0. +MLE_USE_PBL_MLD = True ! [Boolean] default = False + ! If true, the MLE parameterization will use the mixed-layer + ! depth provided by the active PBL parameterization. If false, + ! MLE will estimate a MLD based on a density difference with the + ! surface using the parameter MLE_DENSITY_DIFF. +MLE_MLD_DECAY_TIME = 2.592E+06 ! [s] default = 0.0 + ! The time-scale for a running-mean filter applied to the mixed-layer + ! depth used in the MLE restratification parameterization. When + ! the MLD deepens below the current running-mean the running-mean + ! is instantaneously set to the current MLD. + +! === 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_geothermal === +GEOTHERMAL_SCALE = 1.0 ! [W m-2 or various] default = 0.0 + ! The constant geothermal heat flux, a rescaling + ! factor for the heat flux read from GEOTHERMAL_FILE, or + ! 0 to disable the geothermal heating. +GEOTHERMAL_FILE = "geothermal_davies2013_v1.nc" ! default = "" + ! The file from which the geothermal heating is to be + ! read, or blank to use a constant heating rate. +GEOTHERMAL_VARNAME = "geothermal_hf" ! default = "geo_heat" + ! The name of the geothermal heating variable in + ! GEOTHERMAL_FILE. + +! === 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. +INT_TIDE_DISSIPATION = True ! [Boolean] default = False + ! If true, use an internal tidal dissipation scheme to + ! drive diapycnal mixing, along the lines of St. Laurent + ! et al. (2002) and Simmons et al. (2004). +INT_TIDE_PROFILE = "POLZIN_09" ! default = "STLAURENT_02" + ! INT_TIDE_PROFILE selects the vertical profile of energy + ! dissipation with INT_TIDE_DISSIPATION. Valid values are: + ! STLAURENT_02 - Use the St. Laurent et al exponential + ! decay profile. + ! POLZIN_09 - Use the Polzin WKB-streched algebraic + ! decay profile. +INT_TIDE_DECAY_SCALE = 300.3003003003003 ! [m] default = 0.0 + ! The decay scale away from the bottom for tidal TKE with + ! the new coding when INT_TIDE_DISSIPATION is used. +KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 + ! A topographic wavenumber used with INT_TIDE_DISSIPATION. + ! The default is 2pi/10 km, as in St.Laurent et al. 2002. +KAPPA_H2_FACTOR = 0.84 ! [nondim] default = 1.0 + ! A scaling factor for the roughness amplitude with nINT_TIDE_DISSIPATION. +TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 + ! The maximum internal tide energy source availble to mix + ! above the bottom boundary layer with INT_TIDE_DISSIPATION. +READ_TIDEAMP = True ! [Boolean] default = False + ! If true, read a file (given by TIDEAMP_FILE) containing + ! the tidal amplitude with INT_TIDE_DISSIPATION. +TIDEAMP_FILE = "tidal_amplitude.nc" ! default = "tideamp.nc" + ! The path to the file containing the spatially varying + ! tidal amplitudes with INT_TIDE_DISSIPATION. +H2_FILE = "ocean_topog.nc" ! + ! The path to the file containing the sub-grid-scale + ! topographic roughness amplitude with INT_TIDE_DISSIPATION. + +! === 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. +VERTEX_SHEAR = True ! [Boolean] default = False + ! If true, do the calculations of the shear-driven mixing + ! at the cell vertices (i.e., the vorticity points). +! === 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. +RECLAIM_FRAZIL = True ! [Boolean] default = True + ! If true, try to use any frazil heat deficit to cool any + ! overlying layers down to the freezing point, thereby + ! avoiding the creation of thin ice when the SST is above + ! the freezing point. + +PRESSURE_DEPENDENT_FRAZIL = False ! [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 = MOM6_REPRO_LA ! [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. +USE_WAVES = MOM6_USE_WAVES ! [Boolean] default = False + ! If true, enables surface wave modules. +WAVE_METHOD = "SURFACE_BANDS" ! default = "EMPTY" + ! Choice of wave method, valid options include: + ! TEST_PROFILE - Prescribed from surface Stokes drift + ! and a decay wavelength. + ! SURFACE_BANDS - Computed from multiple surface values + ! and decay wavelengths. + ! DHH85 - Uses Donelan et al. 1985 empirical + ! wave spectrum with prescribed values. + ! LF17 - Infers Stokes drift profile from wind + ! speed following Li and Fox-Kemper 2017. +SURFBAND_SOURCE = "COUPLER" ! default = "EMPTY" + ! Choice of SURFACE_BANDS data mode, valid options include: + ! DATAOVERRIDE - Read from NetCDF using FMS DataOverride. + ! COUPLER - Look for variables from coupler pass + ! INPUT - Testing with fixed values. +STK_BAND_COUPLER = 3 ! default = 1 + ! STK_BAND_COUPLER is the number of Stokes drift bands in the coupler. This has + ! to be consistent with the number of Stokes drift bands in WW3, or the model + ! will fail. +SURFBAND_WAVENUMBERS = 0.04, 0.11, 0.3305 ! [rad/m] default = 0.12566 + ! Central wavenumbers for surface Stokes drift bands. +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 = CHLCLIM ! 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 === +KHTR = 50.0 ! [m2 s-1] default = 0.0 + ! The background along-isopycnal tracer diffusivity. +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. +MAX_TR_DIFFUSION_CFL = 2.0 ! [nondim] default = -1.0 + ! If positive, locally limit the along-isopycnal tracer + ! diffusivity to keep the diffusive CFL locally at or + ! below this value. The number of diffusive iterations + ! is often this value or the next greater integer. + +! === module MOM_neutral_diffusion === +! This module implements neutral diffusion of tracers +USE_NEUTRAL_DIFFUSION = True ! [Boolean] default = False + ! If true, enables the neutral diffusion module. +! === module ocean_model_init === +OCEAN_SURFACE_STAGGER = "A" ! default = "C" + ! A case-insensitive character string to indicate the + ! staggering of the surface velocity field that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'. +RESTART_CHECKSUMS_REQUIRED = False +! === module MOM_sum_output === +CALCULATE_APE = False ! [Boolean] default = True + ! If true, calculate the available potential energy of + ! the interfaces. Setting this to false reduces the + ! memory footprint of high-PE-count models dramatically. +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. +ENERGYSAVEDAYS = 1.00 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the + ! energies of the run and other globally summed diagnostics. +ENERGYSAVEDAYS_GEOMETRIC = 0.25 ! [days] default = 0.0 + ! The starting interval in units of TIMEUNIT for the first call + ! to save the energies of the run and other globally summed diagnostics. + ! The interval increases by a factor of 2. after each call to write_energy. + +! === 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. +WIND_STAGGER = "A" ! default = "C" + ! A case-insensitive character string to indicate the + ! staggering of the input wind stress field. Valid + ! values are 'A', 'B', or 'C'. +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 +LIQUID_RUNOFF_FROM_DATA = MOM6_RIVER_RUNOFF ! [Boolean] default = False + ! If true, allows liquid river runoff to be specified via + ! the data_table using the component name 'OCN'. +! === module MOM_restart === + +! === module MOM_file_parser === diff --git a/parm/mom6/MOM_input_template_100 b/parm/mom6/MOM_input_template_100 new file mode 100644 index 0000000000..976b5d69bc --- /dev/null +++ b/parm/mom6/MOM_input_template_100 @@ -0,0 +1,808 @@ +! This file was written by the model and records all non-layout or debugging parameters used at run-time. + +! === module MOM === + +! === module MOM_unit_scaling === +! Parameters for doing unit scaling of variables. +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 = DT_DYNAM_MOM6 ! [s] + ! The (baroclinic) dynamics time step. The time-step that is actually used will + ! be an integer fraction of the forcing time-step (DT_FORCING in ocean-only mode + ! or the coupling timestep in coupled mode.) +DT_THERM = DT_THERM_MOM6 ! [s] default = 1800.0 + ! The thermodynamic and tracer advection time step. Ideally DT_THERM should be + ! an integer multiple of DT and less than the forcing or coupling time-step, + ! unless THERMO_SPANS_COUPLING is true, in which case DT_THERM can be an integer + ! multiple of the coupling timestep. By default DT_THERM is set to DT. +THERMO_SPANS_COUPLING = MOM6_THERMO_SPAN ! [Boolean] default = False + ! If true, the MOM will take thermodynamic and tracer timesteps that can be + ! longer than the coupling timestep. The actual thermodynamic timestep that is + ! used in this case is the largest integer multiple of the coupling timestep + ! that is less than or equal to DT_THERM. +HFREEZE = 20.0 ! [m] default = -1.0 + ! If HFREEZE > 0, melt potential will be computed. The actual depth + ! over which melt potential is computed will be min(HFREEZE, OBLD) + ! where OBLD is the boundary layer depth. If HFREEZE <= 0 (default) + ! melt potential will not be computed. +DTBT_RESET_PERIOD = -1.0 ! [s] default = 7200.0 + ! The period between recalculations of DTBT (if DTBT <= 0). If DTBT_RESET_PERIOD + ! is negative, DTBT is set based only on information available at + ! initialization. If 0, DTBT will be set every dynamics time step. The default + ! is set by DT_THERM. This is only used if SPLIT is true. +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the accumulated heat deficit + ! is returned in the surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +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.) +MIN_SALINITY = 0.01 ! [PPT] default = 0.0 + ! The minimum value of salinity when BOUND_SALINITY=True. +C_P = 3925.0 ! [J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a constant. This is only used + ! if ENABLE_THERMODYNAMICS is true. The default value is from the TEOS-10 + ! definition of conservative temperature. +USE_PSURF_IN_EOS = False ! [Boolean] default = True + ! If true, always include the surface pressure contributions in equation of + ! state calculations. +CHECK_BAD_SURFACE_VALS = True ! [Boolean] default = False + ! If true, check the surface state for ridiculous values. +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. +DEFAULT_2018_ANSWERS = True ! [Boolean] default = False + ! This sets the default value for the various _2018_ANSWERS parameters. +WRITE_GEOM = 2 ! 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 === +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the domain. With + ! TRIPOLAR_N, NIGLOBAL must be even. +NIGLOBAL = NX_GLB ! + ! 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 = NY_GLB ! + ! 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. + +! === module MOM_hor_index === +! Sets the horizontal array index types. + +! === 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. +GRID_ROTATION_ANGLE_BUGS = False ! [Boolean] default = True + ! If true, use an older algorithm to calculate the sine and + ! cosines needed rotate between grid-oriented directions and + ! true north and east. Differences arise at the tripolar fold +USE_TRIPOLAR_GEOLONB_BUG = False ! [Boolean] default = False + ! If true, use older code that incorrectly sets the longitude in some points + ! along the tripolar fold to be off by 360 degrees. +TOPO_CONFIG = "file" ! + ! This specifies how bathymetry is specified: + ! file - read bathymetric information from the file + ! specified by (TOPO_FILE). + ! flat - flat bottom set to MAXIMUM_DEPTH. + ! bowl - an analytically specified bowl-shaped basin + ! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH. + ! spoon - a similar shape to 'bowl', but with an vertical + ! wall at the southern face. + ! halfpipe - a zonally uniform channel with a half-sine + ! profile in the meridional direction. + ! bbuilder - build topography from list of functions. + ! benchmark - use the benchmark test case topography. + ! Neverworld - use the Neverworld 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. + ! dumbbell - Sloshing channel with reservoirs on both ends. + ! shelfwave - exponential slope for shelfwave test case. + ! 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_EDITS_FILE = "topo_edits_011818.nc" ! default = "" + ! The file from which to read a list of i,j,z topography overrides. +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. +CHANNEL_CONFIG = "list" ! default = "none" + ! A parameter that determines which set of channels are + ! restricted to specific widths. Options are: + ! none - All channels have the grid width. + ! global_1deg - Sets 16 specific channels appropriate + ! for a 1-degree model, as used in CM2G. + ! list - Read the channel locations and widths from a + ! text file, like MOM_channel_list in the MOM_SIS + ! test case. + ! file - Read open face widths everywhere from a + ! NetCDF file on the model grid. +CHANNEL_LIST_FILE = "MOM_channels_SPEAR" ! default = "MOM_channel_list" + ! The file from which the list of narrowed channels is read. + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. +NK = 75 ! [nondim] + ! The number of model layers. + +! === module MOM_tracer_registry === + +! === module MOM_EOS === +TFREEZE_FORM = "MILLERO_78" ! default = "LINEAR" + ! TFREEZE_FORM determines which expression should be used for the freezing + ! point. Currently, the valid choices are "LINEAR", "MILLERO_78", "TEOS10" + +! === module MOM_restart === +PARALLEL_RESTARTFILES = True ! [Boolean] default = False + ! If true, each processor writes its own restart file, otherwise a single + ! restart file is generated + +! === module MOM_tracer_flow_control === +USE_IDEAL_AGE_TRACER = False ! [Boolean] default = False + ! If true, use the ideal_age_example tracer package. + +! === module ideal_age_example === + +! === module MOM_coord_initialization === +COORD_CONFIG = "file" ! default = "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. +REMAP_UV_USING_OLD_ALG = True ! [Boolean] default = False + ! If true, uses the old remapping-via-a-delta-z method for remapping u and v. If + ! false, uses the new method that remaps between grids described by an old and + ! new thickness. +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* - stretched geopotential z* + ! SIGMA_SHELF_ZSTAR - stretched 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 interfaces +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, initialize the layer thicknesses, temperatures, and salinities from a + ! Z-space file on a latitude-longitude grid. + +! === module MOM_initialize_layers_from_Z === +TEMP_SALT_Z_INIT_FILE = "MOM6_IC_TS.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. +Z_INIT_FILE_PTEMP_VAR = "temp" ! default = "ptemp" + ! The name of the potential temperature variable in + ! TEMP_Z_INIT_FILE. +Z_INIT_FILE_SALT_VAR = "salt" ! 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 === +!Jiande NUM_DIAG_COORDS = 2 ! default = 1 +NUM_DIAG_COORDS = 1 + ! The number of diagnostic vertical coordinates to use. + ! For each coordinate, an entry in DIAG_COORDS must be provided. +!Jiande DIAG_COORDS = "z Z ZSTAR", "rho2 RHO2 RHO" ! +DIAG_COORDS = "z Z ZSTAR" + ! 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_Z="FILE:interpolate_zgrid_40L.nc,interfaces=zw" +DIAG_MISVAL = -1e34 +!Jiande DIAG_COORD_DEF_RHO2 = "RFNC1:35,999.5,1028,1028.5,8.,1038.,0.0078125" ! 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_MEKE === +USE_MEKE = True ! [Boolean] default = False + ! If true, turns on the MEKE scheme which calculates a sub-grid mesoscale eddy + ! kinetic energy budget. +MEKE_GMCOEFF = 1.0 ! [nondim] default = -1.0 + ! The efficiency of the conversion of potential energy into MEKE by the + ! thickness mixing parameterization. If MEKE_GMCOEFF is negative, this + ! conversion is not used or calculated. +MEKE_BGSRC = 1.0E-13 ! [W kg-1] default = 0.0 + ! A background energy source for MEKE. +MEKE_KHTH_FAC = 0.8 ! [nondim] default = 0.0 + ! A factor that maps MEKE%Kh to KhTh. +MEKE_KHTR_FAC = 0.8 ! [nondim] default = 0.0 + ! A factor that maps MEKE%Kh to KhTr. +MEKE_ALPHA_RHINES = 0.05 ! [nondim] default = 0.0 + ! If positive, is a coefficient weighting the Rhines scale in the expression for + ! mixing length used in MEKE-derived diffusivity. +MEKE_ALPHA_EADY = 0.05 ! [nondim] default = 0.0 + ! If positive, is a coefficient weighting the Eady length scale in the + ! expression for mixing length used in MEKE-derived diffusivity. + +! === module MOM_lateral_mixing_coeffs === +USE_VARIABLE_MIXING = True ! [Boolean] default = False + ! If true, the variable mixing code will be called. This allows diagnostics to + ! be created even if the scheme is not used. If KHTR_SLOPE_CFF>0 or + ! KhTh_Slope_Cff>0, this is set to true regardless of what is in the parameter + ! file. +RESOLN_SCALED_KH = True ! [Boolean] default = False + ! If true, the Laplacian lateral viscosity is scaled away when the first + ! baroclinic deformation radius is well resolved. +RESOLN_SCALED_KHTH = True ! [Boolean] default = False + ! If true, the interface depth diffusivity is scaled away when the first + ! baroclinic deformation radius is well resolved. +KHTR_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula for the epipycnal tracer + ! diffusivity +USE_STORED_SLOPES = True ! [Boolean] default = False + ! If true, the isopycnal slopes are calculated once and stored for re-use. This + ! uses more memory but avoids calling the equation of state more times than + ! should be necessary. +KH_RES_FN_POWER = 100 ! [nondim] default = 2 + ! The power of dx/Ld in the Kh resolution function. Any positive integer may be + ! used, although even integers are more efficient to calculate. Setting this + ! greater than 100 results in a step-function being used. +!JW VISC_RES_FN_POWER = 2 ! [nondim] default = 100 + ! The power of dx/Ld in the Kh resolution function. Any positive integer may be + ! used, although even integers are more efficient to calculate. Setting this + ! greater than 100 results in a step-function being used. This function affects + ! lateral viscosity, Kh, and not KhTh. + +! === module MOM_set_visc === +CHANNEL_DRAG = True ! [Boolean] default = False + ! If true, the bottom drag is exerted directly on each layer proportional to the + ! fraction of the bottom it overlies. +HBBL = 10.0 ! [m] + ! The thickness of a bottom boundary layer with a viscosity of KVBBL if + ! BOTTOMDRAGLAW is not defined, or the thickness over which near-bottom + ! velocities are averaged for the drag law if BOTTOMDRAGLAW is defined but + ! LINEAR_DRAG is not. +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_thickness_diffuse === +USE_GM_WORK_BUG = True ! [Boolean] default = False + ! If true, compute the top-layer work tendency on the u-grid with the incorrect + ! sign, for legacy reproducibility. + +! === module MOM_dynamics_split_RK2 === + +! === 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 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 interpolating T/S for integrals near the + ! bathymetry in AFV pressure gradient calculations. + +! === module MOM_hor_visc === +LAPLACIAN = True ! [Boolean] default = False + ! If true, use a Laplacian horizontal viscosity. +SMAGORINSKY_KH = True ! [Boolean] default = False + ! If true, use a Smagorinsky nonlinear eddy viscosity. +SMAG_LAP_CONST = 0.15 ! [nondim] default = 0.0 + ! The nondimensional Laplacian Smagorinsky constant, often 0.15. +AH_VEL_SCALE = 0.05 ! [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. +USE_KH_BG_2D = True ! [Boolean] default = False + ! If true, read a file containing 2-d background harmonic viscosities. The final + ! viscosity is the maximum of the other terms and this background value. + +! === module MOM_vert_friction === +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_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 + ! tendency by 1+BEBT when calculating the transport. The default (false) is to + ! use a predictor continuity step to find the pressure field, and then to do a + ! corrector continuity step using a weighted average of the old and new + ! velocities, with weights of (1-BEBT) and BEBT. +BT_STRONG_DRAG = True ! [Boolean] default = False + ! If true, use a stronger estimate of the retarding effects of strong bottom + ! drag, by making it implicit with the barotropic time-step instead of implicit + ! with the baroclinic time-step and dividing by the number of barotropic steps. +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. + +! === module MOM_mixed_layer_restrat === +MIXEDLAYER_RESTRAT = True ! [Boolean] default = False + ! If true, a density-gradient dependent re-stratifying flow is imposed in the + ! mixed layer. Can be used in ALE mode without restriction but in layer mode can + ! only be used if BULKMIXEDLAYER is true. +FOX_KEMPER_ML_RESTRAT_COEF = 60.0 ! [nondim] default = 0.0 + ! A nondimensional coefficient that is proportional to the ratio of the + ! deformation radius to the dominant lengthscale of the submesoscale mixed layer + ! instabilities, times the minimum of the ratio of the mesoscale eddy kinetic + ! energy to the large-scale geostrophic kinetic energy or 1 plus the square of + ! the grid spacing over the deformation radius, as detailed by Fox-Kemper et al. + ! (2010) +MLE_USE_PBL_MLD = True ! [Boolean] default = False + ! If true, the MLE parameterization will use the mixed-layer depth provided by + ! the active PBL parameterization. If false, MLE will estimate a MLD based on a + ! density difference with the surface using the parameter MLE_DENSITY_DIFF. +MLE_MLD_DECAY_TIME = 2.592E+06 ! [s] default = 0.0 + ! The time-scale for a running-mean filter applied to the mixed-layer depth used + ! in the MLE restratification parameterization. When the MLD deepens below the + ! current running-mean the running-mean is instantaneously set to the current + ! MLD. + +! === 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. +KD_MIN_TR = 2.0E-06 ! [m2 s-1] default = 2.0E-06 + ! A minimal diffusivity that should always be applied to tracers, especially in + ! massless layers near the bottom. The default is 0.1*KD. + +! === module MOM_CVMix_KPP === +! This is the MOM wrapper to CVMix:KPP +! See http://cvmix.github.io/ + +! === module MOM_tidal_mixing === +! Vertical Tidal Mixing Parameterization +INT_TIDE_DISSIPATION = True ! [Boolean] default = False + ! If true, use an internal tidal dissipation scheme to drive diapycnal mixing, + ! along the lines of St. Laurent et al. (2002) and Simmons et al. (2004). +INT_TIDE_PROFILE = "POLZIN_09" ! default = "STLAURENT_02" + ! INT_TIDE_PROFILE selects the vertical profile of energy dissipation with + ! INT_TIDE_DISSIPATION. Valid values are: + ! STLAURENT_02 - Use the St. Laurent et al exponential + ! decay profile. + ! POLZIN_09 - Use the Polzin WKB-stretched algebraic + ! decay profile. +KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 + ! A topographic wavenumber used with INT_TIDE_DISSIPATION. The default is 2pi/10 + ! km, as in St.Laurent et al. 2002. +KAPPA_H2_FACTOR = 0.84 ! [nondim] default = 1.0 + ! A scaling factor for the roughness amplitude with INT_TIDE_DISSIPATION. +TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 + ! The maximum internal tide energy source available to mix above the bottom + ! boundary layer with INT_TIDE_DISSIPATION. +READ_TIDEAMP = True ! [Boolean] default = False + ! If true, read a file (given by TIDEAMP_FILE) containing the tidal amplitude + ! with INT_TIDE_DISSIPATION. +TIDEAMP_FILE = "tidal_amplitude.nc" ! default = "tideamp.nc" + ! The path to the file containing the spatially varying tidal amplitudes with + ! INT_TIDE_DISSIPATION. +H2_FILE = "topog.nc" ! + ! The path to the file containing the sub-grid-scale topographic roughness + ! amplitude with INT_TIDE_DISSIPATION. + +! === module MOM_CVMix_conv === +! Parameterization of enhanced mixing due to convection via CVMix + +! === 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, diffusivity 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 for an isopycnal layer-formulation. + +! === module MOM_bkgnd_mixing === +! Adding static vertical background mixing coefficients +KD = 2.0E-05 ! [m2 s-1] default = 0.0 + ! 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 = 2.0E-07 + ! The minimum diapycnal diffusivity. +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. +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. +VERTEX_SHEAR = True ! [Boolean] default = False + ! If true, do the calculations of the shear-driven mixing + ! at the cell vertices (i.e., the vorticity points). +KD_TRUNC_KAPPA_SHEAR = 2.0E-07 ! [m2 s-1] default = 2.0E-07 + ! The value of shear-driven diffusivity that is considered negligible and is + ! rounded down to 0. The default is 1% of KD_KAPPA_SHEAR_0. +KAPPA_SHEAR_ITER_BUG = True ! [Boolean] default = False + ! If true, use an older, dimensionally inconsistent estimate of the derivative + ! of diffusivity with energy in the Newton's method iteration. The bug causes + ! undercorrections when dz > 1 m. +KAPPA_SHEAR_ALL_LAYER_TKE_BUG = True ! [Boolean] default = False + ! If true, report back the latest estimate of TKE instead of the time average + ! TKE when there is mass in all layers. Otherwise always report the time + ! averaged TKE, as is currently done when there are some massless layers. + +! === module MOM_CVMix_shear === +! Parameterization of shear-driven turbulence via CVMix (various options) + +! === module MOM_CVMix_ddiff === +! Parameterization of mixing due to double diffusion processes via CVMix + +! === module MOM_diabatic_aux === +! The following parameters are used for auxiliary diabatic processes. +PRESSURE_DEPENDENT_FRAZIL = false ! [Boolean] default = False + ! If true, use a pressure dependent freezing temperature when making frazil. The + ! default is false, which will be faster but is inappropriate with ice-shelf + ! cavities. +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by OPACITY_SCHEME to determine + ! the e-folding depth of incoming short wave radiation. +CHL_FILE = CHLCLIM + ! 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. + +! === module MOM_energetic_PBL === +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). +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. +EPBL_MSTAR_SCHEME = "OM4" ! default = "CONSTANT" + ! EPBL_MSTAR_SCHEME selects the method for setting mstar. Valid values are: + ! CONSTANT - Use a fixed mstar given by MSTAR + ! OM4 - Use L_Ekman/L_Obukhov in the sabilizing limit, as in OM4 + ! REICHL_H18 - Use the scheme documented in Reichl & Hallberg, 2018. +MSTAR_CAP = 10.0 ! [nondim] default = -1.0 + ! If this value is positive, it sets the maximum value of mstar allowed in ePBL. + ! (This is not used if EPBL_MSTAR_SCHEME = CONSTANT). +MSTAR2_COEF1 = 0.29 ! [nondim] default = 0.3 + ! Coefficient in computing mstar when rotation and stabilizing effects are both + ! important (used if EPBL_MSTAR_SCHEME = OM4). +MSTAR2_COEF2 = 0.152 ! [nondim] default = 0.085 + ! Coefficient in computing mstar when only rotation limits the total mixing + ! (used if EPBL_MSTAR_SCHEME = OM4) +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. +MSTAR_CONV_ADJ = 0.667 ! [nondim] default = 0.0 + ! Coefficient used for reducing mstar during convection due to reduction of + ! stable density gradient. +USE_MLD_ITERATION = False ! [Boolean] default = True + ! A logical that specifies whether or not to use the distance to the bottom of + ! the actively turbulent boundary layer to help set the EPBL length scale. +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. +MIX_LEN_EXPONENT = 1.0 ! [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. This is only used if + ! USE_MLD_ITERATION is True. +USE_LA_LI2016 = MOM6_REPRO_LA ! [nondim] default = False + ! A logical to use the Li et al. 2016 (submitted) formula to determine the + ! Langmuir number. +EPBL_LANGMUIR_SCHEME = "ADDITIVE" ! default = "NONE" + ! EPBL_LANGMUIR_SCHEME selects the method for including Langmuir turbulence. + ! Valid values are: + ! NONE - Do not do any extra mixing due to Langmuir turbulence + ! RESCALE - Use a multiplicative rescaling of mstar to account for Langmuir + ! turbulence + ! ADDITIVE - Add a Langmuir turblence contribution to mstar to other + ! contributions +USE_WAVES = MOM6_USE_WAVES ! [Boolean] default = False + ! If true, enables surface wave modules. +WAVE_METHOD = "SURFACE_BANDS" ! default = "EMPTY" + ! Choice of wave method, valid options include: + ! TEST_PROFILE - Prescribed from surface Stokes drift + ! and a decay wavelength. + ! SURFACE_BANDS - Computed from multiple surface values + ! and decay wavelengths. + ! DHH85 - Uses Donelan et al. 1985 empirical + ! wave spectrum with prescribed values. + ! LF17 - Infers Stokes drift profile from wind + ! speed following Li and Fox-Kemper 2017. +SURFBAND_SOURCE = "COUPLER" ! default = "EMPTY" + ! Choice of SURFACE_BANDS data mode, valid options include: + ! DATAOVERRIDE - Read from NetCDF using FMS DataOverride. + ! COUPLER - Look for variables from coupler pass + ! INPUT - Testing with fixed values. +STK_BAND_COUPLER = 3 ! default = 1 + ! STK_BAND_COUPLER is the number of Stokes drift bands in the coupler. This has + ! to be consistent with the number of Stokes drift bands in WW3, or the model + ! will fail. +SURFBAND_WAVENUMBERS = 0.04, 0.11, 0.3305 ! [rad/m] default = 0.12566 + ! Central wavenumbers for surface Stokes drift bands. +LT_ENHANCE_COEF = 0.044 ! [nondim] default = 0.447 + ! Coefficient for Langmuir enhancement of mstar +LT_ENHANCE_EXP = -1.5 ! [nondim] default = -1.33 + ! Exponent for Langmuir enhancementt of mstar +LT_MOD_LAC1 = 0.0 ! [nondim] default = -0.87 + ! Coefficient for modification of Langmuir number due to MLD approaching Ekman + ! depth. +LT_MOD_LAC4 = 0.0 ! [nondim] default = 0.95 + ! Coefficient for modification of Langmuir number due to ratio of Ekman to + ! stable Obukhov depth. +LT_MOD_LAC5 = 0.22 ! [nondim] default = 0.95 + ! Coefficient for modification of Langmuir number due to ratio of Ekman to + ! unstable Obukhov depth. + +! === module MOM_regularize_layers === + +! === module MOM_opacity === +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 the greater + ! of 1 or MAX_TR_DIFFUSION_CFL iteration. + +! === module MOM_neutral_diffusion === +! This module implements neutral diffusion of tracers +USE_NEUTRAL_DIFFUSION = True ! [Boolean] default = False + ! If true, enables the neutral diffusion module. + +! === module MOM_lateral_boundary_diffusion === +! This module implements lateral diffusion of tracers near boundaries + +! === module MOM_sum_output === +CALCULATE_APE = False ! [Boolean] default = True + ! If true, calculate the available potential energy of the interfaces. Setting + ! this to false reduces the memory footprint of high-PE-count models + ! dramatically. +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. +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 ocean_model_init === +OCEAN_SURFACE_STAGGER = "A" ! default = "C" + ! A case-insensitive character string to indicate the + ! staggering of the surface velocity field that is + ! returned to the coupler. Valid values include + ! 'A', 'B', or 'C'. + +! === 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. +WIND_STAGGER = "A" ! default = "C" + ! A case-insensitive character string to indicate the + ! staggering of the input wind stress field. Valid + ! values are 'A', 'B', or 'C'. +CD_TIDES = 0.0018 ! [nondim] default = 1.0E-04 + ! The drag coefficient that applies to the tides. +GUST_CONST = 0.02 ! [Pa] default = 0.0 + ! The background gustiness in the winds. +FIX_USTAR_GUSTLESS_BUG = False ! [Boolean] default = True + ! If true correct a bug in the time-averaging of the gustless wind friction + ! velocity + +! === module MOM_restart === + +! === module MOM_file_parser === From 70c385c8e0bc40ca00ad015250d170d83c1919cd Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Tue, 10 Nov 2020 18:40:24 -0600 Subject: [PATCH 16/25] updates for MOM6 to use same MOM_input templates as used in rt tests/parm dir --- parm/parm_fv3diag/data_table | 2 +- ush/forecast_postdet.sh | 8 ---- ush/parsing_namelists_MOM6.sh | 71 ++++++++++++++++++++++++++++++++++- 3 files changed, 71 insertions(+), 10 deletions(-) diff --git a/parm/parm_fv3diag/data_table b/parm/parm_fv3diag/data_table index 82f2ca1ec6..cc7fc5b127 100644 --- a/parm/parm_fv3diag/data_table +++ b/parm/parm_fv3diag/data_table @@ -1 +1 @@ -"OCN", "runoff", "runoff", "./INPUT/runoff.daitren.clim.1440x1080.v20180328.nc", "none" , 1.0 +"OCN", "runoff", "runoff", "./INPUT/FRUNOFF", "none" , 1.0 diff --git a/ush/forecast_postdet.sh b/ush/forecast_postdet.sh index 196b8dcd3c..365fa9c8e7 100755 --- a/ush/forecast_postdet.sh +++ b/ush/forecast_postdet.sh @@ -586,14 +586,6 @@ MOM6_postdet() # Copy MOM6 fixed files $NCP -pf $FIXmom/$OCNRES/* $DATA/INPUT/ - # Copy MOM6 input file - if [ $cplwav = ".true." ] ; then - $NCP -pf $HOMEgfs/parm/mom6/MOM_input_${OCNRES}_wav $DATA/INPUT/MOM_input - else - $NCP -pf $HOMEgfs/parm/mom6/MOM_input_$OCNRES $DATA/INPUT/MOM_input - fi - #TODO: update to make MOM_input configurable - # Copy coupled grid_spec $NCP -pf $FIX_DIR/fix_cpl/a${CASE}o${OCNRES}/grid_spec.nc $DATA/INPUT/ diff --git a/ush/parsing_namelists_MOM6.sh b/ush/parsing_namelists_MOM6.sh index da0653ae3d..2af5e1d457 100644 --- a/ush/parsing_namelists_MOM6.sh +++ b/ush/parsing_namelists_MOM6.sh @@ -3,11 +3,59 @@ MOM6_namelists(){ # MOM6 namelists generation +OCNRES=${OCNRES:-"025"} +MOM_INPUT=MOM_input_template_$OCNRES + +#TODO: Make these variables configurable + +#Set to False for restart reproducibility +MOM6_REPRO_LA='True' +MOM6_THERMO_SPAN='False' + +if [ $cplwav = ".true." ] ; then + MOM6_USE_WAVES='True' +else + MOM6_USE_WAVES='False' +fi + +if [ $OCNRES = '025' ]; then + NX_GLB=1440 + NY_GLB=1080 + DT_DYNAM_MOM6='900' + DT_THERM_MOM6='1800' + CHLCLIM="seawifs-clim-1997-2010.${NX_GLB}x${NY_GLB}.v20180328.nc" + FRUNOFF="runoff.daitren.clim.${NX_GLB}x${NY_GLB}.v20180328.nc" + MOM6_RIVER_RUNOFF='True' + MOM6_RESTART_SETTING="r" +elif [ $OCNRES = '050' ]; then + NX_GLB=720 + NY_GLB=576 + DT_DYNAM_MOM6='1800' + DT_THERM_MOM6='3600' + CHLCLIM="seawifs-clim-1997-2010.${NX_GLB}x${NY_GLB}.v20180328.nc" + FRUNOFF="runoff.daitren.clim.${NX_GLB}x${NY_GLB}.v20180328.nc" + MOM6_RESTART_SETTING='n' + MOM6_RIVER_RUNOFF='True' +elif [ $OCNRES = '100' ]; then + NX_GLB=360 + NY_GLB=320 + DT_DYNAM_MOM6='1800' + DT_THERM_MOM6='3600' + FRUNOFF="" + CHLCLIM="seawifs_1998-2006_smoothed_2X.nc" + MOM6_RESTART_SETTING='n' + MOM6_RIVER_RUNOFF='False' +else + echo "FATAL ERROR: do not have MOM6 settings defined for desired OCNRES=$OCNRES" + exit 1 +fi + + cat >> input.nml < $DATA/INPUT/MOM_input +rm $DATA/INPUT/MOM_input_template_$OCNRES + +#data table for runoff: +DATA_TABLE=${DATA_TABLE:-$PARM_FV3DIAG/data_table} +$NCP $DATA_TABLE $DATA/data_table_template +sed -e "s/FRUNOFF/$FRUNOFF/g" $DATA/data_table_template > $DATA/data_table +rm $DATA/data_table_template + } From 1eb4ff48457d1362a847ab5a96b4717c27238932 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Tue, 24 Nov 2020 14:38:32 -0600 Subject: [PATCH 17/25] add one-step option to no wave case --- workflow/cases/coupled_free_forecast.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/workflow/cases/coupled_free_forecast.yaml b/workflow/cases/coupled_free_forecast.yaml index 8ade1237f0..300cde8143 100644 --- a/workflow/cases/coupled_free_forecast.yaml +++ b/workflow/cases/coupled_free_forecast.yaml @@ -7,6 +7,7 @@ case: SDATE: 2013-04-01t00:00:00 EDATE: 2013-04-01t00:00:00 + onestep: .true. cplflx: .true. print_esmf: .true. nems_temp: 'med_atm_ocn_ice' From 5cc684e0fef753a57cad5e1225801a63d71591e3 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Wed, 2 Dec 2020 08:38:48 -0600 Subject: [PATCH 18/25] updates to make nems.configure template files more closely match ufs-weather-model tests/parm templates for easier updates and also added updates for frac grid/not frac grid option --- ush/cplvalidate.sh | 2 + ush/forecast_postdet.sh | 4 +- ush/nems.configure.cpld.IN | 102 +++++++++++++++ ush/nems.configure.cpld_wave.IN | 116 ++++++++++++++++++ ush/nems.configure.med_atm_ocn_ice.IN | 21 ++-- ush/nems.configure.med_atm_ocn_ice_wav.IN | 22 ++-- ush/nems.configure.medcold_atm_ocn_ice.IN | 6 +- ush/nems.configure.medcold_atm_ocn_ice_wav.IN | 6 +- ush/nems_configure.sh | 20 +-- workflow/cases/coupled_free_forecast.yaml | 4 +- .../cases/coupled_free_forecast_wave.yaml | 4 +- workflow/config/fcst.yaml | 2 +- workflow/defaults/settings.yaml | 3 +- 13 files changed, 269 insertions(+), 43 deletions(-) create mode 100644 ush/nems.configure.cpld.IN create mode 100644 ush/nems.configure.cpld_wave.IN diff --git a/ush/cplvalidate.sh b/ush/cplvalidate.sh index ba5ec7b88a..958684a0db 100755 --- a/ush/cplvalidate.sh +++ b/ush/cplvalidate.sh @@ -14,9 +14,11 @@ case $confignamevarfornems in 'atm') combination=.false..false..false..false..false.;; 'datm') combination=.true..true..false..false..false.;; 'med_atm_ocn_ice') combination=.true..true..true..false..false.;; + 'cpld') combination=.true..true..true..false..false.;; 'blocked_atm_wav') combination=.true..false..false..true..false.;; 'leapfrog_atm_wav')combination=.true..false..false..true..false.;; 'med_atm_ocn_ice_wav') combination=.true..true..true..true..false.;; + 'cpld_wav') combination=.true..true..true..true..false.;; 'medcold_atm_ocn_ice_wav') combination=.true..true..true..true..false.;; 'med_atm_ocn_ice_wav1way') combination=.true..true..true..true..false.;; 'med_atm_ocn_ice_wav1waywcurr') combination=.true..true..true..true..false.;; diff --git a/ush/forecast_postdet.sh b/ush/forecast_postdet.sh index 569bfc9010..85e159d289 100755 --- a/ush/forecast_postdet.sh +++ b/ush/forecast_postdet.sh @@ -591,7 +591,7 @@ MOM6_postdet() # Copy mediator restart files to RUNDIR if [ $inistep = 'restart' ]; then - $NCP $ROTDIR/$CDUMP.$PDY/$cyc/ufs.s2s*.nc $DATA/ + $NCP $ROTDIR/$CDUMP.$PDY/$cyc/ufs.cpld*.nc $DATA/ $NCP $ROTDIR/$CDUMP.$PDY/$cyc/rpointer.cpl $DATA/ fi @@ -623,7 +623,7 @@ MOM6_out() [[ ! -d $COMOUT ]] && mkdir -m 775 -p $COMOUT if [ $inistep = 'cold' ]; then - cp $DATA/ufs.s2s.cold.cpl.r.*.nc $COMOUT/ + cp $DATA/ufs.cpld.cold.cpl.r.*.nc $COMOUT/ cp $DATA/rpointer.cpl $COMOUT/ status=$? exit $status diff --git a/ush/nems.configure.cpld.IN b/ush/nems.configure.cpld.IN new file mode 100644 index 0000000000..e430f370f6 --- /dev/null +++ b/ush/nems.configure.cpld.IN @@ -0,0 +1,102 @@ +############################################# +#### NEMS Run-Time Configuration File ##### +############################################# + +# EARTH # +EARTH_component_list: MED ATM OCN ICE +EARTH_attributes:: + Verbosity = 0 +:: + +# MED # +MED_model: @[med_model] +MED_petlist_bounds: @[med_petlist_bounds] +:: + +# ATM # +ATM_model: @[atm_model] +ATM_petlist_bounds: @[atm_petlist_bounds] +ATM_attributes:: + Verbosity = 0 + DumpFields = @[DumpFields] + ProfileMemory = false + OverwriteSlice = true +:: + +# OCN # +OCN_model: @[ocn_model] +OCN_petlist_bounds: @[ocn_petlist_bounds] +OCN_attributes:: + Verbosity = 0 + DumpFields = @[DumpFields] + ProfileMemory = false + OverwriteSlice = true +:: + +# ICE # +ICE_model: @[ice_model] +ICE_petlist_bounds: @[ice_petlist_bounds] +ICE_attributes:: + Verbosity = 0 + DumpFields = @[DumpFields] + ProfileMemory = false + OverwriteSlice = true + mesh_ice = @[MESHICE] + stop_n = @[RESTART_N] + stop_option = nhours + stop_ymd = -999 +:: + +# CMEPS warm run sequence +runSeq:: +@@[coupling_interval_slow_sec] + MED med_phases_prep_ocn_accum_avg + MED -> OCN :remapMethod=redist + OCN + @@[coupling_interval_fast_sec] + MED med_phases_prep_atm + MED med_phases_prep_ice + MED -> ATM :remapMethod=redist + MED -> ICE :remapMethod=redist + ATM + ICE + ATM -> MED :remapMethod=redist + ICE -> MED :remapMethod=redist + MED med_fraction_set + MED med_phases_prep_ocn_map + MED med_phases_prep_ocn_merge + MED med_phases_prep_ocn_accum_fast + MED med_phases_profile + @ + OCN -> MED :remapMethod=redist + MED med_phases_restart_write +@ +:: + +# CMEPS variables + +DRIVER_attributes:: + mediator_read_restart = @[use_coldstart] +:: +MED_attributes:: + ATM_model = @[atm_model] + ICE_model = @[ice_model] + OCN_model = @[ocn_model] + history_n = 0 + history_option = nhours + history_ymd = -999 + coupling_mode = @[CPLMODE] +:: +ALLCOMP_attributes:: + ScalarFieldCount = 2 + ScalarFieldIdxGridNX = 1 + ScalarFieldIdxGridNY = 2 + ScalarFieldName = cpl_scalars + start_type = @[RUNTYPE] + case_name = ./RESTART/ufs.cpld + restart_n = @[RESTART_N] + restart_option = nhours + restart_ymd = -999 + dbug_flag = @[cap_dbug_flag] + use_coldstart = @[use_coldstart] +:: diff --git a/ush/nems.configure.cpld_wave.IN b/ush/nems.configure.cpld_wave.IN new file mode 100644 index 0000000000..9d4d6dde02 --- /dev/null +++ b/ush/nems.configure.cpld_wave.IN @@ -0,0 +1,116 @@ +############################################# +#### NEMS Run-Time Configuration File ##### +############################################# + +# EARTH # +EARTH_component_list: MED ATM OCN ICE WAV +EARTH_attributes:: + Verbosity = 0 +:: + +# MED # +MED_model: @[med_model] +MED_petlist_bounds: @[med_petlist_bounds] +:: + +# ATM # +ATM_model: @[atm_model] +ATM_petlist_bounds: @[atm_petlist_bounds] +ATM_attributes:: + Verbosity = 0 + DumpFields = @[DumpFields] + ProfileMemory = false + OverwriteSlice = true +:: + +# OCN # +OCN_model: @[ocn_model] +OCN_petlist_bounds: @[ocn_petlist_bounds] +OCN_attributes:: + Verbosity = 0 + DumpFields = @[DumpFields] + ProfileMemory = false + OverwriteSlice = true +:: + +# ICE # +ICE_model: @[ice_model] +ICE_petlist_bounds: @[ice_petlist_bounds] +ICE_attributes:: + Verbosity = 0 + DumpFields = @[DumpFields] + ProfileMemory = false + OverwriteSlice = true + mesh_ice = @[MESHICE] + stop_n = @[RESTART_N] + stop_option = nhours + stop_ymd = -999 +:: + +# WAV # +WAV_model: @[wav_model] +WAV_petlist_bounds: @[wav_petlist_bounds] +WAV_attributes:: + Verbosity = 0 + OverwriteSlice = false +:: + +# CMEPS warm run sequence +runSeq:: +@@[coupling_interval_slow_sec] + MED med_phases_prep_ocn_accum_avg + MED -> OCN :remapMethod=redist + OCN -> WAV + WAV -> OCN :srcMaskValues=1 + OCN + @@[coupling_interval_fast_sec] + MED med_phases_prep_atm + MED med_phases_prep_ice + MED -> ATM :remapMethod=redist + MED -> ICE :remapMethod=redist + WAV -> ATM :srcMaskValues=1 + ATM -> WAV + ICE -> WAV + ATM + ICE + WAV + ATM -> MED :remapMethod=redist + ICE -> MED :remapMethod=redist + MED med_fraction_set + MED med_phases_prep_ocn_map + MED med_phases_prep_ocn_merge + MED med_phases_prep_ocn_accum_fast + MED med_phases_profile + @ + OCN -> MED :remapMethod=redist + MED med_phases_restart_write +@ +:: + +# CMEPS variables + +DRIVER_attributes:: + mediator_read_restart = @[use_coldstart] +:: +MED_attributes:: + ATM_model = @[atm_model] + ICE_model = @[ice_model] + OCN_model = @[ocn_model] + history_n = 0 + history_option = nhours + history_ymd = -999 + coupling_mode = @[CPLMODE] +:: +ALLCOMP_attributes:: + ScalarFieldCount = 2 + ScalarFieldIdxGridNX = 1 + ScalarFieldIdxGridNY = 2 + ScalarFieldName = cpl_scalars + start_type = @[RUNTYPE] + case_name = ./RESTART/ufs.cpld + restart_n = @[RESTART_N] + restart_option = nhours + restart_ymd = -999 + dbug_flag = @[cap_dbug_flag] + use_coldstart = @[use_coldstart] +:: diff --git a/ush/nems.configure.med_atm_ocn_ice.IN b/ush/nems.configure.med_atm_ocn_ice.IN index fc5e4c2ac9..e430f370f6 100755 --- a/ush/nems.configure.med_atm_ocn_ice.IN +++ b/ush/nems.configure.med_atm_ocn_ice.IN @@ -31,7 +31,6 @@ OCN_attributes:: DumpFields = @[DumpFields] ProfileMemory = false OverwriteSlice = true - dbug_flag = 0 :: # ICE # @@ -43,18 +42,18 @@ ICE_attributes:: ProfileMemory = false OverwriteSlice = true mesh_ice = @[MESHICE] - stop_n = @[FHMAX] + stop_n = @[RESTART_N] stop_option = nhours stop_ymd = -999 :: # CMEPS warm run sequence runSeq:: -@@[CPL_SLOW] +@@[coupling_interval_slow_sec] MED med_phases_prep_ocn_accum_avg MED -> OCN :remapMethod=redist OCN - @@[CPL_FAST] + @@[coupling_interval_fast_sec] MED med_phases_prep_atm MED med_phases_prep_ice MED -> ATM :remapMethod=redist @@ -77,7 +76,7 @@ runSeq:: # CMEPS variables DRIVER_attributes:: - mediator_read_restart = @[read_mediator] + mediator_read_restart = @[use_coldstart] :: MED_attributes:: ATM_model = @[atm_model] @@ -86,18 +85,18 @@ MED_attributes:: history_n = 0 history_option = nhours history_ymd = -999 - coupling_mode = nems_orig + coupling_mode = @[CPLMODE] :: ALLCOMP_attributes:: ScalarFieldCount = 2 ScalarFieldIdxGridNX = 1 ScalarFieldIdxGridNY = 2 ScalarFieldName = cpl_scalars - start_type = startup - case_name = ufs.s2s - restart_n = @[restart_interval_hours] + start_type = @[RUNTYPE] + case_name = ./RESTART/ufs.cpld + restart_n = @[RESTART_N] restart_option = nhours restart_ymd = -999 - dbug_flag = 0 - use_coldstart = @[read_mediator] + dbug_flag = @[cap_dbug_flag] + use_coldstart = @[use_coldstart] :: diff --git a/ush/nems.configure.med_atm_ocn_ice_wav.IN b/ush/nems.configure.med_atm_ocn_ice_wav.IN index b1fa27e848..9d4d6dde02 100644 --- a/ush/nems.configure.med_atm_ocn_ice_wav.IN +++ b/ush/nems.configure.med_atm_ocn_ice_wav.IN @@ -42,9 +42,9 @@ ICE_attributes:: ProfileMemory = false OverwriteSlice = true mesh_ice = @[MESHICE] - stop_n = @[FHMAX] + stop_n = @[RESTART_N] stop_option = nhours - stop_ymd = -999 + stop_ymd = -999 :: # WAV # @@ -57,13 +57,13 @@ WAV_attributes:: # CMEPS warm run sequence runSeq:: -@@[CPL_SLOW] +@@[coupling_interval_slow_sec] MED med_phases_prep_ocn_accum_avg MED -> OCN :remapMethod=redist OCN -> WAV WAV -> OCN :srcMaskValues=1 OCN - @@[CPL_FAST] + @@[coupling_interval_fast_sec] MED med_phases_prep_atm MED med_phases_prep_ice MED -> ATM :remapMethod=redist @@ -90,7 +90,7 @@ runSeq:: # CMEPS variables DRIVER_attributes:: - mediator_read_restart = @[read_mediator] + mediator_read_restart = @[use_coldstart] :: MED_attributes:: ATM_model = @[atm_model] @@ -99,18 +99,18 @@ MED_attributes:: history_n = 0 history_option = nhours history_ymd = -999 - coupling_mode = nems_orig + coupling_mode = @[CPLMODE] :: ALLCOMP_attributes:: ScalarFieldCount = 2 ScalarFieldIdxGridNX = 1 ScalarFieldIdxGridNY = 2 ScalarFieldName = cpl_scalars - start_type = startup - case_name = ufs.s2s - restart_n = @[restart_interval_hours] + start_type = @[RUNTYPE] + case_name = ./RESTART/ufs.cpld + restart_n = @[RESTART_N] restart_option = nhours restart_ymd = -999 - dbug_flag = 0 - use_coldstart = @[read_mediator] + dbug_flag = @[cap_dbug_flag] + use_coldstart = @[use_coldstart] :: diff --git a/ush/nems.configure.medcold_atm_ocn_ice.IN b/ush/nems.configure.medcold_atm_ocn_ice.IN index 5c9e736c42..d54f6596a6 100644 --- a/ush/nems.configure.medcold_atm_ocn_ice.IN +++ b/ush/nems.configure.medcold_atm_ocn_ice.IN @@ -51,8 +51,8 @@ ICE_attributes:: # CMEPS cold run sequence runSeq:: - @@[CPL_SLOW] - @@[CPL_FAST] + @@[coupling_interval_slow_sec] + @@[coupling_interval_fast_sec] MED med_phases_prep_atm MED -> ATM :remapMethod=redist ATM @@ -94,7 +94,7 @@ ALLCOMP_attributes:: ScalarFieldIdxGridNY = 2 ScalarFieldName = cpl_scalars start_type = startup - case_name = ufs.s2s.cold + case_name = ufs.cpld.cold restart_n = 1 restart_option = nhours restart_ymd = -999 diff --git a/ush/nems.configure.medcold_atm_ocn_ice_wav.IN b/ush/nems.configure.medcold_atm_ocn_ice_wav.IN index cd011889e3..53cfc8c09d 100644 --- a/ush/nems.configure.medcold_atm_ocn_ice_wav.IN +++ b/ush/nems.configure.medcold_atm_ocn_ice_wav.IN @@ -58,10 +58,10 @@ WAV_attributes:: # CMEPS cold run sequence runSeq:: - @@[CPL_SLOW] + @@[coupling_interval_slow_sec] OCN -> WAV WAV -> OCN ::srcMaskValues=1 - @@[CPL_FAST] + @@[coupling_interval_fast_sec] MED med_phases_prep_atm MED -> ATM :remapMethod=redist WAV -> ATM :srcMaskValues=1 @@ -107,7 +107,7 @@ ALLCOMP_attributes:: ScalarFieldIdxGridNY = 2 ScalarFieldName = cpl_scalars start_type = startup - case_name = ufs.s2s.cold + case_name = ufs.cpld.cold restart_n = 1 restart_option = nhours restart_ymd = -999 diff --git a/ush/nems_configure.sh b/ush/nems_configure.sh index 9628b21f08..dd2f88071c 100755 --- a/ush/nems_configure.sh +++ b/ush/nems_configure.sh @@ -18,6 +18,12 @@ fi # Setup nems.configure DumpFields=${NEMSDumpFields:-false} +cap_dbug_flag=${cap_dbug_flag:-0} +if [ $warm_start = ".true." ]; then + cmeps_run_type='startup' +else + cmeps_run_type='continue' +fi if [[ $inistep = "cold" ]]; then restart_interval=0 coldstart=true # this is the correct setting @@ -61,11 +67,15 @@ if [ $cplflx = .true. ]; then sed -i -e "s;@\[ocn_model\];$OCN_model;g" tmp1 sed -i -e "s;@\[ocn_petlist_bounds\];$ocn_petlist_bounds;g" tmp1 sed -i -e "s;@\[DumpFields\];$DumpFields;g" tmp1 + sed -i -e "s;@\[cap_dbug_flag\];$cap_dbug_flag;g" tmp1 sed -i -e "s;@\[coldstart\];$coldstart;g" tmp1 + sed -i -e "s;@\[use_coldstart\];$use_coldstart;g" tmp1 + sed -i -e "s;@\[RUNTYPE\];$cmeps_run_type;g" tmp1 + sed -i -e "s;@\[CPLMODE\];$cplmode;g" tmp1 sed -i -e "s;@\[restart_interval\];$restart_interval;g" tmp1 - sed -i -e "s;@\[CPL_SLOW\];$CPL_SLOW;g" tmp1 - sed -i -e "s;@\[CPL_FAST\];$CPL_FAST;g" tmp1 - sed -i -e "s;@\[restart_interval_hours\];$restart_interval_nems;g" tmp1 + sed -i -e "s;@\[coupling_interval_slow_sec\];$CPL_SLOW;g" tmp1 + sed -i -e "s;@\[coupling_interval_fast_sec\];$CPL_FAST;g" tmp1 + sed -i -e "s;@\[RESTART_N\];$restart_interval_nems;g" tmp1 fi if [ $cplwav = .true. ]; then sed -i -e "s;@\[wav_model\];ww3;g" tmp1 @@ -81,10 +91,6 @@ if [ $cplchem = .true. ]; then sed -i -e "s;@\[chem_model\];gsd;g" tmp1 fi -sed -i -e "s;@\[read_mediator\];$read_mediator;g" tmp1 - -read_mediator - mv tmp1 nems.configure echo "$(cat nems.configure)" diff --git a/workflow/cases/coupled_free_forecast.yaml b/workflow/cases/coupled_free_forecast.yaml index 300cde8143..03a76b0c08 100644 --- a/workflow/cases/coupled_free_forecast.yaml +++ b/workflow/cases/coupled_free_forecast.yaml @@ -8,10 +8,10 @@ case: EDATE: 2013-04-01t00:00:00 onestep: .true. + cplmode: nems_orig cplflx: .true. print_esmf: .true. - nems_temp: 'med_atm_ocn_ice' - nems_temp_cold: 'medcold_atm_ocn_ice' + nems_temp: 'cpld' mom6ic_prepared: .false. KEEPDATA: YES ic_source: coupled_ic diff --git a/workflow/cases/coupled_free_forecast_wave.yaml b/workflow/cases/coupled_free_forecast_wave.yaml index c074e71a92..89b2893e82 100644 --- a/workflow/cases/coupled_free_forecast_wave.yaml +++ b/workflow/cases/coupled_free_forecast_wave.yaml @@ -8,12 +8,12 @@ case: EDATE: 2013-04-01t00:00:00 onestep: .true. + cplmode: nems_orig cplwav: .true. cplwav2atm: .true. cplflx: .true. print_esmf: .true. - nems_temp: 'med_atm_ocn_ice_wav' - nems_temp_cold: 'medcold_atm_ocn_ice_wav' + nems_temp: 'cpld_wav' mom6ic_prepared: .false. KEEPDATA: NO diff --git a/workflow/config/fcst.yaml b/workflow/config/fcst.yaml index 7b0e91598c..553b63954e 100644 --- a/workflow/config/fcst.yaml +++ b/workflow/config/fcst.yaml @@ -72,7 +72,7 @@ config_fcst: ####################################################################### # COUPLING COMPONENTS - export read_mediator="{tools.fort(doc.settings.read_mediator)}" + export use_coldstart="{tools.fort(doc.settings.use_coldstart)}" ####################################################################### # PE Mapping diff --git a/workflow/defaults/settings.yaml b/workflow/defaults/settings.yaml index 898ee49a6a..0dda01e1f1 100644 --- a/workflow/defaults/settings.yaml +++ b/workflow/defaults/settings.yaml @@ -43,7 +43,8 @@ default_settings: &default_settings HPSS_PAR_PATH: !expand "/5year/NCEPDEV/emc-global/emc.glopara/WCOSS_C/{parexp}" onestep: .false. - read_mediator: !calc not onestep + use_coldstart: !calc not onestep + cplmode: nems_orig cplflx: .false. cplice: !calc cplflx cplwav: .false. From d00ad01bbcb1c350067d275c82f13541dbe04f67 Mon Sep 17 00:00:00 2001 From: JessicaMeixner-NOAA Date: Thu, 3 Dec 2020 18:04:07 -0600 Subject: [PATCH 19/25] use latest ufs-weather-model --- sorc/checkout.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sorc/checkout.sh b/sorc/checkout.sh index d4c3fdbe1a..f90f75d191 100755 --- a/sorc/checkout.sh +++ b/sorc/checkout.sh @@ -18,7 +18,7 @@ if [[ ! -d ufs_coupled.fd ]] ; then cd ufs_coupled.fd #git checkout develop #checkout develop branch hash from 11/9/2020: - git checkout 4e8ef6a879ceefb719cc9cebd8ac9c2208a58b16 + git checkout 63591b60481543267408513f1a6cb850279221c3 git submodule update --init --recursive cd ${topdir} else From 4cb00715185a106f24e3231d87ec57b9ea5aeafb Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Tue, 8 Dec 2020 15:46:47 +0000 Subject: [PATCH 20/25] update to latest code --- sorc/checkout.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sorc/checkout.sh b/sorc/checkout.sh index f90f75d191..cb2b1df7ac 100755 --- a/sorc/checkout.sh +++ b/sorc/checkout.sh @@ -17,8 +17,8 @@ if [[ ! -d ufs_coupled.fd ]] ; then git clone https://github.com/ufs-community/ufs-weather-model ufs_coupled.fd >> ${topdir}/checkout-ufs_coupled.log 2>&1 cd ufs_coupled.fd #git checkout develop - #checkout develop branch hash from 11/9/2020: - git checkout 63591b60481543267408513f1a6cb850279221c3 + #checkout develop branch hash from 12/7/2020: + git checkout 0cf031edc217707f3b5c912e0844e2c2b885ff82 git submodule update --init --recursive cd ${topdir} else From 13ee4d18d656a0d71e7832a33629569a1ace270e Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Tue, 8 Dec 2020 21:10:20 +0000 Subject: [PATCH 21/25] changing n_aero from 1 to 0 following https://github.com/ufs-community/ufs-weather-model/pull/270/ --- ush/parsing_namelists_CICE.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ush/parsing_namelists_CICE.sh b/ush/parsing_namelists_CICE.sh index 98b8d1ba28..d08747238c 100644 --- a/ush/parsing_namelists_CICE.sh +++ b/ush/parsing_namelists_CICE.sh @@ -65,7 +65,7 @@ cat > ice_in < Date: Tue, 8 Dec 2020 21:35:30 +0000 Subject: [PATCH 22/25] updating MOM_input_templates based on https://github.com/ufs-community/ufs-weather-model/pull/290 --- parm/mom6/MOM_input_template_025 | 916 +++++++++++++++--------------- parm/mom6/MOM_input_template_050 | 934 +++++++++++++++---------------- parm/mom6/MOM_input_template_100 | 71 ++- 3 files changed, 940 insertions(+), 981 deletions(-) diff --git a/parm/mom6/MOM_input_template_025 b/parm/mom6/MOM_input_template_025 index f7ba839392..aa1da78029 100644 --- a/parm/mom6/MOM_input_template_025 +++ b/parm/mom6/MOM_input_template_025 @@ -1,112 +1,116 @@ -/* 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 input file provides the adjustable run-time parameters for version 6 of the Modular Ocean Model (MOM6). +! Where appropriate, parameters use usually given in MKS units. - This particular file is for the example in OM4_025. +! This particular file is for the example in ice_ocean_SIS2/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. */ +! 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_domains === +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the domain. With + ! TRIPOLAR_N, NIGLOBAL must be even. +NIGLOBAL = NX_GLB ! + ! 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 = NY_GLB ! + ! 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 = 4 ! default = 4 + ! The number of halo points on each side in the x-direction. With + ! STATIC_MEMORY_ this is set as NIHALO_ in MOM_memory.h at compile time; without + ! STATIC_MEMORY_ the default is NIHALO_ in MOM_memory.h (if defined) or 2. +NJHALO = 4 ! default = 4 + ! The number of halo points on each side in the y-direction. With + ! STATIC_MEMORY_ this is set as NJHALO_ in MOM_memory.h at compile time; without + ! STATIC_MEMORY_ the default is NJHALO_ in MOM_memory.h (if defined) or 2. +! LAYOUT = 32, 18 ! + ! The processor layout that was actually used. +! IO_LAYOUT = 1, 1 ! default = 1 + ! The processor layout to be used, or 0,0 to automatically set the io_layout to + ! be the same as the layout. ! === module MOM === USE_REGRIDDING = True ! [Boolean] default = False - ! If True, use the ALE algorithm (regridding/remapping). - ! If False, use the layered isopycnal algorithm. + ! 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. + ! 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. + ! If true, do thickness diffusion before dynamics. This is only used if + ! THICKNESSDIFFUSE is true. DT = DT_DYNAM_MOM6 ! [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.) + ! The (baroclinic) dynamics time step. The time-step that is actually used will + ! be an integer fraction of the forcing time-step (DT_FORCING in ocean-only mode + ! or the coupling timestep in coupled mode.) DT_THERM = DT_THERM_MOM6 ! [s] default = 900.0 - ! The thermodynamic and tracer advection time step. - ! Ideally DT_THERM should be an integer multiple of DT - ! and less than the forcing or coupling time-step, unless - ! THERMO_SPANS_COUPLING is true, in which case DT_THERM - ! can be an integer multiple of the coupling timestep. By - ! default DT_THERM is set to DT. -THERMO_SPANS_COUPLING = MOM6_THERMO_SPAN ! [Boolean] default = False - ! If true, the MOM will take thermodynamic and tracer - ! timesteps that can be longer than the coupling timestep. - ! The actual thermodynamic timestep that is used in this - ! case is the largest integer multiple of the coupling - ! timestep that is less than or equal to DT_THERM. + ! The thermodynamic and tracer advection time step. Ideally DT_THERM should be + ! an integer multiple of DT and less than the forcing or coupling time-step, + ! unless THERMO_SPANS_COUPLING is true, in which case DT_THERM can be an integer + ! multiple of the coupling timestep. By default DT_THERM is set to DT. +THERMO_SPANS_COUPLING = MOM6_THERMO_SPAN ! [Boolean] default = False + ! If true, the MOM will take thermodynamic and tracer timesteps that can be + ! longer than the coupling timestep. The actual thermodynamic timestep that is + ! used in this case is the largest integer multiple of the coupling timestep + ! that is less than or equal to DT_THERM. HFREEZE = 20.0 ! [m] default = -1.0 ! If HFREEZE > 0, melt potential will be computed. The actual depth ! over which melt potential is computed will be min(HFREEZE, OBLD) - ! where OBLD is the boundary layer depth. If HFREEZE <= 0 (default) - ! melt potential will not be computed. + ! where OBLD is the boundary layer depth. If HFREEZE <= 0 (default) +USE_PSURF_IN_EOS = False ! [Boolean] default = False + ! If true, always include the surface pressure contributions in equation of + ! state calculations. FRAZIL = True ! [Boolean] default = False - ! If true, water freezes if it gets too cold, and the - ! the accumulated heat deficit is returned in the - ! surface state. FRAZIL is only used if + ! If true, water freezes if it gets too cold, and the accumulated heat deficit + ! is returned in the surface state. FRAZIL is only used if ! ENABLE_THERMODYNAMICS is true. DO_GEOTHERMAL = True ! [Boolean] default = False ! If true, apply geothermal heating. 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.) + ! 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.) +MIN_SALINITY = 0.01 ! [PPT] default = 0.01 + ! The minimum value of salinity when BOUND_SALINITY=True. The default is 0.01 + ! for backward compatibility but ideally should be 0. 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. + ! 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. + ! 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 = 65.0 ! [deg C] default = 45.0, PTripp: changed from 55.0 on 12/28/2017 - ! The value of SST above which a bad value message is - ! triggered, if CHECK_BAD_SURFACE_VALS is true. + ! 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. + ! The value of SST below which a bad value message is triggered, if + ! CHECK_BAD_SURFACE_VALS is true. +DEFAULT_2018_ANSWERS = True ! [Boolean] default = True + ! This sets the default value for the various _2018_ANSWERS parameters. WRITE_GEOM = 2 ! 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 === -TRIPOLAR_N = True ! [Boolean] default = False - ! Use tripolar connectivity at the northern edge of the - ! domain. With TRIPOLAR_N, NIGLOBAL must be even. -NIGLOBAL = NX_GLB ! - ! 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 = NY_GLB ! - ! 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. + ! 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. +SAVE_INITIAL_CONDS = True ! [Boolean] default = False + ! If true, write the initial conditions to a file given by IC_OUTPUT_FILE. ! === 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: + ! 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. @@ -135,8 +139,8 @@ TOPO_CONFIG = "file" ! ! DOME2D gravity current/overflow test case. ! Kelvin - flat but with rotated land mask. ! seamount - Gaussian bump for spontaneous motion test case. + ! dumbbell - Sloshing channel with reservoirs on both ends. ! 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. @@ -147,23 +151,24 @@ TOPO_EDITS_FILE = "All_edits.nc" ! default = "" 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. + ! 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. GRID_ROTATION_ANGLE_BUGS = False ! [Boolean] default = True - ! If true, use an older algorithm to calculate the sine and + ! If true, use an older algorithm to calculate the sine and ! cosines needed rotate between grid-oriented directions and ! true north and east. Differences arise at the tripolar fold USE_TRIPOLAR_GEOLONB_BUG = False ! [Boolean] default = True - ! If true, use older code that incorrectly sets the longitude + ! If true, use older code that incorrectly sets the longitude ! in some points along the tripolar fold to be off by 360 degrees ! === module MOM_open_boundary === -! Controls where open boundaries are located, what kind of boundary condition to impose, and what data to apply, if any. +! 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. + ! The depth below which to mask points as land points, for which all fluxes are + ! zeroed out. MASKING_DEPTH is ignored if negative. CHANNEL_CONFIG = "list" ! default = "none" ! A parameter that determines which set of channels are ! restricted to specific widths. Options are: @@ -178,18 +183,22 @@ CHANNEL_CONFIG = "list" ! default = "none" CHANNEL_LIST_FILE = "MOM_channels_global_025" ! default = "MOM_channel_list" ! The file from which the list of narrowed channels is read. +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. +NK = 75 ! [nondim] + ! The number of model layers. + ! === 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 + ! When TFREEZE_FORM=LINEAR, this is the derivative of the freezing potential ! temperature with pressure. ! === module MOM_restart === PARALLEL_RESTARTFILES = True ! [Boolean] default = False - ! If true, each processor writes its own restart file, - ! otherwise a single restart file is generated + ! If true, each processor writes its own restart file, otherwise a single + ! restart file is generated ! === module MOM_tracer_flow_control === USE_IDEAL_AGE_TRACER = False ! [Boolean] default = False @@ -218,26 +227,26 @@ COORD_CONFIG = "file" ! ! USER - call a user modified routine. COORD_FILE = "layer_coord.nc" ! ! The file from which the coordinate densities are read. +REMAP_UV_USING_OLD_ALG = True ! [Boolean] default = True + ! If true, uses the old remapping-via-a-delta-z method for remapping u and v. If + ! false, uses the new method that remaps between grids described by an old and + ! new thickness. 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 + ! Coordinate mode for vertical regridding. Choose among the following + ! possibilities: LAYER - Isopycnal or stacked shallow water layers + ! ZSTAR, Z* - stretched geopotential z* + ! SIGMA_SHELF_ZSTAR - stretched 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. + ! 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: + ! 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 @@ -257,11 +266,10 @@ ALE_COORDINATE_CONFIG = "HYBRID:hycom1_75_800m.nc,sigma2,FNC1:2,4000,4.5,.01" ! ! 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. + ! HYBRID target densities for interfaces +REGRID_COMPRESSIBILITY_FRACTION = 0.01 ! [nondim] default = 0.0 + ! When interpolating potential density profiles we can add some artificial + ! compressibility solely to make homogeneous 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: @@ -285,10 +293,9 @@ MAX_LAYER_THICKNESS_CONFIG = "FNC1:400,31000.0,0.1,.01" ! default = "NONE" !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) + ! 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) @@ -300,18 +307,16 @@ REMAPPING_SCHEME = "PPM_H4" ! default = "PLM" ! === 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. + ! If true, initialize the layer thicknesses, temperatures, and salinities from a + ! Z-space file on a latitude-longitude grid. ! === module MOM_initialize_layers_from_Z === -!TEMP_SALT_Z_INIT_FILE = "WOA05_pottemp_salt.nc" ! default = "temp_salt_z.nc" -TEMP_SALT_Z_INIT_FILE = "MOM6_IC_TS.nc" +TEMP_SALT_Z_INIT_FILE = "MOM6_IC_TS.nc" ! 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. -Z_INIT_FILE_PTEMP_VAR = "temp" ! default = "ptemp" +Z_INIT_FILE_PTEMP_VAR = "temp" ! default = "ptemp" ! The name of the potential temperature variable in ! TEMP_Z_INIT_FILE. Z_INIT_FILE_SALT_VAR = "salt" ! default = "salt" @@ -319,6 +324,9 @@ Z_INIT_FILE_SALT_VAR = "salt" ! default = "salt" ! SALT_Z_INIT_FILE. Z_INIT_ALE_REMAPPING = True ! [Boolean] default = False ! If True, then remap straight to model coordinate from file. +Z_INIT_REMAP_OLD_ALG = True ! [Boolean] default = True + ! If false, uses the preferred remapping algorithm for initialization. If true, + ! use an older, less robust algorithm for remapping. ! === module MOM_diag_mediator === !Jiande NUM_DIAG_COORDS = 2 ! default = 1 @@ -332,9 +340,8 @@ DIAG_COORDS = "z Z ZSTAR" ! is of the form "MODULE_SUFFIX,PARAMETER_SUFFIX,COORDINATE_NAME". DIAG_COORD_DEF_Z="FILE:interpolate_zgrid_40L.nc,interfaces=zw" DIAG_MISVAL = -1e34 -!Jiande DIAG_COORD_DEF_RHO2 = "RFNC1:35,999.5,1028,1028.5,8.,1038.,0.0078125" ! default = "WOA09" - ! Determines how to specify the coordinate - ! resolution. Valid options are: +!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 @@ -350,115 +357,112 @@ DIAG_MISVAL = -1e34 ! === module MOM_MEKE === USE_MEKE = True ! [Boolean] default = False - ! If true, turns on the MEKE scheme which calculates - ! a sub-grid mesoscale eddy kinetic energy budget. + ! If true, turns on the MEKE scheme which calculates a sub-grid mesoscale eddy + ! kinetic energy budget. MEKE_GMCOEFF = 1.0 ! [nondim] default = -1.0 - ! The efficiency of the conversion of potential energy - ! into MEKE by the thickness mixing parameterization. - ! If MEKE_GMCOEFF is negative, this conversion is not - ! used or calculated. + ! The efficiency of the conversion of potential energy into MEKE by the + ! thickness mixing parameterization. If MEKE_GMCOEFF is negative, this + ! conversion is not used or calculated. MEKE_BGSRC = 1.0E-13 ! [W kg-1] default = 0.0 ! A background energy source for MEKE. MEKE_KHMEKE_FAC = 1.0 ! [nondim] default = 0.0 ! A factor that maps MEKE%Kh to Kh for MEKE itself. MEKE_ALPHA_RHINES = 0.15 ! [nondim] default = 0.05 - ! If positive, is a coefficient weighting the Rhines scale - ! in the expression for mixing length used in MEKE-derived diffusiviity. + ! If positive, is a coefficient weighting the Rhines scale in the expression for + ! mixing length used in MEKE-derived diffusivity. MEKE_ALPHA_EADY = 0.15 ! [nondim] default = 0.05 - ! If positive, is a coefficient weighting the Eady length scale - ! in the expression for mixing length used in MEKE-derived diffusiviity. + ! If positive, is a coefficient weighting the Eady length scale in the + ! expression for mixing length used in MEKE-derived diffusivity. ! === module MOM_lateral_mixing_coeffs === USE_VARIABLE_MIXING = True ! [Boolean] default = False - ! If true, the variable mixing code will be called. This - ! allows diagnostics to be created even if the scheme is - ! not used. If KHTR_SLOPE_CFF>0 or KhTh_Slope_Cff>0, - ! this is set to true regardless of what is in the - ! parameter file. + ! If true, the variable mixing code will be called. This allows diagnostics to + ! be created even if the scheme is not used. If KHTR_SLOPE_CFF>0 or + ! KhTh_Slope_Cff>0, this is set to true regardless of what is in the parameter + ! file. RESOLN_SCALED_KH = True ! [Boolean] default = False - ! If true, the Laplacian lateral viscosity is scaled away - ! when the first baroclinic deformation radius is well - ! resolved. + ! If true, the Laplacian lateral viscosity is scaled away when the first + ! baroclinic deformation radius is well resolved. RESOLN_SCALED_KHTH = True ! [Boolean] default = False - ! If true, the interface depth diffusivity is scaled away - ! when the first baroclinic deformation radius is well - ! resolved. + ! If true, the interface depth diffusivity is scaled away when the first + ! baroclinic deformation radius is well resolved. KHTR_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 - ! The nondimensional coefficient in the Visbeck formula - ! for the epipycnal tracer diffusivity + ! The nondimensional coefficient in the Visbeck formula for the epipycnal tracer + ! diffusivity USE_STORED_SLOPES = True ! [Boolean] default = False - ! If true, the isopycnal slopes are calculated once and - ! stored for re-use. This uses more memory but avoids calling - ! the equation of state more times than should be necessary. + ! If true, the isopycnal slopes are calculated once and stored for re-use. This + ! uses more memory but avoids calling the equation of state more times than + ! should be necessary. INTERPOLATE_RES_FN = False ! [Boolean] default = True - ! If true, interpolate the resolution function to the - ! velocity points from the thickness points; otherwise - ! interpolate the wave speed and calculate the resolution - ! function independently at each point. + ! If true, interpolate the resolution function to the velocity points from the + ! thickness points; otherwise interpolate the wave speed and calculate the + ! resolution function independently at each point. GILL_EQUATORIAL_LD = True ! [Boolean] default = False - ! If true, uses Gill's definition of the baroclinic - ! equatorial deformation radius, otherwise, if false, use - ! Pedlosky's definition. These definitions differ by a factor - ! of 2 infront of the beta term in the denominator. Gill'sis the more appropriate definition. + ! If true, uses Gill's definition of the baroclinic equatorial deformation + ! radius, otherwise, if false, use Pedlosky's definition. These definitions + ! differ by a factor of 2 in front of the beta term in the denominator. Gill's + ! is the more appropriate definition. ! === module MOM_set_visc === CHANNEL_DRAG = True ! [Boolean] default = False - ! If true, the bottom drag is exerted directly on each - ! layer proportional to the fraction of the bottom it - ! overlies. + ! If true, the bottom drag is exerted directly on each layer proportional to the + ! fraction of the bottom it overlies. PRANDTL_TURB = 1.25 ! [nondim] default = 1.0 - ! The turbulent Prandtl number applied to shear - ! instability. + ! 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. + ! 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. + ! 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. + ! 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 + ! 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. + ! 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_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. +USE_GM_WORK_BUG = True ! [Boolean] default = True + ! If true, compute the top-layer work tendency on the u-grid with the incorrect + ! sign, for legacy reproducibility. + ! === 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. + ! 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 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. + ! 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: + ! 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. @@ -466,316 +470,277 @@ CORIOLIS_SCHEME = "SADOURNY75_ENSTRO" ! default = "SADOURNY75_ENERGY" ! 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. + ! 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. + ! If true, use mass weighting when interpolating T/S for integrals near the + ! bathymetry in AFV pressure gradient calculations. ! === 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. + ! 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. + ! 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. + ! The nondimensional biharmonic Smagorinsky constant, typically 0.015 - 0.06. +USE_LAND_MASK_FOR_HVISC = False ! [Boolean] default = False + ! If true, use Use the land mask for the computation of thicknesses at velocity + ! locations. This eliminates the dependence on arbitrary values over land or + ! outside of the domain. Default is False in order to maintain answers with + ! legacy experiments but should be changed to True for new experiments. ! === 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. + ! 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. + ! The maximum velocity allowed before the velocity components are truncated. ! === module MOM_PointAccel === +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. ! === 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. + ! 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. + ! If true, step the barotropic velocity first and project out the velocity + ! tendency 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. + ! 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. + ! 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. + ! 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. + ! If True, use an order of operations that is not bitwise rotationally symmetric + ! in the meridional Coriolis term of the barotropic solver. ! === module MOM_mixed_layer_restrat === MIXEDLAYER_RESTRAT = True ! [Boolean] default = False - ! If true, a density-gradient dependent re-stratifying - ! flow is imposed in the mixed layer. Can be used in ALE mode - ! without restriction but in layer mode can only be used if - ! BULKMIXEDLAYER is true. + ! If true, a density-gradient dependent re-stratifying flow is imposed in the + ! mixed layer. Can be used in ALE mode without restriction but in layer mode can + ! only be used if BULKMIXEDLAYER is true. FOX_KEMPER_ML_RESTRAT_COEF = 1.0 ! [nondim] default = 0.0 - ! A nondimensional coefficient that is proportional to - ! the ratio of the deformation radius to the dominant - ! lengthscale of the submesoscale mixed layer - ! instabilities, times the minimum of the ratio of the - ! mesoscale eddy kinetic energy to the large-scale - ! geostrophic kinetic energy or 1 plus the square of the - ! grid spacing over the deformation radius, as detailed - ! by Fox-Kemper et al. (2010) + ! A nondimensional coefficient that is proportional to the ratio of the + ! deformation radius to the dominant lengthscale of the submesoscale mixed layer + ! instabilities, times the minimum of the ratio of the mesoscale eddy kinetic + ! energy to the large-scale geostrophic kinetic energy or 1 plus the square of + ! the grid spacing over the deformation radius, as detailed by Fox-Kemper et al. + ! (2010) MLE_FRONT_LENGTH = 500.0 ! [m] default = 0.0 - ! If non-zero, is the frontal-length scale used to calculate the - ! upscaling of buoyancy gradients that is otherwise represented - ! by the parameter FOX_KEMPER_ML_RESTRAT_COEF. If MLE_FRONT_LENGTH is - ! non-zero, it is recommended to set FOX_KEMPER_ML_RESTRAT_COEF=1.0. + ! If non-zero, is the frontal-length scale used to calculate the upscaling of + ! buoyancy gradients that is otherwise represented by the parameter + ! FOX_KEMPER_ML_RESTRAT_COEF. If MLE_FRONT_LENGTH is non-zero, it is recommended + ! to set FOX_KEMPER_ML_RESTRAT_COEF=1.0. MLE_USE_PBL_MLD = True ! [Boolean] default = False - ! If true, the MLE parameterization will use the mixed-layer - ! depth provided by the active PBL parameterization. If false, - ! MLE will estimate a MLD based on a density difference with the - ! surface using the parameter MLE_DENSITY_DIFF. + ! If true, the MLE parameterization will use the mixed-layer depth provided by + ! the active PBL parameterization. If false, MLE will estimate a MLD based on a + ! density difference with the surface using the parameter MLE_DENSITY_DIFF. MLE_MLD_DECAY_TIME = 2.592E+06 ! [s] default = 0.0 - ! The time-scale for a running-mean filter applied to the mixed-layer - ! depth used in the MLE restratification parameterization. When - ! the MLD deepens below the current running-mean the running-mean - ! is instantaneously set to the current MLD. - -! === module MOM_diag_to_Z === -!Z_OUTPUT_GRID_FILE = "analysis_vgrid_lev35.v1.nc" ! default = "" -!Z_OUTPUT_GRID_FILE = "interpolate_zgrid_40L.nc" - ! The file that specifies the vertical grid for - ! depth-space diagnostics, or blank to disable - ! depth-space output. -!NK_ZSPACE (from file) = 35 ! [nondim] - ! The number of depth-space levels. This is determined - ! from the size of the variable zw in the output grid file. + ! The time-scale for a running-mean filter applied to the mixed-layer depth used + ! in the MLE restratification parameterization. When the MLD deepens below the + ! current running-mean the running-mean is instantaneously set to the current + ! MLD. ! === 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. + ! 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. + ! 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_CVMix_KPP === +! This is the MOM wrapper to CVMix:KPP +! See http://cvmix.github.io/ -! === module MOM_diffConvection === -! This module implements enhanced diffusivity as a -! function of static stability, N^2. -CONVECTION% -%CONVECTION +! === module MOM_tidal_mixing === +! Vertical Tidal Mixing Parameterization +INT_TIDE_DISSIPATION = True ! [Boolean] default = False + ! If true, use an internal tidal dissipation scheme to drive diapycnal mixing, + ! along the lines of St. Laurent et al. (2002) and Simmons et al. (2004). +INT_TIDE_PROFILE = "POLZIN_09" ! default = "STLAURENT_02" + ! INT_TIDE_PROFILE selects the vertical profile of energy dissipation with + ! INT_TIDE_DISSIPATION. Valid values are: + ! STLAURENT_02 - Use the St. Laurent et al exponential + ! decay profile. + ! POLZIN_09 - Use the Polzin WKB-stretched algebraic + ! decay profile. +INT_TIDE_DECAY_SCALE = 300.3003003003003 ! [m] default = 500.0 + ! The decay scale away from the bottom for tidal TKE with the new coding when + ! INT_TIDE_DISSIPATION is used. +KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 + ! A topographic wavenumber used with INT_TIDE_DISSIPATION. The default is 2pi/10 + ! km, as in St.Laurent et al. 2002. +KAPPA_H2_FACTOR = 0.84 ! [nondim] default = 1.0 + ! A scaling factor for the roughness amplitude with INT_TIDE_DISSIPATION. +TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 + ! The maximum internal tide energy source available to mix above the bottom + ! boundary layer with INT_TIDE_DISSIPATION. +READ_TIDEAMP = True ! [Boolean] default = False + ! If true, read a file (given by TIDEAMP_FILE) containing the tidal amplitude + ! with INT_TIDE_DISSIPATION. +TIDEAMP_FILE = "tidal_amplitude.v20140616.nc" ! default = "tideamp.nc" + ! The path to the file containing the spatially varying tidal amplitudes with + ! INT_TIDE_DISSIPATION. +H2_FILE = "ocean_topog.nc" ! + ! The path to the file containing the sub-grid-scale topographic roughness + ! amplitude with INT_TIDE_DISSIPATION. -! === module MOM_entrain_diffusive === +! === module MOM_CVMix_conv === +! Parameterization of enhanced mixing due to convection via CVMix ! === module MOM_geothermal === GEOTHERMAL_SCALE = 1.0 ! [W m-2 or various] default = 0.0 - ! The constant geothermal heat flux, a rescaling - ! factor for the heat flux read from GEOTHERMAL_FILE, or - ! 0 to disable the geothermal heating. + ! The constant geothermal heat flux, a rescaling factor for the heat flux read + ! from GEOTHERMAL_FILE, or 0 to disable the geothermal heating. GEOTHERMAL_FILE = "geothermal_davies2013_v1.nc" ! default = "" - ! The file from which the geothermal heating is to be - ! read, or blank to use a constant heating rate. + ! The file from which the geothermal heating is to be read, or blank to use a + ! constant heating rate. GEOTHERMAL_VARNAME = "geothermal_hf" ! default = "geo_heat" - ! The name of the geothermal heating variable in - ! GEOTHERMAL_FILE. + ! The name of the geothermal heating variable in GEOTHERMAL_FILE. ! === 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. + ! If true, take the maximum of the diffusivity from the BBL mixing and the other + ! diffusivities. Otherwise, diffusivity 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. + ! 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. + ! 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 for an isopycnal layer-formulation. + +! === module MOM_bkgnd_mixing === +! Adding static vertical background mixing coefficients 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. + ! 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. +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. 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. -INT_TIDE_DISSIPATION = True ! [Boolean] default = False - ! If true, use an internal tidal dissipation scheme to - ! drive diapycnal mixing, along the lines of St. Laurent - ! et al. (2002) and Simmons et al. (2004). -INT_TIDE_PROFILE = "POLZIN_09" ! default = "STLAURENT_02" - ! INT_TIDE_PROFILE selects the vertical profile of energy - ! dissipation with INT_TIDE_DISSIPATION. Valid values are: - ! STLAURENT_02 - Use the St. Laurent et al exponential - ! decay profile. - ! POLZIN_09 - Use the Polzin WKB-streched algebraic - ! decay profile. -INT_TIDE_DECAY_SCALE = 300.3003003003003 ! [m] default = 0.0 - ! The decay scale away from the bottom for tidal TKE with - ! the new coding when INT_TIDE_DISSIPATION is used. -KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 - ! A topographic wavenumber used with INT_TIDE_DISSIPATION. - ! The default is 2pi/10 km, as in St.Laurent et al. 2002. -KAPPA_H2_FACTOR = 0.84 ! [nondim] default = 1.0 - ! A scaling factor for the roughness amplitude with nINT_TIDE_DISSIPATION. -TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 - ! The maximum internal tide energy source availble to mix - ! above the bottom boundary layer with INT_TIDE_DISSIPATION. -READ_TIDEAMP = True ! [Boolean] default = False - ! If true, read a file (given by TIDEAMP_FILE) containing - ! the tidal amplitude with INT_TIDE_DISSIPATION. -TIDEAMP_FILE = "tidal_amplitude.v20140616.nc" ! default = "tideamp.nc" - ! The path to the file containing the spatially varying - ! tidal amplitudes with INT_TIDE_DISSIPATION. -H2_FILE = "ocean_topog.nc" ! - ! The path to the file containing the sub-grid-scale - ! topographic roughness amplitude with INT_TIDE_DISSIPATION. + ! 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. + ! 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. -VERTEX_SHEAR = True ! [Boolean] default = False + ! The maximum number of iterations that may be used to estimate the Richardson + ! number driven mixing. +VERTEX_SHEAR = False ! [Boolean] default = False ! If true, do the calculations of the shear-driven mixing ! at the cell vertices (i.e., the vorticity points). + +KAPPA_SHEAR_ITER_BUG = True ! [Boolean] default = True + ! If true, use an older, dimensionally inconsistent estimate of the derivative + ! of diffusivity with energy in the Newton's method iteration. The bug causes + ! undercorrections when dz > 1 m. +KAPPA_SHEAR_ALL_LAYER_TKE_BUG = True ! [Boolean] default = True + ! If true, report back the latest estimate of TKE instead of the time average + ! TKE when there is mass in all layers. Otherwise always report the time + ! averaged TKE, as is currently done when there are some massless layers. + ! === module MOM_CVMix_shear === ! Parameterization of shear-driven turbulence via CVMix (various options) +! === module MOM_CVMix_ddiff === +! Parameterization of mixing due to double diffusion processes via CVMix + ! === module MOM_diabatic_aux === ! The following parameters are used for auxiliary diabatic processes. -RECLAIM_FRAZIL = True ! [Boolean] default = True - ! If true, try to use any frazil heat deficit to cool any - ! overlying layers down to the freezing point, thereby - ! avoiding the creation of thin ice when the SST is above - ! the freezing point. - PRESSURE_DEPENDENT_FRAZIL = False ! [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. + ! If true, use a pressure dependent freezing temperature when making frazil. The + ! default is false, which will be faster but is inappropriate with ice-shelf + ! cavities. +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by OPACITY_SCHEME to determine + ! the e-folding depth of incoming short wave radiation. +CHL_FILE = "seawifs-clim-1997-2010.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. ! === 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). + ! 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). +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. +EPBL_MSTAR_SCHEME = "OM4" ! default = "CONSTANT" + ! EPBL_MSTAR_SCHEME selects the method for setting mstar. Valid values are: + ! CONSTANT - Use a fixed mstar given by MSTAR + ! OM4 - Use L_Ekman/L_Obukhov in the sabilizing limit, as in OM4 + ! REICHL_H18 - Use the scheme documented in Reichl & Hallberg, 2018. +MSTAR_CAP = 10.0 ! [nondim] default = -1.0 + ! If this value is positive, it sets the maximum value of mstar allowed in ePBL. + ! (This is not used if EPBL_MSTAR_SCHEME = CONSTANT). +MSTAR2_COEF1 = 0.29 ! [nondim] default = 0.3 + ! Coefficient in computing mstar when rotation and stabilizing effects are both + ! important (used if EPBL_MSTAR_SCHEME = OM4). +MSTAR2_COEF2 = 0.152 ! [nondim] default = 0.085 + ! Coefficient in computing mstar when only rotation limits the total mixing + ! (used if EPBL_MSTAR_SCHEME = OM4) +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. +MSTAR_CONV_ADJ = 0.667 ! [nondim] default = 0.0 + ! Coefficient used for reducing mstar during convection due to reduction of + ! stable density gradient. 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. + ! A logical that specifies whether or not to use the distance to the bottom of + ! the actively turbulent boundary layer to help set the EPBL length scale. 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. + ! 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. +MIX_LEN_EXPONENT = 1.0 ! [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. This is only used if + ! USE_MLD_ITERATION is True. USE_LA_LI2016 = MOM6_REPRO_LA ! [nondim] default = False - ! A logical to use the Li et al. 2016 (submitted) formula to - ! determine the Langmuir number. + ! 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. @@ -785,6 +750,7 @@ LT_ENHANCE = 3 ! [nondim] default = 0 ! 3 - Added w/ adjusted La. USE_WAVES = MOM6_USE_WAVES ! [Boolean] default = False ! If true, enables surface wave modules. + WAVE_METHOD = "SURFACE_BANDS" ! default = "EMPTY" ! Choice of wave method, valid options include: ! TEST_PROFILE - Prescribed from surface Stokes drift @@ -795,45 +761,44 @@ WAVE_METHOD = "SURFACE_BANDS" ! default = "EMPTY" ! wave spectrum with prescribed values. ! LF17 - Infers Stokes drift profile from wind ! speed following Li and Fox-Kemper 2017. + SURFBAND_SOURCE = "COUPLER" ! default = "EMPTY" ! Choice of SURFACE_BANDS data mode, valid options include: ! DATAOVERRIDE - Read from NetCDF using FMS DataOverride. ! COUPLER - Look for variables from coupler pass ! INPUT - Testing with fixed values. + STK_BAND_COUPLER = 3 ! default = 1 ! STK_BAND_COUPLER is the number of Stokes drift bands in the coupler. This has ! to be consistent with the number of Stokes drift bands in WW3, or the model ! will fail. + SURFBAND_WAVENUMBERS = 0.04, 0.11, 0.3305 ! [rad/m] default = 0.12566 - ! Central wavenumbers for surface Stokes drift bands. +EPBL_LANGMUIR_SCHEME = "ADDITIVE" ! default = "NONE" + ! EPBL_LANGMUIR_SCHEME selects the method for including Langmuir turbulence. + ! Valid values are: + ! NONE - Do not do any extra mixing due to Langmuir turbulence + ! RESCALE - Use a multiplicative rescaling of mstar to account for Langmuir + ! turbulence + ! ADDITIVE - Add a Langmuir turblence contribution to mstar to other + ! contributions LT_ENHANCE_COEF = 0.044 ! [nondim] default = 0.447 - ! Coefficient for Langmuir enhancement if LT_ENHANCE > 1 + ! Coefficient for Langmuir enhancement of mstar LT_ENHANCE_EXP = -1.5 ! [nondim] default = -1.33 - ! Exponent for Langmuir enhancement if LT_ENHANCE > 1 + ! Exponent for Langmuir enhancementt of mstar 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. + ! Coefficient for modification of Langmuir number due to MLD approaching Ekman + ! depth. 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. + ! Coefficient for modification of Langmuir number due to ratio of Ekman to + ! stable Obukhov depth. 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. + ! Coefficient for modification of Langmuir number due to ratio of Ekman to + ! unstable Obukhov depth. ! === 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 = CHLCLIM ! 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" PEN_SW_NBANDS = 3 ! default = 1 ! The number of bands of penetrating shortwave radiation. @@ -846,37 +811,38 @@ TRACER_ADVECTION_SCHEME = "PPM:H3" ! default = "PLM" ! === 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. + ! If true, use enough iterations the diffusion to ensure that the diffusive + ! equivalent of the CFL limit is not violated. If false, always use the greater + ! of 1 or MAX_TR_DIFFUSION_CFL iteration. ! === module MOM_neutral_diffusion === ! This module implements neutral diffusion of tracers +! === module MOM_lateral_boundary_diffusion === +! This module implements lateral diffusion of tracers near boundaries + +! === 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. +ENERGYSAVEDAYS = 1.00 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the energies of the run and + ! other globally summed diagnostics. + ! === module ocean_model_init === OCEAN_SURFACE_STAGGER = "A" ! default = "C" ! A case-insensitive character string to indicate the ! staggering of the surface velocity field that is ! returned to the coupler. Valid values include ! 'A', 'B', or 'C'. -ENERGYSAVEDAYS = 1.00 ! [days] default = 1.0 - ! The interval in units of TIMEUNIT between saves of the - ! energies of the run and other globally summed diagnostics. - -! === module ocean_model_init === -ICE_SHELF = False ! [Boolean] default = False - ! If true, enables the ice shelf model. -ICEBERGS_APPLY_RIGID_BOUNDARY = False ! [Boolean] default = False - ! If true, allows icebergs to change boundary condition felt by ocean - ! === 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. + ! 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. WIND_STAGGER = "A" ! default = "C" ! A case-insensitive character string to indicate the ! staggering of the input wind stress field. Valid @@ -885,26 +851,18 @@ 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. +FIX_USTAR_GUSTLESS_BUG = False ! [Boolean] default = False + ! If true correct a bug in the time-averaging of the gustless wind friction + ! velocity USE_RIGID_SEA_ICE = True ! [Boolean] default = False - ! If true, sea-ice is rigid enough to exert a - ! nonhydrostatic pressure that resist vertical motion. + ! 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 + ! The mass of sea-ice per unit area at which the sea-ice starts to exhibit + ! rigidity LIQUID_RUNOFF_FROM_DATA = MOM6_RIVER_RUNOFF ! [Boolean] default = False ! If true, allows liquid river runoff to be specified via ! the data_table using the component name 'OCN'. ! === module MOM_restart === RESTART_CHECKSUMS_REQUIRED = False -! === module MOM_sum_output === -CALCULATE_APE = False ! [Boolean] default = True - ! If true, calculate the available potential energy of - ! the interfaces. Setting this to false reduces the - ! memory footprint of high-PE-count models dramatically. -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/parm/mom6/MOM_input_template_050 b/parm/mom6/MOM_input_template_050 index 481dcb2454..46780dfc82 100644 --- a/parm/mom6/MOM_input_template_050 +++ b/parm/mom6/MOM_input_template_050 @@ -1,116 +1,117 @@ -/* 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 input file provides the adjustable run-time parameters for version 6 of the Modular Ocean Model (MOM6). +! Where appropriate, parameters use usually given in MKS units. - This particular file is for the example in OM4_05. +! This particular file is for the example in ice_ocean_SIS2/OM4_05. - 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. */ +! 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_domains === +TRIPOLAR_N = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the domain. With + ! TRIPOLAR_N, NIGLOBAL must be even. +NIGLOBAL = NX_GLB ! + ! 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 = NY_GLB ! + ! 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 = 4 ! default = 4 + ! The number of halo points on each side in the x-direction. With + ! STATIC_MEMORY_ this is set as NIHALO_ in MOM_memory.h at compile time; without + ! STATIC_MEMORY_ the default is NIHALO_ in MOM_memory.h (if defined) or 2. +NJHALO = 4 ! default = 4 + ! The number of halo points on each side in the y-direction. With + ! STATIC_MEMORY_ this is set as NJHALO_ in MOM_memory.h at compile time; without + ! STATIC_MEMORY_ the default is NJHALO_ in MOM_memory.h (if defined) or 2. +! LAYOUT = 21, 20 ! + ! The processor layout that was actually used. +! IO_LAYOUT = 1, 1 ! default = 1 + ! The processor layout to be used, or 0,0 to automatically set the io_layout to + ! be the same as the layout. ! === module MOM === USE_REGRIDDING = True ! [Boolean] default = False - ! If True, use the ALE algorithm (regridding/remapping). - ! If False, use the layered isopycnal algorithm. + ! 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. + ! 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. + ! If true, do thickness diffusion before dynamics. This is only used if + ! THICKNESSDIFFUSE is true. DT = DT_DYNAM_MOM6 ! [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.) + ! The (baroclinic) dynamics time step. The time-step that is actually used will + ! be an integer fraction of the forcing time-step (DT_FORCING in ocean-only mode + ! or the coupling timestep in coupled mode.) DT_THERM = DT_THERM_MOM6 ! [s] default = 1800.0 - ! The thermodynamic and tracer advection time step. - ! Ideally DT_THERM should be an integer multiple of DT - ! and less than the forcing or coupling time-step, unless - ! THERMO_SPANS_COUPLING is true, in which case DT_THERM - ! can be an integer multiple of the coupling timestep. By - ! default DT_THERM is set to DT. + ! The thermodynamic and tracer advection time step. Ideally DT_THERM should be + ! an integer multiple of DT and less than the forcing or coupling time-step, + ! unless THERMO_SPANS_COUPLING is true, in which case DT_THERM can be an integer + ! multiple of the coupling timestep. By default DT_THERM is set to DT. THERMO_SPANS_COUPLING = MOM6_THERMO_SPAN ! [Boolean] default = False - ! If true, the MOM will take thermodynamic and tracer - ! timesteps that can be longer than the coupling timestep. - ! The actual thermodynamic timestep that is used in this - ! case is the largest integer multiple of the coupling - ! timestep that is less than or equal to DT_THERM. + ! If true, the MOM will take thermodynamic and tracer timesteps that can be + ! longer than the coupling timestep. The actual thermodynamic timestep that is + ! used in this case is the largest integer multiple of the coupling timestep + ! that is less than or equal to DT_THERM. HFREEZE = 20.0 ! [m] default = -1.0 ! If HFREEZE > 0, melt potential will be computed. The actual depth ! over which melt potential is computed will be min(HFREEZE, OBLD) ! where OBLD is the boundary layer depth. If HFREEZE <= 0 (default) ! melt potential will not be computed. +USE_PSURF_IN_EOS = False ! [Boolean] default = False + ! If true, always include the surface pressure contributions in equation of + ! state calculations. FRAZIL = True ! [Boolean] default = False - ! If true, water freezes if it gets too cold, and the - ! the accumulated heat deficit is returned in the - ! surface state. FRAZIL is only used if + ! If true, water freezes if it gets too cold, and the accumulated heat deficit + ! is returned in the surface state. FRAZIL is only used if ! ENABLE_THERMODYNAMICS is true. DO_GEOTHERMAL = True ! [Boolean] default = False ! If true, apply geothermal heating. 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.) + ! 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.) +MIN_SALINITY = 0.01 ! [PPT] default = 0.01 + ! The minimum value of salinity when BOUND_SALINITY=True. The default is 0.01 + ! for backward compatibility but ideally should be 0. 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. + ! 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. + ! 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. + ! 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. + ! 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. + ! The value of SST below which a bad value message is triggered, if + ! CHECK_BAD_SURFACE_VALS is true. +DEFAULT_2018_ANSWERS = True ! [Boolean] default = True + ! This sets the default value for the various _2018_ANSWERS parameters. WRITE_GEOM = 2 ! 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. + ! 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. SAVE_INITIAL_CONDS = True ! [Boolean] default = False ! If true, write the initial conditions to a file given by IC_OUTPUT_FILE. -IC_OUTPUT_FILE = "MOM_IC" ! default = "MOM_IC" - ! The file into which to write the initial conditions. - -! === module MOM_domains === -TRIPOLAR_N = True ! [Boolean] default = False - ! Use tripolar connectivity at the northern edge of the - ! domain. With TRIPOLAR_N, NIGLOBAL must be even. -NIGLOBAL = NX_GLB ! - ! 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 = NY_GLB ! - ! 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. ! === 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: + ! 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. @@ -141,7 +142,6 @@ TOPO_CONFIG = "file" ! ! seamount - Gaussian bump for spontaneous motion test case. ! dumbbell - Sloshing channel with reservoirs on both ends. ! 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. @@ -150,22 +150,24 @@ TOPO_FILE = "ocean_topog.nc" ! default = "topog.nc" 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. + ! 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. GRID_ROTATION_ANGLE_BUGS = False ! [Boolean] default = True ! If true, use an older algorithm to calculate the sine and ! cosines needed rotate between grid-oriented directions and ! true north and east. Differences arise at the tripolar fold -USE_TRIPOLAR_GEOLONB_BUG = False ! [Boolean] default = True - ! If true, use older code that incorrectly sets the longitude - ! in some points along the tripolar fold to be off by 360 degrees + +USE_TRIPOLAR_GEOLONB_BUG = False ! [Boolean] default = True + ! If true, use older code that incorrectly sets the longitude in some points + ! along the tripolar fold to be off by 360 degrees. ! === module MOM_open_boundary === -! Controls where open boundaries are located, what kind of boundary condition to impose, and what data to apply, if any. +! 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. + ! The depth below which to mask points as land points, for which all fluxes are + ! zeroed out. MASKING_DEPTH is ignored if negative. CHANNEL_CONFIG = "list" ! default = "none" ! A parameter that determines which set of channels are ! restricted to specific widths. Options are: @@ -179,19 +181,23 @@ CHANNEL_CONFIG = "list" ! default = "none" ! NetCDF file on the model grid. CHANNEL_LIST_FILE = "MOM_channels_global_025" ! default = "MOM_channel_list" ! The file from which the list of narrowed channels is read. +PARALLEL_RESTARTFILES = True ! [Boolean] default = False + ! If true, each processor writes its own restart file, otherwise a single + ! restart file is generated + +! === module MOM_verticalGrid === +! Parameters providing information about the vertical grid. +NK = 75 ! [nondim] + ! The number of model layers. ! === 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 + ! When TFREEZE_FORM=LINEAR, this is the derivative of the freezing potential ! temperature with pressure. ! === module MOM_restart === -PARALLEL_RESTARTFILES = True ! [Boolean] default = False - ! If true, each processor writes its own restart file, - ! otherwise a single restart file is generated ! === module MOM_tracer_flow_control === USE_IDEAL_AGE_TRACER = False ! [Boolean] default = False @@ -220,26 +226,26 @@ COORD_CONFIG = "file" ! ! USER - call a user modified routine. COORD_FILE = "layer_coord.nc" ! ! The file from which the coordinate densities are read. +REMAP_UV_USING_OLD_ALG = True ! [Boolean] default = True + ! If true, uses the old remapping-via-a-delta-z method for remapping u and v. If + ! false, uses the new method that remaps between grids described by an old and + ! new thickness. 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 + ! Coordinate mode for vertical regridding. Choose among the following + ! possibilities: LAYER - Isopycnal or stacked shallow water layers + ! ZSTAR, Z* - stretched geopotential z* + ! SIGMA_SHELF_ZSTAR - stretched 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. + ! 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: + ! 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 @@ -259,11 +265,10 @@ ALE_COORDINATE_CONFIG = "HYBRID:hycom1_75_800m.nc,sigma2,FNC1:2,4000,4.5,.01" ! ! 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. + ! HYBRID target densities for interfaces +REGRID_COMPRESSIBILITY_FRACTION = 0.01 ! [nondim] default = 0.0 + ! When interpolating potential density profiles we can add some artificial + ! compressibility solely to make homogeneous 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: @@ -287,10 +292,9 @@ MAX_LAYER_THICKNESS_CONFIG = "FNC1:400,31000.0,0.1,.01" ! default = "NONE" !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) + ! 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) @@ -302,13 +306,11 @@ REMAPPING_SCHEME = "PPM_H4" ! default = "PLM" ! === 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. + ! If true, initialize the layer thicknesses, temperatures, and salinities from a + ! Z-space file on a latitude-longitude grid. ! === module MOM_initialize_layers_from_Z === -!TEMP_SALT_Z_INIT_FILE = "WOA05_pottemp_salt.nc" ! default = "temp_salt_z.nc" -TEMP_SALT_Z_INIT_FILE = "MOM6_IC_TS.nc" +TEMP_SALT_Z_INIT_FILE = "MOM6_IC_TS.nc" ! 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 @@ -319,8 +321,12 @@ Z_INIT_FILE_PTEMP_VAR = "temp" ! default = "ptemp" Z_INIT_FILE_SALT_VAR = "salt" ! 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. +Z_INIT_REMAP_OLD_ALG = True ! [Boolean] default = True + ! If false, uses the preferred remapping algorithm for initialization. If true, + ! use an older, less robust algorithm for remapping. ! === module MOM_diag_mediator === !Jiande NUM_DIAG_COORDS = 2 ! default = 1 @@ -334,9 +340,8 @@ DIAG_COORDS = "z Z ZSTAR" ! is of the form "MODULE_SUFFIX,PARAMETER_SUFFIX,COORDINATE_NAME". DIAG_COORD_DEF_Z="FILE:interpolate_zgrid_40L.nc,interfaces=zw" DIAG_MISVAL = -1e34 -!Jiande DIAG_COORD_DEF_RHO2 = "RFNC1:35,999.5,1028,1028.5,8.,1038.,0.0078125" ! default = "WOA09" - ! Determines how to specify the coordinate - ! resolution. Valid options are: +!DIAG_COORD_DEF_RHO2 = "RFNC1:35,999.5,1028,1028.5,8.,1038.,0.0078125" ! 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 @@ -352,13 +357,12 @@ DIAG_MISVAL = -1e34 ! === module MOM_MEKE === USE_MEKE = True ! [Boolean] default = False - ! If true, turns on the MEKE scheme which calculates - ! a sub-grid mesoscale eddy kinetic energy budget. + ! If true, turns on the MEKE scheme which calculates a sub-grid mesoscale eddy + ! kinetic energy budget. MEKE_GMCOEFF = 1.0 ! [nondim] default = -1.0 - ! The efficiency of the conversion of potential energy - ! into MEKE by the thickness mixing parameterization. - ! If MEKE_GMCOEFF is negative, this conversion is not - ! used or calculated. + ! The efficiency of the conversion of potential energy into MEKE by the + ! thickness mixing parameterization. If MEKE_GMCOEFF is negative, this + ! conversion is not used or calculated. MEKE_BGSRC = 1.0E-13 ! [W kg-1] default = 0.0 ! A background energy source for MEKE. MEKE_KHTH_FAC = 0.5 ! [nondim] default = 0.0 @@ -368,116 +372,118 @@ MEKE_KHTR_FAC = 0.5 ! [nondim] default = 0.0 MEKE_KHMEKE_FAC = 1.0 ! [nondim] default = 0.0 ! A factor that maps MEKE%Kh to Kh for MEKE itself. MEKE_VISCOSITY_COEFF_KU = 1.0 ! [nondim] default = 0.0 - ! If non-zero, is the scaling coefficient in the expression for - ! viscosity used to parameterize lateral momentum mixing by - ! unresolved eddies represented by MEKE. Can be negative to - ! represent backscatter from the unresolved eddies. + ! If non-zero, is the scaling coefficient in the expression forviscosity used to + ! parameterize harmonic lateral momentum mixing byunresolved eddies represented + ! by MEKE. Can be negative torepresent backscatter from the unresolved eddies. MEKE_ALPHA_RHINES = 0.15 ! [nondim] default = 0.05 - ! If positive, is a coefficient weighting the Rhines scale - ! in the expression for mixing length used in MEKE-derived diffusiviity. + ! If positive, is a coefficient weighting the Rhines scale in the expression for + ! mixing length used in MEKE-derived diffusivity. MEKE_ALPHA_EADY = 0.15 ! [nondim] default = 0.05 - ! If positive, is a coefficient weighting the Eady length scale - ! in the expression for mixing length used in MEKE-derived diffusiviity. + ! If positive, is a coefficient weighting the Eady length scale in the + ! expression for mixing length used in MEKE-derived diffusivity. ! === module MOM_lateral_mixing_coeffs === USE_VARIABLE_MIXING = True ! [Boolean] default = False - ! If true, the variable mixing code will be called. This - ! allows diagnostics to be created even if the scheme is - ! not used. If KHTR_SLOPE_CFF>0 or KhTh_Slope_Cff>0, - ! this is set to true regardless of what is in the - ! parameter file. + ! If true, the variable mixing code will be called. This allows diagnostics to + ! be created even if the scheme is not used. If KHTR_SLOPE_CFF>0 or + ! KhTh_Slope_Cff>0, this is set to true regardless of what is in the parameter + ! file. RESOLN_SCALED_KH = True ! [Boolean] default = False - ! If true, the Laplacian lateral viscosity is scaled away - ! when the first baroclinic deformation radius is well - ! resolved. + ! If true, the Laplacian lateral viscosity is scaled away when the first + ! baroclinic deformation radius is well resolved. RESOLN_SCALED_KHTH = True ! [Boolean] default = False - ! If true, the interface depth diffusivity is scaled away - ! when the first baroclinic deformation radius is well - ! resolved. + ! If true, the interface depth diffusivity is scaled away when the first + ! baroclinic deformation radius is well resolved. KHTH_USE_EBT_STRUCT = True ! [Boolean] default = False - ! If true, uses the equivalent barotropic structure - ! as the vertical structure of thickness diffusivity. + ! If true, uses the equivalent barotropic structure as the vertical structure of + ! thickness diffusivity. KHTR_SLOPE_CFF = 0.25 ! [nondim] default = 0.0 - ! The nondimensional coefficient in the Visbeck formula - ! for the epipycnal tracer diffusivity + ! The nondimensional coefficient in the Visbeck formula for the epipycnal tracer + ! diffusivity USE_STORED_SLOPES = True ! [Boolean] default = False - ! If true, the isopycnal slopes are calculated once and - ! stored for re-use. This uses more memory but avoids calling - ! the equation of state more times than should be necessary. + ! If true, the isopycnal slopes are calculated once and stored for re-use. This + ! uses more memory but avoids calling the equation of state more times than + ! should be necessary. KH_RES_FN_POWER = 100 ! [nondim] default = 2 - ! The power of dx/Ld in the Kh resolution function. Any - ! positive integer may be used, although even integers - ! are more efficient to calculate. Setting this greater - ! than 100 results in a step-function being used. + ! The power of dx/Ld in the Kh resolution function. Any positive integer may be + ! used, although even integers are more efficient to calculate. Setting this + ! greater than 100 results in a step-function being used. INTERPOLATE_RES_FN = False ! [Boolean] default = True - ! If true, interpolate the resolution function to the - ! velocity points from the thickness points; otherwise - ! interpolate the wave speed and calculate the resolution - ! function independently at each point. + ! If true, interpolate the resolution function to the velocity points from the + ! thickness points; otherwise interpolate the wave speed and calculate the + ! resolution function independently at each point. GILL_EQUATORIAL_LD = True ! [Boolean] default = False - ! If true, uses Gill's definition of the baroclinic - ! equatorial deformation radius, otherwise, if false, use - ! Pedlosky's definition. These definitions differ by a factor - ! of 2 infront of the beta term in the denominator. Gill'sis the more appropriate definition. + ! If true, uses Gill's definition of the baroclinic equatorial deformation + ! radius, otherwise, if false, use Pedlosky's definition. These definitions + ! differ by a factor of 2 in front of the beta term in the denominator. Gill's + ! is the more appropriate definition. ! === module MOM_set_visc === CHANNEL_DRAG = True ! [Boolean] default = False - ! If true, the bottom drag is exerted directly on each - ! layer proportional to the fraction of the bottom it - ! overlies. + ! If true, the bottom drag is exerted directly on each layer proportional to the + ! fraction of the bottom it overlies. PRANDTL_TURB = 1.25 ! [nondim] default = 1.0 - ! The turbulent Prandtl number applied to shear - ! instability. + ! 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. + ! 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. + ! 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. + ! 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 + ! 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. + ! 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_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. +KHTH_USE_FGNV_STREAMFUNCTION = True ! [Boolean] default = False + ! If true, use the streamfunction formulation of Ferrari et al., 2010, which + ! effectively emphasizes graver vertical modes by smoothing in the vertical. +FGNV_FILTER_SCALE = 0.1 ! [nondim] default = 1.0 + ! A coefficient scaling the vertical smoothing term in the Ferrari et al., 2010, + ! streamfunction formulation. +USE_GM_WORK_BUG = True ! [Boolean] default = True + ! If true, compute the top-layer work tendency on the u-grid with the incorrect + ! sign, for legacy reproducibility. + ! === 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. + ! 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 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. + ! 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: + ! 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. @@ -485,327 +491,286 @@ CORIOLIS_SCHEME = "SADOURNY75_ENSTRO" ! default = "SADOURNY75_ENERGY" ! 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. + ! 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 interpolating T/S for - ! integrals near the bathymetry in AFV pressure gradient - ! calculations. + ! If true, use mass weighting when interpolating T/S for integrals near the + ! bathymetry in AFV pressure gradient calculations. ! === module MOM_hor_visc === LAPLACIAN = True ! [Boolean] default = False ! If true, use a Laplacian horizontal viscosity. KH_VEL_SCALE = 0.01 ! [m s-1] default = 0.0 - ! The velocity scale which is multiplied by the grid - ! spacing to calculate the Laplacian viscosity. - ! The final viscosity is the largest of this scaled + ! The velocity scale which is multiplied by the grid spacing to calculate the + ! Laplacian viscosity. The final viscosity is the largest of this scaled ! viscosity, the Smagorinsky and Leith viscosities, and KH. KH_SIN_LAT = 2000.0 ! [m2 s-1] default = 0.0 - ! The amplitude of a latidutinally-dependent background - ! viscosity of the form KH_SIN_LAT*(SIN(LAT)**KH_PWR_OF_SINE). + ! The amplitude of a latitudinally-dependent background viscosity of the form + ! KH_SIN_LAT*(SIN(LAT)**KH_PWR_OF_SINE). SMAGORINSKY_KH = True ! [Boolean] default = False ! If true, use a Smagorinsky nonlinear eddy viscosity. SMAG_LAP_CONST = 0.15 ! [nondim] default = 0.0 - ! The nondimensional Laplacian Smagorinsky constant, - ! often 0.15. + ! The nondimensional Laplacian Smagorinsky constant, often 0.15. 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. + ! 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. + ! 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. + ! The nondimensional biharmonic Smagorinsky constant, typically 0.015 - 0.06. +USE_LAND_MASK_FOR_HVISC = False ! [Boolean] default = False + ! If true, use Use the land mask for the computation of thicknesses at velocity + ! locations. This eliminates the dependence on arbitrary values over land or + ! outside of the domain. Default is False in order to maintain answers with + ! legacy experiments but should be changed to True for new experiments. ! === 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. + ! 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. + ! The maximum velocity allowed before the velocity components are truncated. ! === module MOM_PointAccel === +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. ! === 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. + ! 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. + ! If true, step the barotropic velocity first and project out the velocity + ! tendency 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. + ! 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. + ! 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. + ! 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. -KHTH_USE_FGNV_STREAMFUNCTION = True ! [Boolean] default = False - ! If true, use the streamfunction formulation of - ! Ferrari et al., 2010, which effectively emphasizes - ! graver vertical modes by smoothing in the vertical. -FGNV_FILTER_SCALE = 0.1 ! [not defined] default = 1.0 - ! A coefficient scaling the vertical smoothing term in the - ! Ferrari et al., 2010, streamfunction formulation. + ! If True, use an order of operations that is not bitwise rotationally symmetric + ! in the meridional Coriolis term of the barotropic solver. ! === module MOM_mixed_layer_restrat === MIXEDLAYER_RESTRAT = True ! [Boolean] default = False - ! If true, a density-gradient dependent re-stratifying - ! flow is imposed in the mixed layer. Can be used in ALE mode - ! without restriction but in layer mode can only be used if - ! BULKMIXEDLAYER is true. + ! If true, a density-gradient dependent re-stratifying flow is imposed in the + ! mixed layer. Can be used in ALE mode without restriction but in layer mode can + ! only be used if BULKMIXEDLAYER is true. FOX_KEMPER_ML_RESTRAT_COEF = 1.0 ! [nondim] default = 0.0 - ! A nondimensional coefficient that is proportional to - ! the ratio of the deformation radius to the dominant - ! lengthscale of the submesoscale mixed layer - ! instabilities, times the minimum of the ratio of the - ! mesoscale eddy kinetic energy to the large-scale - ! geostrophic kinetic energy or 1 plus the square of the - ! grid spacing over the deformation radius, as detailed - ! by Fox-Kemper et al. (2010) + ! A nondimensional coefficient that is proportional to the ratio of the + ! deformation radius to the dominant lengthscale of the submesoscale mixed layer + ! instabilities, times the minimum of the ratio of the mesoscale eddy kinetic + ! energy to the large-scale geostrophic kinetic energy or 1 plus the square of + ! the grid spacing over the deformation radius, as detailed by Fox-Kemper et al. + ! (2010) MLE_FRONT_LENGTH = 200.0 ! [m] default = 0.0 - ! If non-zero, is the frontal-length scale used to calculate the - ! upscaling of buoyancy gradients that is otherwise represented - ! by the parameter FOX_KEMPER_ML_RESTRAT_COEF. If MLE_FRONT_LENGTH is - ! non-zero, it is recommended to set FOX_KEMPER_ML_RESTRAT_COEF=1.0. + ! If non-zero, is the frontal-length scale used to calculate the upscaling of + ! buoyancy gradients that is otherwise represented by the parameter + ! FOX_KEMPER_ML_RESTRAT_COEF. If MLE_FRONT_LENGTH is non-zero, it is recommended + ! to set FOX_KEMPER_ML_RESTRAT_COEF=1.0. MLE_USE_PBL_MLD = True ! [Boolean] default = False - ! If true, the MLE parameterization will use the mixed-layer - ! depth provided by the active PBL parameterization. If false, - ! MLE will estimate a MLD based on a density difference with the - ! surface using the parameter MLE_DENSITY_DIFF. + ! If true, the MLE parameterization will use the mixed-layer depth provided by + ! the active PBL parameterization. If false, MLE will estimate a MLD based on a + ! density difference with the surface using the parameter MLE_DENSITY_DIFF. MLE_MLD_DECAY_TIME = 2.592E+06 ! [s] default = 0.0 - ! The time-scale for a running-mean filter applied to the mixed-layer - ! depth used in the MLE restratification parameterization. When - ! the MLD deepens below the current running-mean the running-mean - ! is instantaneously set to the current MLD. + ! The time-scale for a running-mean filter applied to the mixed-layer depth used + ! in the MLE restratification parameterization. When the MLD deepens below the + ! current running-mean the running-mean is instantaneously set to the current + ! MLD. ! === 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. + ! 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. + ! 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_CVMix_KPP === +! This is the MOM wrapper to CVMix:KPP +! See http://cvmix.github.io/ -! === module MOM_diffConvection === -! This module implements enhanced diffusivity as a -! function of static stability, N^2. -CONVECTION% -%CONVECTION +! === module MOM_tidal_mixing === +! Vertical Tidal Mixing Parameterization +INT_TIDE_DISSIPATION = True ! [Boolean] default = False + ! If true, use an internal tidal dissipation scheme to drive diapycnal mixing, + ! along the lines of St. Laurent et al. (2002) and Simmons et al. (2004). +INT_TIDE_PROFILE = "POLZIN_09" ! default = "STLAURENT_02" + ! INT_TIDE_PROFILE selects the vertical profile of energy dissipation with + ! INT_TIDE_DISSIPATION. Valid values are: + ! STLAURENT_02 - Use the St. Laurent et al exponential + ! decay profile. + ! POLZIN_09 - Use the Polzin WKB-stretched algebraic + ! decay profile. +INT_TIDE_DECAY_SCALE = 300.3003003003003 ! [m] default = 500.0 + ! The decay scale away from the bottom for tidal TKE with the new coding when + ! INT_TIDE_DISSIPATION is used. +KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 + ! A topographic wavenumber used with INT_TIDE_DISSIPATION. The default is 2pi/10 + ! km, as in St.Laurent et al. 2002. +KAPPA_H2_FACTOR = 0.84 ! [nondim] default = 1.0 + ! A scaling factor for the roughness amplitude with INT_TIDE_DISSIPATION. +TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 + ! The maximum internal tide energy source available to mix above the bottom + ! boundary layer with INT_TIDE_DISSIPATION. +READ_TIDEAMP = True ! [Boolean] default = False + ! If true, read a file (given by TIDEAMP_FILE) containing the tidal amplitude + ! with INT_TIDE_DISSIPATION. +TIDEAMP_FILE = "tidal_amplitude.nc" ! default = "tideamp.nc" + ! The path to the file containing the spatially varying tidal amplitudes with + ! INT_TIDE_DISSIPATION. +H2_FILE = "ocean_topog.nc" ! + ! The path to the file containing the sub-grid-scale topographic roughness + ! amplitude with INT_TIDE_DISSIPATION. -! === module MOM_entrain_diffusive === +! === module MOM_CVMix_conv === +! Parameterization of enhanced mixing due to convection via CVMix ! === module MOM_geothermal === GEOTHERMAL_SCALE = 1.0 ! [W m-2 or various] default = 0.0 - ! The constant geothermal heat flux, a rescaling - ! factor for the heat flux read from GEOTHERMAL_FILE, or - ! 0 to disable the geothermal heating. + ! The constant geothermal heat flux, a rescaling factor for the heat flux read + ! from GEOTHERMAL_FILE, or 0 to disable the geothermal heating. GEOTHERMAL_FILE = "geothermal_davies2013_v1.nc" ! default = "" - ! The file from which the geothermal heating is to be - ! read, or blank to use a constant heating rate. + ! The file from which the geothermal heating is to be read, or blank to use a + ! constant heating rate. GEOTHERMAL_VARNAME = "geothermal_hf" ! default = "geo_heat" - ! The name of the geothermal heating variable in - ! GEOTHERMAL_FILE. + ! The name of the geothermal heating variable in GEOTHERMAL_FILE. ! === 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. + ! If true, take the maximum of the diffusivity from the BBL mixing and the other + ! diffusivities. Otherwise, diffusivity 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. + ! 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. + ! 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 for an isopycnal layer-formulation. + +! === module MOM_bkgnd_mixing === +! Adding static vertical background mixing coefficients 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. + ! 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. +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. 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. -INT_TIDE_DISSIPATION = True ! [Boolean] default = False - ! If true, use an internal tidal dissipation scheme to - ! drive diapycnal mixing, along the lines of St. Laurent - ! et al. (2002) and Simmons et al. (2004). -INT_TIDE_PROFILE = "POLZIN_09" ! default = "STLAURENT_02" - ! INT_TIDE_PROFILE selects the vertical profile of energy - ! dissipation with INT_TIDE_DISSIPATION. Valid values are: - ! STLAURENT_02 - Use the St. Laurent et al exponential - ! decay profile. - ! POLZIN_09 - Use the Polzin WKB-streched algebraic - ! decay profile. -INT_TIDE_DECAY_SCALE = 300.3003003003003 ! [m] default = 0.0 - ! The decay scale away from the bottom for tidal TKE with - ! the new coding when INT_TIDE_DISSIPATION is used. -KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 - ! A topographic wavenumber used with INT_TIDE_DISSIPATION. - ! The default is 2pi/10 km, as in St.Laurent et al. 2002. -KAPPA_H2_FACTOR = 0.84 ! [nondim] default = 1.0 - ! A scaling factor for the roughness amplitude with nINT_TIDE_DISSIPATION. -TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 - ! The maximum internal tide energy source availble to mix - ! above the bottom boundary layer with INT_TIDE_DISSIPATION. -READ_TIDEAMP = True ! [Boolean] default = False - ! If true, read a file (given by TIDEAMP_FILE) containing - ! the tidal amplitude with INT_TIDE_DISSIPATION. -TIDEAMP_FILE = "tidal_amplitude.nc" ! default = "tideamp.nc" - ! The path to the file containing the spatially varying - ! tidal amplitudes with INT_TIDE_DISSIPATION. -H2_FILE = "ocean_topog.nc" ! - ! The path to the file containing the sub-grid-scale - ! topographic roughness amplitude with INT_TIDE_DISSIPATION. + ! 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. + ! 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. -VERTEX_SHEAR = True ! [Boolean] default = False + ! The maximum number of iterations that may be used to estimate the Richardson + ! number driven mixing. +VERTEX_SHEAR = False ! [Boolean] default = False ! If true, do the calculations of the shear-driven mixing ! at the cell vertices (i.e., the vorticity points). +KAPPA_SHEAR_ITER_BUG = True ! [Boolean] default = True + ! If true, use an older, dimensionally inconsistent estimate of the derivative + ! of diffusivity with energy in the Newton's method iteration. The bug causes + ! undercorrections when dz > 1 m. +KAPPA_SHEAR_ALL_LAYER_TKE_BUG = True ! [Boolean] default = True + ! If true, report back the latest estimate of TKE instead of the time average + ! TKE when there is mass in all layers. Otherwise always report the time + ! averaged TKE, as is currently done when there are some massless layers. + ! === module MOM_CVMix_shear === ! Parameterization of shear-driven turbulence via CVMix (various options) +! === module MOM_CVMix_ddiff === +! Parameterization of mixing due to double diffusion processes via CVMix + ! === module MOM_diabatic_aux === ! The following parameters are used for auxiliary diabatic processes. -RECLAIM_FRAZIL = True ! [Boolean] default = True - ! If true, try to use any frazil heat deficit to cool any - ! overlying layers down to the freezing point, thereby - ! avoiding the creation of thin ice when the SST is above - ! the freezing point. - PRESSURE_DEPENDENT_FRAZIL = False ! [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. + ! If true, use a pressure dependent freezing temperature when making frazil. The + ! default is false, which will be faster but is inappropriate with ice-shelf + ! cavities. +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by OPACITY_SCHEME to determine + ! the e-folding depth of incoming short wave radiation. +CHL_FILE = CHLCLIM ! 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. ! === 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). + ! 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). +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. +EPBL_MSTAR_SCHEME = "OM4" ! default = "CONSTANT" + ! EPBL_MSTAR_SCHEME selects the method for setting mstar. Valid values are: + ! CONSTANT - Use a fixed mstar given by MSTAR + ! OM4 - Use L_Ekman/L_Obukhov in the sabilizing limit, as in OM4 + ! REICHL_H18 - Use the scheme documented in Reichl & Hallberg, 2018. +MSTAR_CAP = 10.0 ! [nondim] default = -1.0 + ! If this value is positive, it sets the maximum value of mstar allowed in ePBL. + ! (This is not used if EPBL_MSTAR_SCHEME = CONSTANT). +MSTAR2_COEF1 = 0.29 ! [nondim] default = 0.3 + ! Coefficient in computing mstar when rotation and stabilizing effects are both + ! important (used if EPBL_MSTAR_SCHEME = OM4). +MSTAR2_COEF2 = 0.152 ! [nondim] default = 0.085 + ! Coefficient in computing mstar when only rotation limits the total mixing + ! (used if EPBL_MSTAR_SCHEME = OM4) +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. +MSTAR_CONV_ADJ = 0.667 ! [nondim] default = 0.0 + ! Coefficient used for reducing mstar during convection due to reduction of + ! stable density gradient. 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. + ! A logical that specifies whether or not to use the distance to the bottom of + ! the actively turbulent boundary layer to help set the EPBL length scale. 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. + ! 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. +MIX_LEN_EXPONENT = 1.0 ! [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. This is only used if + ! USE_MLD_ITERATION is True. USE_LA_LI2016 = MOM6_REPRO_LA ! [nondim] default = False - ! A logical to use the Li et al. 2016 (submitted) formula to - ! determine the Langmuir number. + ! 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. @@ -836,22 +801,27 @@ STK_BAND_COUPLER = 3 ! default = 1 ! will fail. SURFBAND_WAVENUMBERS = 0.04, 0.11, 0.3305 ! [rad/m] default = 0.12566 ! Central wavenumbers for surface Stokes drift bands. +EPBL_LANGMUIR_SCHEME = "ADDITIVE" ! default = "NONE" + ! EPBL_LANGMUIR_SCHEME selects the method for including Langmuir turbulence. + ! Valid values are: + ! NONE - Do not do any extra mixing due to Langmuir turbulence + ! RESCALE - Use a multiplicative rescaling of mstar to account for Langmuir + ! turbulence + ! ADDITIVE - Add a Langmuir turblence contribution to mstar to other + ! contributions LT_ENHANCE_COEF = 0.044 ! [nondim] default = 0.447 - ! Coefficient for Langmuir enhancement if LT_ENHANCE > 1 + ! Coefficient for Langmuir enhancement of mstar LT_ENHANCE_EXP = -1.5 ! [nondim] default = -1.33 - ! Exponent for Langmuir enhancement if LT_ENHANCE > 1 + ! Exponent for Langmuir enhancementt of mstar 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. + ! Coefficient for modification of Langmuir number due to MLD approaching Ekman + ! depth. 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. + ! Coefficient for modification of Langmuir number due to ratio of Ekman to + ! stable Obukhov depth. 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. + ! Coefficient for modification of Langmuir number due to ratio of Ekman to + ! unstable Obukhov depth. ! === module MOM_regularize_layers === @@ -860,7 +830,7 @@ 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 = CHLCLIM ! CHL_FILE is the file containing chl_a concentrations in +CHL_FILE = CHLCLIM ! 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" @@ -879,19 +849,19 @@ TRACER_ADVECTION_SCHEME = "PPM:H3" ! default = "PLM" KHTR = 50.0 ! [m2 s-1] default = 0.0 ! The background along-isopycnal tracer diffusivity. 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. + ! If true, use enough iterations the diffusion to ensure that the diffusive + ! equivalent of the CFL limit is not violated. If false, always use the greater + ! of 1 or MAX_TR_DIFFUSION_CFL iteration. MAX_TR_DIFFUSION_CFL = 2.0 ! [nondim] default = -1.0 - ! If positive, locally limit the along-isopycnal tracer - ! diffusivity to keep the diffusive CFL locally at or - ! below this value. The number of diffusive iterations - ! is often this value or the next greater integer. + ! If positive, locally limit the along-isopycnal tracer diffusivity to keep the + ! diffusive CFL locally at or below this value. The number of diffusive + ! iterations is often this value or the next greater integer. ! === module MOM_neutral_diffusion === ! This module implements neutral diffusion of tracers USE_NEUTRAL_DIFFUSION = True ! [Boolean] default = False ! If true, enables the neutral diffusion module. + ! === module ocean_model_init === OCEAN_SURFACE_STAGGER = "A" ! default = "C" ! A case-insensitive character string to indicate the @@ -899,32 +869,31 @@ OCEAN_SURFACE_STAGGER = "A" ! default = "C" ! returned to the coupler. Valid values include ! 'A', 'B', or 'C'. RESTART_CHECKSUMS_REQUIRED = False +! === module MOM_lateral_boundary_diffusion === +! This module implements lateral diffusion of tracers near boundaries + ! === module MOM_sum_output === -CALCULATE_APE = False ! [Boolean] default = True - ! If true, calculate the available potential energy of - ! the interfaces. Setting this to false reduces the - ! memory footprint of high-PE-count models dramatically. 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 + ! 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. -ENERGYSAVEDAYS = 1.00 ! [days] default = 1.0 - ! The interval in units of TIMEUNIT between saves of the - ! energies of the run and other globally summed diagnostics. +ENERGYSAVEDAYS = 1.0 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the energies of the run and + ! other globally summed diagnostics. ENERGYSAVEDAYS_GEOMETRIC = 0.25 ! [days] default = 0.0 - ! The starting interval in units of TIMEUNIT for the first call - ! to save the energies of the run and other globally summed diagnostics. - ! The interval increases by a factor of 2. after each call to write_energy. + ! The starting interval in units of TIMEUNIT for the first call to save the + ! energies of the run and other globally summed diagnostics. The interval + ! increases by a factor of 2. after each call to write_energy. + +! === module ocean_model_init === ! === 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. + ! 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. WIND_STAGGER = "A" ! default = "C" ! A case-insensitive character string to indicate the ! staggering of the input wind stress field. Valid @@ -933,12 +902,15 @@ 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. +FIX_USTAR_GUSTLESS_BUG = False ! [Boolean] default = False + ! If true correct a bug in the time-averaging of the gustless wind friction + ! velocity USE_RIGID_SEA_ICE = True ! [Boolean] default = False - ! If true, sea-ice is rigid enough to exert a - ! nonhydrostatic pressure that resist vertical motion. + ! 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 + ! The mass of sea-ice per unit area at which the sea-ice starts to exhibit + ! rigidity LIQUID_RUNOFF_FROM_DATA = MOM6_RIVER_RUNOFF ! [Boolean] default = False ! If true, allows liquid river runoff to be specified via ! the data_table using the component name 'OCN'. diff --git a/parm/mom6/MOM_input_template_100 b/parm/mom6/MOM_input_template_100 index 976b5d69bc..d5af4cccd2 100644 --- a/parm/mom6/MOM_input_template_100 +++ b/parm/mom6/MOM_input_template_100 @@ -72,15 +72,17 @@ WRITE_GEOM = 2 ! 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. +SAVE_INITIAL_CONDS = True ! [Boolean] default = False + ! If true, write the initial conditions to a file given by IC_OUTPUT_FILE. ! === module MOM_domains === TRIPOLAR_N = True ! [Boolean] default = False ! Use tripolar connectivity at the northern edge of the domain. With ! TRIPOLAR_N, NIGLOBAL must be even. -NIGLOBAL = NX_GLB ! +NIGLOBAL = NX_GLB ! ! 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 = NY_GLB ! +NJGLOBAL = NY_GLB ! ! 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. @@ -106,7 +108,7 @@ GRID_ROTATION_ANGLE_BUGS = False ! [Boolean] default = True ! If true, use an older algorithm to calculate the sine and ! cosines needed rotate between grid-oriented directions and ! true north and east. Differences arise at the tripolar fold -USE_TRIPOLAR_GEOLONB_BUG = False ! [Boolean] default = False +USE_TRIPOLAR_GEOLONB_BUG = False ! [Boolean] default = True ! If true, use older code that incorrectly sets the longitude in some points ! along the tripolar fold to be off by 360 degrees. TOPO_CONFIG = "file" ! @@ -165,6 +167,13 @@ CHANNEL_CONFIG = "list" ! default = "none" ! NetCDF file on the model grid. CHANNEL_LIST_FILE = "MOM_channels_SPEAR" ! default = "MOM_channel_list" ! The file from which the list of narrowed channels is read. +GRID_ROTATION_ANGLE_BUGS = False ! [Boolean] default = False + ! If true, use an older algorithm to calculate the sine and cosines needed + ! rotate between grid-oriented directions and true north and east. Differences + ! arise at the tripolar fold. +USE_TRIPOLAR_GEOLONB_BUG = False ! [Boolean] default = False + ! If true, use older code that incorrectly sets the longitude in some points + ! along the tripolar fold to be off by 360 degrees. ! === module MOM_verticalGrid === ! Parameters providing information about the vertical grid. @@ -291,12 +300,12 @@ INIT_LAYERS_FROM_Z_FILE = True ! [Boolean] default = False ! Z-space file on a latitude-longitude grid. ! === module MOM_initialize_layers_from_Z === -TEMP_SALT_Z_INIT_FILE = "MOM6_IC_TS.nc" +TEMP_SALT_Z_INIT_FILE = "MOM6_IC_TS.nc" ! 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. -Z_INIT_FILE_PTEMP_VAR = "temp" ! default = "ptemp" +Z_INIT_FILE_PTEMP_VAR = "temp" ! default = "ptemp" ! The name of the potential temperature variable in ! TEMP_Z_INIT_FILE. Z_INIT_FILE_SALT_VAR = "salt" ! default = "salt" @@ -304,6 +313,9 @@ Z_INIT_FILE_SALT_VAR = "salt" ! default = "salt" ! SALT_Z_INIT_FILE. Z_INIT_ALE_REMAPPING = True ! [Boolean] default = False ! If True, then remap straight to model coordinate from file. +Z_INIT_REMAP_OLD_ALG = True ! [Boolean] default = False + ! If false, uses the preferred remapping algorithm for initialization. If true, + ! use an older, less robust algorithm for remapping. ! === module MOM_diag_mediator === !Jiande NUM_DIAG_COORDS = 2 ! default = 1 @@ -317,9 +329,25 @@ DIAG_COORDS = "z Z ZSTAR" ! is of the form "MODULE_SUFFIX,PARAMETER_SUFFIX,COORDINATE_NAME". DIAG_COORD_DEF_Z="FILE:interpolate_zgrid_40L.nc,interfaces=zw" DIAG_MISVAL = -1e34 -!Jiande DIAG_COORD_DEF_RHO2 = "RFNC1:35,999.5,1028,1028.5,8.,1038.,0.0078125" ! default = "WOA09" - ! Determines how to specify the coordinate - ! resolution. Valid options are: +!AVAILABLE_DIAGS_FILE = "available_diags.002160" ! default = "available_diags.000000" + ! A file into which to write a list of all available ocean diagnostics that can + ! be included in a diag_table. +!DIAG_COORD_DEF_Z = "FILE:vgrid_75_2m.nc,dz" ! default = "WOA09" + ! Determines how to specify the coordinate resolution. Valid options are: + ! PARAM - use the vector-parameter DIAG_COORD_RES_Z + ! 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 +!DIAG_COORD_DEF_RHO2 = "RFNC1:35,999.5,1028,1028.5,8.,1038.,0.0078125" ! 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 @@ -377,7 +405,7 @@ KH_RES_FN_POWER = 100 ! [nondim] default = 2 ! The power of dx/Ld in the Kh resolution function. Any positive integer may be ! used, although even integers are more efficient to calculate. Setting this ! greater than 100 results in a step-function being used. -!JW VISC_RES_FN_POWER = 2 ! [nondim] default = 100 +VISC_RES_FN_POWER = 2 ! [nondim] default = 100 ! The power of dx/Ld in the Kh resolution function. Any positive integer may be ! used, although even integers are more efficient to calculate. Setting this ! greater than 100 results in a step-function being used. This function affects @@ -616,7 +644,7 @@ USE_JACKSON_PARAM = True ! [Boolean] default = False MAX_RINO_IT = 25 ! [nondim] default = 50 ! The maximum number of iterations that may be used to estimate the Richardson ! number driven mixing. -VERTEX_SHEAR = True ! [Boolean] default = False +VERTEX_SHEAR = False ! [Boolean] default = False ! If true, do the calculations of the shear-driven mixing ! at the cell vertices (i.e., the vorticity points). KD_TRUNC_KAPPA_SHEAR = 2.0E-07 ! [m2 s-1] default = 2.0E-07 @@ -639,14 +667,14 @@ KAPPA_SHEAR_ALL_LAYER_TKE_BUG = True ! [Boolean] default = False ! === module MOM_diabatic_aux === ! The following parameters are used for auxiliary diabatic processes. -PRESSURE_DEPENDENT_FRAZIL = false ! [Boolean] default = False +PRESSURE_DEPENDENT_FRAZIL = False ! [Boolean] default = False ! If true, use a pressure dependent freezing temperature when making frazil. The ! default is false, which will be faster but is inappropriate with ice-shelf ! cavities. VAR_PEN_SW = True ! [Boolean] default = False ! If true, use one of the CHL_A schemes specified by OPACITY_SCHEME to determine ! the e-folding depth of incoming short wave radiation. -CHL_FILE = CHLCLIM +CHL_FILE = CHLCLIM ! ! 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. @@ -692,14 +720,6 @@ MIX_LEN_EXPONENT = 1.0 ! [nondim] default = 2.0 USE_LA_LI2016 = MOM6_REPRO_LA ! [nondim] default = False ! A logical to use the Li et al. 2016 (submitted) formula to determine the ! Langmuir number. -EPBL_LANGMUIR_SCHEME = "ADDITIVE" ! default = "NONE" - ! EPBL_LANGMUIR_SCHEME selects the method for including Langmuir turbulence. - ! Valid values are: - ! NONE - Do not do any extra mixing due to Langmuir turbulence - ! RESCALE - Use a multiplicative rescaling of mstar to account for Langmuir - ! turbulence - ! ADDITIVE - Add a Langmuir turblence contribution to mstar to other - ! contributions USE_WAVES = MOM6_USE_WAVES ! [Boolean] default = False ! If true, enables surface wave modules. WAVE_METHOD = "SURFACE_BANDS" ! default = "EMPTY" @@ -723,6 +743,14 @@ STK_BAND_COUPLER = 3 ! default = 1 ! will fail. SURFBAND_WAVENUMBERS = 0.04, 0.11, 0.3305 ! [rad/m] default = 0.12566 ! Central wavenumbers for surface Stokes drift bands. +EPBL_LANGMUIR_SCHEME = "ADDITIVE" ! default = "NONE" + ! EPBL_LANGMUIR_SCHEME selects the method for including Langmuir turbulence. + ! Valid values are: + ! NONE - Do not do any extra mixing due to Langmuir turbulence + ! RESCALE - Use a multiplicative rescaling of mstar to account for Langmuir + ! turbulence + ! ADDITIVE - Add a Langmuir turblence contribution to mstar to other + ! contributions LT_ENHANCE_COEF = 0.044 ! [nondim] default = 0.447 ! Coefficient for Langmuir enhancement of mstar LT_ENHANCE_EXP = -1.5 ! [nondim] default = -1.33 @@ -778,13 +806,14 @@ ENERGYSAVEDAYS = 0.25 ! [days] default = 1.0 ! other globally summed diagnostics. ! === module ocean_model_init === + +! === module MOM_surface_forcing === OCEAN_SURFACE_STAGGER = "A" ! default = "C" ! A case-insensitive character string to indicate the ! staggering of the surface velocity field that is ! returned to the coupler. Valid values include ! 'A', 'B', or 'C'. -! === 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 From cef3392d15c42939d852493cdd68b9ca8311ff91 Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Tue, 8 Dec 2020 21:45:43 +0000 Subject: [PATCH 23/25] updating iovsr after NCAR/ccpp-physics#514 namelist options iovrsw and iovrlw will be replaced by a single iovr option --- ush/parsing_namelists_FV3.sh | 3 +-- workflow/config/fcst.yaml | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/ush/parsing_namelists_FV3.sh b/ush/parsing_namelists_FV3.sh index 083c2e4015..27a3a8470d 100755 --- a/ush/parsing_namelists_FV3.sh +++ b/ush/parsing_namelists_FV3.sh @@ -232,8 +232,7 @@ cat >> input.nml < Date: Thu, 10 Dec 2020 14:13:43 +0000 Subject: [PATCH 24/25] updates for most recent commit to ufs-weather-model includes updates to make CICE input file ice_in match the latest in the rt test options, updates to include fractional grid options (set to false for now), update to have namelist options iovrsw and iovrlw will be replaced by a single iovr which was needed after NCAR/ccpp-physics#514 --- ush/cplvalidate.sh | 6 +++--- ush/nems_configure.sh | 4 ++-- ush/parsing_namelists_CICE.sh | 13 ++++++++++--- ush/parsing_namelists_FV3.sh | 1 + workflow/cases/coupled_free_forecast.yaml | 1 + workflow/cases/coupled_free_forecast_wave.yaml | 3 ++- workflow/config/fcst.yaml | 5 +++++ workflow/defaults/settings.yaml | 1 + 8 files changed, 25 insertions(+), 9 deletions(-) diff --git a/ush/cplvalidate.sh b/ush/cplvalidate.sh index 958684a0db..96186bebbb 100755 --- a/ush/cplvalidate.sh +++ b/ush/cplvalidate.sh @@ -18,20 +18,20 @@ case $confignamevarfornems in 'blocked_atm_wav') combination=.true..false..false..true..false.;; 'leapfrog_atm_wav')combination=.true..false..false..true..false.;; 'med_atm_ocn_ice_wav') combination=.true..true..true..true..false.;; - 'cpld_wav') combination=.true..true..true..true..false.;; + 'cpld_wave') combination=.true..true..true..true..false.;; 'medcold_atm_ocn_ice_wav') combination=.true..true..true..true..false.;; 'med_atm_ocn_ice_wav1way') combination=.true..true..true..true..false.;; 'med_atm_ocn_ice_wav1waywcurr') combination=.true..true..true..true..false.;; 'medcold_atm_ocn_ice_wav') combination=.true..true..true..true..false.;; 'medcold_atm_ocn_ice') combination=.true..true..true..false..false.;; *) echo "SUB cplvalidate: Combination not supported" - exit ;; + exit 1 ;; esac control=$cpl$cplflx$cplice$cplwav$cplchem #echo $control if [ $control != $combination ]; then echo "SUB cplvalidate: inconsistent cpl setting!" - exit 1 + exit 2 else echo "SUB cplvalidate: cpl settings validated!" fi diff --git a/ush/nems_configure.sh b/ush/nems_configure.sh index dd2f88071c..ce9ae44ed5 100755 --- a/ush/nems_configure.sh +++ b/ush/nems_configure.sh @@ -20,9 +20,9 @@ fi DumpFields=${NEMSDumpFields:-false} cap_dbug_flag=${cap_dbug_flag:-0} if [ $warm_start = ".true." ]; then - cmeps_run_type='startup' -else cmeps_run_type='continue' +else + cmeps_run_type='startup' fi if [[ $inistep = "cold" ]]; then restart_interval=0 diff --git a/ush/parsing_namelists_CICE.sh b/ush/parsing_namelists_CICE.sh index d08747238c..60baa023e3 100644 --- a/ush/parsing_namelists_CICE.sh +++ b/ush/parsing_namelists_CICE.sh @@ -2,6 +2,13 @@ CICE_namelists(){ +if [ $warm_start = ".true." ]; then + cmeps_run_type='continue' +else + cmeps_run_type='startup' +fi + + cat > ice_in < ice_in < ice_in < ice_in <> input.nml < Date: Thu, 10 Dec 2020 18:43:23 +0000 Subject: [PATCH 25/25] deleting redundant/renamed files. These files are now nems.configure.cpld(_wave).IN --- ush/nems.configure.med_atm_ocn_ice.IN | 102 ------------------- ush/nems.configure.med_atm_ocn_ice_wav.IN | 116 ---------------------- 2 files changed, 218 deletions(-) delete mode 100755 ush/nems.configure.med_atm_ocn_ice.IN delete mode 100644 ush/nems.configure.med_atm_ocn_ice_wav.IN diff --git a/ush/nems.configure.med_atm_ocn_ice.IN b/ush/nems.configure.med_atm_ocn_ice.IN deleted file mode 100755 index e430f370f6..0000000000 --- a/ush/nems.configure.med_atm_ocn_ice.IN +++ /dev/null @@ -1,102 +0,0 @@ -############################################# -#### NEMS Run-Time Configuration File ##### -############################################# - -# EARTH # -EARTH_component_list: MED ATM OCN ICE -EARTH_attributes:: - Verbosity = 0 -:: - -# MED # -MED_model: @[med_model] -MED_petlist_bounds: @[med_petlist_bounds] -:: - -# ATM # -ATM_model: @[atm_model] -ATM_petlist_bounds: @[atm_petlist_bounds] -ATM_attributes:: - Verbosity = 0 - DumpFields = @[DumpFields] - ProfileMemory = false - OverwriteSlice = true -:: - -# OCN # -OCN_model: @[ocn_model] -OCN_petlist_bounds: @[ocn_petlist_bounds] -OCN_attributes:: - Verbosity = 0 - DumpFields = @[DumpFields] - ProfileMemory = false - OverwriteSlice = true -:: - -# ICE # -ICE_model: @[ice_model] -ICE_petlist_bounds: @[ice_petlist_bounds] -ICE_attributes:: - Verbosity = 0 - DumpFields = @[DumpFields] - ProfileMemory = false - OverwriteSlice = true - mesh_ice = @[MESHICE] - stop_n = @[RESTART_N] - stop_option = nhours - stop_ymd = -999 -:: - -# CMEPS warm run sequence -runSeq:: -@@[coupling_interval_slow_sec] - MED med_phases_prep_ocn_accum_avg - MED -> OCN :remapMethod=redist - OCN - @@[coupling_interval_fast_sec] - MED med_phases_prep_atm - MED med_phases_prep_ice - MED -> ATM :remapMethod=redist - MED -> ICE :remapMethod=redist - ATM - ICE - ATM -> MED :remapMethod=redist - ICE -> MED :remapMethod=redist - MED med_fraction_set - MED med_phases_prep_ocn_map - MED med_phases_prep_ocn_merge - MED med_phases_prep_ocn_accum_fast - MED med_phases_profile - @ - OCN -> MED :remapMethod=redist - MED med_phases_restart_write -@ -:: - -# CMEPS variables - -DRIVER_attributes:: - mediator_read_restart = @[use_coldstart] -:: -MED_attributes:: - ATM_model = @[atm_model] - ICE_model = @[ice_model] - OCN_model = @[ocn_model] - history_n = 0 - history_option = nhours - history_ymd = -999 - coupling_mode = @[CPLMODE] -:: -ALLCOMP_attributes:: - ScalarFieldCount = 2 - ScalarFieldIdxGridNX = 1 - ScalarFieldIdxGridNY = 2 - ScalarFieldName = cpl_scalars - start_type = @[RUNTYPE] - case_name = ./RESTART/ufs.cpld - restart_n = @[RESTART_N] - restart_option = nhours - restart_ymd = -999 - dbug_flag = @[cap_dbug_flag] - use_coldstart = @[use_coldstart] -:: diff --git a/ush/nems.configure.med_atm_ocn_ice_wav.IN b/ush/nems.configure.med_atm_ocn_ice_wav.IN deleted file mode 100644 index 9d4d6dde02..0000000000 --- a/ush/nems.configure.med_atm_ocn_ice_wav.IN +++ /dev/null @@ -1,116 +0,0 @@ -############################################# -#### NEMS Run-Time Configuration File ##### -############################################# - -# EARTH # -EARTH_component_list: MED ATM OCN ICE WAV -EARTH_attributes:: - Verbosity = 0 -:: - -# MED # -MED_model: @[med_model] -MED_petlist_bounds: @[med_petlist_bounds] -:: - -# ATM # -ATM_model: @[atm_model] -ATM_petlist_bounds: @[atm_petlist_bounds] -ATM_attributes:: - Verbosity = 0 - DumpFields = @[DumpFields] - ProfileMemory = false - OverwriteSlice = true -:: - -# OCN # -OCN_model: @[ocn_model] -OCN_petlist_bounds: @[ocn_petlist_bounds] -OCN_attributes:: - Verbosity = 0 - DumpFields = @[DumpFields] - ProfileMemory = false - OverwriteSlice = true -:: - -# ICE # -ICE_model: @[ice_model] -ICE_petlist_bounds: @[ice_petlist_bounds] -ICE_attributes:: - Verbosity = 0 - DumpFields = @[DumpFields] - ProfileMemory = false - OverwriteSlice = true - mesh_ice = @[MESHICE] - stop_n = @[RESTART_N] - stop_option = nhours - stop_ymd = -999 -:: - -# WAV # -WAV_model: @[wav_model] -WAV_petlist_bounds: @[wav_petlist_bounds] -WAV_attributes:: - Verbosity = 0 - OverwriteSlice = false -:: - -# CMEPS warm run sequence -runSeq:: -@@[coupling_interval_slow_sec] - MED med_phases_prep_ocn_accum_avg - MED -> OCN :remapMethod=redist - OCN -> WAV - WAV -> OCN :srcMaskValues=1 - OCN - @@[coupling_interval_fast_sec] - MED med_phases_prep_atm - MED med_phases_prep_ice - MED -> ATM :remapMethod=redist - MED -> ICE :remapMethod=redist - WAV -> ATM :srcMaskValues=1 - ATM -> WAV - ICE -> WAV - ATM - ICE - WAV - ATM -> MED :remapMethod=redist - ICE -> MED :remapMethod=redist - MED med_fraction_set - MED med_phases_prep_ocn_map - MED med_phases_prep_ocn_merge - MED med_phases_prep_ocn_accum_fast - MED med_phases_profile - @ - OCN -> MED :remapMethod=redist - MED med_phases_restart_write -@ -:: - -# CMEPS variables - -DRIVER_attributes:: - mediator_read_restart = @[use_coldstart] -:: -MED_attributes:: - ATM_model = @[atm_model] - ICE_model = @[ice_model] - OCN_model = @[ocn_model] - history_n = 0 - history_option = nhours - history_ymd = -999 - coupling_mode = @[CPLMODE] -:: -ALLCOMP_attributes:: - ScalarFieldCount = 2 - ScalarFieldIdxGridNX = 1 - ScalarFieldIdxGridNY = 2 - ScalarFieldName = cpl_scalars - start_type = @[RUNTYPE] - case_name = ./RESTART/ufs.cpld - restart_n = @[RESTART_N] - restart_option = nhours - restart_ymd = -999 - dbug_flag = @[cap_dbug_flag] - use_coldstart = @[use_coldstart] -::