cudat@warwick.ac.uk (J M Hicks) (08/15/88)
In article <271@quintus.UUCP> ok@quintus.UUCP (Richard A. O'Keefe) writes: >Trivia point: in Fortran 66 this applied to COMMON blocks as well. >... >... 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? I have used two Fortran IV compilers that allowed COMMON blocks not to be in the root of the overlay tree: one was on an IBM 370, the other on a PDP-11/70 under IAS (now RSX11-D, I think). Whether such a feature was of any use is another matter... -- J. M. Hicks (a.k.a. Hilary), Computing Services, Warwick University, Coventry, England. CV4 7AL On JANET: cudat@UK.AC.WARWICK.CU (in the U.K.) From BITNET: cudat@CU.WARWICK.AC.UK From ARPAnet: try cudat%cu.warwick.ac.uk@cunyvm.cuny.edu (untested) On Usenet: ...!ihnp4!mcvax!ukc!warwick!cudat It helps if you spell "cudat" in lower case.
mcdonald@uxe.cso.uiuc.edu (08/17/88)
>... >... 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