Is your feature request related to a problem? Please describe.
Currently namelist.py provides the complete structure for a model namelist, including the physics settings. This means that
- as we develop the Physics we need to also create a branch of NDSL to use in parallel,
- the namelist is tailored to specific models instead of providing a general platform, and
- the namelist in NDSL is getting pretty bloated as more physics is integrated.
This is not a sustainable way to develop a model and breaks the concept of NDSL as a middleware platform.
Describe the solution you'd like
NDSL should provide the infrastructure to create namelist configs for model components like a NamelistFactory and then provide that for the dycore. Then the physics schemes like pySHiELD can import NamelistFactory to create PhysicsConfig. Pace itself can then import these and compose them into a single expected namelist.
Describe alternatives you've considered
Alternative ideas are welcome