NOAA-GFDL / NDSL

NOAA NASA Domain Specific Language middleware layer
6 stars 8 forks source link

NDSL should provide a framweork for physics namelists instead of specifying the namlist members and default values for specific physics models #64

Open oelbert opened 1 month ago

oelbert commented 1 month ago

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 1) as we develop the Physics we need to also create a branch of NDSL to use in parallel, 2) the namelist is tailored to specific models instead of providing a general platform, and 3) 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