diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index e89d7a3..ee2628f 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -36,25 +36,25 @@ jobs: # - { # name: "CLM3.5-PDAF", # use_oasis: "False", -# model_opts: "CLM35 PDAF" +# model_opts: "CLM3.5 PDAF" # } - { name: "eCLM-PDAF", use_oasis: "False", model_opts: "eCLM PDAF" } -# - { -# name: "CLM3.5-ParFlow-PDAF", -# use_oasis: "True", -# parflow_dir: "parflow_pdaf", -# model_opts: "CLM35 ParFlow PDAF" -# } -# - { -# name: "eCLM-ParFlow-PDAF", -# use_oasis: "True", -# parflow_dir: "parflow_pdaf", -# model_opts: "eCLM ParFlow PDAF" -# } + - { + name: "CLM3.5-ParFlow-PDAF", + use_oasis: "True", + parflow_dir: "parflow_pdaf", + model_opts: "CLM3.5 ParFlow PDAF" + } + - { + name: "eCLM-ParFlow-PDAF", + use_oasis: "True", + parflow_dir: "parflow_pdaf", + model_opts: "eCLM ParFlow PDAF" + } env: SYSTEMNAME: UBUNTU STAGE: 24.04 diff --git a/cmake/BuildPDAFMODEL.cmake b/cmake/BuildPDAFMODEL.cmake index 2fbb898..49345e6 100644 --- a/cmake/BuildPDAFMODEL.cmake +++ b/cmake/BuildPDAFMODEL.cmake @@ -100,8 +100,27 @@ if(DEFINED PARFLOW_SRC) list(APPEND PDAF_LIBS "-L${CMAKE_INSTALL_PREFIX}/lib -lpfsimulator -lamps -lpfkinsol -lgfortran -lcjson") # GPU # list(APPEND PDAF_LIBS "-L${CMAKE_INSTALL_PREFIX}/rmm/lib -lstdc++ -lcudart -lrmm -lnvToolsExt") - list(APPEND PDAF_LIBS "-L${HYPRE_ROOT}/lib -lHYPRE") - list(APPEND PDAF_LIBS "-L/lib64 -lslurm -lstdc++") + + # HYPRE lib + find_library(HYPRE_LIB NAMES HYPRE + HINTS + ${HYPRE_ROOT}/lib + $ENV{HYPRE_ROOT}/lib + $ENV{EBROOTHYPRE}/lib + ) + if(HYPRE_LIB) + list(APPEND PDAF_LIBS "${HYPRE_LIB}") + else() + message(WARNING "BuildPDAFMODEL: HYPRE library not found. Set HYPRE_ROOT or EBROOTHYPRE if needed.") + endif() + + # Unconditional loading of stdc++ + list(APPEND PDAF_LIBS "-lstdc++") + + # SLURM library if enabled (typically on HPC-system) + if(ENABLE_SLURM) + list(APPEND PDAF_LIBS "-lslurm") + endif() endif() # Join list of libraries diff --git a/cmake/BuildParFlow.cmake b/cmake/BuildParFlow.cmake index 8b75e59..c859881 100644 --- a/cmake/BuildParFlow.cmake +++ b/cmake/BuildParFlow.cmake @@ -6,6 +6,7 @@ if(DEFINED eCLM_SRC) elseif(DEFINED CLM35_SRC) list(APPEND PF_CLM_FLAGS -DPARFLOW_AMPS_LAYER=oas3 -DOAS3_ROOT=${OASIS_ROOT} + -DPARFLOW_HAVE_ECLM=ON # CLM35 uses eCLM flag for now -DPARFLOW_HAVE_CLM=OFF) else() # use ParFlow's internal CLM @@ -40,7 +41,12 @@ endif() # Set compiler flags if(CMAKE_C_COMPILER_ID STREQUAL "GNU") # Flags were based from https://github.com/parflow/parflow/blob/c8aa8d7140db19153194728b8fa9136b95177b6d/.github/workflows/linux.yml#L486 - set(PF_CFLAGS "-Wall -Werror -Wno-unused-result -Wno-unused-function -Wno-stringop-overread") + if(${PDAF}) + # PDAF: add `-Wno-unused-variable` + set(PF_CFLAGS "-Wall -Werror -Wno-unused-result -Wno-unused-function -Wno-unused-variable -Wno-stringop-overread") + else() + set(PF_CFLAGS "-Wall -Werror -Wno-unused-result -Wno-unused-function -Wno-stringop-overread") + endif() # Silence arch-specific compiler warnings if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm64|aarch64") string(APPEND PF_CFLAGS " -Wno-maybe-uninitialized") diff --git a/models/pdaf b/models/pdaf index e4aa336..43eb07e 160000 --- a/models/pdaf +++ b/models/pdaf @@ -1 +1 @@ -Subproject commit e4aa3362d931402cb3d66726c13de4f56265d1ff +Subproject commit 43eb07e9f31ec49765f1c9e6a563b20eaba63395