Microsoft KB Archive/51284

From BetaArchive Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Article ID: 51284

Article Last Modified on 10/23/2003



APPLIES TO

  • Microsoft FORTRAN Compiler 5.0
  • Microsoft FORTRAN Compiler 5.0



This article was previously published under Q51284

SYMPTOMS

An attempt to compile an application fails and the compiler generates the following message:

error F2725 illegal input list item

CAUSE

The application includes a READ statement where the iolist contains elements of an array of records.

RESOLUTION

To address this error, perform one of the following two procedures:

  • Modify the source code to use one structure instead of an array of structures. -or-


  • Modify the source code to specify a temporary variable in the READ statement iolist and assign the desired array element to the temporary variable.


STATUS

Microsoft has confirmed this to be a problem in FORTRAN version 5.0 for MS-DOS and OS/2. This problem was corrected in FORTRAN version 5.1 for MS-DOS and OS/2.

MORE INFORMATION

According to page 218 of the Microsoft FORTRAN "Reference" manual for versions 5.0 and 5.1, an application can declare an array of structures. According to page 214, the iolist can contain structure elements.

The following code example demonstrates this problem.

Sample Code #1

C Compile options needed: None

    C Compile options needed: None

      STRUCTURE /SPECLIMIT/ 
      REAL*4 A
      END STRUCTURE

      RECORD /SPECLIMIT /LIMIT(5)
      N = 1
      LIMIT(N).A = 34.56
      READ (*, 1000) LIMIT(N).A    ! array causes error
1000  FORMAT (F6.2)
      END
                

The following code example demonstrates one method to address this problem.

Sample Code #2

C Compile options needed: None

      STRUCTURE /SPECLIMIT/ 
      REAL*4 A
      END STRUCTURE
      REAL*4 TMP

      RECORD /SPECLIMIT /LIMIT(5)
      N = 1
      LIMIT(N).A = 34.56
      READ (*, 1000) TMP
      LIMIT(N).A = TMP
1000  FORMAT (F6.2)
      END
                


Additional query words: 5.00 buglist5.00 fixlist5.10

Keywords: kbfix KB51284