Skip to content

Commit

Permalink
Merge pull request ufs-community#96 from climbfuji/update_gsl_develop…
Browse files Browse the repository at this point in the history
…_from_develop_20210721

Update gsl/develop from develop 20210721
  • Loading branch information
DomHeinzeller committed Jul 27, 2021
2 parents 9909f5f + 34b5291 commit 7e31e44
Show file tree
Hide file tree
Showing 205 changed files with 6,930 additions and 13,017 deletions.
1 change: 1 addition & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ How were these changes tested? What compilers / HPCs was it tested with? Are the
- [ ] jet.intel
- [ ] wcoss_cray
- [ ] wcoss_dell_p3
- [ ] CI

## Dependencies

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/aux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ env:
base_url: $GITHUB_API_URL/repos/$GITHUB_REPOSITORY/actions/runs
AUTH: ${{ secrets.GITHUB_TOKEN }}
aws_instance_id: ${{ secrets.AWS_INSTANCE_ID }}
no_instances: 6
no_instances: 10


jobs:
Expand Down
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,7 @@
path = CDEPS-interface/CDEPS
url = https://github.com/NOAA-EMC/CDEPS
branch = develop
[submodule "GOCART"]
path = GOCART
url = https://github.com/GEOS-ESM/GOCART
branch = develop
23 changes: 23 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# .readthedocs.yml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

# Required
version: 2

# Build documentation in the docs/ directory with Sphinx
sphinx:
configuration: doc/UsersGuide/source/conf.py

# Build documentation with MkDocs
#mkdocs:
# configuration: mkdocs.yml

# Optionally build your docs in additional formats such as PDF and ePub
formats: all

# Optionally set the version of Python and requirements required to build your docs
python:
version: 3.7
install:
- requirements: doc/UsersGuide/requirements.txt
129 changes: 59 additions & 70 deletions CDEPS-interface/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,103 +16,92 @@ endif()
include("cdeps_files.cmake")

# CDEPS/share
add_library(share STATIC ${cdeps_share_files} ${ufs_cdeps_share_files})
add_library(cdeps::share ALIAS share)
add_library(share OBJECT ${cdeps_share_files} ${ufs_cdeps_share_files})
set_target_properties(share PROPERTIES Fortran_MODULE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/mod)
target_include_directories(share PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/ufs/cdeps_share)
target_include_directories(share PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>
$<INSTALL_INTERFACE:mod>)
target_link_libraries(share PUBLIC esmf)
list(APPEND LIB_TARGETS share)
target_include_directories(share PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>)
target_link_libraries(share PRIVATE esmf)

# CDEPS/streams
add_library(streams STATIC ${cdeps_streams_files})
add_library(cdeps::streams ALIAS streams)
add_dependencies(streams cdeps::share)
add_library(streams OBJECT ${cdeps_streams_files})
add_dependencies(streams share)
set_target_properties(streams PROPERTIES Fortran_MODULE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/mod)
target_include_directories(streams PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>
$<INSTALL_INTERFACE:mod>)
target_include_directories(streams PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>)
target_compile_definitions(streams PUBLIC "DISABLE_FoX")
target_link_libraries(streams PUBLIC cdeps::share)
target_link_libraries(streams PUBLIC esmf PIO::PIO_Fortran)
list(APPEND LIB_TARGETS streams)
target_link_libraries(streams PRIVATE share)
target_link_libraries(streams PRIVATE esmf PIO::PIO_Fortran)

# CDEPS/dshr
add_library(dshr STATIC ${cdeps_dshr_files})
add_library(cdeps::dshr ALIAS dshr)
add_dependencies(dshr cdeps::share cdeps::streams)
add_library(dshr OBJECT ${cdeps_dshr_files})
add_dependencies(dshr share streams)
set_target_properties(dshr PROPERTIES Fortran_MODULE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/mod)
target_include_directories(dshr PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>
$<INSTALL_INTERFACE:mod>)
target_link_libraries(dshr PUBLIC cdeps::share cdeps::streams)
target_link_libraries(dshr PUBLIC esmf PIO::PIO_Fortran)
list(APPEND LIB_TARGETS dshr)
target_include_directories(dshr PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>)
target_link_libraries(dshr PRIVATE share streams)
target_link_libraries(dshr PRIVATE esmf PIO::PIO_Fortran)

# CDEPS/datm
add_library(datm STATIC ${cdeps_datm_files})
add_library(cdeps::datm ALIAS datm)
add_dependencies(datm cdeps::share cdeps::streams cdeps::dshr)
add_library(datm OBJECT ${cdeps_datm_files})
add_dependencies(datm share streams dshr)
set_target_properties(datm PROPERTIES Fortran_MODULE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/mod)
target_include_directories(datm PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>
$<INSTALL_INTERFACE:mod>)
target_link_libraries(datm PUBLIC cdeps::dshr cdeps::share cdeps::streams)
target_link_libraries(datm PUBLIC esmf PIO::PIO_Fortran)
list(APPEND LIB_TARGETS datm)
target_include_directories(datm PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>)
target_link_libraries(datm PRIVATE dshr share streams)
target_link_libraries(datm PRIVATE esmf PIO::PIO_Fortran)

