-
Notifications
You must be signed in to change notification settings - Fork 16
SHRIMP: Sub OvercountColumns
The subroutine evaluates, on an analysis-by-analysis basis for the Standard, the following columns:
- 204overcts/sec(fr. 207)
- 204overcts/sec(fr. 208)
- 204/206(fr. 207)
- 204/206(fr. 207) %err
- 204/206(fr. 208)
- 7-corr206Pb/238Uconst.delta%
- 8-corr206Pb/238Uconst.delta%
Isotopic 'reference ages' and associated ratios: SQUID 2.50 defines isotopic reference materials in terms of their 'reference ages' (in units of Ma) in up to three isotopic systems of interest. These reference ages are determined independently of SHRIMP; predominantly via ID-TIMS:
- 206Pb/238U (SQUID 2.50 name = 'StdAgeUPb')
- 207Pb/206Pb (SQUID 2.50 name = 'StdAge76')
- 208Pb/232Th (SQUID 2.50 name = 'StdAgeThPb')
Usually, for any given isotopic reference material, StdAgeUPb would not be NULL, and StdAge76 and StdAgeThPb would both default to be equal to StdAgeUPb (i.e. concordant) unless alternative values for StdAge76 and StdAgeThPb were independently specified). Obviously, this could work in the opposite direction for 208Pb/232Th reference materials, where StdAgeThPb would be measured by IDTIMS, and StdAgeUPb and StdAge76 would be assumed to be the same as StdAgeThPb, unless independently determined.
Once these three reference ages are known/assumed, the corresponding radiogenic isotope ratios are determined via direct application of the relevant age-equations:
Std 206Pb/238U = exp( Lambda238Ma * StdAgeUPb ) - 1
--where Lambda238Ma = 238U decay constant in units of 'Ma^-1'
--SQUID 2.50 name = 'StdUPbRatio'
Std 207Pb/206Pb = Pb76( StdAge76 )
--LudwigLibrary function 'Pb76' defined previously
--SQUID 2.50 name = 'Std_76'
Std 208Pb/232Th = exp( Lambda232Ma * StdAgeThPb ) - 1
--where Lambda232Ma = 232Th decay constant in units of 'Ma^-1'
--SQUID 2.50 name = 'StdThPbRatio'
Finally, the curiously-named 'Standard radiogenic 208Pb/206Pb factor' (SQUID 2.50 name = 'StdRad86fact') is calculated. This factor links radiogenic 208Pb/206Pb to 232Th/238U in the standard, via:
StdRad86fact = StdThPbRatio / StdUPbRatio
--Algebraically, this equates to:
--(Std 208Pb/232Th) / (Std 206Pb/238U)
--which can be rewritten as:
--(Std 208Pb/206Pb) * (Std 238U/232Th)
'Default common Pb' ratios: In SHRIMP (and SQUID 2.50), 'default common Pb' can be considered broadly analogous to 'procedural blank' in IDTIMS. The concept is an acknowledgement that in any given SIMS measurement, there might well be non-radiogenic Pb present, even when measuring reference materials that (axiomatically) ought to have negligible intrinsic non-radiogenic Pb. This non-radiogenic Pb is most easily conceptualised as very low levels of 'environmental' or 'atmospheric' Pb that adheres to mount-surfaces despite best-practice mitigation processes.
The 'default common Pb' correction in SQUID 2.50 requires the isotopic composition of this 'environmental' non-radiogenic Pb to be specified. It is possible to measure the relevant values directly (e.g. by putting filter paper on an air-vent in the lab, and measuring the isotopic composition of the adhered Pb); alternatively a 'model' composition can be assumed. SQUID 2.50 allows users to assume a 'geological' origin for the default non-radiogenic Pb, by specifying an age (e.g. present-day) and calculating the bulk-Earth Pb-isotope composition corresponding to that age using a model such as that of Stacey & Kramers (1975). The method of calculation of 'default common Pb' composition is not especially important at this stage: it is more relevant to specify exactly which parameters SQUID 2.50 needs in order to proceed with '204 overcount' calculations. SQUID 2.50 requires specification of the following three isotopic ratios for default common Pb:
- 206Pb/204Pb (SQUID 2.50 name = 'sComm_64')
- 207Pb/206Pb (SQUID 2.50 name = 'sComm_76')
- 208Pb/206Pb (SQUID 2.50 name = 'sComm_86')
From these three ratios, SQUID 2.50 derives the extra two that it uses, via trivial multiplication:
- 207Pb/204Pb (SQUID 2.50 name = 'sComm_74') = sComm_76 * sComm_64
- 208Pb/204Pb (SQUID 2.50 name = 'sComm_84') = sComm_86 * sComm_64
OvercountColumns(SpotRow)
SpotRow: Index number of the output-row, to which the value calculated by OvercountColumns is to be written.
Values of type Boolean
Std
Values of type Integer
k, SpotRow
Values of type String
t1, t2
The function commences with a series of tests to see whether it is applicable. Fundamental prerequisites for the calculation of '204 overcount' columns are as follows:
- The presence of at least one U-bearing peak in the run-table (i.e. pbHasU = TRUE)
- The presence of an identified 204Pb peak in the run-table (i.e. pi204PkOrder > 0)
- The presence of an identified background mass-station in the run-table (i.e. piBkrdPkOrder > 0)
- The presence of ["204/206"] (i.e. 204Pb/206Pb) as a measured 'ratio of interest' (i.e. piPb46col > 0), noting that SQUID 2.50 contains code ensuring that ratios of interest ["204/206"], ["207/206"] and ["208/206"] are always calculated whenever the constituent peaks are present in the run-table, even if the user did not specifically request those 'ratios of interest'.
- Switch.ShowOverCtCols = TRUE, noting that SQUID 2.50 does not offer this Switch as a user-option; so it is presumably set to TRUE by default.
It is also worth noting that in SQUID 2.50 as it stands, failure to meet this set of prerequisites means that attempts to perform U/Th-Pb geochronology ultimately fail. From a scientific point of view, that looks like a 'bug' (e.g. forgoing measurements of 204Pb, and thus the associated 'overcount columns' ought not to be a show-stopper for the broader purpose of doing U/Th-Pb geochronology, but at present it is, for reasons that have not yet been fully pursued.
If (pbHasU = FALSE) OR (pi204PkOrder = 0) OR (piBkrdPkOrder = 0)
OR (pi46col = 0) OR (Switch.ShowOverCtCols = FALSE)
Exit Sub
End If
For k = 7 to 8
--7 and 8 indicate 204 overcounts from 207Pb and 208Pb respectively
If (k = 7) AND (piPb76col > 0)
--i.e. if ratio of interest ["207/206"] exists
t1 = ( ["207/206"] - Std_76 ) / ( sComm_74 - (Std_76 * sComm_64) )
--t1 will be placed in (StandardData) column ["204/206 (fr. 207)"]
t2 = ABS( ["207/206 %err"] * ["207/206"] / (["207/206"] - Std_76) )
--t2 will be placed in (StandardData) column ["204/206 (fr. 207) %err"]
Elseif piPb86col > 0 --i.e. if ratio of interest ["208/206"] exists
t1 = ( ["208/206"] - StdRad86fact * ["232Th/238U"] ) /
(sComm_84 - StdRad86fact * ["232Th/238U"] * sComm_64 )
--t1 will be placed in (StandardData) column ["204/206 (fr. 208)"]
--note that there is no corresponding expression for t2 here
End If
PlaceFormulae t1, SpotRow, piaOverCts46Col[k]
If k = 7
PlaceFormulae t2, SpotRow, piaOverCts46ErrorCol[k]
End If
If k = 7
t1 = ["total 204 cts/sec"] - ["Bkrd cts/sec"] -
["204/206 (fr. 207)"] * ( ["total 206 cts/sec"] - ["Bkrd cts/sec"] )
--t1 will be placed in (StandardData) column ["204 overcts/sec (fr. 207)"]
Else
t1 = ["total 204 cts/sec"] - ["Bkrd cts/sec"] -
["204/206 (fr. 208)"] * ( ["total 206 cts/sec"] - ["Bkrd cts/sec"] )
--t1 will be placed in (StandardData) column ["204 overcts/sec (fr. 208)"]
End If
PlaceFormulae t1, SpotRow, piaOverCts4Col[k]
If k = 7
t1 = 100 * ( (1 - sComm_64 * ["204/206"]) /
(1 - sComm_64 * ["204/206 (fr. 207)"]) - 1 )
--t1 will be placed in (StandardData) column ["7-corr 206Pb/238U const. delta%"]
--which should be RENAMED ["7-corr primary calib const. delta%"]. The old name
--is a hangover from when all calibration constants were 206Pb/238U.
Else
t1 = 100 * ( (1 - sComm_64 * ["204/206"]) /
(1 - sComm_64 * ["204/206 (fr. 208)"]) - 1 )
--t1 will be placed in (StandardData) column ["8-corr 206Pb/238U const. delta%"]
--which should be RENAMED ["8-corr primary calib const. delta%"]. The old name
--is a hangover from when all calibration constants were 206Pb/238U.
End If
PlaceFormulae t1, SpotRow, piaCorrAdeltCol[k]
Next k
End Sub