NCAR / ccpp-scm

CCPP Single Column Model
Other
13 stars 50 forks source link

CCPP scheme simulator #378

Closed dustinswales closed 1 year ago

dustinswales commented 1 year ago

This PR adds a new functionality, a physics process scheme simulator, to the CCPP-physics.

Data-driven tendencies can be used to drive process schemes (e.g. PBL, Deep-Convection, etc..). The control over which schemes are used are set in a new physics namelist, scm_data_nml. These data tendencies are read in during the CCPP initialization stage, and applied during the _run stage, if requested by the nml. There are new interstitial variables for the data tendencies.

To use this feature on the host-model side the Suite Definition File (SDF) needs to be modified to include the ccpp_scheme_simulator scheme, and GFS_ccpp_scheme_sim_pre.

There are examples included that exercise this new tool. Documentation will follow.

grantfirl commented 1 year ago

Associated PR: https://github.com/NCAR/ccpp-physics/pull/996

dustinswales commented 1 year ago

@grantfirl @mkavulich This is at the point now where you can start reviewing/commenting/lamenting.

grantfirl commented 1 year ago

@dustinswales Another question, are we going to maintain the differences in the *_typedefs* files between SCM and FV3 (at least until you test in the UFS)?

dustinswales commented 1 year ago

@dustinswales Another question, are we going to maintain the differences in the _typedefs files between SCM and FV3 (at least until you test in the UFS)?

Not sure what's the best way forward? What do we do about SCM specific stuff in GFS_typedefs and CCPP_typedefs, moreso GFS_typedefs? This can be used in the UFS, but I'd like to see some people use it successfully in the SCM first.

hertneky commented 1 year ago

@dustinswales In input_GFS_v17_p8.nml, there is a parameter do_ccpp_suite_sim, but I don't see it documented. This looks like it is used by ccpp_suite_simulator.F90 and GFS_ccpp_suite_sim_pre.F90. Does this also need to exits and be turned on in the namelist?

dustinswales commented 1 year ago

@dustinswales In input_GFS_v17_p8.nml, there is a parameter do_ccpp_suite_sim, but I don't see it documented. This looks like it is used by ccpp_suite_simulator.F90 and GFS_ccpp_suite_sim_pre.F90. Does this also need to exits and be turned on in the namelist?

@hertneky Another good catch! I updated the documentation, see section 7.2.5.

dustinswales commented 1 year ago

@mkavulich This is ready to merge. Can you approve?