I have a large code with mixed Fortran 77 and 90 with Lapack calls. It compiles on RH7.3 with ifc 7.1 and mkl 5.2 (statically and shared) and it runs correctly. On RH7.3, RH8 and RH9 with ifc 7.1 and mkl 6 it will compile only shared (since mkl 6 has no libmkl_p4.a). But each of these three executables (compiled with mkl 6) go into never-never land when they run (infinite loop of some kind after finishing incorrectly earlier phases of the run). It seems to me it may have to do with some poor floating point arithmetic since these three executables enter a check for a small floating point number they should not enter. Any thoughts?
Also, the executable statically linked with mkl 5.2 works great and the executable runs great. Why did Intel not keep static linking with mkl 6? This is one reason for my company's interest in Intel compilers: we could statically link, send anywhere, and not get in trouble with the GNU license issue. Also static linking makes maintenance much easier with users.
To statically link (with Lapack and mkl 5.2) I used:
-static -lmkl_lapack -lmkl_p4 -lguide -lPEPCF90 -lpthread
To statically link a different large c++ code with GNU g++ I used:
-static -llapack -lblas -lg2c