Skip to content

Commit

Permalink
Merge pull request #91 from grantfirl/ufs-dev-PR53
Browse files Browse the repository at this point in the history
UFS-dev PR#53
  • Loading branch information
grantfirl authored Apr 6, 2023
2 parents 1737c6d + 5ba8e43 commit a72d438
Show file tree
Hide file tree
Showing 116 changed files with 10,095 additions and 9,418 deletions.
3 changes: 2 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ set(AVX OFF CACHE BOOL "Enable AVX-I instruction set")
set(SIMDMULTIARCH OFF CACHE BOOL "Enable multi-target SIMD instruction sets")
set(DEBUG OFF CACHE BOOL "Enable DEBUG mode")
set(DEBUG_LINKMPI ON CACHE BOOL "Enable linkmpi option when DEBUG mode is on")
set(DISABLE_FMA OFF CACHE BOOL "Disable Fused Multiply-Add instructions (workaround needed for AMD EPYC)" FORCE)
set(INLINE_POST ON CACHE BOOL "Enable inline post")
set(MULTI_GASES OFF CACHE BOOL "Enable MULTI_GASES")
set(MOVING_NEST OFF CACHE BOOL "Enable moving nest code")
Expand Down Expand Up @@ -137,7 +138,7 @@ if(FMS)
endif()

if(CMEPS)
find_package(PIO 2.5.3 REQUIRED COMPONENTS C Fortran STATIC)
find_package(PIO 2.5.3 REQUIRED COMPONENTS C Fortran)
endif()

find_package(bacio 2.4.0 REQUIRED)
Expand Down
2 changes: 1 addition & 1 deletion WW3
Submodule WW3 updated 80 files
+9 −8 .github/workflows/gnu.yml
+17 −22 .github/workflows/intel.yml
+84 −0 cmake/FindSCOTCH.cmake
+32 −1 model/bin/build_utils.sh
+15 −1 model/bin/link.tmpl
+1 −1 model/bin/switch_Ifremer2_pdlib
+1 −1 model/bin/switch_USACE_1
+1 −1 model/bin/switch_USACE_2
+1 −1 model/bin/switch_ite_pdlib
+1 −1 model/bin/switch_ugdev2
+2 −0 model/bin/w3_automake
+16 −1 model/bin/w3_make
+2 −1 model/bin/ww3_from_ftp.sh
+1 −1 model/ci/README.md
+5 −2 model/ci/spack_gnu.yaml
+21 −0 model/ci/spack_intel.yaml
+8 −0 model/src/CMakeLists.txt
+56 −97 model/src/PDLIB/yowpdlibmain.F90
+16 −1 model/src/cmake/switches.json
+96 −169 model/src/w3adatmd.F90
+0 −6 model/src/w3gdatmd.F90
+182 −326 model/src/w3initmd.F90
+305 −347 model/src/w3iogrmd.F90
+0 −13 model/src/w3meminfo.F90
+11 −11 model/src/w3odatmd.F90
+78 −227 model/src/w3profsmd_pdlib.F90
+48 −48 model/src/w3servmd.F90
+35 −0 model/src/w3sic1md.F90
+48 −0 model/src/w3sic2md.F90
+39 −0 model/src/w3sic4md.F90
+179 −0 model/src/w3sic5md.F90
+29 −0 model/src/w3sis1md.F90
+127 −2 model/src/w3sis2md.F90
+46 −1 model/src/w3snl1md.F90
+42 −1 model/src/w3snl2md.F90
+115 −0 model/src/w3snl3md.F90
+364 −1 model/src/w3snl4md.F90
+84 −0 model/src/w3snl5md.F90
+60 −0 model/src/w3snlsmd.F90
+157 −0 model/src/w3src3md.F90
+185 −0 model/src/w3src4md.F90
+177 −0 model/src/w3src6md.F90
+176 −0 model/src/w3srcemd.F90
+283 −1 model/src/w3triamd.F90
+178 −4 model/src/w3uostmd.F90
+188 −22 model/src/w3updtmd.F90
+169 −337 model/src/w3wavemd.F90
+1 −1 model/src/w3wavset.F90
+17 −1 model/src/wav_comp_nuopc.F90
+148 −106 model/src/wmesmfmd.F90
+2 −2 model/src/wmmdatmd.F90
+20 −10 model/src/ww3_gspl.F90
+46 −0 model/src/ww3_outf.F90
+43 −0 model/src/ww3_outp.F90
+95 −108 model/src/ww3_shel.F90
+53 −2 model/src/ww3_systrk.F90
+1 −0 regtests/bin/matrix.base
+50 −31 regtests/bin/matrix_cmake_ncep
+5 −2 regtests/bin/matrix_ncep
+4 −2 regtests/bin/run_cmake_test
+30 −19 regtests/bin/run_test
+1 −1 regtests/ww3_tp2.14/input_oasacm/namcouple
+1 −1 regtests/ww3_tp2.14/input_oasacm2/namcouple
+1 −1 regtests/ww3_tp2.14/input_oasacm4/namcouple
+1 −1 regtests/ww3_tp2.14/input_oasacm5/namcouple
+1 −2 regtests/ww3_tp2.14/input_oasacm6/TOYNAMELIST.nam
+2 −15 regtests/ww3_tp2.14/input_oasacm6/namcouple
+52 −0 regtests/ww3_tp2.14/input_oasacm6/ww3_prnc.inp
+26 −0 regtests/ww3_tp2.14/input_oasacm6/ww3_prnc.nml
+2 −2 regtests/ww3_tp2.14/input_oasacm6/ww3_shel.inp
+2 −1 regtests/ww3_tp2.14/input_oasacm6/ww3_shel.nml
+1 −1 regtests/ww3_tp2.14/input_oasicm/namcouple
+1 −1 regtests/ww3_tp2.14/input_oasocm/namcouple
+3 −3 regtests/ww3_tp2.17/info
+1 −1 regtests/ww3_tp2.17/input/switch_PDLIB
+2 −0 regtests/ww3_tp2.21/info
+1 −1 regtests/ww3_tp2.21/input/switch_PDLIB
+1 −0 regtests/ww3_tp2.21/input/switch_PDLIB_METIS
+2 −1 regtests/ww3_tp2.6/info
+1 −1 regtests/ww3_tp2.6/input/switch_PDLIB
6 changes: 6 additions & 0 deletions cmake/Intel.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,9 @@ if(APPLE)
# Passing the -c flag includes them and fixes an error with undefined symbols
set(CMAKE_Fortran_ARCHIVE_FINISH "<CMAKE_RANLIB> -c <TARGET>")
endif()

