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

Version 12 compatible with version 9?

cholcom4
Beginner
731 Views
I have been using the same code with version 9 with no issues. I now compiled the same code with version 12 and it the program no longer runs properly. Is there compatibility issues or a way to compile under version 12 so it run properly as in version 9?
0 Kudos
5 Replies
mecej4
Honored Contributor III
731 Views
There are several possible causes of the changes that you observed. In order of decreasing likelihood (approximately), they are:

bugs in the source code, which may have remained hidden
changes to compiler settings and defaults
compiler/runtime changes or bugs.

It would help if you could provided a short example to establish that code that ran with version 9 no longer works properly with version 12. In addition, you would need to list OS and compiler versions, and explain what "properly" means.
0 Kudos
TimP
Honored Contributor III
731 Views
Your question is too general to answer without clarification from you.
If you mean that you wish to mix .obj built with ifort 9 and those built with ifort 12, it's likely there is incompatibility. The combinations of objects between 9.1 and 10.1, 10.1 and 11.1, and 11.1 and 12.1, should be supported, but you may be taking this too far.
As the visual studio versions which were supported for ifort 9 are no longer supported in 12.1, it's not realistic to expect binary compatibility across the full range. 12.0 sitll supported VS2005 (with service packs).
You may remember that the default for 32-bit compilation changed to /arch:SSE2 some time ago (formerly -xW) and there was no longer support for -xK or -xB. The former 32-bit default is matched by /arch:IA32.
The compiler has evolved both in aggressiveness of optimization and thoroughness of diagnostics. The option -assume:protect_parens was introduced in 10.1 and is quite important for correctness.
0 Kudos
cholcom4
Beginner
731 Views
I have no particular options called out in either the ver 9 or the ver 12. Is there an option in version 12 that is on automatically that I need to remove to keep it more similar to version 9?
0 Kudos
mecej4
Honored Contributor III
731 Views
More speculation: the /bin/intel64 directory contains a short file called ifort.cfg . This file is initlally empty when installed, but can be customized by the user by placing commonly used options in it. If you had one in the Ver.9 installation, see what options it contains.
0 Kudos
Wendy_Doerner__Intel
Valued Contributor I
731 Views
We really do need more deatails about how your program is different between the releases and switches used (even if you do not set switches some are on by default in Microsoft Visual Studio). If you attach the Build.log from each build that should describe the switches.

Here are some things which changed between the releases and are common problems for customers upgrading to newer compilers:

1) Floating point model has change to be more consistent. More details in this article.
2) /warn:intefaces ison by default and might be revealing some coding problems. /nowarn will turn it off.
3) Some defaults (for instance /fast) change from release to release to be targetting the latest processors.

Some switches which might help you find errors include the /check switch for coding errors and /traceback for runtime crashes.

------

Wendy

Attaching or including files in a post



0 Kudos
Reply