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

generate interface block issue

bmchenry
New Contributor II
339 Views
Prior threads have dealt with the need to turn off the Generate Interface Block with ver 74
Project->(Your Project) Properties->Fortran->Diagnostics->Generate Interface Blocks
And INTEL has duplicated the problem and working to resolve it.
So in the meantime, when youturn OFF and allow compilation you may come across one possiblegotcha!
When using the option it creates an 'INTERFACE' subdirectory below 'Debug'
Once you turn off the option, and don't clean/remove that directory, then if you subsequently change the number of arguments in a call to a subroutine, you will geterrors! (mismatch of calling arguments)
Sent me for a loop until i realized that in the inteface subdirectory are all the OLD automatically generated interfaces generated by the 'generate interface' option used with the prior version (10.x or 11.x before 74)
And so by changing the arguments in a call to a subroutine, the interface was not regenerated (since i turned the option off) and an error occurred!

Recommendations:-)->
Make explicit interfaces for ALL subroutines and not rely on automatically generated interfaces! (simply insert the automatically generated interfaces from prior builds (72) and then delete them!)

Similar to the old tried and true Recommendation:-)->insert IMPLICIT NONE in all routines
0 Kudos
2 Replies
Steven_L_Intel1
Employee
339 Views
The option you want to turn off is Check Routine Interfaces. (You can also turn off Generate Interface Blocks.) I am not aware that a subfolder is created.
0 Kudos
bmchenry
New Contributor II
339 Views
The option you want to turn off is Check Routine Interfaces. (You can also turn off Generate Interface Blocks.) I am not aware that a subfolder is created.

The subfolder was created by my decision to create it in IVF!
(which was probably done several years ago (old project).
Apparently in this particular project i inserted in Project->(projectname)Properties->Fortran->Output Files
the Module Path ->$(INTDIR)/interface
which created/moved interfaces, etc to that directory.
So the previously generated interfaces resided there and weren't changed/overridden once i turned off the generate interface blocks.
0 Kudos
Reply