[Info-vax] Fortran

Scott Dorsey kludge at panix.com
Wed Dec 5 13:29:23 EST 2018


Simon Clubley  <clubley at remove_me.eisner.decus.org-Earth.UFP> wrote:
>On 2018-12-05, Bill Gunshannon <bill.gunshannon at gmail.com> wrote:
>>
>> The only problem I have ever seen with COMMON BLOCKS was inconsistent
>> definitions.  :-)
>
>And _that_ is _exactly_ the point. In any modern language, the
>common block would be defined _once_ as a data type and then
>multiple instances of that data type used as required.

But in Fortran someone modifies the common block and recompiles all the
routines that they think uses the common block and then relinks, but 
unbeknownst to him there's an .OBJ file hidden in some subdirectory
somewhere which was compiled with the old common block definition.
And now we have a problem which very intermittently pops up in a seemingly 
unrelated piece of code using a variable that isn't even in the common block 
(but is located in memory right after the common block).  Six months of
DEBUG hell later...

>Fortunately, there are language enhancements which also help tackle
>this problem in modern Fortran.

Didn't Knuth say that global variables should be banned?
--scott
-- 
"C'est un Nagra. C'est suisse, et tres, tres precis."



More information about the Info-vax mailing list