NOAA-GFDL / NDSL

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

Namelist parameters and many physical constants don't really belong in NDSL #32

Open oelbert opened 5 months ago

oelbert commented 5 months ago

Is your feature request related to a problem? Please describe. Namelist elements and default values are specified in ndsl/namelist.py which means that model developers have to esid ndsl code when implementing a scheme with new runtime parameters in pyFV3 or pySHiELD. Similarly if a scheme needs a new physical constant (like a heat capacity at a new temperature) it gets implemented in ndsl/constants.py. Moreover it is very unclear how to set up experiments with different values, such as simulating Earth with a smaller radius.

Describe the solution you'd like namelist.py should specify a minimal, extensible namelist class that can be inherited in Pace, pyFV3, and pySHiELD namelists. For constants.py ¯\(ツ)