# CDEPS/dice
add_library(dice STATIC ${cdeps_dice_files})
add_library(cdeps::dice ALIAS dice)
add_dependencies(dice cdeps::share cdeps::streams cdeps::dshr)
add_library(dice OBJECT ${cdeps_dice_files})
add_dependencies(dice share streams dshr)
set_target_properties(dice PROPERTIES Fortran_MODULE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/mod)
target_include_directories(dice PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>
$<INSTALL_INTERFACE:mod>)
target_link_libraries(dice PUBLIC cdeps::dshr cdeps::share cdeps::streams)
target_link_libraries(dice PUBLIC esmf)
list(APPEND LIB_TARGETS dice)
target_include_directories(dice PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>)
target_link_libraries(dice PRIVATE dshr share streams)
target_link_libraries(dice PRIVATE esmf)

# CDEPS/dlnd
add_library(dlnd STATIC ${cdeps_dlnd_files})
add_library(cdeps::dlnd ALIAS dlnd)
add_dependencies(dlnd cdeps::share cdeps::streams cdeps::dshr)
add_library(dlnd OBJECT ${cdeps_dlnd_files})
add_dependencies(dlnd share streams dshr)
set_target_properties(dlnd PROPERTIES Fortran_MODULE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/mod)
target_include_directories(dlnd PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>
$<INSTALL_INTERFACE:mod>)
target_link_libraries(dlnd PUBLIC cdeps::dshr cdeps::share cdeps::streams)
target_link_libraries(dlnd PUBLIC esmf)
list(APPEND LIB_TARGETS dlnd)
target_include_directories(dlnd PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>)
target_link_libraries(dlnd PRIVATE dshr share streams)
target_link_libraries(dlnd PRIVATE esmf)

# CDEPS/docn
add_library(docn STATIC ${cdeps_docn_files})
add_library(cdeps::docn ALIAS docn)
add_dependencies(docn cdeps::share cdeps::streams cdeps::dshr)
add_library(docn OBJECT ${cdeps_docn_files})
add_dependencies(docn share streams dshr)
set_target_properties(docn PROPERTIES Fortran_MODULE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/mod)
target_include_directories(docn PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>
$<INSTALL_INTERFACE:mod>)
target_link_libraries(docn PUBLIC cdeps::dshr cdeps::share cdeps::streams)
target_link_libraries(docn PUBLIC esmf)
list(APPEND LIB_TARGETS docn)
target_include_directories(docn PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>)
target_link_libraries(docn PRIVATE dshr share streams)
target_link_libraries(docn PRIVATE esmf)

# CDEPS/drof
add_library(drof STATIC ${cdeps_drof_files})
add_library(cdeps::drof ALIAS drof)
add_dependencies(drof cdeps::share cdeps::streams cdeps::dshr)
add_library(drof OBJECT ${cdeps_drof_files})
add_dependencies(drof share streams dshr)
set_target_properties(drof PROPERTIES Fortran_MODULE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/mod)
target_include_directories(drof PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>
$<INSTALL_INTERFACE:mod>)
target_link_libraries(drof PUBLIC cdeps::dshr cdeps::share cdeps::streams)
target_link_libraries(drof PUBLIC esmf)
list(APPEND LIB_TARGETS drof)
target_include_directories(drof PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>)
target_link_libraries(drof PRIVATE dshr share streams)
target_link_libraries(drof PRIVATE esmf)

# CDEPS/dwav
add_library(dwav STATIC ${cdeps_dwav_files})
add_library(cdeps::dwav ALIAS dwav)
add_dependencies(dwav cdeps::share cdeps::streams cdeps::dshr)
add_library(dwav OBJECT ${cdeps_dwav_files})
add_dependencies(dwav share streams dshr)
set_target_properties(dwav PROPERTIES Fortran_MODULE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/mod)
target_include_directories(dwav PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>
$<INSTALL_INTERFACE:mod>)
target_link_libraries(dwav PUBLIC cdeps::dshr cdeps::share cdeps::streams)
target_link_libraries(dwav PUBLIC esmf)
list(APPEND LIB_TARGETS dwav)
target_include_directories(dwav PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>)
target_link_libraries(dwav PRIVATE dshr share streams)
target_link_libraries(dwav PRIVATE esmf)

