Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce UFS-Aerosols component #591

Merged
merged 93 commits into from
Jul 1, 2021
Merged
Show file tree
Hide file tree
Changes from 70 commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
b924f45
Add GOCART submodule for prognostic aerosols.
rmontuoro Apr 15, 2021
240bd25
Update build system to include the GOCART component.
rmontuoro Apr 15, 2021
a87bb49
Add modulefile including additional dependencies
rmontuoro Apr 15, 2021
afe202c
Merge branch 'develop' into feature/gocart
rmontuoro Apr 25, 2021
a4e60b7
Update NEMS submodule.
rmontuoro Apr 25, 2021
3c74d37
Properly add GOCART dependency to CMakeLists.txt.
rmontuoro Apr 25, 2021
a553906
Update FV3 submodule to point to forked repository.
rmontuoro Apr 26, 2021
cb0ec0b
Add default values for environment variables to build script.
rmontuoro Apr 28, 2021
b3a646d
Remove unnecessary module for aerosol component on Hera.
rmontuoro Apr 28, 2021
6354603
Merge branch 'develop' into feature/gocart
rmontuoro Apr 28, 2021
e434544
Update FV3 submodule.
rmontuoro May 1, 2021
c524f22
Update FV3 submodule.
rmontuoro May 1, 2021
5c19aac
Merge branch 'develop' into feature/gocart
rmontuoro May 2, 2021
52ee7ae
Update FV3 submodule.
rmontuoro May 3, 2021
c238543
Use proper CMake version when GOCART is enabled.
rmontuoro May 4, 2021
d6ca95d
Remove CMAKE_FLAGS settings for APP in build script.
rmontuoro May 4, 2021
fdd95d2
Merge branch 'develop' into feature/gocart
rmontuoro May 11, 2021
ffa23a4
Revert NEMS submodule to point to authoritative repository.
rmontuoro May 13, 2021
04876cd
Update FV3 submodule.
rmontuoro May 13, 2021
c4c946c
Merge branch 'develop' into feature/gocart
rmontuoro May 13, 2021
9dec5ae
Update FV3 submodule.
rmontuoro May 16, 2021
1f136f4
Update FV3 submodule.
rmontuoro May 21, 2021
7319476
Update MAPL to custom version 2.6.8-patch1 on Hera.
rmontuoro May 21, 2021
65eb15d
Update GOCART submodule.
rmontuoro May 21, 2021
9687696
Merge branch 'develop' into feature/gocart
rmontuoro May 21, 2021
15f09d4
Update CMake module to version 3.20.1 on Hera.
rmontuoro May 21, 2021
44d6867
Update NEMS submodule to point to forked repository,
rmontuoro May 21, 2021
063e53b
Update FV3 submodule.
rmontuoro May 21, 2021
bc2a7c1
Point CMEPS submodule to forked repository to add
rmontuoro May 21, 2021
4e2a7c6
Fix .gitmodules
rmontuoro May 21, 2021
ff7f2a7
Update FV3 submodule.
rmontuoro May 23, 2021
759c56e
Update FV3 submodule.
rmontuoro May 23, 2021
b378d88
Merge branch 'develop' into feature/gocart
rmontuoro May 23, 2021
839456f
Add fields required for GOCART coupling to fd_nems.yaml.
rmontuoro May 23, 2021
1dbca3f
Reset CMEPS submodule to point to authoritative repository.
rmontuoro May 23, 2021
f39298a
Update fd_nems.yaml to include ice fraction field
rmontuoro May 24, 2021
ccdb6bb
Update FV3 and GOCART submodules.
rmontuoro May 24, 2021
81d6e46
Add log file from regression tests on Orion.
rmontuoro May 24, 2021
d26c4b0
Add log file from regression tests on WCOSS Dell P3.
rmontuoro May 24, 2021
6114735
Add regression test log file for Hera/Intel platform.
rmontuoro May 24, 2021
1d09a64
Remove unnecessary changes in .gitmodules.
rmontuoro May 24, 2021
a913f37
Update FV3 submodule.
rmontuoro May 24, 2021
83a8c76
Ensure MPI compilers are used to build UFS-Aerosols.
rmontuoro May 27, 2021
676e0a4
Update MAPL to version 2.7.0 on Hera.
rmontuoro May 27, 2021
35d7f86
Remove GOCART dependency on ecBuild and ESMA_cmake.
rmontuoro May 27, 2021
4b95413
Update FV3 submodule.
rmontuoro May 27, 2021
d60dd6a
Update FV3 and GOCART submodules.
rmontuoro Jun 3, 2021
6c22a99
Merge branch 'develop' into feature/gocart
rmontuoro Jun 3, 2021
54d9ba0
Update FV3 submodule.
rmontuoro Jun 4, 2021
a3f15c4
Update build system and GOCART submodule to rename
rmontuoro Jun 4, 2021
fc2d746
Update GOCART submodule
rmontuoro Jun 4, 2021
c63d562
Update aerosols modulefile on Hera.
rmontuoro Jun 5, 2021
f557ebc
Update FV3 submodule.
rmontuoro Jun 13, 2021
e955d7d
Merge branch 'develop' into feature/gocart
rmontuoro Jun 13, 2021
e551ea2
Update MAPL to version 2.7.1 on Hera.
rmontuoro Jun 15, 2021
85219fb
Add regression test for global prognostic aerosols on Hera.
rmontuoro Jun 16, 2021
921054d
Update FV3 submodule.
rmontuoro Jun 16, 2021
06105ab
Merge branch 'develop' into feature/gocart
rmontuoro Jun 16, 2021
ecd48e2
Update path to aerosol regression test input data.
rmontuoro Jun 16, 2021
c9c9a45
Update FV3 submodule.
rmontuoro Jun 16, 2021
e071ddc
Merge branch 'develop' into feature/gocart
rmontuoro Jun 16, 2021
e4404cf
Clean up aerosol regression test config file.
rmontuoro Jun 16, 2021
53041b2
Remove unneeded INPUTDATA_ROOT_GOCART variable.
rmontuoro Jun 28, 2021
e9b7014
Add GOCART dependencies to UFS common modulefiles.
rmontuoro Jun 28, 2021
36f9e94
Add Intel MPI environment settings to circumvent
rmontuoro Jun 28, 2021
f1519bc
Extend regression testing for prognostic aerosols to all platforms.
rmontuoro Jun 28, 2021
1d22fdb
Merge 'develop' into feature/gocart
rmontuoro Jun 28, 2021
a244bf9
Remove references to aerosol-specific modulefile from R/T compile scr…
rmontuoro Jun 28, 2021
0fab7d8
Remove legacy NETCDF settings from build script.
rmontuoro Jun 28, 2021
8de4676
Remove additional aerosol modulefile.
rmontuoro Jun 28, 2021
7dac1bd
Use proper GOCART branch in .gitmodules
rmontuoro Jun 28, 2021
4b579ff
Disable GOCART regression testing on WCOSS Cray and Dell P3.
rmontuoro Jun 29, 2021
44b2020
Update date of R/T baseline.
rmontuoro Jun 29, 2021
2f3bd16
Revert "Update date of R/T baseline."
rmontuoro Jun 29, 2021
11b1ab3
Enable GOCART regression testing on Hera/Intel platform only.
rmontuoro Jun 29, 2021
0646128
Fix Python environment on Hera: use miniconda3 install in rt.sh, modu…
climbfuji Jun 29, 2021
e663a9f
RT JOBS PASSED: gaea.intel. Log file uploaded.
BrianCurtis-NOAA Jun 30, 2021
159d395
RT JOBS PASSED: cheyenne.intel. Log file uploaded.
BrianCurtis-NOAA Jun 30, 2021
1504101
RT JOBS PASSED: jet.intel. Log file uploaded.
BrianCurtis-NOAA Jun 30, 2021
2c96614
RT JOBS PASSED: orion.intel. Log file uploaded.
BrianCurtis-NOAA Jun 30, 2021
cd1963d
Update submodule pointer for fv3atm
climbfuji Jun 30, 2021
2642e60
Merge branch 'feature/gocart' of https://github.com/rmontuoro/ufs-wea…
climbfuji Jun 30, 2021
7d59f31
Update GOCART submodule to fix build issue with GNU 9.2.0.
rmontuoro Jun 30, 2021
4b1b979
Revert hpc-stack update on hera
climbfuji Jun 30, 2021
50f45ef
Update submodule pointer for fv3atm
climbfuji Jun 30, 2021
b091f22
Regression test logs for cheyenne.gnu and hera.gnu
climbfuji Jun 30, 2021
b5d56b2
Update submodule pointer for fv3atm
climbfuji Jun 30, 2021
a47e546
RT JOBS PASSED: cheyenne.gnu. Log file uploaded.
BrianCurtis-NOAA Jun 30, 2021
ea2c92d
Regression test log for wcoss_cray
climbfuji Jun 30, 2021
ed9bb35
Merge branch 'feature/gocart' of https://github.com/rmontuoro/ufs-wea…
climbfuji Jun 30, 2021
5c854bb
Regression test logs for hera.intel
climbfuji Jun 30, 2021
b06c715
Update FV3 submodule.
rmontuoro Jul 1, 2021
77a7ce3
Update NEMS submodule.
rmontuoro Jul 1, 2021
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
12 changes: 8 additions & 4 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
[submodule "FV3"]
path = FV3
url = https://github.com/NOAA-EMC/fv3atm
branch = develop
url = https://github.com/rmontuoro/fv3atm
branch = feature/gocart-integration
[submodule "NEMS"]
path = NEMS
url = https://github.com/NOAA-EMC/NEMS
branch = develop
url = https://github.com/rmontuoro/NEMS
branch = feature/ufs-gocart-integration
[submodule "WW3"]
path = WW3
url = https://github.com/NOAA-EMC/WW3
Expand Down 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 = feature/rmontuoro/ufs-integration
17 changes: 16 additions & 1 deletion 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 @@ -149,6 +151,13 @@ if(FV3)
add_subdirectory(FV3)
endif()

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

