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

Data container cleanup #2522

Open
dustinswales opened this issue Dec 3, 2024 · 0 comments
Open

Data container cleanup #2522

dustinswales opened this issue Dec 3, 2024 · 0 comments
Assignees
Labels
enhancement New feature or request feature-MPAS Label to identify tasks associated with the MPAS dynamical core implementation

Comments

@dustinswales
Copy link
Collaborator

dustinswales commented Dec 3, 2024

Description

As part of adapting contiguous data structures within the ufsatm, and in preparation for the inclusion of MPAS, these sub-fields could be combined into a single type and partitioned into dycore-specific and dycore-agnostic sections, possibly isolating diagnostics into their own type.

Descriptions of existing GFS data containers.

GFS_init_type - Dynamical core specific. Contains grid-specification and domain decomposition information. Additional dynamical cores will need their own container for this information. To accommodate, we suggest changing the name GFS_init_type to FV3_init_type

GFS_statein_type - Dynamical core specific. Contains the input prognostic state from the dynamical core. Additional dynamical cores will need their own container for this information. To accommodate, we suggest changing the name GFS_statein_type to FV3_statein_type

GFS_stateout_type - Dynamical core specific. Contains prognostic state from the physics to the dynamical core. Additional dynamical cores will need their own container for this information. To accommodate, we suggest changing the name GFS_stateout_type to FV3_stateout_type

GFS_sfcprop_type - Dynamical core agnostic. Contains interstitial physics variables relating to the surface. The surface is handled in the physics, so this data could be shared across dynamical cores that use the same physics codebase.

GFS_coupling_type - Dynamical core specific, but could be partitioned into specific/agnostic pieces. Contains interstitials related to physics coupling with other ESM components, topography, cellular automata, and stochastic physics. To clearly distinguish the FV3 coupling, we suggest creating a common coupling type, and dynamical core specific coupling types. The dynamical core specific coupling types would contain interstitials related to 3D physics (i.e CA and Stochastic physics) and topography, which is grid/dycore specific. For example, a common GFS_coupling_type with dynamical-core specific FV3_coupling_type and MPAS_coupling_type types.

GFS_control_type - Dynamical core specific, but could be partitioned into specific/agnostic pieces. Contains model control parameters. There are pieces that relate specifically to the physics configuration/setting, which is common across dynamical-cores, and pieces which are dycore specific. We suggest partitioning this type into agnostic/specific parts. GFS_physics_control_type, GFS_FV3_control_type and GFS_MPAS_control_type.

GFS_grid_type - Dynamical core agnostic. MPAS may have more fields, but all interpolation data is common.

GFS_tbd_type - Dynamical core specific. Fields that don’t fit in the aforementioned data containers live here. This includes some dycore agnostic fields, but also dycore-specifc fields related to stochastic-physics and CA. We suggest to initially create new TBD data containers for any new dynamical core. To accommodate, we suggest changing the name GFS_tbd_type to FV3_tbd_type

GFS_cldprop_type - Dynamical core agnostic. Fields needed by the radiation Group from the physics Group.

GFS_radtend_type - Dynamical core agnostic. The Radiation Group is called less frequently than the Physics Group, which requires an update step for these radiation fields at the beginning of the Physics Group. This type holds the radiation fields needed by the Physics Group for this update.

GFS_diag_type - Dynamical core agnostic. Contains diagnostics related to the physics parameterizations.

Solution

  1. Combine existing DDTs into dycore specific/agnsostic DDTs, and diagnostic DDT.
  2. Flat fields in a module. Reliant on completing Transition to use contiguous data arrays #2521.
@dustinswales dustinswales self-assigned this Dec 3, 2024
@dustinswales dustinswales added enhancement New feature or request feature-MPAS Label to identify tasks associated with the MPAS dynamical core implementation and removed enhancement New feature or request labels Dec 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request feature-MPAS Label to identify tasks associated with the MPAS dynamical core implementation
Projects
Development

No branches or pull requests

1 participant