Hi Hannah, great questions!
Some of the restart files in /g/data/access/payu/access-esm/restart/pre-industrial have unclear origins and they don’t appear to match the restart files from the original pre-industrial simulations. For reproducibility, it might be best to use the restarts in /g/data/vk83, which are copied from the original PI-02 simulation.
They’re a bit hard to find at the moment, but restart and history files for the CMIP6 experiments along with several non-CMIP experiments are stored in /g/data/p73/archive. There are two different ESM1.5 pre-industrial experiments stored there: PI-01 which was originally run on raijin, and PI-02 which was run on gadi. PI-01 isn’t reproducible on gadi, and so it’s probably worth using the restarts from PI-02 stored in /g/data/p73/archive/CMIP6/ACCESS-ESM1-5/PI-02.
There are a few intricacies! I’ll run through what worked for me in changing the restart year to 700. A few points aren’t completely clear to me still – I’ll update them if I find out anything more. If you or anyone notices anything that’s not quite right, let me know!
-
Copy the relevant restart files from
/g/data/p73/archive/CMIP6/ACCESS-ESM1-5/PI-02/restart(in this case, those ending with-07000101or-06993112) to a new directory, e.g.<new-restart-dir>, separating them intoatmosphere,ocean,ice, andcouplersubdirectories. -
In the experiment’s
config.yamlfile, edit therestartoption to point to<new-restart-dir>. -
Create symlinks: Each model will look for restart files which don’t have date-stamps at the end of their name. E.g. in
<control-directory>/ocean/field_table, the ocean model will try to use:restart_file = csiro_bgc.res.ncrather than
csiro_bgc.res.nc-06993112. For each of the ocean restart files, this means we need to create a symlink to each file, omitting the datestamp from its name. A quick way to do this would be to navigate tonew-restart-dir/oceanand run:$ for res_file in * > do > ln -s ${res_file} ${res_file%-*} > doneThe same can be done for the coupler restarts.
For the ice restarts, symlinks only need to be created for
ice.restart_fileandmice.nc.For the atmosphere, a symlink should be made to the copied restart file
PI-02.astart-07000101, though this time should be namedrestart_dump.astart. -
Next, we need to update each model’s namelist files in
<control-directory>/{atmosphere,ocean,ice}to have the correct starting dates:Atmosphere: In
<control-directory>/atmosphere/namelists, setMODEL_BASIS_TIME= 0700 , 01 , 01 , 0 , 0 , 0 , ANCIL_REFTIME= 0700 , 01 , 01 , 0 , 0 , 0 ,Make the same change in
<control-directory>/atmosphere/CNTLALL. This second file might be superfluous and we’re looking at removing it for the new release, but for now it’s probably safest to edit it alongside thenamelistsfile.My understanding is that
MODEL_BASIS_TIMEsets the atmosphere’s starting date for the new simulation. The impact ofANCIL_REFTIMEis a bit more intricate – it can shift forwards or back the days at which ancillary fields are updated which can influence reproducibility. It might not be stricly necessary, but it works out here to change theANCIL_REFTIMEto match the newMODEL_BASIS_TIME.Ocean: The ocean’s start times appear to be read in from the restart file
ocean_solo.res:700 1 1 0 0 0 Current model time: year, month, day, hour, minute, secondand so no changes need to be made to the ocean model’s namelists.
Ice: The best way to handle the
cicetiming controls is still a bit unclear to me, as it is fairly messy.First,
<control-directory>/icecontains two configuration filescice_in.nmlandinput_ice.nml, which influence different parts of the simulation timing. The relevant variables ininput_ice.nmlare:inidate- the start date for the new simulation.init_date- the original starting date for the whole simulation (e.g. 0001/01/01).runtime0- the total amount of time in seconds already simulated since theinit_date.runtime- the amount of time in seconds to be run in the next simulation.
while the relevant variables in
cice_in.nmlare:year_init- the original starting year for the simulation (should match the year in init_date)istep0- the total number of timesteps simulated so far.npt- the number of timesteps to be run in the next simulation.
In practice,
payuwill only pay attention toinit_dateandyear_init, which should be left at0010101and0001respectively. For the other variables,payureplaces their values (see the next step),and it should be safe to leave them as is. It could be worthwhile to setinidateto the new starting date of07000101just for record keeping.5.Each time
payuruns a simulation, it places updated versions ofcice_in.nmlandinput_ice.nmlin the latest restart directory, and fills them with timing information about the run that just finished.E.g. in
restart003/ice/input_ice.nml,runtime0will be the total amount of time, in seconds, between the simulation initialisation (init_date) and the start of run003. Meanwhileruntimewill be the number of seconds simulated during run003. Likewise inrestart003/ice/input_ice.nml,istep0andnptwill be the total number of timesteps simulated by before and during run003respectively.When run
004starts,payutakes the information from therestart003/icenamelist files, notes how much time has passed (runtime0 + runtime) since the initialisation date, and uses the result to specify the start date of the next run, run004. (Hence why the values in<control-dir>/iceare ignored).For starting a new run at year 700, this means
<new-restart-dir>/icemust contain a copy ofinput_ice.nmlwhich states that 699 years of simulation have already passed./g/data/vk83/experiments/inputs/access-esm1p5/pre-industrial/restart/icecontains a version which does this for year 101 – copy this over to<new-restart-dir>/iceand replace itsruntime0value to equal the total number of seconds between the experiment initialisation date 0001-01-01 and the new start date 0700-0101, using the proleptic Gregorian calendar, i.e:<new-restart-dir>/input_ice.nml ------------------------------------------------------------ &coupling runtime0=22058265600 runtime=0 /runtimeshould be left at 0 to ensure thatruntime0 + runtimeequals the correct value.In
/g/data/vk83/experiments/inputs/access-esm1p5/pre-industrial/restart/ice, you’ll also notice a copy ofcice_in.nml. Copy this over to<new-restart-dir>/icetoo. It’s values will look inconsistent with the timing variables from the new version ofinput_ice.nml, e.g. in<new-restart-dir>/cice_in.nml ------------------------------------------------------------ &setup_nml istep0=0, npt=0, dt=3600, /istep0 = 0timesteps doesn’t matchruntime0 = 22058265600. Due to quirks withpayu’s handling of the ice calendar, it currently seems safest to leave this as is even though its inconsistent. Trying to make the two match can cause some immediate timing issues.6.new-restart-dirshould now contain all the files required for the new run. Update the paths and filenames under<control-directory>/manifests/restart.yamlto point to the new files and symlinks.
Edit: thepayu setupcommand will automatically fill in the paths in therestart.yamlbased on the files it finds in the specified restart directory, and so it shouldn’t be necessary to manually update this file.- Everything should now be ready to run. Following the above and running for a few months, the simulation appears to match the original
PI-02simulation:

I haven’t trialed a long simulation yet, so I am hoping there aren’t any timing problems down the road. Hopefully this works for getting started though.
Let me know if you have any questions about those steps, or if anything doesn’t work when trying them out.