Microsoft KB Archive/71335: Difference between revisions

From BetaArchive Wiki
(importing KB archive)
(No difference)

Revision as of 18:58, 18 July 2020

F1001: trees.c, Line 1165, Adjustable-Size Array with ENTRY PSS ID Number: Q71335 Article last modified on 04-08-1993

5.00 | 5.00

MS-DOS | OS/2

The information in this article applies to:
- Microsoft FORTRAN for MS-DOS, version 5.0 - Microsoft FORTRAN for OS/2, version 5.0

Summary:

In FORTRAN 5.00, when compiling a program that contains an adjustable-size array that is accessed in a subroutine before the ENTRY point at which the array is passed into the routine, the following error may occur:

fatal error F1001: Internal Compiler Error (compiler file ‘../../../P2/trees.c’, line 1165) Contact Microsoft Technical Support

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

More Information:

The code below reproduces the internal compiler error:

  subroutine sub(ndim)
  dimension array(ndim)     
  do 700 i=1,8
  array(i)=0               ! Array has not been passed in yet

700 continue return entry wavef(array) end

The program should generate the following error message:

error F2500: ARRAY : adjustable-size array : used before
definition

This error is correctly generated in Microsoft FORTRAN versions 4.00, 4.01, and 4.10 and 5.10.

The adjustable-size array should be dimensioned and initialized after the ENTRY point where the array is passed as an argument.

The following code illustrates how an adjustable-size array should be used with an ENTRY into a subroutine:

  subroutine sub(ndim)
  return
  entry wavef(array)        ! Array passed into subroutine
  dimension array(ndim)     ! then dimensioned and used
  do 700 i=1,8
  array(i)=0

700 continue end

=================================================================

Copyright Microsoft Corporation 1993.