Set up ACCESS-ESM1.5 for Miocene land-sea mask

This is a work-in-progress guide to setting up ACCESS-ESM1.5 for the Mid-Miocene climate optimum (15 Ma). There are several aspects that are unfinished, but posting here now as it may be useful as a starting point. The scripts referred to here in this github repository and the accompanying files will be added to lg87 on Gadi in the near future. Some of the following is a clone of the README from the github repo, but some additional steps will be added for starting the experiments.

Temporary location is:
/g/data/y99/dkh157/access_esm/bdy_setup/access_esm_miocene

Part 1: Creating the new restart files

1.1 Create the ocean input files

Go into the directory make_ocean. Run the following:

  • make_topog.py : This interpolates the original Miocene topography (0.5 deg resolution) onto the model grid.
  • adjust_topo_mio.py : This gets rid of the isolated ocean grid cells (lakes and narrow straits), and makes a few manual adjustments. The output is topog_mio_v3.nc which is the new ocean bathymetry file.
  • fill_restart_gaps_mio.py : This extrapolates the pre-industrial temperature/salinity restart file onto the new land-seak mask.
  • basin_mask_mio.py : Adjusts basin_mask.nc for the new land-sea mask
  • bgc_restart_mio.py : Adjusts csiro_bgc.res.nc for the new land-sea mask
  • bgc_sediment_mio.py : Adjusts csiro_bgc_sediment.res.nc for the new land-sea mask
  • fix_kmt.py : Adjusts kmt.nc for the new land-sea mask
  • ssw_mio.py : Adjusts ssw_atten_depth.nc for the new land-sea mask

1.2 Create the coupler grids

Go into the directory make_coupler_grids. Run the following:

  • regrid_um_mask.py : Updates the masks.nc for the new land-sea mask (using topog_mio_v3.nc). This also generates landfrac_um1t.nc, which is the fractional land-sea mask for the Miocene.
  • make_scrip_files.ncl : An NCL script to convert the grids and masks into SCRIP files for ESMF
  • run_esmf_regrid.sh : Generates the remapping files using ESMF_RegridWeightGen
  • run_rename_oasis.sh : Renames the remapping files using OASIS conventions for the model

1.3 Create the atmos restart files

Go into the directory make_atmos. Run the following:

  • make_lsm.py : Generates a netcdf file of the new binary land-sea mask called lsm_mio_v3.nc, using the landfrac_um1t.nc fractional land mask.
  • interp_fields_mio.py : Uses nearest neighbour interpolation to create a new atmos restart file on the updated land-sea mask. The new restart file is called restart.mio. This script relies on utility scripts located in:
    /g/data/access/projects/access/apps/pythonlib/umfile_utils/
  • interp_fields_mio_arg.py : This is a command-line script (using argparse) requiring an input and output file of ancillary files. This should be done as in the following:
  • ./interp_fields_mio_arg.py cable_vegfunc_N96.anc cable_vegfunc_N96.anc.mio
  • ./interp_fields_mio_arg.py qrclim.slt qrclim.slt.mio
  • ./interp_fields_mio_arg.py qrclim.smow qrclim.smow.mio
  • ./interp_fields_mio_arg.py qrparm.mask qrparm.mask.mio
  • ./interp_fields_mio_arg.py qrparm.soil_igbp_vg qrparm.soil_igbp_vg.mio

In each case above, the ā€œinputā€ is the pre-industrial ancillary file, and the ā€œoutputā€ is the Miocene one.

1.4 Make coupler restart files

Go to directory coupler_inputs. Run the following:

  • fix_a2i_mio.py : Adjusts a2i.nc flux file for the new mask.
  • fix_i2a_mio.py : Adjusts i2a.nc flux file for the new mask.
  • fix_o2i_mio.py : Adjusts o2i.nc flux file for the new mask.

1.5 Make ocean common files

Go to directory oc_common. Run the following:

  • dust_mio.py : Adjusts dust.nc file for new mask.
  • fice_mio.py : Adjusts ocmip2_fice_monthly_om1p5_bc.nc file for the new mask.
  • press_mio.py : Adjusts ocmip2_press_monthly_om1p5_bc.nc file for the new mask.
  • xkw_mio.py : Adjusts ocmip2_xkw_monthly_om1p5_bc.nc file for the new mask.

Part 2 Set up experiment on Gadi

2.1 Clone pre-industrial configuration

First, clone the pre-industrial configuration of ACCESS-ESM1.5.

git clone https://github.com/coecms/esm-pre-industrial.git

You should first test that you can run this, by adapting it to your own project in config.yaml, and then run using
payu run -n 1

2.2 Make a new set of input and restart folders

Create a new set of input and restart folders that you can edit, that mirrors the original structure of inputs. (See config.yaml in the pre-industrial case for a list of input folders that needs to be emulated.)

In my case, I create the input folder:
/g/data/y99/dkh157/access_esm/input/mio_v3
with subfolders
atmosphere, coupler, ice, ocean, start_dump.

And
/g/data/y99/dkh157/access_esm/restart/mio_v3
with subfolders
atmosphere, coupler, ice, ocean

