FIX: ALLOCATABLE on Formal Argument Gives No Error (86391)



The information in this article applies to:

  • Microsoft FORTRAN Compiler for MS-DOS 5.0
  • Microsoft FORTRAN compiler for OS/2 5.0

This article was previously published under Q86391

SYMPTOMS

The Microsoft FORTRAN 5.0 compiler fails to output an error message when the ALLOCATABLE attribute is placed on a formal argument of a subprogram. The following run-time error is generated when executing this code in either MS-DOS or OS/2:
run-time error F6316: ALLOCATE
- array already allocated
The following compiler error should be generated:
F2420 : (arrayname) : ALLOCATABLE: dummy argument illegal

RESOLUTION

Avoid using the ALLOCATABLE attribute on formal arguments.

STATUS

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

MORE INFORMATION

Page 145 of the "Microsoft FORTRAN Reference" version 5.0 manual states that ALLOCATABLE arrays must not be formal arguments.

Sample Code

The following code reproduces the problem:
       integer base,size

      call sub1(base,size)
      end

      subroutine sub1(base,size)
      integer base [allocatable] (:)
      integer size
      allocate (base(size))
      return
      end
				

Modification Type:MajorLast Reviewed:10/23/2003
Keywords:kbfix KB86391