Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
154 commits
Select commit Hold shift + click to select a range
73666b7
Merge pull request #1 from NCAR/master
dustinswales Sep 19, 2019
7bf0bd4
Merge branch 'dtc/develop' of https://github.com/NCAR/gmtb-scm
dustinswales Dec 4, 2019
3d2b125
New branch. History corrupted at some point...
dustinswales Dec 4, 2019
3f0a1de
Seperated RRTMGP cloud-optics scheme into three new schemes, aerosol-…
dustinswales Dec 13, 2019
a10258f
Updated submodule
dustinswales Dec 13, 2019
6080b88
Add docker updates to Dockerfile and README.
michelleharrold Dec 23, 2019
112b496
Update run_gmtb_scm.py to test volume mount
michelleharrold Dec 26, 2019
db77999
Moved GFS_rrtmgp_lw_pre.F90 to rrtmgp_lw_pre.F90
dustinswales Dec 31, 2019
278ff1d
For Hera: put pandas matplotlib register line in a try block; switch …
grantfirl Jan 7, 2020
40c9410
Added by-band fluxes to output.
dustinswales Jan 14, 2020
8d7f62e
Merge pull request #156 from grantfirl/hera_plotting_fix
grantfirl Jan 23, 2020
a9b48ea
Updated Dockerfile and README.
michelleharrold Feb 4, 2020
68de3bc
Added run_gmtb_scm_docker.py to handle volume mount issue.
michelleharrold Feb 7, 2020
f17ccb2
Merge branch 'master' of https://github.com/michelleharrold/gmtb-scm-…
michelleharrold Feb 7, 2020
9a419f4
Update run_gmtb_scm.py to fix commented out section.
michelleharrold Feb 7, 2020
9fa2365
Update run_gmtb_scm.py
michelleharrold Feb 7, 2020
4f41aba
Merge branch 'master' of https://github.com/michelleharrold/gmtb-scm-…
michelleharrold Feb 7, 2020
f9a8305
Updated run_gmtb_scm_docker.py
michelleharrold Feb 7, 2020
e59014a
Testing link to /home.
michelleharrold Feb 7, 2020
016abe1
Changes to run_gmtb_scm_docker.py to get /home mount working.
michelleharrold Feb 8, 2020
c7c6a3e
Update Dockerfile with proper mounts from docker to local workspace.
michelleharrold Feb 8, 2020
0b1eb19
Updated Dockerfile and README with more up-to-date info.
michelleharrold Feb 10, 2020
5cb0942
Update to account for output_dir and exp_dir.
michelleharrold Feb 10, 2020
7bc2ac1
Restore run_gmtb_scm.py to original. Update README.
michelleharrold Feb 10, 2020
00d7b30
change python plotting script to have usetex=configurable value rathe…
grantfirl Feb 11, 2020
cdb49ee
Updated submodules
dustinswales Feb 11, 2020
2aacbeb
Updated .gitmodules
dustinswales Feb 11, 2020
8e093ec
Changes to ccpp prebuild script. Some rte-rrtmgp source files have ch…
dustinswales Feb 11, 2020
268437e
Updated Dockerfile and README with latest changes for mounts and LaTeK.
michelleharrold Feb 12, 2020
d3b9a52
Merge branch 'master' of https://github.com/NCAR/gmtb-scm into rrtmgp…
dustinswales Feb 12, 2020
4118459
Updated submodule.
dustinswales Feb 12, 2020
fa19ef7
Merge branch 'master' of https://github.com/NCAR/gmtb-scm
michelleharrold Feb 12, 2020
ae31741
Removed run_gmtb_scm_docker.py
michelleharrold Feb 12, 2020
2b40594
Mods to Dockerfile and README for common community container and plot…
michelleharrold Feb 12, 2020
ffd99ca
Changed run_gmtb_scm.py to be executable.
michelleharrold Feb 13, 2020
bc36a05
revert .gitmodules changes and update submodule pointers to point to …
grantfirl Feb 13, 2020
83a85e5
Merge pull request #1 from grantfirl/michelle-fork/master
michelleharrold Feb 14, 2020
c7b80c1
Merge pull request #161 from michelleharrold/master
grantfirl Feb 14, 2020
e860c96
Cleaned up a tad.
dustinswales Feb 14, 2020
11f44fb
update submodule pointers to point to release/public-v4 branches of c…
grantfirl Feb 27, 2020
3d23062
remove unsupported schemes and (old SAS deep and shallow) and FA MP; …
grantfirl Feb 27, 2020
cb67ac1
remove F-A section in GFS_typedefs.F90 to compile with release branch…
grantfirl Feb 27, 2020
6cb91cd
update supported SDFs to v4; remove unsupported suites from suites di…
grantfirl Feb 27, 2020
5e70f60
remove namelists from unsupported suites; remove unsupported suites f…
grantfirl Feb 27, 2020
35a3f41
update physics namelists for GFS_v15p2 and GFS_v16beta suites; add no…
grantfirl Feb 28, 2020
005349f
fixed erroneous SDFs for no_nsst suites with precribed surface
grantfirl Feb 28, 2020
fba562c
update Dockerfile to point to v4 release code and run ccpp prebuild t…
grantfirl Feb 29, 2020
dd8b6fa
add a docker option to the run scripts and remove one sed command fro…
grantfirl Mar 2, 2020
24ce351
Merge pull request #1 from grantfirl/changes_for_docker
grantfirl Mar 2, 2020
5a4a240
tell gmtb_scm_analysis.py to look in /home/ for output datasets and t…
grantfirl Mar 2, 2020
9be434f
update Cheyenne setup scripts to handle change in python is hanlded o…
Mar 2, 2020
f647f9c
update SCM Users Guide
grantfirl Mar 3, 2020
06df252
Merge pull request #162 from grantfirl/release/public-v4
grantfirl Mar 3, 2020
f44b7e4
update submodule pointer for ccpp/physics
grantfirl Mar 4, 2020
bb9108a
Merge branch 'release/public-v4' of https://github.com/NCAR/gmtb-scm …
grantfirl Mar 4, 2020
9faf285
update Hera and Cheyenne setup scripts to match UFS release versions
grantfirl Mar 4, 2020
f1d3978
remove setting NCEPLIBS environment variables in CMakeLists.txt (shou…
grantfirl Mar 5, 2020
2cd86f6
Disable dynamic build, change how NCEPLIBS environment variables are …
climbfuji Mar 5, 2020
c05f462
point to 1.0.0 of NCEPLIBS instead of beta
grantfirl Mar 5, 2020
0e209d8
update Users Guide to remove mention of dynamic build (and to no long…
grantfirl Mar 5, 2020
21721f3
Merge pull request #164 from grantfirl/release/public-v4
grantfirl Mar 5, 2020
8ecc9b7
Merge branch 'release/public-v4' of https://github.com/NCAR/gmtb-scm …
climbfuji Mar 5, 2020
ccd3174
Helper script to install NCEPLIBS required for SCM
climbfuji Mar 5, 2020
4e11596
Merge pull request #163 from climbfuji/disable_dynamic_build_nceplibs…
grantfirl Mar 6, 2020
c9ec062
move docker machine setup stuff to CENTOS_docker_setup.sh; install NC…
grantfirl Mar 6, 2020
e3dc5dc
remove extra characters in CENTOS_docker_setup
grantfirl Mar 6, 2020
6eb69d0
update dockerfile and docker machine setup script for new cmake and N…
grantfirl Mar 6, 2020
c0459c2
clean up cmake src after building in Dockerfile
grantfirl Mar 7, 2020
602c94d
point Dockerfile to right repo; update Users Guide for NCEPLIBS insta…
grantfirl Mar 7, 2020
8d1b6d7
more updates to User's Guide for Docker; removed Docker readme since …
grantfirl Mar 7, 2020
28f5a71
Merge pull request #165 from grantfirl/release/public-v4
grantfirl Mar 7, 2020
0ddd453
Various updates to the TechGuide. Removed mention of GMTB from acknow…
ligiabernardet Mar 9, 2020
b6a80a9
remove cmake installation since base image now has cmake that is new …
grantfirl Mar 9, 2020
39f9f4d
Merge pull request #167 from grantfirl/release/public-v4
grantfirl Mar 9, 2020
286987f
change generic machine setup scripts to check for environment variabl…
grantfirl Mar 9, 2020
7dd0d10
Merge pull request #166 from ligiabernardet/doc_updates
grantfirl Mar 9, 2020
8c33207
Merge branch 'release/public-v4' of https://github.com/NCAR/gmtb-scm …
grantfirl Mar 9, 2020
f5df10d
update bash syntax for generic machine setup scripts; remove exit sta…
grantfirl Mar 9, 2020
17cbe00
Update of macOS configuration to work with UFS build instructions
climbfuji Mar 9, 2020
2a9922c
fix some links that had been pointing to v3.0 docs; have users check …
grantfirl Mar 9, 2020
d05cf65
Merge pull request #2 from climbfuji/macos_setup_update_for_ufs
grantfirl Mar 9, 2020
9395fff
Merge pull request #168 from grantfirl/release/public-v4
grantfirl Mar 9, 2020
a5a7b60
Clean up installation instructions for supported and preconfigured pl…
climbfuji Mar 9, 2020
b26d4ae
Add download script and instructions for Thompson tables
climbfuji Mar 10, 2020
88de7db
get gridcell center longitude/latitude from supergrid tile files inst…
grantfirl Mar 10, 2020
6d8068c
Merge branch 'release/public-v4' of https://github.com/grantfirl/gmtb…
grantfirl Mar 10, 2020
e4c5fbd
Merge branch 'release/public-v4' of https://github.com/NCAR/gmtb-scm …
grantfirl Mar 10, 2020
1fdbf98
update Users Guide for Docker and UFS ICs
grantfirl Mar 10, 2020
3b1c0d9
Update TechDoc
climbfuji Mar 10, 2020
7f03220
Allow user to install NCEPLIBS into existing directory, but ask
climbfuji Mar 10, 2020
350b81d
add support for UFS ICs generated from GRIB2
grantfirl Mar 10, 2020
2394af0
update Users Guide to reflect that the UFS_IC_generator.py script can…
grantfirl Mar 10, 2020
d26ddcc
Don't use NCEPLIBS-external at all, overkill and issues with RPATH on…
climbfuji Mar 10, 2020
ae5f0c2
add Shapely source to install locally if unavailable on a given machine
grantfirl Mar 10, 2020
d1f72fb
Use correct suffices in CCPP prebuild config
climbfuji Mar 10, 2020
5516f32
update User's Guide for installing Shapely
grantfirl Mar 10, 2020
1ed31db
Final notes for macOS rpath
climbfuji Mar 10, 2020
aa98d1c
Remove file scm/doc/TechGuide/chap_quick.tex.dom
climbfuji Mar 10, 2020
dd34816
Merge pull request #169 from climbfuji/cleanup_setup_v4
grantfirl Mar 10, 2020
f34154c
Merge branch 'release/public-v4' of https://github.com/NCAR/gmtb-scm …
grantfirl Mar 10, 2020
72e41de
change new flag in UFS_IC_generator.py to --old_chgres and flip the d…
grantfirl Mar 10, 2020
4fea75f
update repo chapter of user's guide
grantfirl Mar 11, 2020
adb3cd2
remove Shapely source code in favor of installing it using pip on Her…
grantfirl Mar 11, 2020
21b7ac2
Merge pull request #170 from grantfirl/release/public-v4
grantfirl Mar 11, 2020
ed83aa4
update Dockerfile to checkout v4.0.0beta02 for testing
grantfirl Mar 11, 2020
9c64674
Explain that Noah-MP is not not supported. Correct reference to UFS M…
ligiabernardet Mar 12, 2020
68b00a1
Fixed broken link.
ligiabernardet Mar 12, 2020
801ad8c
Merge pull request #171 from ligiabernardet/doc_updates
grantfirl Mar 12, 2020
0df57ed
remove NoahMP stuff in section 5.5
grantfirl Mar 12, 2020
d34ad5e
Merge branch 'release/public-v4' of https://github.com/NCAR/gmtb-scm …
grantfirl Mar 12, 2020
7e83e28
Merge pull request #172 from grantfirl/release/public-v4
grantfirl Mar 12, 2020
c2a4c91
add Dockerhub instructions content to Users Guide
grantfirl Mar 12, 2020
46cd939
Doc: minor fixes
ligiabernardet Mar 12, 2020
8b75a66
update machine setup scripts to remove need for f90nml source; rearra…
grantfirl Mar 12, 2020
5d3a2fc
fix copy/paste error on Cheyenne_setup_gnu.sh for loading NCEPLIBS
grantfirl Mar 13, 2020
082be15
trying again with Cheyenne setup scripts (removed -a option in module…
grantfirl Mar 13, 2020
526c350
trying bash scripts for Cheyenne
grantfirl Mar 13, 2020
d35d288
remove f90nml source from scm/etc/scripts
grantfirl Mar 13, 2020
f5628e8
update the User's Guide with correct commands for using Dockerhub image
grantfirl Mar 13, 2020
5cd11ea
Merge pull request #174 from ligiabernardet/doc_updates
grantfirl Mar 13, 2020
18b53d9
Merge branch 'release/public-v4' of https://github.com/NCAR/gmtb-scm …
grantfirl Mar 13, 2020
5ca7596
Merge branch 'release/public-v4' into remove_f90nml_source
grantfirl Mar 13, 2020
4a9143d
Merge pull request #173 from grantfirl/release/public-v4
grantfirl Mar 13, 2020
66f776a
Merge branch 'release/public-v4' into remove_f90nml_source
grantfirl Mar 13, 2020
1c60c99
Merge pull request #175 from grantfirl/remove_f90nml_source
grantfirl Mar 13, 2020
02567bc
remove beta from Dockerfile
grantfirl Mar 13, 2020
49ff9fd
point Thompson table script to v4.0.0 release data
grantfirl Mar 13, 2020
5906ce6
manual update of dtc/develop from release/public-v4 branch; reinstate…
grantfirl Mar 17, 2020
0317dfe
update SCM code to work with latest dtc/develop branches of ccpp-phys…
grantfirl Mar 18, 2020
f8c7253
Merge branch 'dtc/develop-release-merge' into grant-rrtmgp
grantfirl Mar 20, 2020
1fe7d91
update SCM code to work with RRTMGP (starting from dustinswales fork,…
grantfirl Mar 21, 2020
f49d5c4
remove some of dustinswales testing files: twpice_[ice,liq]cloud.nc, …
grantfirl Mar 21, 2020
8845438
Merge pull request #176 from grantfirl/dtc/develop-release-merge
grantfirl Mar 21, 2020
58029ba
Merge branch 'dtc/develop' into grant-rrtmgp
grantfirl Mar 21, 2020
d657b6c
update ccpp_prebuild_config.py in accordance with FV3 version; update…
grantfirl Mar 25, 2020
2824804
Update submodule pointers for ccpp-framework and ccpp-physics
climbfuji Mar 26, 2020
c09db8d
Change logic on how/where kind and type definitions are compiled
climbfuji Mar 26, 2020
f40c9f1
Merge pull request #3 from climbfuji/grant-rrtmgp_dom-mods
grantfirl Mar 26, 2020
dad40fe
Merge pull request #177 from grantfirl/grant-rrtmgp
grantfirl Mar 26, 2020
bdc0610
Update .gitmodules for code review and testing, update submodule poin…
climbfuji Apr 3, 2020
81fda7c
ccpp/config/ccpp_prebuild_config.py, scm/src/GFS_typedefs.meta: updat…
climbfuji Apr 3, 2020
b3df449
scm/src/run_gmtb_scm.py, scm/src/multi_run_gmtb_scm.py: Python 3 comp…
climbfuji Apr 3, 2020
4a7b400
scm/src/multi_run_gmtb_scm.py: imp.load_source and importlib.machiner…
climbfuji Apr 3, 2020
4c24707
Revert change to .gitmodules, update submodule pointer for ccpp-physics
climbfuji Apr 3, 2020
dd5a5ef
Merge pull request #179 from climbfuji/python3_cleanup_radiation_tend…
climbfuji Apr 3, 2020
f9fad84
Update scm/src/GFS_typedefs.* with MG-CCN-IN changes, make it as cons…
climbfuji Apr 13, 2020
bbc46f5
Update .gitmodules and submodule pointer for ccpp-physics for code re…
climbfuji Apr 13, 2020
205adeb
Revert change to .gitmodules and update submodule pointer for ccpp-ph…
climbfuji Apr 14, 2020
35a49b9
Revert unnecessary/bad changes to scm/src/GFS_typedefs.F90
climbfuji Apr 15, 2020
0ef3db5
Update submodule pointer for ccpp/framework
climbfuji Apr 15, 2020
cef6280
set Model%iaerclm from the default value/namelist and make fn_nml 64 …
grantfirl Apr 15, 2020
806f5a8
Merge pull request #1 from grantfirl/ccn_in_updates
climbfuji Apr 15, 2020
02f7afd
Merge pull request #180 from climbfuji/ccn_in_updates
grantfirl Apr 15, 2020
a1e5022
update GFS_typedefs to work with master branch of ccpp-physics, remov…
grantfirl May 4, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ scm/bin/*
non-tracked_files/
scm/data/physics_input_data/qr_acr*.dat
scm/data/physics_input_data/freezeH2O.dat
scm/data/physics_input_data/CCN_ACTIVATE.BIN
4 changes: 2 additions & 2 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
[submodule "ccpp-framework"]
path = ccpp/framework
url = https://github.com/NCAR/ccpp-framework
branch = master
branch = dtc/develop
[submodule "ccpp-physics"]
path = ccpp/physics
url = https://github.com/NCAR/ccpp-physics
branch = master
branch = dtc/develop
96 changes: 1 addition & 95 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,97 +1,3 @@
# User's Guide

A more complete User's Guide can be found at https://dtcenter.org/GMTB/v3.0/scm-ccpp-guide-v3.pdf. If the instructions in this README and the more complete User's Guide differ, the linked guide should be more up-to-date and accurate.

This guide provides instructions for obtaining, compiling and running a simple
case for the GMTB single column model (SCM). The SCM code calls CCPP-compliant
physics schemes through the CCPP infrastructure code. As such, it requires the
CCPP infrastructure code and physics code, both of which are included as git
submodules within the SCM code. This package can be considered a simple example
for an atmospheric model to interact with physics through the CCPP.

## Prerequisite
There are several utility libraries as part of the NCEPlibs package that must be installed prior to building the SCM.
* bacio - Binary I/O Library
* sp - Spectral Transformation Library
* w3nco - GRIB decoder and encoder library

These libraries are prebuilt on most NOAA machines using the Intel compiler. For those needing to build the libraries themselves, GMTB recommends using the source code from GitHub at https://github.com/NCAR/NCEPlibs.git, which includes build files for various compilers and machines using OpenMP flags and which are threadsafe. Instructions for installing NCEPlibs are included on the GitHub repository webpage, but for the sake of example, execute the following for obtaining and building from source in /usr/local/NCEPlibs on a Mac:
1. `cd /usr/local/src`
2. `git clone https://github.com/NCAR/NCEPlibs.git`
3. `cd NCEPlibs`
4. `./make_ncep_libs.sh -s macosx -c gnu -d /usr/local/NCEPlibs -o 1 -m 0`

Note that the option `-m 0` can be used if MPI is not installed on the machine that is being used. The nemsio library will not be installed, however, since it requires MPI. Once NCEPlibs is built, the NCEPLIBS_DIR environment variable must be set to the location of the installation. For example, if NCEPlibs was installed in /usr/local/NCEPlibs, one would execute

`export NCEPLIBS_DIR=/usr/local/NCEPlibs`

If using Theia or Cheyenne HPC systems, this environment variable is automatically set to an appropriate installation of NCEPlibs on those machines through use of one of the setup scripts described below.

## Obtaining Code

For obtaining the last stable release, execute the following:

1. Clone the source using:
* `git clone --recursive -b v3.0 https://github.com/NCAR/gmtb-scm`
2. Change directory into the project.
* `cd gmtb-scm`

For working with the development branches, after executing the steps above, check out the master branches of the repository (and submodules):

1. `git checkout master`
2. `cd ccpp/physics`
3. `git checkout master`
4. `cd ../framework`
5. `git checkout master`
6. `cd ../..`

## Building and Compiling the SCM with CCPP
1. Run the CCPP prebuild script to match required physics variables with those
available from the dycore (SCM) and to generate physics caps and makefile
segments.
* `./ccpp/framework/scripts/ccpp_prebuild.py --config=./ccpp/config/ccpp_prebuild_config.py`
Note: add `--debug` to see the full output of the script.
2. Change directory to the top-level SCM directory.
* `cd scm`
3. [Optional] Run the machine setup script if necessary. This script loads
compiler modules (Fortran 2003-compliant), netCDF module, etc. and sets
compiler environment variables.
* `source etc/Theia_setup_gnu.csh` (for csh) or `. etc/Theia_setup_gnu.sh` (for bash)
* `source etc/Theia_setup_intel.csh` (for csh) or `. etc/Theia_setup_intel.sh` (for bash)
* `source etc/Theia_setup_pgi.csh` (for csh) or `. etc/Theia_setup_pgi.sh` (for bash)
* `source etc/Cheyenne_setup_gnu.csh` (for csh) or `. etc/Cheyenne_setup_gnu.sh` (for bash)
* `source etc/Cheyenne_setup_intel.csh` (for csh) or `. etc/Cheyenne_setup_intel.sh` (for bash)
* `source etc/Cheyenne_setup_pgi.csh` (for csh) or `. etc/Cheyenne_setup_pgi.sh` (for bash)
* `source etc/UBUNTU_setup.csh` (for csh) or `. etc/UBUNTU_setup.sh` (for bash) if following the instructions in doc/README_UBUNTU.txt
* `source etc/CENTOS_setup.csh` (for csh) or `. etc/CENTOS_setup.sh` (for bash) if following the instructions in doc/README_CENTOS.txt
* `source etc/MACOSX_setup.csh` (for csh) or `. etc/MACOSX_setup.sh` (for bash) if following the instructions in doc/README_MACOSX.txt
* NOTE: The NETCDF environment variable must be set to the path of the netCDF installation that was compiled with the same compiler used in the following steps.
4. Make a build directory and change into it.
* `mkdir bin && cd bin`
5. Invoke cmake on the source code to build.
* `cmake ../src` (without threading/OpenMP)
* `cmake -DOPENMP=1 ../src` (with threading/OpenMP)
* `cmake -DCMAKE_BUILD_TYPE=Debug ../src` (debug mode)
6. Compile. Add `VERBOSE=1` to obtain more information on the build process.
* `make`

## Running the SCM with CCPP
1. Run the SCM with a supplied case. The SCM will go through the time
steps, applying forcing and calling the physics defined in the suite definition
file.
* `.run_gmtb_scm.py -c CASE_NAME [-s SUITE_NAME] [-n PHYSICS_NAMELIST_PATH] [-g]`
* When invoking the run script, the only required argument is the name of the case to run. The case name used must match one of the case configuration files located in ../etc/case_config (without the .nml extension!). If specifying a suite other than the default, the suite name used must match the value of the suite name in one of the suite definition files located in ../../ccpp/suites, (e.g. `SCM_GFS_v15`). If specifying a namelist other than the default, the value must be an entire filename that exists in ../../ccpp/physics_namelists. The -g flag can be used to run the executable through the gdb debugger (assuming it is installed on the system).
2. A netcdf output file is generated in the location specified in the case
configuration file (is present), or in an output directory created by default in `bin` with the case name and suite name appended.

## Running the SCM with FV3GFS initial conditions
model initial conditions are needed to initialize the land surface in order to run with an interactive land model
1. Prepare model initial conditions.
* `cd to scm/etc/scripts/`
modify path to files you can read in extract_FV3GFS_column_ic.py, this is set up for C96
2. run extract_FV3GFS_column_ic.py, it will create fv3_model_point.nc in ../../data/processed_case_input/
* `./extract_FV3GFS_column_ic.py`
3. cd to bin directory
* `cd ../../bin/`
4. Run the SCM with the fv3_model_point case and C96 namelist
* `./run_gmtb_scm.py -c fv3_model_point -n input_GFS_v15_C96.nml`
Please find the up-to-date User's Guide located in this repository in gmtb-scm/scm/doc/TechGuide/main.pdf
130 changes: 121 additions & 9 deletions ccpp/config/ccpp_prebuild_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,22 @@

HOST_MODEL_IDENTIFIER = "SCM"

# Add all files with metadata tables on the host model side,
# relative to basedir = top-level directory of host model
# 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.
VARIABLE_DEFINITION_FILES = [
'ccpp/physics/physics/machine.F',
'ccpp/physics/physics/radsw_param.f',
'ccpp/physics/physics/radlw_param.f',
'scm/src/GFS_typedefs.F90',
'scm/src/gmtb_scm_type_defs.f90',
'scm/src/gmtb_scm_physical_constants.f90'
'scm/src/gmtb_scm_kinds.F90',
'scm/src/gmtb_scm_type_defs.F90',
'scm/src/gmtb_scm_physical_constants.F90',
'ccpp/physics/physics/rte-rrtmgp/rrtmgp/mo_gas_optics_rrtmgp.F90',
'ccpp/physics/physics/rte-rrtmgp/rrtmgp/mo_gas_concentrations.F90',
'ccpp/physics/physics/rte-rrtmgp/rte/mo_optical_props.F90',
'ccpp/physics/physics/rte-rrtmgp/extensions/cloud_optics/mo_cloud_optics.F90',
'ccpp/physics/physics/rte-rrtmgp/rte/mo_source_functions.F90'
]

TYPEDEFS_NEW_METADATA = {
Expand Down Expand Up @@ -55,6 +62,27 @@
'gmtb_scm_type_defs' : '',
'physics_type' : 'physics',
},
'mo_gas_concentrations' : {
'ty_gas_concs' : '',
'mo_gas_concentrations' : '',
},
'mo_gas_optics_rrtmgp' : {
'ty_gas_optics_rrtmgp' : '',
'mo_gas_optics_rrtmgp' : '',
},
'mo_optical_props' : {
'ty_optical_props_1scl' : '',
'ty_optical_props_2str' : '',
'mo_optical_props' : '',
},
'mo_cloud_optics' : {
'ty_cloud_optics' : '',
'mo_cloud_optics' : '',
},
'mo_source_functions' : {
'ty_source_func_lw' : '',
'mo_source_functions' : '',
},
}

# Add all physics scheme dependencies relative to basedir - note that the CCPP
Expand Down Expand Up @@ -142,10 +170,38 @@
'ccpp/physics/physics/namelist_soilveg_ruc.F90',
'ccpp/physics/physics/set_soilveg_ruc.F90',
'ccpp/physics/physics/module_soil_pre.F90',
# RRTMGP
'ccpp/physics/physics/rte-rrtmgp/rrtmgp/mo_gas_concentrations.F90',
'ccpp/physics/physics/rte-rrtmgp/rrtmgp/mo_gas_optics.F90',
'ccpp/physics/physics/rte-rrtmgp/rrtmgp/mo_gas_optics_rrtmgp.F90',
'ccpp/physics/physics/rte-rrtmgp/rrtmgp/mo_rrtmgp_constants.F90',
'ccpp/physics/physics/rte-rrtmgp/rrtmgp/mo_rrtmgp_util_reorder.F90',
'ccpp/physics/physics/rte-rrtmgp/rrtmgp/mo_rrtmgp_util_string.F90',
'ccpp/physics/physics/rte-rrtmgp/rrtmgp/kernels/mo_gas_optics_kernels.F90',
'ccpp/physics/physics/rte-rrtmgp/rrtmgp/kernels/mo_rrtmgp_util_reorder_kernels.F90',
'ccpp/physics/physics/rte-rrtmgp/rte/mo_fluxes.F90',
'ccpp/physics/physics/rte-rrtmgp/rte/mo_rte_util_array.F90',
'ccpp/physics/physics/rte-rrtmgp/rte/mo_optical_props.F90',
'ccpp/physics/physics/rte-rrtmgp/rte/mo_rte_kind.F90',
'ccpp/physics/physics/rte-rrtmgp/rte/mo_rte_lw.F90',
'ccpp/physics/physics/rte-rrtmgp/rte/mo_rte_sw.F90',
'ccpp/physics/physics/rte-rrtmgp/rte/mo_source_functions.F90',
'ccpp/physics/physics/rte-rrtmgp/rte/kernels/mo_fluxes_broadband_kernels.F90',
'ccpp/physics/physics/rte-rrtmgp/rte/kernels/mo_optical_props_kernels.F90',
'ccpp/physics/physics/rte-rrtmgp/rte/kernels/mo_rte_solver_kernels.F90',
'ccpp/physics/physics/rte-rrtmgp/extensions/mo_compute_bc.F90',
'ccpp/physics/physics/rte-rrtmgp/extensions/mo_fluxes_byband.F90',
'ccpp/physics/physics/rte-rrtmgp/extensions/mo_fluxes_byband_kernels.F90',
'ccpp/physics/physics/rte-rrtmgp/extensions/mo_fluxes_bygpoint.F90',
'ccpp/physics/physics/rte-rrtmgp/extensions/mo_heating_rates.F90',
'ccpp/physics/physics/rte-rrtmgp/extensions/mo_rrtmgp_clr_all_sky.F90',
'ccpp/physics/physics/rte-rrtmgp/extensions/cloud_optics/mo_cloud_optics.F90',
'ccpp/physics/physics/rte-rrtmgp/extensions/cloud_optics/mo_cloud_sampling.F90',
# derived data type definitions
'scm/src/GFS_typedefs.F90',
'scm/src/gmtb_scm_kinds.f90',
'scm/src/gmtb_scm_type_defs.f90',
'scm/src/gmtb_scm_kinds.F90',
'scm/src/gmtb_scm_physical_constants.F90',
'scm/src/gmtb_scm_type_defs.F90',
]

# Add all physics scheme files relative to basedir
Expand Down Expand Up @@ -233,12 +289,37 @@
'ccpp/physics/physics/sfc_sice.f' : ['physics'],
'ccpp/physics/physics/mp_fer_hires.F90' : ['physics'],
'ccpp/physics/physics/gmtb_scm_sfc_flux_spec.F90' : ['physics'],
# RRTMGP
'ccpp/physics/physics/rrtmg_lw_cloud_optics.F90' : ['physics'],
'ccpp/physics/physics/rrtmg_sw_cloud_optics.F90' : ['physics'],
'ccpp/physics/physics/rrtmgp_aux.F90' : ['physics'],
'ccpp/physics/physics/rrtmgp_lw_gas_optics.F90' : ['physics'],
'ccpp/physics/physics/rrtmgp_lw_cloud_optics.F90' : ['physics'],
'ccpp/physics/physics/rrtmgp_sw_gas_optics.F90' : ['physics'],
'ccpp/physics/physics/rrtmgp_sw_cloud_optics.F90' : ['physics'],
'ccpp/physics/physics/rrtmgp_sw_aerosol_optics.F90' : ['physics'],
'ccpp/physics/physics/rrtmgp_lw_rte.F90' : ['physics'],
'ccpp/physics/physics/rrtmgp_lw_cloud_sampling.F90' : ['physics'],
'ccpp/physics/physics/rrtmgp_sw_rte.F90' : ['physics'],
'ccpp/physics/physics/rrtmgp_sw_cloud_sampling.F90' : ['physics'],
'ccpp/physics/physics/rrtmgp_lw_aerosol_optics.F90' : ['physics'],
'ccpp/physics/physics/GFS_rrtmgp_setup.F90' : ['physics'],
'ccpp/physics/physics/GFS_rrtmgp_pre.F90' : ['physics'],
'ccpp/physics/physics/rrtmgp_lw_pre.F90' : ['physics'],
'ccpp/physics/physics/GFS_rrtmgp_sw_pre.F90' : ['physics'],
'ccpp/physics/physics/GFS_rrtmgp_lw_post.F90' : ['physics'],
'ccpp/physics/physics/GFS_rrtmgp_sw_post.F90' : ['physics'],
}

# Default build dir, relative to current working directory,
# if not specified as command-line argument
DEFAULT_BUILD_DIR = 'scm/bin'

# Auto-generated makefile/cmakefile snippets that contain all type definitions
TYPEDEFS_MAKEFILE = 'ccpp/physics/CCPP_TYPEDEFS.mk'
TYPEDEFS_CMAKEFILE = 'ccpp/physics/CCPP_TYPEDEFS.cmake'
TYPEDEFS_SOURCEFILE = 'ccpp/physics/CCPP_TYPEDEFS.sh'

# Auto-generated makefile/cmakefile snippets that contain all schemes
SCHEMES_MAKEFILE = 'ccpp/physics/CCPP_SCHEMES.mk'
SCHEMES_CMAKEFILE = 'ccpp/physics/CCPP_SCHEMES.cmake'
Expand All @@ -247,7 +328,7 @@
# CCPP host cap in which to insert the ccpp_field_add statements;
# determines the directory to place ccpp_{modules,fields}.inc
TARGET_FILES = [
'scm/src/gmtb_scm.f90',
'scm/src/gmtb_scm.F90',
]

# Auto-generated makefile/cmakefile snippets that contain all caps
Expand All @@ -269,7 +350,7 @@
OPTIONAL_ARGUMENTS = {
'rrtmg_sw' : {
'rrtmg_sw_run' : [
'tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky_on_radiation_time_step',
'tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky_on_radiation_time_step_and_radiation_levels',
'components_of_surface_downward_shortwave_fluxes',
'cloud_liquid_water_path',
'mean_effective_radius_for_liquid_cloud',
Expand All @@ -283,7 +364,7 @@
},
'rrtmg_lw' : {
'rrtmg_lw_run' : [
'tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky_on_radiation_time_step',
'tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky_on_radiation_time_step_and_radiation_levels',
'cloud_liquid_water_path',
'mean_effective_radius_for_liquid_cloud',
'cloud_ice_water_path',
Expand Down Expand Up @@ -328,6 +409,37 @@
'rime_factor',
],
},
'rrtmgp_sw_rte' : {
'rrtmgp_sw_rte_run' : [
'components_of_surface_downward_shortwave_fluxes',
'sw_fluxes_sfc',
'sw_fluxes_toa',
],
},
'GFS_rrtmgp_sw_post' : {
'GFS_rrtmgp_sw_post_run' : [
'components_of_surface_downward_shortwave_fluxes',
'sw_fluxes_sfc',
'sw_fluxes_toa',
],
},
'rrtmgp_lw_rte' : {
'rrtmgp_lw_rte_run' : [
'lw_fluxes_sfc',
'lw_fluxes_toa',
],
},
'GFS_rrtmgp_lw_post' : {
'GFS_rrtmgp_lw_post_run' : [
'lw_fluxes_sfc',
'lw_fluxes_toa',
],
},
'GFS_rrtmgp_post' : {
'GFS_rrtmgp_post_run' : [
'components_of_surface_downward_shortwave_fluxes',
],
},
#'subroutine_name_1' : 'all',
#'subroutine_name_2' : 'none',
#'subroutine_name_2' : [ 'var1', 'var3'],
Expand Down
2 changes: 1 addition & 1 deletion ccpp/physics
Submodule physics updated 130 files
35 changes: 5 additions & 30 deletions ccpp/physics_namelists/input_GFS_v15p2.nml
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
&gfs_physics_nml
fhzero = 6.
h2o_phys = .true.
ldiag3d = .true.
ldiag_ugwp = .false.
do_ugwp = .false.
do_tofd = .false.
fhcyc = 24.
nst_anl = .true.
use_ufo = .true.
pre_rad = .false.
ncld = 5
Expand All @@ -15,7 +12,7 @@
fhlwr = 3600.
ialb = 1
iems = 1
IAER = 111
iaer = 111
ico2 = 2
isubc_sw = 2
isubc_lw = 2
Expand All @@ -28,14 +25,6 @@
redrag = .true.
dspheat = .true.
hybedmf = .true.
satmedmf = .false.
do_myjsfc = .false.
do_myjpbl = .false.
shinhong = .false.
do_ysu = .false.
lheatstrg = .false.
lgfdlmprad = .true.
effr_in = .true.
random_clds = .false.
trans_trac = .true.
cnvcld = .true.
Expand All @@ -45,29 +34,15 @@
prslrd0 = 0.
ivegsrc = 1
isot = 1
lsm = 1
iopt_dveg = 2
iopt_crs = 1
iopt_btr = 1
iopt_run = 1
iopt_sfc = 1
iopt_frz = 1
iopt_inf = 1
iopt_rad = 1
iopt_alb = 2
iopt_snf = 4
iopt_tbot = 2
iopt_stc = 1
debug = .false.
oz_phys = .false.
oz_phys_2015 = .true.
h2o_phys = .true.
nstf_name = 2,1,0,0,0
nst_anl = .true.
psautco = 0.0008,0.0005
prautco = 0.00015,0.00015
xkzminv = 0.3
xkzm_m = 1.0
xkzm_h = 1.0
lgfdlmprad = .true.
effr_in = .true.
do_sppt = .false.
do_shum = .false.
do_skeb = .false.
Expand Down
Loading