FIX: Implied DO-Loop with Structure Causes Compiler Error (80536)



The information in this article applies to:

  • Microsoft FORTRAN Compiler for MS-DOS 5.1
  • Microsoft FORTRAN compiler for OS/2 5.1

This article was previously published under Q80536

SYMPTOMS

The MS FORTRAN 5.10 compiler can generate a Trap C protection violation under OS/2 or incorrect compiler errors under MS-DOS. The code which causes this problem contains an array of structures that is initialized in a DATA statement using an implied DO-loop.

RESOLUTION

Do not use implied DO-loops in DATA statements with arrays of structures. Use assignment statements or read the data from a file.

STATUS

Microsoft has confirmed this to be a problem in FORTRAN version 5.10. This problem was corrected in FORTRAN PowerStation, version 1.0.

MORE INFORMATION

The following code reproduces the problem. Under OS/2 it generates a Trap C with the following error text:
SYS1942: A program attempted to reference storage outside the limits of a stack segment. The program was ended.
Under MS-DOS it generates the following error:
fatal error F1900: maximum memory-allocation size exceeded

Sample code

      structure /s/ 
         integer*2 i
         real*4 r
         character*2 ch
      end structure
      record /s/ a(20)
      data (a(j).ch,j=1,3) /'h ','he','hj'/ 
      end
				

Modification Type:MajorLast Reviewed:10/23/2003
Keywords:kbfix KB80536