In these folders, you can either copy or soft-link all of the original restart and input files from the pre-industrial configuration, which are at:
/g/data/access/payu/access-esm/input/pre-industrial
and
/g/data/access/payu/access-esm/restart/pre-industrial

In my case, my new experiment has the name mio_v3 instead of pre-industrial. I will use that from here on.

2.3 Replace atmosphere input files

In your your new input/mio_v3/atmosphere folder on gdata, replace the following files:

cable_vegfunc_N96.anc
qrclim.slt
qrclim.smow
qrparm.mask
qrparm.soil_igbp_vg

with the equivalent files with the extension *.mio added to them from Step 1.3.

2.4 Replace coupler input files

In the coupler directory of your input folder, you need to replace the following files with your new version:

masks.nc
rmp_cice_to_um1v_CONSERV_FRACNNEI.nc
rmp_um1u_to_cice_CONSERV_FRACNNEI.nc
rmp_cice_to_um1t_CONSERV_FRACNNEI.nc
rmp_um1t_to_cice_CONSERV_DESTAREA.nc
rmp_um1v_to_cice_CONSERV_FRACNNEI.nc
rmp_cice_to_um1u_CONSERV_FRACNNEI.nc
rmp_um1t_to_cice_CONSERV_FRACNNEI.nc

2.5 ice directory

In the ice directory of your input, replace:
kmt.nc

2.6 ocean directory

First go to the common directory under ocean.

2.6.1 copy ocean grid files

First, you need to copy the grid files for the ocean mosaic input. These are called:

ocean_vgrid.nc
ocean_hgrid.nc
ocean_mosaic.nc
grid_spec.nc

These grid files donā€™t need to be modified between experiments, but I am using a different way of specifying the ocean grid than the default ACCESS-ESM1.5 configuration. So they need to be copied once.

Those grid files are currently located at:
/g/data/y99/dkh157/access_esm/input/mio_v4/ocean/common

2.6.2 copy new topography files

The new topography files that are specific to this configuration are called:

basin_mask.nc
ssw_atten_depth.nc
topog.nc

Those three files would have been generated by running the scripts in Step 1. They need to be replaced according to your specific topography.

2.6.3 Files to go in the ā€˜pre-industrialā€™ subfolder

In the pre-industrial subfolder, there are 4 files to be replaced with the new configuration:

dust.nc
ocmip2_fice_monthly_om1p5_bc.nc
ocmip2_press_monthly_om1p5_bc.nc
ocmip2_xkw_monthly_om1p5_bc.nc

(All other files can stay the same.)

2.7 Update start_dump folder

In the start_dump folder, there is only one file to be replaced:
pre-industrial.astart

This should be replaced with your new atmosphere restart file.

Part 3 Update restart directory

Now go to your new restart directory, which has subfolders:
atmosphere, coupler, ice, ocean

3.1 update atmosphere restart

The atmosphere restart folder has only one file to be updated:
restart_dump.astart

Replace with your new atmosphere restart file

3.2 update coupler restart

Here there are 3 files to be updated according to your new configuration:

a2i.nc
i2a.nc
o2i.nc

3.3 ice restart

Ice restart folder can be left unchanged.

3.4 update ocean restart

Here I actually delete most of the ocean restart files, because I treat this as a ā€œcold startā€. This is necessary because you canā€™t have non-zero velocities defined anywhere that is supposed to be land, and the easiest way to achieve that is a cold start with zero velocities everywhere. The only files I keep are:

csiro_bgc.res.nc
csiro_bgc_sediment.res.nc
ocean_solo.res
ocean_temp_salt.res.nc

The ocean_temp_salt.res.nc file and the 2 bgc files have been created by the scripts in Step 1. Replace with the new configuration.
For ocean_solo.res, this needs to be updated so that the ā€œCurrent model timeā€ is the same as the ā€œModel start timeā€. In my example I have the following:

     3        (Calendar: no_calendar=0, thirty_day_months=1, julian=2, gregorian=3, noleap=4)
     1     1     1     0     0     0        Model start time:   year, month, day, hour, minute, second
     1     1     1     0     0     0        Current model time: year, month, day, hour, minute, second

It doesnā€™t have to necessarily be 1 1 1 0 0 0, it can be whatever date matches your atmosphere restart for example. But the important thing is that the current time matches the start time, because then the ocean recognises this as a cold start.

Part 4: set up new run

Go back to your run directory which was cloned from the pre-industrial directory. Here you need to modify the input and restart directories to point to your new locations that you have created instead of the pre-industrial default one. As a template for what needs to be changed, I suggest looking at an example config.yaml where I have modified the inputs:
/home/157/dkh157/ACCESS/mio_v3/config.yaml

For example, if you do a diff between my modified config.yaml and the standard pre-industrial config.yaml, you can see what I have changed in terms of the input and restart directories, and the jobname.

Once youā€™ve edited config.yaml, you can try running the model. To do this for a new run I would always start with a payu setup:

payu setup
payu sweep
payu run -n 1

Good luck!

2 Likes