CABLE site runs with ACCESS forcing

There is potential value in being able to run CABLE standalone for one or more locations (sites) using forcing taken from ACCESS model simulations. This may be an easier option for investigating different behaviour between online and offline simulations as a step towards running global simulations.

This topic captures notes associated with this task.

Getting met forcing from ACCESS-ESM1.5

Timeseries output from grid-cells is needed. The list of grid-cells is supplied through the domain field defined in the STASHC file for an ACCESS-ESM1.5 run. Examples are DGTS_PT (21 locations, probably mostly flux towers), DCO2TS (locations of atmospheric CO2 monitoring sites), DCO2TSL (similar to DCO2TS but for variables defined on model levels rather than just at the surface).

The required time field in STASHC is TALLTS.

The variables to be output are listed in the STASHC file by section and number. This is what I have currently used to match up with what CABLE requires

Section Number StashMaster CABLE
0 409 SURFACE PRESSURE AFTER TIMESTEP Psurf
1 235 TOTAL DOWNWARD SURFACE SW FLUX SWdown
2 207 DOWNWARD LW RAD FLUX: SURFACE LWdown
3 230 10 METRE WIND SPEED ON C GRID Wind
3 236 TEMPERATURE AT 1.5M Tair
3 237 SPECIFIC HUMIDITY AT 1.5M Qair
5 216 TOTAL PRECIPITATION RATE KG/M2/S Rainf

In an ESM1.5 set-up, the output is requested in the STASHC file using syntax like this:

&STREQ IMOD= 1, ISEC=0, ITEM=409, IDOM=33, ITIM=19, IUSE=12 /

In this case the DGTS_PT domain is the 33rd in the file, and the TALLTS time field is the 19th in the file. IUSE determines which output file the data is written to. In this case it goes to *.pg files.

If adding output requests to the STASHC file, remember to increase the number (NUM_REQ) at the top of the file

&STASHNUM NUM_REQ= 280, NUM_DOM=37, NUM_TIM=20, NUM_USE=12 /

Note that the radiation output will be at the 3 hourly radiation timestep. Other output will be half-hourly.

Do we want to add the atmospheric CO2 concentration to that list? Is it possible to output it in that way?

Hi @clairecarouge , yes - at some point we will probably want to add CO2. At this stage I was just trying to document what I’d done so far.

1 Like

Re-formatting ACCESS output for CABLE standalone site input

This documents the steps I used to convert ACCESS output to a file that CABLE standalone could use. Not all steps may be required and there will, no doubt, be better and more efficient ways to do this. The ACCESS output was for the DGTS_PT domain which is 21 grid-cells. The 9th in the list matches the approximate location of the Tumbarumba flux tower site.

  • Converted *.pg (monthly) files to netcdf and combine across the 3 years that I’d run ACCESS. Did this separately for the radiation fields (3-hourly) and the other fields (half-hourly). Used a convsh script, conv2nc.tcl (e.g. /g/data/p66/rml599/scripts/conv2nc.tcl). fieldlist defines which variables in the *.pg files are converted (counting from 0 and consistent with the listing if viewing a file using xconv).
  • Interpolated radiation data to half-hourly using cdo intntime,6 ifile ofile. [Gave 5 less timesteps than half-hourly data as no extrapolation beyond last radiation output.]
  • Changed variable names using cdo chname,oldname,newname ifile ofile
  • Selected one site (Tumbarumba) from netcdf files using cdo selgridcell,9 ifile ofile. This command coped with the input netcdf file not being on a lon-lat grid. It also looked possible to select more than one site by providing a list of ‘grid-cell’ numbers.
  • Merged radiation timeseries with other timeseries using cdo merge ifile1 ifile2 ofile. [Last 5 timesteps discarded so that the length of the timeseries matched.]
  • Convert time units using cdo settunits,seconds ifile ofile
  • After this I started hacking the netcdf file directly by converting backwards and forwards from ascii to binary. Things I learnt along the way:
    a. the time units need to be in the form YYYY-MM-DD, ACCESS had given 101-1-1, crashing CABLE.
    b. CABLE standalone single site assumes timeseries is in local time, so need to add in time:coordinate = “GMT”
    c. convsh does not give sensible attributes for the wind speed variable. Need to at least add in the units.
    d. cdo selgridcell had reduced the dimensions of the variables to just time. CABLE looks for an x dimension (also others?)
    e. Added in latitude, longitude, elevation and height arrays to match what was in TumbaFluxnet.1.3_met.nc

After all this, CABLE ran and appeared to give plausible results. Now we just need a cleaner way of doing this.

1 Like

The time variable needs more work. I note that the documentation says it should be double precision. In my reformatting I don’t seem to have enough precision - the timestep calculation was OK in my first run but when trying to restart and run for an extra year, it wasn’t OK, 1808s instead of 1800s.

Also from the restarted run, the log file tells me that the run goes from 2004 to 2005 but the output netcdf file has time running from 2001.