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

Annotation of /trunk/CMakeLists.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 352 - (hide 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 guez 329 cmake_minimum_required(VERSION 3.14)
2 guez 352 project(LMDZE Fortran CXX)
3     set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
4 guez 329
5     find_path(netcdff_INCLUDE_DIR netcdf.mod)
6    
7 guez 352 find_path(XIOS_INCLUDE_DIR xios.mod)
8     find_library(XIOS_LIBRARY xios)
9    
10 guez 351 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 guez 352 find_package(NetCDF REQUIRED)
15     find_package(MPI REQUIRED COMPONENTS CXX)
16 guez 329
17     add_library(LMDZE_objects OBJECT dimensions.F90)
18    
19     set(CPP_IIM 16 CACHE STRING "iim, number of longitudes")
20 guez 330 set(CPP_JJM 12 CACHE STRING "jjm, number of latitudes")
21 guez 329 set(CPP_LLM 11 CACHE STRING "llm, number of vertical levels")
22    
23 guez 333 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 guez 351 target_include_directories(LMDZE_objects PRIVATE ${netcdff_INCLUDE_DIR})
29     target_link_libraries(LMDZE_objects netcdf95 jumble numer_rec_95)
30 guez 329
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