Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
29274 Discussions

Severity Code Description Project File Line Suppression State Error error: section larger than 4 Gi

PaulG1
Beginner
1,497 Views

As I posted earlier and after further reading on this topic, I have the following question?

Please tell me if this is correct?

Due to an inherent ERROR in this new IFX compiler which is being sold as "the new" compiler, I must do the following which completely was not needed with the IFORT compiler.

A code used for almost two decades involved one INCLUDE file that was used within EVERY subroutine and this made maintenance of the code relatively easier.

Do I now need now to go to THAT include file and comment every single instance of the word COMMON and then put the word MODULE at the start with a name and then END MODULE at the end and then go to EVERY SINGLE subroutine and change the words INCLUDE 'BBB.INC' to USE BBB_INC?

Is this really what is needed to be done because the IFX compiler, unlike the IFORT, compiler adds up the uses individually instead of one time?

Alternatively, can the size limitation be increased such that this does not become a problem?

Either way, it appears as if there is an INHERENT flaw in the IFX compiler in that it does it THIS way when IFORT did it much more intelligently?

As with the previous post on the same topic, please offer any advice or guidance please.

As a first introduction to the new compiler, my inclination is to go back to one that works.

Thank you.

Paul

0 Kudos
3 Replies
andrew_4619
Honored Contributor III
1,139 Views

Interesting post, the actual problem is that your code has a lot of historic cludge and needs to be fixed. I guess one option is to get some old hardware using an old OS with old software and hunker down in an obsolescence bunker until is all just breaks down. Plan two might be to throw the code in the bin and take up golf (*other sports exits). A third option would be spend a small amount of time on the minor changes you seem so angry about and move on. Life throws up these little challenges all the time. There, I feel better now, I strongly suggest the third way.....

0 Kudos
JohnNichols
Valued Contributor III
859 Views

Please excuse my august friend, he is normally more direct.  Fixing old code is something the constant people on this forum do a lot. 

Now for Option 1, I suggest the old sewing machine computer, - I cannot name it or Intel throws a fit, MS DOS - at least version 5, MS Fortran 3.03 and a good kettle.  God remember before there were paths.  I loved this option as I could brew a cup of tea as the complier ran on two floppy drives, and then sit back down and the small program was finished.  I suggest VEDIT as that provided a IDE before VS.  

Of course the problem size is limited, but we used the 16 bits well, now of course we have IFX at 64 bits, of course 128 would be nice.  

I have 1969 code from Powell's group at UCB, that runs nicely on MS DOS, IFORT and IFX, it is very old code, but the math theory is still ahead of anything else in that vein.  Sorry I am typing slow, because I had flu and covid shots.  ULARC now runs huge problems whereas with the floppy drives I was limited to about 50 elements. 

PS Golf is not a sport it is a torture. 

0 Kudos
jimdempseyatthecove
Honored Contributor III
487 Views
subroutine foobar(a,b,c)
real :: a,b,c
INCLUDE "foo.inc"
...
--------------------------------------
subroutine foobar(a,b,c)
use foo
real :: a,b,c
--------------------
! or better
subroutine foobar(a,b,c)
use foo
implicit none
real :: a,b,c

Depending on where you placed your INCLUDE, this could be as simple as a global find and replace.

Note, you could start with the  global find and replace.

The build errors will inform you of misplaced USE statements (USE statements must follow the procedure name and precede any variable declarations). With your IDE it is relatively easy to select the USE statement line and move it to the proper place.

 

Jim Dempsey

0 Kudos
Reply