###############################################################################
### Wave components [WW3]
###############################################################################
Expand Down Expand Up @@ -227,6 +236,12 @@ 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 Down
1 change: 1 addition & 0 deletions GOCART
Submodule GOCART added at 87072f
2 changes: 1 addition & 1 deletion NEMS
1 change: 1 addition & 0 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ BUILD_DIR=${BUILD_DIR:-${UFS_MODEL_DIR}/build}
mkdir -p ${BUILD_DIR}

[[ -n "${CCPP_SUITES:-""}" ]] && CMAKE_FLAGS+=" -DCCPP_SUITES=${CCPP_SUITES}"
[[ -n "${MAPL_ROOT:-""}" ]] && CMAKE_FLAGS+=" -DCMAKE_MODULE_PATH=${MAPL_ROOT}/share/MAPL/cmake"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This location (${MAPL_ROOT}/share/MAPL/cmake) should be added to CMAKE_MODULE_PATH somewhere in some CMakeLists.txt in gocart code so that people can build the code without running this build script i.e. by just running cmake (and of course loading required modules where necessary).

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This would affect NASA's build process.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adding -DCMAKE_MODULE_PATH arguments to build.sh is not desirable.
One should be able to build without using build.sh with options that the model requires; e.g. APP, CCPP_SUITES.
Handling package dependencies should be done by the package providers.

