FIX: F1001, omf_ms.c, Structure Element I/O in Subroutine, 5.0 (48632)



The information in this article applies to:

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

This article was previously published under Q48632

SYMPTOMS

The "F1001: omf_ms.c:1.118, line 1093" internal compiler error is most often created in FORTRAN 5.0 by passing a structure to a subroutine and trying to use an item in that structure in a READ or WRITE operation.

RESOLUTION

An application note titled "F1.EXE and F1L.EXE Structure Patch," which corrects this problem, is available from Microsoft Product Support.

STATUS

This problem was also corrected in Microsoft FORTRAN version 5.1.

MORE INFORMATION

This file has been removed from the Software Library but can be requested by calling Microsoft Product Support Services.

Sample Code #1

c  The following code produces the above error in MS-DOS and produces
c  a protection violation under OS/2:

         subroutine a(ms)
         structure /dataset/ 
           integer*2 number
         end structure

         record /dataset/ ms

         read(*,10) ms.number
 10   format(i2)
         end
				

Sample Code #2

Another way to alleviate this problem is to use a temporary structure, as in the following:
            subroutine a(ms)
         structure /dataset/ 
           integer*2 number
         end structure

         record /dataset/ ms,fs
         read(*,10) fs.number  ! Read into fs, which was not passed.
         ms=fs                 ! Assign temp struct. to passed struct.
 10      format(i2)
         end
				

Modification Type:MajorLast Reviewed:10/23/2003
Keywords:kbcode kberrmsg kbfix kbLangFortran KB48632