# CDEPS
add_library(cdeps STATIC $<TARGET_OBJECTS:share>
$<TARGET_OBJECTS:streams>
$<TARGET_OBJECTS:dshr>
$<TARGET_OBJECTS:datm>
$<TARGET_OBJECTS:dice>
$<TARGET_OBJECTS:dlnd>
$<TARGET_OBJECTS:docn>
$<TARGET_OBJECTS:drof>
$<TARGET_OBJECTS:dwav>)
add_library(cdeps::cdeps ALIAS cdeps)
target_include_directories(cdeps PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>
$<INSTALL_INTERFACE:mod>)
target_link_libraries(cdeps PUBLIC esmf PIO::PIO_Fortran)
list(APPEND LIB_TARGETS cdeps)

###############################################################################
### Install
Expand Down
2 changes: 1 addition & 1 deletion CICE-interface/CICE
Submodule CICE updated 179 files
1 change: 1 addition & 0 deletions CICE-interface/cice_files.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ list(APPEND cice_nuopc_cmeps_driver_files
CICE/cicecore/drivers/nuopc/cmeps/ice_prescribed_mod.F90
CICE/cicecore/drivers/nuopc/cmeps/ice_scam.F90
CICE/cicecore/drivers/nuopc/cmeps/ice_shr_methods.F90
CICE/cicecore/drivers/nuopc/cmeps/ice_mesh_mod.F90
)

#-- Using NUOPC DMI driver
Expand Down
4 changes: 0 additions & 4 deletions CMEPS-interface/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -64,13 +64,9 @@ list(APPEND _mediator_files
CMEPS/mediator/med_phases_post_rof_mod.F90
CMEPS/mediator/med_phases_post_wav_mod.F90)

list(APPEND _mediator_defs ESMF_VERSION_MAJOR=${ESMF_VERSION_MAJOR}
ESMF_VERSION_MINOR=${ESMF_VERSION_MINOR})

### Create target library and set PUBLIC interfaces on the library
add_library(cmeps STATIC ${_nems_util_files} ${_mediator_files})
set_target_properties(cmeps PROPERTIES Fortran_MODULE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/mod)
target_compile_definitions(cmeps PUBLIC "${_mediator_defs}")
target_include_directories(cmeps PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>
$<INSTALL_INTERFACE:mod>)
target_link_libraries(cmeps PUBLIC esmf
Expand Down
66 changes: 23 additions & 43 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,15 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMakeModules/Modules)
###############################################################################

# Valid applications and choices
list(APPEND VALID_APPS ATM ATMW S2S S2SW NG-GODAS NG-GODAS-NEMSDATM)
list(APPEND VALID_APPS ATM ATMAERO ATMW S2S S2SW NG-GODAS NG-GODAS-NEMSDATM)
set(APP NONE CACHE BOOL "Application Name")
if(NOT (APP IN_LIST VALID_APPS))
message(FATAL_ERROR "${APP} is not a valid application.\nValid Applications are: ${VALID_APPS}")
endif()

set(FMS OFF CACHE BOOL "Enable FMS")
set(FV3 OFF CACHE BOOL "Enable FV3")
set(UFS_GOCART OFF CACHE BOOL "Enable GOCART")
set(MOM6 OFF CACHE BOOL "Enable MOM6")
set(CICE6 OFF CACHE BOOL "Enable CICE6")
set(WW3 OFF CACHE BOOL "Enable WW3")
Expand All @@ -39,6 +40,7 @@ include(cmake/configure_apps.cmake)
message("")
message("FMS .............. ${FMS}")
message("FV3 .............. ${FV3}")
message("GOCART ........... ${UFS_GOCART}")
message("MOM6 ............. ${MOM6}")
message("CICE6 ............ ${CICE6}")
message("WW3 .............. ${WW3}")
Expand Down Expand Up @@ -129,7 +131,7 @@ if(INLINE_POST)
endif()

# See https://github.com/NOAA-EMC/NCEPLIBS-nemsio/pull/22
target_link_libraries(nemsio::nemsio INTERFACE w3emc::w3emc_d bacio::bacio_4)
target_link_libraries(nemsio::nemsio INTERFACE w3nco::w3nco_d bacio::bacio_4)

# Configure Python
find_package(Python 3 REQUIRED COMPONENTS Interpreter)
Expand All @@ -149,14 +151,19 @@ if(FV3)
add_subdirectory(FV3)
endif()

###############################################################################
### GOCART
###############################################################################
if(UFS_GOCART)
add_subdirectory(GOCART)
endif()

