From e24938be6937f708006203a26669cb4506b897c8 Mon Sep 17 00:00:00 2001 From: "Chan-Hoo.Jeon-NOAA" <60152248+chan-hoo@users.noreply.github.com> Date: Tue, 23 Nov 2021 13:49:55 -0500 Subject: [PATCH 1/5] Update hash of ufs weather model for use of pressure tendency diagnostic (#193) * Update hash of ufs weather model * Update hash of regional workflow --- Externals.cfg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Externals.cfg b/Externals.cfg index 4adeee52ee..1db24d2d87 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -3,7 +3,7 @@ protocol = git repo_url = https://github.com/NOAA-EMC/regional_workflow # Specify either a branch name or a hash but not both. #branch = develop -hash = bf733c1 +hash = a1bd5ca local_path = regional_workflow required = True @@ -21,7 +21,7 @@ protocol = git repo_url = https://github.com/ufs-community/ufs-weather-model # Specify either a branch name or a hash but not both. #branch = develop -hash = 3b8bb78 +hash = ddcd809 local_path = src/ufs-weather-model required = True From 5efd657e61c78bdd20e41e8441fe57adfe3d4f4e Mon Sep 17 00:00:00 2001 From: "Chan-Hoo.Jeon-NOAA" <60152248+chan-hoo@users.noreply.github.com> Date: Mon, 13 Dec 2021 16:34:54 -0500 Subject: [PATCH 2/5] Make thompson_mynn_lam3km ccpp suite available (#197) * Add thompson_mynn_lam3km --- src/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 30e9c7b518..ce11ee7404 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -9,7 +9,7 @@ ExternalProject_Add(UFS_UTILS ) if(NOT CCPP_SUITES) - set(CCPP_SUITES "FV3_CPT_v0,FV3_GFS_2017_gfdlmp,FV3_GFS_2017_gfdlmp_regional,FV3_GSD_SAR,FV3_GSD_v0,FV3_GFS_v15p2,FV3_GFS_v16,FV3_RRFS_v1beta,FV3_HRRR,FV3_RRFS_v1alpha") + set(CCPP_SUITES "FV3_CPT_v0,FV3_GFS_2017_gfdlmp,FV3_GFS_2017_gfdlmp_regional,FV3_GSD_SAR,FV3_GSD_v0,FV3_GFS_v15p2,FV3_GFS_v16,FV3_RRFS_v1beta,FV3_HRRR,FV3_RRFS_v1alpha,FV3_GFS_v15_thompson_mynn_lam3km") endif() if(NOT APP) From 029b82a5ca37d0b1fe0eef1cb1849739679bcbca Mon Sep 17 00:00:00 2001 From: "Chan-Hoo.Jeon-NOAA" <60152248+chan-hoo@users.noreply.github.com> Date: Tue, 14 Dec 2021 11:45:32 -0500 Subject: [PATCH 3/5] Hash of UFS_UTILS is updated with latest (#195) * Update hash of UFS_UTILS with latest * Update env file for hera * update w3emc on Orion * update hash of regional_workflow * change version of rocoto on wcoss dell --- Externals.cfg | 4 ++-- env/build_hera_intel.env | 2 +- env/build_orion_intel.env | 2 +- env/wflow_wcoss_dell_p3.env | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Externals.cfg b/Externals.cfg index 1db24d2d87..d9aa676566 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -3,7 +3,7 @@ protocol = git repo_url = https://github.com/NOAA-EMC/regional_workflow # Specify either a branch name or a hash but not both. #branch = develop -hash = a1bd5ca +hash = bb54e59 local_path = regional_workflow required = True @@ -12,7 +12,7 @@ protocol = git repo_url = https://github.com/ufs-community/UFS_UTILS # Specify either a branch name or a hash but not both. #branch = develop -hash = ea821358 +hash = f30740e local_path = src/UFS_UTILS required = True diff --git a/env/build_hera_intel.env b/env/build_hera_intel.env index 664079ee66..64eb91eb3b 100644 --- a/env/build_hera_intel.env +++ b/env/build_hera_intel.env @@ -26,7 +26,7 @@ module load g2tmpl/1.10.0 module load ip/3.3.3 module load nemsio/2.5.2 module load sp/2.3.3 -module load w3emc/2.9.1 +module load w3emc/2.9.0 module load sigio/2.3.2 module load w3nco/2.4.1 module load upp/10.0.6 diff --git a/env/build_orion_intel.env b/env/build_orion_intel.env index 085d469be5..b7a0fb0de0 100644 --- a/env/build_orion_intel.env +++ b/env/build_orion_intel.env @@ -17,7 +17,7 @@ module load g2tmpl/1.10.0 module load ip/3.3.3 module load sp/2.3.3 module load w3nco/2.4.1 -module load w3emc/2.9.1 +module load w3emc/2.7.3 module load crtm/2.3.0 module load upp/10.0.10 diff --git a/env/wflow_wcoss_dell_p3.env b/env/wflow_wcoss_dell_p3.env index 8b834cfe77..fe0c07d257 100644 --- a/env/wflow_wcoss_dell_p3.env +++ b/env/wflow_wcoss_dell_p3.env @@ -2,7 +2,7 @@ module load lsf/10.1 module use /gpfs/dell3/usrx/local/dev/emc_rocoto/modulefiles/ -module load ruby/2.5.1 rocoto/1.3.0rc2 +module load ruby/2.5.1 rocoto/1.2.4 module load python/3.6.3 module use /usrx/local/nceplibs/dev/modulefiles From 9f2068e9a295280e19828275973190e086a2581d Mon Sep 17 00:00:00 2001 From: "Chan-Hoo.Jeon-NOAA" <60152248+chan-hoo@users.noreply.github.com> Date: Thu, 20 Jan 2022 11:32:33 -0500 Subject: [PATCH 4/5] Update to newer version of UFS Weather Model using srw_common (#200) * update hash of ufs weather model * update env files * Add machine-detect to devbuild.sh * Update wcoss on platform list * update test/build.sh * update README file --- Externals.cfg | 2 +- devbuild.sh | 33 +++++---- env/build_cheyenne_gnu.env | 35 ++-------- env/build_cheyenne_intel.env | 38 +++------- env/build_hera_intel.env | 36 +++------- env/build_jet_intel.env | 27 +------ env/build_orion_intel.env | 27 +------ env/build_wcoss_cray_intel.env | 31 ++++++--- env/build_wcoss_dell_p3_intel.env | 34 ++------- env/detect_machine.sh | 112 ++++++++++++++++++++++++++++++ env/srw_common | 33 +++++++++ src/CMakeLists.txt | 1 + test/README.md | 8 +-- test/build.sh | 38 +++++----- 14 files changed, 248 insertions(+), 207 deletions(-) create mode 100755 env/detect_machine.sh create mode 100644 env/srw_common diff --git a/Externals.cfg b/Externals.cfg index d9aa676566..cee7860e5e 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -21,7 +21,7 @@ protocol = git repo_url = https://github.com/ufs-community/ufs-weather-model # Specify either a branch name or a hash but not both. #branch = develop -hash = ddcd809 +hash = 805421d local_path = src/ufs-weather-model required = True diff --git a/devbuild.sh b/devbuild.sh index 5547b971f3..44ec5f957a 100755 --- a/devbuild.sh +++ b/devbuild.sh @@ -3,15 +3,14 @@ # usage instructions usage () { cat << EOF_USAGE -Usage: $0 PLATFORM [OPTIONS]... - -PLATFORM - name of machine you are building on - (e.g. cheyenne | hera | jet | orion | wcoss) +Usage: $0 [OPTIONS]... OPTIONS -h, --help show this help guide + --platform=PLATFORM + name of machine you are building on + (e.g. cheyenne | hera | jet | orion | wcoss_cray | wcoss_dell_p3) --compiler=COMPILER compiler to use; default depends on platform (e.g. intel | gnu | cray | gccgfortran) @@ -84,7 +83,6 @@ SRC_DIR=$(cd "$(dirname "$(readlink -f -n "${BASH_SOURCE[0]}" )" )" && pwd -P) MACHINE_SETUP=${SRC_DIR}/src/UFS_UTILS/sorc/machine-setup.sh BUILD_DIR=${SRC_DIR}/build INSTALL_DIR=${SRC_DIR} -PLATFORM="" COMPILER="" APPLICATION="" CCPP="" @@ -95,22 +93,21 @@ BUILD_JOBS=4 CLEAN=false CONTINUE=false VERBOSE=false +# detect PLATFORM (MACHINE) +source ${SRC_DIR}/env/detect_machine.sh # process required arguments if [[ ("$1" == "--help") || ("$1" == "-h") ]]; then usage exit 0 -elif [[ ($# -lt 1) || ("$1" == "-"*) ]]; then - usage_error "missing platform" -else - PLATFORM=$1 - shift fi # process optional arguments while :; do case $1 in --help|-h) usage; exit 0 ;; + --platform=?*) PLATFORM=${1#*=} ;; + --platform|--platform=) usage_error "$1 requires argument." ;; --compiler=?*) COMPILER=${1#*=} ;; --compiler|--compiler=) usage_error "$1 requires argument." ;; --app=?*) APPLICATION=${1#*=} ;; @@ -148,13 +145,16 @@ if [ -z "${COMPILER}" ] ; then case ${PLATFORM} in jet|hera) COMPILER=intel ;; orion) COMPILER=intel ;; - wcoss) COMPILER=cray_intel ;; + wcoss_cray) COMPILER=intel ;; + wcoss_dell_p3) COMPILER=intel ;; cheyenne) COMPILER=intel ;; macos) COMPILER=gccgfortran ;; *) printf "ERROR: Unknown platform ${PLATFORM}\n" >&2; usage >&2; exit 1 ;; esac fi +printf "COMPILER=${COMPILER}\n" >&2 + # print settings if [ "${VERBOSE}" = true ] ; then settings @@ -171,6 +171,8 @@ if [ ! -f "${ENV_FILE}" ]; then exit 64 fi +printf "ENV_FILE=${ENV_FILE}\n" >&2 + # if build directory already exists then exit if [ "${CLEAN}" = true ]; then printf "Remove build directory\n" @@ -227,11 +229,16 @@ if [ "${VERBOSE}" = true ]; then MAKE_SETTINGS="${MAKE_SETTINGS} VERBOSE=1" fi -# source the README file for this platform/compiler combination, then build the code +# source the environment file for this platform/compiler combination, then build the code +printf "... Source ENV_FILE and create BUILD directory ...\n" +module use ${SRC_DIR}/env . ${ENV_FILE} +module list mkdir -p ${BUILD_DIR} cd ${BUILD_DIR} +printf "... Generate CMAKE configuration ...\n" cmake ${SRC_DIR} ${CMAKE_SETTINGS} 2>&1 | tee log.cmake +printf "... Compile executables ...\n" make ${MAKE_SETTINGS} 2>&1 | tee log.make exit 0 diff --git a/env/build_cheyenne_gnu.env b/env/build_cheyenne_gnu.env index 02356fcedc..876aff5fab 100644 --- a/env/build_cheyenne_gnu.env +++ b/env/build_cheyenne_gnu.env @@ -1,41 +1,20 @@ #Setup instructions for CISL Cheyenne using Intel-19.1.1 (bash shell) module purge + +module load cmake/3.18.2 module load ncarenv/1.3 -module load gnu/9.1.0 +module load gnu/10.1.0 module load mpt/2.22 module load ncarcompilers/0.5.0 -module load cmake/3.18.2 module unload netcdf -module use /glade/p/ral/jntp/GMTB/tools/hpc-stack-v1.1.0/modulefiles/stack -module load hpc/1.1.0 -module load hpc-gnu/9.1.0 +module use /glade/p/ral/jntp/GMTB/tools/hpc-stack-v1.2.0/modulefiles/stack +module load hpc/1.2.0 +module load hpc-gnu/10.1.0 module load hpc-mpt/2.22 -module load jasper/2.0.22 -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.2 -module load esmf/8_1_1 -module load fms/2020.04.03 -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 nemsio/2.5.2 -module load sp/2.3.3 -module load w3emc/2.7.3 -module load w3nco/2.4.1 -module load upp/10.0.6 -module load gfsio/1.4.1 -module load sfcio/1.4.1 -module load landsfcutil/2.4.1 -module load nemsiogfs/2.5.3 -module load wgrib2/2.0.8 +module load srw_common export CMAKE_C_COMPILER=mpicc export CMAKE_CXX_COMPILER=mpicxx diff --git a/env/build_cheyenne_intel.env b/env/build_cheyenne_intel.env index 3e3a1b5914..e4641b841d 100644 --- a/env/build_cheyenne_intel.env +++ b/env/build_cheyenne_intel.env @@ -1,42 +1,20 @@ #Setup instructions for CISL Cheyenne using Intel-19.1.1 (bash shell) module purge + +module load cmake/3.18.2 module load ncarenv/1.3 -module load intel/19.1.1 +module load intel/2021.2 module load mpt/2.22 module load ncarcompilers/0.5.0 -module load cmake/3.18.2 +module unload netcdf -module use /glade/p/ral/jntp/GMTB/tools/hpc-stack-v1.1.0/modulefiles/stack -module load hpc/1.1.0 -module load hpc-intel/19.1.1 +module use /glade/p/ral/jntp/GMTB/tools/hpc-stack-v1.2.0/modulefiles/stack +module load hpc/1.2.0 +module load hpc-intel/2021.2 module load hpc-mpt/2.22 -module load jasper/2.0.22 -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.2 -module load esmf/8_1_1 -module load fms/2020.04.03 - -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 nemsio/2.5.2 -module load sp/2.3.3 -module load w3emc/2.7.3 -module load w3nco/2.4.1 -module load upp/10.0.6 - -module load gfsio/1.4.1 -module load sfcio/1.4.1 -module load landsfcutil/2.4.1 -module load nemsiogfs/2.5.3 -module load wgrib2/2.0.8 +module load srw_common export CMAKE_C_COMPILER=mpicc export CMAKE_CXX_COMPILER=mpicxx diff --git a/env/build_hera_intel.env b/env/build_hera_intel.env index 64eb91eb3b..5eea2338a8 100644 --- a/env/build_hera_intel.env +++ b/env/build_hera_intel.env @@ -2,8 +2,12 @@ module purge +module use /scratch1/NCEPDEV/nems/emc.nemspara/soft/modulefiles +module load miniconda3/3.7.3 + module use /contrib/sutils/modulefiles module load sutils + module load cmake/3.20.1 module use /scratch2/NCEPDEV/nwprod/hpc-stack/libs/hpc-stack/modulefiles/stack @@ -11,34 +15,16 @@ module use /scratch2/NCEPDEV/nwprod/hpc-stack/libs/hpc-stack/modulefiles/stack module load hpc/1.1.0 module load hpc-intel/18.0.5.274 module load hpc-impi/2018.0.4 -module load jasper/2.0.22 -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.2 -module load esmf/8_1_1 -module load fms/2020.04.03 -module load bacio/2.4.1 -module load crtm/2.3.0 -module load g2/3.4.3 -module load g2tmpl/1.10.0 -module load ip/3.3.3 -module load nemsio/2.5.2 -module load sp/2.3.3 -module load w3emc/2.9.0 -module load sigio/2.3.2 -module load w3nco/2.4.1 -module load upp/10.0.6 - -module load gfsio/1.4.1 -module load sfcio/1.4.1 -module load landsfcutil/2.4.1 -module load nemsiogfs/2.5.3 -module load wgrib2/2.0.8 +module load srw_common + +module unload fms +module load fms/2021.03-avx export CMAKE_C_COMPILER=mpiicc export CMAKE_CXX_COMPILER=mpiicpc export CMAKE_Fortran_COMPILER=mpiifort export CMAKE_Platform=hera.intel + +# use shared memory and OpenFabrics Alliance (OFA) fabric with Intel MPI to circumvent RDMA-related bug in DAPL. +export I_MPI_Platform=shm:ofa diff --git a/env/build_jet_intel.env b/env/build_jet_intel.env index 30cb99dee2..777930d660 100644 --- a/env/build_jet_intel.env +++ b/env/build_jet_intel.env @@ -1,8 +1,10 @@ #Setup instructions for NOAA RDHPC Jet using Intel-18.0.5.274 (bash shell) module purge + module use /contrib/sutils/modulefiles module load sutils + module load cmake/3.20.1 module use /lfs4/HFIP/hfv3gfs/nwprod/hpc-stack/libs/modulefiles/stack @@ -10,31 +12,8 @@ module use /lfs4/HFIP/hfv3gfs/nwprod/hpc-stack/libs/modulefiles/stack module load hpc/1.1.0 module load hpc-intel/18.0.5.274 module load hpc-impi/2018.4.274 -module load jasper/2.0.22 -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.2 -module load esmf/8_1_1 -module load fms/2020.04.03 -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 nemsio/2.5.2 -module load sp/2.3.3 -module load w3emc/2.7.3 -module load w3nco/2.4.1 -module load upp/10.0.6 - -module load gfsio/1.4.1 -module load sfcio/1.4.1 -module load landsfcutil/2.4.1 -module load nemsiogfs/2.5.3 -module load wgrib2/2.0.8 +module load srw_common export CMAKE_C_COMPILER=mpiicc export CMAKE_CXX_COMPILER=mpiicpc diff --git a/env/build_orion_intel.env b/env/build_orion_intel.env index b7a0fb0de0..3b4fd79c48 100644 --- a/env/build_orion_intel.env +++ b/env/build_orion_intel.env @@ -11,32 +11,7 @@ module load hpc/1.1.0 module load hpc-intel/2018.4 module load hpc-impi/2018.4 -module load bacio/2.4.1 -module load g2/3.4.3 -module load g2tmpl/1.10.0 -module load ip/3.3.3 -module load sp/2.3.3 -module load w3nco/2.4.1 -module load w3emc/2.7.3 -module load crtm/2.3.0 -module load upp/10.0.10 - -module load jasper/2.0.25 -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.2 -module load esmf/8_1_1 -module load fms/2020.04.03 -module load nemsio/2.5.2 -module load gfsio/1.4.1 -module load sfcio/1.4.1 -module load sigio/2.3.2 -module load landsfcutil/2.4.1 -module load nemsiogfs/2.5.3 -module load wgrib2/2.0.8 - +module load srw_common export CMAKE_C_COMPILER=mpiicc export CMAKE_CXX_COMPILER=mpiicpc diff --git a/env/build_wcoss_cray_intel.env b/env/build_wcoss_cray_intel.env index ec010ab2af..e8aed822de 100644 --- a/env/build_wcoss_cray_intel.env +++ b/env/build_wcoss_cray_intel.env @@ -22,24 +22,37 @@ export PNG_ROOT="/usrx/local/prod//png/1.2.49/intel/sandybridge" ## NCEP libraries module use /usrx/local/nceplibs/NCEPLIBS/cmake/install/NCEPLIBS-v1.3.0/modules +module load pio/2.5.2 module load bacio/2.4.1 module load crtm/2.3.0 -module load esmf/811 -module load fms/2020.04.03 -module load gfsio/1.4.1 module load g2/3.4.1 -module load g2tmpl/1.9.1 +module load g2tmpl/1.10.0 module load ip/3.3.3 -module load landsfcutil/2.4.1 module load nemsio/2.5.2 -module load nemsiogfs/2.5.3 -module load sfcio/1.4.1 -module load sigio/2.3.2 module load sp/2.3.3 -module load upp/10.0.6 module load w3emc/2.7.3 module load w3nco/2.4.1 +module load gfsio/1.4.1 +module load sfcio/1.4.1 +module load sigio/2.3.2 + +module load upp/10.0.10 + +## WCOSS Cray execution prereqs: +module load rca +module load alps +module load xpmem +module load gni-headers +module load udreg +module load ugni + +module load esmf/820 +module load fms/2021.03 + +module load landsfcutil/2.4.1 +module load nemsiogfs/2.5.3 + module use /gpfs/hps/nco/ops/nwprod/lib/modulefiles module load wgrib2-intel/2.0.8 diff --git a/env/build_wcoss_dell_p3_intel.env b/env/build_wcoss_dell_p3_intel.env index bfa4ce6f06..31978ef186 100644 --- a/env/build_wcoss_dell_p3_intel.env +++ b/env/build_wcoss_dell_p3_intel.env @@ -2,43 +2,23 @@ module purge +module load ips/18.0.5.274 +module load impi/18.0.1 +module load lsf/10.1 +module load python/3.6.3 + ### hpc-stack ### module use /usrx/local/nceplibs/dev/hpc-stack/libs/hpc-stack/modulefiles/stack module load hpc/1.1.0 -module load hpc-ips/18.0.1.163 +module load hpc-ips/18.0.5.274 module load hpc-impi/18.0.1 -module load bacio/2.4.1 -module load crtm/2.3.0 -module load esmf/8_1_1 -module load fms/2020.04.03 -module load gfsio/1.4.1 -module load g2/3.4.3 -module load g2tmpl/1.10.0 -module load hdf5/1.10.6 -module load ip/3.3.3 -module load jasper/2.0.22 -module load landsfcutil/2.4.1 -module load nemsio/2.5.2 -module load nemsiogfs/2.5.3 -module load netcdf/4.7.4 -module load png/1.6.35 -module load sfcio/1.4.1 -module load sigio/2.3.2 -module load sp/2.3.3 -module load upp/10.0.6 -module load w3emc/2.7.3 -module load w3nco/2.4.1 -module load wgrib2/2.0.8 -module load zlib/1.2.11 +module load srw_common module load cmake/3.20.0 module load HPSS/5.0.2.5 -module load lsf/10.1 -module load python/3.6.3 export CMAKE_C_COMPILER=mpiicc export CMAKE_CXX_COMPILER=mpiicpc export CMAKE_Fortran_COMPILER=mpiifort export CMAKE_Platform=wcoss_dell_p3 - diff --git a/env/detect_machine.sh b/env/detect_machine.sh new file mode 100755 index 0000000000..ba06998338 --- /dev/null +++ b/env/detect_machine.sh @@ -0,0 +1,112 @@ +#!/bin/bash + +case $(hostname -f) in + + llogin1) MACHINE_ID=wcoss_cray ;; ### luna + llogin2) MACHINE_ID=wcoss_cray ;; ### luna + llogin3) MACHINE_ID=wcoss_cray ;; ### luna + + slogin1) MACHINE_ID=wcoss_cray ;; ### surge + slogin2) MACHINE_ID=wcoss_cray ;; ### surge + slogin3) MACHINE_ID=wcoss_cray ;; ### surge + + v71a1.ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### venus + v71a2.ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### venus + v71a3.ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### venus + v72a1.ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### venus + v72a2.ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### venus + v72a3.ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### venus + + m71a1.ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### mars + m71a2.ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### mars + m71a3.ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### mars + m72a1.ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### mars + m72a2.ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### mars + m72a3.ncep.noaa.gov) MACHINE_ID=wcoss_dell_p3 ;; ### mars + + alogin01.acorn.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### acorn + alogin02.acorn.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### acorn + adecflow01.acorn.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### acorn + adecflow02.acorn.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### acorn + + gaea9) MACHINE_ID=gaea ;; ### gaea9 + gaea10) MACHINE_ID=gaea ;; ### gaea10 + gaea11) MACHINE_ID=gaea ;; ### gaea11 + gaea12) MACHINE_ID=gaea ;; ### gaea12 + gaea13) MACHINE_ID=gaea ;; ### gaea13 + gaea14) MACHINE_ID=gaea ;; ### gaea14 + gaea15) MACHINE_ID=gaea ;; ### gaea15 + gaea16) MACHINE_ID=gaea ;; ### gaea16 + gaea9.ncrc.gov) MACHINE_ID=gaea ;; ### gaea9 + gaea10.ncrc.gov) MACHINE_ID=gaea ;; ### gaea10 + gaea11.ncrc.gov) MACHINE_ID=gaea ;; ### gaea11 + gaea12.ncrc.gov) MACHINE_ID=gaea ;; ### gaea12 + gaea13.ncrc.gov) MACHINE_ID=gaea ;; ### gaea13 + gaea14.ncrc.gov) MACHINE_ID=gaea ;; ### gaea14 + gaea15.ncrc.gov) MACHINE_ID=gaea ;; ### gaea15 + gaea16.ncrc.gov) MACHINE_ID=gaea ;; ### gaea16 + + hfe01) MACHINE_ID=hera ;; ### hera01 + hfe02) MACHINE_ID=hera ;; ### hera02 + hfe03) MACHINE_ID=hera ;; ### hera03 + hfe04) MACHINE_ID=hera ;; ### hera04 + hfe05) MACHINE_ID=hera ;; ### hera05 + hfe06) MACHINE_ID=hera ;; ### hera06 + hfe07) MACHINE_ID=hera ;; ### hera07 + hfe08) MACHINE_ID=hera ;; ### hera08 + hfe09) MACHINE_ID=hera ;; ### hera09 + hfe10) MACHINE_ID=hera ;; ### hera10 + hfe11) MACHINE_ID=hera ;; ### hera11 + hfe12) MACHINE_ID=hera ;; ### hera12 + hecflow01) MACHINE_ID=hera ;; ### heraecflow01 + + s4-submit.ssec.wisc.edu) MACHINE_ID=s4 ;; ### s4 + + fe1) MACHINE_ID=jet ;; ### jet01 + fe2) MACHINE_ID=jet ;; ### jet02 + fe3) MACHINE_ID=jet ;; ### jet03 + fe4) MACHINE_ID=jet ;; ### jet04 + fe5) MACHINE_ID=jet ;; ### jet05 + fe6) MACHINE_ID=jet ;; ### jet06 + fe7) MACHINE_ID=jet ;; ### jet07 + fe8) MACHINE_ID=jet ;; ### jet08 + tfe1) MACHINE_ID=jet ;; ### jet09 + tfe2) MACHINE_ID=jet ;; ### jet10 + + Orion-login-1.HPC.MsState.Edu) MACHINE_ID=orion ;; ### orion1 + Orion-login-2.HPC.MsState.Edu) MACHINE_ID=orion ;; ### orion2 + Orion-login-3.HPC.MsState.Edu) MACHINE_ID=orion ;; ### orion3 + Orion-login-4.HPC.MsState.Edu) MACHINE_ID=orion ;; ### orion4 + + cheyenne1.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne1 + cheyenne2.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne2 + cheyenne3.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne3 + cheyenne4.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne4 + cheyenne5.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne5 + cheyenne6.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne6 + cheyenne1.ib0.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne1 + cheyenne2.ib0.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne2 + cheyenne3.ib0.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne3 + cheyenne4.ib0.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne4 + cheyenne5.ib0.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne5 + cheyenne6.ib0.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne6 + chadmin1.ib0.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne1 + chadmin2.ib0.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne1 + chadmin3.ib0.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne1 + chadmin4.ib0.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne1 + chadmin5.ib0.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne1 + chadmin6.ib0.cheyenne.ucar.edu) MACHINE_ID=cheyenne ;; ### cheyenne1 + + login1.stampede2.tacc.utexas.edu) MACHINE_ID=stampede ;; ### stampede1 + login2.stampede2.tacc.utexas.edu) MACHINE_ID=stampede ;; ### stampede2 + login3.stampede2.tacc.utexas.edu) MACHINE_ID=stampede ;; ### stampede3 + login4.stampede2.tacc.utexas.edu) MACHINE_ID=stampede ;; ### stampede4 + + login01.expanse.sdsc.edu) MACHINE_ID=expanse ;; ### expanse1 + login02.expanse.sdsc.edu) MACHINE_ID=expanse ;; ### expanse2 +esac + +MACHINE="${MACHINE_ID}" +PLATFORM="${MACHINE}" + +printf "PLATFORM(MACHINE)=${PLATFORM}\n" >&2 diff --git a/env/srw_common b/env/srw_common new file mode 100644 index 0000000000..f45a439d5d --- /dev/null +++ b/env/srw_common @@ -0,0 +1,33 @@ +#%Module + +module load jasper/2.0.25 +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.2 +module load esmf/8_2_0 +module load fms/2021.03 + +module load bacio/2.4.1 +module load crtm/2.3.0 +module load g2/3.4.2 +module load g2tmpl/1.10.0 +module load ip/3.3.3 +module load sp/2.3.3 +module load w3nco/2.4.1 +module load upp/10.0.10 + +module load gftl-shared/v1.3.3 +module load yafyaml/v0.5.1 +module load mapl/2.11.0-esmf-8_2_0 + +module load gfsio/1.4.1 +module load landsfcutil/2.4.1 +module load nemsio/2.5.2 +module load nemsiogfs/2.5.3 +module load sfcio/1.4.1 +module load sigio/2.3.2 +module load w3emc/2.7.3 +module load wgrib2/2.0.8 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ce11ee7404..746e6c3580 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -27,6 +27,7 @@ list(APPEND UFS_WEATHER_MODEL_ARGS "-DCMAKE_CXX_COMPILER=${MPI_CXX_COMPILER}" "-DCMAKE_Fortran_COMPILER=${MPI_Fortran_COMPILER}" "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}" + "-DCMAKE_MODULE_PATH=${MAPL_ROOT}/share/MAPL/cmake" "-DNETCDF_DIR=$ENV{NETCDF}" "-D32BIT=ON" "-DINLINE_POST=ON" diff --git a/test/README.md b/test/README.md index 00aa478c83..84f58027eb 100644 --- a/test/README.md +++ b/test/README.md @@ -13,9 +13,9 @@ for the current code in the users ufs-srweather-app directory. It consists of t Currently, the following configurations are supported: -Machine | Cheyenne | Hera | Jet | -------------| ---------------|----------------|----------------| -Compiler(s) | Intel, GNU | Intel | Intel | +Machine | Cheyenne | Hera | Jet | Orion | wcoss_cray | wcoss_dell_p3 | +------------| ------------|--------|--------|--------|-------------|----------------| +Compiler(s) | Intel, GNU | Intel | Intel | Intel | Intel | Intel | The CMake build is done in the ``build_${compiler}`` directory. The executables for each build are installed under the ``bin_${compiler}`` directory. @@ -33,7 +33,7 @@ On cheyenne: ``` cd test -./build.sh cheyenne >& build.out & +./build.sh >& build.out & ``` Check the ``${SR_WX_APP_TOP_DIR}/test/build_test$PID.out`` file for PASS/FAIL. diff --git a/test/build.sh b/test/build.sh index 2bce9bfff9..186c6b90e0 100755 --- a/test/build.sh +++ b/test/build.sh @@ -5,11 +5,9 @@ # built are listed below in $executables_created. # A pass/fail message is printed at the end of the output. # -# Necessary input parameters: machine name (jet hera or cheyenne) -# # Usage: see function usage below # -# Examples: ./build.sh $machine >& test.out & +# Examples: ./build.sh >& test.out & # set -eux # Uncomment for debugging #======================================================================= @@ -18,21 +16,28 @@ fail() { echo -e "\n$1\n" >> ${TEST_OUTPUT} && exit 1; } function usage() { echo - echo "Usage: $0 machine | -h" - echo - echo " machine [required] is one of: ${machines[@]}" - echo " -h display this help" + echo "Usage: $0 " echo exit 1 } -machines=( hera jet cheyenne ) +machines=( hera jet cheyenne orion wcoss_cray wcoss_dell_p3 ) -[[ $# -eq 0 ]] && usage -if [ "$1" = "-h" ] ; then usage ; fi +[[ $# -eq 1 ]] && usage -export machine=${1} -machine=$(echo "${machine}" | tr '[A-Z]' '[a-z]') # scripts in sorc need lower case machine name + +#----------------------------------------------------------------------- +# Set some directories +#----------------------------------------------------------------------- +PID=$$ +TEST_DIR=$( pwd ) # Directory with this script +TOP_DIR=${TEST_DIR}/.. # Top level (umbrella repo) directory +TEST_OUTPUT=${TEST_DIR}/build_test${PID}.out + +# Detect MACHINE +source ${TOP_DIR}/env/detect_machine.sh + +machine=$(echo "${MACHINE}" | tr '[A-Z]' '[a-z]') # scripts in sorc need lower case machine name #----------------------------------------------------------------------- # Check that machine is valid @@ -53,13 +58,6 @@ else compilers=( intel ) fi -#----------------------------------------------------------------------- -# Set some directories -#----------------------------------------------------------------------- -PID=$$ -TEST_DIR=$( pwd ) # Directory with this script -TOP_DIR=${TEST_DIR}/.. # Top level (umbrella repo) directory -TEST_OUTPUT=${TEST_DIR}/build_test${PID}.out build_it=0 # Set to 1 to skip build (for testing pass/fail criteria) #----------------------------------------------------------------------- @@ -102,7 +100,7 @@ declare -a executables_created=( chgres_cube \ BIN_DIR=${TOP_DIR}/bin_${compiler} EXEC_DIR=${BIN_DIR}/bin if [ $build_it -eq 0 ] ; then - ./devbuild.sh ${machine} --compiler=${compiler} --build-dir=${BUILD_DIR} --install-dir=${BIN_DIR} \ + ./devbuild.sh --compiler=${compiler} --build-dir=${BUILD_DIR} --install-dir=${BIN_DIR} \ --clean || fail "Build ${machine} ${compiler} FAILED" fi # End of skip build for testing From 8c904abdcb51d0f4424a5dd8159498be2a8e1342 Mon Sep 17 00:00:00 2001 From: Christina Holt <56881914+christinaholtNOAA@users.noreply.github.com> Date: Mon, 31 Jan 2022 17:52:19 -0600 Subject: [PATCH 5/5] Updating the hash to the regional_workflow (#204) --- Externals.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Externals.cfg b/Externals.cfg index cee7860e5e..09677fd44b 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -3,7 +3,7 @@ protocol = git repo_url = https://github.com/NOAA-EMC/regional_workflow # Specify either a branch name or a hash but not both. #branch = develop -hash = bb54e59 +hash = 20a149d local_path = regional_workflow required = True