-
Notifications
You must be signed in to change notification settings - Fork 64
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' of https://github.com/NCAR/ccpp-framework into no…
…_run_phase
- Loading branch information
Showing
17 changed files
with
959 additions
and
136 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
#------------------------------------------------------------------------------ | ||
cmake_minimum_required(VERSION 3.0) | ||
|
||
project(ccpp_chunked_data | ||
VERSION 1.0.0 | ||
LANGUAGES Fortran) | ||
|
||
#------------------------------------------------------------------------------ | ||
# Request a static build | ||
option(BUILD_SHARED_LIBS "Build a shared library" OFF) | ||
|
||
#------------------------------------------------------------------------------ | ||
# Set the sources: physics type definitions | ||
set(TYPEDEFS $ENV{CCPP_TYPEDEFS}) | ||
if(TYPEDEFS) | ||
message(STATUS "Got CCPP TYPEDEFS from environment variable: ${TYPEDEFS}") | ||
else(TYPEDEFS) | ||
include(${CMAKE_CURRENT_BINARY_DIR}/CCPP_TYPEDEFS.cmake) | ||
message(STATUS "Got CCPP TYPEDEFS from cmakefile include file: ${TYPEDEFS}") | ||
endif(TYPEDEFS) | ||
|
||
# Generate list of Fortran modules from the CCPP type | ||
# definitions that need need to be installed | ||
foreach(typedef_module ${TYPEDEFS}) | ||
list(APPEND MODULES_F90 ${CMAKE_CURRENT_BINARY_DIR}/${typedef_module}) | ||
endforeach() | ||
|
||
#------------------------------------------------------------------------------ | ||
# Set the sources: physics schemes | ||
set(SCHEMES $ENV{CCPP_SCHEMES}) | ||
if(SCHEMES) | ||
message(STATUS "Got CCPP SCHEMES from environment variable: ${SCHEMES}") | ||
else(SCHEMES) | ||
include(${CMAKE_CURRENT_BINARY_DIR}/CCPP_SCHEMES.cmake) | ||
message(STATUS "Got CCPP SCHEMES from cmakefile include file: ${SCHEMES}") | ||
endif(SCHEMES) | ||
|
||
# Set the sources: physics scheme caps | ||
set(CAPS $ENV{CCPP_CAPS}) | ||
if(CAPS) | ||
message(STATUS "Got CCPP CAPS from environment variable: ${CAPS}") | ||
else(CAPS) | ||
include(${CMAKE_CURRENT_BINARY_DIR}/CCPP_CAPS.cmake) | ||
message(STATUS "Got CCPP CAPS from cmakefile include file: ${CAPS}") | ||
endif(CAPS) | ||
|
||
# Set the sources: physics scheme caps | ||
set(API $ENV{CCPP_API}) | ||
if(API) | ||
message(STATUS "Got CCPP API from environment variable: ${API}") | ||
else(API) | ||
include(${CMAKE_CURRENT_BINARY_DIR}/CCPP_API.cmake) | ||
message(STATUS "Got CCPP API from cmakefile include file: ${API}") | ||
endif(API) | ||
|
||
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -O0 -fno-unsafe-math-optimizations -frounding-math -fsignaling-nans -ffpe-trap=invalid,zero,overflow -fbounds-check -ggdb -fbacktrace -ffree-line-length-none") | ||
|
||
#------------------------------------------------------------------------------ | ||
add_library(ccpp_chunked_data STATIC ${SCHEMES} ${CAPS} ${API}) | ||
# Generate list of Fortran modules from defined sources | ||
foreach(source_f90 ${CAPS} ${API}) | ||
get_filename_component(tmp_source_f90 ${source_f90} NAME) | ||
string(REGEX REPLACE ".F90" ".mod" tmp_module_f90 ${tmp_source_f90}) | ||
string(TOLOWER ${tmp_module_f90} module_f90) | ||
list(APPEND MODULES_F90 ${CMAKE_CURRENT_BINARY_DIR}/${module_f90}) | ||
endforeach() | ||
|
||
set_target_properties(ccpp_chunked_data PROPERTIES VERSION ${PROJECT_VERSION} | ||
SOVERSION ${PROJECT_VERSION_MAJOR}) | ||
|
||
add_executable(test_chunked_data.x main.F90) | ||
add_dependencies(test_chunked_data.x ccpp_chunked_data) | ||
target_link_libraries(test_chunked_data.x ccpp_chunked_data) | ||
set_target_properties(test_chunked_data.x PROPERTIES LINKER_LANGUAGE Fortran) | ||
|
||
# Define where to install the library | ||
install(TARGETS ccpp_chunked_data | ||
EXPORT ccpp_chunked_data-targets | ||
ARCHIVE DESTINATION lib | ||
LIBRARY DESTINATION lib | ||
RUNTIME DESTINATION lib | ||
) | ||
# Export our configuration | ||
install(EXPORT ccpp_chunked_data-targets | ||
FILE ccpp_chunked_data-config.cmake | ||
DESTINATION lib/cmake | ||
) | ||
# Define where to install the C headers and Fortran modules | ||
#install(FILES ${HEADERS_C} DESTINATION include) | ||
install(FILES ${MODULES_F90} DESTINATION include) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# How to build the chunked data test | ||
|
||
1. Set compiler environment as appropriate for your system | ||
2. Run the following commands: | ||
``` | ||
cd test_prebuild/test_chunked_data/ | ||
rm -fr build | ||
mkdir build | ||
../../scripts/ccpp_prebuild.py --config=ccpp_prebuild_config.py --builddir=build | ||
cd build | ||
cmake .. 2>&1 | tee log.cmake | ||
make 2>&1 | tee log.make | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
#!/usr/bin/env python | ||
|
||
# CCPP prebuild config for GFDL Finite-Volume Cubed-Sphere Model (FV3) | ||
|
||
############################################################################### | ||
# Definitions # | ||
############################################################################### | ||
|
||
HOST_MODEL_IDENTIFIER = "FV3" | ||
|
||
# Add all files with metadata tables on the host model side and in CCPP, | ||
# relative to basedir = top-level directory of host model. This includes | ||
# kind and type definitions used in CCPP physics. Also add any internal | ||
# dependencies of these files to the list. | ||
VARIABLE_DEFINITION_FILES = [ | ||
# actual variable definition files | ||
'../../src/ccpp_types.F90', | ||
'data.F90', | ||
] | ||
|
||
TYPEDEFS_NEW_METADATA = { | ||
'ccpp_types' : { | ||
'ccpp_t' : 'cdata', | ||
'ccpp_types' : '', | ||
}, | ||
'data' : { | ||
'chunked_data_type' : 'chunked_data_instance', | ||
'data' : '', | ||
}, | ||
} | ||
|
||
# Add all physics scheme files relative to basedir | ||
SCHEME_FILES = [ | ||
'chunked_data_scheme.F90', | ||
] | ||
|
||
# Default build dir, relative to current working directory, | ||
# if not specified as command-line argument | ||
DEFAULT_BUILD_DIR = 'build' | ||
|
||
# Auto-generated makefile/cmakefile snippets that contain all type definitions | ||
TYPEDEFS_MAKEFILE = '{build_dir}/CCPP_TYPEDEFS.mk' | ||
TYPEDEFS_CMAKEFILE = '{build_dir}/CCPP_TYPEDEFS.cmake' | ||
TYPEDEFS_SOURCEFILE = '{build_dir}/CCPP_TYPEDEFS.sh' | ||
|
||
# Auto-generated makefile/cmakefile snippets that contain all schemes | ||
SCHEMES_MAKEFILE = '{build_dir}/CCPP_SCHEMES.mk' | ||
SCHEMES_CMAKEFILE = '{build_dir}/CCPP_SCHEMES.cmake' | ||
SCHEMES_SOURCEFILE = '{build_dir}/CCPP_SCHEMES.sh' | ||
|
||
# Auto-generated makefile/cmakefile snippets that contain all caps | ||
CAPS_MAKEFILE = '{build_dir}/CCPP_CAPS.mk' | ||
CAPS_CMAKEFILE = '{build_dir}/CCPP_CAPS.cmake' | ||
CAPS_SOURCEFILE = '{build_dir}/CCPP_CAPS.sh' | ||
|
||
# Directory where to put all auto-generated physics caps | ||
CAPS_DIR = '{build_dir}' | ||
|
||
# Directory where the suite definition files are stored | ||
SUITES_DIR = '.' | ||
|
||
# Optional arguments - only required for schemes that use | ||
# optional arguments. ccpp_prebuild.py will throw an exception | ||
# if it encounters a scheme subroutine with optional arguments | ||
# if no entry is made here. Possible values are: 'all', 'none', | ||
# or a list of standard_names: [ 'var1', 'var3' ]. | ||
OPTIONAL_ARGUMENTS = {} | ||
|
||
# Directory where to write static API to | ||
STATIC_API_DIR = '{build_dir}' | ||
STATIC_API_CMAKEFILE = '{build_dir}/CCPP_API.cmake' | ||
STATIC_API_SOURCEFILE = '{build_dir}/CCPP_API.sh' | ||
|
||
# Directory for writing HTML pages generated from metadata files | ||
METADATA_HTML_OUTPUT_DIR = '{build_dir}' | ||
|
||
# HTML document containing the model-defined CCPP variables | ||
HTML_VARTABLE_FILE = '{build_dir}/CCPP_VARIABLES_CHUNKED_DATA.html' | ||
|
||
# LaTeX document containing the provided vs requested CCPP variables | ||
LATEX_VARTABLE_FILE = '{build_dir}/CCPP_VARIABLES_CHUNKED_DATA.tex' |
Oops, something went wrong.