Last week I renewed my license for Intel Parallel Studio XE Composer Edition for Fortran Windows. Intel no longer offers a license package for Fortran with IMSL, which is what I've had in the past. Accordingly, I am considering converting my developmental code to use MKL vice IMSL. On including "mkl.fi" in my main program, but without attempting to call any MKL routines, I get 30 error messages #5082 referencing line numbers between 620 and 1274 inclusive of mkl_blas.fi. Looking at this file, all these lines appear to contain an ampersand in column 73, as well as in column 6 of the following line. It looks like someone is attempting to follow both the Fortran 77 and Fortran 90 continuation conventions.
My command line is: /nologo /debug:full /Od /extend_source:132 /warn:truncated_source /warn:interfaces /real_size:64 /fpe:1 /module:"Debug\\" /object:"Debug\\" /Fd"Debug\vc120.pdb" /list:"Debug\COGNIT_N.lst" /traceback /check:bounds /libs:static /threads /dbglibs /Qmkl:parallel /c
My guess is that "/extend_source:132" is the culprit, since if the source line were limited to 72 characters, the & in column 73 would be treated as a comment and no error would occur. However, I have KLOCs, perhaps tens of KLOCs, with line lengths > 72. I have attempted editing the & out of column 73 and saving the file, but get "access denied," even after changing USER permission to RWE.
Many of the MKL routines I would like to use are mkl_blas.fi routines, so just including non-blas mkl_?.fi's doesn't look like a good work-around.
Any assistance would be gratefully appreciated.
Mahalo (Hawaiian for "thank you"),
In addition to the problems that you ran into, the compilation time for the interfaces in mkl.fi is also quite large. My solution is to create a module using the following source file, call it mkl_m.f (fixed form)
!Create module file from mkl.fi module mkl_mod include 'mkl.fi' end module
Compile this file separately, producing the file mkl_mod.mod. You can move this MOD file to the MKL include\<arch> directory (needs Administrator permissions for that directory), or to another location of your choice (modify the INCLUDE environment variable to suit). Once this has been done, you will not need to compile the module source file mkl_m.f again unless a future compiler revision causes the module file format to be changed (this happens rarely).
Wherever you wish to use the MKL interfaces, insert "Use mkl_mod" before the declarations and after the subprogram heading.
There are many numerical analysis areas that IMSL covers but MKL does not, so I hope that you have satisfied yourself already that the capabilities that your code needs do exist in MKL. If you have IMSL FNL 7.0.1 installed, that package should continue to work with the 19.x compiler.