Update Aquaplanet slab ocean authored by Moritz Guenther's avatar Moritz Guenther
# How to run aquaplanet slab ocean experiments using MPI-ESM
Currently, one has to use the `mpiesm-landveg` branch if you'd like to run aquaplanet slab ocean.
The example shown below is based on [previous guideline in here](https://gitlab.dkrz.de/jsbach/jsbach/-/wikis/uploads/3bae9f07c2ab3a9c5ac33a6894f9c211/Getting_Started_with_Git_for_MPIESM.pdf)
# Download model
### Clone mpiesm without --recursive and put it in directory mpiesm-landveg
```bash
git clone git@git.mpimet.mpg.de:mpiesm.git mpiesm-landveg
cd mpiesm-landveg
# Check which branch you're on
git branch
```
### Check out `mpiesm-landveg` branch
```bash
git checkout mpiesm-landveg
# Check which branch you're on
git branch
```
### Check whether submodules are initialised and/or checked out (likely not)
```bash
git submodule
# This should list all submodules not yet initialised or checked out
```
### Initialise and check out submodules, then check again
```bash
git submodule update --init
git submodule
```
# Compile model
### Read RECIPE.landveg
### Edit landveg-compile.ksh to your needs
Of primary importance for aquaplanet slab ocean, you will be using `mpiesm-as` (echam6 only).
```bash
vers=aqua # model version (tag used in the executable name)
cplmod=mpiesm-as # coupled model name: mpiesm-s (jsbach3, cbalance, hd)
# mpiesm-s4 (jsbach4)
# mpiesm-as (echam6)
# mpiesm-as4 (echam6 with jsbach4)
# mpiesm-asob (mpiesm-1.2)
compiler=intel # compiler to be used (nag/intel/gcc)
configure=yes # yes: run configure - mandatory if running the first time model version $vers
automake=no # yes: run automake, e.g. if dependencies changed (only with configure=yes)
make_argument="-j 8" # number of processes for make, 'clean' or 'distclean'
# (make clean needs the modules, thus script is helpful)
```
### Execute landveg-compile.ksh
```bash
./landveg-compile.ksh
```
# Generate run script
The recipe/guideline on how to do this is in an older version of RECIPE.landveg. However, with the new checkout of `mpiesm-landveg`, this is no longer available. Hence, a snippet of that guideline is attached here.
```yaml
Running
---------
For standard simulation with mpiesm-asob we recommend to use runscripts generated
with mkexp (compare RECIPE section 3 and below).
For all other configurations generate the run scripts using Create_TASKS.frm
cd util/running/tools/
./Create_TASKS.frm <cplmod> --id <expid> [--node <node>]
with <cplmod> as defined above, <expid> being an experiment id of your choice,
and <node> being the computer name ('linux-x64' for CIS linux PCs, optional for
mistral).
Adapt the setup file you just created. Especially,
atmvers / srfvers (executable id) has to be consitent to the version 'vers'
defined in the compile script.
account account for computing time, e.g. mj0060, needs to be set on mistral
Then run Create_TASKS.frm again with the same parameters.
./Create_TASKS.frm <cplmod> --id <expid> [--node <node>]
```
### Here's an example for the aquaplanet slab ocean
```bash
cd util/running/tools/
./Create_TASKS.frm mpiesm-as --id aqua
```
This creates a setup file, `setup_mpiesm-as_aqua` in the `util/running/setup/` folder. \
Modify `setup_mpiesm-as_aqua`
```
atm_out_filetype=2
forcing=climatology
iaero=0
isolrad=0
nsoil=1
compile_path=/work/mh1421/mxxxxxx/mpiesm-landveg/build-${cplmod}-aqua/bin
export data=/work/mh1421/mxxxxxx/experiments_landveg
export archive=/work/mh1421/mxxxxxx/experiments_landveg
work=/work/mh1421/mxxxxxx/experiments_landveg
account='mh1421'
```
`experiments_landveg` is a folder created beforehand to store model output
### Generating run script for each experiment
```bash
cd util/running/tools
./Create_TASKS.frm -F setup_mpiesm-as_aqua --id aqua0101 mpiesm-as
```
### Edits to run script
Not yet there, but getting close...... Namelist parameters and input forcing files must be specified in accordance to aquaplanet slab ocean requirements.
**Modifications to namelist settings**
1. Under **runctl**, please add \
`echo " l_orbvsop87 = .false." >> namelist.echam` \
`echo " lmlo = .true." >> namelist.echam` \
`echo " lmlo_ice = .false." >> namelist.echam`
2. Under **radctl**, please add \
`echo " ldiur = false" >> namelist.echam` \
`echo " cecc = 0.0" >> namelist.echam` \
`echo " cobld = 0.0" >> namelist.echam` \
Please also comment out as follows:
```bash
#if [[ ${read_ghg} == false ]]; then
echo " ighg = 0" >> namelist.echam
echo " icfc = 2" >> namelist.echam
echo " ich4 = 3" >> namelist.echam
#else
# echo " ighg = 1" >> namelist.echam
# echo " icfc = 4" >> namelist.echam
# echo " ich4 = 4" >> namelist.echam
#fi
#if [ "${piControl}" = "true" ]; then
# echo " co2vmr = 284.3169860840e-06" >> namelist.echam
echo " co2vmr = 280.0e-06" >> namelist.echam
echo " ch4vmr = 808.2490234375e-09" >> namelist.echam
echo " n2ovmr = 273.0210571289e-09" >> namelist.echam
# echo " yr_perp = 1850" >> namelist.echam
#fi
```
3. Under **greenhouse gases** \
Please comment out and add 3 lines like this:
```bash
#if [[ ${co2_transport} = true ]]; then
# ico2=1 # prognostic CO2 mass mixing ratio
# lco2_scenario=false
#elif [[ ${read_ghg} == true ]]; then
# lco2_scenario=true # use CO2 scenario in jsbach
# ico2=4 # use CO2 scenario in echam radiation
#else
# ico2=2 # uniform CO2 volume mixing ratio
#fi
lco2_scenario=false
ico2=2
#if [[ ${n2o_transport} = true ]]; then
# in2o=1 # prognostic N2O mass mixing ratio
#elif [[ ${read_ghg} == true ]]; then
# in2o=4 # use N2O scenario in echam radiation
#else
# in2o=3 # uniform N2O volume mixing ratio
#fi
in2o=3
```
**Modifications to linking input files**
While many input forcing files need to change, this is done by changing the link/pointing. However, to run with slab ocean, you'll need an extra file, the `heatflux` or `qflx` file. Assume for the moment you have this file `T63_heatflux_test.nc`. There are also two other files that are not necessarily readily available, `T63GR15_surf_aqua_irad_noseason_final.nc` and `T63_ozone_historical_1850.nc` \
Below, unless otherwise stated, `#` means to comment these lines out and be sure to add the new pointers.
1. 3d initial file of atmosphere (spectral, no dependence on lsmask)
```bash
#get_file ${atmmod} input ${res_atm}L${vres_atm}_jan_spec.nc unit.23
aquadir=/pool/data/ECHAM6/T63/aqua
get_file ${atmmod} input ${aquadir}/JW_balanced_init_spec_${res_atm}L${vres_atm}_ECHAM.nc unit.23
```
2. Surface boundary conditions (land/sea mask, albedo etc.), annual mean data; file depends on lsmask
```bash
aquaindir=/work/mh1421/m300466/mpiesm-landveg/input/tra
#get_file ${atmmod} input ${res_atm}${res_oce}_jan_surf.nc unit.24
get_file ${atmmod} input ${aquaindir}/echam6/T63GR15_surf_aqua_irad_noseason_final.nc unit.24
```
3. AMIP sst and sea ice concentration; files depend on lsmask
```bash
if [ "${forcing}" = "amip" ]; then
typeset -Z4 yr yp1 ym1
yr=$(format_date -f4 -- ${startdate} | cut -f1 -d" ")
(( yp1 = yr + 1 ))
(( ym1 = yr - 1 ))
for yrs in ${yr} ${yp1} ${ym1}; do
amipdir=/pool/data/ECHAM6/input/${archive_rev_echam6}/${res_atm}/amip
#get_file ${atmmod} input ${amipdir}/${res_atm}_amipsst_${yrs}.nc sst${yrs}
#get_file ${atmmod} input ${amipdir}/${res_atm}_amipsic_${yrs}.nc ice${yrs}
get_file ${atmmod} input ${aquadir}/${res_atm}_sst_aqua_Qobs.nc sst${yrs}
get_file ${atmmod} input ${aquadir}/${res_atm}_sic_aqua.nc ice${yrs}
done
else
#get_file ${atmmod} input ${res_atm}_amipsst_clim.nc unit.20
#get_file ${atmmod} input ${res_atm}_amipsic_clim.nc unit.96
get_file ${atmmod} input ${aquadir}/${res_atm}_sst_aqua_Qobs.nc unit.20
get_file ${atmmod} input ${aquadir}/${res_atm}_sic_aqua.nc unit.96
fi
```
4. Heat fluxes for mixed layer ocean (needed for slab ocean and needs to be added entirely)
```yaml
#
# heat fluxes for mixed layer ocean
#
get_file ${atmmod} input ${aquaindir}/echam6/T63_heatflux_test.nc unit.42
```
5. Ozone
```bash
# # ozone
# if [[ ${io3} = 4 ]]; then # read ozon climatology from file
# ozonedir=/pool/data/ECHAM6/input/${archive_rev_echam6}/${res_atm}/ozone
# if [[ ${piControl} = true ]]; then
# get_file ${atmmod} input ${ozonedir}/${res_atm}_ozone_picontrol.nc ozon${yrs}
# else
# if [[ ${yrs} -le 1849 ]]; then
# get_file ${atmmod} input ${ozonedir}/${res_atm}_ozone_${scenario}_1850.nc ozon${yrs}
# else
# if [[ ${yrs} -le 2014 ]]; then
# get_file ${atmmod} input ${ozonedir}/${res_atm}_ozone_historical_${yrs}.nc ozon${yrs}
# else
# get_file ${atmmod} input ${ozonedir}/${res_atm}_ozone_${scenario}_${yrs}.nc ozon${yrs}
# fi
# fi
# fi
# fi
get_file ${atmmod} input ${aquaindir}/echam6/T63_ozone_historical_1850.nc ozon${yrs}
```
6. Soil layers
```bash
#get_file ${srfmod} input jsbach_${grid}_${nsoil}layers_${refyear}_${dvtag}${surface_tag}.nc jsbach.nc
get_file ${srfmod} input ${aquadir}/jsbach_${res_atm}${res_oce}_11tiles_1976_aqua.nc jsbach.nc
```
7. Land use maps/ cover fraction
```bash
# [[ ${startyear} -le 1992 ]] && ludir=/pool/data/JSBACH/input/${archive_rev_jsbach}/${res_srf}/land_use_maps
# [[ ${startyear} -gt 1992 ]] && ludir=/pool/data/JSBACH/input/${archive_rev_jsbach}/${res_srf}/land_use_maps/A1B
ludir=/pool/data/JSBACH/input/${archive_rev_jsbach}/${res_srf}/land_use_maps
# get_file ${srfmod} input ${ludir}/cover_fract_${res_srf}_${ntiles}tiles_${startyear}.nc cover_fract.${startyear}.nc
get_file ${srfmod} input ${ludir}/cover_fract_${res_srf}_${ntiles}tiles_2015.nc cover_fract.${startyear}.nc
```
A little more on preparations of these input files, particularly for aquaplanet slab ocean.
- Ozone file needs a vertical profile to ensure radiative properties of the stratosphere and troposphere, but for an aquaplanet slab ocean, we would need zonally invariant and hemispherically symmetric ozone concentrations.
- Solar irradiance must have no seasons. Here, we ensure eccentricity and obliquity is also set to zero. However, all these do not account for varying zenith angle of the sun.
- 'qfl' file: The simplest option is to use no correction 'qflx=0' everywhere. Here, the system would respond to the forcing and can arrive at a different mean state climate, fully free to evolve.
- 'qflx' file to constrain to the same climate mean state. Here, the 'qlfx' file is normally obtained by first running a slab ocean aquaplanet with zero flux correction in order to get the climatological SST. The SST is then used to run a pure aquaplanet run with prescribed SST that has been post-processed (i.e. climatological mean, zonally averaged, hemispherically symmetric) for about 20 years, and from which we can get the surface flux associated with the mean climate state. This surface flux then requires post-processing to get a climatological mean, zonally invariant and hemispherically symmetric flux file, that is then used as the 'qflx' file input to the actual aquaplanet slab ocean run.
# Submit job
```bash
cd experiments/aqua0101/scripts
sbatch aqua0101.run
# How to run aquaplanet slab ocean experiments using MPI-ESM
Currently, one has to use the `mpiesm-landveg` branch if you'd like to run aquaplanet slab ocean.
Update: This is not exactly true anymore, you can find out how to compile and use the p8-cdy branch [here](https://gitlab.dkrz.de/cdy/cdy-technical-page/-/wikis/Setup-and-run-CDY-branch-of-ECHAM). The advantage of that is that it's the same ECHAM version as in the MPI-ESM-p8-cdy branch, the downside is that `mkexp` doesn't work with it and you have to modify the run scripts manually, which can be a bit more challenging.
The example shown below is based on [previous guideline in here](https://gitlab.dkrz.de/jsbach/jsbach/-/wikis/uploads/3bae9f07c2ab3a9c5ac33a6894f9c211/Getting_Started_with_Git_for_MPIESM.pdf)
# Download model
### Clone mpiesm without --recursive and put it in directory mpiesm-landveg
```bash
git clone git@git.mpimet.mpg.de:mpiesm.git mpiesm-landveg
cd mpiesm-landveg
# Check which branch you're on
git branch
```
### Check out `mpiesm-landveg` branch
```bash
git checkout mpiesm-landveg
# Check which branch you're on
git branch
```
### Check whether submodules are initialised and/or checked out (likely not)
```bash
git submodule
# This should list all submodules not yet initialised or checked out
```
### Initialise and check out submodules, then check again
```bash
git submodule update --init
git submodule
```
# Compile model
### Read RECIPE.landveg
### Edit landveg-compile.ksh to your needs
Of primary importance for aquaplanet slab ocean, you will be using `mpiesm-as` (echam6 only).
```bash
vers=aqua # model version (tag used in the executable name)
cplmod=mpiesm-as # coupled model name: mpiesm-s (jsbach3, cbalance, hd)
# mpiesm-s4 (jsbach4)
# mpiesm-as (echam6)
# mpiesm-as4 (echam6 with jsbach4)
# mpiesm-asob (mpiesm-1.2)
compiler=intel # compiler to be used (nag/intel/gcc)
configure=yes # yes: run configure - mandatory if running the first time model version $vers
automake=no # yes: run automake, e.g. if dependencies changed (only with configure=yes)
make_argument="-j 8" # number of processes for make, 'clean' or 'distclean'
# (make clean needs the modules, thus script is helpful)
```
### Execute landveg-compile.ksh
```bash
./landveg-compile.ksh
```
# Generate run script
The recipe/guideline on how to do this is in an older version of RECIPE.landveg. However, with the new checkout of `mpiesm-landveg`, this is no longer available. Hence, a snippet of that guideline is attached here.
```yaml
Running
---------
For standard simulation with mpiesm-asob we recommend to use runscripts generated
with mkexp (compare RECIPE section 3 and below).
For all other configurations generate the run scripts using Create_TASKS.frm
cd util/running/tools/
./Create_TASKS.frm <cplmod> --id <expid> [--node <node>]
with <cplmod> as defined above, <expid> being an experiment id of your choice,
and <node> being the computer name ('linux-x64' for CIS linux PCs, optional for
mistral).
Adapt the setup file you just created. Especially,
atmvers / srfvers (executable id) has to be consitent to the version 'vers'
defined in the compile script.
account account for computing time, e.g. mj0060, needs to be set on mistral
Then run Create_TASKS.frm again with the same parameters.
./Create_TASKS.frm <cplmod> --id <expid> [--node <node>]
```
### Here's an example for the aquaplanet slab ocean
```bash
cd util/running/tools/
./Create_TASKS.frm mpiesm-as --id aqua
```
This creates a setup file, `setup_mpiesm-as_aqua` in the `util/running/setup/` folder. \
Modify `setup_mpiesm-as_aqua`
```
atm_out_filetype=2
forcing=climatology
iaero=0
isolrad=0
nsoil=1
compile_path=/work/mh1421/mxxxxxx/mpiesm-landveg/build-${cplmod}-aqua/bin
export data=/work/mh1421/mxxxxxx/experiments_landveg
export archive=/work/mh1421/mxxxxxx/experiments_landveg
work=/work/mh1421/mxxxxxx/experiments_landveg
account='mh1421'
```
`experiments_landveg` is a folder created beforehand to store model output
### Generating run script for each experiment
```bash
cd util/running/tools
./Create_TASKS.frm -F setup_mpiesm-as_aqua --id aqua0101 mpiesm-as
```
### Edits to run script
Not yet there, but getting close...... Namelist parameters and input forcing files must be specified in accordance to aquaplanet slab ocean requirements.
**Modifications to namelist settings**
1. Under **runctl**, please add \
`echo " l_orbvsop87 = .false." >> namelist.echam` \
`echo " lmlo = .true." >> namelist.echam` \
`echo " lmlo_ice = .false." >> namelist.echam`
2. Under **radctl**, please add \
`echo " ldiur = false" >> namelist.echam` \
`echo " cecc = 0.0" >> namelist.echam` \
`echo " cobld = 0.0" >> namelist.echam` \
Please also comment out as follows:
```bash
#if [[ ${read_ghg} == false ]]; then
echo " ighg = 0" >> namelist.echam
echo " icfc = 2" >> namelist.echam
echo " ich4 = 3" >> namelist.echam
#else
# echo " ighg = 1" >> namelist.echam
# echo " icfc = 4" >> namelist.echam
# echo " ich4 = 4" >> namelist.echam
#fi
#if [ "${piControl}" = "true" ]; then
# echo " co2vmr = 284.3169860840e-06" >> namelist.echam
echo " co2vmr = 280.0e-06" >> namelist.echam
echo " ch4vmr = 808.2490234375e-09" >> namelist.echam
echo " n2ovmr = 273.0210571289e-09" >> namelist.echam
# echo " yr_perp = 1850" >> namelist.echam
#fi
```
3. Under **greenhouse gases** \
Please comment out and add 3 lines like this:
```bash
#if [[ ${co2_transport} = true ]]; then
# ico2=1 # prognostic CO2 mass mixing ratio
# lco2_scenario=false
#elif [[ ${read_ghg} == true ]]; then
# lco2_scenario=true # use CO2 scenario in jsbach
# ico2=4 # use CO2 scenario in echam radiation
#else
# ico2=2 # uniform CO2 volume mixing ratio
#fi
lco2_scenario=false
ico2=2
#if [[ ${n2o_transport} = true ]]; then
# in2o=1 # prognostic N2O mass mixing ratio
#elif [[ ${read_ghg} == true ]]; then
# in2o=4 # use N2O scenario in echam radiation
#else
# in2o=3 # uniform N2O volume mixing ratio
#fi
in2o=3
```
**Modifications to linking input files**
While many input forcing files need to change, this is done by changing the link/pointing. However, to run with slab ocean, you'll need an extra file, the `heatflux` or `qflx` file. Assume for the moment you have this file `T63_heatflux_test.nc`. There are also two other files that are not necessarily readily available, `T63GR15_surf_aqua_irad_noseason_final.nc` and `T63_ozone_historical_1850.nc` \
Below, unless otherwise stated, `#` means to comment these lines out and be sure to add the new pointers.
1. 3d initial file of atmosphere (spectral, no dependence on lsmask)
```bash
#get_file ${atmmod} input ${res_atm}L${vres_atm}_jan_spec.nc unit.23
aquadir=/pool/data/ECHAM6/T63/aqua
get_file ${atmmod} input ${aquadir}/JW_balanced_init_spec_${res_atm}L${vres_atm}_ECHAM.nc unit.23
```
2. Surface boundary conditions (land/sea mask, albedo etc.), annual mean data; file depends on lsmask
```bash
aquaindir=/work/mh1421/m300466/mpiesm-landveg/input/tra
#get_file ${atmmod} input ${res_atm}${res_oce}_jan_surf.nc unit.24
get_file ${atmmod} input ${aquaindir}/echam6/T63GR15_surf_aqua_irad_noseason_final.nc unit.24
```
3. AMIP sst and sea ice concentration; files depend on lsmask
```bash
if [ "${forcing}" = "amip" ]; then
typeset -Z4 yr yp1 ym1
yr=$(format_date -f4 -- ${startdate} | cut -f1 -d" ")
(( yp1 = yr + 1 ))
(( ym1 = yr - 1 ))
for yrs in ${yr} ${yp1} ${ym1}; do
amipdir=/pool/data/ECHAM6/input/${archive_rev_echam6}/${res_atm}/amip
#get_file ${atmmod} input ${amipdir}/${res_atm}_amipsst_${yrs}.nc sst${yrs}
#get_file ${atmmod} input ${amipdir}/${res_atm}_amipsic_${yrs}.nc ice${yrs}
get_file ${atmmod} input ${aquadir}/${res_atm}_sst_aqua_Qobs.nc sst${yrs}
get_file ${atmmod} input ${aquadir}/${res_atm}_sic_aqua.nc ice${yrs}
done
else
#get_file ${atmmod} input ${res_atm}_amipsst_clim.nc unit.20
#get_file ${atmmod} input ${res_atm}_amipsic_clim.nc unit.96
get_file ${atmmod} input ${aquadir}/${res_atm}_sst_aqua_Qobs.nc unit.20
get_file ${atmmod} input ${aquadir}/${res_atm}_sic_aqua.nc unit.96
fi
```
4. Heat fluxes for mixed layer ocean (needed for slab ocean and needs to be added entirely)
```yaml
#
# heat fluxes for mixed layer ocean
#
get_file ${atmmod} input ${aquaindir}/echam6/T63_heatflux_test.nc unit.42
```
5. Ozone
```bash
# # ozone
# if [[ ${io3} = 4 ]]; then # read ozon climatology from file
# ozonedir=/pool/data/ECHAM6/input/${archive_rev_echam6}/${res_atm}/ozone
# if [[ ${piControl} = true ]]; then
# get_file ${atmmod} input ${ozonedir}/${res_atm}_ozone_picontrol.nc ozon${yrs}
# else
# if [[ ${yrs} -le 1849 ]]; then
# get_file ${atmmod} input ${ozonedir}/${res_atm}_ozone_${scenario}_1850.nc ozon${yrs}
# else
# if [[ ${yrs} -le 2014 ]]; then
# get_file ${atmmod} input ${ozonedir}/${res_atm}_ozone_historical_${yrs}.nc ozon${yrs}
# else
# get_file ${atmmod} input ${ozonedir}/${res_atm}_ozone_${scenario}_${yrs}.nc ozon${yrs}
# fi
# fi
# fi
# fi
get_file ${atmmod} input ${aquaindir}/echam6/T63_ozone_historical_1850.nc ozon${yrs}
```
6. Soil layers
```bash
#get_file ${srfmod} input jsbach_${grid}_${nsoil}layers_${refyear}_${dvtag}${surface_tag}.nc jsbach.nc
get_file ${srfmod} input ${aquadir}/jsbach_${res_atm}${res_oce}_11tiles_1976_aqua.nc jsbach.nc
```
7. Land use maps/ cover fraction
```bash
# [[ ${startyear} -le 1992 ]] && ludir=/pool/data/JSBACH/input/${archive_rev_jsbach}/${res_srf}/land_use_maps
# [[ ${startyear} -gt 1992 ]] && ludir=/pool/data/JSBACH/input/${archive_rev_jsbach}/${res_srf}/land_use_maps/A1B
ludir=/pool/data/JSBACH/input/${archive_rev_jsbach}/${res_srf}/land_use_maps
# get_file ${srfmod} input ${ludir}/cover_fract_${res_srf}_${ntiles}tiles_${startyear}.nc cover_fract.${startyear}.nc
get_file ${srfmod} input ${ludir}/cover_fract_${res_srf}_${ntiles}tiles_2015.nc cover_fract.${startyear}.nc
```
A little more on preparations of these input files, particularly for aquaplanet slab ocean.
- Ozone file needs a vertical profile to ensure radiative properties of the stratosphere and troposphere, but for an aquaplanet slab ocean, we would need zonally invariant and hemispherically symmetric ozone concentrations.
- Solar irradiance must have no seasons. Here, we ensure eccentricity and obliquity is also set to zero. However, all these do not account for varying zenith angle of the sun.
- 'qfl' file: The simplest option is to use no correction 'qflx=0' everywhere. Here, the system would respond to the forcing and can arrive at a different mean state climate, fully free to evolve.
- 'qflx' file to constrain to the same climate mean state. Here, the 'qlfx' file is normally obtained by first running a slab ocean aquaplanet with zero flux correction in order to get the climatological SST. The SST is then used to run a pure aquaplanet run with prescribed SST that has been post-processed (i.e. climatological mean, zonally averaged, hemispherically symmetric) for about 20 years, and from which we can get the surface flux associated with the mean climate state. This surface flux then requires post-processing to get a climatological mean, zonally invariant and hemispherically symmetric flux file, that is then used as the 'qflx' file input to the actual aquaplanet slab ocean run.
# Submit job
```bash
cd experiments/aqua0101/scripts
sbatch aqua0101.run
```
\ No newline at end of file