This PR adds an API to call the Pace dycore from GEOS.
Code changes:
fv3core/pace/fv3core/initialization/geos_wrapper.py: Added a wrapper api to access the dynamical core from GEOS. Initialize it with a namelist, communicator, and backend, call it with numpy arrays and it returns a dictionary of numpy arrays.
tests/main/fv3core/test_init_from_geos.py: A simple test that checks that the GEOS wrapper is initialized correctly, populates the dycore state correctly, steps through the dycore, and outputs arrays in the output dictionary.
fv3core/pace/fv3core/init.py: Added the geos wrapper to init.py to make it importable at the base level.
util/pace/util/grid/eta.py: Added code to setup atmosphere with 91 vertical levels for GEOS runs.
util/pace/util/initialization/sizer.py: Revised the from_namelist method to work with our updated namelist configuration that doesn't use fv_core_nml as a key.
Checklist
Before submitting this PR, please make sure:
[x] You have followed the coding standards guidelines established at Code Review Checklist.
[x] Docstrings and type hints are added to new and updated routines, as appropriate
[x] All relevant documentation has been updated or added (e.g. README, CONTRIBUTING docs)
[ ] For each public change and fix in pace-util, HISTORY has been updated
[x] Unit tests are added or updated for non-stencil code changes
Purpose
This PR adds an API to call the Pace dycore from GEOS.
Code changes:
from_namelist
method to work with our updated namelist configuration that doesn't usefv_core_nml
as a key.Checklist
Before submitting this PR, please make sure:
pace-util
, HISTORY has been updated