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

IMSL libraries and EM64T

jesusfv
Beginner
1,231 Views
Dear all:

I just got a new EM64T workstation. I am porting my old CVF code to the new machine and recompiling it with IVF 9.1 professional edition.

My code calls some IMSL functions. However, I cannot sucessfully call the IMSL library.

If I try to compile the simple code:

!---------------------------------
program IMSLcall

include 'link_f90_static.h'

print *, 'Hello'

end program
!-------------------------------

I get the error:

>>Error: Cannot open include file 'link_f90_static.h'

I tried to read the help function of IVF but I could not fix my problem.

I have included in Tools>Options>Intel Fortran in the libraries box the path
to the library:

C:Program Files(x86)VNICTT6.0libEM64T

and in include:

C:Program Files(x86)VNICTT6.0includeEM64T

Also, I have run the IMSL.bat and Iforvars.bat files.

Does anyone have a tutorial that is easier to follow than the instructions of IVF? As I mentioned before, I am doing everything (compiling and target) in EM64T.

Alternatively, does anyone know the (likely rather silly) mistake that I may be making?

Thanks

0 Kudos
11 Replies
Steven_L_Intel1
Employee
1,231 Views
The Building Applications manual has a section on using IMSL in the "Using Libraries" chapter. You seem to have done what's appropriate - have you verified that the include file is actually installed?
0 Kudos
jesusfv
Beginner
1,231 Views
Dear Steve:

Thanks for your quick reply. Yes, 'link_f90_static.h' is installed in the path that I specificed in "include". Equally, I have 'link_f90_dll.h" which I also tried without success.
I did read the section you mentioned "Using the IMSL..." under "Building Applications"
of the IVF compiler documentation before posting my previous entry. I found it a bit difficult to follow but I tried to implement the different steps it recommends.

Thanks for your help
0 Kudos
Steven_L_Intel1
Employee
1,231 Views
Please do this - right click on the projct, select Properties>Fortran>Command Line. Add to the Command options field:

/watch

Compile the source and post the build output.

If you have suggestions for how to improve the manual text, let me know.
0 Kudos
jesusfv
Beginner
1,231 Views
Dear Steve:

I was able to compile the hello world program I showed before. The problem was that Project>Properties I was not specifying platform x64. I only did it Tools>Options.

The simple code runs.

The problem I have now with the real application is:

"fatal error: LNK1112: module machine type 'x64' conflicts with machine type 'x86'"

No idea of what this can be. My machine is a Dell 690 with Intel 5160.

Thanks for your help


0 Kudos
Steven_L_Intel1
Employee
1,231 Views
Please see the Building Applications manual for how to specify a configuration type for x64.
0 Kudos
jesusfv
Beginner
1,231 Views
Hi:

Thanks. I had already checked that one out. Both on the configuration manager (Project>Properties) and on Tools>Options>Target Platform I am specifying x64. I do not know if there additional places to specify the type of platform. I did not see further requirements on chapter on the IVF chapter on Building Applications

Thanks
0 Kudos
Steven_L_Intel1
Employee
1,231 Views
If you specify the x64 as a "target" configuration, then it should automatically use the x64 compiler and linker. The error message you get suggests that it's using the 32-bit linker, or somehow /machine=x86 is being added to the link options. You should be able to see what the linker is using in the property page for the linker, command line. You can also look carefully at the build output to see what command is passed to the linker.
0 Kudos
jesusfv
Beginner
1,231 Views
Hi:

yes, thanks. Most helpful. Now I have an error LNK2019 unresolved external symbol.
I wil try to find out what that is. Any quick pointer?

Thanks for your help

J
0 Kudos
jesusfv
Beginner
1,231 Views
Also, in case someone asks, the unresolved external symbols are my own functions (the code calls different functions, all of them defined in the project).

Thanks
0 Kudos
Steven_L_Intel1
Employee
1,231 Views
Well, what is the exact error message? You can do a "dumpbin -symbols" from a Build Environment command prompt on the .obj that is supposed to define the symbol and compare.
0 Kudos
jesusfv
Beginner
1,231 Views
Dear all:

I fixed all my problems. The solution was to begin a new project from scratch and copy all the files from my old CVF project. It takes only a couple of minutes but it seems to be easier at the end of the day than try to import the old project as a whole.

Thanks a lot for your help
0 Kudos
Reply