PRB: Error F2112 Caused by COMPLEX Number Variable

ID: Q39068

1.00 1.00a 4.01 4.10 5.00 5.10 | 4.10 5.00 5.10 | 1.00 4.00

MS-DOS                         | OS/2           | WINDOWS NT
kbprg kbprb

The information in this article applies to:

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

Additional reference words: 1.00 4.00 4.01 4.10 5.00 5.10 KBCategory: kbprg kbprb KBSubcategory: FORTLngIss
Keywords          : kberrmsg kbFortranPS kbLangFortran 
Version           : 1.00 1.00a 4.01 4.10 5.00 5.10 |
Platform          : MS-DOS NT OS/2 WINDOWS

Last Reviewed: May 23, 1998