This page describes the different configurations of ACCESS-ESM 1.5 currently available and how to access them.

ESM stands for Earth System Model. ACCESS-ESM is a coupled model with the following components:

Submodel Model Version Notes
Atmosphere UM 7.3
Land Surface CABLE Part of UM
Sea Ice CICE
Ocean MOM 5
Coupler OASIS-MCT 3

Payu Experiments

We strongly recommend that you run ACCESS-ESM 1.5 using the payu driver. CSIRO is running the CMIP6 submission runs using a setup based on KSH scripts. The CMS team is working to adapt those configurations to payu.

Please contact the CMS team if you would like a configuration that isn't currently available in payu or if you have any problems running a ACCESS-ESM 1.5 simulation with payu.

Model Spinup

If starting from scratch the model will take some time to spin up. It's recommended that you branch off of piControl, which has already been spun up, rather than starting a run from scratch (except for SSP runs, which will branch from historical)

The script '' in the Payu experiment directory will set up restart files based on an existing run

Using Payu

1. Load the Conda environment to access Payu

module use /g/data/hh5/public/modules
module load conda/analysis3

2. Download the Payu experiment configuration

git clone

3. Edit and run the warm-start script if needed


4. Run the model

payu run

Each 'payu run' submission will run the model for one model year. You can run multiple years with e.g. 'payu run -n 25' - Payu will automatically resubmit the run after each year has finished.

We recommend inspecting the model output after running for a year or so to make sure it's behaving as desired, especially if it's a non-standard configuration


Post-processing scripts to convert atmosphere output to NetCDF format and move the output to /g/data are available at This can be run at any stage of the run, and will only process files that haven't yet been archived.

Publication of runs to ESGF requires further processing to put the data in CMOR format. We recommend working with CSIRO for this so all ACCESS runs are consistent, contact us at for more information.

Experiment Details


You can download the configuration by typing

$ git clone

The website of the configuration also contains detailed instructions on how to run the model.

Default configuration, based off CSIRO ksh scripts

PMIP4 Runs


Currently contains two models from the PMIP4 setting: Last Interglacial and Mid-Holocene.

Please refer to the main page to know where to download the configurations from.

Last Interglacial

Science Contacts: Nick Yeung, Laurie Menviel

Note: In addition to changed MMRs for certain gases, it also needs an updated UM build with different orbital parameters. This updated UM build is on gadi at



Science Contacts: Josephine Brown

Note: In addition to changed MMRs for certain trace gasses, it also needs and updated UM build with different orbital parameters. This updated UM build is at



Science Contacts: Mustapha Adamu, Shayne McGregor

An uncoupled, atmosphere only version of ACCESS-ESM is provided at this Github repository.


CSIRO is running the ACCESS-ESM model using ksh shell scripts. If you need to know, you can look here.

Fixing Ice Restart Dates (Payu)

In configuration file 'ice/input_ice.nml' make a note of the value of 'init_date' - this is the date that the model thinks it started at (ignore the similarly named 'inidate' value here).

Make a copy of the restart directory that you want to re-run the model from (e.g. 'cp -r archive/restart1995 archive/restart11995')

We'll need to work out some numbers to put into the restart directory, which can be done in Python

import cftime

init_date = cftime.datetime(1850,1,1) # Initial date as set in ice/input_ice.nml
dt = 3600 # Model timestep as set in ice/input_ice.nml

this_run_start = cftime.datetime(1996,1,1) # Date we want to start at
prev_run_start = cftime.datetime(1995,1,1) # Date the previous run started at

runtime0 = (prev_run_start - init_date).total_seconds() # Time between init_date and start of previous run
runtime = (this_run_start - prev_run_start).total_seconds() # Model runtime of previous run
time = (this_run_start - init_date).total_seconds() # Time between init_date and start of this run
istep0 = time / dt # Model steps between init_date and start of this run

print(f"{runtime0=}, {runtime=}, {time=}, {istep0=}")

Restart namelists

Payu also checks the namelist files in the restart directory, so we'll have to edit those as well.

In the restart directory, edit ice/input_ice.nml (e.g. archive/restart11995/ice/input_ice.nml), setting 'runtime0' and 'runtime' to the values just calculated. Also still in the restart directory edit ice/cice_in.nml to set 'istep0'.

Restart file

Now we'll set up the restart file. Payu will start from the highest numbered restart file in 'archive/restart11995/ice', and we need to add the 'time' and 'istep0' values previously calculated to that. 'scripts/' is provided to do this modification, use it like

scripts/ -v -i archive/restart11995/ice/iced.40990601 -o archive/restart11995/ice/iced.99990101 --istep0 1279800 --time 4607280000

Give the output file a bigger number than any other restart to make sure Payu picks it up.


As a first check, run 'payu setup' in the configuration directory, then check work/ice/input_ice.nml. 'inidate' should be set to the date you're starting this run at. 'runtime' should be set to the number of seconds this run will cover, 31536000 for a normal year or 31622400 for a leap year.

Next, check work/ice/RESTART/ice.restart_file contains the name of the new ice restart file, e.g. 'iced.99990101'

Clean up the work directory with 'payu sweep', then submit the run with 'payu run'. After the model has run for a little, check the output of 'grep istep work/ice/ice_diag.d', which should look something like

  istep0                    =    52584
istep1:     52584    idate:  18611231    sec:         0
 Restart read at istep=       52584   189302400.000000
istep1:     52584    idate:  18560101    sec:         0
istep1:     52608    idate:  18560102    sec:         0
istep1:     52632    idate:  18560103    sec:         0
istep1:     52656    idate:  18560104    sec:         0
istep1:     52680    idate:  18560105    sec:         0
istep1:     52704    idate:  18560106    sec:         0
istep1:     52728    idate:  18560107    sec:         0

After the 'Restart read' line the values of idate should be dates starting from the target start time, incrementing by one day for each line. If idate isn't incrementing something has gone wrong and the run should be stopped.

After at least a month has run check the output in work/ice/HISTORY to make sure that the time and time_bounds values are correct.