FIX: Implicit AUTOMATIC Corrupts Subroutine Return Value

ID: Q68220


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


SYMPTOMS

The program below should print out the value 9999 for 'j', after the call to subroutine X modifies it, but the original value of 5 is printed.


RESOLUTION

Removing the AUTOMATIC statement fixes the problem, as does compiling with /Od.


STATUS

Microsoft has confirmed this to be a bug in the products listed above. This problem was corrected in FORTRAN PowerStation, version 1.0.


MORE INFORMATION

The following sample demonstrates the problem.

Sample code


       automatic
      character*80 a, b

      b = ' '
      i = 10
      j = i - 5
      a = b(j:i)

      write(*,*) 'j before call =', j
      call X ( j )
      write(*,*) 'j after call  =', j

      end

      subroutine X ( k )
      k = 9999
      return
      end 

Additional query words: 5.00 5.10 buglist5.00 buglist5.10 fixlist1.00

Keywords :
Version : :5.0,5.1
Platform :
Issue type :


Last Reviewed: November 2, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.