Ensemble runs with ACCESS-CM2

Hi all,

I would like to generate an ensemble of simulations with ACCESS-CM2. Is there a way that others have done this previously?
For experiments with the CESM model, I could apply a temperature perturbation on the order of 10^-14 to the atmospheric temperature initial conditions via the namelist. I’m hoping there’s a similar approach with CM2, otherwise I could look at manually editing the restart files.

Thanks for your help,

1 Like

You’re the only helper with access-cm2 listed. Can you help out/assign someone else?

My expertise with ACCESS-CM2 is technical rather than scientific. @MartinDix would be in a better position to suggest how to approach setting up ensembles with ACCESS-CM2.

I do know that within the MOSRS GMED project, Alejandro Bodas-Salcedo has set up a couple of GC5-Climate ensembles, by duplicating a base suite and then using a different restart file for each ensemble member. See
https://code.metoffice.gov.uk/trac/gmed/wiki/Assessment/GCDev/GCDocumentation/u-cx987 and
https://code.metoffice.gov.uk/trac/gmed/wiki/Assessment/GCDev/GCDocumentation/u-cw141 and
A similar approach may be useful for ACCESS-CM2 but I am not sure.

1 Like

Thanks @paulleopardi. Ideally I would like to use the same restart files and scramble the initial conditions.

@MartinDix or @dhb599, do you have any suggestions? Dave, I just saw that you used a similar approach for your Atlantic pacemaker experiments.

Hi Zoe,

I found the topic!! Ok there are a few ways to do that and I will list in here:

  1. if you can find your initial pp file, then you can try this:
    Say mine is under my atm folder under job cj368 and I want to play with the year 1965 Jan with 0.1 degree kick! :
    /scratch/p66/ars599/archive/cj368/restart/atm module load conda/analysis3 python ~mrd599/src/python/umfile/perturbIC.py -a **0.1** -s 0 cj368a.da19650101_00

Then under the rose/cylc your job folder
you can do this
WARM_RESTART=true WARM_RESTART_DATE='19650101' WARM_RESTART_DIR='/scratch/p66/ars599/archive/cj368' WARM_RESTART_NRUN=true WARM_RESTART_RUNID='cj368'

  1. similar to the previous one but in more more proper way. Details in my Github and the codes are generated by @Lynn from BoM.

Same, under the rose/cylc your job folder
WARM_RESTART=true WARM_RESTART_DATE='19650101' WARM_RESTART_DIR='/scratch/p66/ars599/archive/cj368' WARM_RESTART_NRUN=true WARM_RESTART_RUNID='cj368'

Now we directly modify this initial file, and restart the dump.
the file will be in this format:


The rest of how to did it is in the Github:

So for your case, I guess option 1) is more convenient. Let me know if you got any issue.

1 Like

Hi Arnold,

Thanks for getting back to me!

I think option 1 would be the simpler approach. Would you be willing to share your perturbIC python script? I guess you are adding 0.1 degrees to all grid points? However I am not sure how the restart file is set up.


The script is from Martin. Can you access the following file?


Could you provide me with information about your run and the job ID? This will allow me to determine the location of the restart file.

Please copy your job setup to the shared folder we used before. Once that’s done, I will review it.



1 Like

Thanks Arnold,

No I can’t access that file as it’s in Martin’s home directory. Do you happen to have a copy of it?

I know which years of my previous simulation I would like to modify and where the restart files are located. I’m just not sure about the approach of modifying these restart files ($SUITEID}a.dayyyymmdd_00), so it would be super helpful to see that script.



1 Like

Hi Arnold,

Thanks for making that script available. I am starting to use it, however there are some modules that are not available (umfile and um_fileheaders). Do you know how I can access these?


Hi Zoe and Arnold,

I’d been using this script for the runs I was doing a little while ago, and I think there are several versions floating around. For using the umfile and um_fileheaders modules, using:

module use ~access/modules
module load pythonlib/umfile_utils

was working for me a little while ago, which I saw over here.

There’s also a version of the script that @tammasloughran put together which lets you set the random seed. There can be a couple of clashes with module/python versions when using this version though. I had some notes here based on Tammas’ advice going through what ended up working.

1 Like

@zoegillett27 Have you resolved this request, or are there still outstanding issues? Would it help others if they could see a summary of the resolution?