From 74c9f3f08fcf71ce62946b1caa4b517700f4895b Mon Sep 17 00:00:00 2001 From: chan-hoo Date: Wed, 18 Jan 2023 11:18:27 +0000 Subject: [PATCH 01/15] aqm build and module files --- Externals_AQM.cfg | 38 +++++++++ devbuild.sh | 84 ++++++++++++++++++- modulefiles/build_hera_intel.lua | 2 + modulefiles/build_orion_intel.lua | 2 + modulefiles/build_wcoss2_intel.lua | 31 ++++--- modulefiles/srw_common.lua | 6 +- modulefiles/tasks/hera/aqm_ics.local.lua | 2 + modulefiles/tasks/hera/aqm_lbcs.local.lua | 1 + .../tasks/hera/fire_emission.local.lua | 2 + .../tasks/hera/miniconda_online-cmaq.lua | 5 ++ .../tasks/hera/nexus_emission.local.lua | 2 + .../tasks/hera/nexus_gfs_sfc.local.lua | 2 + .../tasks/hera/nexus_post_split.local.lua | 2 + modulefiles/tasks/hera/point_source.local.lua | 1 + modulefiles/tasks/orion/aqm_ics.local.lua | 2 + modulefiles/tasks/orion/aqm_lbcs.local.lua | 1 + .../tasks/orion/miniconda_online-cmaq.lua | 4 + .../tasks/orion/nexus_emission.local.lua | 2 + .../tasks/orion/nexus_post_split.local.lua | 2 + .../tasks/orion/point_source.local.lua | 1 + modulefiles/tasks/wcoss2/aqm_ics.local.lua | 6 ++ modulefiles/tasks/wcoss2/aqm_lbcs.local.lua | 5 ++ .../tasks/wcoss2/bias_correction_o3.local.lua | 5 ++ .../wcoss2/bias_correction_pm25.local.lua | 5 ++ .../tasks/wcoss2/fire_emission.local.lua | 1 + modulefiles/tasks/wcoss2/make_grid.local.lua | 3 + modulefiles/tasks/wcoss2/make_ics.local.lua | 3 + modulefiles/tasks/wcoss2/make_lbcs.local.lua | 3 + modulefiles/tasks/wcoss2/make_orog.local.lua | 3 + .../tasks/wcoss2/make_sfc_climo.local.lua | 3 + .../tasks/wcoss2/nexus_emission.local.lua | 5 ++ .../tasks/wcoss2/nexus_post_split.local.lua | 5 ++ .../tasks/wcoss2/point_source.local.lua | 1 + .../tasks/wcoss2/post_stat_o3.local.lua | 5 ++ .../tasks/wcoss2/post_stat_pm25.local.lua | 5 ++ .../tasks/wcoss2/pre_post_stat.local.lua | 6 ++ modulefiles/tasks/wcoss2/run_fcst.local.lua | 9 ++ modulefiles/tasks/wcoss2/run_post.local.lua | 2 + versions/build.ver.wcoss2 | 19 +++-- versions/run.ver.wcoss2 | 11 ++- 40 files changed, 273 insertions(+), 24 deletions(-) create mode 100644 Externals_AQM.cfg create mode 100644 modulefiles/tasks/hera/aqm_ics.local.lua create mode 100644 modulefiles/tasks/hera/aqm_lbcs.local.lua create mode 100644 modulefiles/tasks/hera/fire_emission.local.lua create mode 100644 modulefiles/tasks/hera/miniconda_online-cmaq.lua create mode 100644 modulefiles/tasks/hera/nexus_emission.local.lua create mode 100644 modulefiles/tasks/hera/nexus_gfs_sfc.local.lua create mode 100644 modulefiles/tasks/hera/nexus_post_split.local.lua create mode 100644 modulefiles/tasks/hera/point_source.local.lua create mode 100644 modulefiles/tasks/orion/aqm_ics.local.lua create mode 100644 modulefiles/tasks/orion/aqm_lbcs.local.lua create mode 100644 modulefiles/tasks/orion/miniconda_online-cmaq.lua create mode 100644 modulefiles/tasks/orion/nexus_emission.local.lua create mode 100644 modulefiles/tasks/orion/nexus_post_split.local.lua create mode 100644 modulefiles/tasks/orion/point_source.local.lua create mode 100644 modulefiles/tasks/wcoss2/aqm_ics.local.lua create mode 100644 modulefiles/tasks/wcoss2/aqm_lbcs.local.lua create mode 100644 modulefiles/tasks/wcoss2/bias_correction_o3.local.lua create mode 100644 modulefiles/tasks/wcoss2/bias_correction_pm25.local.lua create mode 100644 modulefiles/tasks/wcoss2/fire_emission.local.lua create mode 100644 modulefiles/tasks/wcoss2/nexus_emission.local.lua create mode 100644 modulefiles/tasks/wcoss2/nexus_post_split.local.lua create mode 100644 modulefiles/tasks/wcoss2/point_source.local.lua create mode 100644 modulefiles/tasks/wcoss2/post_stat_o3.local.lua create mode 100644 modulefiles/tasks/wcoss2/post_stat_pm25.local.lua create mode 100644 modulefiles/tasks/wcoss2/pre_post_stat.local.lua diff --git a/Externals_AQM.cfg b/Externals_AQM.cfg new file mode 100644 index 0000000000..a249406132 --- /dev/null +++ b/Externals_AQM.cfg @@ -0,0 +1,38 @@ +[ufs_utils] +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 = ca9bed8 +local_path = sorc/UFS_UTILS +required = True + +[ufs-weather-model] +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 = 3610672 +local_path = sorc/ufs-weather-model +required = True + +[arl_nexus] +protocol = git +repo_url = https://github.com/noaa-oar-arl/NEXUS +# Specify either a branch name or a hash but not both. +#branch = develop +hash = 3842818 +local_path = sorc/arl_nexus +required = True + +[aqm-utils] +protocol = git +repo_url = https://github.com/NOAA-EMC/AQM-utils +# Specify either a branch name or a hash but not both. +#branch = develop +hash = 103a798 +local_path = sorc/AQM-utils +required = True + +[externals_description] +schema_version = 1.0.0 diff --git a/devbuild.sh b/devbuild.sh index d31ed0eca7..f0823cabdf 100755 --- a/devbuild.sh +++ b/devbuild.sh @@ -15,8 +15,8 @@ OPTIONS compiler to use; default depends on platform (e.g. intel | gnu | cray | gccgfortran) -a, --app=APPLICATION - weather model application to build - (e.g. ATM | ATMW | S2S | S2SW) + weather model application to build; for example, ATMAQ for Online-CMAQ + (e.g. ATM | ATMAQ | ATMW | S2S | S2SW) --ccpp="CCPP_SUITE1,CCPP_SUITE2..." CCPP suites (CCPP_SUITES) to include in build; delimited with ',' --enable-options="OPTION1,OPTION2,..." @@ -87,6 +87,8 @@ Settings: BUILD_UPP=${BUILD_UPP} BUILD_GSI=${BUILD_GSI} BUILD_RRFS_UTILS=${BUILD_RRFS_UTILS} + BUILD_NEXUS=${BUILD_NEXUS} + BUILD_AQM_UTILS=${BUILD_AQM_UTILS} EOF_SETTINGS } @@ -101,6 +103,7 @@ usage_error () { # default settings LCL_PID=$$ SRW_DIR=$(cd "$(dirname "$(readlink -f -n "${BASH_SOURCE[0]}" )" )" && pwd -P) +BIN_DIR="${SRW_DIR}/bin" MACHINE_SETUP=${SRW_DIR}/src/UFS_UTILS/sorc/machine-setup.sh BUILD_DIR="${SRW_DIR}/build" INSTALL_DIR=${SRW_DIR} @@ -123,6 +126,8 @@ BUILD_UFS_UTILS="off" BUILD_UPP="off" BUILD_GSI="off" BUILD_RRFS_UTILS="off" +BUILD_NEXUS="off" +BUILD_AQM_UTILS="off" # Make options CLEAN=false @@ -182,6 +187,8 @@ while :; do upp) DEFAULT_BUILD=false; BUILD_UPP="on" ;; gsi) DEFAULT_BUILD=false; BUILD_GSI="on" ;; rrfs_utils) DEFAULT_BUILD=false; BUILD_RRFS_UTILS="on" ;; + nexus) DEFAULT_BUILD=false; BUILD_NEXUS="on" ;; + aqm_utils) DEFAULT_BUILD=false; BUILD_AQM_UTILS="on" ;; # unknown -?*|?*) usage_error "Unknown option $1" ;; *) break @@ -200,6 +207,7 @@ fi APPLICATION="${APPLICATION^^}" PLATFORM="${PLATFORM,,}" COMPILER="${COMPILER,,}" +EXTERNALS="${EXTERNALS^^}" # check if PLATFORM is set if [ -z $PLATFORM ] ; then @@ -237,6 +245,42 @@ if [ "${VERBOSE}" = true ] ; then settings fi +# Check out external components =============================================== +if [ "${APPLICATION}" = "ATMAQ" ]; then + if [ -d "${SRW_DIR}/sorc/arl_nexus" ]; then + printf "!!! Extra external components already exist. This step is skipped.\n" + else + if [ -d "${SRW_DIR}/sorc/gsi" ]; then + printf "!!! FV3-LAM components exist. The existing components are removed.\n" + rm -rf "${SRW_DIR}/sorc/ufs-weather-model" + rm -rf "${SRW_DIR}/sorc/UFS_UTILS" + rm -rf "${SRW_DIR}/sorc/UPP" + rm -rf "${SRW_DIR}/sorc/gsi" + rm -rf "${SRW_DIR}/sorc/rrfs_utl" + fi + printf "... Checking out external components for Online-CMAQ ...\n" + ./manage_externals/checkout_externals -e Externals_AQM.cfg + fi + + if [ "${DEFAULT_BUILD}" = true ]; then + BUILD_NEXUS="on" + BUILD_AQM_UTILS="on" + BUILD_UPP="off" + fi + if [ "${PLATFORM}" = "wcoss2" ]; then + BUILD_POST_STAT="on" + else + BUILD_POST_STAT="off" + fi +else + if [ -d "${SRW_DIR}/sorc/ufs-weather-model" ]; then + printf "!!! External components already exist. This step is skipped.\n" + else + printf "... Checking out external components for FV3-LAM ...\n" + ./manage_externals/checkout_externals + fi +fi + # source version file only if it is specified in versions directory BUILD_VERSION_FILE="${SRW_DIR}/versions/build.ver.${PLATFORM}" if [ -f ${BUILD_VERSION_FILE} ]; then @@ -304,7 +348,8 @@ CMAKE_SETTINGS="\ -DBUILD_UFS_UTILS=${BUILD_UFS_UTILS}\ -DBUILD_UPP=${BUILD_UPP}\ -DBUILD_GSI=${BUILD_GSI}\ - -DBUILD_RRFS_UTILS=${BUILD_RRFS_UTILS}" + -DBUILD_NEXUS=${BUILD_NEXUS}\ + -DBUILD_AQM_UTILS=${BUILD_AQM_UTILS}" if [ ! -z "${APPLICATION}" ]; then CMAKE_SETTINGS="${CMAKE_SETTINGS} -DAPP=${APPLICATION}" @@ -318,6 +363,29 @@ fi if [ ! -z "${DISABLE_OPTIONS}" ]; then CMAKE_SETTINGS="${CMAKE_SETTINGS} -DDISABLE_OPTIONS=${DISABLE_OPTIONS}" fi +if [ "${APPLICATION}" = "ATMAQ" ]; then + CMAKE_SETTINGS="${CMAKE_SETTINGS} -DCPL_AQM=ON -DBUILD_POST_STAT=${BUILD_POST_STAT}" + + # Copy module files to designated directory + EXTRN_BUILD_MOD_DIR="${SRW_DIR}/modulefiles/extrn_comp_build" + mkdir -p ${EXTRN_BUILD_MOD_DIR} + if [ "${BUILD_UFS}" = "on" ]; then + cp "${SRW_DIR}/sorc/ufs-weather-model/modulefiles/ufs_${PLATFORM}.${COMPILER}.lua" "${EXTRN_BUILD_MOD_DIR}/mod_ufs-weather-model.lua" + cp "${SRW_DIR}/sorc/ufs-weather-model/modulefiles/ufs_common.lua" ${EXTRN_BUILD_MOD_DIR} + fi + if [ "${BUILD_UFS_UTILS}" = "on" ]; then + cp "${SRW_DIR}/sorc/UFS_UTILS/modulefiles/build.${PLATFORM}.${COMPILER}.lua" "${EXTRN_BUILD_MOD_DIR}/mod_ufs-utils.lua" + fi + if [ "${BUILD_UPP}" = "on" ]; then + cp "${SRW_DIR}/sorc/UPP/modulefiles/${PLATFORM}.lua" "${EXTRN_BUILD_MOD_DIR}/mod_upp.lua" + fi + if [ "${BUILD_NEXUS}" = "on" ]; then + cp "${SRW_DIR}/sorc/AQM-utils/parm/nexus_modulefiles/${PLATFORM}.${COMPILER}.lua" "${EXTRN_BUILD_MOD_DIR}/mod_nexus.lua" + fi + if [ "${BUILD_AQM_UTILS}" = "on" ]; then + cp "${SRW_DIR}/sorc/AQM-utils/modulefiles/build_${PLATFORM}.${COMPILER}.lua" "${EXTRN_BUILD_MOD_DIR}/mod_aqm-utils.lua" + fi +fi # make settings MAKE_SETTINGS="-j ${BUILD_JOBS}" @@ -393,6 +461,16 @@ if [ $USE_SUB_MODULES = true ]; then printf "... Loading RRFS_UTILS modules ...\n" load_module "" fi + if [ $BUILD_NEXUS = "on" ]; then + printf "... Loading NEXUS modules ...\n" + module use ${SRW_DIR}/sorc/arl_nexus/modulefiles + load_module "" + fi + if [ $BUILD_AQM_UTILS = "on" ]; then + printf "... Loading AQM-utils modules ...\n" + module use ${SRW_DIR}/sorc/AQM-utils/modulefiles + load_module "" + fi else module use ${SRW_DIR}/modulefiles module load ${MODULE_FILE} diff --git a/modulefiles/build_hera_intel.lua b/modulefiles/build_hera_intel.lua index 02af59a626..068fa9fa54 100644 --- a/modulefiles/build_hera_intel.lua +++ b/modulefiles/build_hera_intel.lua @@ -27,6 +27,8 @@ load("srw_common") load(pathJoin("nccmp", os.getenv("nccmp_ver") or "1.8.9.0")) load(pathJoin("nco", os.getenv("nco_ver") or "4.9.3")) +load(pathJoin("wgrib2", os.getenv("wgrib2_ver") or "2.0.8")) + setenv("CMAKE_C_COMPILER","mpiicc") setenv("CMAKE_CXX_COMPILER","mpiicpc") setenv("CMAKE_Fortran_COMPILER","mpiifort") diff --git a/modulefiles/build_orion_intel.lua b/modulefiles/build_orion_intel.lua index 92795c6f8c..5512b99387 100644 --- a/modulefiles/build_orion_intel.lua +++ b/modulefiles/build_orion_intel.lua @@ -21,6 +21,8 @@ load("srw_common") load(pathJoin("nccmp", os.getenv("nccmp_ver") or "1.8.9.0")) load(pathJoin("nco", os.getenv("nco_ver") or "4.9.3")) +load(pathJoin("wgrib2", os.getenv("wgrib2_ver") or "2.0.8")) + setenv("CMAKE_C_COMPILER","mpiicc") setenv("CMAKE_CXX_COMPILER","mpiicpc") setenv("CMAKE_Fortran_COMPILER","mpiifort") diff --git a/modulefiles/build_wcoss2_intel.lua b/modulefiles/build_wcoss2_intel.lua index c8956142ee..cdcd4869b8 100644 --- a/modulefiles/build_wcoss2_intel.lua +++ b/modulefiles/build_wcoss2_intel.lua @@ -11,20 +11,12 @@ load(pathJoin("PrgEnv-intel", os.getenv("PrgEnv_intel_ver"))) load(pathJoin("intel", os.getenv("intel_ver"))) load(pathJoin("craype", os.getenv("craype_ver"))) load(pathJoin("cray-mpich", os.getenv("cray_mpich_ver"))) - load(pathJoin("cmake", os.getenv("cmake_ver"))) - -setenv("HPC_OPT","/apps/ops/para/libs") -prepend_path("MODULEPATH", pathJoin("/apps/ops/para/libs/modulefiles/compiler/intel", os.getenv("intel_ver"))) -prepend_path("MODULEPATH", pathJoin("/apps/ops/para/libs/modulefiles/mpi/intel", os.getenv("intel_ver"), "cray-mpich", os.getenv("cray_mpich_ver"))) - load(pathJoin("jasper", os.getenv("jasper_ver"))) load(pathJoin("zlib", os.getenv("zlib_ver"))) load(pathJoin("libpng", os.getenv("libpng_ver"))) load(pathJoin("hdf5", os.getenv("hdf5_ver"))) load(pathJoin("netcdf", os.getenv("netcdf_ver"))) -load(pathJoin("pio", os.getenv("pio_ver"))) -load(pathJoin("esmf", os.getenv("esmf_ver"))) load(pathJoin("fms", os.getenv("fms_ver"))) load(pathJoin("bacio", os.getenv("bacio_ver"))) load(pathJoin("crtm", os.getenv("crtm_ver"))) @@ -32,16 +24,33 @@ load(pathJoin("g2", os.getenv("g2_ver"))) load(pathJoin("g2tmpl", os.getenv("g2tmpl_ver"))) load(pathJoin("ip", os.getenv("ip_ver"))) load(pathJoin("sp", os.getenv("sp_ver"))) -load(pathJoin("w3nco", os.getenv("w3nco_ver"))) +load(pathJoin("w3emc", os.getenv("w3emc_ver"))) +load(pathJoin("w3nco", os.getenv("w3nco_ver"))) load(pathJoin("libjpeg", os.getenv("libjpeg_ver"))) load(pathJoin("cray-pals", os.getenv("cray_pals_ver"))) - -load(pathJoin("w3emc", os.getenv("w3emc_ver"))) load(pathJoin("nemsio", os.getenv("nemsio_ver"))) load(pathJoin("sigio", os.getenv("sigio_ver"))) load(pathJoin("sfcio", os.getenv("sfcio_ver"))) load(pathJoin("wrf_io", os.getenv("wrf_io_ver"))) +load(pathJoin("wgrib2", os.getenv("wgrib2_ver"))) +load(pathJoin("bufr", os.getenv("bufr_ver"))) +load(pathJoin("nemsiogfs", os.getenv("nemsiogfs_ver"))) + + +setenv("HPC_OPT","/apps/ops/para/libs") +prepend_path("MODULEPATH", pathJoin("/apps/ops/para/libs/modulefiles/compiler/intel", os.getenv("intel_para_ver"))) +prepend_path("MODULEPATH", pathJoin("/apps/ops/para/libs/modulefiles/mpi/intel", os.getenv("intel_para_ver"), "cray-mpich", os.getenv("cray_mpich_para_ver"))) + +load(pathJoin("pio", os.getenv("pio_ver"))) + +prepend_path("MODULEPATH", pathJoin("/apps/dev/lmodules/intel", os.getenv("intel_dev_ver"))) +prepend_path("MODULEPATH", pathJoin("/apps/dev/modulefiles/mpi/intel", os.getenv("intel_dev_ver"), "cray-mpich", os.getenv("cray_mpich_dev_ver"))) + +load(pathJoin("esmf", os.getenv("esmf_ver"))) +load(pathJoin("gftl_shared", os.getenv("gftl_shared_ver"))) +load(pathJoin("mapl", os.getenv("mapl_ver"))) + setenv("CMAKE_C_COMPILER","cc") setenv("CMAKE_CXX_COMPILER","CC") diff --git a/modulefiles/srw_common.lua b/modulefiles/srw_common.lua index 622f497342..a66ec65ca9 100644 --- a/modulefiles/srw_common.lua +++ b/modulefiles/srw_common.lua @@ -4,13 +4,13 @@ load_any("png/1.6.35", "libpng/1.6.37") load_any("netcdf/4.7.4", "netcdf-c/4.7.4") load_any("netcdf/4.7.4", "netcdf-fortran/4.5.4") -load_any("pio/2.5.3", "parallelio/2.5.2") +load_any("pio/2.5.7", "parallelio/2.5.2") load_any("esmf/8.3.0b09", "esmf/8.2.0") -load("fms/2022.01") +load("fms/2022.04") load("bufr/11.7.0") load("bacio/2.4.1") -load("crtm/2.3.0") +load("crtm/2.4.0") load("g2/3.4.5") load("g2tmpl/1.10.0") load("ip/3.3.3") diff --git a/modulefiles/tasks/hera/aqm_ics.local.lua b/modulefiles/tasks/hera/aqm_ics.local.lua new file mode 100644 index 0000000000..836582f847 --- /dev/null +++ b/modulefiles/tasks/hera/aqm_ics.local.lua @@ -0,0 +1,2 @@ +load("miniconda_online-cmaq") +load(pathJoin("nco", os.getenv("nco_ver") or "4.9.3")) diff --git a/modulefiles/tasks/hera/aqm_lbcs.local.lua b/modulefiles/tasks/hera/aqm_lbcs.local.lua new file mode 100644 index 0000000000..23370a8d60 --- /dev/null +++ b/modulefiles/tasks/hera/aqm_lbcs.local.lua @@ -0,0 +1 @@ +load(pathJoin("nco", os.getenv("nco_ver") or "4.9.3")) diff --git a/modulefiles/tasks/hera/fire_emission.local.lua b/modulefiles/tasks/hera/fire_emission.local.lua new file mode 100644 index 0000000000..d1afe2451e --- /dev/null +++ b/modulefiles/tasks/hera/fire_emission.local.lua @@ -0,0 +1,2 @@ +load("hpss") +load("miniconda_regional_workflow") diff --git a/modulefiles/tasks/hera/miniconda_online-cmaq.lua b/modulefiles/tasks/hera/miniconda_online-cmaq.lua new file mode 100644 index 0000000000..9712c40628 --- /dev/null +++ b/modulefiles/tasks/hera/miniconda_online-cmaq.lua @@ -0,0 +1,5 @@ +prepend_path("MODULEPATH", "/contrib/miniconda3/modulefiles") +load(pathJoin("miniconda3", os.getenv("miniconda3_ver") or "4.12.0")) + +setenv("AQM_ENV_FP", "/scratch2/NCEPDEV/naqfc/RRFS_CMAQ/PY_VENV") +setenv("AQM_ENV", "online-cmaq") diff --git a/modulefiles/tasks/hera/nexus_emission.local.lua b/modulefiles/tasks/hera/nexus_emission.local.lua new file mode 100644 index 0000000000..027881a685 --- /dev/null +++ b/modulefiles/tasks/hera/nexus_emission.local.lua @@ -0,0 +1,2 @@ +load(pathJoin("nco", os.getenv("nco_ver") or "4.9.3")) +load("miniconda_online-cmaq") diff --git a/modulefiles/tasks/hera/nexus_gfs_sfc.local.lua b/modulefiles/tasks/hera/nexus_gfs_sfc.local.lua new file mode 100644 index 0000000000..d1afe2451e --- /dev/null +++ b/modulefiles/tasks/hera/nexus_gfs_sfc.local.lua @@ -0,0 +1,2 @@ +load("hpss") +load("miniconda_regional_workflow") diff --git a/modulefiles/tasks/hera/nexus_post_split.local.lua b/modulefiles/tasks/hera/nexus_post_split.local.lua new file mode 100644 index 0000000000..836582f847 --- /dev/null +++ b/modulefiles/tasks/hera/nexus_post_split.local.lua @@ -0,0 +1,2 @@ +load("miniconda_online-cmaq") +load(pathJoin("nco", os.getenv("nco_ver") or "4.9.3")) diff --git a/modulefiles/tasks/hera/point_source.local.lua b/modulefiles/tasks/hera/point_source.local.lua new file mode 100644 index 0000000000..0ef3de3b66 --- /dev/null +++ b/modulefiles/tasks/hera/point_source.local.lua @@ -0,0 +1 @@ +load("miniconda_online-cmaq") diff --git a/modulefiles/tasks/orion/aqm_ics.local.lua b/modulefiles/tasks/orion/aqm_ics.local.lua new file mode 100644 index 0000000000..027881a685 --- /dev/null +++ b/modulefiles/tasks/orion/aqm_ics.local.lua @@ -0,0 +1,2 @@ +load(pathJoin("nco", os.getenv("nco_ver") or "4.9.3")) +load("miniconda_online-cmaq") diff --git a/modulefiles/tasks/orion/aqm_lbcs.local.lua b/modulefiles/tasks/orion/aqm_lbcs.local.lua new file mode 100644 index 0000000000..23370a8d60 --- /dev/null +++ b/modulefiles/tasks/orion/aqm_lbcs.local.lua @@ -0,0 +1 @@ +load(pathJoin("nco", os.getenv("nco_ver") or "4.9.3")) diff --git a/modulefiles/tasks/orion/miniconda_online-cmaq.lua b/modulefiles/tasks/orion/miniconda_online-cmaq.lua new file mode 100644 index 0000000000..3b01515fb6 --- /dev/null +++ b/modulefiles/tasks/orion/miniconda_online-cmaq.lua @@ -0,0 +1,4 @@ +load(pathJoin("miniconda", os.getenv("miniconda_ver") or "4.12.0")) + +setenv("SRW_ENV", "/work/noaa/fv3-cam/RRFS_CMAQ/PY_VENV") +setenv("SRW_ENV", "online-cmaq") diff --git a/modulefiles/tasks/orion/nexus_emission.local.lua b/modulefiles/tasks/orion/nexus_emission.local.lua new file mode 100644 index 0000000000..027881a685 --- /dev/null +++ b/modulefiles/tasks/orion/nexus_emission.local.lua @@ -0,0 +1,2 @@ +load(pathJoin("nco", os.getenv("nco_ver") or "4.9.3")) +load("miniconda_online-cmaq") diff --git a/modulefiles/tasks/orion/nexus_post_split.local.lua b/modulefiles/tasks/orion/nexus_post_split.local.lua new file mode 100644 index 0000000000..027881a685 --- /dev/null +++ b/modulefiles/tasks/orion/nexus_post_split.local.lua @@ -0,0 +1,2 @@ +load(pathJoin("nco", os.getenv("nco_ver") or "4.9.3")) +load("miniconda_online-cmaq") diff --git a/modulefiles/tasks/orion/point_source.local.lua b/modulefiles/tasks/orion/point_source.local.lua new file mode 100644 index 0000000000..0ef3de3b66 --- /dev/null +++ b/modulefiles/tasks/orion/point_source.local.lua @@ -0,0 +1 @@ +load("miniconda_online-cmaq") diff --git a/modulefiles/tasks/wcoss2/aqm_ics.local.lua b/modulefiles/tasks/wcoss2/aqm_ics.local.lua new file mode 100644 index 0000000000..bbff3a76ba --- /dev/null +++ b/modulefiles/tasks/wcoss2/aqm_ics.local.lua @@ -0,0 +1,6 @@ +load("python_regional_workflow") + +load(pathJoin("udunits", os.getenv("udunits_ver"))) +load(pathJoin("gsl", os.getenv("gsl_ver"))) +load(pathJoin("netcdf", os.getenv("netcdf_ver"))) +load(pathJoin("nco", os.getenv("nco_ver"))) diff --git a/modulefiles/tasks/wcoss2/aqm_lbcs.local.lua b/modulefiles/tasks/wcoss2/aqm_lbcs.local.lua new file mode 100644 index 0000000000..156f2a917a --- /dev/null +++ b/modulefiles/tasks/wcoss2/aqm_lbcs.local.lua @@ -0,0 +1,5 @@ +load("python_regional_workflow") + +load(pathJoin("udunits", os.getenv("udunits_ver"))) +load(pathJoin("gsl", os.getenv("gsl_ver"))) +load(pathJoin("nco", os.getenv("nco_ver"))) diff --git a/modulefiles/tasks/wcoss2/bias_correction_o3.local.lua b/modulefiles/tasks/wcoss2/bias_correction_o3.local.lua new file mode 100644 index 0000000000..13d82a8da9 --- /dev/null +++ b/modulefiles/tasks/wcoss2/bias_correction_o3.local.lua @@ -0,0 +1,5 @@ +load("python_regional_workflow") + +load(pathJoin("wgrib2", os.getenv("wgrib2_ver"))) +load(pathJoin("libjpeg", os.getenv("libjpeg_ver"))) +load(pathJoin("grib_util", os.getenv("grib_util_ver"))) diff --git a/modulefiles/tasks/wcoss2/bias_correction_pm25.local.lua b/modulefiles/tasks/wcoss2/bias_correction_pm25.local.lua new file mode 100644 index 0000000000..13d82a8da9 --- /dev/null +++ b/modulefiles/tasks/wcoss2/bias_correction_pm25.local.lua @@ -0,0 +1,5 @@ +load("python_regional_workflow") + +load(pathJoin("wgrib2", os.getenv("wgrib2_ver"))) +load(pathJoin("libjpeg", os.getenv("libjpeg_ver"))) +load(pathJoin("grib_util", os.getenv("grib_util_ver"))) diff --git a/modulefiles/tasks/wcoss2/fire_emission.local.lua b/modulefiles/tasks/wcoss2/fire_emission.local.lua new file mode 100644 index 0000000000..3370fa018b --- /dev/null +++ b/modulefiles/tasks/wcoss2/fire_emission.local.lua @@ -0,0 +1 @@ +load("python_regional_workflow") diff --git a/modulefiles/tasks/wcoss2/make_grid.local.lua b/modulefiles/tasks/wcoss2/make_grid.local.lua index 3370fa018b..a898bfa85d 100644 --- a/modulefiles/tasks/wcoss2/make_grid.local.lua +++ b/modulefiles/tasks/wcoss2/make_grid.local.lua @@ -1 +1,4 @@ load("python_regional_workflow") + +load(pathJoin("envvar", os.getenv("envvar_ver"))) + diff --git a/modulefiles/tasks/wcoss2/make_ics.local.lua b/modulefiles/tasks/wcoss2/make_ics.local.lua index 3370fa018b..a898bfa85d 100644 --- a/modulefiles/tasks/wcoss2/make_ics.local.lua +++ b/modulefiles/tasks/wcoss2/make_ics.local.lua @@ -1 +1,4 @@ load("python_regional_workflow") + +load(pathJoin("envvar", os.getenv("envvar_ver"))) + diff --git a/modulefiles/tasks/wcoss2/make_lbcs.local.lua b/modulefiles/tasks/wcoss2/make_lbcs.local.lua index 3370fa018b..a898bfa85d 100644 --- a/modulefiles/tasks/wcoss2/make_lbcs.local.lua +++ b/modulefiles/tasks/wcoss2/make_lbcs.local.lua @@ -1 +1,4 @@ load("python_regional_workflow") + +load(pathJoin("envvar", os.getenv("envvar_ver"))) + diff --git a/modulefiles/tasks/wcoss2/make_orog.local.lua b/modulefiles/tasks/wcoss2/make_orog.local.lua index 3370fa018b..a898bfa85d 100644 --- a/modulefiles/tasks/wcoss2/make_orog.local.lua +++ b/modulefiles/tasks/wcoss2/make_orog.local.lua @@ -1 +1,4 @@ load("python_regional_workflow") + +load(pathJoin("envvar", os.getenv("envvar_ver"))) + diff --git a/modulefiles/tasks/wcoss2/make_sfc_climo.local.lua b/modulefiles/tasks/wcoss2/make_sfc_climo.local.lua index 3370fa018b..a898bfa85d 100644 --- a/modulefiles/tasks/wcoss2/make_sfc_climo.local.lua +++ b/modulefiles/tasks/wcoss2/make_sfc_climo.local.lua @@ -1 +1,4 @@ load("python_regional_workflow") + +load(pathJoin("envvar", os.getenv("envvar_ver"))) + diff --git a/modulefiles/tasks/wcoss2/nexus_emission.local.lua b/modulefiles/tasks/wcoss2/nexus_emission.local.lua new file mode 100644 index 0000000000..156f2a917a --- /dev/null +++ b/modulefiles/tasks/wcoss2/nexus_emission.local.lua @@ -0,0 +1,5 @@ +load("python_regional_workflow") + +load(pathJoin("udunits", os.getenv("udunits_ver"))) +load(pathJoin("gsl", os.getenv("gsl_ver"))) +load(pathJoin("nco", os.getenv("nco_ver"))) diff --git a/modulefiles/tasks/wcoss2/nexus_post_split.local.lua b/modulefiles/tasks/wcoss2/nexus_post_split.local.lua new file mode 100644 index 0000000000..156f2a917a --- /dev/null +++ b/modulefiles/tasks/wcoss2/nexus_post_split.local.lua @@ -0,0 +1,5 @@ +load("python_regional_workflow") + +load(pathJoin("udunits", os.getenv("udunits_ver"))) +load(pathJoin("gsl", os.getenv("gsl_ver"))) +load(pathJoin("nco", os.getenv("nco_ver"))) diff --git a/modulefiles/tasks/wcoss2/point_source.local.lua b/modulefiles/tasks/wcoss2/point_source.local.lua new file mode 100644 index 0000000000..3370fa018b --- /dev/null +++ b/modulefiles/tasks/wcoss2/point_source.local.lua @@ -0,0 +1 @@ +load("python_regional_workflow") diff --git a/modulefiles/tasks/wcoss2/post_stat_o3.local.lua b/modulefiles/tasks/wcoss2/post_stat_o3.local.lua new file mode 100644 index 0000000000..13d82a8da9 --- /dev/null +++ b/modulefiles/tasks/wcoss2/post_stat_o3.local.lua @@ -0,0 +1,5 @@ +load("python_regional_workflow") + +load(pathJoin("wgrib2", os.getenv("wgrib2_ver"))) +load(pathJoin("libjpeg", os.getenv("libjpeg_ver"))) +load(pathJoin("grib_util", os.getenv("grib_util_ver"))) diff --git a/modulefiles/tasks/wcoss2/post_stat_pm25.local.lua b/modulefiles/tasks/wcoss2/post_stat_pm25.local.lua new file mode 100644 index 0000000000..13d82a8da9 --- /dev/null +++ b/modulefiles/tasks/wcoss2/post_stat_pm25.local.lua @@ -0,0 +1,5 @@ +load("python_regional_workflow") + +load(pathJoin("wgrib2", os.getenv("wgrib2_ver"))) +load(pathJoin("libjpeg", os.getenv("libjpeg_ver"))) +load(pathJoin("grib_util", os.getenv("grib_util_ver"))) diff --git a/modulefiles/tasks/wcoss2/pre_post_stat.local.lua b/modulefiles/tasks/wcoss2/pre_post_stat.local.lua new file mode 100644 index 0000000000..bbff3a76ba --- /dev/null +++ b/modulefiles/tasks/wcoss2/pre_post_stat.local.lua @@ -0,0 +1,6 @@ +load("python_regional_workflow") + +load(pathJoin("udunits", os.getenv("udunits_ver"))) +load(pathJoin("gsl", os.getenv("gsl_ver"))) +load(pathJoin("netcdf", os.getenv("netcdf_ver"))) +load(pathJoin("nco", os.getenv("nco_ver"))) diff --git a/modulefiles/tasks/wcoss2/run_fcst.local.lua b/modulefiles/tasks/wcoss2/run_fcst.local.lua index 3370fa018b..3ba04f0af5 100644 --- a/modulefiles/tasks/wcoss2/run_fcst.local.lua +++ b/modulefiles/tasks/wcoss2/run_fcst.local.lua @@ -1 +1,10 @@ load("python_regional_workflow") + +unload("cray_mpich") +unload("netcdf") +load(pathJoin("cray-mpich", os.getenv("cray_mpich_ver"))) +load(pathJoin("netcdf", os.getenv("netcdf_ver"))) + +load(pathJoin("envvar", os.getenv("envvar_ver"))) +load(pathJoin("libjpeg", os.getenv("libjpeg_ver"))) +load(pathJoin("cray-pals", os.getenv("cray_pals_ver"))) diff --git a/modulefiles/tasks/wcoss2/run_post.local.lua b/modulefiles/tasks/wcoss2/run_post.local.lua index 3370fa018b..69325a8a4a 100644 --- a/modulefiles/tasks/wcoss2/run_post.local.lua +++ b/modulefiles/tasks/wcoss2/run_post.local.lua @@ -1 +1,3 @@ load("python_regional_workflow") + +load(pathJoin("cray-pals", os.getenv("cray_pals_ver"))) diff --git a/versions/build.ver.wcoss2 b/versions/build.ver.wcoss2 index 5d9b42c82a..9204cb4c9f 100644 --- a/versions/build.ver.wcoss2 +++ b/versions/build.ver.wcoss2 @@ -5,25 +5,29 @@ export module_ver=8.5.2 export envvar_ver=1.0 export PrgEnv_intel_ver=8.1.0 export intel_ver=19.1.3.304 +export intel_para_ver=19.1.3.304 +export intel_dev_ver=19.1.3.304 export craype_ver=2.7.13 export cray_mpich_ver=8.1.7 +export cray_mpich_para_ver=8.1.7 +export cray_mpich_dev_ver=8.1.9 export cmake_ver=3.20.2 -export intel_ver=19.1.3.304 -export cray_mpich_ver=8.1.7 export jasper_ver=2.0.25 export zlib_ver=1.2.11 export libpng_ver=1.6.37 export hdf5_ver=1.10.6 export netcdf_ver=4.7.4 -export pio_ver=2.5.2 -export esmf_ver=8.3.0b09 -export fms_ver=2022.01 +export fms_ver=2022.04 export bacio_ver=2.4.1 -export crtm_ver=2.3.0 +export crtm_ver=2.4.0 export g2_ver=3.4.5 export g2tmpl_ver=1.10.0 export ip_ver=3.3.3 export sp_ver=2.3.3 +export pio_ver=2.5.2 +export gftl_shared_ver=1.5.0 +export esmf_ver=8.3.0b09 +export mapl_ver=2.23.1-esmf-8.3.0b09 export w3nco_ver=2.4.1 export libjpeg_ver=9c export cray_pals_ver=1.1.3 @@ -32,3 +36,6 @@ export nemsio_ver=2.5.2 export sigio_ver=2.3.2 export sfcio_ver=1.4.1 export wrf_io_ver=1.2.0 +export wgrib2_ver=2.0.8_wmo +export bufr_ver=11.7.0 +export nemsiogfs_ver=2.5.3 diff --git a/versions/run.ver.wcoss2 b/versions/run.ver.wcoss2 index 6a06331a85..6c7a9c1d52 100644 --- a/versions/run.ver.wcoss2 +++ b/versions/run.ver.wcoss2 @@ -4,9 +4,18 @@ export intel_ver=19.1.3.304 export python_ver=3.8.6 export rocoto_ver=1.3.5 -export gfs_ver=v16.2 +export gfs_ver=v16.3 export nam_ver=v4.2 export rap_ver=v5.1 export gsmgfs_ver=v16.2 export hrrr_ver=v3 export prod_util_ver=2.0.14 + +export udunits_ver=2.2.28 +export gsl_ver=2.7 +export netcdf_ver=4.7.4 +export nco_ver=4.9.7 + +export wgrib2_ver=2.0.8_wmo +export libjpeg_ver=9c +export grib_util_ver=1.2.4 From 90d507660ee08f8bf63e80e1bcd20ea5542f9a46 Mon Sep 17 00:00:00 2001 From: chan-hoo Date: Wed, 18 Jan 2023 12:01:56 +0000 Subject: [PATCH 02/15] update hash of ufs weather model and aqm utils --- Externals_AQM.cfg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Externals_AQM.cfg b/Externals_AQM.cfg index a249406132..a36012eb72 100644 --- a/Externals_AQM.cfg +++ b/Externals_AQM.cfg @@ -12,7 +12,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 = 3610672 +hash = e051e0e local_path = sorc/ufs-weather-model required = True @@ -30,7 +30,7 @@ protocol = git repo_url = https://github.com/NOAA-EMC/AQM-utils # Specify either a branch name or a hash but not both. #branch = develop -hash = 103a798 +hash = 81a99ca local_path = sorc/AQM-utils required = True From 37ff3cf6155e473c3d3a9a27c81cf4c32a30332a Mon Sep 17 00:00:00 2001 From: chan-hoo Date: Wed, 18 Jan 2023 13:11:27 +0000 Subject: [PATCH 03/15] add missing sorc/CMakeLists.txt --- sorc/CMakeLists.txt | 87 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 67 insertions(+), 20 deletions(-) diff --git a/sorc/CMakeLists.txt b/sorc/CMakeLists.txt index 9cfeb4604e..8139c35a8b 100644 --- a/sorc/CMakeLists.txt +++ b/sorc/CMakeLists.txt @@ -12,25 +12,18 @@ message(STATUS "BUILD_UFS_UTILS ......... ${BUILD_UFS_UTILS}") message(STATUS "BUILD_GSI ............... ${BUILD_GSI}") message(STATUS "BUILD_UPP ............... ${BUILD_UPP}") message(STATUS "BUILD_RRFS_UTILS ........ ${BUILD_RRFS_UTILS}") - -# Build UFS utilities -if(BUILD_UFS_UTILS) - list(APPEND TARGET_LIST UFS_UTILS) - - list(APPEND UFS_UTILS_ARGS - "-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}" - "-DCMAKE_INSTALL_BINDIR=${CMAKE_INSTALL_BINDIR}" - "-DBUILD_TESTING=OFF" - ) - - ExternalProject_Add(UFS_UTILS - PREFIX ${CMAKE_CURRENT_BINARY_DIR}/UFS_UTILS - SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/UFS_UTILS - INSTALL_DIR ${CMAKE_INSTALL_PREFIX} - CMAKE_ARGS ${UFS_UTILS_ARGS} - BUILD_ALWAYS TRUE - STEP_TARGETS build - ) +message(STATUS "BUILD_NEXUS ............. ${BUILD_NEXUS}") +message(STATUS "BUILD_AQM_UTILS ......... ${BUILD_AQM_UTILS}") + +# Set dependency of ufs weather model only for coupled model +if (NOT APP) + set(UFS_DEPEND "") +else() + if (BUILD_UFS) + set(UFS_DEPEND "ufs-weather-model") + else() + set(UFS_DEPEND "") + endif() endif() # Build UFS weather model @@ -38,7 +31,11 @@ if (BUILD_UFS) list(APPEND TARGET_LIST ufs-weather-model) if(NOT CCPP_SUITES) - set(CCPP_SUITES "FV3_GFS_2017_gfdlmp,FV3_GFS_2017_gfdlmp_regional,FV3_GFS_v15p2,FV3_GFS_v16,FV3_RRFS_v1beta,FV3_HRRR,FV3_GFS_v15_thompson_mynn_lam3km,FV3_WoFS_v0") + if(CPL_AQM) + set(CCPP_SUITES "FV3_GFS_v15p2,FV3_GFS_v16") + else() + set(CCPP_SUITES "FV3_GFS_2017_gfdlmp,FV3_GFS_2017_gfdlmp_regional,FV3_GFS_v15p2,FV3_GFS_v16,FV3_RRFS_v1beta,FV3_HRRR,FV3_GFS_v15_thompson_mynn_lam3km,FV3_WoFS_v0") + endif() endif() if(NOT APP) @@ -93,11 +90,33 @@ if (BUILD_UFS) ) endif() +# Build UFS utilities +if(BUILD_UFS_UTILS) + list(APPEND TARGET_LIST UFS_UTILS) + + list(APPEND UFS_UTILS_ARGS + "-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}" + "-DCMAKE_INSTALL_BINDIR=${CMAKE_INSTALL_BINDIR}" + "-DBUILD_TESTING=OFF" + ) + + ExternalProject_Add(UFS_UTILS + DEPENDS ${UFS_DEPEND} + PREFIX ${CMAKE_CURRENT_BINARY_DIR}/UFS_UTILS + SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/UFS_UTILS + INSTALL_DIR ${CMAKE_INSTALL_PREFIX} + CMAKE_ARGS ${UFS_UTILS_ARGS} + BUILD_ALWAYS TRUE + STEP_TARGETS build + ) +endif() + # Build UPP if (BUILD_UPP) list(APPEND TARGET_LIST UPP) ExternalProject_Add(UPP + DEPENDS ${UFS_DEPEND} PREFIX ${CMAKE_CURRENT_BINARY_DIR}/UPP SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/UPP INSTALL_DIR ${CMAKE_INSTALL_PREFIX} @@ -136,6 +155,34 @@ if (BUILD_RRFS_UTILS) ) endif() +if (CPL_AQM) + if (BUILD_NEXUS) + list(APPEND TARGET_LIST NEXUS) + + ExternalProject_Add(arl_nexus + DEPENDS ${UFS_DEPEND} + PREFIX ${CMAKE_CURRENT_BINARY_DIR}/arl_nexus + SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/arl_nexus + INSTALL_DIR ${CMAKE_INSTALL_PREFIX} + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DCMAKE_INSTALL_BINDIR=${CMAKE_INSTALL_BINDIR} + BUILD_ALWAYS TRUE + ) + endif() + + if (BUILD_AQM_UTILS) + list(APPEND TARGET_LIST AQM_UTILS) + + ExternalProject_Add(AQM-utils + DEPENDS ${UFS_DEPEND} + PREFIX ${CMAKE_CURRENT_BINARY_DIR}/AQM-utils + SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/AQM-utils + INSTALL_DIR ${CMAKE_INSTALL_PREFIX} + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DCMAKE_INSTALL_BINDIR=${CMAKE_INSTALL_BINDIR} -DBUILD_POST_STAT=${BUILD_POST_STAT} + BUILD_ALWAYS TRUE + ) + endif() +endif() + # add custom target for separate build and install foreach(i ${TARGET_LIST}) list(APPEND BUILD_LIST "${i}-build") From fd03170bfb6f3e178ba5b15c2fb230b6cbc1fbf5 Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Wed, 18 Jan 2023 18:21:28 +0000 Subject: [PATCH 04/15] add version file for hera --- .gitignore | 1 + modulefiles/srw_common.lua | 6 +++--- versions/build.ver.hera | 5 +++++ 3 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 versions/build.ver.hera diff --git a/.gitignore b/.gitignore index dafefc0695..6d4734c975 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ fix/ include/ lib/ share/ +modulefiles/extrn_comp_build/ sorc/*/ tests/WE2E/WE2E_test_info.csv tests/WE2E/*.txt diff --git a/modulefiles/srw_common.lua b/modulefiles/srw_common.lua index a66ec65ca9..df5881dbd7 100644 --- a/modulefiles/srw_common.lua +++ b/modulefiles/srw_common.lua @@ -4,13 +4,13 @@ load_any("png/1.6.35", "libpng/1.6.37") load_any("netcdf/4.7.4", "netcdf-c/4.7.4") load_any("netcdf/4.7.4", "netcdf-fortran/4.5.4") -load_any("pio/2.5.7", "parallelio/2.5.2") +load_any(pathJoin("pio", os.getenv("pio_ver") or "2.5.7"), pathJoin("parallelio", os.getenv("parallelio_ver") or "2.5.2")) load_any("esmf/8.3.0b09", "esmf/8.2.0") -load("fms/2022.04") +load(pathJoin("fms", os.getenv("fms_ver") or "2022.01")) load("bufr/11.7.0") load("bacio/2.4.1") -load("crtm/2.4.0") +load(pathJoin("crtm", os.getenv("crtm_ver") or "2.4.0")) load("g2/3.4.5") load("g2tmpl/1.10.0") load("ip/3.3.3") diff --git a/versions/build.ver.hera b/versions/build.ver.hera new file mode 100644 index 0000000000..a79aa0bf82 --- /dev/null +++ b/versions/build.ver.hera @@ -0,0 +1,5 @@ +#!/bin/bash + +export fms_ver=2022.04 +export crtm_ver=2.4.0 +export pio_ver=2.5.7 From d04f66ab5680c605804701d414e7b893cda3c73f Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Wed, 18 Jan 2023 18:24:13 +0000 Subject: [PATCH 05/15] back to original version in srw_common --- modulefiles/srw_common.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modulefiles/srw_common.lua b/modulefiles/srw_common.lua index df5881dbd7..4dacce6383 100644 --- a/modulefiles/srw_common.lua +++ b/modulefiles/srw_common.lua @@ -4,13 +4,13 @@ load_any("png/1.6.35", "libpng/1.6.37") load_any("netcdf/4.7.4", "netcdf-c/4.7.4") load_any("netcdf/4.7.4", "netcdf-fortran/4.5.4") -load_any(pathJoin("pio", os.getenv("pio_ver") or "2.5.7"), pathJoin("parallelio", os.getenv("parallelio_ver") or "2.5.2")) +load_any(pathJoin("pio", os.getenv("pio_ver") or "2.5.3"), pathJoin("parallelio", os.getenv("parallelio_ver") or "2.5.2")) load_any("esmf/8.3.0b09", "esmf/8.2.0") load(pathJoin("fms", os.getenv("fms_ver") or "2022.01")) load("bufr/11.7.0") load("bacio/2.4.1") -load(pathJoin("crtm", os.getenv("crtm_ver") or "2.4.0")) +load(pathJoin("crtm", os.getenv("crtm_ver") or "2.3.0")) load("g2/3.4.5") load("g2tmpl/1.10.0") load("ip/3.3.3") From 0e695d17b7453be3b3e9ef0e350787ed66c92360 Mon Sep 17 00:00:00 2001 From: chan-hoo Date: Wed, 18 Jan 2023 22:56:31 +0000 Subject: [PATCH 06/15] update jjob and ex scripts --- jobs/JREGIONAL_POINT_SOURCE | 6 +- scripts/exregional_nexus_post_split.sh | 10 ---- scripts/exregional_point_source.sh | 79 +------------------------- scripts/exregional_pre_post_stat.sh | 10 ---- 4 files changed, 6 insertions(+), 99 deletions(-) diff --git a/jobs/JREGIONAL_POINT_SOURCE b/jobs/JREGIONAL_POINT_SOURCE index 67cdb087c0..65f3a739d3 100755 --- a/jobs/JREGIONAL_POINT_SOURCE +++ b/jobs/JREGIONAL_POINT_SOURCE @@ -8,7 +8,7 @@ #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "task_make_grid|task_run_fcst|cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "task_run_fcst|cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} . $USHdir/job_preamble.sh # #----------------------------------------------------------------------- @@ -57,7 +57,7 @@ using NEXUS which will output for FV3 (in NetCDF format). if [ $RUN_ENVIR = "nco" ]; then export INPUT_DATA="${COMIN}" else - export INPUT_DATA="${COMIN}${SLASH_ENSMEM_SUBDIR}" + export INPUT_DATA="${COMIN}${SLASH_ENSMEM_SUBDIR}/INPUT" fi mkdir_vrfy -p "${INPUT_DATA}" # @@ -77,7 +77,7 @@ mkdir_vrfy -p "${DATA}" # #----------------------------------------------------------------------- # -time $SCRIPTSdir/exregional_point_source.sh || \ +$SCRIPTSdir/exregional_point_source.sh || \ print_err_msg_exit "\ Call to ex-script corresponding to J-job \"${scrfunc_fn}\" failed." # diff --git a/scripts/exregional_nexus_post_split.sh b/scripts/exregional_nexus_post_split.sh index 3282c8ee1a..f8e34be24b 100755 --- a/scripts/exregional_nexus_post_split.sh +++ b/scripts/exregional_nexus_post_split.sh @@ -47,16 +47,6 @@ This is the ex-script for the task that runs NEXUS. # #----------------------------------------------------------------------- # -# Set OpenMP variables. -# -#----------------------------------------------------------------------- -# -export KMP_AFFINITY=${KMP_AFFINITY_NEXUS_POST_SPLIT} -export OMP_NUM_THREADS=${OMP_NUM_THREADS_NEXUS_POST_SPLIT} -export OMP_STACKSIZE=${OMP_STACKSIZE_NEXUS_POST_SPLIT} -# -#----------------------------------------------------------------------- -# # Set run command. # #----------------------------------------------------------------------- diff --git a/scripts/exregional_point_source.sh b/scripts/exregional_point_source.sh index 0a47f3f22f..198661a04b 100755 --- a/scripts/exregional_point_source.sh +++ b/scripts/exregional_point_source.sh @@ -8,7 +8,7 @@ #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "task_make_grid|task_run_fcst|cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "task_run_fcst|cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} # #----------------------------------------------------------------------- # @@ -47,25 +47,12 @@ This is the ex-script for the task that runs PT_SOURCE. # #----------------------------------------------------------------------- # -# Set OpenMP variables. -# -#----------------------------------------------------------------------- -# -export KMP_AFFINITY=${KMP_AFFINITY_POINT_SOURCE} -export OMP_NUM_THREADS=${OMP_NUM_THREADS_POINT_SOURCE} -export OMP_STACKSIZE=${OMP_STACKSIZE_POINT_SOURCE} -# -#----------------------------------------------------------------------- -# # Set run command. # #----------------------------------------------------------------------- # eval ${PRE_TASK_CMDS} -nprocs=$(( LAYOUT_X*LAYOUT_Y )) -ppn_run_aqm="${PPN_POINT_SOURCE}" -omp_num_threads_run_aqm="${OMP_NUM_THREADS_POINT_SOURCE}" if [ "${FCST_LEN_HRS}" = "-1" ]; then for i_cdate in "${!ALL_CDATES[@]}"; do if [ "${ALL_CDATES[$i_cdate]}" = "${PDY}${cyc}" ]; then @@ -77,16 +64,6 @@ fi nstep=$(( FCST_LEN_HRS+1 )) yyyymmddhh="${PDY}${cyc}" -if [ -z "${RUN_CMD_AQM:-}" ] ; then - print_err_msg_exit "\ - Run command was not set in machine file. \ - Please set RUN_CMD_AQM for your platform" -else - RUN_CMD_AQM=$(eval echo ${RUN_CMD_AQM}) - print_info_msg "$VERBOSE" " - All executables will be submitted with command \'${RUN_CMD_AQM}\'." -fi - # #----------------------------------------------------------------------- # @@ -116,60 +93,10 @@ PT_SRC_AK="${PT_SRC_BASEDIR}/9AK1" # if [ ! -s "${DATA}/pt-${yyyymmddhh}.nc" ]; then python3 ${HOMEdir}/sorc/AQM-utils/python_utils/stack-pt-merge.py -s ${yyyymmddhh} -n ${nstep} -conus ${PT_SRC_CONUS} -hi ${PT_SRC_HI} -ak ${PT_SRC_AK} - - # bail if error - if [ ! -s "${DATA}/pt-${yyyymmddhh}.nc" ]; then - print_err_msg_exit "\ -The point source file \"pt-${yyyymmddhh}.nc\" was not generated." - else - print_info_msg "The intermediate file \"pt-${yyyymmddhh}.nc\" exists." - fi fi -# -#---------------------------------------------------------------------- -# -# Export input parameters of PT_SOURCE executable -# -#----------------------------------------------------------------------- -# -export NX=${ESGgrid_NX} -export NY=${ESGgrid_NY} -export LAYOUT_X -export LAYOUT_Y -export TOPO="${NEXUS_FIX_DIR}/${NEXUS_GRID_FN}" -export PT_IN="${DATA}/pt-${yyyymmddhh}.nc" - -# -#---------------------------------------------------------------------- -# -# Temporary output directory for PT_SOURCE executable -# -#----------------------------------------------------------------------- -# -mkdir_vrfy -p "${DATA}/PT" - -# -#---------------------------------------------------------------------- -# -# Execute PT_SOURCE -# -#----------------------------------------------------------------------- -# -PREP_STEP -eval ${RUN_CMD_AQM} ${EXECdir}/decomp-ptemis-mpi ${REDIRECT_OUT_ERR} || \ -print_err_msg_exit "\ -Call to execute PT_SOURCE for Online-CMAQ failed." -POST_STEP - -# -#----------------------------------------------------------------------- -# -# Move output to INPUT_DATA directory. -# -#----------------------------------------------------------------------- -# -mv_vrfy "${DATA}/PT" ${INPUT_DATA} +# Move to COMIN +mv_vrfy ${DATA}/pt-${yyyymmddhh}.nc ${INPUT_DATA}/${NET}.${cycle}${dot_ensmem}.PT.nc # #----------------------------------------------------------------------- diff --git a/scripts/exregional_pre_post_stat.sh b/scripts/exregional_pre_post_stat.sh index 6541dcb75b..1fc7bbb7a0 100755 --- a/scripts/exregional_pre_post_stat.sh +++ b/scripts/exregional_pre_post_stat.sh @@ -47,16 +47,6 @@ This is the ex-script for the task that runs POST-UPP-STAT. # #----------------------------------------------------------------------- # -# Set OpenMP variables. -# -#----------------------------------------------------------------------- -# -export KMP_AFFINITY=${KMP_AFFINITY_PRE_POST_STAT} -export OMP_NUM_THREADS=${OMP_NUM_THREADS_PRE_POST_STAT} -export OMP_STACKSIZE=${OMP_STACKSIZE_PRE_POST_STAT} -# -#----------------------------------------------------------------------- -# # Set run command. # #----------------------------------------------------------------------- From e2489d060befb04c92a99d814e056f0dd451d0d1 Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Fri, 20 Jan 2023 20:57:54 +0000 Subject: [PATCH 07/15] remove externals check-out from devbuild --- devbuild.sh | 26 +------------------------- 1 file changed, 1 insertion(+), 25 deletions(-) diff --git a/devbuild.sh b/devbuild.sh index f0823cabdf..375b973782 100755 --- a/devbuild.sh +++ b/devbuild.sh @@ -56,8 +56,7 @@ TARGETS all = builds all apps Or any combinations of (ufs, ufs_utils, upp, gsi, rrfs_utils) -NOTE: This script is for internal developer use only; -See User's Guide for detailed build instructions +NOTE: See User's Guide for detailed build instructions EOF_USAGE } @@ -103,7 +102,6 @@ usage_error () { # default settings LCL_PID=$$ SRW_DIR=$(cd "$(dirname "$(readlink -f -n "${BASH_SOURCE[0]}" )" )" && pwd -P) -BIN_DIR="${SRW_DIR}/bin" MACHINE_SETUP=${SRW_DIR}/src/UFS_UTILS/sorc/machine-setup.sh BUILD_DIR="${SRW_DIR}/build" INSTALL_DIR=${SRW_DIR} @@ -247,21 +245,6 @@ fi # Check out external components =============================================== if [ "${APPLICATION}" = "ATMAQ" ]; then - if [ -d "${SRW_DIR}/sorc/arl_nexus" ]; then - printf "!!! Extra external components already exist. This step is skipped.\n" - else - if [ -d "${SRW_DIR}/sorc/gsi" ]; then - printf "!!! FV3-LAM components exist. The existing components are removed.\n" - rm -rf "${SRW_DIR}/sorc/ufs-weather-model" - rm -rf "${SRW_DIR}/sorc/UFS_UTILS" - rm -rf "${SRW_DIR}/sorc/UPP" - rm -rf "${SRW_DIR}/sorc/gsi" - rm -rf "${SRW_DIR}/sorc/rrfs_utl" - fi - printf "... Checking out external components for Online-CMAQ ...\n" - ./manage_externals/checkout_externals -e Externals_AQM.cfg - fi - if [ "${DEFAULT_BUILD}" = true ]; then BUILD_NEXUS="on" BUILD_AQM_UTILS="on" @@ -272,13 +255,6 @@ if [ "${APPLICATION}" = "ATMAQ" ]; then else BUILD_POST_STAT="off" fi -else - if [ -d "${SRW_DIR}/sorc/ufs-weather-model" ]; then - printf "!!! External components already exist. This step is skipped.\n" - else - printf "... Checking out external components for FV3-LAM ...\n" - ./manage_externals/checkout_externals - fi fi # source version file only if it is specified in versions directory From b976eee6d3ef07290e333aad7f1f2cdd96b378eb Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Fri, 20 Jan 2023 22:22:52 +0000 Subject: [PATCH 08/15] put extra components for online-cmaq into Externals.cfg --- Externals.cfg | 20 +++++++++++++++++++- Externals_AQM.cfg | 38 -------------------------------------- modulefiles/srw_common.lua | 6 +++--- versions/build.ver.hera | 5 ----- 4 files changed, 22 insertions(+), 47 deletions(-) delete mode 100644 Externals_AQM.cfg delete mode 100644 versions/build.ver.hera diff --git a/Externals.cfg b/Externals.cfg index 04d60aa80c..8ecf73073a 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -12,7 +12,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 = 84b28ec +hash = e051e0e local_path = sorc/ufs-weather-model required = True @@ -44,5 +44,23 @@ hash = 8d21f25 local_path = sorc/rrfs_utl required = True +[arl_nexus] +protocol = git +repo_url = https://github.com/noaa-oar-arl/NEXUS +# Specify either a branch name or a hash but not both. +#branch = develop +hash = 3842818 +local_path = sorc/arl_nexus +required = True + +[aqm-utils] +protocol = git +repo_url = https://github.com/NOAA-EMC/AQM-utils +# Specify either a branch name or a hash but not both. +#branch = develop +hash = 81a99ca +local_path = sorc/AQM-utils +required = True + [externals_description] schema_version = 1.0.0 diff --git a/Externals_AQM.cfg b/Externals_AQM.cfg deleted file mode 100644 index a36012eb72..0000000000 --- a/Externals_AQM.cfg +++ /dev/null @@ -1,38 +0,0 @@ -[ufs_utils] -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 = ca9bed8 -local_path = sorc/UFS_UTILS -required = True - -[ufs-weather-model] -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 = e051e0e -local_path = sorc/ufs-weather-model -required = True - -[arl_nexus] -protocol = git -repo_url = https://github.com/noaa-oar-arl/NEXUS -# Specify either a branch name or a hash but not both. -#branch = develop -hash = 3842818 -local_path = sorc/arl_nexus -required = True - -[aqm-utils] -protocol = git -repo_url = https://github.com/NOAA-EMC/AQM-utils -# Specify either a branch name or a hash but not both. -#branch = develop -hash = 81a99ca -local_path = sorc/AQM-utils -required = True - -[externals_description] -schema_version = 1.0.0 diff --git a/modulefiles/srw_common.lua b/modulefiles/srw_common.lua index 4dacce6383..6a04292bbe 100644 --- a/modulefiles/srw_common.lua +++ b/modulefiles/srw_common.lua @@ -4,13 +4,13 @@ load_any("png/1.6.35", "libpng/1.6.37") load_any("netcdf/4.7.4", "netcdf-c/4.7.4") load_any("netcdf/4.7.4", "netcdf-fortran/4.5.4") -load_any(pathJoin("pio", os.getenv("pio_ver") or "2.5.3"), pathJoin("parallelio", os.getenv("parallelio_ver") or "2.5.2")) +load_any(pathJoin("pio", os.getenv("pio_ver") or "2.5.7"), pathJoin("parallelio", os.getenv("parallelio_ver") or "2.5.2")) load_any("esmf/8.3.0b09", "esmf/8.2.0") -load(pathJoin("fms", os.getenv("fms_ver") or "2022.01")) +load(pathJoin("fms", os.getenv("fms_ver") or "2022.04")) load("bufr/11.7.0") load("bacio/2.4.1") -load(pathJoin("crtm", os.getenv("crtm_ver") or "2.3.0")) +load(pathJoin("crtm", os.getenv("crtm_ver") or "2.4.0")) load("g2/3.4.5") load("g2tmpl/1.10.0") load("ip/3.3.3") diff --git a/versions/build.ver.hera b/versions/build.ver.hera deleted file mode 100644 index a79aa0bf82..0000000000 --- a/versions/build.ver.hera +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -export fms_ver=2022.04 -export crtm_ver=2.4.0 -export pio_ver=2.5.7 From 1cbe10dd20aac75d58ec79d8c1398c51b04a8c6e Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Mon, 23 Jan 2023 17:06:26 +0000 Subject: [PATCH 09/15] update path to stacks --- modulefiles/build_cheyenne_gnu.lua | 10 +++++----- modulefiles/build_gaea_intel.lua | 12 +++++++++++- modulefiles/build_jet_intel.lua | 2 +- modulefiles/build_orion_intel.lua | 2 +- 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/modulefiles/build_cheyenne_gnu.lua b/modulefiles/build_cheyenne_gnu.lua index 705eac625a..f44f21d06d 100644 --- a/modulefiles/build_cheyenne_gnu.lua +++ b/modulefiles/build_cheyenne_gnu.lua @@ -7,17 +7,17 @@ whatis([===[Loads libraries needed for building the UFS SRW App on Cheyenne ]=== load(pathJoin("cmake", os.getenv("cmake_ver") or "3.22.0")) load(pathJoin("ncarenv", os.getenv("ncarenv_ver") or "1.3")) -load(pathJoin("gnu", os.getenv("gnu_ver") or "11.2.0")) -load(pathJoin("mpt", os.getenv("mpt_ver") or "2.25")) +load(pathJoin("gnu", os.getenv("gnu_ver") or "10.1.0")) +load(pathJoin("mpt", os.getenv("mpt_ver") or "2.22")) load(pathJoin("python", os.getenv("python_ver") or "3.7.9")) setenv("MKLROOT", "/glade/u/apps/opt/intel/2022.1/mkl/latest") load(pathJoin("ncarcompilers", os.getenv("ncarcompilers_ver") or "0.5.0")) unload("netcdf") -prepend_path("MODULEPATH","/glade/work/epicufsrt/GMTB/tools/gnu/11.2.0/hpc-stack-v1.2.0/modulefiles/stack") +prepend_path("MODULEPATH","/glade/work/epicufsrt/GMTB/tools/gnu/10.1.0/hpc-stack-v1.2.0/modulefiles/stack") load(pathJoin("hpc", os.getenv("hpc_ver") or "1.2.0")) -load(pathJoin("hpc-gnu", os.getenv("hpc_gnu_ver") or "11.2.0")) -load(pathJoin("hpc-mpt", os.getenv("hpc_mpt_ver") or "2.25")) +load(pathJoin("hpc-gnu", os.getenv("hpc_gnu_ver") or "10.1.0")) +load(pathJoin("hpc-mpt", os.getenv("hpc_mpt_ver") or "2.22")) load("srw_common") diff --git a/modulefiles/build_gaea_intel.lua b/modulefiles/build_gaea_intel.lua index 63105d0ab8..39a1c6092a 100644 --- a/modulefiles/build_gaea_intel.lua +++ b/modulefiles/build_gaea_intel.lua @@ -5,9 +5,19 @@ the NOAA RDHPC machine Gaea using Intel-2022.1.2 whatis([===[Loads libraries needed for building the UFS SRW App on Gaea ]===]) +module load PrgEnv-intel/6.0.5 +module rm intel +module rm cray-mpich +module rm netcdf +module load intel/18.0.6.288 +module load cray-mpich/7.7.11 +module load cray-python/3.7.3.2 +# Needed at runtime: +module load alps + load(pathJoin("cmake", os.getenv("cmake_ver") or "3.20.1")) -prepend_path("MODULEPATH","/lustre/f2/dev/role.epic/contrib/hpc-stack/intel-2021.3.0/modulefiles/stack") +prepend_path("MODULEPATH","/lustre/f2/pdata/ncep_shared/hpc-stack.epic/libs/intel/2021.3.0/modulefiles/stack") load(pathJoin("hpc", os.getenv("hpc_ver") or "1.2.0")) load(pathJoin("intel", os.getenv("intel_ver") or "2021.3.0")) load(pathJoin("hpc-intel", os.getenv("hpc_intel_ver") or "2021.3.0")) diff --git a/modulefiles/build_jet_intel.lua b/modulefiles/build_jet_intel.lua index a2fbeadf60..4c3b752a2a 100644 --- a/modulefiles/build_jet_intel.lua +++ b/modulefiles/build_jet_intel.lua @@ -10,7 +10,7 @@ load("sutils") load(pathJoin("cmake", os.getenv("cmake_ver") or "3.20.1")) -prepend_path("MODULEPATH","/lfs4/HFIP/hfv3gfs/nwprod/hpc-stack/libs/modulefiles/stack") +prepend_path("MODULEPATH","/lfs4/HFIP/hfv3gfs/nwprod/hpc-stack.epic/libs/intel/2022.1.2/modulefiles/stack") load(pathJoin("hpc", os.getenv("hpc_ver") or "1.2.0")) load(pathJoin("hpc-intel", os.getenv("hpc_intel_ver") or "2022.1.2")) load(pathJoin("hpc-impi", os.getenv("hpc_impi_ver") or "2022.1.2")) diff --git a/modulefiles/build_orion_intel.lua b/modulefiles/build_orion_intel.lua index 5512b99387..5a4d1f54e6 100644 --- a/modulefiles/build_orion_intel.lua +++ b/modulefiles/build_orion_intel.lua @@ -11,7 +11,7 @@ load("noaatools") load(pathJoin("cmake", os.getenv("cmake_ver") or "3.22.1")) load(pathJoin("python", os.getenv("python_ver") or "3.9.2")) -prepend_path("MODULEPATH","/apps/contrib/NCEP/libs/hpc-stack/modulefiles/stack") +prepend_path("MODULEPATH","/work/noaa/epic-ps/hpc-stack/lib/intel/2022.1.2/modulefiles/stack") load(pathJoin("hpc", os.getenv("hpc_ver") or "1.2.0")) load(pathJoin("hpc-intel", os.getenv("hpc_intel_ver") or "2022.1.2")) load(pathJoin("hpc-impi", os.getenv("hpc_impi_ver") or "2022.1.2")) From 725adc385bddccfe0e1b68879b6a74da44df0e54 Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Mon, 23 Jan 2023 18:03:42 +0000 Subject: [PATCH 10/15] fix modulefile for gaea --- modulefiles/build_gaea_intel.lua | 17 ++++++++--------- modulefiles/srw_common.lua | 2 +- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/modulefiles/build_gaea_intel.lua b/modulefiles/build_gaea_intel.lua index 39a1c6092a..cc9b2c6246 100644 --- a/modulefiles/build_gaea_intel.lua +++ b/modulefiles/build_gaea_intel.lua @@ -5,15 +5,14 @@ the NOAA RDHPC machine Gaea using Intel-2022.1.2 whatis([===[Loads libraries needed for building the UFS SRW App on Gaea ]===]) -module load PrgEnv-intel/6.0.5 -module rm intel -module rm cray-mpich -module rm netcdf -module load intel/18.0.6.288 -module load cray-mpich/7.7.11 -module load cray-python/3.7.3.2 -# Needed at runtime: -module load alps +load("PrgEnv-intel/6.0.5") +unload("intel") +unload("cray-mpich") +unload("netcdf") +load("intel/18.0.6.288") +load("cray-mpich/7.7.11") +load("cray-python/3.7.3.2") +load("alps") load(pathJoin("cmake", os.getenv("cmake_ver") or "3.20.1")) diff --git a/modulefiles/srw_common.lua b/modulefiles/srw_common.lua index 6a04292bbe..8c0ba6aeeb 100644 --- a/modulefiles/srw_common.lua +++ b/modulefiles/srw_common.lua @@ -12,7 +12,7 @@ load("bufr/11.7.0") load("bacio/2.4.1") load(pathJoin("crtm", os.getenv("crtm_ver") or "2.4.0")) load("g2/3.4.5") -load("g2tmpl/1.10.0") +load("g2tmpl/1.10.2") load("ip/3.3.3") load("sp/2.3.3") load("w3emc/2.9.2") From cd6c89f01cf6d82e1095a07b2ebedc16278451a8 Mon Sep 17 00:00:00 2001 From: chan-hoo jeon Date: Tue, 24 Jan 2023 15:42:39 +0000 Subject: [PATCH 11/15] update ex-scripts --- scripts/exregional_aqm_lbcs.sh | 15 ++++++++------- scripts/exregional_nexus_gfs_sfc.sh | 9 +++++++-- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/scripts/exregional_aqm_lbcs.sh b/scripts/exregional_aqm_lbcs.sh index b27368bbcc..5864d34df9 100755 --- a/scripts/exregional_aqm_lbcs.sh +++ b/scripts/exregional_aqm_lbcs.sh @@ -60,6 +60,7 @@ export OMP_STACKSIZE=${OMP_STACKSIZE_MAKE_LBCS} # #----------------------------------------------------------------------- # +set -x eval ${PRE_TASK_CMDS} nprocs=$(( NNODES_AQM_LBCS*PPN_AQM_LBCS )) @@ -143,18 +144,18 @@ fi if [ ${DO_AQM_GEFS_LBCS} = "TRUE" ]; then RUN_CYC="${cyc}" + CDATE_MOD=$( $DATE_UTIL --utc --date "${PDY} ${cyc} UTC - ${EXTRN_MDL_LBCS_OFFSET_HRS} hours" "+%Y%m%d%H" ) + PDY_MOD=${CDATE_MOD:0:8} + AQM_GEFS_FILE_CYC=${AQM_GEFS_FILE_CYC:-"${CDATE_MOD:8:2}"} + AQM_GEFS_FILE_CYC=$( printf "%02d" "${AQM_GEFS_FILE_CYC}" ) if [ ${DO_REAL_TIME} = "TRUE" ]; then - CDATE_MOD=$( $DATE_UTIL --utc --date "${PDY} ${cyc} UTC - ${EXTRN_MDL_LBCS_OFFSET_HRS} hours" "+%Y%m%d%H" ) - PDY_MOD=${CDATE_MOD:0:8} - AQM_GEFS_CYC=$( printf "%02d" ${CDATE_MOD:8:2} ) - AQM_MOFILE_FN="${AQM_GEFS_DIR}/gefs.${PDY_MOD}/${AQM_GEFS_CYC}/chem/sfcsig/geaer.t${AQM_GEFS_CYC}z.atmf" + AQM_MOFILE_FN="${COMINgefs}/gefs.${PDY_MOD}/${AQM_GEFS_FILE_CYC}/chem/sfcsig/${AQM_GEFS_FILE_PREFIX}.t${AQM_GEFS_FILE_CYC}z.atmf" else - AQM_GEFS_CYC=$( printf "%02d" "${AQM_GEFS_CYC}" ) - AQM_MOFILE_FN="${AQM_GEFS_DIR}/${PDY}/${AQM_GEFS_CYC}/gfs.t00z.atmf" + AQM_MOFILE_FN="${AQM_GEFS_DIR}/${PDY}/${AQM_GEFS_FILE_CYC}/${AQM_GEFS_FILE_PREFIX}.t${AQM_GEFS_FILE_CYC}z.atmf" fi - GEFS_CYC_DIFF=$( printf "%02d" "$(( RUN_CYC - AQM_GEFS_CYC ))" ) + GEFS_CYC_DIFF=$( printf "%02d" "$(( RUN_CYC - AQM_GEFS_FILE_CYC ))" ) NUMTS="$(( FCST_LEN_HRS / LBC_SPEC_INTVL_HRS + 1 ))" cat > gefs2lbc-nemsio.ini < Date: Wed, 25 Jan 2023 19:58:44 +0000 Subject: [PATCH 12/15] add missing module file for pre_post_stat on Hera --- modulefiles/tasks/hera/pre_post_stat.local.lua | 1 + 1 file changed, 1 insertion(+) create mode 100644 modulefiles/tasks/hera/pre_post_stat.local.lua diff --git a/modulefiles/tasks/hera/pre_post_stat.local.lua b/modulefiles/tasks/hera/pre_post_stat.local.lua new file mode 100644 index 0000000000..23370a8d60 --- /dev/null +++ b/modulefiles/tasks/hera/pre_post_stat.local.lua @@ -0,0 +1 @@ +load(pathJoin("nco", os.getenv("nco_ver") or "4.9.3")) From bd8064a2146a8bc8d4f7e622c0dcc4b5af064f12 Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Wed, 8 Feb 2023 19:33:08 +0000 Subject: [PATCH 13/15] update scripts --- scripts/exregional_bias_correction_o3.sh | 25 ++++++++++++++++++---- scripts/exregional_bias_correction_pm25.sh | 20 ++++++++++++++--- 2 files changed, 38 insertions(+), 7 deletions(-) diff --git a/scripts/exregional_bias_correction_o3.sh b/scripts/exregional_bias_correction_o3.sh index 834be680cb..cf40bdb545 100755 --- a/scripts/exregional_bias_correction_o3.sh +++ b/scripts/exregional_bias_correction_o3.sh @@ -188,6 +188,23 @@ POST_STEP cp_vrfy ${DATA}/out/ozone/${yyyy}/*nc ${DATA}/data/bcdata.${yyyymm}/interpolated/ozone/${yyyy} + +mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/interpolated/ozone/${yyyy} +cp_vrfy ${DATA}/out/ozone/${yyyy}/*nc ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/interpolated/ozone/${yyyy} + +mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/airnow/${yyyy}/${PDY}/b008 +mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 +mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 +mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 +cp_vrfy ${COMINairnow}/${yyyy}/${PDY}/b008/xx021 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/airnow/${yyyy}/${PDY}/b008 +cp_vrfy ${COMINairnow}/${yyyy_m1}/${PDYm1}/b008/xx021 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 +cp_vrfy ${COMINairnow}/${yyyy_m2}/${PDYm2}/b008/xx021 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 +cp_vrfy ${COMINairnow}/${yyyy_m3}/${PDYm3}/b008/xx021 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 + +mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/grid/${cyc}z/${PDY} +cp_vrfy ${COMIN}/${NET}.${cycle}.*sfc*.nc ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/grid/${cyc}z/${PDY} + +#exit #----------------------------------------------------------------------------- # STEP 4: Performing Bias Correction for Ozone #----------------------------------------------------------------------------- @@ -298,8 +315,8 @@ EOF1 grid227="lambert:265.0000:25.0000:25.0000 226.5410:1473:5079.000 12.1900:1025:5079.000" - wgrib2 ${NET}.${cycle}.max_8hr_o3_bc.${id_domain}.grib2 -set_grib_type same -new_grid_winds earth -new_grid ${grid227} ${NET}.${cycle}.max_8hr_o3_bc.227.grib2 - wgrib2 ${NET}.${cycle}.max_1hr_o3_bc.${id_domain}.grib2 -set_grib_type same -new_grid_winds earth -new_grid ${grid227} ${NET}.${cycle}.max_1hr_o3_bc.227.grib2 + wgrib2 ${NET}.${cycle}.max_8hr_o3_bc.${id_domain}.grib2 -set_grib_type c3b -new_grid_winds earth -new_grid ${grid227} ${NET}.${cycle}.max_8hr_o3_bc.227.grib2 + wgrib2 ${NET}.${cycle}.max_1hr_o3_bc.${id_domain}.grib2 -set_grib_type c3b -new_grid_winds earth -new_grid ${grid227} ${NET}.${cycle}.max_1hr_o3_bc.227.grib2 cp_vrfy ${DATA}/${NET}.${cycle}.max_*hr_o3_bc.*.grib2 ${COMOUT} @@ -368,12 +385,12 @@ newgrib2file2=${NET}.${cycle}.ave_8hr_o3_bc.227.grib2 grid227="lambert:265.0000:25.0000:25.0000 226.5410:1473:5079.000 12.1900:1025:5079.000" -wgrib2 tmpfile.1hr -set_grib_type same -new_grid_winds earth -new_grid ${grid227} ${newgrib2file1} +wgrib2 tmpfile.1hr -set_grib_type c3b -new_grid_winds earth -new_grid ${grid227} ${newgrib2file1} cp_vrfy tmpfile.1hr ${COMOUT}/${NET}.${cycle}.ave_1hr_o3_bc.${id_domain}.grib2 cp_vrfy ${NET}.${cycle}.ave_1hr_o3_bc.227.grib2 ${COMOUT} if [ "${cyc}" = "06" ] || [ "${cyc}" = "12" ]; then - wgrib2 tmpfile.8hr -set_grib_type same -new_grid_winds earth -new_grid ${grid227} ${newgrib2file2} + wgrib2 tmpfile.8hr -set_grib_type c3b -new_grid_winds earth -new_grid ${grid227} ${newgrib2file2} cp_vrfy tmpfile.8hr ${COMOUT}/${NET}.${cycle}.ave_8hr_o3_bc.${id_domain}.grib2 cp_vrfy ${NET}.${cycle}.ave_8hr_o3_bc.227.grib2 ${COMOUT} fi diff --git a/scripts/exregional_bias_correction_pm25.sh b/scripts/exregional_bias_correction_pm25.sh index a8e3ccb53e..86827a83d0 100755 --- a/scripts/exregional_bias_correction_pm25.sh +++ b/scripts/exregional_bias_correction_pm25.sh @@ -188,6 +188,20 @@ POST_STEP cp_vrfy ${DATA}/out/pm25/${yyyy}/*nc ${DATA}/data/bcdata.${yyyymm}/interpolated/pm25/${yyyy} + +mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/interpolated/pm25/${yyyy} +cp_vrfy ${DATA}/out/pm25/${yyyy}/*nc ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/interpolated/pm25/${yyyy} + +mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/airnow/${yyyy}/${PDY}/b008 +mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 +mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 +mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 +cp_vrfy ${COMINairnow}/${yyyy}/${PDY}/b008/xx031 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/airnow/${yyyy}/${PDY}/b008 +cp_vrfy ${COMINairnow}/${yyyy_m1}/${PDYm1}/b008/xx031 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 +cp_vrfy ${COMINairnow}/${yyyy_m2}/${PDYm2}/b008/xx031 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 +cp_vrfy ${COMINairnow}/${yyyy_m3}/${PDYm3}/b008/xx031 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 + +#exit #----------------------------------------------------------------------- # STEP 4: Performing Bias Correction for PM2.5 #----------------------------------------------------------------------- @@ -309,11 +323,11 @@ EOF1 newgrib2file1=${NET}.${cycle}.ave_24hr_pm25_bc.227.grib2 grid227="lambert:265.0000:25.0000:25.0000 226.5410:1473:5079.000 12.1900:1025:5079.000" - wgrib2 ${oldgrib2file1} -set_grib_type same -new_grid_winds earth -new_grid ${grid227} ${newgrib2file1} + wgrib2 ${oldgrib2file1} -set_grib_type c3b -new_grid_winds earth -new_grid ${grid227} ${newgrib2file1} oldgrib2file2=${NET}.${cycle}.max_1hr_pm25_bc.${id_domain}.grib2 newgrib2file2=${NET}.${cycle}.max_1hr_pm25_bc.227.grib2 - wgrib2 ${oldgrib2file2} -set_grib_type same -new_grid_winds earth -new_grid ${grid227} ${newgrib2file2} + wgrib2 ${oldgrib2file2} -set_grib_type c3b -new_grid_winds earth -new_grid ${grid227} ${newgrib2file2} cp_vrfy ${NET}.${cycle}.max_1hr_pm25_bc.${id_domain}.grib2 ${COMOUT} cp_vrfy ${NET}.${cycle}.ave_24hr_pm25_bc.${id_domain}.grib2 ${COMOUT} @@ -334,7 +348,7 @@ while [ "${fhr}" -le "${FCST_LEN_HRS}" ]; do done grid227="lambert:265.0000:25.0000:25.0000 226.5410:1473:5079.000 12.1900:1025:5079.000" -wgrib2 tmpfile_pm25_bc -set_grib_type same -new_grid_winds earth -new_grid ${grid227} ${NET}.${cycle}.grib2_pm25_bc.227 +wgrib2 tmpfile_pm25_bc -set_grib_type c3b -new_grid_winds earth -new_grid ${grid227} ${NET}.${cycle}.grib2_pm25_bc.227 cp_vrfy tmpfile_pm25_bc ${COMOUT}/${NET}.${cycle}.ave_1hr_pm25_bc.${id_domain}.grib2 cp_vrfy ${NET}.${cycle}.grib2_pm25_bc.227 ${COMOUT}/${NET}.${cycle}.ave_1hr_pm25_bc.227.grib2 From 3bb744f761a3cbe4a49b823a102fb1de59d19185 Mon Sep 17 00:00:00 2001 From: Michael Lueken Date: Thu, 9 Feb 2023 19:53:38 +0000 Subject: [PATCH 14/15] Update modulefiles to use EPIC maintained locations and address Hera still submitting in Jenkins testing. --- .cicd/Jenkinsfile | 2 +- modulefiles/build_cheyenne_gnu.lua | 14 +++++++------- modulefiles/build_cheyenne_intel.lua | 6 +++--- modulefiles/build_gaea_intel.lua | 11 +---------- modulefiles/build_jet_intel.lua | 2 +- modulefiles/build_orion_intel.lua | 4 +--- modulefiles/srw_common.lua | 6 +++--- 7 files changed, 17 insertions(+), 28 deletions(-) diff --git a/.cicd/Jenkinsfile b/.cicd/Jenkinsfile index 370a49b953..890e92b82b 100644 --- a/.cicd/Jenkinsfile +++ b/.cicd/Jenkinsfile @@ -15,7 +15,7 @@ pipeline { // choice(name: 'SRW_PLATFORM_FILTER', choices: ['all', 'cheyenne', 'gaea', 'hera', 'jet', 'orion', 'pclusternoaav2use1'], description: 'Specify the platform(s) to use') // Use the line below to enable hera // choice(name: 'SRW_PLATFORM_FILTER', choices: ['all', 'cheyenne', 'gaea', 'hera', 'jet', 'orion'], description: 'Specify the platform(s) to use') - choice(name: 'SRW_PLATFORM_FILTER', choices: ['all', 'cheyenne', 'gaea', 'jet', 'orion'], description: 'Specify the platform(s) to use') + choice(name: 'SRW_PLATFORM_FILTER', choices: ['cheyenne', 'gaea', 'jet', 'orion'], description: 'Specify the platform(s) to use') // Allow job runner to filter based on compiler choice(name: 'SRW_COMPILER_FILTER', choices: ['all', 'gnu', 'intel'], description: 'Specify the compiler(s) to use to build') // Uncomment the following line to re-enable comprehensive tests diff --git a/modulefiles/build_cheyenne_gnu.lua b/modulefiles/build_cheyenne_gnu.lua index f44f21d06d..da6d887e6e 100644 --- a/modulefiles/build_cheyenne_gnu.lua +++ b/modulefiles/build_cheyenne_gnu.lua @@ -7,17 +7,17 @@ whatis([===[Loads libraries needed for building the UFS SRW App on Cheyenne ]=== load(pathJoin("cmake", os.getenv("cmake_ver") or "3.22.0")) load(pathJoin("ncarenv", os.getenv("ncarenv_ver") or "1.3")) -load(pathJoin("gnu", os.getenv("gnu_ver") or "10.1.0")) -load(pathJoin("mpt", os.getenv("mpt_ver") or "2.22")) +load(pathJoin("gnu", os.getenv("gnu_ver") or "11.2.0")) +load(pathJoin("mpt", os.getenv("mpt_ver") or "2.25")) load(pathJoin("python", os.getenv("python_ver") or "3.7.9")) setenv("MKLROOT", "/glade/u/apps/opt/intel/2022.1/mkl/latest") load(pathJoin("ncarcompilers", os.getenv("ncarcompilers_ver") or "0.5.0")) unload("netcdf") -prepend_path("MODULEPATH","/glade/work/epicufsrt/GMTB/tools/gnu/10.1.0/hpc-stack-v1.2.0/modulefiles/stack") +prepend_path("MODULEPATH","/glade/work/epicufsrt/contrib/hpc-stack/gnu11.2.0/modulefiles/stack") load(pathJoin("hpc", os.getenv("hpc_ver") or "1.2.0")) -load(pathJoin("hpc-gnu", os.getenv("hpc_gnu_ver") or "10.1.0")) -load(pathJoin("hpc-mpt", os.getenv("hpc_mpt_ver") or "2.22")) +load(pathJoin("hpc-gnu", os.getenv("hpc_gnu_ver") or "11.2.0")) +load(pathJoin("hpc-mpt", os.getenv("hpc_mpt_ver") or "2.25")) load("srw_common") @@ -25,8 +25,8 @@ load(pathJoin("g2", os.getenv("g2_ver") or "3.4.5")) load(pathJoin("esmf", os.getenv("esmf_ver") or "8.3.0b09")) load(pathJoin("netcdf", os.getenv("netcdf_ver") or "4.7.4")) load(pathJoin("libpng", os.getenv("libpng_ver") or "1.6.37")) -load(pathJoin("pio", os.getenv("pio_ver") or "2.5.3")) -load(pathJoin("fms", os.getenv("fms_ver") or "2022.01")) +load(pathJoin("pio", os.getenv("pio_ver") or "2.5.7")) +load(pathJoin("fms", os.getenv("fms_ver") or "2022.04")) setenv("CMAKE_C_COMPILER","mpicc") setenv("CMAKE_CXX_COMPILER","mpicxx") diff --git a/modulefiles/build_cheyenne_intel.lua b/modulefiles/build_cheyenne_intel.lua index 3f2e8a73b6..ebbaa1d069 100644 --- a/modulefiles/build_cheyenne_intel.lua +++ b/modulefiles/build_cheyenne_intel.lua @@ -14,7 +14,7 @@ load(pathJoin("python", os.getenv("python_ver") or "3.7.9")) load(pathJoin("ncarcompilers", os.getenv("ncarcompilers_ver") or "0.5.0")) unload("netcdf") -prepend_path("MODULEPATH","/glade/work/epicufsrt/GMTB/tools/intel/2022.1/hpc-stack-v1.2.0_6eb6/modulefiles/stack") +prepend_path("MODULEPATH","/glade/work/epicufsrt/contrib/hpc-stack/intel2022.1/modulefiles/stack") load(pathJoin("hpc", os.getenv("hpc_ver") or "1.2.0")) load(pathJoin("hpc-intel", os.getenv("hpc_intel_ver") or "2022.1")) load(pathJoin("hpc-mpt", os.getenv("hpc_mpt_ver") or "2.25")) @@ -25,8 +25,8 @@ load(pathJoin("g2", os.getenv("g2_ver") or "3.4.5")) load(pathJoin("esmf", os.getenv("esmf_ver") or "8.3.0b09")) load(pathJoin("netcdf", os.getenv("netcdf_ver") or "4.7.4")) load(pathJoin("libpng", os.getenv("libpng_ver") or "1.6.37")) -load(pathJoin("pio", os.getenv("pio_ver") or "2.5.3")) -load(pathJoin("fms", os.getenv("fms_ver") or "2022.01")) +load(pathJoin("pio", os.getenv("pio_ver") or "2.5.7")) +load(pathJoin("fms", os.getenv("fms_ver") or "2022.04")) setenv("CMAKE_C_COMPILER","mpicc") setenv("CMAKE_CXX_COMPILER","mpicpc") diff --git a/modulefiles/build_gaea_intel.lua b/modulefiles/build_gaea_intel.lua index cc9b2c6246..63105d0ab8 100644 --- a/modulefiles/build_gaea_intel.lua +++ b/modulefiles/build_gaea_intel.lua @@ -5,18 +5,9 @@ the NOAA RDHPC machine Gaea using Intel-2022.1.2 whatis([===[Loads libraries needed for building the UFS SRW App on Gaea ]===]) -load("PrgEnv-intel/6.0.5") -unload("intel") -unload("cray-mpich") -unload("netcdf") -load("intel/18.0.6.288") -load("cray-mpich/7.7.11") -load("cray-python/3.7.3.2") -load("alps") - load(pathJoin("cmake", os.getenv("cmake_ver") or "3.20.1")) -prepend_path("MODULEPATH","/lustre/f2/pdata/ncep_shared/hpc-stack.epic/libs/intel/2021.3.0/modulefiles/stack") +prepend_path("MODULEPATH","/lustre/f2/dev/role.epic/contrib/hpc-stack/intel-2021.3.0/modulefiles/stack") load(pathJoin("hpc", os.getenv("hpc_ver") or "1.2.0")) load(pathJoin("intel", os.getenv("intel_ver") or "2021.3.0")) load(pathJoin("hpc-intel", os.getenv("hpc_intel_ver") or "2021.3.0")) diff --git a/modulefiles/build_jet_intel.lua b/modulefiles/build_jet_intel.lua index 4c3b752a2a..01c120daa3 100644 --- a/modulefiles/build_jet_intel.lua +++ b/modulefiles/build_jet_intel.lua @@ -10,7 +10,7 @@ load("sutils") load(pathJoin("cmake", os.getenv("cmake_ver") or "3.20.1")) -prepend_path("MODULEPATH","/lfs4/HFIP/hfv3gfs/nwprod/hpc-stack.epic/libs/intel/2022.1.2/modulefiles/stack") +prepend_path("MODULEPATH","/mnt/lfs4/HFIP/hfv3gfs/role.epic/hpc-stack/libs/intel-2022.1.2/modulefiles/stack") load(pathJoin("hpc", os.getenv("hpc_ver") or "1.2.0")) load(pathJoin("hpc-intel", os.getenv("hpc_intel_ver") or "2022.1.2")) load(pathJoin("hpc-impi", os.getenv("hpc_impi_ver") or "2022.1.2")) diff --git a/modulefiles/build_orion_intel.lua b/modulefiles/build_orion_intel.lua index 5a4d1f54e6..3b150e6d48 100644 --- a/modulefiles/build_orion_intel.lua +++ b/modulefiles/build_orion_intel.lua @@ -11,7 +11,7 @@ load("noaatools") load(pathJoin("cmake", os.getenv("cmake_ver") or "3.22.1")) load(pathJoin("python", os.getenv("python_ver") or "3.9.2")) -prepend_path("MODULEPATH","/work/noaa/epic-ps/hpc-stack/lib/intel/2022.1.2/modulefiles/stack") +prepend_path("MODULEPATH","/work/noaa/epic-ps/role-epic-ps/hpc-stack/libs/intel-2022.1.2/modulefiles/stack") load(pathJoin("hpc", os.getenv("hpc_ver") or "1.2.0")) load(pathJoin("hpc-intel", os.getenv("hpc_intel_ver") or "2022.1.2")) load(pathJoin("hpc-impi", os.getenv("hpc_impi_ver") or "2022.1.2")) @@ -21,8 +21,6 @@ load("srw_common") load(pathJoin("nccmp", os.getenv("nccmp_ver") or "1.8.9.0")) load(pathJoin("nco", os.getenv("nco_ver") or "4.9.3")) -load(pathJoin("wgrib2", os.getenv("wgrib2_ver") or "2.0.8")) - setenv("CMAKE_C_COMPILER","mpiicc") setenv("CMAKE_CXX_COMPILER","mpiicpc") setenv("CMAKE_Fortran_COMPILER","mpiifort") diff --git a/modulefiles/srw_common.lua b/modulefiles/srw_common.lua index 8c0ba6aeeb..9eb529294c 100644 --- a/modulefiles/srw_common.lua +++ b/modulefiles/srw_common.lua @@ -4,13 +4,13 @@ load_any("png/1.6.35", "libpng/1.6.37") load_any("netcdf/4.7.4", "netcdf-c/4.7.4") load_any("netcdf/4.7.4", "netcdf-fortran/4.5.4") -load_any(pathJoin("pio", os.getenv("pio_ver") or "2.5.7"), pathJoin("parallelio", os.getenv("parallelio_ver") or "2.5.2")) +load_any("pio/2.5.7", "parallelio/2.5.2") load_any("esmf/8.3.0b09", "esmf/8.2.0") -load(pathJoin("fms", os.getenv("fms_ver") or "2022.04")) +load("fms/2022.04") load("bufr/11.7.0") load("bacio/2.4.1") -load(pathJoin("crtm", os.getenv("crtm_ver") or "2.4.0")) +load("crtm/2.4.0") load("g2/3.4.5") load("g2tmpl/1.10.2") load("ip/3.3.3") From e355b6317c8a4da843b227baf2fd10f48c9d526b Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Fri, 10 Feb 2023 16:27:15 +0000 Subject: [PATCH 15/15] move build selection part and clean up module --- devbuild.sh | 43 ++++++++++++++++---------------- modulefiles/build_hera_intel.lua | 2 -- 2 files changed, 21 insertions(+), 24 deletions(-) diff --git a/devbuild.sh b/devbuild.sh index 375b973782..f70797fb74 100755 --- a/devbuild.sh +++ b/devbuild.sh @@ -194,13 +194,6 @@ while :; do shift done -# choose default apps to build -if [ "${DEFAULT_BUILD}" = true ]; then - BUILD_UFS="on" - BUILD_UFS_UTILS="on" - BUILD_UPP="on" -fi - # Ensure uppercase / lowercase ============================================ APPLICATION="${APPLICATION^^}" PLATFORM="${PLATFORM,,}" @@ -213,11 +206,31 @@ if [ -z $PLATFORM ] ; then usage exit 0 fi - # set PLATFORM (MACHINE) MACHINE="${PLATFORM}" printf "PLATFORM(MACHINE)=${PLATFORM}\n" >&2 +# choose default apps to build +if [ "${DEFAULT_BUILD}" = true ]; then + BUILD_UFS="on" + BUILD_UFS_UTILS="on" + BUILD_UPP="on" +fi + +# Choose components to build for Online-CMAQ +if [ "${APPLICATION}" = "ATMAQ" ]; then + if [ "${DEFAULT_BUILD}" = true ]; then + BUILD_NEXUS="on" + BUILD_AQM_UTILS="on" + BUILD_UPP="off" + fi + if [ "${PLATFORM}" = "wcoss2" ]; then + BUILD_POST_STAT="on" + else + BUILD_POST_STAT="off" + fi +fi + set -eu # automatically determine compiler @@ -243,20 +256,6 @@ if [ "${VERBOSE}" = true ] ; then settings fi -# Check out external components =============================================== -if [ "${APPLICATION}" = "ATMAQ" ]; then - if [ "${DEFAULT_BUILD}" = true ]; then - BUILD_NEXUS="on" - BUILD_AQM_UTILS="on" - BUILD_UPP="off" - fi - if [ "${PLATFORM}" = "wcoss2" ]; then - BUILD_POST_STAT="on" - else - BUILD_POST_STAT="off" - fi -fi - # source version file only if it is specified in versions directory BUILD_VERSION_FILE="${SRW_DIR}/versions/build.ver.${PLATFORM}" if [ -f ${BUILD_VERSION_FILE} ]; then diff --git a/modulefiles/build_hera_intel.lua b/modulefiles/build_hera_intel.lua index 068fa9fa54..02af59a626 100644 --- a/modulefiles/build_hera_intel.lua +++ b/modulefiles/build_hera_intel.lua @@ -27,8 +27,6 @@ load("srw_common") load(pathJoin("nccmp", os.getenv("nccmp_ver") or "1.8.9.0")) load(pathJoin("nco", os.getenv("nco_ver") or "4.9.3")) -load(pathJoin("wgrib2", os.getenv("wgrib2_ver") or "2.0.8")) - setenv("CMAKE_C_COMPILER","mpiicc") setenv("CMAKE_CXX_COMPILER","mpiicpc") setenv("CMAKE_Fortran_COMPILER","mpiifort")