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

How can I get an older HPC toolkit (2024.2.1)?

spainchaud
New Contributor I
257 Views

I have a Fortran modeling library that started giving NaNs where it was previously giving reasonable numbers. The only change was going from the IFORT compiler to IFX. I need to test with the older compiler. Since my computer is only about 1 month old, I only have 2025.2.1 installed. I have been able to download the base toolkit 2024.2.1, but I have not found a link to the corresponding HPC toolkit.

I usually only have one Fortran install on my computer. Is there any issues with having multiple versions installed?

0 Kudos
4 Replies
andrew_4619
Honored Contributor III
214 Views

IFORT is no longer supplied by Intel. Rather than hunt around for different compilers why mot use the debugger to fins why the nans are made. It could be a non conformance (bug) in your code that just happens to be exposed by a different compiler/options. 

0 Kudos
spainchaud
New Contributor I
136 Views

Although I have debugged into the Fortran DLL many times in the past, it does not seem to want to work today. I am calling the Fortran from C++ and the C++ from C#. Sometimes the native code debugging just stops working, and it is difficult to figure out why, since I never touch those settings.

If there is non-compliant Fortran code, it has been working for 15+ years.

 

0 Kudos
andrew_4619
Honored Contributor III
108 Views

"If there is non-compliant Fortran code, it has been working for 15+ years." - probably/possibly but no guarantee! Why not add a few isnan calls at some strategic locations in the Fortran code to at least try to isolate where the first nan appears and then home in on the why....

 

ISNAN is elemental so you can also apply any(isnan(myarray)).....

0 Kudos
spainchaud
New Contributor I
22 Views

I found the version of oneAPI 2024 used on our build server and rolled back. I was able to create test code to verify a bug in the IFX compiler. I took the complex values used from our 16-year-old numerical modeling code.

 

program DivisionTest

implicit none
COMPLEX*16 A, B, C

A = DCMPLX(-1.811004047684485D-316,7.977508024816439D-317)
B = DCMPLX(-5.220325499023662D-315,-1.310905257053363D-314)
C=A/B

print *, C

end program DivisionTest

 

With the IFX compiler I get C=(NaN,NaN)

With the IFORT compiler I get C= (-5.041342791822924E-004,-1.401566961551338E-002).

 

I have no idea how to fix what the IFX compiler is doing. Even if I could fix the problem, there would be thousands of lines to review. Fixing the problem would be a project all by itself.

0 Kudos
Reply