GENIE:EMBM solar and co2 forcings

How to run GENIE_eb_go_gs with time-dependent CO2 and shortwave radiative forcing
(M.J. June 2009) (and edits by JDA who wrote the initial code)

The EMBM will take a forcing file for shortwave (incoming solar radiation, volcanic and aerosol) and longwave (CO2-equivalent) forcing. I'm writing this bit of documentation because I need to use this forcing method myself and it's not currently documented anywhere. So no guarantees that I've got it right. Best you rigorously check and test your setup after following this howto before investing lots of time in long model runs.

I'm setting this up for a simple eb_go_gs run - I don't know how whether this will be overridden by CO2 settings in biogem, or whether it's possible to run free CO2 in biogem whilst forcing the solar radiation in this way (I suspect not). If you know the answers to these points, please jot them down here with a few pointers as to how others might go about doing it. [JDA suspects that the forcing routine will work in that it will over-rule the diagnosed biogem CO2 level, but has no idea whether this imposed value will then be passed back to biogem.]

setting GENIE up to read in a forcing file
To use a solar/CO2 forcing file you need to specify

in the embm section of your GENIE xml config file. GENIE will look for your forcing file in the embm restart (in) directory defined by the parameter rstdir_name in the embm configuration, and by default will look for a file named 'forcings.dat'. If you want to call the file something else (i.e. maybe some sort of experiment-specific-forcings name, which would probably be sensible), you can tell GENIE what filename to look for in the embm section of your config file:

how the forcing is calculated
The embm calculates the radiative forcing like so:

The 'set forcings' bit at the bottom of the above code snippet demonstrates how the forcings are calculated, from which we can glean how the file should be set out and in what form we should be adding the forcings in each row of the file:


 * 1) Model year
 * 2) CO2 (in ppm)
 * 3) aerosol (troposheric) forcing effect (in W/m<sup<2 )
 * 4) volcanic (stratospheric aerosol) forcing effect (in W/m<sup<2 )
 * 5) solar constant (in W/m<sup<2 )

Note that the forcings file should have a one-line header, and that the scheme is dumb to the year value (it just reads an integer which is unused), and simply uses one line per model year integrated. Therefore your forcings file should have a row for every year from year 1 up until the end of the period of changing forcing. After the values on the last line of the forcings file is read in, those values persist for the remainder of the model run, so you can run out to equilibrium easily without having to tediously create a long file of identical values.

So the forcings.dat file for e.g. a 2xC02 equilibrium run only needs to contain (assuming the default solconst of 1368):

Note that the multiplication factor of 4 applied in the code to sum of the aerosol and volcanic sources is the standard conversion between the surface of a disk and of a sphere. And the further factor of 1/0.7 is applied to correct for the planetary albedo. These changes are necessary when applying such forcings as changes to the solar constant (ie 0.7W/m^2 absorbed at the surface requires 4W/m^2 change to the solar constant).

As can be seen from the code snippet, there are also parameters solfac, volfac, aerofac which can be set in your config file to scale the effects of the various forcings, since these are relatively poorly known (defaults for these are 1.0 of course). Any desired change in the magnitude of the CO2 radiative forcing effect is already covered by the 5.35 (or was it 5.77) value elsewhere.