Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.

much less than 2G memory is used, but still occur the Fatal error LNK1248: image size exceeds...

tang__jun
Beginner
1,178 Views

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

 

0 Kudos
1 Solution
andrew_4619
Honored Contributor III
1,178 Views

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.

View solution in original post

0 Kudos
4 Replies
andrew_4619
Honored Contributor III
1,179 Views

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.

0 Kudos
tang__jun
Beginner
1,178 Views

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.

0 Kudos
Steven_L_Intel1
Employee
1,178 Views

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.

0 Kudos
tang__jun
Beginner
1,178 Views

Thank you for your detailed explaination Steve.

0 Kudos
Reply