Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
[submodule "models/pdaf"]
path = models/pdaf
url = https://github.com/HPSCTerrSys/pdaf.git
branch = tsmp-pdaf-patched
branch = tsmp-pdaf-patched-isnan
[submodule "models/eCLM"]
path = models/eCLM
url = https://github.com/HPSCTerrSys/eCLM.git
Expand Down
44 changes: 44 additions & 0 deletions cmake/BuildPDAF.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ endif()
# LAPACK is required
# For eCLM-PDAF, this setting has to be consistent with MKL/LAPACK
# loading in `eCLM/src/clm5/CMakelists.txt`
# https://cmake.org/cmake/help/latest/module/FindLAPACK.html
find_package(LAPACK REQUIRED)

# OpenMP is required
Expand Down Expand Up @@ -73,6 +74,12 @@ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
list(APPEND PDAF_LINK_LIBS "-mkl")
list(APPEND PDAF_LINK_LIBS "${LAPACK_LIBRARIES}")
message(WARNING "LAPACK_LIBRARIES: ${LAPACK_LIBRARIES}")
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "NVHPC")
# MKL command
list(APPEND PDAF_LINK_LIBS "${LAPACK_LIBRARIES}")
list(APPEND PDAF_LINK_LIBS "${LAPACK_LINKER_FLAGS}")
message(STATUS "LAPACK_LIBRARIES: ${LAPACK_LIBRARIES}")
message(STATUS "LAPACK_LINKER_FLAGS: ${LAPACK_LINKER_FLAGS}")
else()
message(FATAL_ERROR "Unsupported CMAKE_CXX_COMPILER_ID: ${CMAKE_CXX_COMPILER_ID}")
endif()
Expand Down Expand Up @@ -147,6 +154,22 @@ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
list(APPEND PDAF_FOPT "-fallow-argument-mismatch")
list(APPEND PDAF_FOPT "-fcommon")

elseif (CMAKE_CXX_COMPILER_ID STREQUAL "NVHPC")

# Using NVHPC
if (CMAKE_BUILD_TYPE STREQUAL "RELEASE")
# Release optimization flags
list(APPEND PDAF_FOPT "-Ofast")
elseif (CMAKE_BUILD_TYPE STREQUAL "DEBUG")
# Debug optimization flags
list(APPEND PDAF_FOPT "-O0")
list(APPEND PDAF_FOPT "-g")
else()
message(FATAL_ERROR "Unsupported CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
endif()

list(APPEND PDAF_FOPT "-fPIC")

else()
message(FATAL_ERROR "Unsupported CMAKE_CXX_COMPILER_ID: ${CMAKE_CXX_COMPILER_ID}")
endif()
Expand Down Expand Up @@ -195,6 +218,22 @@ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
list(APPEND PDAF_COPT "-mcmodel=large")
list(APPEND PDAF_COPT "-fcommon")

elseif (CMAKE_CXX_COMPILER_ID STREQUAL "NVHPC")

# Using NVHPC
if (CMAKE_BUILD_TYPE STREQUAL "RELEASE")
# Release optimization flags
list(APPEND PDAF_COPT "-Ofast")
elseif (CMAKE_BUILD_TYPE STREQUAL "DEBUG")
# Debug optimization flags
list(APPEND PDAF_COPT "-O0")
list(APPEND PDAF_COPT "-g")
else()
message(FATAL_ERROR "Unsupported CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
endif()

list(APPEND PDAF_COPT "-fPIC")

else()
message(FATAL_ERROR "Unsupported CMAKE_CXX_COMPILER_ID: ${CMAKE_CXX_COMPILER_ID}")
endif()
Expand All @@ -213,6 +252,11 @@ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")

list(APPEND PDAF_DOUBLEPRECISION "-fdefault-real-8")

elseif (CMAKE_CXX_COMPILER_ID STREQUAL "NVHPC")

# doubleprecision flag!?
list(APPEND PDAF_DOUBLEPRECISION "-r8")

else()
message(FATAL_ERROR "Unsupported CMAKE_CXX_COMPILER_ID: ${CMAKE_CXX_COMPILER_ID}")
endif()
Expand Down