Open aidanheerdegen opened 1 year ago
From an implementation perspective it is probably better to use the f90nml python interface and take care of only passing the required part of the file in python.
@aekiss
I ran these on 01deg_jra55v13_ryf9091
01deg_jra55v140_iaf_cycle4
and dumped them into a couple of yaml files. When I diff them I get reasonable results
$ diff /g/data/tm70/aph502/control_runs/*/input_namelist_complete.yml
4134,4135c4134,4135
< - 80
< - 75
---
> - 150
> - 100
4142a4143
> cmip_version: 5
4163c4164
< min_thickness: 1.0
---
> min_thickness: 0.001
4841a4843,4861
> ocean_passive_nml:
> debug_this_module: false
> common_init_condition: patch
> layer_value: 1.0
> layer_ztop: 100.0
> layer_zbot: 200.0
> wall_value: 1.0
> wall_ratio_south: 0.33333
> wall_ratio_north: 0.66666
> patch_value: 1.0
> patch_ztop: 0.0
> patch_zbot: 200.0
> patch_ratio1: 0.33333
> patch_ratio2: 0.66666
> patch_init_klevel_gaussian: false
> efold_depth: 1000.0
> exponential_value: 1.0
> shelfbowl_north: 70.0
> shelf_value: 1.0
4844c4864
< max_advection_velocity: 0.2
---
> max_advection_velocity: 0.3
4950a4971
> read_diff_cbt_file: false
5203c5224
< ncar_boundary_scaling: true
---
> ncar_boundary_scaling: false
5342a5364,5365
> do_ustar_correction: true
> do_frazil_redist: true
5348c5371
< cdbot: 0.001
---
> cdbot: 0.0025
5378c5401
< zmax_pen: 300.0
---
> zmax_pen: 1000000.0
5519c5542
< overexch_npts: 4
---
> overexch_npts: 1
5524c5547
< overflow_umax: 5.0
---
> overflow_umax: 1.0
5642c5665
< num_fields_in: 15
---
> num_fields_in: 17
5658a5682,5683
> - licefw
> - liceht
5660c5685
< \0"
---
> \0\0\0\0\0\0\0\0\0"
5671a5697,5700
> frac_vis_dir: 0.215
> frac_vis_dif: 0.215
> frac_nir_dir: 0.285
> frac_nir_dif: 0.285
There are a few changes as a result of 01deg_jra55v13_ryf9091using a significantly older codebase. The following are only in the
01deg_jra55v140_iaf_cycle4` experiment:
cmip_version
: this code change https://github.com/ACCESS-NRI/MOM5/commit/a404d1de70993c325293127025290820c88c1666read_diff_cbt_file
: this code change https://github.com/mom-ocean/MOM5/pull/322do_ustar_correction
, do_frazil_redist
: this code change https://github.com/mom-ocean/MOM5/pull/29001deg_jra55v140_iaf_cycle4
also has passive tracers, which the RYF experiment does not, hence ocean_passive_nml
doesn't feature.
There are other differences, notably in zmax_pen
, cdbot
, near_boundary_scaling
, overexh_npts
, overflow_umax
, max_advection_velocity
and min_thickness
.
Does that accord with what you thought the differences ought to be @aekiss? Has it missed anything you know about?
Currently the summary is finding all namelist variables that are defined in the various model namelists, e.g.
ocean/input.nml
,ice/cice_in.nml
etc.Whilst the
cice
namelists seem to have most (all?) of the namelist variables in the namelist files, MOM5 only has a small subset of the variables, so we're not capturing the default values of many variables.From the point of view of having a database of everything that went into a model this is a significant knowledge gap.
One option is to add some code to output the namelists before they are updated by reading from the namelist files. Whilst this is potentially a good idea for the future, it doesn't help with historical runs.
We can recover all the ocean namelist variables from the stdout logfile, as MOM5 outputs them from there using f90nml, e.g.
This produces 68 namelist groups, with 1434 lines of output.
Note I've used
awk
to cut down the amount of text f90nml has to parse, with some of the larger files it could take a long time to pull out the namelists which are just at the beginning of the file.