diff --git a/Externals.cfg b/Externals.cfg index e5d7c0d8c9..35b75a2260 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -8,7 +8,7 @@ protocol = git required = True [UFS] -tag = 63a43d9 +tag = 3ba8dff local_path = sorc/ufs_model.fd repo_url = https://github.com/ufs-community/ufs-weather-model.git protocol = git diff --git a/parm/config/gefs/config.base.emc.dyn b/parm/config/gefs/config.base.emc.dyn index 12a8422ea2..08516dbbc7 100644 --- a/parm/config/gefs/config.base.emc.dyn +++ b/parm/config/gefs/config.base.emc.dyn @@ -183,17 +183,17 @@ export ICERES=${OCNRES} case "${APP}" in ATM) - export confignamevarfornems="atm" + export confignamevarforufs="atm" ;; ATMA) export DO_AERO="YES" - export confignamevarfornems="atm_aero" + export confignamevarforufs="atm_aero" ;; ATMW) export DO_COUPLED="YES" export DO_WAVE="YES" export WAVE_CDUMP="both" - export confignamevarfornems="leapfrog_atm_wav" + export confignamevarforufs="leapfrog_atm_wav" ;; NG-GODAS) export DO_ATM="NO" @@ -205,18 +205,18 @@ case "${APP}" in export DO_OCN="YES" export DO_ICE="YES" export CCPP_SUITE="FV3_GFS_v17_coupled_p8_ugwpv1" # TODO: Does this include FV3_GFS_v17_p8? Can this be used instead of FV3_GFS_v17_p8 on L141 - export confignamevarfornems="cpld" + export confignamevarforufs="cpld" if [[ "${APP}" =~ A$ ]]; then export DO_AERO="YES" - export confignamevarfornems="${confignamevarfornems}_aero" + export confignamevarforufs="${confignamevarforufs}_aero" fi if [[ "${APP}" =~ ^S2SW ]]; then export DO_WAVE="YES" export WAVE_CDUMP="both" export cplwav2atm=".true." - export confignamevarfornems="${confignamevarfornems}_outerwave" + export confignamevarforufs="${confignamevarforufs}_outerwave" fi ;; *) diff --git a/parm/config/gefs/config.fcst b/parm/config/gefs/config.fcst index 4d43c38b82..331dcd5a78 100644 --- a/parm/config/gefs/config.fcst +++ b/parm/config/gefs/config.fcst @@ -252,9 +252,9 @@ export DO_LAND_PERT=${DO_LAND_PERT:-"NO"} export DO_CA=${DO_CA:-"YES"} #coupling settings -export cplmode="nems_frac" +export cplmode="ufs.frac" if [[ "${FRAC_GRID:-".true."}" == ".false." ]]; then - export cplmode="nems_orig" + export cplmode="ufs.nfrac" fi export psm_bc="1" diff --git a/parm/config/gfs/config.base.emc.dyn b/parm/config/gfs/config.base.emc.dyn index fdf5bc25c1..b3e16fe4f8 100644 --- a/parm/config/gfs/config.base.emc.dyn +++ b/parm/config/gfs/config.base.emc.dyn @@ -196,17 +196,17 @@ export ICERES=${OCNRES} case "${APP}" in ATM) - export confignamevarfornems="atm" + export confignamevarforufs="atm" ;; ATMA) export DO_AERO="YES" - export confignamevarfornems="atm_aero" + export confignamevarforufs="atm_aero" ;; ATMW) export DO_COUPLED="YES" export DO_WAVE="YES" export WAVE_CDUMP="both" - export confignamevarfornems="leapfrog_atm_wav" + export confignamevarforufs="leapfrog_atm_wav" ;; NG-GODAS) export DO_ATM="NO" @@ -218,18 +218,18 @@ case "${APP}" in export DO_OCN="YES" export DO_ICE="YES" export CCPP_SUITE="FV3_GFS_v17_coupled_p8_ugwpv1" # TODO: Does this include FV3_GFS_v17_p8? Can this be used instead of FV3_GFS_v17_p8 on L149 - export confignamevarfornems="cpld" + export confignamevarforufs="cpld" if [[ "${APP}" =~ A$ ]]; then export DO_AERO="YES" - export confignamevarfornems="${confignamevarfornems}_aero" + export confignamevarforufs="${confignamevarforufs}_aero" fi if [[ "${APP}" =~ ^S2SW ]]; then export DO_WAVE="YES" export WAVE_CDUMP="both" export cplwav2atm=".true." - export confignamevarfornems="${confignamevarfornems}_outerwave" + export confignamevarforufs="${confignamevarforufs}_outerwave" fi ;; diff --git a/parm/config/gfs/config.fcst b/parm/config/gfs/config.fcst index 7a3c1b3b30..4cecf27a34 100644 --- a/parm/config/gfs/config.fcst +++ b/parm/config/gfs/config.fcst @@ -252,9 +252,9 @@ export DO_LAND_PERT=${DO_LAND_PERT:-"NO"} export DO_CA=${DO_CA:-"YES"} #coupling settings -export cplmode="nems_frac" +export cplmode="ufs.frac" if [[ "${FRAC_GRID:-".true."}" == ".false." ]]; then - export cplmode="nems_orig" + export cplmode="ufs.nfrac" fi export psm_bc="1" diff --git a/parm/ufs/fix/gfs/atmos.fixed_files.yaml b/parm/ufs/fix/gfs/atmos.fixed_files.yaml index cc82f7a253..a4e9958e45 100644 --- a/parm/ufs/fix/gfs/atmos.fixed_files.yaml +++ b/parm/ufs/fix/gfs/atmos.fixed_files.yaml @@ -81,5 +81,5 @@ copy: - [$(FIX_lut)/optics_SS.v3_3.dat, $(DATA)/optics_SS.dat] - [$(FIX_lut)/optics_SU.v1_3.dat, $(DATA)/optics_SU.dat] - # fd_nems.yaml file - - [$(HOMEgfs)/sorc/ufs_model.fd/tests/parm/fd_nems.yaml, $(DATA)/] + # fd_ufs.yaml file + - [$(HOMEgfs)/sorc/ufs_model.fd/tests/parm/fd_ufs.yaml, $(DATA)/] diff --git a/parm/ufs/nems.configure.atm.IN b/parm/ufs/ufs.configure.atm.IN similarity index 100% rename from parm/ufs/nems.configure.atm.IN rename to parm/ufs/ufs.configure.atm.IN diff --git a/parm/ufs/nems.configure.atm_aero.IN b/parm/ufs/ufs.configure.atm_aero.IN similarity index 95% rename from parm/ufs/nems.configure.atm_aero.IN rename to parm/ufs/ufs.configure.atm_aero.IN index dcce57b048..a83a4f9cad 100644 --- a/parm/ufs/nems.configure.atm_aero.IN +++ b/parm/ufs/ufs.configure.atm_aero.IN @@ -1,5 +1,5 @@ ############################################# -#### NEMS Run-Time Configuration File ##### +#### UFS Run-Time Configuration File ##### ############################################# # ESMF # diff --git a/parm/ufs/nems.configure.blocked_atm_wav.IN b/parm/ufs/ufs.configure.blocked_atm_wav.IN similarity index 94% rename from parm/ufs/nems.configure.blocked_atm_wav.IN rename to parm/ufs/ufs.configure.blocked_atm_wav.IN index 9aeaefa875..b68aa2e735 100644 --- a/parm/ufs/nems.configure.blocked_atm_wav.IN +++ b/parm/ufs/ufs.configure.blocked_atm_wav.IN @@ -1,5 +1,5 @@ ############################################# -#### NEMS Run-Time Configuration File ##### +#### UFS Run-Time Configuration File ##### ############################################# # ESMF # diff --git a/parm/ufs/nems.configure.cpld.IN b/parm/ufs/ufs.configure.cpld.IN similarity index 98% rename from parm/ufs/nems.configure.cpld.IN rename to parm/ufs/ufs.configure.cpld.IN index 2182a96384..5265e7f13b 100644 --- a/parm/ufs/nems.configure.cpld.IN +++ b/parm/ufs/ufs.configure.cpld.IN @@ -1,5 +1,5 @@ ############################################# -#### NEMS Run-Time Configuration File ##### +#### UFS Run-Time Configuration File ##### ############################################# # ESMF # diff --git a/parm/ufs/nems.configure.cpld_aero.IN b/parm/ufs/ufs.configure.cpld_aero.IN similarity index 98% rename from parm/ufs/nems.configure.cpld_aero.IN rename to parm/ufs/ufs.configure.cpld_aero.IN index 7b13318094..d998338583 100644 --- a/parm/ufs/nems.configure.cpld_aero.IN +++ b/parm/ufs/ufs.configure.cpld_aero.IN @@ -1,5 +1,5 @@ ############################################# -#### NEMS Run-Time Configuration File ##### +#### UFS Run-Time Configuration File ##### ############################################# # ESMF # diff --git a/parm/ufs/nems.configure.cpld_aero_outerwave.IN b/parm/ufs/ufs.configure.cpld_aero_outerwave.IN similarity index 98% rename from parm/ufs/nems.configure.cpld_aero_outerwave.IN rename to parm/ufs/ufs.configure.cpld_aero_outerwave.IN index fbbf4441f1..f95f5d9b8e 100644 --- a/parm/ufs/nems.configure.cpld_aero_outerwave.IN +++ b/parm/ufs/ufs.configure.cpld_aero_outerwave.IN @@ -1,5 +1,5 @@ ############################################# -#### NEMS Run-Time Configuration File ##### +#### UFS Run-Time Configuration File ##### ############################################# # ESMF # diff --git a/parm/ufs/nems.configure.cpld_aero_wave.IN b/parm/ufs/ufs.configure.cpld_aero_wave.IN similarity index 98% rename from parm/ufs/nems.configure.cpld_aero_wave.IN rename to parm/ufs/ufs.configure.cpld_aero_wave.IN index 2bb0416983..38ca37de72 100644 --- a/parm/ufs/nems.configure.cpld_aero_wave.IN +++ b/parm/ufs/ufs.configure.cpld_aero_wave.IN @@ -1,5 +1,5 @@ ############################################# -#### NEMS Run-Time Configuration File ##### +#### UFS Run-Time Configuration File ##### ############################################# # ESMF # diff --git a/parm/ufs/nems.configure.cpld_outerwave.IN b/parm/ufs/ufs.configure.cpld_outerwave.IN similarity index 98% rename from parm/ufs/nems.configure.cpld_outerwave.IN rename to parm/ufs/ufs.configure.cpld_outerwave.IN index 521e59941a..a2c6c34777 100644 --- a/parm/ufs/nems.configure.cpld_outerwave.IN +++ b/parm/ufs/ufs.configure.cpld_outerwave.IN @@ -1,5 +1,5 @@ ############################################# -#### NEMS Run-Time Configuration File ##### +#### UFS Run-Time Configuration File ##### ############################################# # ESMF # diff --git a/parm/ufs/nems.configure.cpld_wave.IN b/parm/ufs/ufs.configure.cpld_wave.IN similarity index 98% rename from parm/ufs/nems.configure.cpld_wave.IN rename to parm/ufs/ufs.configure.cpld_wave.IN index f9f4bc99ff..96c83501d1 100644 --- a/parm/ufs/nems.configure.cpld_wave.IN +++ b/parm/ufs/ufs.configure.cpld_wave.IN @@ -1,5 +1,5 @@ ############################################# -#### NEMS Run-Time Configuration File ##### +#### UFS Run-Time Configuration File ##### ############################################# # ESMF # diff --git a/parm/ufs/nems.configure.leapfrog_atm_wav.IN b/parm/ufs/ufs.configure.leapfrog_atm_wav.IN similarity index 94% rename from parm/ufs/nems.configure.leapfrog_atm_wav.IN rename to parm/ufs/ufs.configure.leapfrog_atm_wav.IN index b302a27e8a..ec22c9478c 100644 --- a/parm/ufs/nems.configure.leapfrog_atm_wav.IN +++ b/parm/ufs/ufs.configure.leapfrog_atm_wav.IN @@ -1,5 +1,5 @@ ############################################# -#### NEMS Run-Time Configuration File ##### +#### UFS Run-Time Configuration File ##### ############################################# # ESMF # diff --git a/scripts/exglobal_forecast.sh b/scripts/exglobal_forecast.sh index 86cea85dee..3cc96989eb 100755 --- a/scripts/exglobal_forecast.sh +++ b/scripts/exglobal_forecast.sh @@ -2,7 +2,7 @@ ################################################################################ ## UNIX Script Documentation Block -## Script name: exglobal_fcst_nemsfv3gfs.sh +## Script name: exglobal_forecast.sh ## Script description: Runs a global FV3GFS model forecast ## ## Author: Fanglin Yang Organization: NCEP/EMC Date: 2016-11-15 @@ -70,7 +70,7 @@ ## ## Namelist input, in RUNDIR, ## 1. diag_table -## 2. nems.configure +## 2. ufs.configure ## 3. model_configure ## 4. input.nml ####################### @@ -84,11 +84,11 @@ source "${HOMEgfs}/ush/cplvalidate.sh" # validation of cpl* source "${HOMEgfs}/ush/forecast_predet.sh" # include functions for variable definition source "${HOMEgfs}/ush/forecast_det.sh" # include functions for run type determination source "${HOMEgfs}/ush/forecast_postdet.sh" # include functions for variables after run type determination -source "${HOMEgfs}/ush/nems_configure.sh" # include functions for nems_configure processing +source "${HOMEgfs}/ush/ufs_configure.sh" # include functions for ufs.configure processing source "${HOMEgfs}/ush/parsing_model_configure_FV3.sh" -# Compset string. For nems.configure.* template selection. Default ATM only -confignamevarfornems=${confignamevarfornems:-'atm'} +# Compset string. For ufs.configure.* template selection. Default ATM only +confignamevarforufs=${confignamevarforufs:-'atm'} # Coupling control switches, for coupling purpose, off by default cpl=${cpl:-.false.} @@ -104,9 +104,9 @@ ICETIM=${DELTIM} CPL_SLOW=${CPL_SLOW:-${OCNTIM}} CPL_FAST=${CPL_FAST:-${ICETIM}} -echo "MAIN: Validating '${confignamevarfornems}' with cpl switches" +echo "MAIN: Validating '${confignamevarforufs}' with cpl switches" cplvalidate -echo "MAIN: '${confignamevarfornems}' validated, continue" +echo "MAIN: '${confignamevarforufs}' validated, continue" echo "MAIN: Loading common variables before determination of run type" common_predet @@ -142,9 +142,9 @@ FV3_nml FV3_model_configure echo "MAIN: Name lists and model configuration written" -echo "MAIN: Writing NEMS Configure file" -writing_nems_configure -echo "MAIN: NEMS configured" +echo "MAIN: Writing UFS Configure file" +writing_ufs_configure +echo "MAIN: UFS configured" #------------------------------------------------------------------ # run the executable diff --git a/sorc/checkout.sh b/sorc/checkout.sh index a80ee90d55..2b54502772 100755 --- a/sorc/checkout.sh +++ b/sorc/checkout.sh @@ -151,7 +151,7 @@ source "${topdir}/../workflow/gw_setup.sh" # The checkout version should always be a speciifc commit (hash or tag), not a branch errs=0 # Checkout UFS submodules in parallel -checkout "ufs_model.fd" "https://github.com/ufs-community/ufs-weather-model" "${ufs_model_hash:-63a43d9}" "8" & +checkout "ufs_model.fd" "https://github.com/ufs-community/ufs-weather-model" "${ufs_model_hash:-3ba8dff}" "8" & # Run all other checkouts simultaneously with just 1 core each to handle submodules. checkout "wxflow" "https://github.com/NOAA-EMC/wxflow" "528f5ab" & @@ -177,13 +177,6 @@ for checkout_pid in $(jobs -p); do wait "${checkout_pid}" || errs=$((errs + $?)) done -# Temporary hack to check out a UPP verison that works on Orion -# This can be removed once the UFS UPP version advances to or beyond 78f369b -cd "${topdir}/ufs_model.fd/FV3/upp" || exit 1 -git checkout 78f369b -cd "${topdir}" || exit 1 -# End hack - if (( errs > 0 )); then echo "WARNING: One or more errors encountered during checkout process, please check logs before building" fi diff --git a/sorc/link_workflow.sh b/sorc/link_workflow.sh index d2328caba9..6c7e9a73f1 100755 --- a/sorc/link_workflow.sh +++ b/sorc/link_workflow.sh @@ -156,21 +156,21 @@ for file in finddate.sh make_ntc_bull.pl make_NTC_file.pl make_tif.sh month_name ${LINK_OR_COPY} "${HOMEgfs}/sorc/gfs_utils.fd/ush/${file}" . done -# TODO: Link these nems.configure templates from ufs-weather-model +# TODO: Link these ufs.configure templates from ufs-weather-model #cd "${HOMEgfs}/parm/ufs" || exit 1 -#declare -a nems_configure_files=("nems.configure.atm.IN" \ -# "nems.configure.atm_aero.IN" \ -# "nems.configure.atmw.IN" \ -# "nems.configure.blocked_atm_wav_2way.IN" \ -# "nems.configure.blocked_atm_wav.IN" \ -# "nems.configure.cpld_agrid.IN" \ -# "nems.configure.cpld_esmfthreads.IN" \ -# "nems.configure.cpld.IN" \ -# "nems.configure.cpld_noaero.IN" \ -# "nems.configure.cpld_noaero_nowave.IN" \ -# "nems.configure.cpld_noaero_outwav.IN" \ -# "nems.configure.leapfrog_atm_wav.IN") -#for file in "${nems_configure_files[@]}"; do +#declare -a ufs_configure_files=("ufs.configure.atm.IN" \ +# "ufs.configure.atm_aero.IN" \ +# "ufs.configure.atmw.IN" \ +# "ufs.configure.blocked_atm_wav_2way.IN" \ +# "ufs.configure.blocked_atm_wav.IN" \ +# "ufs.configure.cpld_agrid.IN" \ +# "ufs.configure.cpld_esmfthreads.IN" \ +# "ufs.configure.cpld.IN" \ +# "ufs.configure.cpld_noaero.IN" \ +# "ufs.configure.cpld_noaero_nowave.IN" \ +# "ufs.configure.cpld_noaero_outwav.IN" \ +# "ufs.configure.leapfrog_atm_wav.IN") +#for file in "${ufs_configure_files[@]}"; do # [[ -s "${file}" ]] && rm -f "${file}" # ${LINK_OR_COPY} "${HOMEgfs}/sorc/ufs_model.fd/tests/parm/${file}" . #done diff --git a/test/diff_UFS_rundir.sh b/test/diff_UFS_rundir.sh index fac2242a65..a305497ef3 100755 --- a/test/diff_UFS_rundir.sh +++ b/test/diff_UFS_rundir.sh @@ -69,8 +69,8 @@ temp_file=".diff.nc" coord_file="${coord_file:-./coordinates.lst}" # Input files -files="data_table diag_table fd_nems.yaml field_table ice_in input.nml med_modelio.nml \ - model_configure nems.configure pio_in ww3_multi.inp ww3_shel.inp" +files="data_table diag_table fd_ufs.yaml field_table ice_in input.nml med_modelio.nml \ + model_configure ufs.configure pio_in ww3_multi.inp ww3_shel.inp" for file in $files; do echo "=== ${file} ===" diff --git a/ush/cplvalidate.sh b/ush/cplvalidate.sh index 168bd0ff53..4d72a305d0 100755 --- a/ush/cplvalidate.sh +++ b/ush/cplvalidate.sh @@ -1,7 +1,7 @@ #! /usr/bin/env bash ##### -## This script validates $confignamevarfornems +## This script validates $confignamevarforufs ## against cpl** switches to check consistency ## ## This is a child script of modular @@ -9,9 +9,9 @@ ##### cplvalidate(){ -echo "SUB cplvalidate: validating cpl** switches for ${confignamevarfornems}" +echo "SUB cplvalidate: validating cpl** switches for ${confignamevarforufs}" return # TODO: Why are we returning right here? -case ${confignamevarfornems} in +case ${confignamevarforufs} in 'atm') combination=.false..false..false..false..false.;; 'datm') combination=.true..true..false..false..false.;; 'atm_aero') combination=.true..false..false..false..true.;; diff --git a/ush/forecast_postdet.sh b/ush/forecast_postdet.sh index 9d93f52840..7b94b2167e 100755 --- a/ush/forecast_postdet.sh +++ b/ush/forecast_postdet.sh @@ -516,7 +516,7 @@ FV3_out() { # No need to copy FV3 restart files when RUN=gfs or gefs ${NCP} "${DATA}/input.nml" "${COM_CONF}/ufs.input.nml" ${NCP} "${DATA}/model_configure" "${COM_CONF}/ufs.model_configure" - ${NCP} "${DATA}/nems.configure" "${COM_CONF}/ufs.nems.configure" + ${NCP} "${DATA}/ufs.configure" "${COM_CONF}/ufs.ufs.configure" ${NCP} "${DATA}/diag_table" "${COM_CONF}/ufs.diag_table" fi echo "SUB ${FUNCNAME[0]}: Output data for FV3 copied" @@ -882,7 +882,7 @@ CICE_postdet() { # TODO: These settings should be elevated to config.ice histfreq_n=${histfreq_n:-6} - dumpfreq_n=${dumpfreq_n:-1000} # Set this to a really large value, as cice, mom6 and cmeps restart interval is controlled by nems.configure + dumpfreq_n=${dumpfreq_n:-1000} # Set this to a really large value, as cice, mom6 and cmeps restart interval is controlled by ufs.configure dumpfreq=${dumpfreq:-"y"} # "h","d","m" or "y" for restarts at intervals of "hours", "days", "months" or "years" if [[ "${RUN}" =~ "gdas" ]]; then diff --git a/ush/load_ufswm_modules.sh b/ush/load_ufswm_modules.sh index 9fea63f402..6a8b30ccd5 100755 --- a/ush/load_ufswm_modules.sh +++ b/ush/load_ufswm_modules.sh @@ -14,25 +14,19 @@ source "${HOMEgfs}/ush/module-setup.sh" if [[ "${MACHINE_ID}" != "noaacloud" ]]; then module use "${HOMEgfs}/sorc/ufs_model.fd/tests" module load modules.ufs_model.lua + module load prod_util if [[ "${MACHINE_ID}" = "wcoss2" ]]; then - module load prod_util module load cray-pals module load cfp module load libjpeg module load craype-network-ucx module load cray-mpich-ucx else - module load prod-util export UTILROOT=${prod_util_ROOT} fi module load wgrib2 export WGRIB2=wgrib2 fi -if [[ "${MACHINE_ID}" = "hera" ]]; then - module use "/scratch2/NCEPDEV/ensemble/save/Walter.Kolczynski/modulefiles/core" - module load "miniconda3/4.6.14" - module load "gfs_workflow/1.0.0" -fi if [[ "${MACHINE_ID}" == "noaacloud" ]]; then if [[ "${PW_CSP:-}" = "aws" ]]; then diff --git a/ush/parsing_model_configure_FV3.sh b/ush/parsing_model_configure_FV3.sh index bff9e0fc69..f01b596a16 100755 --- a/ush/parsing_model_configure_FV3.sh +++ b/ush/parsing_model_configure_FV3.sh @@ -47,6 +47,7 @@ num_files: ${NUM_FILES:-2} filename_base: 'atm' 'sfc' output_grid: ${OUTPUT_GRID} output_file: '${OUTPUT_FILETYPE_ATM}' '${OUTPUT_FILETYPE_SFC}' +zstandard_level: 0 ichunk2d: ${ichunk2d:-0} jchunk2d: ${jchunk2d:-0} ichunk3d: ${ichunk3d:-0} diff --git a/ush/parsing_namelists_FV3.sh b/ush/parsing_namelists_FV3.sh index da51966645..709a5741a0 100755 --- a/ush/parsing_namelists_FV3.sh +++ b/ush/parsing_namelists_FV3.sh @@ -318,6 +318,9 @@ cat >> input.nml <> "${DATA}/nems.configure" -echo "Rendered nems.configure:" -cat nems.configure +rm -f "${DATA}/ufs.configure" +atparse < "${template}" >> "${DATA}/ufs.configure" +echo "Rendered ufs.configure:" +cat ufs.configure -${NCP} "${HOMEgfs}/sorc/ufs_model.fd/tests/parm/fd_nems.yaml" fd_nems.yaml +${NCP} "${HOMEgfs}/sorc/ufs_model.fd/tests/parm/fd_ufs.yaml" fd_ufs.yaml -echo "SUB ${FUNCNAME[0]}: nems.configure.sh ends for ${confignamevarfornems}" +echo "SUB ${FUNCNAME[0]}: ufs.configure.sh ends for ${confignamevarforufs}" }