###############################################################################
### Wave components [WW3]
###############################################################################
if(WW3)
if(CMAKE_Platform)
if(${CMAKE_Platform} STREQUAL "wcoss2")
set(WW3_COMP "wcoss_cray")
elseif(${CMAKE_Platform} MATCHES "linux*" OR ${CMAKE_Platform} MATCHES "macosx*")
if(${CMAKE_Platform} MATCHES "linux*" OR ${CMAKE_Platform} MATCHES "macosx*")
if (CMAKE_Fortran_COMPILER_ID MATCHES "GNU")
set(WW3_COMP "gnu")
elseif (CMAKE_Fortran_COMPILER_ID MATCHES "Intel")
Expand Down Expand Up @@ -210,25 +217,26 @@ endif()
###############################################################################
### UFS Library [NEMS]
###############################################################################
list(APPEND _nems_srcs NEMS/src/module_NEMS_UTILS.F90
NEMS/src/module_EARTH_GRID_COMP.F90
NEMS/src/module_NEMS_GRID_COMP.F90
list(APPEND _nems_srcs NEMS/src/module_EARTH_GRID_COMP.F90
NEMS/src/module_NEMS_Rusage.F90
NEMS/src/nems_c_rusage.c)

add_library(ufs ${_nems_srcs})
set_target_properties(ufs PROPERTIES Fortran_MODULE_DIRECTORY
${CMAKE_CURRENT_BINARY_DIR}/mod)
target_include_directories(ufs PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/NEMS/src)
target_include_directories(ufs INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>
$<INSTALL_INTERFACE:mod>)

list(APPEND _ufs_defs_private ESMF_VERSION_MAJOR=${ESMF_VERSION_MAJOR})

if(JEDI_DRIVER)
list(APPEND _ufs_defs_private JEDI_DRIVER=ON)
endif()

if(UFS_GOCART)
add_dependencies(ufs UFS_Aerosols)
list(APPEND _ufs_defs_private FRONT_GOCART=Aerosol_Cap)
list(APPEND _ufs_libs_public UFS_Aerosols)
endif()

if(WW3)
add_dependencies(ufs ww3_nems)
list(APPEND _ufs_defs_private FRONT_WW3=WMESMFMD)
Expand All @@ -242,11 +250,6 @@ if(STOCH_PHYS)
list(APPEND _ufs_libs_public stochastic_physics)
endif()

if(FMS)
add_dependencies(ufs fms)
list(APPEND _ufs_defs_private FRONT_FMS)
endif()

if(NEMSdatm)
add_dependencies(ufs datatm)
list(APPEND _ufs_defs_private FRONT_NEMS_DATM=datm)
Expand Down Expand Up @@ -278,11 +281,9 @@ if(CMEPS)
endif()

if(CDEPS)
add_dependencies(ufs cdeps::datm)
list(APPEND _ufs_defs_private CDEPS-interface/CDEPS
FRONT_CDEPS_DATM=atm_comp_nuopc)
include_directories(${CMAKE_CURRENT_BINARY_DIR}/CDEPS-interface/CDEPS/datm)
target_link_libraries(ufs PUBLIC cdeps::datm)
add_dependencies(ufs cdeps::cdeps)
list(APPEND _ufs_defs_private FRONT_CDEPS_DATM=cdeps_datm_comp)
target_link_libraries(ufs PUBLIC cdeps::cdeps)
endif()

target_compile_definitions(ufs PRIVATE "${_ufs_defs_private}")
Expand All @@ -293,28 +294,7 @@ target_link_libraries(ufs PUBLIC "${_ufs_libs_public}")
###############################################################################
add_executable(ufs_model NEMS/src/MAIN_NEMS.F90)
add_dependencies(ufs_model ufs)

list(APPEND _ufs_model_defs_private ESMF_VERSION_MAJOR=${ESMF_VERSION_MAJOR})

set_target_properties(ufs_model PROPERTIES Fortran_MODULE_DIRECTORY
${CMAKE_CURRENT_BINARY_DIR}/mod)

target_include_directories(ufs_model PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/NEMS/src)

if(WW3)
list(APPEND _ufs_model_defs_private FRONT_WW3=WMESMFMD)
target_include_directories(ufs_model PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/WW3/model/mod)
endif()

target_compile_definitions(ufs_model PRIVATE "${_ufs_model_defs_private}")

if(NEMSdatm OR CDEPS)
target_link_libraries(ufs_model PUBLIC ufs w3nco::w3nco_d)
endif()

target_link_libraries(ufs_model PRIVATE ufs
esmf
NetCDF::NetCDF_Fortran)
target_link_libraries(ufs_model ufs esmf w3nco::w3nco_d)

###############################################################################
### Install
Expand Down
2 changes: 1 addition & 1 deletion FV3
Submodule FV3 updated 102 files
1 change: 1 addition & 0 deletions GOCART
Submodule GOCART added at ebcbc3
2 changes: 1 addition & 1 deletion NEMS
Loading

0 comments on commit 7e31e44

Please sign in to comment.