Updates for ccpp-capgen v1 - #1221
Conversation
* Add ability to build with ip if it is found. sp is being replaced by ip so this is needed. Note that in spack-stack 1.9.3 the ip package builds with the OpenMP flag, so CMAKE_Fortran_FLAGS_OPENMP_OFF needs to be set by the host model. The RRTMGP files currently break if compiled with OpenMP flags. * only have DTC/SCM people in the CODEOWNERS for the scm/dev branch --------- Co-authored-by: Soren Rasmussen <s.c.rasmussen@gmail.com>
… NOAA fixes) (NCAR#1209) * Read and broadcast data from MPI root rank during init and timestep init phase in GFS time vary; add time vary interstitials for NEPTUNE (NCAR#1187) * 1. number_of_coefficients_in_ozone_data --> number_of_coefficients_in_ozone_forcing_data 2. Add NEPTUNE interstitials in physics/Interstitials/UFS_SCM_NEPTUNE/ * Read and broadcast data in CCPP init and timestep_init phases instead of reading with every MPI rank * In physics/Radiation/radiation_astronomy.f, replace hardcoded zero with mpiroot; move mpiutil.F90 to subdirectory tools * physics/tools/mpiutil.F90: add temporary routine to mpi-abort the model if MPI broadcast errors occur * Bug fixes in physics/Interstitials/UFS_SCM_NEPTUNE/GFS_time_vary_pre.*.F90 when writing to errmsg for invalid w3kindreal/w3kindint; additionally: formatting updates * In physics/Radiation/radiation_astronomy.f, replace hardcoded zero with mpiroot; move mpiutil.F90 to subdirectory tools * Add ability to build with ip if it is found. sp is being replaced by ip so this is needed. Note that in spack-stack 1.9.3 the ip package builds with the OpenMP flag, so CMAKE_Fortran_FLAGS_OPENMP_OFF needs to be set by the host model. The RRTMGP files currently break if compiled with OpenMP flags. * update several files to work with CCPP SCM after PR 1187 * remove ccpp_bcast for aerin and aer_pres due to UFS RT hanging --------- Co-authored-by: Dom Heinzeller <dom.heinzeller@icloud.com> Co-authored-by: Soren Rasmussen <s.c.rasmussen@gmail.com>
Main -> scm/dev (20260421)
…r_Aligo/mp_fer_hires.meta
…: fix intent for xlat_d and xlon_d
…eature/capgen-ng
…eature/capgen-ng
…and mp_nssl.{F90,meta}
…_NEPTUNE/GFS_rrtmgp_pre.meta
34d28ce to
bc76b77
Compare
|
@climbfuji Please consider adding ufs-community/c3#3 to the description to have a place to see all scheme submodule PRs in one place for future reference. |
done |
This comment was marked as resolved.
This comment was marked as resolved.
| dependencies = ../../hooks/machine.F,../radiation_tools.F90,../mersenne_twister.f | ||
| dependencies = rte-rrtmgp/rrtmgp-frontend/mo_gas_optics_rrtmgp.F90,rte-rrtmgp/extensions/mo_fluxes_byband.F90 | ||
| dependencies = rte-rrtmgp/rte-frontend/mo_rte_kind.F90,rte-rrtmgp/gas-optics/mo_gas_concentrations.F90,rte-rrtmgp/rte-frontend/mo_optical_props.F90 | ||
| dependencies = rte-rrtmgp/rte-frontend/mo_rte_kind.F90,rte-rrtmgp/gas-optics/mo_gas_concentrations.F90 |
There was a problem hiding this comment.
I'm curious why the need arose to add more dependencies (here and elsewhere). Were we just previously getting lucky that dependencies were being compiled elsewhere before being needed by the schemes? Is it the need to make second+ order dependencies explicit?
There was a problem hiding this comment.
There are two reasons:
(1) I updated the physics in small batches when I introduced capgen-v1. Somedependencies were masked by other schemes in the full suite bringing in those dependencies.
(2) There is slight difference in how/when DDT type definitions get parsed in capgen v1 (similar to capgen v0 and unlike prebuild, which had the workaround TYPEDEFS_NEW_METADATA in the prebuild config).
NVM, I see that this is for scm/dev for SCM testing, I presume. I assumed it was targeted at NCAR/main without looking. |
Correct, but Dustin started from my branch, i.e. most of the commits should be identical in their hashes and there should be few if any merge conflicts, regardless of the order of merging them and then hitting NCAR main. |
Description
This PR is for
scm/devand makes the necessary changes to the CCPP metadata and Fortran files to support the transition to the new code generator ccpp-capgen v1.The majority of the changes are addressing inconsistencies between Fortran and Metadata, the renaming of
*_finalizeto*_final, missing dependencies in the metadata tables, and simplified syntax for defining DDTs in the metadata.Testing
Dependencies