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

Problems between Intel Compiler 8.1 and Msc Marc 2007r1

kepzky606
Beginner
4,166 Views

Hello,

I am using Intel Fotran Compiler in combination with MS VS 2003. I'd like to use the Intel Compiler with Msc Marc for executing my subroutines. But it does not work.

In the Visual environment I am able to create programs and the compiler works.

If I call a User subroutine out of Marc I get the following errormessages:

LINK : fatal error LNK1181: cannot open input file 'libmmt.lib'

Did anyone know what i have to do?

Kind regards

Erik

0 Kudos
23 Replies
Reza_M_
Beginner
647 Views

Hello Steve,

Thank you for your reply. The following line is triggering the problem: 

 write(inc+1000,310) lnode(1)-1,(stnod_d((lnode(1)-1)*6+j),

     +j=1,6)

As I mentioned before the above-mentioned subroutine perfectly work in linux version; however, when I use win version of MSC.Marc the problem occurs. I wonder if I should change something in visual studio in order to solve the problem?

Kind Regards,

Reza 

0 Kudos
Steven_L_Intel1
Employee
647 Views

Just showing the single line isn't useful. Your program could have corrupted the stack or other memory somewhere earlier in the program, or there may be an uninitialized or out of bounds variable. I don't know the MSC.Marc software or how it is to be used. I don't know if the library wants STDCALL or C calling convention, nor how you have configured your build. You will have to put some effort into debugging.

0 Kudos
mecej4
Honored Contributor III
647 Views

Reza, it is almost never enough to report just the line where an error occurs. We do not know what is in all those common blocks that are declared on the numerous include files, and we do not know what MARC passes to the subroutine, so you may be better off asking your questions somewhere else.

You could print the value of INODE(1) just before before the WRITE statement with the implied DO, in Linux and in Windows. If the two values are different, you could look at the value just after subroutine entry. If the values are still different, you may need to examine whether your subroutine is being called with the correct ABI.

0 Kudos
Reply