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

Infinite loop of screen refreshing

michael_green
Beginner
410 Views

Greetings All,

I have a Fortran GIS application that under certain circumstances displays a huge amount of geographical information on screen. A data structure contains all the information about what to display and at the appropriate time (WM_PAINT) the program goes through an i = 1,p loop to display it.

If the user zooms out by a linear factor of 2, say, 4 times as much information must be displayed, etc, so it's easy to see how quickly the amount of info to be displayed becomes huge.

Here's the problem: when the amount of info is very large, the display gets about half way through, then hangs briefly, then starts again, and this process goes on indefinitely. I do not think this is a trivial bug in the program code because both the Debug and Release builds work perfectly as long as I run them from Visual Studio, and outside Visual Studio it works fine as long as I zoom in a bit first. Furthermore, if I place a message box in the 1,p loop, doing nothing more than requiring me to click OK, there is no problem - it's just tedious having to click OK up to 30 times.

I presume I have some sort of memory management problem here but I do not know where to begin looking. Any insights or suggestions would be most welcome.

Many thanks

Mike

0 Kudos
2 Replies
jimdempseyatthecove
Honored Contributor III
410 Views

This sounds like you have an issue of a different DLL being loaded when run outside of the Visual Studio IDE.

Try starting a CMD window from the same Intel Parallel Studio version Command Prompt, then run your program from there. If this works, you may have a different version of the Intel Redistributables installed. You can correct this by either editing your environment variables, uninstalling other version/reinstalling compatible version, or launching your application via a shortcut that runs a batch that sets the correct value to an appropriate environment variable.

Jim Dempsey

0 Kudos
michael_green
Beginner
410 Views

Got it in one! Thank you so much. I would never have thought of looking there but when I checked I found my "production" version of the program was using DLLs dating from 2007 (CVF stuff), so I didn't even need to run your suggested tests, I just replaced the DLLs with 2018 versions.

Many thanks again.

Mike

0 Kudos
Reply