E3SM-Project / E3SM-Project/scream
Add possibility to avoid calculations in atm procs for certain diag fields, if they are not outputed
- 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.