Viking GCMS Reanalysis

Errata and revision history

The analysis was done in June and July 2026 and written up as a report on 5 July. On 7 September 2026 every script, number, figure and claim was rechecked. This page lists what was wrong, what was fixed, and whether it changed a conclusion. The July report stays available unchanged as version 1; the corrected version 2 is the reference.

Short version. No qualitative conclusion changed. The headline number did: soil-water D/H went from 3.9 ± 0.3× SMOW (four runs) to 3.3 ± 0.6× SMOW (five runs), systematic range 2–4.5×. Every absolute intensity in the July report is on an inconsistent scale and has been restated; no ratio, elution time or species identification was affected. One minor claim about the temperature channel was withdrawn and one historical attribution was corrected.

Findings that changed a reported number

#FindingFixEffect
1The m/z 19 budget behind D/H subtracted water with one 17O but not the OH fragment of water with one 18O. The two terms are the same size (about 4 × 10−4 of the water signal each).Full budget in dh_rigorous.py.Lowers D/H by about 1.4×.
2Scans where the water signal sits at the instrument's full-scale clip were kept in the H3O+ extrapolation. Mass 19 does not clip, so the 19/18 ratio is artificially high there; the fit was steepened and the intercept depressed. This is also why run 10018 extrapolated to a negative value in July and was excluded.Exclude scans with m/z 18 above 97 % of full scale.Raises D/H by about 0.7×; run 10018 becomes usable and agrees with the others.
3The run-10039 decoder anchored the wrong record to the microfilm full-scale value: the microfilm "scan 10" is tape record 9 (0-based), and its water is at the clip. Run 10039 was 5× too high.Scale set by the clip code.Chlorobenzene absolute intensities restated (1.5 × 107 → 3.0 × 106); the 114/112 ratio and scan 148 are unchanged.
4The batch decoder anchored each run to its own strongest early water scan. The stored floats are already on one scale per lander (water clips at the same raw code in every run), so this put runs on scales differing by up to 12.5×. The corrupt-scan filter then discarded the genuine water plateaus of three Viking 2 runs.One scale per lander; cubes rebuilt; the July cubes are kept as v1 files.All cross-run absolute comparisons restated on a consistent scale. The site and temperature pattern of the chlorinated organics was re-verified and holds.

Findings that did not change a conclusion

#FindingFix
5Figure 1's chromatogram panel in the July report was blank: a corrupt scan at 1018 had set the axis scale.Corrupt scans masked; figure replaced.
6The oven-temperature table (480 / 498 / 502 / 507) did not match the analysis script (488 / 486 ± 11 / 502 ± 8 / 508 ± 3), and the claim that the channel "cleanly separates 50 °C from 200 °C" is false: one 200 °C run reads below the 50 °C run.Table replaced; claim withdrawn. The correlation (r = 0.81) and the ±150 °C bound stand.
7The report said Viking's known D/H came from its upper-atmosphere mass spectrometer. Viking made no D/H measurement; the first martian D/H was Owen et al. 1988, from ground-based infrared spectroscopy.Corrected; reference added.
8The isotope-signature scanner used an absolute tolerance around the sulfur ratio, so any ion with no M+2 partner at all was flagged as "sulfur". This manufactured the sulfur lead that a later, stricter test rejected.Relative tolerance. The rejection of SO2 was re-verified: over 454 m/z 64 peaks the 66/64 ratio is never near the 0.045 sulfur requires.
9"Chlorobenzene/water ≈ 3.4 × 10−4" was three ions summed on the 5×-high scale.Restated as 4 × 10−5 for the molecular ion on the lander scale.
10The "scan 10 validation" table showed record 10 anchored to the microfilm value rather than the actual microfilm frame (record 9, which is clipped).Table restated on the lander scale with the clipping explained.
11The decode-verification script read the millisecond clock at the wrong byte offset, so its scan-period check never printed; the script also crashed on the Viking 2 file.Fixed. The clock now confirms 10.238 s per scan, the value used throughout.
12The Rosetta-stone script tested only IBM base-16 float readings, so it could not have selected the base-2 format the decoder uses; that decision was made in a session whose record was lost.Base-2 decoder added; the format is confirmed by mantissa statistics and by continuity of the OH/H2O ratio across exponent boundaries.
13Trichlorobenzene was described as a Curiosity/SAM detection alongside dichlorobenzenes and thiophenes; it is not one to my knowledge.Reworded.
14Smaller items: the VL-1 9-bit inversion used 512 − x instead of 511 − x; the scan range was quoted as m/z 12–224 (actual 12–220 / 12–216); a full-tape header word was mislabelled; a typo ("1976–periodic"); blank-run IDs (the repository README assigns 10008 and 10007); Biemann's solvent attribution was firm only for dichloromethane; runs 10032 and 10033 are one-third and nine-tenths corrupt records, which the report did not say.All fixed or stated.

Checked and found correct

All fourteen rows of the run table against Biemann 1977 (run ID, sol, oven temperature, sample, purge mode); the frame and record layouts; the mass calibration; the mass-axis offset; the 10.24 s scan period; the chlorobenzene elution scan, isotope ratio and phenyl fragment in both tape families; the temperature correlation; the 18O ratio; the OH fragment yield; every isotope constant used; and the rejections of dichlorobenzene, trichlorobenzene, thiophene and sulfur dioxide, re-run on the corrected cube.

How the D/H number moved

VersionRuns17O term18OH termClipped scansD/H (× SMOW)
July 2026 report (v1)4yesnoincluded3.9 ± 0.3
First pass of the September check4yesyesincluded2.6 ± 0.3
Final (v2)5yesyesexcluded3.3 ± 0.6, range 2–4.5

Still open

Documents