Skip to content

Commit 1dcf47f

Browse files
committed
Modifications for building src directory with WRF CMake build system
1 parent 6ae526a commit 1dcf47f

File tree

2 files changed

+59
-0
lines changed

2 files changed

+59
-0
lines changed

src/CMakeLists.txt

+34
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
if(${PROJECT_NAME} STREQUAL "WRF")
2+
# additions that WRF-Hydro's top CMakeLists.txt handles
3+
add_compile_options( "${PROJECT_COMPILE_OPTIONS}" )
4+
add_compile_definitions( "${PROJECT_COMPILE_DEFINITIONS}" )
5+
set(CMAKE_Fortran_MODULE_DIRECTORY ${PROJECT_BINARY_DIR}/hydro/mods)
6+
add_definitions(-DMPP_LAND)
7+
if (WRF_HYDRO_NUDGING STREQUAL "1")
8+
add_definitions(-DWRF_HYDRO_NUDGING=1)
9+
endif()
10+
endif()
11+
12+
113
# build the various sup-projects
214
add_subdirectory("MPP")
315
add_subdirectory("utils")
@@ -10,6 +22,9 @@ add_subdirectory("Routing/Reservoirs")
1022
add_subdirectory("Data_Rec")
1123
add_subdirectory("Routing")
1224
add_subdirectory("HYDRO_drv")
25+
if(${PROJECT_NAME} STREQUAL "WRF")
26+
add_subdirectory("CPL/WRF_cpl")
27+
endif()
1328

1429
if (WRF_HYDRO_NUDGING STREQUAL "1")
1530
add_subdirectory("nudging")
@@ -195,6 +210,25 @@ elseif (HYDRO_LSM MATCHES "Noah")
195210
COMMAND rm ${PROJECT_BINARY_DIR}/src/wrfhydro.exe
196211
)
197212

213+
elseif(${PROJECT_NAME} STREQUAL "WRF")
214+
add_library(wrfhydro INTERFACE)
215+
target_link_libraries(wrfhydro INTERFACE
216+
hydro_utils
217+
hydro_mpp
218+
hydro_debug_utils
219+
hydro_routing_overland
220+
hydro_routing_subsurface
221+
hydro_data_rec
222+
hydro_routing
223+
hydro_routing_reservoirs_levelpool
224+
hydro_routing_reservoirs_hybrid
225+
hydro_routing_reservoirs_rfc
226+
hydro_routing_reservoirs
227+
hydro_wrf_cpl
228+
hydro_orchestrator
229+
hydro_netcdf_layer
230+
hydro_driver
231+
)
198232
else()
199233
message("Unknown land surface model:" ${HYDRO_LSM} )
200234
endif()

src/CPL/WRF_cpl/CMakeLists.txt

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
add_library(hydro_wrf_cpl STATIC
2+
wrf_drv_HYDRO.F90
3+
module_wrf_HYDRO.F90
4+
)
5+
6+
add_dependencies(hydro_wrf_cpl
7+
hydro_mpp
8+
hydro_utils
9+
hydro_debug_utils
10+
hydro_data_rec
11+
hydro_driver
12+
hydro_orchestrator
13+
${PROJECT_NAME}_Core
14+
MPI::MPI_Fortran
15+
)
16+
17+
target_include_directories(hydro_wrf_cpl
18+
PRIVATE
19+
$<TARGET_PROPERTY:${PROJECT_NAME}_Core,Fortran_MODULE_DIRECTORY>
20+
$<TARGET_PROPERTY:esmf_time_f90,Fortran_MODULE_DIRECTORY>
21+
)
22+
23+
target_include_directories(hydro_wrf_cpl PUBLIC
24+
${MPI_Fortran_MODULE_DIR}
25+
)

0 commit comments

Comments
 (0)