E3SM-Project / E3SM-Project/scream

Add possibility to avoid calculations in atm procs for certain diag fields, if they are not outputed

Open
#2,536 1 comment 0 reactions 2 assignees Claimed by @tcclevenger View on GitHub
enhancement I/O infrastructure question
Dominant language
No language data
Stars
79
Forks
54
PR merge metrics
No merged PRs in 30d

Description

There are some fields computed by some parametrizations that are diagnostic, and not needed by other atm procs. We could devise a way to avoid allocating/computing these. E.g., adding a version of `add_field` in `AtmosphereProcess`, like

```
add_field(...);
```
Then, the AD will scan all the output yaml files, to see if that field is indeed needed or not. If not, then don't allocate it, nor pass it to the atmprocs. The atm proc that needed, can then do
```
void MyProc::initialize_impl(...) {
for (const auto& f : get_fields_in()) {
if (f.name()=="my_diag_output") {
m_compute_my_diag = true;
}
}
...
}
```
and then act accordingly during the run method (i.e. skip computation of "my_diag_output" if `m_compute_my_diag=false`).

@AaronDonahue @PeterCaldwell is this something we need/want? If there are very few diags outputs, and we end up always outputing most of them anyways, then this is not that important...

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.