From 5b159a9e4b92e38db4af2c56b93d7fb68ea32a8b Mon Sep 17 00:00:00 2001 From: DavidHuber Date: Wed, 20 Sep 2023 15:04:31 +0000 Subject: [PATCH 01/11] Upgrade to spack-stack libraries on Hera #23 --- modulefiles/gfsutils_common.lua | 11 ++++++++--- modulefiles/gfsutils_hera.intel.lua | 24 ++++++++---------------- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/modulefiles/gfsutils_common.lua b/modulefiles/gfsutils_common.lua index 0c36dbbd..2e83a119 100644 --- a/modulefiles/gfsutils_common.lua +++ b/modulefiles/gfsutils_common.lua @@ -2,7 +2,8 @@ help([[ Load common modules to build GFS utilities on all machines ]]) -local netcdf_ver=os.getenv("netcdf_ver") or "4.7.4" +local netcdf_c_ver=os.getenv("netcdf_c_ver") or "4.9.2" +local netcdf_fortran_ver=os.getenv("netcdf_fortran_ver") or "4.6.0" local bufr_ver=os.getenv("bufr_ver") or "11.7.0" local bacio_ver=os.getenv("bacio_ver") or "2.4.1" @@ -18,8 +19,12 @@ local g2_ver=os.getenv("g2_ver") or "3.4.5" local landsfcutil_ver=os.getenv("landsfcutil_ver") or "2.4.1" local gempak_ver=os.getenv("gempak_ver") or "7.14.1" local wgrib2_ver=os.getenv("wgrib2_ver") or "2.0.8" +local libpng_ver=os.getenv("libpng_ver") or "1.6.37" -load(pathJoin("netcdf", netcdf_ver)) +load(pathJoin("libpng", libpng_ver)) + +load(pathJoin("netcdf-c", netcdf_c_ver)) +load(pathJoin("netcdf-fortran", netcdf_fortran_ver)) load(pathJoin("bufr", bufr_ver)) load(pathJoin("bacio", bacio_ver)) @@ -29,7 +34,7 @@ load(pathJoin("ip", ip_ver)) load(pathJoin("sigio", sigio_ver)) load(pathJoin("sfcio", sfcio_ver)) load(pathJoin("nemsio", nemsio_ver)) -load(pathJoin("wrf_io", wrf_io_ver)) +load(pathJoin("wrf-io", wrf_io_ver)) load(pathJoin("ncio", ncio_ver)) load(pathJoin("g2", g2_ver)) load(pathJoin("landsfcutil", landsfcutil_ver)) diff --git a/modulefiles/gfsutils_hera.intel.lua b/modulefiles/gfsutils_hera.intel.lua index 37699aea..aa74adb0 100644 --- a/modulefiles/gfsutils_hera.intel.lua +++ b/modulefiles/gfsutils_hera.intel.lua @@ -2,26 +2,18 @@ help([[ Build environment for GFS utilities on Hera ]]) -prepend_path("MODULEPATH", "/scratch2/NCEPDEV/nwprod/hpc-stack/libs/hpc-stack/modulefiles/stack") +prepend_path("MODULEPATH", "/scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-1.4.1/envs/unified-env/install/modulefiles/Core") +prepend_path("MODULEPATH", "/scratch1/NCEPDEV/jcsda/jedipara/spack-stack/modulefiles") -local hpc_ver=os.getenv("hpc_ver") or "1.1.0" -local hpc_intel_ver=os.getenv("hpc_intel_ver") or "18.0.5.274" -local hpc_impi_ver=os.getenv("hpc_impi_ver") or "2018.0.4" -local cmake_ver=os.getenv("cmake_ver") or "3.20.1" +local stack_intel_ver=os.getenv("stack_intel_ver") or "2021.5.0" +local stack_impi_ver=os.getenv("stack_impi_ver") or "2021.5.1" +local cmake_ver=os.getenv("cmake_ver") or "3.23.1" -local jasper_ver=os.getenv("jasper_ver") or "2.0.25" -local zlib_ver=os.getenv("zlib_ver") or "1.2.11" -local libpng_ver=os.getenv("libpng_ver") or "1.6.35" - -load(pathJoin("hpc", hpc_ver)) -load(pathJoin("hpc-intel", hpc_intel_ver)) -load(pathJoin("hpc-impi", hpc_impi_ver)) +load(pathJoin("stack-intel", stack_intel_ver)) +load(pathJoin("stack-intel-oneapi-mpi", stack_impi_ver)) +load(pathJoin("stack-python", stack_python_ver)) load(pathJoin("cmake", cmake_ver)) -load(pathJoin("jasper", jasper_ver)) -load(pathJoin("zlib", zlib_ver)) -load(pathJoin("png", libpng_ver)) - load("gfsutils_common") whatis("Description: GFS utilities environment on Hera with Intel Compilers") From 2abc7828baccf88811f80b60f24c10e71cd54421 Mon Sep 17 00:00:00 2001 From: DavidHuber Date: Wed, 15 Nov 2023 13:05:49 +0000 Subject: [PATCH 02/11] Upgrade to spack-stack/1.5.1. #23 This includes an upgrade to w3emc/2.10.0 and ip/4.3.0. --- modulefiles/gfsutils_common.lua | 6 +++--- modulefiles/gfsutils_hera.intel.lua | 4 +--- modulefiles/gfsutils_hercules.lua | 17 +++++++++++++++++ modulefiles/gfsutils_jet.lua | 22 ++++++---------------- modulefiles/gfsutils_orion.lua | 22 ++++++---------------- modulefiles/gfsutils_s4.lua | 22 +++++++--------------- src/enkf_chgres_recenter_nc.fd/interp.f90 | 1 + src/fbwndgfs.fd/fbwndgfs.f | 2 +- src/mkgfsawps.fd/CMakeLists.txt | 2 +- src/mkgfsawps.fd/mkgfsawps.f | 1 + 10 files changed, 44 insertions(+), 55 deletions(-) create mode 100644 modulefiles/gfsutils_hercules.lua diff --git a/modulefiles/gfsutils_common.lua b/modulefiles/gfsutils_common.lua index 2e83a119..9708ae8d 100644 --- a/modulefiles/gfsutils_common.lua +++ b/modulefiles/gfsutils_common.lua @@ -7,11 +7,11 @@ local netcdf_fortran_ver=os.getenv("netcdf_fortran_ver") or "4.6.0" local bufr_ver=os.getenv("bufr_ver") or "11.7.0" local bacio_ver=os.getenv("bacio_ver") or "2.4.1" -local w3emc_ver=os.getenv("w3emc_ver") or "2.9.2" +local w3emc_ver=os.getenv("w3emc_ver") or "2.10.0" local sp_ver=os.getenv("sp_ver") or "2.3.3" -local ip_ver=os.getenv("ip_ver") or "3.3.3" +local ip_ver=os.getenv("ip_ver") or "4.3.0" local sigio_ver=os.getenv("sigio_ver") or "2.3.2" -local nemsio_ver=os.getenv("nemsio_ver") or "2.5.2" +local nemsio_ver=os.getenv("nemsio_ver") or "2.5.4" local nemsiogfs_ver=os.getenv("nemsiogfs_ver") or "2.5.3" local wrf_io_ver=os.getenv("wrf_io_ver") or "1.2.0" local ncio_ver=os.getenv("ncio_ver") or "1.1.2" diff --git a/modulefiles/gfsutils_hera.intel.lua b/modulefiles/gfsutils_hera.intel.lua index aa74adb0..e2058d1f 100644 --- a/modulefiles/gfsutils_hera.intel.lua +++ b/modulefiles/gfsutils_hera.intel.lua @@ -2,8 +2,7 @@ help([[ Build environment for GFS utilities on Hera ]]) -prepend_path("MODULEPATH", "/scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-1.4.1/envs/unified-env/install/modulefiles/Core") -prepend_path("MODULEPATH", "/scratch1/NCEPDEV/jcsda/jedipara/spack-stack/modulefiles") +prepend_path("MODULEPATH", "/scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-1.5.1/envs/gsi-addon/install/modulefiles/Core") local stack_intel_ver=os.getenv("stack_intel_ver") or "2021.5.0" local stack_impi_ver=os.getenv("stack_impi_ver") or "2021.5.1" @@ -11,7 +10,6 @@ local cmake_ver=os.getenv("cmake_ver") or "3.23.1" load(pathJoin("stack-intel", stack_intel_ver)) load(pathJoin("stack-intel-oneapi-mpi", stack_impi_ver)) -load(pathJoin("stack-python", stack_python_ver)) load(pathJoin("cmake", cmake_ver)) load("gfsutils_common") diff --git a/modulefiles/gfsutils_hercules.lua b/modulefiles/gfsutils_hercules.lua new file mode 100644 index 00000000..dcf64fc4 --- /dev/null +++ b/modulefiles/gfsutils_hercules.lua @@ -0,0 +1,17 @@ +help([[ +Build environment for GFS utilities on Orion +]]) + +prepend_path("MODULEPATH", "/work/noaa/epic/role-epic/spack-stack/hercules/spack-stack-1.5.1/envs/gsi-addon/install/modulefiles/Core") + +local stack_intel_ver=os.getenv("stack_intel_ver") or "2021.5.0" +local stack_impi_ver=os.getenv("stack_impi_ver") or "2021.9.0" +local cmake_ver=os.getenv("cmake_ver") or "3.23.1" + +load(pathJoin("stack-intel", stack_intel_ver)) +load(pathJoin("stack-intel-oneapi-mpi", stack_impi_ver)) +load(pathJoin("cmake", cmake_ver)) + +load("gfsutils_common") + +whatis("Description: GFS utilities environment on Orion with Intel Compilers") diff --git a/modulefiles/gfsutils_jet.lua b/modulefiles/gfsutils_jet.lua index 28a0f1e4..6b0b7504 100644 --- a/modulefiles/gfsutils_jet.lua +++ b/modulefiles/gfsutils_jet.lua @@ -2,26 +2,16 @@ help([[ Build environment for GFS utilities on Jet ]]) -prepend_path("MODULEPATH", "/lfs4/HFIP/hfv3gfs/role.epic/hpc-stack/libs/intel-18.0.5.274/modulefiles/stack") +prepend_path("MODULEPATH", "/lfs4/HFIP/hfv3gfs/role.epic/spack-stack/spack-stack-1.5.1/envs/gsi-addon/install/modulefiles/Core") -local hpc_ver=os.getenv("hpc_ver") or "1.2.0" -local hpc_intel_ver=os.getenv("hpc_intel_ver") or "18.0.5.274" -local hpc_impi_ver=os.getenv("hpc_impi_ver") or "2018.4.274" -local cmake_ver=os.getenv("cmake_ver") or "3.20.1" +local stack_intel_ver=os.getenv("stack_intel_ver") or "2021.5.0" +local stack_impi_ver=os.getenv("stack_impi_ver") or "2021.5.1" +local cmake_ver=os.getenv("cmake_ver") or "3.23.1" -local jasper_ver=os.getenv("jasper_ver") or "2.0.25" -local zlib_ver=os.getenv("zlib_ver") or "1.2.11" -local libpng_ver=os.getenv("libpng_ver") or "1.6.35" - -load(pathJoin("hpc", hpc_ver)) -load(pathJoin("hpc-intel", hpc_intel_ver)) -load(pathJoin("hpc-impi", hpc_impi_ver)) +load(pathJoin("stack-intel", stack_intel_ver)) +load(pathJoin("stack-intel-oneapi-mpi", stack_impi_ver)) load(pathJoin("cmake", cmake_ver)) -load(pathJoin("jasper", jasper_ver)) -load(pathJoin("zlib", zlib_ver)) -load(pathJoin("libpng", libpng_ver)) - load("gfsutils_common") whatis("Description: GFS utilities environment on Jet with Intel Compilers") diff --git a/modulefiles/gfsutils_orion.lua b/modulefiles/gfsutils_orion.lua index 6723bf3d..de868f39 100644 --- a/modulefiles/gfsutils_orion.lua +++ b/modulefiles/gfsutils_orion.lua @@ -2,26 +2,16 @@ help([[ Build environment for GFS utilities on Orion ]]) -prepend_path("MODULEPATH", "/apps/contrib/NCEP/hpc-stack/libs/hpc-stack/modulefiles/stack") +prepend_path("MODULEPATH", "/work/noaa/epic/role-epic/spack-stack/orion/spack-stack-1.5.1/envs/gsi-addon/install/modulefiles/Core") -local hpc_ver=os.getenv("hpc_ver") or "1.2.0" -local hpc_intel_ver=os.getenv("hpc_intel_ver") or "2018.4" -local hpc_impi_ver=os.getenv("hpc_impi_ver") or "2018.4" -local cmake_ver=os.getenv("cmake_ver") or "3.22.1" +local stack_intel_ver=os.getenv("stack_intel_ver") or "2021.5.0" +local stack_impi_ver=os.getenv("stack_impi_ver") or "2021.5.1" +local cmake_ver=os.getenv("cmake_ver") or "3.23.1" -local jasper_ver=os.getenv("jasper_ver") or "2.0.25" -local zlib_ver=os.getenv("zlib_ver") or "1.2.11" -local libpng_ver=os.getenv("libpng_ver") or "1.6.35" - -load(pathJoin("hpc", hpc_ver)) -load(pathJoin("hpc-intel", hpc_intel_ver)) -load(pathJoin("hpc-impi", hpc_impi_ver)) +load(pathJoin("stack-intel", stack_intel_ver)) +load(pathJoin("stack-intel-oneapi-mpi", stack_impi_ver)) load(pathJoin("cmake", cmake_ver)) -load(pathJoin("jasper", jasper_ver)) -load(pathJoin("zlib", zlib_ver)) -load(pathJoin("png", libpng_ver)) - load("gfsutils_common") whatis("Description: GFS utilities environment on Orion with Intel Compilers") diff --git a/modulefiles/gfsutils_s4.lua b/modulefiles/gfsutils_s4.lua index 464d3a38..221d2908 100644 --- a/modulefiles/gfsutils_s4.lua +++ b/modulefiles/gfsutils_s4.lua @@ -2,25 +2,17 @@ help([[ Build environment for GFS utilities on S4 ]]) -prepend_path("MODULEPATH", "/data/prod/hpc-stack/modulefiles/stack") +prepend_path("MODULEPATH", "/data/prod/jedi/spack-stack/spack-stack-1.5.1/envs/gsi-addon/install/modulefiles/Core") load("license_intel") -local hpc_ver=os.getenv("hpc_ver") or "1.1.0" -local hpc_intel_ver=os.getenv("hpc_intel_ver") or "18.0.4" -local hpc_impi_ver=os.getenv("hpc_impi_ver") or "18.0.4" +local stack_intel_ver=os.getenv("stack_intel_ver") or "2021.5.0" +local stack_impi_ver=os.getenv("stack_impi_ver") or "2021.5.0" +local cmake_ver=os.getenv("cmake_ver") or "3.23.1" -local jasper_ver=os.getenv("jasper_ver") or "2.0.25" -local zlib_ver=os.getenv("zlib_ver") or "1.2.11" -local libpng_ver=os.getenv("libpng_ver") or "1.6.35" - -load(pathJoin("hpc", hpc_ver)) -load(pathJoin("hpc-intel", hpc_intel_ver)) -load(pathJoin("hpc-impi", hpc_impi_ver)) - -load(pathJoin("jasper", jasper_ver)) -load(pathJoin("zlib", zlib_ver)) -load(pathJoin("png", libpng_ver)) +load(pathJoin("stack-intel", stack_intel_ver)) +load(pathJoin("stack-intel-oneapi-mpi", stack_impi_ver)) +load(pathJoin("cmake", cmake_ver)) load("gfsutils_common") diff --git a/src/enkf_chgres_recenter_nc.fd/interp.f90 b/src/enkf_chgres_recenter_nc.fd/interp.f90 index 291e8ef0..65f65adc 100644 --- a/src/enkf_chgres_recenter_nc.fd/interp.f90 +++ b/src/enkf_chgres_recenter_nc.fd/interp.f90 @@ -207,6 +207,7 @@ subroutine gaus_to_gaus use output_data use input_data use setup + use ip_mod, only: ipolates, ipolatev implicit none diff --git a/src/fbwndgfs.fd/fbwndgfs.f b/src/fbwndgfs.fd/fbwndgfs.f index ce7505fd..2dbc1a5e 100644 --- a/src/fbwndgfs.fd/fbwndgfs.f +++ b/src/fbwndgfs.fd/fbwndgfs.f @@ -399,7 +399,7 @@ DO 110 J = 1,NRSTNS C CALL GDSWIZ(KGDS,-1,1,FILL,XPTS(J),YPTS(J), C & ALON(J),ALAT(J),IRET,0,DUM,DUM) - CALL GDSWZD(KGDS,-1,1,FILL,XPTS(J),YPTS(J), + CALL GDSWZD_GRIB1(KGDS,-1,1,FILL,XPTS(J),YPTS(J), & ALON(J),ALAT(J),IRET) ISTN(J) = XPTS(J) JSTN(J) = YPTS(J) diff --git a/src/mkgfsawps.fd/CMakeLists.txt b/src/mkgfsawps.fd/CMakeLists.txt index f4079e9e..b172e2f1 100644 --- a/src/mkgfsawps.fd/CMakeLists.txt +++ b/src/mkgfsawps.fd/CMakeLists.txt @@ -13,7 +13,7 @@ endif() set(exe_name mkgfsawps.x) add_executable(${exe_name} ${fortran_src}) target_link_libraries(${exe_name} PRIVATE bacio::bacio_4 - ip::ip_d + ip::ip_4 sp::sp_d w3emc::w3emc_d) if(OpenMP_Fortran_FOUND) diff --git a/src/mkgfsawps.fd/mkgfsawps.f b/src/mkgfsawps.fd/mkgfsawps.f index 4e4e57db..6539bb40 100644 --- a/src/mkgfsawps.fd/mkgfsawps.f +++ b/src/mkgfsawps.fd/mkgfsawps.f @@ -49,6 +49,7 @@ PROGRAM MKGFSAWPS C ATTRIBUTES: C LANGUAGE: FORTRAN 90 C + USE IP_MOD, ONLY: IPOLATES, IPOLATEV PARAMETER (MXSIZE=2000000,MXSIZ3=MXSIZE*3) PARAMETER (LUGI=31,LUGB=11,LUGO=51) PARAMETER (LENHEAD=21) From f92538208a976abea53c1db13f605283a8d88c94 Mon Sep 17 00:00:00 2001 From: DavidHuber Date: Thu, 16 Nov 2023 20:29:52 +0000 Subject: [PATCH 03/11] Use w3emc_4 for mkgfsawps. #23 --- src/mkgfsawps.fd/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mkgfsawps.fd/CMakeLists.txt b/src/mkgfsawps.fd/CMakeLists.txt index b172e2f1..bc30c480 100644 --- a/src/mkgfsawps.fd/CMakeLists.txt +++ b/src/mkgfsawps.fd/CMakeLists.txt @@ -15,7 +15,7 @@ add_executable(${exe_name} ${fortran_src}) target_link_libraries(${exe_name} PRIVATE bacio::bacio_4 ip::ip_4 sp::sp_d - w3emc::w3emc_d) + w3emc::w3emc_4) if(OpenMP_Fortran_FOUND) target_link_libraries(${exe_name} PRIVATE OpenMP::OpenMP_Fortran) endif() From 320358afe3f7407367027e2d2c45d703d7f134c3 Mon Sep 17 00:00:00 2001 From: DavidHuber Date: Thu, 16 Nov 2023 20:30:48 +0000 Subject: [PATCH 04/11] Fix Orion intel version. #23 --- modulefiles/gfsutils_orion.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modulefiles/gfsutils_orion.lua b/modulefiles/gfsutils_orion.lua index de868f39..98ecb775 100644 --- a/modulefiles/gfsutils_orion.lua +++ b/modulefiles/gfsutils_orion.lua @@ -4,7 +4,7 @@ Build environment for GFS utilities on Orion prepend_path("MODULEPATH", "/work/noaa/epic/role-epic/spack-stack/orion/spack-stack-1.5.1/envs/gsi-addon/install/modulefiles/Core") -local stack_intel_ver=os.getenv("stack_intel_ver") or "2021.5.0" +local stack_intel_ver=os.getenv("stack_intel_ver") or "2022.0.2" local stack_impi_ver=os.getenv("stack_impi_ver") or "2021.5.1" local cmake_ver=os.getenv("cmake_ver") or "3.23.1" From 98da3a854f8512e282192df0ff0977e62477d023 Mon Sep 17 00:00:00 2001 From: David Huber Date: Fri, 17 Nov 2023 13:34:23 -0600 Subject: [PATCH 05/11] Use original wcoss2 modulefiles. --- modulefiles/gfsutils_wcoss2.lua | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/modulefiles/gfsutils_wcoss2.lua b/modulefiles/gfsutils_wcoss2.lua index e18536f4..52953f8a 100644 --- a/modulefiles/gfsutils_wcoss2.lua +++ b/modulefiles/gfsutils_wcoss2.lua @@ -11,6 +11,21 @@ local cmake_ver= os.getenv("cmake_ver") or "3.20.2" local jasper_ver=os.getenv("jasper_ver") or "2.0.25" local zlib_ver=os.getenv("zlib_ver") or "1.2.11" local libpng_ver=os.getenv("libpng_ver") or "1.6.37" +local netcdf_ver=os.getenv("netcdf_ver") or "4.7.4" + +local bufr_ver=os.getenv("bufr_ver") or "11.7.0" +local bacio_ver=os.getenv("bacio_ver") or "2.4.1" +local w3emc_ver=os.getenv("w3emc_ver") or "2.9.2" +local sp_ver=os.getenv("sp_ver") or "2.3.3" +local ip_ver=os.getenv("ip_ver") or "3.3.3" +local sigio_ver=os.getenv("sigio_ver") or "2.3.2" +local nemsio_ver=os.getenv("nemsio_ver") or "2.5.2" +local nemsiogfs_ver=os.getenv("nemsiogfs_ver") or "2.5.3" +local wrf_io_ver=os.getenv("wrf_io_ver") or "1.2.0" +local g2_ver=os.getenv("g2_ver") or "3.4.5" +local landsfcutil_ver=os.getenv("landsfcutil_ver") or "2.4.1" +local gempak_ver=os.getenv("gempak_ver") or "7.14.1" +local wgrib2_ver=os.getenv("wgrib2_ver") or "2.0.8" load(pathJoin("PrgEnv-intel", PrgEnv_intel_ver)) load(pathJoin("intel", intel_ver)) @@ -22,8 +37,21 @@ load(pathJoin("jasper", jasper_ver)) load(pathJoin("zlib", zlib_ver)) load(pathJoin("libpng", libpng_ver)) -load("gfsutils_common") -unload("ncio") +load(pathJoin("netcdf", netcdf_ver)) + +load(pathJoin("bufr", bufr_ver)) +load(pathJoin("bacio", bacio_ver)) +load(pathJoin("w3emc", w3emc_ver)) +load(pathJoin("sp", sp_ver)) +load(pathJoin("ip", ip_ver)) +load(pathJoin("sigio", sigio_ver)) +load(pathJoin("sfcio", sfcio_ver)) +load(pathJoin("nemsio", nemsio_ver)) +load(pathJoin("wrf_io", wrf_io_ver)) +load(pathJoin("g2", g2_ver)) +load(pathJoin("landsfcutil", landsfcutil_ver)) +--load(pathJoin("gempak", gempak_ver)) +--load(pathJoin("wgrib2", wgrib2_ver)) pushenv("HPC_OPT", "/apps/ops/para/libs") prepend_path("MODULEPATH", "/apps/ops/para/libs/modulefiles/compiler/intel/19.1.3.304") From 130e65771c30874a97d522bdb34ff72fe3601927 Mon Sep 17 00:00:00 2001 From: David Huber Date: Fri, 17 Nov 2023 13:50:31 -0600 Subject: [PATCH 06/11] Remove accidentally committed hercules module. --- modulefiles/gfsutils_hercules.lua | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 modulefiles/gfsutils_hercules.lua diff --git a/modulefiles/gfsutils_hercules.lua b/modulefiles/gfsutils_hercules.lua deleted file mode 100644 index dcf64fc4..00000000 --- a/modulefiles/gfsutils_hercules.lua +++ /dev/null @@ -1,17 +0,0 @@ -help([[ -Build environment for GFS utilities on Orion -]]) - -prepend_path("MODULEPATH", "/work/noaa/epic/role-epic/spack-stack/hercules/spack-stack-1.5.1/envs/gsi-addon/install/modulefiles/Core") - -local stack_intel_ver=os.getenv("stack_intel_ver") or "2021.5.0" -local stack_impi_ver=os.getenv("stack_impi_ver") or "2021.9.0" -local cmake_ver=os.getenv("cmake_ver") or "3.23.1" - -load(pathJoin("stack-intel", stack_intel_ver)) -load(pathJoin("stack-intel-oneapi-mpi", stack_impi_ver)) -load(pathJoin("cmake", cmake_ver)) - -load("gfsutils_common") - -whatis("Description: GFS utilities environment on Orion with Intel Compilers") From b48d7f8d48bfb9164f9c468025e8c3f51cfc9168 Mon Sep 17 00:00:00 2001 From: David Huber Date: Fri, 17 Nov 2023 13:56:45 -0600 Subject: [PATCH 07/11] Uncomment wgrib2 for wcoss2. --- modulefiles/gfsutils_wcoss2.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modulefiles/gfsutils_wcoss2.lua b/modulefiles/gfsutils_wcoss2.lua index 52953f8a..7bfd71d6 100644 --- a/modulefiles/gfsutils_wcoss2.lua +++ b/modulefiles/gfsutils_wcoss2.lua @@ -51,7 +51,7 @@ load(pathJoin("wrf_io", wrf_io_ver)) load(pathJoin("g2", g2_ver)) load(pathJoin("landsfcutil", landsfcutil_ver)) --load(pathJoin("gempak", gempak_ver)) ---load(pathJoin("wgrib2", wgrib2_ver)) +load(pathJoin("wgrib2", wgrib2_ver)) pushenv("HPC_OPT", "/apps/ops/para/libs") prepend_path("MODULEPATH", "/apps/ops/para/libs/modulefiles/compiler/intel/19.1.3.304") From d2d791d5444117536beea18294951c29b725baa5 Mon Sep 17 00:00:00 2001 From: David Huber Date: Fri, 17 Nov 2023 21:14:51 +0000 Subject: [PATCH 08/11] Add backwards compatability for WCOSS2 w3emc and ip. --- src/enkf_chgres_recenter_nc.fd/CMakeLists.txt | 5 ++++- src/enkf_chgres_recenter_nc.fd/interp.f90 | 2 ++ src/fbwndgfs.fd/CMakeLists.txt | 9 ++++++++- src/fbwndgfs.fd/fbwndgfs.f | 5 +++++ src/mkgfsawps.fd/CMakeLists.txt | 5 ++++- src/mkgfsawps.fd/mkgfsawps.f | 2 ++ 6 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/enkf_chgres_recenter_nc.fd/CMakeLists.txt b/src/enkf_chgres_recenter_nc.fd/CMakeLists.txt index bb446821..c4353068 100644 --- a/src/enkf_chgres_recenter_nc.fd/CMakeLists.txt +++ b/src/enkf_chgres_recenter_nc.fd/CMakeLists.txt @@ -8,7 +8,10 @@ utils.f90 ) if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel)$") - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fp-model precise") + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fp-model precise -fpp") +endif() +if(ip_VERSION GREATER_EQUAL 4.0.0) + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DIP_V4") endif() set(exe_name enkf_chgres_recenter_nc.x) diff --git a/src/enkf_chgres_recenter_nc.fd/interp.f90 b/src/enkf_chgres_recenter_nc.fd/interp.f90 index 65f65adc..f4e8dca3 100644 --- a/src/enkf_chgres_recenter_nc.fd/interp.f90 +++ b/src/enkf_chgres_recenter_nc.fd/interp.f90 @@ -207,7 +207,9 @@ subroutine gaus_to_gaus use output_data use input_data use setup +#ifdef IP_V4 use ip_mod, only: ipolates, ipolatev +#endif implicit none diff --git a/src/fbwndgfs.fd/CMakeLists.txt b/src/fbwndgfs.fd/CMakeLists.txt index 938fc774..daaa65d1 100644 --- a/src/fbwndgfs.fd/CMakeLists.txt +++ b/src/fbwndgfs.fd/CMakeLists.txt @@ -3,10 +3,17 @@ list(APPEND fortran_src ) if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel)$") - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -r8 -i8 -convert big_endian -assume byterecl") + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -r8 -i8 -convert big_endian -assume byterecl -fpp") elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$") set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fdefault-real-8 -fdefault-integer-8 -fconvert=big-endian") endif() +#Parse w3emc version numbers +string(REPLACE "." ";" W3EMC_VERSIONS ${w3emc_VERSION}) +list(GET W3EMC_VERSIONS 0 W3EMC_MAJOR) +list(GET W3EMC_VERSIONS 1 W3EMC_MINOR) +if(W3EMC_MINOR GREATER_EQUAL 10 AND W3EMC_MAJOR GREATER_EQUAL 2) + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DW3EMC_210") +endif() set(exe_name fbwndgfs.x) add_executable(${exe_name} ${fortran_src}) diff --git a/src/fbwndgfs.fd/fbwndgfs.f b/src/fbwndgfs.fd/fbwndgfs.f index 2dbc1a5e..2c0ae230 100644 --- a/src/fbwndgfs.fd/fbwndgfs.f +++ b/src/fbwndgfs.fd/fbwndgfs.f @@ -399,8 +399,13 @@ DO 110 J = 1,NRSTNS C CALL GDSWIZ(KGDS,-1,1,FILL,XPTS(J),YPTS(J), C & ALON(J),ALAT(J),IRET,0,DUM,DUM) +#ifdef W3EMC_210 CALL GDSWZD_GRIB1(KGDS,-1,1,FILL,XPTS(J),YPTS(J), & ALON(J),ALAT(J),IRET) +#else + CALL GDSWZD(KGDS,-1,1,FILL,XPTS(J),YPTS(J), + & ALON(J),ALAT(J),IRET) +#endif ISTN(J) = XPTS(J) JSTN(J) = YPTS(J) C PRINT 111,STNID(J),ALAT(J),ALON(J),ISTN(J),JSTN(J) diff --git a/src/mkgfsawps.fd/CMakeLists.txt b/src/mkgfsawps.fd/CMakeLists.txt index bc30c480..14fb1f56 100644 --- a/src/mkgfsawps.fd/CMakeLists.txt +++ b/src/mkgfsawps.fd/CMakeLists.txt @@ -3,12 +3,15 @@ list(APPEND fortran_src ) if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel)$") - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -convert big_endian -fp-model source") + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -convert big_endian -fp-model source -fpp") set_source_files_properties(${fortran_src_free} PROPERTIES COMPILE_FLAGS "-free") elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$") set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fconvert=big-endian") set_source_files_properties(${fortran_src_free} PROPERTIES COMPILE_FLAGS "-ffree-form") endif() +if(ip_VERSION GREATER_EQUAL 4.0.0) + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DIP_V4") +endif() set(exe_name mkgfsawps.x) add_executable(${exe_name} ${fortran_src}) diff --git a/src/mkgfsawps.fd/mkgfsawps.f b/src/mkgfsawps.fd/mkgfsawps.f index 6539bb40..27fbd281 100644 --- a/src/mkgfsawps.fd/mkgfsawps.f +++ b/src/mkgfsawps.fd/mkgfsawps.f @@ -49,7 +49,9 @@ PROGRAM MKGFSAWPS C ATTRIBUTES: C LANGUAGE: FORTRAN 90 C +#ifdef IP_V4 USE IP_MOD, ONLY: IPOLATES, IPOLATEV +#endif PARAMETER (MXSIZE=2000000,MXSIZ3=MXSIZE*3) PARAMETER (LUGI=31,LUGB=11,LUGO=51) PARAMETER (LENHEAD=21) From f27614d9a395e496b3061da6b465e5ff0e66effb Mon Sep 17 00:00:00 2001 From: David Huber <69919478+DavidHuber-NOAA@users.noreply.github.com> Date: Fri, 17 Nov 2023 16:53:28 -0500 Subject: [PATCH 09/11] Simplify w3em_version checking Co-authored-by: Rahul Mahajan --- src/fbwndgfs.fd/CMakeLists.txt | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/fbwndgfs.fd/CMakeLists.txt b/src/fbwndgfs.fd/CMakeLists.txt index daaa65d1..d631d7b7 100644 --- a/src/fbwndgfs.fd/CMakeLists.txt +++ b/src/fbwndgfs.fd/CMakeLists.txt @@ -7,11 +7,7 @@ if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel)$") elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$") set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fdefault-real-8 -fdefault-integer-8 -fconvert=big-endian") endif() -#Parse w3emc version numbers -string(REPLACE "." ";" W3EMC_VERSIONS ${w3emc_VERSION}) -list(GET W3EMC_VERSIONS 0 W3EMC_MAJOR) -list(GET W3EMC_VERSIONS 1 W3EMC_MINOR) -if(W3EMC_MINOR GREATER_EQUAL 10 AND W3EMC_MAJOR GREATER_EQUAL 2) +if(w3emc_VERSION VERSION GREATER 2.10) set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DW3EMC_210") endif() From c6b50e1b6a72b8d86d687c2b031d3f78bcf15e7b Mon Sep 17 00:00:00 2001 From: DavidHuber Date: Mon, 20 Nov 2023 13:29:32 +0000 Subject: [PATCH 10/11] Clean up CMake scripts, invoke fortran PP implicitly. #23 --- src/enkf_chgres_recenter_nc.fd/CMakeLists.txt | 6 +++--- .../{interp.f90 => interp.F90} | 0 src/fbwndgfs.fd/CMakeLists.txt | 11 ++++------- src/fbwndgfs.fd/{fbwndgfs.f => fbwndgfs.F} | 0 src/mkgfsawps.fd/CMakeLists.txt | 7 ++++--- src/mkgfsawps.fd/{mkgfsawps.f => mkgfsawps.F} | 0 6 files changed, 11 insertions(+), 13 deletions(-) rename src/enkf_chgres_recenter_nc.fd/{interp.f90 => interp.F90} (100%) rename src/fbwndgfs.fd/{fbwndgfs.f => fbwndgfs.F} (100%) rename src/mkgfsawps.fd/{mkgfsawps.f => mkgfsawps.F} (100%) diff --git a/src/enkf_chgres_recenter_nc.fd/CMakeLists.txt b/src/enkf_chgres_recenter_nc.fd/CMakeLists.txt index c4353068..69d8fc1b 100644 --- a/src/enkf_chgres_recenter_nc.fd/CMakeLists.txt +++ b/src/enkf_chgres_recenter_nc.fd/CMakeLists.txt @@ -1,16 +1,16 @@ list(APPEND fortran_src driver.f90 input_data.f90 -interp.f90 +interp.F90 output_data.f90 setup.f90 utils.f90 ) if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel)$") - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fp-model precise -fpp") + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fp-model precise") endif() -if(ip_VERSION GREATER_EQUAL 4.0.0) +if(ip_VERSION VERSION_GREATER_EQUAL 4.0.0) set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DIP_V4") endif() diff --git a/src/enkf_chgres_recenter_nc.fd/interp.f90 b/src/enkf_chgres_recenter_nc.fd/interp.F90 similarity index 100% rename from src/enkf_chgres_recenter_nc.fd/interp.f90 rename to src/enkf_chgres_recenter_nc.fd/interp.F90 diff --git a/src/fbwndgfs.fd/CMakeLists.txt b/src/fbwndgfs.fd/CMakeLists.txt index daaa65d1..d62d43dd 100644 --- a/src/fbwndgfs.fd/CMakeLists.txt +++ b/src/fbwndgfs.fd/CMakeLists.txt @@ -1,17 +1,14 @@ list(APPEND fortran_src - fbwndgfs.f + fbwndgfs.F ) if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel)$") - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -r8 -i8 -convert big_endian -assume byterecl -fpp") + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -r8 -i8 -convert big_endian -assume byterecl") elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$") set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fdefault-real-8 -fdefault-integer-8 -fconvert=big-endian") endif() -#Parse w3emc version numbers -string(REPLACE "." ";" W3EMC_VERSIONS ${w3emc_VERSION}) -list(GET W3EMC_VERSIONS 0 W3EMC_MAJOR) -list(GET W3EMC_VERSIONS 1 W3EMC_MINOR) -if(W3EMC_MINOR GREATER_EQUAL 10 AND W3EMC_MAJOR GREATER_EQUAL 2) + +if(w3emc_VERSION VERSION_GREATER_EQUAL 2.10) set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DW3EMC_210") endif() diff --git a/src/fbwndgfs.fd/fbwndgfs.f b/src/fbwndgfs.fd/fbwndgfs.F similarity index 100% rename from src/fbwndgfs.fd/fbwndgfs.f rename to src/fbwndgfs.fd/fbwndgfs.F diff --git a/src/mkgfsawps.fd/CMakeLists.txt b/src/mkgfsawps.fd/CMakeLists.txt index 14fb1f56..ab7978b1 100644 --- a/src/mkgfsawps.fd/CMakeLists.txt +++ b/src/mkgfsawps.fd/CMakeLists.txt @@ -1,15 +1,16 @@ list(APPEND fortran_src - mkgfsawps.f + mkgfsawps.F ) if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel)$") - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -convert big_endian -fp-model source -fpp") + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -convert big_endian -fp-model source") set_source_files_properties(${fortran_src_free} PROPERTIES COMPILE_FLAGS "-free") elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$") set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fconvert=big-endian") set_source_files_properties(${fortran_src_free} PROPERTIES COMPILE_FLAGS "-ffree-form") endif() -if(ip_VERSION GREATER_EQUAL 4.0.0) + +if(ip_VERSION VERSION_GREATER_EQUAL 4.0.0) set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DIP_V4") endif() diff --git a/src/mkgfsawps.fd/mkgfsawps.f b/src/mkgfsawps.fd/mkgfsawps.F similarity index 100% rename from src/mkgfsawps.fd/mkgfsawps.f rename to src/mkgfsawps.fd/mkgfsawps.F From 8a68f5a052b6aa31f7234bdb144d2e6a7414df4f Mon Sep 17 00:00:00 2001 From: DavidHuber Date: Mon, 20 Nov 2023 14:46:34 +0000 Subject: [PATCH 11/11] Use target_compile_definitions. Make w3emc PP variable use the same format as ip. #23 --- src/enkf_chgres_recenter_nc.fd/CMakeLists.txt | 7 ++++--- src/fbwndgfs.fd/CMakeLists.txt | 8 ++++---- src/fbwndgfs.fd/fbwndgfs.F | 2 +- src/mkgfsawps.fd/CMakeLists.txt | 8 ++++---- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/enkf_chgres_recenter_nc.fd/CMakeLists.txt b/src/enkf_chgres_recenter_nc.fd/CMakeLists.txt index 69d8fc1b..82c5abc1 100644 --- a/src/enkf_chgres_recenter_nc.fd/CMakeLists.txt +++ b/src/enkf_chgres_recenter_nc.fd/CMakeLists.txt @@ -10,9 +10,6 @@ utils.f90 if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel)$") set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fp-model precise") endif() -if(ip_VERSION VERSION_GREATER_EQUAL 4.0.0) - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DIP_V4") -endif() set(exe_name enkf_chgres_recenter_nc.x) add_executable(${exe_name} ${fortran_src}) @@ -26,4 +23,8 @@ if(OpenMP_Fortran_FOUND) target_link_libraries(${exe_name} PRIVATE OpenMP::OpenMP_Fortran) endif() +if(ip_VERSION VERSION_GREATER_EQUAL 4.0.0) + target_compile_definitions(${exe_name} PRIVATE "IP_V4") +endif() + install(TARGETS ${exe_name} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/src/fbwndgfs.fd/CMakeLists.txt b/src/fbwndgfs.fd/CMakeLists.txt index d62d43dd..57a71a0e 100644 --- a/src/fbwndgfs.fd/CMakeLists.txt +++ b/src/fbwndgfs.fd/CMakeLists.txt @@ -8,10 +8,6 @@ elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$") set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fdefault-real-8 -fdefault-integer-8 -fconvert=big-endian") endif() -if(w3emc_VERSION VERSION_GREATER_EQUAL 2.10) - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DW3EMC_210") -endif() - set(exe_name fbwndgfs.x) add_executable(${exe_name} ${fortran_src}) target_link_libraries(${exe_name} PRIVATE bacio::bacio_8 @@ -19,4 +15,8 @@ target_link_libraries(${exe_name} PRIVATE bacio::bacio_8 sp::sp_8 w3emc::w3emc_8) +if(w3emc_VERSION VERSION_GREATER_EQUAL 2.10) + target_compile_definitions(${exe_name} PRIVATE "W3EMC_V2_10") +endif() + install(TARGETS ${exe_name} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/src/fbwndgfs.fd/fbwndgfs.F b/src/fbwndgfs.fd/fbwndgfs.F index 2c0ae230..c97db5c7 100644 --- a/src/fbwndgfs.fd/fbwndgfs.F +++ b/src/fbwndgfs.fd/fbwndgfs.F @@ -399,7 +399,7 @@ DO 110 J = 1,NRSTNS C CALL GDSWIZ(KGDS,-1,1,FILL,XPTS(J),YPTS(J), C & ALON(J),ALAT(J),IRET,0,DUM,DUM) -#ifdef W3EMC_210 +#ifdef W3EMC_V2_10 CALL GDSWZD_GRIB1(KGDS,-1,1,FILL,XPTS(J),YPTS(J), & ALON(J),ALAT(J),IRET) #else diff --git a/src/mkgfsawps.fd/CMakeLists.txt b/src/mkgfsawps.fd/CMakeLists.txt index ab7978b1..088596bf 100644 --- a/src/mkgfsawps.fd/CMakeLists.txt +++ b/src/mkgfsawps.fd/CMakeLists.txt @@ -10,10 +10,6 @@ elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$") set_source_files_properties(${fortran_src_free} PROPERTIES COMPILE_FLAGS "-ffree-form") endif() -if(ip_VERSION VERSION_GREATER_EQUAL 4.0.0) - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DIP_V4") -endif() - set(exe_name mkgfsawps.x) add_executable(${exe_name} ${fortran_src}) target_link_libraries(${exe_name} PRIVATE bacio::bacio_4 @@ -24,4 +20,8 @@ if(OpenMP_Fortran_FOUND) target_link_libraries(${exe_name} PRIVATE OpenMP::OpenMP_Fortran) endif() +if(ip_VERSION VERSION_GREATER_EQUAL 4.0.0) + target_compile_definitions(${exe_name} PRIVATE "IP_V4") +endif() + install(TARGETS ${exe_name} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})