Support decompositions with extra outermost dimensions #113
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In PIO1, a decomposition can have extra outermost dimensions
with their lengths all set to 1. For example, we can define a
3D decomposition of [1 x 10 x 20] to read/write a 2D variable
of [10 x 20], or a 3D record variable of [time x 10 x 20].
This feature is not supported by PIO2 so far. PIO2 might get
mismatched start/count values from the decomposition, and
access an array out of its bounds.
New Fortran unit tests are added for this enhancement, and
PIO2 code is updated to get correct start/count values from
the decomposition.
This feature branch has been extensively tested. All PIO2 unit
tests, e3sm_developer tests and cime_developer tests passed.
A High-resolution F case run on Cori also passed.
Fixes #106