From e9a966004c475508da763033d496bd8d77700470 Mon Sep 17 00:00:00 2001 From: Ufuk Turuncoglu Date: Mon, 12 Oct 2020 11:16:18 -0500 Subject: [PATCH 1/9] fix GPTL issue --- streams/dshr_methods_mod.F90 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/streams/dshr_methods_mod.F90 b/streams/dshr_methods_mod.F90 index b16d0ad4f..395731b2d 100644 --- a/streams/dshr_methods_mod.F90 +++ b/streams/dshr_methods_mod.F90 @@ -595,12 +595,16 @@ subroutine memcheck(string, level, mastertask) ! local variables integer :: ierr +#ifdef CESMCOUPLED integer, external :: GPTLprint_memusage +#endif !----------------------------------------------------------------------- +#ifdef CESMCOUPLED if ((mastertask .and. memdebug_level > level) .or. memdebug_level > level+1) then ierr = GPTLprint_memusage(string) endif +#endif end subroutine memcheck From 3e6b717e4615651ee23dbd765a01e4a006fc38c1 Mon Sep 17 00:00:00 2001 From: Ufuk Turuncoglu Date: Fri, 11 Dec 2020 01:11:35 -0600 Subject: [PATCH 2/9] fix for finding PIO --- CMakeLists.txt | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 734fec8de..85ff894d8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,12 +28,17 @@ list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) message("CMAKE_MODULE_PATH is ${CMAKE_MODULE_PATH}") find_package(ESMF REQUIRED) -if (DEFINED PIO) - set(PIO_PATH ${PIO}) + +if (DEFINED ENV{PIO_ROOT}) + message("PIO_ROOT is $ENV{PIO_ROOT}") else() - set(PIO_PATH $ENV{PIO}) + if (DEFINED PIO) + set(PIO_PATH ${PIO}) + else() + set(PIO_PATH $ENV{PIO}) + endif() + find_package(PIO REQUIRED COMPONENT C Fortran PATH ${PIO_PATH}) endif() -find_package(PIO REQUIRED COMPONENT C Fortran PATH ${PIO_PATH}) if (NOT DEFINED MPILIB OR NOT ${MPILIB} STREQUAL "mpi-serial") find_package(MPI REQUIRED) From d94eecadb8b89f072d36745586ad4150eac93f3a Mon Sep 17 00:00:00 2001 From: Ufuk Turuncoglu Date: Fri, 11 Dec 2020 12:48:52 -0600 Subject: [PATCH 3/9] fix docn if the stream only provides SST --- docn/docn_datamode_copyall_mod.F90 | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/docn/docn_datamode_copyall_mod.F90 b/docn/docn_datamode_copyall_mod.F90 index 08fb4600f..064df3b73 100644 --- a/docn/docn_datamode_copyall_mod.F90 +++ b/docn/docn_datamode_copyall_mod.F90 @@ -89,16 +89,22 @@ subroutine docn_datamode_copyall_init_pointers(exportState, ocn_fraction, rc) if (chkerr(rc,__LINE__,u_FILE_u)) return call dshr_state_getfldptr(exportState, 'So_t' , fldptr1=So_t , rc=rc) if (chkerr(rc,__LINE__,u_FILE_u)) return - call dshr_state_getfldptr(exportState, 'So_s' , fldptr1=So_s , rc=rc) + call dshr_state_getfldptr(exportState, 'So_s' , fldptr1=So_s , allowNullReturn=.true., rc=rc) if (chkerr(rc,__LINE__,u_FILE_u)) return - call dshr_state_getfldptr(exportState, 'So_u' , fldptr1=So_u , rc=rc) + call dshr_state_getfldptr(exportState, 'So_u' , fldptr1=So_u , allowNullReturn=.true., rc=rc) if (chkerr(rc,__LINE__,u_FILE_u)) return - call dshr_state_getfldptr(exportState, 'So_v' , fldptr1=So_v , rc=rc) + call dshr_state_getfldptr(exportState, 'So_v' , fldptr1=So_v , allowNullReturn=.true., rc=rc) if (chkerr(rc,__LINE__,u_FILE_u)) return - So_u(:) = 0.0_r8 - So_v(:) = 0.0_r8 - So_s(:) = ocnsalt + if (associated(So_u)) then + So_u(:) = 0.0_r8 + end if + if (associated(So_v)) then + So_v(:) = 0.0_r8 + end if + if (associated(So_s)) then + So_s(:) = ocnsalt + end if So_t(:) = TkFrz ! Set export state ocean fraction (So_omask) From 5808cb1adb74e3ed08c2dfb67c4fa16cdd2b8b8b Mon Sep 17 00:00:00 2001 From: Ufuk Turuncoglu Date: Thu, 7 Jan 2021 17:25:53 -0600 Subject: [PATCH 4/9] fix cmake build to work with HAFS --- CMakeLists.txt | 37 ++++++++++++++++++++++++++++++++++--- datm/CMakeLists.txt | 33 ++++++++++++++++++++++----------- docn/CMakeLists.txt | 16 +++++++++------- dshr/CMakeLists.txt | 11 +++++++---- share/CMakeLists.txt | 2 +- streams/CMakeLists.txt | 15 +++++++++++---- 6 files changed, 84 insertions(+), 30 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 85ff894d8..d4384b426 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,7 +27,11 @@ list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) message("CMAKE_MODULE_PATH is ${CMAKE_MODULE_PATH}") -find_package(ESMF REQUIRED) +if (TARGET esmf) + message("Target esmf is already found. Skip find_package ...") +else() + find_package(ESMF REQUIRED) +endif() if (DEFINED ENV{PIO_ROOT}) message("PIO_ROOT is $ENV{PIO_ROOT}") @@ -58,5 +62,32 @@ foreach(COMP datm dice dlnd docn drof dwav) add_subdirectory("${COMP}") endforeach(COMP) -install(TARGETS streams dshr - LIBRARY DESTINATION lib) +target_include_directories(streams PUBLIC $ + $) +target_include_directories(streams PUBLIC $ + $) +target_include_directories(dshr PUBLIC $ + $) +target_include_directories(dshr PUBLIC $ + $) +target_include_directories(dshr PUBLIC $ + $) +foreach(COMP datm dice dlnd docn drof dwav) +target_include_directories(${COMP} PUBLIC $ + $) +target_include_directories(${COMP} PUBLIC $ + $) +target_include_directories(${COMP} PUBLIC $ + $) +endforeach(COMP) + +foreach(COMP datm docn streams dshr cdeps_share FoX_dom FoX_wxml FoX_sax FoX_common FoX_utils FoX_fsys) + install(TARGETS ${COMP} + EXPORT ${COMP} + LIBRARY DESTINATION lib + COMPONENT Library) + install(EXPORT ${COMP} + DESTINATION lib/cmake) +endforeach(COMP) + +install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/mod DESTINATION ${CMAKE_INSTALL_PREFIX}/CDEPS) diff --git a/datm/CMakeLists.txt b/datm/CMakeLists.txt index a39d02e23..0773022e5 100644 --- a/datm/CMakeLists.txt +++ b/datm/CMakeLists.txt @@ -1,15 +1,26 @@ project(datm Fortran) +set(SRCFILES atm_comp_nuopc.F90 + datm_datamode_clmncep_mod.F90 + datm_datamode_core2_mod.F90 + datm_datamode_jra_mod.F90 + datm_datamode_era5_mod.F90) -add_library(datm atm_comp_nuopc.F90 - datm_datamode_clmncep_mod.F90 - datm_datamode_core2_mod.F90 - datm_datamode_jra_mod.F90 - datm_datamode_era5_mod.F90) +foreach(FILE ${SRCFILES}) + if(EXISTS "${CASEROOT}/SourceMods/src.datm/${FILE}") + list(REMOVE_ITEM SRCFILES ${FILE}) + list(APPEND SRCFILES "${CASEROOT}/SourceMods/src.datm/${FILE}") + message("Using ${FILE} from ${CASEROOT}/SourceMods/src.datm") + endif() +endforeach() + +message("DATM srcfiles are ${SRCFILES}") + +add_library(datm ${SRCFILES}) add_dependencies(datm dshr streams) -target_include_directories (datm PUBLIC ${ESMF_F90COMPILEPATHS}) -target_include_directories (datm PUBLIC "${CMAKE_BINARY_DIR}/dshr") -target_include_directories (datm PUBLIC "${CMAKE_SOURCE_DIR}") -target_include_directories (datm PUBLIC "${CMAKE_BINARY_DIR}/share") -target_include_directories (datm PUBLIC "${CMAKE_BINARY_DIR}/streams") -target_include_directories (datm PUBLIC "${PIO_Fortran_INCLUDE_DIR}") +target_include_directories (datm PRIVATE ${ESMF_F90COMPILEPATHS}) +target_include_directories (datm PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/dshr) +target_include_directories (datm PRIVATE ${CMAKE_SOURCE_DIR}) +target_include_directories (datm PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/share) +target_include_directories (datm PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/streams) +target_include_directories (datm PRIVATE ${PIO_Fortran_INCLUDE_DIR}) diff --git a/docn/CMakeLists.txt b/docn/CMakeLists.txt index 33e3ba01c..71c011478 100644 --- a/docn/CMakeLists.txt +++ b/docn/CMakeLists.txt @@ -13,12 +13,14 @@ foreach(FILE ${SRCFILES}) endif() endforeach() -add_library(docn ${SRCFILES}) +message("DOCN srcfiles are ${SRCFILES}") +add_library(docn ${SRCFILES}) -target_include_directories (docn PUBLIC ${ESMF_F90COMPILEPATHS}) -target_include_directories (docn PUBLIC "${CMAKE_BINARY_DIR}/dshr") -target_include_directories (docn PUBLIC "${CMAKE_SOURCE_DIR}") -target_include_directories (docn PUBLIC "${CMAKE_BINARY_DIR}/share") -target_include_directories (docn PUBLIC "${CMAKE_BINARY_DIR}/streams") -target_include_directories (docn PUBLIC "${PIO_Fortran_INCLUDE_DIR}") +add_dependencies(docn dshr streams) +target_include_directories (docn PRIVATE ${ESMF_F90COMPILEPATHS}) +target_include_directories (docn PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/dshr) +target_include_directories (docn PRIVATE ${CMAKE_SOURCE_DIR}) +target_include_directories (docn PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/share) +target_include_directories (docn PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/streams) +target_include_directories (docn PRIVATE ${PIO_Fortran_INCLUDE_DIR}) diff --git a/dshr/CMakeLists.txt b/dshr/CMakeLists.txt index 1a98d00ab..b0afe1f7b 100644 --- a/dshr/CMakeLists.txt +++ b/dshr/CMakeLists.txt @@ -1,7 +1,9 @@ project(dshr Fortran) + set(SRCFILES dshr_dfield_mod.F90 dshr_fldlist_mod.F90 dshr_mod.F90) + foreach(FILE ${SRCFILES}) if(EXISTS "${CASEROOT}/SourceMods/src.cdeps/${FILE}") list(REMOVE_ITEM SRCFILES ${FILE}) @@ -16,9 +18,10 @@ if(BLD_STANDALONE) endif() add_dependencies(dshr streams) -target_include_directories (dshr PUBLIC ${ESMF_F90COMPILEPATHS}) -target_include_directories (dshr PUBLIC "${CMAKE_BINARY_DIR}/streams") -target_include_directories (dshr PUBLIC "${CMAKE_BINARY_DIR}/share") -target_include_directories (dshr PUBLIC "${PIO_Fortran_INCLUDE_DIR}") +target_include_directories (dshr PRIVATE ${ESMF_F90COMPILEPATHS}) +target_include_directories (dshr PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/streams) +target_include_directories (dshr PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/share) +target_include_directories (dshr PRIVATE "${PIO_Fortran_INCLUDE_DIR}") + install(TARGETS dshr LIBRARY DESTINATION lib) diff --git a/share/CMakeLists.txt b/share/CMakeLists.txt index 06bb2c7d3..542a8f67f 100644 --- a/share/CMakeLists.txt +++ b/share/CMakeLists.txt @@ -20,7 +20,7 @@ add_library(cdeps_share ${GenF90_SRCS} shr_precip_mod.F90 shr_string_mod.F90) -target_include_directories (cdeps_share PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${ESMF_F90COMPILEPATHS} ${PIO_Fortran_INCLUDE_DIRS}) +target_include_directories (cdeps_share PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${ESMF_F90COMPILEPATHS} ${PIO_Fortran_INCLUDE_DIRS}) #===== genf90 ===== diff --git a/streams/CMakeLists.txt b/streams/CMakeLists.txt index 013ee7a40..ee9a924e3 100644 --- a/streams/CMakeLists.txt +++ b/streams/CMakeLists.txt @@ -2,7 +2,9 @@ set(SRCFILES dshr_methods_mod.F90 dshr_strdata_mod.F90 dshr_stream_mod.F90 dshr_tinterp_mod.F90) + set(MODFILES ${SRCFILES}) + foreach(FILE ${SRCFILES}) list(TRANSFORM MODFILES REPLACE ".F90" ".mod") if(EXISTS "${CASEROOT}/SourceMods/src.cdeps/${FILE}") @@ -11,16 +13,21 @@ foreach(FILE ${SRCFILES}) message("Using ${FILE} from ${CASEROOT}/SourceMods/src.cdeps") endif() endforeach() + message("Stream srcfiles are ${SRCFILES}") + add_library(streams ${SRCFILES}) + add_dependencies(streams FoX_dom) if(BLD_STANDALONE) add_dependencies(streams cdeps_share) endif() -target_include_directories (streams PUBLIC ${CMAKE_BINARY_DIR}/fox/include) -target_include_directories (streams PUBLIC ${ESMF_F90COMPILEPATHS}) -target_include_directories (streams PUBLIC ${PIO_Fortran_INCLUDE_DIR}) -target_include_directories (streams PUBLIC ${CMAKE_BINARY_DIR}/share) + +target_include_directories (streams PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/fox/include) +target_include_directories (streams PRIVATE ${ESMF_F90COMPILEPATHS}) +target_include_directories (streams PRIVATE ${PIO_Fortran_INCLUDE_DIR}) +target_include_directories (streams PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/share) + install(TARGETS streams LIBRARY DESTINATION lib) foreach(MOD ${MODFILES}) From 2cec07f074906130be27111b5dc9c83c588ab0fa Mon Sep 17 00:00:00 2001 From: Ufuk Turuncoglu Date: Fri, 8 Jan 2021 15:01:39 -0600 Subject: [PATCH 5/9] update cmake files for dice, dlnd, drof and dwav --- dice/CMakeLists.txt | 9 ++++++--- dlnd/CMakeLists.txt | 8 +++++--- drof/CMakeLists.txt | 8 +++++--- dwav/CMakeLists.txt | 10 ++++++---- 4 files changed, 22 insertions(+), 13 deletions(-) diff --git a/dice/CMakeLists.txt b/dice/CMakeLists.txt index f45a446b3..6892363f3 100644 --- a/dice/CMakeLists.txt +++ b/dice/CMakeLists.txt @@ -10,11 +10,14 @@ foreach(FILE ${SRCFILES}) message("Using ${FILE} from ${CASEROOT}/SourceMods/src.dice") endif() endforeach() + +message("DICE srcfiles are ${SRCFILES}") + add_library(dice ${SRCFILES}) target_include_directories (dice PUBLIC ${ESMF_F90COMPILEPATHS}) -target_include_directories (dice PUBLIC "${CMAKE_BINARY_DIR}/dshr") +target_include_directories (dice PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/dshr") target_include_directories (dice PUBLIC "${CMAKE_SOURCE_DIR}") -target_include_directories (dice PUBLIC "${CMAKE_BINARY_DIR}/share") -target_include_directories (dice PUBLIC "${CMAKE_BINARY_DIR}/streams") +target_include_directories (dice PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/share") +target_include_directories (dice PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/streams") target_include_directories (dice PUBLIC "${PIO_Fortran_INCLUDE_DIR}") diff --git a/dlnd/CMakeLists.txt b/dlnd/CMakeLists.txt index ae080d307..1449d4d80 100644 --- a/dlnd/CMakeLists.txt +++ b/dlnd/CMakeLists.txt @@ -9,11 +9,13 @@ foreach(FILE ${SRCFILES}) endif() endforeach() +message("DLND srcfiles are ${SRCFILES}") + add_library(dlnd ${SRCFILES}) target_include_directories (dlnd PUBLIC ${ESMF_F90COMPILEPATHS}) -target_include_directories (dlnd PUBLIC "${CMAKE_BINARY_DIR}/dshr") +target_include_directories (dlnd PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/dshr") target_include_directories (dlnd PUBLIC "${CMAKE_SOURCE_DIR}") -target_include_directories (dlnd PUBLIC "${CMAKE_BINARY_DIR}/share") -target_include_directories (dlnd PUBLIC "${CMAKE_BINARY_DIR}/streams") +target_include_directories (dlnd PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/share") +target_include_directories (dlnd PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/streams") target_include_directories (dlnd PUBLIC "${PIO_Fortran_INCLUDE_DIR}") diff --git a/drof/CMakeLists.txt b/drof/CMakeLists.txt index 62a92cb83..d3d08f130 100644 --- a/drof/CMakeLists.txt +++ b/drof/CMakeLists.txt @@ -9,11 +9,13 @@ foreach(FILE ${SRCFILES}) endif() endforeach() +message("DROF srcfiles are ${SRCFILES}") + add_library(drof ${SRCFILES}) target_include_directories (drof PUBLIC ${ESMF_F90COMPILEPATHS}) -target_include_directories (drof PUBLIC "${CMAKE_BINARY_DIR}/dshr") +target_include_directories (drof PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/dshr") target_include_directories (drof PUBLIC "${CMAKE_SOURCE_DIR}") -target_include_directories (drof PUBLIC "${CMAKE_BINARY_DIR}/share") -target_include_directories (drof PUBLIC "${CMAKE_BINARY_DIR}/streams") +target_include_directories (drof PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/share") +target_include_directories (drof PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/streams") target_include_directories (drof PUBLIC "${PIO_Fortran_INCLUDE_DIR}") diff --git a/dwav/CMakeLists.txt b/dwav/CMakeLists.txt index c848741c6..72d608704 100644 --- a/dwav/CMakeLists.txt +++ b/dwav/CMakeLists.txt @@ -1,5 +1,6 @@ project(dwav Fortran) set(SRCFILES wav_comp_nuopc.F90) + foreach(FILE ${SRCFILES}) if(EXISTS "${CASEROOT}/SourceMods/src.dwav/${FILE}") list(REMOVE_ITEM SRCFILES ${FILE}) @@ -8,12 +9,13 @@ foreach(FILE ${SRCFILES}) endif() endforeach() -add_library(dwav ${SRCFILES}) +message("DWAV srcfiles are ${SRCFILES}") +add_library(dwav ${SRCFILES}) target_include_directories (dwav PUBLIC ${ESMF_F90COMPILEPATHS}) -target_include_directories (dwav PUBLIC "${CMAKE_BINARY_DIR}/dshr") +target_include_directories (dwav PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/dshr") target_include_directories (dwav PUBLIC "${CMAKE_SOURCE_DIR}") -target_include_directories (dwav PUBLIC "${CMAKE_BINARY_DIR}/share") -target_include_directories (dwav PUBLIC "${CMAKE_BINARY_DIR}/streams") +target_include_directories (dwav PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/share") +target_include_directories (dwav PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/streams") target_include_directories (dwav PUBLIC "${PIO_Fortran_INCLUDE_DIR}") From 47d9ec11741e3fbf4d8952536fea295d5136a3de Mon Sep 17 00:00:00 2001 From: Ufuk Turuncoglu Date: Fri, 8 Jan 2021 16:07:20 -0600 Subject: [PATCH 6/9] update dependencies --- dice/CMakeLists.txt | 1 + dlnd/CMakeLists.txt | 1 + drof/CMakeLists.txt | 1 + dwav/CMakeLists.txt | 1 + 4 files changed, 4 insertions(+) diff --git a/dice/CMakeLists.txt b/dice/CMakeLists.txt index 6892363f3..eb446e735 100644 --- a/dice/CMakeLists.txt +++ b/dice/CMakeLists.txt @@ -15,6 +15,7 @@ message("DICE srcfiles are ${SRCFILES}") add_library(dice ${SRCFILES}) +add_dependencies(dice dshr streams) target_include_directories (dice PUBLIC ${ESMF_F90COMPILEPATHS}) target_include_directories (dice PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/dshr") target_include_directories (dice PUBLIC "${CMAKE_SOURCE_DIR}") diff --git a/dlnd/CMakeLists.txt b/dlnd/CMakeLists.txt index 1449d4d80..715b54814 100644 --- a/dlnd/CMakeLists.txt +++ b/dlnd/CMakeLists.txt @@ -13,6 +13,7 @@ message("DLND srcfiles are ${SRCFILES}") add_library(dlnd ${SRCFILES}) +add_dependencies(dlnd dshr streams) target_include_directories (dlnd PUBLIC ${ESMF_F90COMPILEPATHS}) target_include_directories (dlnd PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/dshr") target_include_directories (dlnd PUBLIC "${CMAKE_SOURCE_DIR}") diff --git a/drof/CMakeLists.txt b/drof/CMakeLists.txt index d3d08f130..ce772168c 100644 --- a/drof/CMakeLists.txt +++ b/drof/CMakeLists.txt @@ -13,6 +13,7 @@ message("DROF srcfiles are ${SRCFILES}") add_library(drof ${SRCFILES}) +add_dependencies(drof dshr streams) target_include_directories (drof PUBLIC ${ESMF_F90COMPILEPATHS}) target_include_directories (drof PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/dshr") target_include_directories (drof PUBLIC "${CMAKE_SOURCE_DIR}") diff --git a/dwav/CMakeLists.txt b/dwav/CMakeLists.txt index 72d608704..27ebbd898 100644 --- a/dwav/CMakeLists.txt +++ b/dwav/CMakeLists.txt @@ -13,6 +13,7 @@ message("DWAV srcfiles are ${SRCFILES}") add_library(dwav ${SRCFILES}) +add_dependencies(dwav dshr streams) target_include_directories (dwav PUBLIC ${ESMF_F90COMPILEPATHS}) target_include_directories (dwav PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/dshr") target_include_directories (dwav PUBLIC "${CMAKE_SOURCE_DIR}") From 1d8b5ce0a321cd40e95bfbe276e4d3b533b59a9f Mon Sep 17 00:00:00 2001 From: Ufuk Turuncoglu Date: Tue, 19 Jan 2021 22:24:10 -0600 Subject: [PATCH 7/9] fix make build under CESM --- CMakeLists.txt | 9 +++++++-- dice/CMakeLists.txt | 12 ++++++------ dlnd/CMakeLists.txt | 12 ++++++------ drof/CMakeLists.txt | 12 ++++++------ dwav/CMakeLists.txt | 12 ++++++------ share/CMakeLists.txt | 2 ++ 6 files changed, 33 insertions(+), 26 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d4384b426..ecda331a6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -81,7 +81,10 @@ target_include_directories(${COMP} PUBLIC $) endforeach(COMP) -foreach(COMP datm docn streams dshr cdeps_share FoX_dom FoX_wxml FoX_sax FoX_common FoX_utils FoX_fsys) +foreach(COMP datm dice dlnd docn drof dwav streams dshr cdeps_share FoX_dom FoX_wxml FoX_sax FoX_common FoX_utils FoX_fsys) + if(NOT BLD_STANDALONE AND ${COMP} STREQUAL "cdeps_share") + continue() + endif() install(TARGETS ${COMP} EXPORT ${COMP} LIBRARY DESTINATION lib @@ -90,4 +93,6 @@ foreach(COMP datm docn streams dshr cdeps_share FoX_dom FoX_wxml FoX_sax FoX_com DESTINATION lib/cmake) endforeach(COMP) -install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/mod DESTINATION ${CMAKE_INSTALL_PREFIX}/CDEPS) +if (NOT DEFINED ENV{DESTDIR}) + install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/mod DESTINATION ${CMAKE_INSTALL_PREFIX}/CDEPS) +endif() diff --git a/dice/CMakeLists.txt b/dice/CMakeLists.txt index eb446e735..bd24a640b 100644 --- a/dice/CMakeLists.txt +++ b/dice/CMakeLists.txt @@ -16,9 +16,9 @@ message("DICE srcfiles are ${SRCFILES}") add_library(dice ${SRCFILES}) add_dependencies(dice dshr streams) -target_include_directories (dice PUBLIC ${ESMF_F90COMPILEPATHS}) -target_include_directories (dice PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/dshr") -target_include_directories (dice PUBLIC "${CMAKE_SOURCE_DIR}") -target_include_directories (dice PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/share") -target_include_directories (dice PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/streams") -target_include_directories (dice PUBLIC "${PIO_Fortran_INCLUDE_DIR}") +target_include_directories (dice PRIVATE ${ESMF_F90COMPILEPATHS}) +target_include_directories (dice PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/dshr") +target_include_directories (dice PRIVATE "${CMAKE_SOURCE_DIR}") +target_include_directories (dice PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/share") +target_include_directories (dice PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/streams") +target_include_directories (dice PRIVATE "${PIO_Fortran_INCLUDE_DIR}") diff --git a/dlnd/CMakeLists.txt b/dlnd/CMakeLists.txt index 715b54814..92c20be7d 100644 --- a/dlnd/CMakeLists.txt +++ b/dlnd/CMakeLists.txt @@ -14,9 +14,9 @@ message("DLND srcfiles are ${SRCFILES}") add_library(dlnd ${SRCFILES}) add_dependencies(dlnd dshr streams) -target_include_directories (dlnd PUBLIC ${ESMF_F90COMPILEPATHS}) -target_include_directories (dlnd PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/dshr") -target_include_directories (dlnd PUBLIC "${CMAKE_SOURCE_DIR}") -target_include_directories (dlnd PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/share") -target_include_directories (dlnd PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/streams") -target_include_directories (dlnd PUBLIC "${PIO_Fortran_INCLUDE_DIR}") +target_include_directories (dlnd PRIVATE ${ESMF_F90COMPILEPATHS}) +target_include_directories (dlnd PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/dshr") +target_include_directories (dlnd PRIVATE "${CMAKE_SOURCE_DIR}") +target_include_directories (dlnd PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/share") +target_include_directories (dlnd PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/streams") +target_include_directories (dlnd PRIVATE "${PIO_Fortran_INCLUDE_DIR}") diff --git a/drof/CMakeLists.txt b/drof/CMakeLists.txt index ce772168c..50bbb20f1 100644 --- a/drof/CMakeLists.txt +++ b/drof/CMakeLists.txt @@ -14,9 +14,9 @@ message("DROF srcfiles are ${SRCFILES}") add_library(drof ${SRCFILES}) add_dependencies(drof dshr streams) -target_include_directories (drof PUBLIC ${ESMF_F90COMPILEPATHS}) -target_include_directories (drof PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/dshr") -target_include_directories (drof PUBLIC "${CMAKE_SOURCE_DIR}") -target_include_directories (drof PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/share") -target_include_directories (drof PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/streams") -target_include_directories (drof PUBLIC "${PIO_Fortran_INCLUDE_DIR}") +target_include_directories (drof PRIVATE ${ESMF_F90COMPILEPATHS}) +target_include_directories (drof PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/dshr") +target_include_directories (drof PRIVATE "${CMAKE_SOURCE_DIR}") +target_include_directories (drof PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/share") +target_include_directories (drof PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/streams") +target_include_directories (drof PRIVATE "${PIO_Fortran_INCLUDE_DIR}") diff --git a/dwav/CMakeLists.txt b/dwav/CMakeLists.txt index 27ebbd898..97fccbd52 100644 --- a/dwav/CMakeLists.txt +++ b/dwav/CMakeLists.txt @@ -14,9 +14,9 @@ message("DWAV srcfiles are ${SRCFILES}") add_library(dwav ${SRCFILES}) add_dependencies(dwav dshr streams) -target_include_directories (dwav PUBLIC ${ESMF_F90COMPILEPATHS}) -target_include_directories (dwav PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/dshr") -target_include_directories (dwav PUBLIC "${CMAKE_SOURCE_DIR}") -target_include_directories (dwav PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/share") -target_include_directories (dwav PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/streams") -target_include_directories (dwav PUBLIC "${PIO_Fortran_INCLUDE_DIR}") +target_include_directories (dwav PRIVATE ${ESMF_F90COMPILEPATHS}) +target_include_directories (dwav PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/dshr") +target_include_directories (dwav PRIVATE "${CMAKE_SOURCE_DIR}") +target_include_directories (dwav PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/share") +target_include_directories (dwav PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/streams") +target_include_directories (dwav PRIVATE "${PIO_Fortran_INCLUDE_DIR}") diff --git a/share/CMakeLists.txt b/share/CMakeLists.txt index 542a8f67f..cc71a4217 100644 --- a/share/CMakeLists.txt +++ b/share/CMakeLists.txt @@ -22,6 +22,8 @@ add_library(cdeps_share ${GenF90_SRCS} target_include_directories (cdeps_share PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${ESMF_F90COMPILEPATHS} ${PIO_Fortran_INCLUDE_DIRS}) +install(TARGETS cdeps_share + LIBRARY DESTINATION lib) #===== genf90 ===== if (DEFINED GENF90_PATH) From c138337ee01d47ee00d9753a3292ea81339bb906 Mon Sep 17 00:00:00 2001 From: Ufuk Turuncoglu Date: Tue, 19 Jan 2021 23:08:01 -0600 Subject: [PATCH 8/9] more fix for cmake build under CESM --- CMakeLists.txt | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ecda331a6..6b5b95b46 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -72,19 +72,15 @@ target_include_directories(dshr PUBLIC $) target_include_directories(dshr PUBLIC $ $) + foreach(COMP datm dice dlnd docn drof dwav) -target_include_directories(${COMP} PUBLIC $ - $) -target_include_directories(${COMP} PUBLIC $ - $) -target_include_directories(${COMP} PUBLIC $ - $) -endforeach(COMP) + target_include_directories(${COMP} PUBLIC $ + $) + target_include_directories(${COMP} PUBLIC $ + $) + target_include_directories(${COMP} PUBLIC $ + $) -foreach(COMP datm dice dlnd docn drof dwav streams dshr cdeps_share FoX_dom FoX_wxml FoX_sax FoX_common FoX_utils FoX_fsys) - if(NOT BLD_STANDALONE AND ${COMP} STREQUAL "cdeps_share") - continue() - endif() install(TARGETS ${COMP} EXPORT ${COMP} LIBRARY DESTINATION lib @@ -93,6 +89,18 @@ foreach(COMP datm dice dlnd docn drof dwav streams dshr cdeps_share FoX_dom FoX_ DESTINATION lib/cmake) endforeach(COMP) -if (NOT DEFINED ENV{DESTDIR}) +foreach(DEPS streams dshr cdeps_share FoX_dom FoX_wxml FoX_sax FoX_common FoX_utils FoX_fsys) + if(NOT BLD_STANDALONE AND ${DEPS} STREQUAL "cdeps_share") + continue() + endif() + install(TARGETS ${DEPS} + EXPORT ${DEPS} + LIBRARY DESTINATION lib + COMPONENT Library) + install(EXPORT ${DEPS} + DESTINATION lib/cmake) +endforeach(COMP) + +if(BLD_STANDALONE) install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/mod DESTINATION ${CMAKE_INSTALL_PREFIX}/CDEPS) endif() From 5da53f448862b0ec4557c4aaa34ea1c71313c628 Mon Sep 17 00:00:00 2001 From: Ufuk Turuncoglu Date: Wed, 20 Jan 2021 00:59:16 -0600 Subject: [PATCH 9/9] fix the standalone build outside of any application --- CMakeLists.txt | 4 ---- 1 file changed, 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6b5b95b46..2e764ab3c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -100,7 +100,3 @@ foreach(DEPS streams dshr cdeps_share FoX_dom FoX_wxml FoX_sax FoX_common FoX_ut install(EXPORT ${DEPS} DESTINATION lib/cmake) endforeach(COMP) - -if(BLD_STANDALONE) - install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/mod DESTINATION ${CMAKE_INSTALL_PREFIX}/CDEPS) -endif()