This PR adds a Dockerfile for building a prognostic_run_shield image, analogous to the prognostic_run image, but with SHiELD-wrapper instead of fv3gfs-wrapper installed. There are a few differences from the prognostic_run image:
GNU 10 compilers are used instead of GNU 9, since latest FMS / SHiELD require GNU 10+ compilers to build.
SHiELD-wrapper (and its dependencies) are installed instead of fv3gfs-wrapper. In terms of compiled dependencies, this happens under the hood within the COMPILE script in the SHiELD_build repo.
call_py_fort is omitted, since we have not made an effort to port the microphysics-emulation-specific call_py_fort hooks into SHiELD, which are somewhat orthogonal to the Python wrapper.
To make things easier to review, for now I have just skipped any tests that require running prognostic simulations. A preview of the changes required for doing that with SHiELD-wrapper can be found in #2350 (nothing major within the time loop; most changes are needed to parametrize / configure tests). In a followup PR I will add the changes needed to actually test shield.wrapper simulations in the same way we test fv3gfs.wrapper, which will depend on this PR as well as the changes in #2362.
Added public API:
Added a prognostic_run_shield image, which will eventually be used for prognostic runs using SHiELD-wrapper.
Significant internal changes:
Added logic for skipping specific regression tests if fv3gfs.wrapper is not installed in the image.
Added an authenticate call to the test_read_last_segment_gcs test such that it can be run without relying on previous regression tests being run before it; thanks @frodre for help debugging this.
Requirement changes:
Added a SHiELD-wrapper submodule, pointing to latest main.
This PR adds a Dockerfile for building a
prognostic_run_shield
image, analogous to theprognostic_run
image, but with SHiELD-wrapper instead of fv3gfs-wrapper installed. There are a few differences from theprognostic_run
image:COMPILE
script in the SHiELD_build repo.To make things easier to review, for now I have just skipped any tests that require running prognostic simulations. A preview of the changes required for doing that with SHiELD-wrapper can be found in #2350 (nothing major within the time loop; most changes are needed to parametrize / configure tests). In a followup PR I will add the changes needed to actually test
shield.wrapper
simulations in the same way we testfv3gfs.wrapper
, which will depend on this PR as well as the changes in #2362.Added public API:
prognostic_run_shield
image, which will eventually be used for prognostic runs using SHiELD-wrapper.Significant internal changes:
fv3gfs.wrapper
is not installed in the image.authenticate
call to thetest_read_last_segment_gcs
test such that it can be run without relying on previous regression tests being run before it; thanks @frodre for help debugging this.Requirement changes:
Coverage reports (updated automatically):