Large Arrays/Commons
Toon Moene
toon@moene.indiv.nluug.nl
Mon Dec 9 15:55:00 GMT 2002
plischke@isam.de wrote:
> eventually somebody can help (or tell me that there is no solution):
>
> - I have a rather complex finite element code (to be compiled with g77)
> and would like to run
> a bigger model than previously. I have however problems in using
> sufficiently large arrays.
> I split the large arrays into three COMMON BLOCKS, e.g.
> COMMON /A(50000000)
> COMMON /SOL1/ B(28000000)
> COMMON /SOL2/ C(56000000)
> with IMPLICIT REAL*8 (A-H,O-Z)
> I can compile and link without problems,
> but get a segment violation at excution (immediately, and also if
> a use just a main program for storage allocation (i.e. don't call
> any subroutines)
> I suppose that the maximum storage to be allocated is limited by the
> physical memory of my PC (1 GB), because there are no problems as long
> as the sum of all allocated storage is araound 900 MB.
> Is there any solution?
> Do you need more information?
Well, actually, we do (for instance, what operating system are you using
on this PC? Windows, DOS, Linux, {Free|Net|Open}BSD, etc. ;-)
However, I'll cut you a deal: The problem you see is most probably
caused by the fact that on Linux, shared libraries are assigned memory
addresses from 2**30 onwards, i.e., at about 1 Gbyte.
If you compile and link your program statically, i.e., using the option
-static, you should be OK.
The maximum amount of memory you can use is the sum of RAM and SWAP sizes.
Hope this helps,
--
Toon Moene - mailto:toon@moene.indiv.nluug.nl - phoneto: +31 346 214290
Saturnushof 14, 3738 XG Maartensdijk, The Netherlands
Maintainer, GNU Fortran 77: http://gcc.gnu.org/onlinedocs/g77_news.html
Join GNU Fortran 95: http://g95.sourceforge.net/ (under construction)
More information about the Gcc-help
mailing list