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

ID: Q48632

5.00 | 5.00 MS-DOS | OS/2

    kbfile kbappnote

The information in this article applies to:

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/STATUS

An application note titled "F1.EXE and F1L.EXE Structure Patch," which corrects this problem, is available from Microsoft Product Support. This problem was also corrected in Microsoft FORTRAN version 5.1.

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

MORE INFORMATION

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

Additional reference words: 5.00 5.10 hf0225
KBCategory:     kbfile kbappnote
KBSubcategory: FLIss
Keywords          : kbcode kberrmsg kbLangFortran 
Version           : 5.00 | 5.00
Platform          : MS-DOS OS/2
Solution Type     : kbfix

Last Reviewed: May 23, 1998