Assumed-Sized Array Declarator Not Allowed in COMMON (37544)



The information in this article applies to:

  • Microsoft FORTRAN Compiler for MS-DOS 4.0
  • Microsoft FORTRAN Compiler for MS-DOS 4.01
  • Microsoft FORTRAN Compiler for MS-DOS 4.1
  • Microsoft FORTRAN Compiler for MS-DOS 5.0
  • Microsoft FORTRAN Compiler for MS-DOS 5.1
  • Microsoft FORTRAN compiler for OS/2 4.1
  • Microsoft FORTRAN compiler for OS/2 5.0
  • Microsoft FORTRAN compiler for OS/2 5.1
  • Microsoft FORTRAN PowerStation for MS-DOS 1.0
  • Microsoft FORTRAN PowerStation for MS-DOS 1.0a
  • Microsoft Fortran Powerstation 32 for Windows NT 1.0
  • Microsoft Fortran Powerstation 32 for Windows NT 4.0

This article was previously published under Q37544

SUMMARY

In a COMMON block, an array must be declared with explicit dimensions; it cannot have an adjustable or assumed size. According to the ANSI FORTRAN standard (ANSI x3.9-1978, section 5.1.2), each array declarator is either an actual array declarator or a dummy array declarator. An adjustable-size array declarator and an assumed-size array declarator are dummy array declarators. A dummy array declarator is not permitted in a COMMON statement. Therefore, an adjustable-sized or an assumed-size array cannot be declared in a COMMON block.

In an application, one subprogram can pass an array as an argument to a subprogram and declare the argument with a dummy array declarator in a DIMENSION statement.

Sample Code

C Compiler options required: If array R has HUGE size,
C specify the HUGE attribute on R or the /AH compiler option switch.

      PROGRAM TEST
      COMMON R(32000)
      CALL DOIT(R)
      END

      SUBROUTINE DOIT (R)
      DIMENSION R[HUGE](*)
      RETURN
      END
				

Modification Type:MajorLast Reviewed:12/1/2003
Keywords:kbLangFortran KB37544