See the comment below on why this is essentially is bugfix for MAPL.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This location (${MAPL_ROOT}/share/MAPL/cmake) should be added to CMAKE_MODULE_PATH somewhere in some CMakeLists.txt in gocart code so that people can build the code without running this build script i.e. by just running cmake (and of course loading required modules where necessary).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MAPL is installing the mapl-config.cmake in a non-standard path at:

<prefix>/share/MAPL/cmake

The standard paths that CMake will look for given PACKAGE_ROOT as prefix are:

<prefix>/(lib/<arch>|lib|share)/cmake/<name>*/          (U)
<prefix>/(lib/<arch>|lib|share)/<name>*/                (U)
<prefix>/(lib/<arch>|lib|share)/<name>*/(cmake|CMake)/  (U)

See:
https://cmake.org/cmake/help/v3.0/command/find_package.html


cd ${BUILD_DIR}
cmake ${UFS_MODEL_DIR} ${CMAKE_FLAGS}
Expand Down
8 changes: 8 additions & 0 deletions cmake/configure_apps.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -53,3 +53,11 @@ if(APP MATCHES "^(S2S|S2SW)$")
message("Configuring UFS app in S2S mode")
endif()
endif()

if(APP MATCHES "^(ATMAERO)$")
set(FMS ON CACHE BOOL "Enable FMS" FORCE)
set(FV3 ON CACHE BOOL "Enable FV3" FORCE)
set(STOCH_PHYS ON CACHE BOOL "Enable Stochastic Physics" FORCE)
set(UFS_GOCART ON CACHE BOOL "Enable GOCART" FORCE)
message("Configuring UFS app in Atmosphere with Aerosols mode")
endif()
5 changes: 5 additions & 0 deletions modulefiles/ufs_common
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,8 @@ module load sp/2.3.3
module load w3emc/2.7.3
module load w3nco/2.4.1
module load upp/10.0.8

