PRB: Error F2112 Caused by COMPLEX Number Variable (39068)



The information in this article applies to:

  • 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 Q39068

SYMPTOMS

An attempt to compile an application developed in Microsoft FORTRAN fails with the following error message:
Error F2112 : I : not symbolic constant.
With Microsoft FORTRAN PowerStation 32, version 4.0, this generates:
error FOR3083: invalid real part of COMPLEX constant

CAUSE

A FORTRAN application cannot directly manipulate complex number variables.

RESOLUTION

Use the CMPLX intrinsic function to manipulate the variable, as follows:
   Z = CMPLX(I, 1.2)
				

MORE INFORMATION

On Page 24, the Microsoft FORTRAN "Language Reference and Mixed-Language Programmer's Guide" for version 4.1 describes the complex data types as follows:
   The COMPLEX or COMPLEX*8 data type is an ordered pair of single-
   precision real numbers. COMPLEX*16 data type is an ordered pair of
   double-precision real numbers. The first number in the pair represents
   the real part of a complex number, and the second number represents the
   imaginary part.
				
For example, the complex number (7, 3.2) represents the number 7.0+3.2i.

The following code example demonstrates this error message.

Sample Code

C Compiler options required: None
      COMPLEX*8 Z
      REAL*4 I
      Z = (I, 1.2)
      END
				

Modification Type:MajorLast Reviewed:12/1/2003
Keywords:kberrmsg kbLangFortran KB39068