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