Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 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
18 changes: 13 additions & 5 deletions sorc/chgres_cube.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,8 @@
#
# George Gayno, Mark Potts

set(fortran_src
set(lib_src
atmosphere.F90
chgres.F90
grib2_util.F90
input_data.F90
model_grid.F90
Expand All @@ -17,16 +16,22 @@ 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})

target_link_libraries(
${exe_name}
chgres_cube_lib
PUBLIC
nemsio::nemsio
sfcio::sfcio
sigio::sigio
Expand All @@ -38,10 +43,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
19 changes: 13 additions & 6 deletions sorc/emcsfc_snow2mdl.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,33 +3,40 @@
#
# George Gayno, Mark Potts

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 ${lib_src})
add_executable(${exe_name} ${exe_src})

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})
11 changes: 8 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,17 @@
set(c_src
set(lib_src
make_solo_mosaic.c
get_contact.c)

add_executable(make_solo_mosaic ${c_src})

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

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})
18 changes: 13 additions & 5 deletions sorc/global_cycle.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@
#
# George Gayno

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,26 @@ elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$")
endif()

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

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

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
14 changes: 7 additions & 7 deletions sorc/orog_mask_tools.fd/inland.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
set(fortran_src
nb.F90
inland.F90)
set(lib_src nb.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_executable(${exe_name} ${fortran_src})
add_library(inland_lib ${lib_src})
add_executable(inland inland.F90)

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})
17 changes: 10 additions & 7 deletions sorc/orog_mask_tools.fd/lake.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,20 +1,23 @@
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_executable(${exe_name} ${fortran_src})
add_library(lakefrac_lib STATIC ${lib_src})
add_executable(lakefrac ${exe_src})

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})
18 changes: 12 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,23 @@ 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)

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})
19 changes: 14 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,18 @@ 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})



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})
46 changes: 6 additions & 40 deletions tests/chres_cube/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,48 +28,14 @@ execute_process( COMMAND ${CMAKE_COMMAND} -E copy
execute_process( COMMAND ${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_SOURCE_DIR}/config_spectral_sigio.nml ${CMAKE_CURRENT_BINARY_DIR}/config_spectral_sigio.nml)

add_executable(ftst_utils "${CMAKE_SOURCE_DIR}/sorc/chgres_cube.fd/utils.F90" ftst_utils.F90)
add_executable(ftst_utils ftst_utils.F90)
add_test(NAME ftst_utils COMMAND ftst_utils)
target_link_libraries(
ftst_utils
nemsio::nemsio
sfcio::sfcio
sigio::sigio
bacio::bacio_4
sp::sp_d
w3nco::w3nco_d
esmf
wgrib2::wgrib2_lib
wgrib2::wgrib2_api
MPI::MPI_Fortran
NetCDF::NetCDF_Fortran)
if(OpenMP_Fortran_FOUND)
target_link_libraries(ftst_utils OpenMP::OpenMP_Fortran)
endif()
target_link_libraries(ftst_utils
chgres_cube_lib)

add_executable(ftst_program_setup "${CMAKE_SOURCE_DIR}/sorc/chgres_cube.fd/input_data.F90"
"${CMAKE_SOURCE_DIR}/sorc/chgres_cube.fd/model_grid.F90"
"${CMAKE_SOURCE_DIR}/sorc/chgres_cube.fd/program_setup.F90"
"${CMAKE_SOURCE_DIR}/sorc/chgres_cube.fd/grib2_util.F90"
"${CMAKE_SOURCE_DIR}/sorc/chgres_cube.fd/search_util.F90"
"${CMAKE_SOURCE_DIR}/sorc/chgres_cube.fd/utils.F90"
ftst_program_setup.F90)
target_link_libraries(
ftst_program_setup
nemsio::nemsio
sfcio::sfcio
sigio::sigio
bacio::bacio_4
sp::sp_d
w3nco::w3nco_d
esmf
wgrib2::wgrib2_lib
wgrib2::wgrib2_api
MPI::MPI_Fortran
NetCDF::NetCDF_Fortran)
if(OpenMP_Fortran_FOUND)
target_link_libraries(ftst_program_setup OpenMP::OpenMP_Fortran)
endif()
add_executable(ftst_program_setup ftst_program_setup.F90)
target_link_libraries(ftst_program_setup
chgres_cube_lib)

# Cause test to be run with MPI.
add_mpi_test(ftst_program_setup
Expand Down