# This must be last, to override all other optimization settings.
if(DISABLE_FMA)
set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_Fortran_FLAGS_RELEASE} -no-fma")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_Fortran_FLAGS_RELEASE} -no-fma")
endif()
4 changes: 4 additions & 0 deletions cmake/configure_acorn.cmake
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
set(PARALLEL_NETCDF ON CACHE BOOL "Enable parallel NetCDF" FORCE)
set(DEBUG_LINKMPI OFF CACHE BOOL "Enable linkmpi option when DEBUG mode is on" FORCE)
set(AVX2 OFF CACHE BOOL "Enable AVX2 instruction set" FORCE)

if(FASTER)
set(DISABLE_FMA ON CACHE BOOL "Disable Fused Multiply-Add instructions (workaround needed for AMD EPYC)" FORCE)
endif()
4 changes: 4 additions & 0 deletions cmake/configure_wcoss2.cmake
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
set(PARALLEL_NETCDF ON CACHE BOOL "Enable parallel NetCDF" FORCE)
set(DEBUG_LINKMPI OFF CACHE BOOL "Enable linkmpi option when DEBUG mode is on" FORCE)
set(AVX2 OFF CACHE BOOL "Enable AVX2 instruction set" FORCE)

if(FASTER)
set(DISABLE_FMA ON CACHE BOOL "Disable Fused Multiply-Add instructions (workaround needed for AMD EPYC)" FORCE)
endif()
56 changes: 0 additions & 56 deletions modulefiles/ufs_gaea.intel

This file was deleted.

35 changes: 35 additions & 0 deletions modulefiles/ufs_gaea.intel.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
help([[
This module loads libraries required for building and running UFS Weather Model
on the NOAA RDHPC machine Gaea using Intel-2022.1.2
]])

whatis([===[Loads libraries needed for building the UFS Weather Model on Gaea ]===])

prepend_path("MODULEPATH", "/lustre/f2/dev/role.epic/contrib/modulefiles")
load(pathJoin("miniconda3",os.getenv("miniconda_ver") or "4.12.0"))

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_noarch/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"))
load(pathJoin("hpc-cray-mpich", os.getenv("hpc_cray_mpich_ver") or "7.7.11"))
load(pathJoin("gcc", os.getenv("gcc_ver") or "8.3.0"))
load(pathJoin("libpng", os.getenv("libpng_ver") or "1.6.37"))

-- needed for WW3 build
load(pathJoin("gcc", os.getenv("gcc_ver") or "8.3.0"))
-- Needed at runtime:
load("alps")
load("rocoto")

load("ufs_common")

setenv("CC","cc")
setenv("FC","ftn")
setenv("CXX","CC")
setenv("CMAKE_C_COMPILER","cc")
setenv("CMAKE_CXX_COMPILER","CC")
setenv("CMAKE_Fortran_COMPILER","ftn")
setenv("CMAKE_Platform","gaea.intel")
53 changes: 0 additions & 53 deletions modulefiles/ufs_gaea.intel_debug

This file was deleted.

35 changes: 35 additions & 0 deletions modulefiles/ufs_gaea.intel_debug.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
help([[
This module loads libraries required for building and running UFS Weather Model
on the NOAA RDHPC machine Gaea using Intel-2022.1.2
]])

whatis([===[Loads libraries needed for building the UFS Weather Model and debug on Gaea ]===])

prepend_path("MODULEPATH", "/lustre/f2/dev/role.epic/contrib/modulefiles")
load(pathJoin("miniconda3",os.getenv("miniconda_ver") or "4.12.0"))

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_noarch/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"))
load(pathJoin("hpc-cray-mpich", os.getenv("hpc_cray_mpich_ver") or "7.7.11"))
load(pathJoin("gcc", os.getenv("gcc_ver") or "8.3.0"))
load(pathJoin("libpng", os.getenv("libpng_ver") or "1.6.37"))

-- needed for WW3 build
load(pathJoin("gcc", os.getenv("gcc_ver") or "8.3.0"))
-- Needed at runtime:
load("alps")
load("rocoto")

load("ufs_common_debug")

setenv("CC","cc")
setenv("FC","ftn")
setenv("CXX","CC")
setenv("CMAKE_C_COMPILER","cc")
setenv("CMAKE_CXX_COMPILER","CC")
setenv("CMAKE_Fortran_COMPILER","ftn")
setenv("CMAKE_Platform","gaea.intel")
Loading

0 comments on commit a72d438

Please sign in to comment.