I am having my first go at graphics on Microsoft windows (having previously played with graphics on unix). I have tried to recreate precisely the intel test case that draws three graphs using the routines realg.f90 with subroutines gridshape.f90 and threegraphs.f90 - exactly as printed in the intel sample document. I managed to compile and link, eventually (as I didn't realise initially that "/libs:qwin" has to be added at the compile phase).
However, having finally compiled and linked the routines I get a re-iterating error window appearing with the window titled "QuickWin Error" and stating 'Internal Error - unexpected error file "qwgutil.c", line 2781'. The window keeps reappearing.
I guess I've committed some fundamental error - which is probably due to me executing the code from the command line. Is there a way to (a) remove the current error window without rebooting my machine; (b) to resolve the problem and get the code to run properly?
You will be able to kill the process that is generating the error window by starting the Task Manager (right-click in the ribbon at the bottom of the screen), click Processes, find the offending process and then End Process.
Which version of the compiler did you use, and what compiler options?
I took the source code at https://software.intel.com/en-us/node/535341 and built and ran the program using 9.1.039, 11.1.072, 16.0.5 and 17.0.4 on a Windows 10-64 PC.
All produced an EXE when I used /Od /libs:qwin as the compiler option.
The EXEs generated by the 9.1 and 11.1 compilers produced graphical windows, but had to be terminated manually (using TASKKILL.exe or the Task manager).
The EXEs from the newer compiler versions ran fine.
The EXEs 9.1 and 11.1 compilers produced graphical windows, but had to be terminated manually (using TASKKILL.exe or the Task manager). The EXEs from the newer compiler versions ran fine.
Thanks, Andrew. From that thread that you quoted, it appears that one must use use the 12.1 compiler or later to avoid this problem.
There is a really long thread, https://software.intel.com/en-us/node/293107, with 129 responses, that may be useful as a source of workarounds to try if one is forced to use an older compiler version.
Thank you all for your comments. For the record, my compile statement was simply:
ifort /c /libs:qwin *.f90
and the link statement was
ifort /Od /exe:test.exe *.obj
I'm running the intel 64 Fortran compiler ver 18.104.22.168. I'm able to build the program and run it from Visual Studio 2013 - albeit with a termination window (as mentioned by mecej4). However, I'm unable to run it from the command line. When I type in "test.exe" (the name of the executable) I still get the same error I mentioned above: Unexpected error file qwgutil.c line 2781.
Do I need to do something differently to run it from the command line? Either in compiling, linking, or executing?
Out of interest are you running from a command prompt created from the Intel fortran shortcuts on the start menu? Maybe the environment is a problem.
Yes, I'm trying to compile/link/run from the DOS-type window provided in the intel shortcuts. The window is titled:
Intel Compiler 17.0 Update 4 Intel(R) 64 Visual Studio 2013
One extra piece of information: at the compile phase (when compiling from the command line), I get a number of warnings #6075. It appears the compiler doesn't like the arithmetic operations within the arguments on calls to SETTEXTWINDOW and SETVIEWPORT, though the program still compiles.
The #6075 warnings are caused by your using 4-byte integer constants (such as "-1" and "2") in the expressions. Append "_2" to make them 2-byte integers. Or, surround the expressions with INT2(),.as you have already done in some places.