/[lmdze]/trunk/CMakeLists.txt
ViewVC logotype

Contents of /trunk/CMakeLists.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 352 - (show annotations)
Thu Jan 16 19:20:50 2020 UTC (4 years, 4 months ago) by guez
File MIME type: text/plain
File size: 1163 byte(s)
Introduce XIOS in program gcm

Introduce XIOS in program gcm. Minimum (and useless) calls: initialize
and finalize.

Take advantage in CMakeLists of improved packaging of libraries:
NetCDF95 brings dependency on NetCDF-Fortran and NetCDF. Compile gcm
with MPI for XIOS.

1 cmake_minimum_required(VERSION 3.14)
2 project(LMDZE Fortran CXX)
3 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
4
5 find_path(netcdff_INCLUDE_DIR netcdf.mod)
6
7 find_path(XIOS_INCLUDE_DIR xios.mod)
8 find_library(XIOS_LIBRARY xios)
9
10 find_package(NR_util REQUIRED CONFIG)
11 find_package(Jumble REQUIRED CONFIG)
12 find_package(Numer_Rec_95 REQUIRED CONFIG)
13 find_package(NetCDF95 REQUIRED CONFIG)
14 find_package(NetCDF REQUIRED)
15 find_package(MPI REQUIRED COMPONENTS CXX)
16
17 add_library(LMDZE_objects OBJECT dimensions.F90)
18
19 set(CPP_IIM 16 CACHE STRING "iim, number of longitudes")
20 set(CPP_JJM 12 CACHE STRING "jjm, number of latitudes")
21 set(CPP_LLM 11 CACHE STRING "llm, number of vertical levels")
22
23 message(STATUS "Set iim to ${CPP_IIM}, jjm to ${CPP_JJM}, llm to ${CPP_LLM}")
24
25 target_compile_definitions(LMDZE_objects PRIVATE CPP_IIM=${CPP_IIM}
26 CPP_JJM=${CPP_JJM} CPP_LLM=${CPP_LLM})
27
28 target_include_directories(LMDZE_objects PRIVATE ${netcdff_INCLUDE_DIR})
29 target_link_libraries(LMDZE_objects netcdf95 jumble numer_rec_95)
30
31 foreach(my_dir dyn3d filtrez IOIPSL misc phylmd)
32 include(${my_dir}/CMakeLists.txt)
33 endforeach(my_dir)
34
35 include(ConfigureCompilerFlags)
36 include(TAGS)

  ViewVC Help
Powered by ViewVC 1.1.21