Microsoft KB Archive/104776

From BetaArchive Wiki
Knowledge Base

Article ID: 104776

Article Last Modified on 10/2/2003


  • Microsoft FORTRAN PowerStation 1.0 Standard Edition
  • Microsoft Fortran PowerStation 1.0a for MS-DOS

This article was previously published under Q104776


A program may execute in an infinite loop if it was compiled with full optimization (-Ox) and contains a do loop calling some of the graphics routines [such as POLYGON_W()].


Some of the graphics functions (such as POLYGON_W) prevent optimized code from recognizing the end condition for the loop.


Microsoft has confirmed this to be a problem in FORTRAN PowerStation for MS-DOS, version 1.0 and 1.0a.

This problems does not apply to FORTRAN PowerStation 32.


Compile the program with no optimization (this is the default).

Sample Code

c Compile options needed:    -Ox
c The following program will output in an infinite loop:

      include ''
      include 'fgraph.fd'
      INTEGER*2  status, npts

      RECORD     / wxycoord /  wxyarr(3)

      status = setvideomode(18)
      do it=1,2
         write (*,'(i4\)') it
         wxyarr(1).wx = 43.d0
         wxyarr(1).wy = 85.d0
         wxyarr(2).wx = 50.d0
         wxyarr(2).wy = 71.d0
         wxyarr(3).wx = 45.d0
         wxyarr(3).wy = 85.d0
         npts = 3
         status = POLYGON_W($GBORDER, wxyarr, npts)

Additional query words: nofpsnt 1.00

Keywords: KB104776