NOAA-GFDL / fre-cli

Python-based command line interface for FRE (FMS Runtime Environment) to compile and run FMS-based models and post-process their output.
GNU Lesser General Public License v3.0
3 stars 11 forks source link

Handle Multiple Compile Experiments (fre make functionality) #153

Open singhd789 opened 3 months ago

singhd789 commented 3 months ago

Is your feature request related to a problem? Please describe. The Sheild model builds with many different compile-time configurations using different cppdefs,

shield vs solo https://github.com/NOAA-GFDL/SHiELD_build/blob/6681be952a1e4856ae4ae10d11c2dc4932fd336f/Build/mk_scripts/mk_makefile#L71

hydrostatic nh|hydro|sw https://github.com/NOAA-GFDL/SHiELD_build/blob/6681be952a1e4856ae4ae10d11c2dc4932fd336f/Build/mk_scripts/mk_makefile#L79

Describe the solution you'd like The different configurations need to be handled and compiled differently. We can potentially set up multiple compile YAMLs under different "experiment" names to handle these cases in the model yaml.

Additional context From Lauren: When you're coming up with a solution to this keep in mind this: https://github.com/NOAA-GFDL/SHiELD_build/blob/main/Build/COMPILE#L132

We don't compile a configuration of shield+sw (so just shield+nh, shield+hydro, solo+nh, solo+hydro, solo+sw)

Tom thought: For configurations that are different due to CPPDEFS, we will create an array of experiment names and match to the CPPDEFs in the same compile YAML. This would be SHiELD_nh vs SHiELD_hydro

For configurations that are different code, we will use a separate YAML. This would be SHiELD solo vs SHiELD.

FREMAKE needs to be updated to accept the two YAMLS and run through these builds simultaneously. Maybe this last part is a different issue.

Dana - better define/update issue (in process of moving fremake things from gitlab to github)