diff --git a/modulefiles/gsi_container.intel.lua b/modulefiles/gsi_container.intel.lua new file mode 100644 index 0000000000..546919be77 --- /dev/null +++ b/modulefiles/gsi_container.intel.lua @@ -0,0 +1,28 @@ +help([[ +]]) + +prepend_path("MODULEPATH", "/opt/spack-stack/spack-stack-1.8.0/envs/unified-env/install/modulefiles/Core") + +local stack_intel_ver=os.getenv("stack_intel_ver") or "2021.10.0" +local stack_impi_ver=os.getenv("stack_impi_ver") or "2021.12.2" +local cmake_ver=os.getenv("cmake_ver") or "3.27.9" +local prod_util_ver=os.getenv("prod_util_ver") or "2.1.1" + +load(pathJoin("stack-intel", stack_intel_ver)) +load(pathJoin("stack-intel-oneapi-mpi", stack_impi_ver)) +load(pathJoin("cmake", cmake_ver)) + +load("gsi_common") +load(pathJoin("prod_util", prod_util_ver)) + +pushenv("CFLAGS", "-march=ivybridge") +pushenv("FFLAGS", "-march=ivybridge") + +setenv("CC","mpiicc") +setenv("CXX","mpiicpc") +setenv("FC","mpiifort") +setenv("F90","mpiifort") +setenv("F77","mpiifort") +pushenv("USE_BUFR4", "YES") + +whatis("Description: GSI environment in a container with Intel Compilers") diff --git a/modulefiles/gsi_gaea.intel.lua b/modulefiles/gsi_gaeac5.intel.lua similarity index 74% rename from modulefiles/gsi_gaea.intel.lua rename to modulefiles/gsi_gaeac5.intel.lua index 799822caa8..de259f1741 100644 --- a/modulefiles/gsi_gaea.intel.lua +++ b/modulefiles/gsi_gaeac5.intel.lua @@ -4,8 +4,8 @@ help([[ prepend_path("MODULEPATH", "/ncrc/proj/epic/spack-stack/spack-stack-1.6.0/envs/gsi-addon-dev/install/modulefiles/Core") local stack_python_ver=os.getenv("stack_python_ver") or "3.11.6" -local stack_intel_ver=os.getenv("stack_intel_ver") or "2023.1.0" -local stack_cray_mpich_ver=os.getenv("stack_cray_mpich_ver") or "8.1.25" +local stack_intel_ver=os.getenv("stack_intel_ver") or "2023.2.0" +local stack_cray_mpich_ver=os.getenv("stack_cray_mpich_ver") or "8.1.28" local cmake_ver=os.getenv("cmake_ver") or "3.23.1" local prod_util_ver=os.getenv("prod_util_ver") or "2.1.1" @@ -17,10 +17,6 @@ load(pathJoin("cmake", cmake_ver)) load("gsi_common") load(pathJoin("prod_util", prod_util_ver)) -local MKLROOT="/opt/intel/oneapi/mkl/2022.0.2/" -prepend_path("LD_LIBRARY_PATH",pathJoin(MKLROOT,"lib/intel64")) -pushenv("MKLROOT", MKLROOT) - pushenv("GSI_BINARY_SOURCE_DIR", "/gpfs/f5/ufs-ard/world-shared/GSI_data/fix/gsi/20240208") setenv("CC","cc") @@ -29,4 +25,4 @@ setenv("CXX","CC") pushenv("CRAYPE_LINK_TYPE","dynamic") unload("cray-libsci") -whatis("Description: GSI environment on Gaea with Intel Compilers") +whatis("Description: GSI environment on GaeaC5 with Intel Compilers") diff --git a/modulefiles/gsi_gaeac6.intel.lua b/modulefiles/gsi_gaeac6.intel.lua new file mode 100644 index 0000000000..68e8c1ff39 --- /dev/null +++ b/modulefiles/gsi_gaeac6.intel.lua @@ -0,0 +1,28 @@ +help([[ +]]) + +prepend_path("MODULEPATH", "/ncrc/proj/epic/spack-stack/spack-stack-1.6.0/envs/gsi-addon-dev/install/modulefiles/Core") + +local stack_python_ver=os.getenv("stack_python_ver") or "3.11.6" +local stack_intel_ver=os.getenv("stack_intel_ver") or "2023.2.0" +local stack_cray_mpich_ver=os.getenv("stack_cray_mpich_ver") or "8.1.28" +local cmake_ver=os.getenv("cmake_ver") or "3.23.1" +local prod_util_ver=os.getenv("prod_util_ver") or "2.1.1" + +load(pathJoin("stack-intel", stack_intel_ver)) +load(pathJoin("stack-cray-mpich", stack_cray_mpich_ver)) +load(pathJoin("stack-python", stack_python_ver)) +load(pathJoin("cmake", cmake_ver)) + +load("gsi_common") +load(pathJoin("prod_util", prod_util_ver)) + +pushenv("GSI_BINARY_SOURCE_DIR", "/gpfs/f6/bil-fire8/world-shared/GSI_data/fix/gsi/20240208") + +setenv("CC","cc") +setenv("FC","ftn") +setenv("CXX","CC") +pushenv("CRAYPE_LINK_TYPE","dynamic") + +unload("cray-libsci") +whatis("Description: GSI environment on GaeaC6 with Intel Compilers") diff --git a/src/gsi/CMakeLists.txt b/src/gsi/CMakeLists.txt index f894b0a8a8..05d9c9ec86 100644 --- a/src/gsi/CMakeLists.txt +++ b/src/gsi/CMakeLists.txt @@ -155,7 +155,11 @@ target_link_libraries(gsi_fortran_obj PUBLIC nemsio::nemsio) target_link_libraries(gsi_fortran_obj PUBLIC ncio::ncio) target_link_libraries(gsi_fortran_obj PUBLIC w3emc::w3emc_d) target_link_libraries(gsi_fortran_obj PUBLIC sp::sp_d) -target_link_libraries(gsi_fortran_obj PUBLIC bufr::bufr_d) +if(DEFINED ENV{USE_BUFR4}) + target_link_libraries(gsi_fortran_obj PUBLIC bufr::bufr_4) +else() + target_link_libraries(gsi_fortran_obj PUBLIC bufr::bufr_d) +endif() target_link_libraries(gsi_fortran_obj PUBLIC crtm::crtm) if(GSI_MODE MATCHES "Regional") target_link_libraries(gsi_fortran_obj PUBLIC wrf_io::wrf_io) diff --git a/ush/detect_machine.sh b/ush/detect_machine.sh index 0beb937f7e..2f2c4f7b84 100755 --- a/ush/detect_machine.sh +++ b/ush/detect_machine.sh @@ -21,8 +21,11 @@ case $(hostname -f) in dlogin0[1-9].dogwood.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### dogwood01-9 dlogin10.dogwood.wcoss2.ncep.noaa.gov) MACHINE_ID=wcoss2 ;; ### dogwood10 - gaea5[1-8]) MACHINE_ID=gaea ;; ### gaea51-58 - gaea5[1-8].ncrc.gov) MACHINE_ID=gaea ;; ### gaea51-58 + gaea5[1-8]) MACHINE_ID=gaeac5 ;; ### gaea51-58 + gaea5[1-8].ncrc.gov) MACHINE_ID=gaeac5 ;; ### gaea51-58 + + gaea6[1-8]) MACHINE_ID=gaeac6 ;; ### gaea61-68 + gaea6[1-8].ncrc.gov) MACHINE_ID=gaeac6 ;; ### gaea61-68 hfe0[1-9]) MACHINE_ID=hera ;; ### hera01-09 hfe1[0-2]) MACHINE_ID=hera ;; ### hera10-12 @@ -61,7 +64,10 @@ if [[ "${MACHINE_ID}" != "UNKNOWN" ]]; then fi # Try searching based on paths since hostname may not match on compute nodes -if [[ -d /lfs/h3 ]]; then +if [[ -d /opt/spack-stack ]]; then + # We are in a container + MACHINE_ID=container +elif [[ -d /lfs/h3 ]]; then # We are on NOAA Cactus or Dogwood MACHINE_ID=wcoss2 elif [[ -d /lfs/h1 && ! -d /lfs/h3 ]]; then @@ -81,9 +87,12 @@ elif [[ -d /work ]]; then else MACHINE_ID=orion fi -elif [[ -d /gpfs && -d /ncrc ]]; then - # We are on GAEA. - MACHINE_ID=gaea +elif [[ -d /gpfs/f5 ]]; then + # We are on GAEAC5. + MACHINE_ID=gaeac5 +elif [[ -d /gpfs/f6 ]]; then + # We are on GAEAC6. + MACHINE_ID=gaeac6 elif [[ -d /data/prod ]]; then # We are on SSEC's S4 MACHINE_ID=s4 diff --git a/ush/module-setup.sh b/ush/module-setup.sh index 299e13aa4e..a823a79113 100755 --- a/ush/module-setup.sh +++ b/ush/module-setup.sh @@ -29,6 +29,13 @@ elif [[ $MACHINE_ID = orion* ]] ; then fi module purge +elif [[ $MACHINE_ID = container ]] ; then + # We are in a container + if ( ! eval module help > /dev/null 2>&1 ) ; then + source /usr/lmod/lmod/init/bash + fi + module purge + elif [[ $MACHINE_ID = s4* ]] ; then # We are on SSEC Wisconsin S4 if ( ! eval module help > /dev/null 2>&1 ) ; then