From 7c2c517cd9496db0424c72e2ea0493f5499ea343 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Mon, 21 Mar 2022 15:27:00 -0400 Subject: [PATCH 1/6] Updates for Spack Support, Round 2 Due to insufficient grepping on my part, some remnants of the "non-canonical" CMake still remain. Apparently these were not necessary changes for Spack, but they are changes that unify the CMake style of GEOS to be more like "correct" CMake. In this go-around, it is mainly finding `INC_ESMF` which I apparently forgot to grep for last time (I was focused on NetCDF), and some non-canonical OpenMP calls. See https://github.com/GEOS-ESM/GEOSgcm/issues/387 for the meta-issue. --- CMakeLists.txt | 5 ++--- GEOSagcm_GridComp/CMakeLists.txt | 3 +-- .../GEOSphysics_GridComp/CMakeLists.txt | 3 +-- .../GEOSmoist_GridComp/CMakeLists.txt | 3 +-- .../GEOSradiation_GridComp/CMakeLists.txt | 3 +-- .../GEOSsurface_GridComp/CMakeLists.txt | 5 ++--- .../GEOSlake_GridComp/CMakeLists.txt | 3 +-- .../GEOSland_GridComp/CMakeLists.txt | 5 ++--- .../GEOScatchCN_GridComp/CMakeLists.txt | 7 +++---- .../CLM40/CMakeLists.txt | 2 +- .../GEOScatchCNCLM40_GridComp/CMakeLists.txt | 2 +- .../CLM45/CMakeLists.txt | 2 +- .../GEOScatchCNCLM45_GridComp/CMakeLists.txt | 2 +- .../GEOSland_GridComp/Shared/CMakeLists.txt | 3 +-- .../Utils/mk_restarts/CMakeLists.txt | 15 ++++----------- .../GEOSsuperdyn_GridComp/CMakeLists.txt | 5 ++--- GEOSdataatm_GridComp/CMakeLists.txt | 3 +-- GEOSogcm_GridComp/CMakeLists.txt | 7 +++---- .../GEOS_OceanBioGeoChemGridComp/CMakeLists.txt | 3 +-- .../GEOS_OradBioGridComp/CMakeLists.txt | 3 +-- .../GEOSseaice_GridComp/CMakeLists.txt | 3 +-- .../GEOSCICEDyna_GridComp/CMakeLists.txt | 7 +++---- 22 files changed, 35 insertions(+), 59 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c05622059..4c9699c3e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,8 +14,7 @@ if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/GEOS_GcmGridComp.F90) esma_add_library(${this} SRCS GEOS_GcmGridComp.F90 SUBCOMPONENTS ${alldirs} - DEPENDENCIES MAPL - INCLUDES ${INC_ESMF}) + DEPENDENCIES MAPL esmf) ecbuild_install_project( NAME GEOSgcm_GridComp) @@ -25,6 +24,6 @@ else () endif() - + diff --git a/GEOSagcm_GridComp/CMakeLists.txt b/GEOSagcm_GridComp/CMakeLists.txt index 46b8abebf..5cbdbb1c7 100644 --- a/GEOSagcm_GridComp/CMakeLists.txt +++ b/GEOSagcm_GridComp/CMakeLists.txt @@ -10,8 +10,7 @@ if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/GEOS_AgcmGridComp.F90) esma_add_library (${this} SRCS GEOS_AgcmGridComp.F90 SUBCOMPONENTS ${alldirs} - DEPENDENCIES MAPL GEOS_Shared Chem_Shared - INCLUDES ${INC_ESMF}) + DEPENDENCIES MAPL GEOS_Shared Chem_Shared esmf) else () diff --git a/GEOSagcm_GridComp/GEOSphysics_GridComp/CMakeLists.txt b/GEOSagcm_GridComp/GEOSphysics_GridComp/CMakeLists.txt index 604ce0a86..23033710b 100644 --- a/GEOSagcm_GridComp/GEOSphysics_GridComp/CMakeLists.txt +++ b/GEOSagcm_GridComp/GEOSphysics_GridComp/CMakeLists.txt @@ -15,8 +15,7 @@ if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/GEOS_PhysicsGridComp.F90) esma_add_library (${this} SRCS GEOS_PhysicsGridComp.F90 SUBCOMPONENTS ${alldirs} - DEPENDENCIES MAPL GMAO_mpeu GMAO_stoch - INCLUDES ${INC_ESMF}) + DEPENDENCIES MAPL GMAO_mpeu GMAO_stoch esmf) else () diff --git a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSmoist_GridComp/CMakeLists.txt b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSmoist_GridComp/CMakeLists.txt index 1605affd0..41c7e9c3c 100644 --- a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSmoist_GridComp/CMakeLists.txt +++ b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSmoist_GridComp/CMakeLists.txt @@ -17,8 +17,7 @@ endif () esma_add_library (${this} SRCS ${srcs} - DEPENDENCIES GEOS_Shared GMAO_mpeu MAPL Chem_Shared Chem_Base - INCLUDES ${INC_ESMF}) + DEPENDENCIES GEOS_Shared GMAO_mpeu MAPL Chem_Shared Chem_Base esmf) get_target_property (extra_incs fms_r4 INCLUDE_DIRECTORIES) target_include_directories(${this} PRIVATE diff --git a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSradiation_GridComp/CMakeLists.txt b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSradiation_GridComp/CMakeLists.txt index be49dd4f6..608f2c49e 100644 --- a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSradiation_GridComp/CMakeLists.txt +++ b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSradiation_GridComp/CMakeLists.txt @@ -10,6 +10,5 @@ set (alldirs esma_add_library (${this} SRCS GEOS_RadiationGridComp.F90 SUBCOMPONENTS ${alldirs} - DEPENDENCIES MAPL GEOS_Shared - INCLUDES ${INC_ESMF}) + DEPENDENCIES MAPL GEOS_Shared esmf) diff --git a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/CMakeLists.txt b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/CMakeLists.txt index a4257f55d..e6edc261a 100644 --- a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/CMakeLists.txt +++ b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/CMakeLists.txt @@ -6,15 +6,14 @@ set (alldirs GEOSland_GridComp GEOSsaltwater_GridComp ) - + if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/GEOS_SurfaceGridComp.F90) esma_add_library (${this} SRCS GEOS_SurfaceGridComp.F90 SUBCOMPONENTS ${alldirs} SUBDIRS Shared - DEPENDENCIES GEOS_SurfaceShared MAPL GMAO_mpeu - INCLUDES ${INC_ESMF}) + DEPENDENCIES GEOS_SurfaceShared MAPL GMAO_mpeu esmf) else () diff --git a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSlake_GridComp/CMakeLists.txt b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSlake_GridComp/CMakeLists.txt index 4310beb68..9d4db345b 100644 --- a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSlake_GridComp/CMakeLists.txt +++ b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSlake_GridComp/CMakeLists.txt @@ -2,6 +2,5 @@ esma_set_this() esma_add_library (${this} SRCS GEOS_LakeGridComp.F90 - DEPENDENCIES GEOS_Shared MAPL - INCLUDES ${INC_ESMF}) + DEPENDENCIES GEOS_Shared MAPL esmf) diff --git a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/CMakeLists.txt b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/CMakeLists.txt index 8ac61c843..cf332f0fc 100644 --- a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/CMakeLists.txt +++ b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/CMakeLists.txt @@ -11,7 +11,6 @@ set (alldirs esma_add_library (${this} SRCS GEOS_LandGridComp.F90 SUBCOMPONENTS ${alldirs} - SUBDIRS Shared - DEPENDENCIES GEOS_SurfaceShared GEOS_LandShared MAPL - INCLUDES ${INC_ESMF}) + SUBDIRS Shared + DEPENDENCIES GEOS_SurfaceShared GEOS_LandShared MAPL esmf) diff --git a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/GEOScatchCN_GridComp/CMakeLists.txt b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/GEOScatchCN_GridComp/CMakeLists.txt index a85e32975..3634805ab 100644 --- a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/GEOScatchCN_GridComp/CMakeLists.txt +++ b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/GEOScatchCN_GridComp/CMakeLists.txt @@ -4,10 +4,9 @@ add_subdirectory (GEOScatchCNCLM40_GridComp) add_subdirectory (GEOScatchCNCLM45_GridComp) esma_add_library (${this} - SRCS GEOS_CatchCNGridComp.F90 - SUBDIRS Shared - DEPENDENCIES GEOS_SurfaceShared GEOS_LandShared GEOS_CatchCNShared MAPL - INCLUDES ${INC_ESMF}) + SRCS GEOS_CatchCNGridComp.F90 + SUBDIRS Shared + DEPENDENCIES GEOS_SurfaceShared GEOS_LandShared GEOS_CatchCNShared MAPL esmf) # Special case for GEOScatch and GEOScatchCN components - build with / without openmp if (USE_OPENMP) diff --git a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/GEOScatchCN_GridComp/GEOScatchCNCLM40_GridComp/CLM40/CMakeLists.txt b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/GEOScatchCN_GridComp/GEOScatchCNCLM40_GridComp/CLM40/CMakeLists.txt index ded614d57..c508375e6 100644 --- a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/GEOScatchCN_GridComp/GEOScatchCNCLM40_GridComp/CLM40/CMakeLists.txt +++ b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/GEOScatchCN_GridComp/GEOScatchCNCLM40_GridComp/CLM40/CMakeLists.txt @@ -43,6 +43,6 @@ esma_add_library (${this} TYPE SHARED) if (is_openmp) - target_compile_options(${this} PRIVATE ${OpenMP_Fortran_FLAGS}) + target_link_libraries(${this} PRIVATE OpenMP::OpenMP_Fortran) endif () diff --git a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/GEOScatchCN_GridComp/GEOScatchCNCLM40_GridComp/CMakeLists.txt b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/GEOScatchCN_GridComp/GEOScatchCNCLM40_GridComp/CMakeLists.txt index 6cac8566a..9777deabd 100644 --- a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/GEOScatchCN_GridComp/GEOScatchCNCLM40_GridComp/CMakeLists.txt +++ b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/GEOScatchCN_GridComp/GEOScatchCNCLM40_GridComp/CMakeLists.txt @@ -14,6 +14,6 @@ esma_add_library (${this} TYPE SHARED) if (is_openmp) - target_compile_options(${this} PRIVATE ${OpenMP_Fortran_FLAGS}) + target_link_libraries(${this} PRIVATE OpenMP::OpenMP_Fortran) endif () diff --git a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/GEOScatchCN_GridComp/GEOScatchCNCLM45_GridComp/CLM45/CMakeLists.txt b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/GEOScatchCN_GridComp/GEOScatchCNCLM45_GridComp/CLM45/CMakeLists.txt index 236c53642..1c7d36ba8 100644 --- a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/GEOScatchCN_GridComp/GEOScatchCNCLM45_GridComp/CLM45/CMakeLists.txt +++ b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/GEOScatchCN_GridComp/GEOScatchCNCLM45_GridComp/CLM45/CMakeLists.txt @@ -50,6 +50,6 @@ esma_add_library (${this} TYPE SHARED) if (is_openmp) - target_compile_options(${this} PRIVATE ${OpenMP_Fortran_FLAGS}) + target_link_libraries(${this} PRIVATE OpenMP::OpenMP_Fortran) endif () diff --git a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/GEOScatchCN_GridComp/GEOScatchCNCLM45_GridComp/CMakeLists.txt b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/GEOScatchCN_GridComp/GEOScatchCNCLM45_GridComp/CMakeLists.txt index 60f99c90a..a1f0f4c7e 100644 --- a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/GEOScatchCN_GridComp/GEOScatchCNCLM45_GridComp/CMakeLists.txt +++ b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/GEOScatchCN_GridComp/GEOScatchCNCLM45_GridComp/CMakeLists.txt @@ -14,6 +14,6 @@ esma_add_library (${this} TYPE SHARED) if (is_openmp) - target_compile_options(${this} PRIVATE ${OpenMP_Fortran_FLAGS}) + target_link_libraries(${this} PRIVATE OpenMP::OpenMP_Fortran) endif () diff --git a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/Shared/CMakeLists.txt b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/Shared/CMakeLists.txt index eabd15ed1..af30e151c 100644 --- a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/Shared/CMakeLists.txt +++ b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/GEOSland_GridComp/Shared/CMakeLists.txt @@ -8,6 +8,5 @@ set_source_files_properties (catch_constants.f90 PROPERTIES COMPILE_FLAGS ${PP}) esma_add_library (${this} SRCS ${srcs} - DEPENDENCIES GEOS_SurfaceShared GEOS_Shared MAPL + DEPENDENCIES GEOS_SurfaceShared GEOS_Shared MAPL esmf TYPE SHARED) -target_include_directories (${this} PUBLIC ${INC_ESMF}) diff --git a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/Utils/mk_restarts/CMakeLists.txt b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/Utils/mk_restarts/CMakeLists.txt index 74776f1be..78a37bd8d 100644 --- a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/Utils/mk_restarts/CMakeLists.txt +++ b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/Utils/mk_restarts/CMakeLists.txt @@ -24,17 +24,10 @@ esma_add_library (${this} foreach (src ${exe_srcs}) string (REGEX REPLACE ".F90" "" exe ${src}) - if (ESMA_USE_GFE_NAMESPACE) - ecbuild_add_executable ( - TARGET ${exe} - SOURCES ${src} - LIBS MAPL GFTL_SHARED::gftl-shared GEOS_SurfaceShared GEOSroute_GridComp GEOS_LandShared ${this}) - else () - ecbuild_add_executable ( - TARGET ${exe} - SOURCES ${src} - LIBS MAPL gftl-shared GEOS_SurfaceShared GEOSroute_GridComp GEOS_LandShared ${this}) - endif () + ecbuild_add_executable ( + TARGET ${exe} + SOURCES ${src} + LIBS MAPL GFTL_SHARED::gftl-shared GEOS_SurfaceShared GEOSroute_GridComp GEOS_LandShared ${this}) endforeach () install(PROGRAMS mk_Restarts DESTINATION bin) diff --git a/GEOSagcm_GridComp/GEOSsuperdyn_GridComp/CMakeLists.txt b/GEOSagcm_GridComp/GEOSsuperdyn_GridComp/CMakeLists.txt index 8649de921..0fcc762fa 100644 --- a/GEOSagcm_GridComp/GEOSsuperdyn_GridComp/CMakeLists.txt +++ b/GEOSagcm_GridComp/GEOSsuperdyn_GridComp/CMakeLists.txt @@ -12,15 +12,14 @@ if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/GEOS_SuperdynGridComp.F90) esma_add_library (${this} SRCS GEOS_SuperdynGridComp.F90 SUBCOMPONENTS ${alldirs} - DEPENDENCIES MAPL GEOS_Shared - INCLUDES ${INC_ESMF}) + DEPENDENCIES MAPL GEOS_Shared esmf) else () esma_add_subdirectories (${alldirs}) endif () - + diff --git a/GEOSdataatm_GridComp/CMakeLists.txt b/GEOSdataatm_GridComp/CMakeLists.txt index 732cd6acb..32782e066 100644 --- a/GEOSdataatm_GridComp/CMakeLists.txt +++ b/GEOSdataatm_GridComp/CMakeLists.txt @@ -8,8 +8,7 @@ set (srcs esma_add_library (${this} SRCS ${srcs} - DEPENDENCIES MAPL CICE4 GEOS_Shared - INCLUDES ${INC_ESMF}) + DEPENDENCIES MAPL CICE4 GEOS_Shared esmf) target_compile_definitions (${this} PRIVATE USE_CICE USE_R8) diff --git a/GEOSogcm_GridComp/CMakeLists.txt b/GEOSogcm_GridComp/CMakeLists.txt index 184eddc60..f92ad1a55 100644 --- a/GEOSogcm_GridComp/CMakeLists.txt +++ b/GEOSogcm_GridComp/CMakeLists.txt @@ -8,12 +8,11 @@ set (alldirs GEOS_OceanGridComp ) -set (dependencies GEOS_Seaice_GridComp MAPL CICE4) +set (dependencies GEOS_Seaice_GridComp MAPL CICE4 esmf) esma_add_library (${this} SRCS GEOS_OgcmGridComp.F90 SUBCOMPONENTS ${alldirs} - SUBDIRS GEOSseaice_GridComp - DEPENDENCIES ${dependencies} - INCLUDES ${INC_ESMF}) + SUBDIRS GEOSseaice_GridComp + DEPENDENCIES ${dependencies}) diff --git a/GEOSogcm_GridComp/GEOS_OceanBioGeoChemGridComp/CMakeLists.txt b/GEOSogcm_GridComp/GEOS_OceanBioGeoChemGridComp/CMakeLists.txt index b8a609a9b..64b252a5a 100644 --- a/GEOSogcm_GridComp/GEOS_OceanBioGeoChemGridComp/CMakeLists.txt +++ b/GEOSogcm_GridComp/GEOS_OceanBioGeoChemGridComp/CMakeLists.txt @@ -16,8 +16,7 @@ set (SRCS esma_add_library(${this} SRCS ${SRCS} - DEPENDENCIES MAPL - INCLUDES ${INC_ESMF}) + DEPENDENCIES MAPL esmf) diff --git a/GEOSogcm_GridComp/GEOS_OradBioGridComp/CMakeLists.txt b/GEOSogcm_GridComp/GEOS_OradBioGridComp/CMakeLists.txt index 0afa9d3d3..605ae245e 100644 --- a/GEOSogcm_GridComp/GEOS_OradBioGridComp/CMakeLists.txt +++ b/GEOSogcm_GridComp/GEOS_OradBioGridComp/CMakeLists.txt @@ -19,6 +19,5 @@ set (SRCS esma_add_library (${this} SRCS ${SRCS} - DEPENDENCIES MAPL - INCLUDES ${INC_ESMF}) + DEPENDENCIES MAPL esmf) diff --git a/GEOSogcm_GridComp/GEOSseaice_GridComp/CMakeLists.txt b/GEOSogcm_GridComp/GEOSseaice_GridComp/CMakeLists.txt index 491f7e9e2..5fdb3e979 100644 --- a/GEOSogcm_GridComp/GEOSseaice_GridComp/CMakeLists.txt +++ b/GEOSogcm_GridComp/GEOSseaice_GridComp/CMakeLists.txt @@ -3,5 +3,4 @@ esma_set_this (OVERRIDE GEOS_Seaice_GridComp) esma_add_library (${this} SRCS GEOS_SeaIceGridComp.F90 SUBCOMPONENTS GEOSdataseaice_GridComp GEOSCICEDyna_GridComp - DEPENDENCIES MAPL CICE4 - INCLUDES ${INC_ESMF}) + DEPENDENCIES MAPL CICE4 esmf) diff --git a/GEOSogcm_GridComp/GEOSseaice_GridComp/GEOSCICEDyna_GridComp/CMakeLists.txt b/GEOSogcm_GridComp/GEOSseaice_GridComp/GEOSCICEDyna_GridComp/CMakeLists.txt index 5f8605248..baabff8ad 100644 --- a/GEOSogcm_GridComp/GEOSseaice_GridComp/GEOSCICEDyna_GridComp/CMakeLists.txt +++ b/GEOSogcm_GridComp/GEOSseaice_GridComp/GEOSCICEDyna_GridComp/CMakeLists.txt @@ -1,9 +1,8 @@ esma_set_this () -esma_add_library (${this} - SRCS GEOS_CICEDynaGridComp.F90 - DEPENDENCIES MAPL CICE4 - INCLUDES ${INC_ESMF}) +esma_add_library (${this} + SRCS GEOS_CICEDynaGridComp.F90 + DEPENDENCIES MAPL CICE4 esmf) target_compile_definitions(${this} PRIVATE DIAGOUT MODIFY_TOPOGRAPHY USE_R8) From 8efb1bab5b437d58e8f89dc4030287d560751045 Mon Sep 17 00:00:00 2001 From: Mike Manyin Date: Fri, 1 Apr 2022 13:47:21 -0400 Subject: [PATCH 2/6] mem: Removed a few connectivities from MOIST to CHEM that are no longer needed --- .../GEOS_PhysicsGridComp.F90 | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOS_PhysicsGridComp.F90 b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOS_PhysicsGridComp.F90 index eec5856d3..d96c8d4d2 100644 --- a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOS_PhysicsGridComp.F90 +++ b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOS_PhysicsGridComp.F90 @@ -1200,19 +1200,16 @@ subroutine SetServices ( GC, RC ) ! ----------------- call MAPL_AddConnectivity ( GC, & - SHORT_NAME = (/ 'Q ', 'RH2 ', & - 'SNO ', 'DQDT ', & - 'FCLD ', 'LS_PRCP ', 'CNV_MFC ', & - 'CNV_MFD ', 'QL ', 'PFL_CN ', & - 'PFL_LSAN', 'PFI_CN ', 'PFI_LSAN', & - 'QCTOT ', 'CNV_QC ', & - 'QLTOT ', 'QLCN ', 'QICN ', & - 'DQLDT ', 'QITOT ', 'REV_CN ', & - 'REV_LS ', 'REV_AN ', 'LFR_GCC ', & - 'DQIDT ', 'QI ', & - 'DQRC ', 'CNV_CVW ', 'QLLS ', & - 'QILS ', 'DQRL ', 'CNV_FRC ', & - 'RI ', 'RL ' /), & + SHORT_NAME = (/ 'Q ', 'RH2 ', 'DQDT ', & + 'FCLD ', 'CNV_MFC ', 'CNV_MFD ', & + 'QL ', 'PFL_CN ', 'PFL_LSAN', & + 'PFI_CN ', 'PFI_LSAN', 'QCTOT ', & + 'CNV_QC ', 'QLTOT ', 'QLCN ', & + 'QICN ', 'DQLDT ', 'QITOT ', & + 'REV_CN ', 'REV_LS ', 'REV_AN ', & + 'LFR_GCC ', 'DQIDT ', 'QI ', & + 'DQRC ', 'CNV_CVW ', 'DQRL ', & + 'CNV_FRC ', 'RI ', 'RL ' /), & DST_ID = CHEM, & SRC_ID = MOIST, & RC=STATUS ) From 005e056a4ca2f9b5198343275789c52daff57345 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Mon, 4 Apr 2022 13:52:58 -0400 Subject: [PATCH 3/6] Fixes #573. Initialize arrays in mkiau GC --- GEOSmkiau_GridComp/GEOS_mkiauGridComp.F90 | 166 +++++++++++----------- 1 file changed, 83 insertions(+), 83 deletions(-) diff --git a/GEOSmkiau_GridComp/GEOS_mkiauGridComp.F90 b/GEOSmkiau_GridComp/GEOS_mkiauGridComp.F90 index 935b1b9e0..09b3fffcf 100644 --- a/GEOSmkiau_GridComp/GEOS_mkiauGridComp.F90 +++ b/GEOSmkiau_GridComp/GEOS_mkiauGridComp.F90 @@ -31,7 +31,7 @@ module GEOS_mkiauGridCompMod private class (AbstractRegridder), pointer :: ANA2BKG_regridder => null() class (AbstractRegridder), pointer :: BKG2ANA_regridder => null() - type(ESMF_Grid) :: GRIDana ! Analysis Data using Horizontal:ANA Vertical:BKG + type(ESMF_Grid) :: GRIDana ! Analysis Data using Horizontal:ANA Vertical:BKG type(ESMF_Grid) :: GRIDrep ! Replay File Data using Horizontal:ANA Vertical:ANA integer :: IM integer :: JM @@ -48,7 +48,7 @@ module GEOS_mkiauGridCompMod !============================================================================= ! !DESCRIPTION: -! +! ! !EOP @@ -70,7 +70,7 @@ subroutine SetServices ( GC, RC ) ! ! DESCRIPTION: This version uses the MAPL_GenericSetServices. This function sets ! the Initialize and Finalize services, as well as allocating -! our instance of a generic state and putting it in the +! our instance of a generic state and putting it in the ! gridded component (GC). Here we only need to set the run method and ! add the state variable specifications (also generic) to our instance ! of the generic state. This is the way our true state variables get into @@ -86,7 +86,7 @@ subroutine SetServices ( GC, RC ) integer :: STATUS character(len=ESMF_MAXSTR) :: COMP_NAME type (MAPL_MetaComp), pointer :: MAPL - type (T_MKIAU_STATE), pointer :: mkiau_internal_state + type (T_MKIAU_STATE), pointer :: mkiau_internal_state type (MKIAU_wrap) :: wrap type (ESMF_Config) :: CF @@ -164,7 +164,7 @@ subroutine SetServices ( GC, RC ) VLOCATION = MAPL_VLocationNone, & RC=STATUS ) VERIFY_(STATUS) - + call MAPL_AddImportSpec(GC, & SHORT_NAME = 'DELP', & LONG_NAME = 'air_pressure_thickness', & @@ -173,7 +173,7 @@ subroutine SetServices ( GC, RC ) VLOCATION = MAPL_VLocationCenter, & RC=STATUS ) VERIFY_(STATUS) - + call MAPL_AddImportSpec ( gc, & SHORT_NAME = 'TV', & LONG_NAME = 'virtual_air_temperature', & @@ -182,7 +182,7 @@ subroutine SetServices ( GC, RC ) VLOCATION = MAPL_VLocationCenter, & RC=STATUS ) VERIFY_(STATUS) - + call MAPL_AddImportSpec(GC, & SHORT_NAME = 'U', & LONG_NAME = 'eastward_wind', & @@ -191,7 +191,7 @@ subroutine SetServices ( GC, RC ) VLOCATION = MAPL_VLocationCenter, & RC=STATUS ) VERIFY_(STATUS) - + call MAPL_AddImportSpec(GC, & SHORT_NAME = 'V', & LONG_NAME = 'northward_wind', & @@ -326,7 +326,7 @@ subroutine SetServices ( GC, RC ) VLOCATION = MAPL_VLocationNone, & RC=STATUS ) VERIFY_(STATUS) - + call MAPL_AddExportSpec(GC, & SHORT_NAME = 'DELPBKG', & LONG_NAME = 'air_pressure_thickness_of_background', & @@ -335,7 +335,7 @@ subroutine SetServices ( GC, RC ) VLOCATION = MAPL_VLocationCenter, & RC=STATUS ) VERIFY_(STATUS) - + call MAPL_AddExportSpec ( gc, & SHORT_NAME = 'TVBKG', & LONG_NAME = 'virtual_air_temperature_of_background', & @@ -344,7 +344,7 @@ subroutine SetServices ( GC, RC ) VLOCATION = MAPL_VLocationCenter, & RC=STATUS ) VERIFY_(STATUS) - + call MAPL_AddExportSpec(GC, & SHORT_NAME = 'UBKG', & LONG_NAME = 'eastward_wind_of_background', & @@ -354,7 +354,7 @@ subroutine SetServices ( GC, RC ) VLOCATION = MAPL_VLocationCenter, & RC=STATUS ) VERIFY_(STATUS) - + call MAPL_AddExportSpec(GC, & SHORT_NAME = 'VBKG', & LONG_NAME = 'northward_wind_of_background', & @@ -373,7 +373,7 @@ subroutine SetServices ( GC, RC ) VLOCATION = MAPL_VLocationCenter, & RC=STATUS ) VERIFY_(STATUS) - + call MAPL_AddExportSpec(GC, & SHORT_NAME = 'O3PPMVBKG', & LONG_NAME = 'ozone_volume_mixing_ratio_of_background', & @@ -419,7 +419,7 @@ subroutine SetServices ( GC, RC ) RC=STATUS ) VERIFY_(STATUS) - + ! Internal State (None) ! --------------------- @@ -446,7 +446,7 @@ subroutine SetServices ( GC, RC ) allocate( mkiau_internal_state, stat=status ) VERIFY_(STATUS) wrap%ptr => mkiau_internal_state - + ! Save pointer to the wrapped internal state in the GC ! ---------------------------------------------------- @@ -460,7 +460,7 @@ subroutine SetServices ( GC, RC ) VERIFY_(STATUS) RETURN_(ESMF_SUCCESS) - + end subroutine SetServices @@ -476,7 +476,7 @@ subroutine RUN ( GC, IMPORT, EXPORT, CLOCK, RC ) ! !ARGUMENTS: - type(ESMF_GridComp), intent(inout) :: GC ! Gridded component + type(ESMF_GridComp), intent(inout) :: GC ! Gridded component type(ESMF_State), intent(inout) :: IMPORT ! Import state type(ESMF_State), intent(inout) :: EXPORT ! Export state type(ESMF_Clock), intent(inout) :: CLOCK ! The clock @@ -642,7 +642,7 @@ subroutine RUN ( GC, IMPORT, EXPORT, CLOCK, RC ) integer :: nymdm2,nhmsm2 integer :: NX,NY,IMG,JMG integer :: method - integer :: DIMS(ESMF_MAXGRIDDIM) + integer :: DIMS(ESMF_MAXGRIDDIM) integer :: JCAP,LMP1 logical :: dowindfix logical :: doremap @@ -673,13 +673,13 @@ subroutine RUN ( GC, IMPORT, EXPORT, CLOCK, RC ) integer :: vm_comm integer :: IHAVEAINC - type (T_MKIAU_STATE), pointer :: mkiau_internal_state + type (T_MKIAU_STATE), pointer :: mkiau_internal_state type (MKIAU_wrap) :: wrap logical :: refresh_internal_state logical :: bkg2anaConsrv logical :: ana2bkgConsrv character(len=ESMF_MAXSTR) :: imstr, jmstr, gridAnaName - + logical :: first data first /.true./ logical :: NEED_BUNDLE1 @@ -695,12 +695,12 @@ subroutine RUN ( GC, IMPORT, EXPORT, CLOCK, RC ) logical :: NEED_BUNDLEM2 data NEED_BUNDLEM2 /.true./ - integer nsecf + integer nsecf nsecf(nhms) = nhms/10000*3600 + mod(nhms,10000)/100*60 + mod(nhms,100) !============================================================================= -! Begin... +! Begin... ! Get the target components name and set-up traceback handle. ! ----------------------------------------------------------- @@ -1071,7 +1071,7 @@ subroutine RUN ( GC, IMPORT, EXPORT, CLOCK, RC ) nx=NX, ny=NY, pole='PC', dateline= 'DC', rc=status) ) VERIFY_(STATUS) end block - + mkiau_internal_state%im = IMana_World mkiau_internal_state%jm = JMana_World mkiau_internal_state%lm = LMana @@ -1114,7 +1114,7 @@ subroutine RUN ( GC, IMPORT, EXPORT, CLOCK, RC ) VERIFY_(STATUS) call ESMF_VmGet(VM, mpicommunicator=vm_comm, rc=status) VERIFY_(STATUS) - + ANA2BKG => mkiau_internal_state%ANA2BKG_regridder BKG2ANA => mkiau_internal_state%BKG2ANA_regridder @@ -1294,7 +1294,7 @@ subroutine handleINC_ du=uptr dv=vptr endif - + ! Calculate 3d-pressure change ! ----------------------------- dple(:,:,0) = 0.0 @@ -1330,17 +1330,17 @@ subroutine handleANA_ ! ***************************************************************************** - allocate( phis_bkg(IM,JM) ) - allocate( ts_bkg(IM,JM) ) - allocate( ps_bkg(IM,JM) ) - allocate( u_bkg(IM,JM,1:LM) ) - allocate( v_bkg(IM,JM,1:LM) ) - allocate( t_bkg(IM,JM,1:LM) ) - allocate( tv_bkg(IM,JM,1:LM) ) - allocate( q_bkg(IM,JM,1:LM) ) - allocate( o3_bkg(IM,JM,1:LM) ) - allocate ( dp_bkg(IM,JM,1:LM) ) - allocate( ple_bkg(IM,JM,0:LM) ) + allocate( phis_bkg(IM,JM) , source = 0.0 ) + allocate( ts_bkg(IM,JM) , source = 0.0 ) + allocate( ps_bkg(IM,JM) , source = 0.0 ) + allocate( u_bkg(IM,JM,1:LM), source = 0.0 ) + allocate( v_bkg(IM,JM,1:LM), source = 0.0 ) + allocate( t_bkg(IM,JM,1:LM), source = 0.0 ) + allocate( tv_bkg(IM,JM,1:LM), source = 0.0 ) + allocate( q_bkg(IM,JM,1:LM), source = 0.0 ) + allocate( o3_bkg(IM,JM,1:LM), source = 0.0 ) + allocate( dp_bkg(IM,JM,1:LM), source = 0.0 ) + allocate( ple_bkg(IM,JM,0:LM), source = 0.0 ) ! ********************************************************************** ! **** Transform Import Data (ie. BKG.ETA) to ANA Grid **** @@ -1495,8 +1495,8 @@ subroutine handleANA_ FILE_TIMEP0 = REPLAY_TIMEP0 endif - if( currTime /= REPLAY_TIMEP0 ) then - if( NEED_BUNDLEM1 ) then + if( currTime /= REPLAY_TIMEP0 ) then + if( NEED_BUNDLEM1 ) then RBUNDLEM1 = ESMF_FieldBundleCreate( RC=STATUS) VERIFY_(STATUS) if ( trim(GRIDINC)=="ANA" ) call ESMF_FieldBundleSet(RBUNDLEM1, grid=GRIDrep, rc=status) @@ -1515,7 +1515,7 @@ subroutine handleANA_ endif if( REPLAY_TIME_INTERP == "CUBIC" ) then - if( NEED_BUNDLEP1 ) then + if( NEED_BUNDLEP1 ) then RBUNDLEP1 = ESMF_FieldBundleCreate( RC=STATUS) VERIFY_(STATUS) if ( trim(GRIDINC)=="ANA" ) call ESMF_FieldBundleSet(RBUNDLEP1, grid=GRIDrep, rc=status) @@ -1533,7 +1533,7 @@ subroutine handleANA_ FILE_TIMEP1 = REPLAY_TIMEP1 endif - if( NEED_BUNDLEM2 ) then + if( NEED_BUNDLEM2 ) then RBUNDLEM2 = ESMF_FieldBundleCreate( RC=STATUS) VERIFY_(STATUS) if ( trim(GRIDINC)=="ANA" ) call ESMF_FieldBundleSet(RBUNDLEM2, grid=GRIDrep, rc=status) @@ -1590,34 +1590,34 @@ subroutine handleANA_ ! **** Get Pointers to Internal STATE (ANA.ETA) from BUNDLE **** ! ********************************************************************** - allocate ( phis_ana(IM,JM) ) - allocate ( ts_ana(IM,JM) ) - allocate ( ps_ana(IM,JM) ) - allocate ( du_fix(IM,JM, LM) ) - allocate ( dv_fix(IM,JM, LM) ) - allocate ( u_ana(IM,JM, LM) ) - allocate ( v_ana(IM,JM, LM) ) - allocate ( t_ana(IM,JM, LM) ) - allocate ( thv_ana(IM,JM, LM) ) - allocate ( q_ana(IM,JM, LM) ) - allocate ( o3_ana(IM,JM, LM) ) - allocate ( pk_ana(IM,JM, LM) ) - allocate ( ple_ana(IM,JM,0:LM) ) - allocate ( pke_ana(IM,JM,0:LM) ) - - allocate ( dp_rep(IM,JM, LMana) ) - allocate ( u_rep(IM,JM, LMana) ) - allocate ( v_rep(IM,JM, LMana) ) - allocate ( t_rep(IM,JM, LMana) ) - allocate ( thv_rep(IM,JM, LMana) ) - allocate ( q_rep(IM,JM, LMana) ) - allocate ( o3_rep(IM,JM, LMana) ) - allocate ( pk_rep(IM,JM, LMana) ) - allocate ( ple_rep(IM,JM,0:LMana) ) - allocate ( pke_rep(IM,JM,0:LMana) ) - - allocate ( ak_rep(0:LMana) ) - allocate ( bk_rep(0:LMana) ) + allocate ( phis_ana(IM,JM) , source = 0.0 ) + allocate ( ts_ana(IM,JM) , source = 0.0 ) + allocate ( ps_ana(IM,JM) , source = 0.0 ) + allocate ( du_fix(IM,JM, LM), source = 0.0 ) + allocate ( dv_fix(IM,JM, LM), source = 0.0 ) + allocate ( u_ana(IM,JM, LM), source = 0.0 ) + allocate ( v_ana(IM,JM, LM), source = 0.0 ) + allocate ( t_ana(IM,JM, LM), source = 0.0 ) + allocate ( thv_ana(IM,JM, LM), source = 0.0 ) + allocate ( q_ana(IM,JM, LM), source = 0.0 ) + allocate ( o3_ana(IM,JM, LM), source = 0.0 ) + allocate ( pk_ana(IM,JM, LM), source = 0.0 ) + allocate ( ple_ana(IM,JM,0:LM), source = 0.0 ) + allocate ( pke_ana(IM,JM,0:LM), source = 0.0 ) + + allocate ( dp_rep(IM,JM, LMana), source = 0.0 ) + allocate ( u_rep(IM,JM, LMana), source = 0.0 ) + allocate ( v_rep(IM,JM, LMana), source = 0.0 ) + allocate ( t_rep(IM,JM, LMana), source = 0.0 ) + allocate ( thv_rep(IM,JM, LMana), source = 0.0 ) + allocate ( q_rep(IM,JM, LMana), source = 0.0 ) + allocate ( o3_rep(IM,JM, LMana), source = 0.0 ) + allocate ( pk_rep(IM,JM, LMana), source = 0.0 ) + allocate ( ple_rep(IM,JM,0:LMana), source = 0.0 ) + allocate ( pke_rep(IM,JM,0:LMana), source = 0.0 ) + + allocate ( ak_rep(0:LMana), source = 0.0 ) + allocate ( bk_rep(0:LMana), source = 0.0 ) doremap = (trim(cremap).eq.'YES') .or. (LMana.ne.LMbkg) @@ -2171,7 +2171,7 @@ subroutine handleANA_ call MAPL_TimerON(MAPL,"--WINDFIX") call windfix ( u_ana,v_ana,ple_ana, & u_bkg,v_bkg,ple_bkg,im,jm,LMbkg,VM,GRIDana,method, & - vintdiva,vintdivb,vintdivc ) + vintdiva,vintdivb,vintdivc ) call MAPL_TimerOFF(MAPL,"--WINDFIX") endif @@ -2198,7 +2198,7 @@ subroutine handleANA_ VERIFY_(STATUS) call MAPL_GetPointer(export, dts, 'DTSDT', alloc=.TRUE., RC=STATUS) VERIFY_(STATUS) - + call MAPL_GetPointer(export,duwindfix, 'DUWINDFIX', alloc=.TRUE., RC=STATUS) VERIFY_(STATUS) call MAPL_GetPointer(export,dvwindfix, 'DVWINDFIX', alloc=.TRUE., RC=STATUS) @@ -2488,7 +2488,7 @@ subroutine CLEAR ( GC, IMPORT, EXPORT, CLOCK, RC ) ! !ARGUMENTS: - type(ESMF_GridComp), intent(inout) :: GC ! Gridded component + type(ESMF_GridComp), intent(inout) :: GC ! Gridded component type(ESMF_State), intent(inout) :: IMPORT ! Import state type(ESMF_State), intent(inout) :: EXPORT ! Export state type(ESMF_Clock), intent(inout) :: CLOCK ! The clock @@ -2514,14 +2514,14 @@ subroutine CLEAR ( GC, IMPORT, EXPORT, CLOCK, RC ) real, pointer, dimension(:,:) :: ptr2d real, pointer, dimension(:,:,:) :: ptr3d - + integer :: I, N, fieldRank type(ESMF_FieldStatus_Flag) :: fieldStatus character (len=ESMF_MAXSTR), allocatable :: itemNameList(:) !============================================================================= -! Begin... +! Begin... ! Get the target components name and set-up traceback handle. ! ----------------------------------------------------------- @@ -2742,7 +2742,7 @@ subroutine POLEFIX ( ua,va,VM,GRID ) real :: va(:,:,:) type (ESMF_VM) :: VM type (ESMF_Grid) :: GRID - integer :: DIMS(ESMF_MAXGRIDDIM) + integer :: DIMS(ESMF_MAXGRIDDIM) integer :: IM,JM,LM,IMG,JMG integer :: vm_comm @@ -2756,7 +2756,7 @@ subroutine POLEFIX ( ua,va,VM,GRID ) integer :: RC,STATUS IAM = "POLEFIX" - + call ESMF_VMGet (VM, localpet=myid, RC=STATUS) VERIFY_(STATUS) call MAPL_GridGet(GRID, globalCellCountPerDim=DIMS, RC=STATUS) @@ -2765,7 +2765,7 @@ subroutine POLEFIX ( ua,va,VM,GRID ) JMG = DIMS(2) LM = DIMS(3) DL = 2*MAPL_PI/IMG - + allocate( uglo(IMG,JMG) ) allocate( vglo(IMG,JMG) ) allocate( sinl(IMG) ) @@ -3060,7 +3060,7 @@ subroutine spectrans_vectorglob(InGlob1,InGlob2,OutGlob1,OutGlob2,jcap,RC) end subroutine spectrans_vectorglob subroutine spectrans_scalar(im,jm,lm,var,jcap,GRID,RC) - use mkiau_specmod, only: sptezv_s, sptez_s, init_spec_vars,destroy_spec_vars,isinitialized + use mkiau_specmod, only: sptezv_s, sptez_s, init_spec_vars,destroy_spec_vars,isinitialized integer, intent(in) :: im,jm,lm integer, intent(in) :: jcap real, intent(inout), dimension(im,jm,lm) :: var @@ -3126,7 +3126,7 @@ logical function check_list_(name,vars) end function check_list_ subroutine spectrans_scalarpar(im,jm,lm,var,jcap,GRID,RC) - use mkiau_specmod, only: sptezv_s, sptez_s, init_spec_vars,destroy_spec_vars,isinitialized + use mkiau_specmod, only: sptezv_s, sptez_s, init_spec_vars,destroy_spec_vars,isinitialized integer, intent(in) :: im,jm,lm integer, intent(in) :: jcap real, intent(inout), dimension(im,jm,lm) :: var @@ -3171,7 +3171,7 @@ end subroutine spectrans_scalarpar ! perform scalar spectral transform on global data ! assuming calling routine already intitalized the spectral filter subroutine spectrans_scalarglob(InGlob,OutGLob,jcap,RC) - use mkiau_specmod, only: sptezv_s, sptez_s, init_spec_vars,destroy_spec_vars,isinitialized + use mkiau_specmod, only: sptezv_s, sptez_s, init_spec_vars,destroy_spec_vars,isinitialized integer, intent(in) :: jcap real, intent(inout), dimension(:,:,: ) :: InGlob real, intent(inout), dimension(:,:,: ) :: OutGlob @@ -3252,7 +3252,7 @@ subroutine myremap ( ple_in,ple_out, & !* GODDARD LABORATORY FOR ATMOSPHERES * !*********************************************************************** - use GEOS_GmapMod, only: gmap + use GEOS_GmapMod, only: gmap implicit none integer im,jm,LM_in,LM_out @@ -3311,13 +3311,13 @@ subroutine myremap ( ple_in,ple_out, & ! Construct Input Heights ! ----------------------- - pke_in(:,:,:) = ple_in(:,:,:)**kappa + pke_in(:,:,:) = ple_in(:,:,:)**kappa phi_in(:,:,LM_in+1) = phis_in(:,:) do L=LM_in,1,-1 phi_in(:,:,L) = phi_in(:,:,L+1) + cp*thv_in(:,:,L)*( pke_in(:,:,L+1)-pke_in(:,:,L) ) enddo - + ! Compute new surface pressure consistent with output topography ! -------------------------------------------------------------- do j=1,jm @@ -3350,7 +3350,7 @@ subroutine myremap ( ple_in,ple_out, & enddo endif - pke_out(:,:,:) = ple_out(:,:,:)**kappa + pke_out(:,:,:) = ple_out(:,:,:)**kappa ! Map original fv state onto new eta grid ! --------------------------------------- From f172704424a7b028d473585d78d8ac2a3421dea7 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Thu, 21 Apr 2022 12:59:55 -0400 Subject: [PATCH 4/6] Update CI to use v1 orb and job --- .circleci/config.yml | 33 +++++++++------------------------ 1 file changed, 9 insertions(+), 24 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ce182cb53..11bd27865 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,35 +1,20 @@ version: 2.1 orbs: - circleci-tools: geos-esm/circleci-tools@0.11.0 + ci: geos-esm/circleci-tools@1 workflows: build-test: jobs: - - build-GEOSgcm: + # Build GEOSgcm + - ci/build: name: build-GEOSgcm-on-<< matrix.compiler >> + context: + - docker-hub-creds matrix: parameters: compiler: [gfortran, ifort] - context: - - docker-hub-creds - -jobs: - build-GEOSgcm: - parameters: - compiler: - type: string - executor: circleci-tools/<< parameters.compiler >> - working_directory: /root/project - steps: - - circleci-tools/checkout_fixture - - circleci-tools/mepoclone - - circleci-tools/mepodevelop - - circleci-tools/checkout_if_exists - - circleci-tools/cmake: - compiler: << parameters.compiler >> - - circleci-tools/buildinstall - - circleci-tools/compress_artifacts - - store_artifacts: - path: /logfiles - + repo: GEOSgcm + checkout_fixture: true + mepodevelop: true + persist_workspace: false # Needs to be true to run fv3/gcm experiment, costs extra From f6cd266168794f7a83caa464b0b8ba03094acf2d Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Thu, 21 Apr 2022 13:01:41 -0400 Subject: [PATCH 5/6] Update image in github action --- .github/workflows/workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 69683f17b..2d4e599e5 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -17,7 +17,7 @@ jobs: if: "!contains(github.event.pull_request.labels.*.name, '0 diff trivial')" runs-on: ubuntu-latest container: - image: gmao/ubuntu20-geos-env-mkl:v6.2.8-openmpi_4.0.6-gcc_11.2.0 + image: gmao/ubuntu20-geos-env-mkl:v6.2.13-openmpi_4.1.2-gcc_11.2.0 credentials: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} From 19cf05b8d4653ed1166b4caab5a7caef6a5d00f4 Mon Sep 17 00:00:00 2001 From: Lawrence Takacs Date: Fri, 29 Apr 2022 16:47:01 -0400 Subject: [PATCH 6/6] Implemented optional USER-Defined REPLAY Predictor Duration --- GEOS_GcmGridComp.F90 | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/GEOS_GcmGridComp.F90 b/GEOS_GcmGridComp.F90 index 3c15cb7b0..27fa383f2 100644 --- a/GEOS_GcmGridComp.F90 +++ b/GEOS_GcmGridComp.F90 @@ -1062,17 +1062,23 @@ subroutine Initialize ( GC, IMPORT, EXPORT, CLOCK, RC ) call ESMF_TimeIntervalGet( PREDICTOR_DURATION, S=i_PREDICTOR_DURATION, rc=status ) call MAPL_ConfigSetAttribute( CF, i_PREDICTOR_DURATION, Label="PREDICTOR_DURATION:", RC=STATUS) VERIFY_(STATUS) - IF(MAPL_AM_I_ROOT()) PRINT *,'Setting PREDICTOR_DURATION, to ',i_PREDICTOR_DURATION + IF(MAPL_AM_I_ROOT()) PRINT *,'Setting PREDICTOR_DURATION based on IAU Frequency: ',i_PREDICTOR_DURATION else call ESMF_TimeIntervalGet( PREDICTOR_DURATION, S=rep_S, rc=status ) - if( rep_S .ne. i_PREDICTOR_DURATION ) then + if( rep_S .gt. i_PREDICTOR_DURATION ) then IF(MAPL_AM_I_ROOT()) then PRINT * PRINT *,'ERROR! User-Defined PREDICTOR_DURATION: ',i_PREDICTOR_DURATION - PRINT *,'is INCONSISTENT with Calculated PREDICTOR_DURATION: ',rep_S + PRINT *,'is SMALLER THAN required Calculated PREDICTOR_DURATION: ',rep_S PRINT * endif VERIFY_(ESMF_FAILURE) + else + if( rep_S .ne. i_PREDICTOR_DURATION ) then + call ESMF_TimeIntervalSet( PREDICTOR_DURATION, S=i_PREDICTOR_DURATION, rc=status ) + VERIFY_(STATUS) + IF(MAPL_AM_I_ROOT()) PRINT *,' (Note: PREDICTOR_DURATION based on USER Input) ' + endif endif endif gcm_internal_state%predur = i_PREDICTOR_DURATION @@ -1797,6 +1803,7 @@ subroutine Run ( GC, IMPORT, EXPORT, CLOCK, RC ) VERIFY_(STATUS) if( gcm_internal_state%predur .ne. 0 ) then + if( MAPL_AM_I_Root() ) print * do call ESMF_ClockAdvance ( clock, rc=status ) VERIFY_(STATUS)