- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I use Intel Visual Fortran 2011 with VS 2010, in a 32 bit system. The memory is 4G, of which 3.4G is available.
I've learnt from the folloing topic that Windows limits static code and data to 2GB.
https://software.intel.com/en-us/forums/topic/280002
I used several large 3-D arrays by declaring them with fixed bounds in a module. But all these 3-D arrays occupies only about 1 G. Ohther variables, no matter declared in the module or as local varibles, are small when compared with the arrays above. Unfortunately, there still occurs the Fatal error LNK1248: image size () exceeds maximum allowable size (80000000).
I cann't understand this. Could you please help me out?
Thank you big time in advance.
Following is a part of the module and the error:
module Information
integer,parameter :: mr=20,mz=1000,mp=6,my=10000
complex u(mz*2,my),&
zr1(mz*2,my,mp),zr2(mz*2,my,mp),zr3(mz*2,my,mp),zr4(mz*2,my,mp),zr5(mz*2,my,mp),zr6(mz*2,my,mp),zr7(mz*2,my,mp),&
zs1(mz*2,my,mp),zs2(mz*2,my,mp),zs3(mz*2,my,mp),zs4(mz*2,my,mp),zs5(mz*2,my,mp),zs6(mz*2,my,mp),zs7(mz*2,my,mp),&
yr1(mz,my*2,mp),yr2(mz,my*2,mp),yr3(mz,my*2,mp),yr4(mz,my*2,mp),yr5(mz,my*2,mp),yr6(mz,my*2,mp),yr7(mz,my*2,mp),&
ys1(mz,my*2,mp),ys2(mz,my*2,mp),ys3(mz,my*2,mp),ys4(mz,my*2,mp),ys5(mz,my*2,mp),ys6(mz,my*2,mp),ys7(mz,my*2,mp),&
...
end module
1 fatal error LNK1248: 映像大小(11E3841C0)超过允许的最大大小(80000000) LINK
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
there are 7 zr arrays with = 1000 x 2 *6 *10000 element of 8 bytes which is 6,720,000,000 bytes hence the error.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
there are 7 zr arrays with = 1000 x 2 *6 *10000 element of 8 bytes which is 6,720,000,000 bytes hence the error.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you app4619. What a boring mistake I've made.
Could I ask you one more question? Can I make use of more than 2G memory by using ALLOCATE? If so,I will not have to change my system because I have memory of 3.4G.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Not with a 32-bit application. The amount of physical memory you have is not directly relevant. If you have a 64-bit system and build a 64-bit application, then ALLOCATE will let you exceed 2GB.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for your detailed explaination Steve.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page