(back up to CurrentWork)
Paleo Forcing
June ‘07
Hooray for scientific communication. Somewhat after the fact, someone’s pointed out that the orbital functionality is already in the UM>5.2. For consistency, and because they wrote far more comprehensive explanations of what’s happening, I’ll backport that instead of using my homebrew version.
I’ve added some handedit scripts such that arbitrary fixed orbital parameters can be used - the next release should have these, and the verylong format, specifiable via the UM. The orbital stuff will now have 3 options - 1) fixed, user specified 2) calculated online (for ± 1 Myr via the 6.1 mod and 3) precalculated, read in from a table. This last will allow values ± 250 Myr (i.e. Laskar 2004, Astronomy and Astrophysics - prob only useful back to −65 Myr), for anyone who’s really picky about their orbital parameters.
The plan for specifying orbital forcing is now as follows. Please comment if you want something else and I’ll do that instead!
1) Fixed, modern defaults. Hardcoded into model, exact values for Julian2000 from UM6.1
2) Fixed, user specified year. Specify a year via the UMUI (and a calculation option, see below) and the model will calculate appropriate orbital params and stay fixed at those values for the course of the run
3) Varying, calculated online. Calculate orbital parameters based on the model year every new year, using the Berger78 method as implemented at UM6.1 (valid ± 1Myr BP)
4) Varying, using precalculated tables. Calculate orbital parameters based on the model year every new year, derived from precalculated tables i.e. Laskar04 (valid for whenever you can find values for. Laskar 04 claims some use up to −100Myr→20Myr)
Options 3) and 4) can additionally use an “acceleration” factor where the orbital forcing is speeded up. For example, with a factor of 10, 20kyr of orbital forcing would be applied over a 2000yr run
More testing of negative paleo-dates in FAMOUS currently implies that they’re fine in the model, but xconv/conv.sh based programs choke on them in postprocessing. ff2pp looks OK, so there is a way of getting pp files out, but currently not netCDF. Jeff is looking at this.
- The problem:
FAMOUS isn’t set up to cope with continuously changing orbital forcing or ice sheet masks. Also it’s rather restricted in terms of the range of dates it can handle.
- The solution:
Julia Tindall and the Bristol people have some helpful mods from LGM/deglaciation work. Currently I’m working on making these a little more general, so that we can use more arbitrary dates.
So far, this has involved expanding the length of dump/data filenames to cope with positive and negative dates up to 999 million. The UM doesn’t seem to have much of a problem with -ve years, per se., and a 32bit integer system should cope with ± 2 billion as far as year numbers go. Other problems may yet crop up in this area though.
Julia’s orbital forcings mod reads in precalculated orbital parameters for −21k → present, and linearly interpolates for each year between the nearest thousands. The precalculation code, by Michel Crucifix, based on Andre Berger’s 1978 (JAS 35) solution, isn’t computationally heavy, so I’ve included a modified version in the model itself so that the calculation can now happen online. The 1978 solution is only valid for ± 1Myr
- Technical details
long_output_names.mod | model mod | lets the model cope with filenames ± 999Myr |
configure_execs | compile script | allows rebuild of the small execs |
(calc_solar_params.mod) | model mod | does online calculation of orbital parameters for ± 1Myr bp (homebrew version) |
orbital_parameters-6.1.mod | model mod | does online calculation of orbital parameters for ± 1Myr bp (6.1 backport) |
notes
some of the “small executables” (i.e. qxhistreport) need to be rebuilt to cope nicely with the longer names for things like continuation and automatic archiving runs to work properly. This is a bit of a pain. You need to run the configure_execs script mentioned above (check paths are OK, c.f. UM4.5 Guide, section 3.3.8), enable “Using test small executables” in the UMUI and then handedit EXECN in SCRIPT to point to the rebuilt execs. The rebuild of the small execs should not be necessary by the time this hits release, as the modified versions will be used as standard.