module load gftl-shared/v1.3.0
module load yafyaml/v0.5.1
module load mapl/v2.7.3
module load intelpython/3.6.8
5 changes: 5 additions & 0 deletions modulefiles/ufs_common_debug
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,8 @@ module load sp/2.3.3
module load w3emc/2.7.3
module load w3nco/2.4.1
module load upp/10.0.8

module load gftl-shared/v1.3.0
module load yafyaml/v0.5.1
module load mapl/v2.7.3
module load intelpython/3.6.8
3 changes: 3 additions & 0 deletions modulefiles/ufs_hera.intel
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,6 @@ setenv CC mpiicc
setenv CXX mpiicpc
setenv FC mpiifort
setenv CMAKE_Platform hera.intel

# use shared memory and OpenFabrics Alliance (OFA) fabric with Intel MPI to circumvent RDMA-related bug in DAPL.
setenv I_MPI_FABRICS shm:ofa
3 changes: 3 additions & 0 deletions modulefiles/ufs_hera.intel_debug
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,6 @@ setenv CC mpiicc
setenv CXX mpiicpc
setenv FC mpiifort
setenv CMAKE_Platform hera.intel

# use shared memory and OpenFabrics Alliance (OFA) fabric with Intel MPI to circumvent RDMA-related bug in DAPL.
setenv I_MPI_FABRICS shm:ofa
23 changes: 10 additions & 13 deletions tests/compile.sh
Original file line number Diff line number Diff line change
Expand Up @@ -132,29 +132,26 @@ fi
set -ex

