Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
24 changes: 18 additions & 6 deletions sorc/chgres_cube.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
# This is the CMake build file for the chgres_cube utility in the
# UFS_UTILS package.
#
# George Gayno, Mark Potts
# George Gayno, Mark Potts, Kyle Gerheiser

set(fortran_src
set(lib_src
atmosphere.F90
chgres.F90
grib2_util.F90
input_data.F90
model_grid.F90
Expand All @@ -17,16 +16,26 @@ set(fortran_src
utils.F90
write_data.F90)

set(exe_src chgres.F90)

if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel)$")
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -r8 -convert big_endian -assume byterecl")
elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$")
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -ffree-line-length-0 -fdefault-real-8 -fconvert=big-endian")
endif()

set(exe_name chgres_cube)
add_executable(${exe_name} ${fortran_src})

add_library(chgres_cube_lib STATIC ${lib_src})
add_executable(${exe_name} ${exe_src})

set(mod_dir "${CMAKE_CURRENT_BINARY_DIR}/mod")
set_target_properties(chgres_cube_lib PROPERTIES Fortran_MODULE_DIRECTORY ${mod_dir})
target_include_directories(chgres_cube_lib INTERFACE ${mod_dir})

target_link_libraries(
${exe_name}
chgres_cube_lib
PUBLIC
nemsio::nemsio
sfcio::sfcio
sigio::sigio
Expand All @@ -38,10 +47,13 @@ target_link_libraries(
wgrib2::wgrib2_api
MPI::MPI_Fortran
NetCDF::NetCDF_Fortran)

if(OpenMP_Fortran_FOUND)
target_link_libraries(${exe_name} OpenMP::OpenMP_Fortran)
target_link_libraries(${exe_name} PUBLIC OpenMP::OpenMP_Fortran)
endif()

target_link_libraries(${exe_name} PRIVATE chgres_cube_lib)

install(TARGETS ${exe_name} RUNTIME DESTINATION ${exec_dir})

# If doxygen documentation we enabled, build it.
Expand Down
25 changes: 18 additions & 7 deletions sorc/emcsfc_snow2mdl.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,35 +1,46 @@
# This is the CMake build file for the emcsfc_snow2mdl utility in the
# UFS_UTILS package.
#
# George Gayno, Mark Potts
# George Gayno, Mark Potts, Kyle Gerheiser

set(fortran_src
driver.F90
set(lib_src
grib_utils.F90
model_grid.F90
program_setup.F90
snow2mdl.F90
snowdat.F90)

set(exe_src driver.F90)

if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel)$")
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -r8 -convert big_endian -assume byterecl")
elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$")
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fdefault-real-8 -fconvert=big-endian")
endif()

set(exe_name emcsfc_snow2mdl)
add_executable(${exe_name} ${fortran_src})
target_link_libraries(
${exe_name}

add_library(snow2mdl_lib STATIC ${lib_src})
add_executable(${exe_name} ${exe_src})

set(mod_dir "${CMAKE_CURRENT_BINARY_DIR}/mod")
set_target_properties(snow2mdl_lib PROPERTIES Fortran_MODULE_DIRECTORY ${mod_dir})
target_include_directories(snow2mdl_lib INTERFACE ${mod_dir})

target_link_libraries(snow2mdl_lib
PUBLIC
g2::g2_d
ip::ip_d
sp::sp_d
bacio::bacio_4
w3nco::w3nco_d)

if(OpenMP_Fortran_FOUND)
target_link_libraries(${exe_name} OpenMP::OpenMP_Fortran)
target_link_libraries(${exe_name} PUBLIC OpenMP::OpenMP_Fortran)
endif()

target_link_libraries(${exe_name} PRIVATE snow2mdl_lib)

install(TARGETS ${exe_name} RUNTIME DESTINATION ${exec_dir})

# If doxygen documentation we enabled, build it.
Expand Down
14 changes: 10 additions & 4 deletions sorc/fre-nctools.fd/tools/fregrid/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,14 +1,20 @@
set(c_src
set(lib_src
bilinear_interp.c
conserve_interp.c
fregrid.c
fregrid_util.c)

add_executable(fregrid ${c_src})
set(exe_src fregrid.c)

target_link_libraries(fregrid
add_library(fregrid_lib STATIC ${lib_src})
add_executable(fregrid ${exe_src})


target_link_libraries(fregrid_lib
PUBLIC
m
shared_lib
NetCDF::NetCDF_C)

target_link_libraries(fregrid PRIVATE fregrid_lib)

install(TARGETS fregrid RUNTIME DESTINATION ${exec_dir})
13 changes: 8 additions & 5 deletions sorc/fre-nctools.fd/tools/make_hgrid/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
set(c_src
set(lib_src
create_conformal_cubic_grid.c
create_gnomonic_cubic_grid.c
create_grid_from_file.c
create_lonlat_grid.c
make_hgrid.c)
create_lonlat_grid.c)

add_executable(make_hgrid ${c_src})
add_library(make_hgrid_lib STATIC ${lib_src})
add_executable(make_hgrid make_hgrid.c)

target_link_libraries(make_hgrid
target_link_libraries(make_hgrid_lib
PUBLIC
m
shared_lib
NetCDF::NetCDF_C)

target_link_libraries(make_hgrid PRIVATE make_hgrid_lib)

install(TARGETS make_hgrid RUNTIME DESTINATION ${exec_dir})
12 changes: 9 additions & 3 deletions sorc/fre-nctools.fd/tools/make_solo_mosaic/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
set(c_src
set(lib_src
make_solo_mosaic.c
get_contact.c)

add_executable(make_solo_mosaic ${c_src})
set(exe_src make_solo_mosaic.c)

target_link_libraries(make_solo_mosaic
add_library(make_solo_mosaic_lib STATIC ${lib_src})
add_executable(make_solo_mosaic ${exe_src})

target_link_libraries(make_solo_mosaic_lib
PUBLIC
m
shared_lib
NetCDF::NetCDF_C)

target_link_libraries(make_solo_mosaic PRIVATE make_solo_mosaic_lib)

install(TARGETS make_solo_mosaic RUNTIME DESTINATION ${exec_dir})
24 changes: 18 additions & 6 deletions sorc/global_cycle.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
# This is the CMake file for the global_cycle utility in the UFS_UTILS
# project.
#
# George Gayno
# George Gayno, Kyle Gerheiser

set(fortran_src
cycle.f90
set(lib_src
machine.f90
num_parthds.f90
sfcsub.F
read_write_data.f90)

set(exe_src cycle.f90)

if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel)$")
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -r8 -convert big_endian")
elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$")
Expand All @@ -20,19 +21,30 @@ elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$")
endif()

set(exe_name global_cycle)
add_executable(${exe_name} ${fortran_src})

add_library(global_cycle_lib STATIC ${lib_src})
add_executable(${exe_name} ${exe_src})

set(mod_dir "${CMAKE_CURRENT_BINARY_DIR}/mod")
set_target_properties(global_cycle_lib PROPERTIES Fortran_MODULE_DIRECTORY ${mod_dir})
target_include_directories(global_cycle_lib INTERFACE ${mod_dir})

target_link_libraries(
${exe_name}
global_cycle_lib
PUBLIC
w3nco::w3nco_d
bacio::bacio_4
ip::ip_d
sp::sp_d
MPI::MPI_Fortran
NetCDF::NetCDF_Fortran)

if(OpenMP_Fortran_FOUND)
target_link_libraries(${exe_name} OpenMP::OpenMP_Fortran)
target_link_libraries(global_cycle_lib PUBLIC OpenMP::OpenMP_Fortran)
endif()

target_link_libraries(${exe_name} PRIVATE global_cycle_lib)

install(TARGETS ${exe_name} RUNTIME DESTINATION ${exec_dir})

# If doxygen documentation we enabled, build it.
Expand Down
17 changes: 11 additions & 6 deletions sorc/orog_mask_tools.fd/inland.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,19 +1,24 @@
set(fortran_src
nb.F90
inland.F90)
set(lib_src nb.F90)
set(exe_src inland.F90)

if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel)$")
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -assume byterecl")
elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$")
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fno-range-check")
endif()

set(exe_name inland)
add_library(inland_lib STATIC ${lib_src})
add_executable(inland ${exe_src})

add_executable(${exe_name} ${fortran_src})
set(mod_dir "${CMAKE_CURRENT_BINARY_DIR}/mod")
set_target_properties(inland_lib PROPERTIES Fortran_MODULE_DIRECTORY ${mod_dir})
target_include_directories(inland_lib INTERFACE ${mod_dir})

target_link_libraries(
${exe_name}
inland_lib
PUBLIC
NetCDF::NetCDF_Fortran)

target_link_libraries(inland PRIVATE inland_lib)

install(TARGETS ${exe_name} RUNTIME DESTINATION ${exec_dir})
19 changes: 13 additions & 6 deletions sorc/orog_mask_tools.fd/lake.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,20 +1,27 @@
set(fortran_src
set(lib_src
enclosure_cnvx.F90
find_limit.F90
lakefrac.F90)
find_limit.F90)

set(exe_src lakefrac.F90)

if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel)$")
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -assume byterecl")
elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$")
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fno-range-check")
endif()

set(exe_name lakefrac)
add_library(lakefrac_lib STATIC ${lib_src})
add_executable(lakefrac ${exe_src})

add_executable(${exe_name} ${fortran_src})
set(mod_dir "${CMAKE_CURRENT_BINARY_DIR}/mod")
set_target_properties(lakefrac_lib PROPERTIES Fortran_MODULE_DIRECTORY ${mod_dir})
target_include_directories(lakefrac_lib INTERFACE ${mod_dir})

target_link_libraries(
${exe_name}
lakefrac_lib
PUBLIC
NetCDF::NetCDF_Fortran)

target_link_libraries(lakefrac PRIVATE lakefrac_lib)

install(TARGETS ${exe_name} RUNTIME DESTINATION ${exec_dir})
22 changes: 16 additions & 6 deletions sorc/orog_mask_tools.fd/orog.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
set(fortran_src
mtnlm7_oclsm.f
netcdf_io.F90)
set(lib_src netcdf_io.F90)
set(exe_src mtnlm7_oclsm.f)

if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel)$")
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -r8 -convert big_endian -assume byterecl")
Expand All @@ -12,16 +11,27 @@ elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$")
endif()

set(exe_name orog)
add_executable(${exe_name} ${fortran_src})

add_library(orog_lib STATIC ${lib_src})
add_executable(${exe_name} mtnlm7_oclsm.f)

set(mod_dir "${CMAKE_CURRENT_BINARY_DIR}/mod")
set_target_properties(orog_lib PROPERTIES Fortran_MODULE_DIRECTORY ${mod_dir})
target_include_directories(orog_lib INTERFACE ${mod_dir})

target_link_libraries(
${exe_name}
orog_lib
PUBLIC
bacio::bacio_4
w3nco::w3nco_d
ip::ip_d
sp::sp_d
NetCDF::NetCDF_Fortran)

if(OpenMP_Fortran_FOUND)
target_link_libraries(${exe_name} OpenMP::OpenMP_Fortran)
target_link_libraries(orog_lib PUBLIC OpenMP::OpenMP_Fortran)
endif()

target_link_libraries(orog PRIVATE orog_lib)

install(TARGETS ${exe_name} RUNTIME DESTINATION ${exec_dir})
20 changes: 15 additions & 5 deletions sorc/orog_mask_tools.fd/orog_gsl.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
set(fortran_src
set(lib_src
module_gsl_oro_data_lg_scale.f90
module_gsl_oro_data_sm_scale.f90
gsl_oro_data.f90)
module_gsl_oro_data_sm_scale.f90)

set(exe_src gsl_oro_data.f90)

if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel)$")
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -r8 -convert big_endian -assume byterecl")
Expand All @@ -12,10 +13,19 @@ elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$")
endif()
endif()

add_library(orog_gsl_lib STATIC ${lib_src})
set(exe_name orog_gsl)
add_executable(${exe_name} ${fortran_src})
add_executable(${exe_name} ${exe_src})

set(mod_dir "${CMAKE_CURRENT_BINARY_DIR}/mod")
set_target_properties(orog_gsl_lib PROPERTIES Fortran_MODULE_DIRECTORY ${mod_dir})
target_include_directories(orog_gsl_lib INTERFACE ${mod_dir})

target_link_libraries(
${exe_name}
orog_gsl_lib
PUBLIC
NetCDF::NetCDF_Fortran)

target_link_libraries(${exe_name} PRIVATE orog_gsl_lib)

install(TARGETS ${exe_name} RUNTIME DESTINATION ${exec_dir})
Loading