comp.lang.ada
 help / color / mirror / Atom feed
From: Keith Thompson <kst-u@mib.org>
Subject: Re: Mariner 1 / FORTRAN bug
Date: Thu, 08 Aug 2019 10:51:03 -0700
Date: 2019-08-08T10:51:03-07:00	[thread overview]
Message-ID: <lny3038s1k.fsf_-_@kst-u.example.com> (raw)
In-Reply-To: 86986725-f34e-46d7-9efc-d15d94379048@googlegroups.com

robin.vowels@gmail.com writes:
> On Saturday, December 5, 1992 at 7:18:16 AM UTC+11, srhe...@happy.colorado.edu wrote:
>
>> I heard a rumer about a multi-million (or multi-billion) dollar satellite going
>> astray because some one left a comma out of a FORTRAN DO loop and it was still
>> syntactically legal.  Can anybody give me a reference on this?  
>
> A google search produced this first try:
>
>
> This has come up in a couple of threads in the last month or two, so I
> finally got around to looking it up. The famous FORTRAN punctuation
> error occured on Mariner 1 in 1962. Here is a description of the
> error:
>
> "There is a useful lesson to be learned from the failure of one of the
>earliest planetary probes launched by NASA. The cause of the failure
>was eventually traced to a statement in its control software similar to
>this:
>
> DO 15 I = 1.100
>
> when what should have been written was:
>
> DO 15 I = 1,100
>
> but somehow a dot had replaced the comma. Because Fortran ignores
> spaces, this was seen by the compiler as:
>
> DO15I = 1.100
> which is a perfectly valid assignment to a variable called DO15I and
> not at all what was intended."
>
> Information found here:
>
> http://www.star.le.ac.uk/~cgp/prof77.html#tth_sEc1.3

According to https://en.wikipedia.org/wiki/Mariner_1 :

    In other accounts, the bug consisted of:

    * a period typed in place of a comma, causing a FORTRAN DO loop
      statement to be misinterpreted (although there is no evidence that
      FORTRAN was used in the mission), of the form "DO 5  K=1. 3"
      interpreted as assignment "DO5K = 1.3" There are anecdotal
      reports that there was in fact such a bug in a NASA orbit
      computation program at about this time, but it was a program for
      Project Mercury, not Mariner, and the claim was that the bug was
      noticed and fixed before any serious consequences resulted.

Also discussed on RISKS Digest, including an account from someone who
worked at NASA in 1963.  The error caused a DO loop to execute just once
rather than iterating to a more precise solution.  The resulting
calculation was good enough for the Mercury suborbital flights, but not
for the later orbital flights.

http://catless.ncl.ac.uk/Risks/9.54.html#subj1.1

And see here:
http://catless.ncl.ac.uk/Risks/8/75#subj1
for a description of a missing "bar" in a hand-written calculation that
apparently caused the loss of the Mariner 1 Venus probe in 1962.

-- 
Keith Thompson (The_Other_Keith) kst-u@mib.org  <http://www.ghoti.net/~kst>
Will write code for food.
void Void(void) { Void(); } /* The recursive call of the void */


      parent reply	other threads:[~2019-08-08 17:51 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1992-12-04 20:18 C++ vs. Ada -- Is Ada loosing? happy.colorado.edu!srheintze
2019-08-08 15:23 ` robin.vowels
2019-08-12 15:47   ` Shark8
2019-08-08 15:40 ` Marina 1 / FORTRAN bug robin.vowels
2019-08-08 17:26   ` Mariner " Jeffrey R. Carter
2019-08-09  1:57     ` robin.vowels
2019-08-09  6:28       ` J-P. Rosen
2019-08-09  6:47         ` Niklas Holsti
2019-08-09 11:40           ` J-P. Rosen
2019-08-09 15:57           ` Jeffrey R. Carter
2019-08-09  8:38         ` Maciej Sobczak
2019-08-09 14:27           ` Nasser M. Abbasi
2019-08-09 21:05             ` Maciej Sobczak
2019-08-09 21:24               ` Lucretia
2019-08-09 22:03                 ` Paul Rubin
2019-08-08 17:51   ` Keith Thompson [this message]
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox