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

Error 6401

chamm
Beginner
1,353 Views
I am trying to import a DLL that was last compiled on Compaq Fortran. I am getting an error 6401, saying that a reference to a routine in another file in the project conflicts with the USE statement. I do not have any USE statements in the code, and I have not found any reference to a default USE statement. All my routines are specified with cDEC$ ATTRIBUTES DLLEXPORT, C, ALIAS:'_name' :: name in the called procedure and cDEC$ ATTRIBUTES DLLIMPORT, C, ALIAS:'_name' :: name in the calling procedure. I am not using any MODULE statements, either.

Any idea what the problem is?
0 Kudos
6 Replies
Steven_L_Intel1
Employee
1,353 Views
See if the error goes away if you disable Diagnostics > Check Routine Interfaces.
0 Kudos
chamm
Beginner
1,353 Views
No, I'm still getting the error.
0 Kudos
Steven_L_Intel1
Employee
1,353 Views
In that case we'll need to see a sample program or ZIP of a solution that gives this error. Please "Clean" the solution and attach a ZIP of it.
0 Kudos
chamm
Beginner
1,353 Views
Here's a zip of the VS9 project
0 Kudos
chamm
Beginner
1,353 Views
Steve,

Any progress on this?
0 Kudos
Steven_L_Intel1
Employee
1,353 Views
Sorry for not getting back to you sooner.

I found that if I disable "Check Routine Interfaces", the error goes away. For some reason, the compiler is not picking up, in the call to CUMNBN, that you have !DEC$ REAL:8 to force REAL to double precision. This makes it not match the call.

If you disable Check Routine Interfaces (set to No) for the project, it will build. I will investigate why the error is occurring, but this should get you going.
0 Kudos
Reply