| name | update_glm_config |
| description | Safely updates specific calibration parameters in the glm3.nml file using f90nml, maintaining correct namelist group mapping and file integrity. |
To update the configuration, use the f90nml library to parse the existing file. Map the parameters to their respective namelist groups: Kw to &light, coef_mix_hyp to &mixing, and wind_factor, lw_factor, and ch to &meteorology.
import f90nml
def update_glm_parameters(params):
nml = f90nml.read('/root/glm3.nml')
nml['light']['Kw'] = params.get('Kw')
nml['mixing']['coef_mix_hyp'] = params.get('coef_mix_hyp')
nml['meteorology']['wind_factor'] = params.get('wind_factor')
nml['meteorology']['lw_factor'] = params.get('lw_factor')
nml['meteorology']['ch'] = params.get('ch')
nml.write('/root/glm3.nml', force=True)