Path: utzoo!attcan!uunet!husc6!uwvax!oddjob!uxc!uxc.cso.uiuc.edu!uxe.cso.uiuc.edu!mcdonald
From: mcdonald@uxe.cso.uiuc.edu
Newsgroups: comp.lang.fortran
Subject: Re: COMMON (was: Re: Maximum Stack Size
Message-ID: <50500066@uxe.cso.uiuc.edu>
Date: 16 Aug 88 18:32:00 GMT
References: <695@sol.warwick.ac.uk>
Lines: 22
Nf-ID: #R:sol.warwick.ac.uk:695:uxe.cso.uiuc.edu:50500066:000:824
Nf-From: uxe.cso.uiuc.edu!mcdonald    Aug 16 13:32:00 1988


>...
>...  So, for example, you
>could arrange overlays of COMMON blocks quite legally, though a
>compiler was not required to support this.  Does anyone know of any
>Fortran compiler which _didn't_ allocate COMMON blocks statically?

Yes. Absoft Fortran for the Mac, marketed by Microsoft. Not only
are commons dynamic, this compiler has no concept of static initialized
data! That is, every data item that is initialized, whether in common
or not, is allocated on a heap at run time and then initialized by
copying in the data, word by word or even byte by byte, from data
stored as immediate operands in the code segment !!!!!!! 

A statement such as
         character*1 a
         data a/'a'/

generates 7 bytes of code! If you initialize, say, 1000 character *1
entities you get 7000 bytes of code!   

Doug McDonald