Skip to content

SHRIMP: Sub SamRadiogenicCols

sbodorkos edited this page Jul 5, 2018 · 12 revisions

SQUID 2.50 Sub: SamRadiogenicCols

This subroutine (which is solely for SampleData) places, row-by-row, formulae to calculate radiogenic (i.e. corrected for common Pb) Pb/Pb, Pb/U, and Pb/Th ratios and ages in the SampleData sheet.

Usage

SamRadiogenicCols plaFirstDatRw, plaLastDatRw

Mandatory variables

plaFirstDatRw: Integer index number of the first row containing spot-by-spot data (for the Standard).
plaLastDatRw: Integer index number of the last row containing spot-by-spot data (for the Standard).


Definition of variables NEEDS UPDATING

Values of type Boolean
pbTh, pbU

Values of type Integer
f, L, piNumDauPar

Values of type String
q, s, SA, sae, t, WtdMnA

Values of type Range
rw1, rw2, r4


The subroutine starts by calculating the Pb-isotope ratios used for the common-Pb correction. Note that these are not predicated on the user having specified "the right" numerator-denominator combinations as part of their Task definition: rather, SQUID 2.50 mandates that ratios ["204/206"], ["207/206"] and ["208/206"] are always calculated if the relevant mass-stations are present in the run-table, even if the user did not specifically request those ratios (i.e. they are evaluated 'in the background'). Remembering that SQUID 2.50 constructs its formulae as strings:

Alpha = " 1 / ["204/206"] --measured ["206/204"], i.e. total 206/204
Beta = " ["207/206"] / ["204/206"] " --measured ["207/204"], i.e. total 207/204
Gamma = " ["208/206"] / ["204/206"] " --measured ["208/204"], i.e. total 208/204

In each case, the measured (or total) Pb-isotope ratio can be considered as the sum of the radiogenic component and the common component. Using ["206/204"] as an example, R64 as shorthand for the ratio, and suffixes m, r, and c to denoted measured, common, and radiogenic components respectively: R64m = R64r + R64c. It is then possible to isolate the radiogenic component, by subtracting the common component from the measured value:

NetAlpha = " ( ["Alpha"] - sComm_64 ) " --i.e. R64r = R64m - R64c
NetBeta = " ( ["Beta"] - sComm_74 ) " --i.e. R74r = R74m - R74c
NetGamma = " ( ["Gamma"] - sComm_68 ) " --i.e. R84r = R84m - R84c

For the daughter isotopes of calibration-related interest (i.e 206Pb and 208Pb), it is possible to define proportionality factors describing the radiogenic component as a fraction of the total measured value:

radd6 = " ( ["NetAlpha"] / ["Alpha"] ) " --i.e. R64r / R64m
radd8 = " ( ["NetGamma"] / ["Gamma"] ) " --i.e. R84r / R84m

Start by calculating one or both of ["Total 206Pb/238U"] and/or ["Total 208Pb/232Th"], as required by Perms1-4. Note that as per previously-documented subroutine StdRadiogenicCols, this arithmetic is predicated on having only one calibration constant per daughter-parent pair (following the user-defined index isotope for the common Pb correction), whereas SQUID 3.0 will be calculating multiple calibration constants corresponding to all the candidate index-isotope values. The following expressions will therefore require generalisation:

For i = 1 To piNumDauPar -- recall piNumDauPar = 2 for Perm2 and Perm 4, else 1

  If ( (i = 1) AND (pbU = TRUE) ) OR ( (i = 2) AND (pbTh = TRUE) ) 
  -- first part of the If covers Perm1 and Perm2; the second part covers Perm4
    
    m = piPb6U8_totCol --index number for ["Total 206Pb/238"] column
    --NOTE that SQUID 3.0 will need to key this to index-isotope, no matter how
    --counter intuitive that seems CARRY ON FORMATTING OF ELSEIF
    
  ElseIf (i = 1 And pbTh) Or (i = 2 And pbU) Then
m = piPb8Th2_totCol

Else m = 0 End If

If m > 0 Then ' 206t/238 or 208t/232 Col1 = fsS(i) rw2 = "WtdMeanA" & Col1 rw1 = phStdSht.Range(rw2).Address r3 = "Std" & IIf(m = piPb6U8_totCol, "U", "Th") & "PbRatio" r4 = "Extperra" & Col1 PlaceFormulae "= A(" & Col1 & ") /" & pscStdShtNot & rw2 & "*" _ & pscStdShtNot & r3, f, m, L PlaceFormulae "=SQRT( Ae(" & Col1 & ") ^2+" & pscStdShtNot & r4 & _ "^2)", f, m + 1, L End If

Next i

Clone this wiki locally