# Valid applications
if [[ "${MAKE_OPT}" == *"APP=ATM"* ]]; then
if [[ "${MAKE_OPT}" == *"APP=ATMAERO"* ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=ATMAERO"
unset PYTHONPATH
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the need to unset the PYTHONPATH here?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Python 3.x is required to build GOCART. On Hera, using intelpython/3.6.8 leads to the following error:

ImportError: Unable to import required dependencies:
numpy:

since the Python packages included in PYTHONPATH are not compatible with intelpython, which already includes the required dependencies.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Argh, would it be better - if possible - to fix intelpython/3.6.8 ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is python being used for in GOCART?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Python is required for automatic code generation, to create include files for the GOCART components and its subcomponents.

Why do we need to "fix" intelpython/3.6.8? It is a standard, self-contained Python installation.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hera support does not support the intelpython/3.6.8 module. It is just "there". They will say use /contrib/miniconda3/modulefiles
I agree it is ridiculous to provide a broken, half-baked software.

elif [[ "${MAKE_OPT}" == *"APP=ATMW"* ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=ATMW"
elif [[ "${MAKE_OPT}" == *"APP=ATM"* ]]; then
echo "MAKE_OPT = ${MAKE_OPT}"
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=ATM"
fi

if [[ "${MAKE_OPT}" == *"APP=ATMW"* ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=ATMW"
fi

if [[ "${MAKE_OPT}" == *"APP=S2S"* ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=S2S -DMOM6SOLO=ON"
fi

if [[ "${MAKE_OPT}" == *"APP=S2SW"* ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=S2SW -DMOM6SOLO=ON"
fi

if [[ "${MAKE_OPT}" == *"APP=NG-GODAS"* ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=NG-GODAS"
elif [[ "${MAKE_OPT}" == *"APP=S2S"* ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=S2S -DMOM6SOLO=ON"
fi

if [[ "${MAKE_OPT}" == *"APP=NG-GODAS-NEMSDATM"* ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=NG-GODAS-NEMSDATM"
elif [[ "${MAKE_OPT}" == *"APP=NG-GODAS"* ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=NG-GODAS"
fi

CMAKE_FLAGS=$(trim "${CMAKE_FLAGS}")
Expand Down
4 changes: 4 additions & 0 deletions tests/default_vars.sh
Original file line number Diff line number Diff line change
Expand Up @@ -514,6 +514,9 @@ export IMFDEEPCNV=2
export HWRF_SAMFDEEP=.F.
export RAS=.F.

# Aerosol convective scavenging
export FSCAV_AERO="'*:0.0'"

# SFC
export DO_MYJSFC=.F.
export DO_MYNNSFCLAY=.F.
Expand All @@ -533,6 +536,7 @@ export H2O_PHYS=.F.


export CPL=.F.
export CPLCHM=.F.
export CPLFLX=.F.
export CPLWAV=.F.
export CPLWAV2ATM=.F.
Expand Down
8 changes: 8 additions & 0 deletions tests/fv3_conf/control_run.IN
Original file line number Diff line number Diff line change
Expand Up @@ -142,3 +142,11 @@ if [ $IMP_PHYSICS = 8 ]; then
cp @[INPUTDATA_ROOT]/FV3_input_data_gsd/freezeH2O.dat .
cp @[INPUTDATA_ROOT]/FV3_input_data_gsd/CCN_ACTIVATE.BIN .
fi

#prognostic aerosols
if [ $CPLCHM = .T. ]; then
cp @[INPUTDATA_ROOT]/GOCART/diag_table .
cp @[INPUTDATA_ROOT]/GOCART/field_table .
cp @[INPUTDATA_ROOT]/GOCART/rc/* .
ln -sf @[INPUTDATA_ROOT]/GOCART/ExtData .
fi
4 changes: 3 additions & 1 deletion tests/parm/control.nml.IN
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ deflate_level=1
nwat = 6
na_init = @[NA_INIT]
d_ext = 0.
dnats = 1
dnats = @[DNATS]
fv_sg_adj = 450
d2_bg = 0.
nord = 2
Expand Down Expand Up @@ -169,6 +169,7 @@ deflate_level=1
psautco = 0.0008,0.0005
prautco = 0.00015,0.00015
lgfdlmprad = .true.
cplchm = @[CPLCHM]
cplwav = @[CPLWAV]
cplwav2atm = @[CPLWAV2ATM]
effr_in = .true.
Expand All @@ -180,6 +181,7 @@ deflate_level=1
do_skeb = @[DO_SKEB]
lndp_type = @[LNDP_TYPE]
n_var_lndp = @[N_VAR_LNDP]
fscav_aero = @[FSCAV_AERO]
/

&gfdl_cloud_microphysics_nml
Expand Down
16 changes: 16 additions & 0 deletions tests/parm/fd_nems.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -693,6 +693,22 @@
canonical_units: W m-2
- standard_name: land_mask
canonical_units: 1
- standard_name: inst_cloud_frac_levels
canonical_units: 1
- standard_name: inst_ice_nonconv_tendency_levels
canonical_units: kg m-2 s-1
- standard_name: inst_liq_nonconv_tendency_levels
canonical_units: kg m-2 s-1
- standard_name: inst_surface_soil_wetness
canonical_units: 1
- standard_name: lake_fraction
canonical_units: 1
- standard_name: ice_fraction_in_atm
canonical_units: 1
- standard_name: ocean_fraction
canonical_units: 1
- standard_name: surface_snow_area_fraction
canonical_units: 1
#
#-----------------------------------
# WW3 import
Expand Down
34 changes: 34 additions & 0 deletions tests/parm/nems.configure.atm_aerosols.IN
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#############################################
#### NEMS Run-Time Configuration File #####
#############################################

# EARTH #
EARTH_component_list: ATM CHM
EARTH_attributes::
Verbosity = 0
::

# ATM #
ATM_model: @[atm_model]
ATM_petlist_bounds: @[atm_petlist_bounds]
ATM_attributes::
Verbosity = 0
::

# CHM #
CHM_model: @[chm_model]
CHM_petlist_bounds: @[chm_petlist_bounds]
CHM_attributes::
Verbosity = 0
::

# Run Sequence #
runSeq::
@@[coupling_interval_sec]
ATM phase1
ATM -> CHM
CHM
CHM -> ATM
ATM phase2
@
::
7 changes: 7 additions & 0 deletions tests/rt.conf
Original file line number Diff line number Diff line change
Expand Up @@ -187,3 +187,10 @@ RUN | datm_cdeps_debug_cfsr

COMPILE | APP=ATMW SUITES=FV3_GFS_v16 | - wcoss_cray | fv3 |
RUN | control_atmwav | - wcoss_cray | fv3 |

###################################################################################################################################################################################
# ATM-GOCART tests #
###################################################################################################################################################################################

COMPILE | APP=ATMAERO SUITES=FV3_GFS_v16 | | fv3 |
RUN | control_atm_aerosols | | fv3 |
83 changes: 83 additions & 0 deletions tests/tests/control_atm_aerosols
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
###############################################################################
#
# global control test with prognostic aerosols: GFSv16 FV3-GOCART at C96L127
#
###############################################################################

export TEST_DESCR="Compare global results for prognostic aerosols with previous trunk version"

export CNTL_DIR=control_atm_aerosols

export LIST_FILES="sfcf000.nc \
sfcf024.nc \
atmf000.nc \
atmf024.nc \
GFSFLX.GrbF00 \
GFSFLX.GrbF24 \
GFSPRS.GrbF00 \
GFSPRS.GrbF24 \
gocart.inst_aod.20210322_0700z.nc4 \
gocart.inst_aod.20210323_0600z.nc4 \
gocart.tavg_cmass.20210322_0730z.nc4 \
gocart.tavg_cmass.20210323_0430z.nc4 \
RESTART/coupler.res \
RESTART/fv_core.res.nc \
RESTART/fv_core.res.tile1.nc \
RESTART/fv_core.res.tile2.nc \
RESTART/fv_core.res.tile3.nc \
RESTART/fv_core.res.tile4.nc \
RESTART/fv_core.res.tile5.nc \
RESTART/fv_core.res.tile6.nc \
RESTART/fv_srf_wnd.res.tile1.nc \
RESTART/fv_srf_wnd.res.tile2.nc \
RESTART/fv_srf_wnd.res.tile3.nc \
RESTART/fv_srf_wnd.res.tile4.nc \
RESTART/fv_srf_wnd.res.tile5.nc \
RESTART/fv_srf_wnd.res.tile6.nc \
RESTART/fv_tracer.res.tile1.nc \
RESTART/fv_tracer.res.tile2.nc \
RESTART/fv_tracer.res.tile3.nc \
RESTART/fv_tracer.res.tile4.nc \
RESTART/fv_tracer.res.tile5.nc \
RESTART/fv_tracer.res.tile6.nc \
RESTART/phy_data.tile1.nc \
RESTART/phy_data.tile2.nc \
RESTART/phy_data.tile3.nc \
RESTART/phy_data.tile4.nc \
RESTART/phy_data.tile5.nc \
RESTART/phy_data.tile6.nc \
RESTART/sfc_data.tile1.nc \
RESTART/sfc_data.tile2.nc \
RESTART/sfc_data.tile3.nc \
RESTART/sfc_data.tile4.nc \
RESTART/sfc_data.tile5.nc \
RESTART/sfc_data.tile6.nc"

export_fv3
export NPZ=127
export NPZP=128
export DT_ATMOS=720
export SYEAR=2021
export SMONTH=03
export SDAY=22
export SHOUR=06
export RESTART_INTERVAL=12
export OUTPUT_GRID='gaussian_grid'
export NSTF_NAME='2,0,0,0,0'
export WRITE_DOPOST=.true.
export IAER=5111
export FSCAV_AERO='"*:0.6", "seas1:1.0", "seas2:1.0", "seas3:1.0", "seas4:1.0", "seas5:1.0"'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rmontuoro I thought the test is going to use RAS scavenging from GOCART, I do not see RAS is specified, so we are using SAS scavenging for aerosol particles?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@junwang-noaa - The target physics suite for prognostic aerosols is FV3_GFS_v16, which includes SAS. This suite is used in the included regression test. I was not aware that RAS will be used with prognostic aerosols. However, we can update to RAS later on.

export DNATS=3

export CPL=.true.
export CPLCHM=.T.
export atm_model='fv3'
export atm_petlist_bounds="0 149"
export chm_model='gocart'
export chm_petlist_bounds="0 143"
export coupling_interval_sec=${DT_ATMOS}
export NEMS_CONFIGURE="nems.configure.atm_aerosols.IN"

export FV3_RUN=control_run.IN
export CCPP_SUITE=FV3_GFS_v16
export INPUT_NML=control.nml.IN