FAMOUS

(back up to CurrentWork)

Salinity drift


October ‘07

An iceberg calving field has been made by simply scaling the pattern derived for HadCM3 to match the FAMOUS water-loss - NB I didn’t repeat the process by which the HadCM3 field was derived using various regional components. This is included in the Summer ‘07 FAMOUS release. Whilst very small, salinity drift is still not zero, as the snow build up on land/ice is not constant - after 200 years running with the new iceberg field the original positive salinity drift has become a very small negative drift. In its present form the iceberg field is thus not suitable for really extended runs. It’s probably inappropriate for paleoruns anyway, seeing as it’s derived for modern conditions. To answer the questions in July below: snow on land is not reduced at any point, so this does “create” water in the system. And it’s not really desirable to have iceberg calving match the snow accumulation rate - iceberg calving is obvious dependent on the wider ice sheet growth/dynamics that we don’t have: having a constant rate is one thing, having a variable rate based on a (basically) arbitrary climate variable is just silly. It’s a quick fix that can be justified for a single, stable climate state - pretending we’ve got an iceberg model of any sort would be disingenuous.
A further small wrinkle has been added to the vflux_drift.mod included in the Summer ‘07 release: the HadOCC code as written includes tracer dilution effects from surface freshwater fluxes, but ignores any flux correction field applied - e.g. the iceberg calving field discussed above. This has been changed, so that freshwater correction fields also dilute Alkalinity and TCO2 tracers.

June ‘07

The salinity drift code has been revised to STASH the correction in more helpful units for the post-diagnosing of tendencies. A number of small bugs have been found in the version currently in xbyvs, but they only affect accuracy by a % or so. The new version also applies the correction to the TCO2 and Alk fields to reduce spurious drift in those fields. This new version is in the xcggb release, which is now recommended instead of xbyvs. Make sure you’re using the vflux_drift.mod_xcggb version of the mod
I’m also working up a FAMOUS version of the “ice-calving” ancillary file used in HadCM3 to 0 the global water flux. This is (technically) a freshwater flux adjustment field whose global integral is the amount of water accumulating as snow on the land, which (scientifically) says that this accumulation must all return to the ocean as icebergs. I’m not sure whether the depth of snow on land is reduced again anywhere in this process. It’s also non-interactive - i.e. if the snow accumulation rate changes, the iceberg-water input doesn’t. The rest of the vflux mod does this calculation for us - maybe we could scale the iceberg calving to match? Do we want to?

Rigid lid ocean models use virtual salt fluxes at the surface to parameterise water fluxes, as they cannot change their volume. The salt fluxes are calculated by multiplying the water flux applied by a salinity value. Assuming global water fluxes are conserved, the virtual salt fluxes can only be guaranteed to conserve if a globally constant reference salinity is used in the calculation - this is non-ideal, since local salinity changes are proportional to the salinity of the water already there (adding freshwater to freshwater should not produce a salinity change, whereas adding freshwater to salty should). Nonetheless the reference salinity was used in HadCM3, with consequent distortion of the virtual salt fluxes, but this did not have serious effects on the simulation. However, switching on the reference salinity in FAMOUS led to rapid weakening of the Atlantic MOC which was judged unacceptable. Using the local salinity without any correction is also unacceptable, because the consequent large salinity drift would be serious over the long periods of time for which FAMOUS may be run.
For open ocean points, the water fluxes and virtual salt fluxes are accumulated every timestep. Once a year these are summed and a globally constant correction is derived. This is then applied over the course of the next year so that the long term salinity drift in the ocean matches any long term drift in the water fluxes applied (drift in water fluxes may come about from the accumulation of snow on land, for example). The correction is applied to every ocean box, not just at the surface: adtan has already run long enough that the current drift is fairly uniform with depth, and applying the correction only at the surface would result in a strong freshening of surface salinity (whilst the deep ocean still gets saltier) that impacts the MOC strength. This mod is included in the December 2006 FAMOUS (xbyvs). For more technical details, see Vflux Drift Xdbua
This plot shows the magnitude of the drift and the effect of the correction over a 50 year test run. The upper figure is corrected - volume integrated salinity (black) follows the surface integrated water flux (blue), the lower is uncorrected - salinity follows the surface integrated virtual salt flux (red). Note that the global avg. salt flux is systematically different from the water flux from the atmosphere. The diagnostic used is not perfect (we’re not sure why, possibly rounding errors), hence the small discrepancies between surface fluxes and vol avg. salinities in both plots
(qrparm.mask_salfix - OBS)ancillarya land-sea mask that ignores the inland seas (their P-E+R unduly biases the correction) - includes Med. and Hudson as they do/can exchange with the open ocean
qrparm.mask_salancillarya *corrected* land-sea mask that ignores the inland seas :)
(salinity_drift.mod - OBS)model modaccumulates surface water and salt fluxes every timestep, then calculates the global difference at the end of every year and applies a vol avg. correction spread over the next year
vflux_drift.modmodel modnew version of the salinity_drift mod - bugfixed, also does TCO2 and Alkalinity
recon_O.modreconfiguration modprovides L_SALCONV/L_VFLUX switch for actually applying the calculated correction
(salfix_pp.sh - OBS)local post proc. scriptadds L_SALCONV to namelists, adds STASH macro to supply some required fields for the calculation
vfdrift_pp.shlocal post proc. scriptadds L_VFLUX to namelists, adds STASH macro to supply some required fields for the calculation
robin_STASHmaster_Oprestashmasteradds the mask, this year’s correction and this year’s accumulating data to STASH as prognostics to preserve them across restarts
icecalv_FAMOUS.ancancillarynon-interactive “iceberg calving” flux adjustment file for modern FAMOUS climate
notes
STASH numbers 0,400 0,401 and 0,402 for the fields mentioned above. May need to be initialised as user-prognostics in UMUI - ocean reconfiguration then needs to be on. L_INLANSEA can be enabled as well to cap the annoying drift in the isolated inland seas. Ocean reconfiguration
Page last modified on September 27, 2012, at 04:12 PM by robin