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

Error writing to console

Mark_Jablin
Beginner
3,408 Views

I recently upgraded to Fortran 11.0 from 10.1, and I'm now running into an error in a .dll called from a C++ program.

The program crashes when the Fortran library tries a write(*,*) "anything".

The problem only occurs when the library is called from the C++ program. If I use my dummy Fortran executable to call the .dll there is no error.

I get the error whether I run the C++ program out of the debugger or run the release version.

Thanks in advance.

Mark

0 Kudos
24 Replies
g_f_thomas
Beginner
689 Views

We do look for possible problems in this forum and if we can reproduce them, submit them to development. As for 066, the timeframe for getting fixes into that was very short. It does not make it easier for us if we don't get an actual sample code but only a generic description. Now that we have a sample I'll make sure developers know about it.

One would reasonably assume that this critical feature was checked before 11 left the stalls. Obviously not."That the behavior changed between 10.1 and 11.0 is not good," as you remarked to the third report of this problem on this forum.
Let it be fixed.

Gerry

0 Kudos
Steven_L_Intel1
Employee
689 Views

I can now reproduce this with a simple Fortran Windows application. I doubt we have any tests that call AllocConsole, but we will now. I'll report this regression to the developers and note its importance. Thanks for all the clarification.

This is our issue DPD200110270.

0 Kudos
Steven_L_Intel1
Employee
689 Views

Our developers found the cause of this bug and will fix it as soon as possible. There is a curious workaround - in your Fortran code, use unit 0 instead of *. This will continue to work even after the bug is fixed. 0 normally means "standard error".

0 Kudos
Mark_Jablin
Beginner
689 Views

Our developers found the cause of this bug and will fix it as soon as possible. There is a curious workaround - in your Fortran code, use unit 0 instead of *. This will continue to work even after the bug is fixed. 0 normally means "standard error".

Steve, thanks for your help.

Mark

0 Kudos
Reply