[X] Short (1 sentence) summary of your PR:
Add pio_finalize calls for CICE history and restart files
[X] Developer(s):
apcraig
[X] Suggest PR reviewers from list in the column to the right.
[X] Please copy the PR test results link or provide a summary of testing completed below.
Tested quick_suite and io_suite on derecho with 6 compilers. All tests pass and are bit for bit. New tests pass. One old test, restart_gx3_32x1_alt02_histall_iohdf5_iopio1 now is failing with an hdf5 dimscales error. I tried to look into the problem, but this seems to be a problem on with pio1 and hdf5. I am going to allow this to fail.
How much do the PR code changes differ from the unmodified code?
[X] bit for bit
[ ] different at roundoff level
[ ] more substantial
Does this PR create or have dependencies on Icepack or any other models?
[ ] Yes
[X] No
Does this PR update the Icepack submodule? If so, the Icepack submodule must point to a hash on Icepack's main branch.
[ ] Yes
[X] No
Does this PR add any new test cases?
[X] Yes
[ ] No
Is the documentation being updated? ("Documentation" includes information on the wiki or in the .rst files from doc/source/, which are used to create the online technical docs at https://readthedocs.org/projects/cice-consortium-cice/. A test build of the technical docs will be performed as part of the PR testing.)
[ ] Yes
[X] No, does the documentation need to be updated at a later time?
[ ] Yes
[X] No
[X] Please document the changes in detail, including why the changes are made. This will become part of the PR commit log.
This fixes a "too many communicators" error caught in UFS and duplicated in standalone CICE when writing lots of files.
Add pio_finalize calls for CICE history and restart files when running with PIO. This cleans up some PIO internal data. The code was aborting when trying to write lots of files (>600) because we reinitialize PIO for each file. This is a short term fix. A longer term fix is to initialize PIO once and reuse as much as possible.
Add a new test that runs CICE for a year writing hourly files (>8000 files). Test with pio2 and netcdf.
PR checklist
This fixes a "too many communicators" error caught in UFS and duplicated in standalone CICE when writing lots of files.
Add pio_finalize calls for CICE history and restart files when running with PIO. This cleans up some PIO internal data. The code was aborting when trying to write lots of files (>600) because we reinitialize PIO for each file. This is a short term fix. A longer term fix is to initialize PIO once and reuse as much as possible.
Add a new test that runs CICE for a year writing hourly files (>8000 files). Test with pio2 and netcdf.