FIX: F1001 in regasg.c with Adjustable Sized COMPLEX and /4Yb (112057)



The information in this article applies to:

  • Microsoft FORTRAN PowerStation for MS-DOS 1.0
  • Microsoft FORTRAN PowerStation for MS-DOS 1.0a

This article was previously published under Q112057

SYMPTOMS

Compiling a routine (that uses adjustable sized COMPLEX arrays in an expression with a COMPLEX constant) with the /4Yb (or $debug) option may produce the following error with FORTRAN PowerStation 1.0:
fatal error F1001: INTERNAL COMPILER ERROR
(compiler file '@(#)regasg.c:1.25', line 451)
Contact Microsoft Product Support Services
Using FORTRAN PowerStation 1.0a, the following error may be produced:
fatal error F1001: INTERNAL COMPILER ERROR
(compiler file '@(#)regasg.c:1.25', line 453)
Contact Microsoft Product Support Services

RESOLUTION

Either use the CMPLX or DCMPLX intrinsic function on the COMPLEX constant, or do not compile with extended error handling.

STATUS

Microsoft has confirmed this to be a problem in FORTRAN PowerStation versions 1.0 and 1.0a for MS-DOS. This problem was corrected in FORTRAN PowerStation 32.

MORE INFORMATION

To demonstrate the problem, compile the sample code below with the Microsoft FORTRAN PowerStation:

Sample Code #1

$debug
      SUBROUTINE FILTER(FFT1,FFT2,N)
      complex fft1(n),fft2(n)
      fft1(n)=(0,1)*fft2(n)
      return
      end
				
The internal compiler error can be alleviated by using the CMPLX intrinsic function as shown in the example below:

Sample Code #2

$debug
      SUBROUTINE FILTER(FFT1,FFT2,N)
      complex fft1(n),fft2(n)
      fft1(n)=CMPLX(0,1)*fft2(n)
      return
      end
				

Modification Type:MajorLast Reviewed:10/2/2003
Keywords:kbbug kbfix KB112057