Microsoft KB Archive/69405

= FIX: F1001 or Protection Violation, Structure Member Array I/O =

Article ID: 69405

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 Q69405



SYMPTOMS
An attempt to compile an application in the OS/2 operating system fails and the third pass of the compiler generates a protection violation.

An attempt to compile the application in the MS-DOS operating system fails and the compiler generates the following messages:

warning F4202: (subroutine name) : formal argument : never used

fatal error F1001: Internal Compiler Error

(compiler file '@(#)omf_ms.c:1.118', line 1093)

Contact Microsoft Technical Support

The patched version of F1.EXE, which is designed to correct structure element I/O in subroutines, produces the same results as the unpatched version.



CAUSE
The application passes a structure that contains an array to a subroutine. The subroutine specifies the entire structure element array (no subscript) in an I/O statement.



RESOLUTION
Use an implied-DO list to read or write the entire array.



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
The following code example demonstrates this problem.

Sample Code #1
C Compile options needed: None

STRUCTURE /T/ INTEGER J(100) END STRUCTURE RECORD /T/ ST     CALL SUB(ST) END C SUBROUTINE SUB(ST) STRUCTURE /T/ INTEGER J(100) END STRUCTURE RECORD /T/ ST     WRITE(*, *) ST.J    ! Writes an entire array (no subscript). END The following code example demonstrates one method to work around this problem.

Sample Code #2
C Compile options needed: None

STRUCTURE /T/ INTEGER J(100) END STRUCTURE RECORD /T/ ST     CALL SUB(ST) END

SUBROUTINE SUB(ST) STRUCTURE /T/ INTEGER J(100) END STRUCTURE RECORD /T/ ST     WRITE(*,*) (ST.J(I), I = 1, 100) ! Uses an implied DO list. END

Additional query words: 5.00 buglist5.00 fixlist5.10

Keywords: kbfix KB69405

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.