C-Star is a python package for setting up and running ocean model simulations, with a particular focus on marine carbon dioxide removal (mCDR) applications.
To do a restart, we need to update the namelist with the new IC file and number of timesteps
However, AdditionalCode.get() clones the template namelist roms.in_TEMPLATE to a local working copy once and for all - all future modifications happen to the working copy.
If we want to change the IC file entry and then change it again, we have lost the placeholder string to replace in the modified version.
A “simple” solution would be to have an update_namelist method that always goes back to the template version and replaces its placeholder strings with new values
However, we would need to track all the other changes that have been happening too, not just the value that’s being replaced in the moment, or we would have an “updated” namelist that had N-1 placeholders and one correct value.
In order to track namelist modifications we need a namelist_modifications property, that exists parallel to namelists (a list with one entry per namelist file). Each entry is a dictionary of values to replace (initially {} ).
From #114 :
AdditionalCode.get()
clones the template namelistroms.in_TEMPLATE
to a local working copy once and for all - all future modifications happen to the working copy.update_namelist
method that always goes back to the template version and replaces its placeholder strings with new valuesnamelist_modifications
property, that exists parallel tonamelists
(a list with one entry per namelist file). Each entry is a dictionary of values to replace (initially{}
).Related: #113 , #114