www.delorie.com/gnu/docs/gcc/g77_363.html   search  
 
Buy the book!


Using and Porting GNU Fortran

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.9.3 Ugly Complex Part Extraction

The `-fugly-complex' option enables use of the REAL() and AIMAG() intrinsics with arguments that are COMPLEX types other than COMPLEX(KIND=1).

With `-ff90' in effect, these intrinsics return the unconverted real and imaginary parts (respectively) of their argument.

With `-fno-f90' in effect, these intrinsics convert the real and imaginary parts to REAL(KIND=1), and return the result of that conversion.

Due to this ambiguity, the GNU Fortran language defines these constructs as invalid, except in the specific case where they are entirely and solely passed as an argument to an invocation of the REAL() intrinsic. For example,

 
REAL(REAL(Z))

is permitted even when `Z' is COMPLEX(KIND=2) and `-fno-ugly-complex' is in effect, because the meaning is clear.

g77 enforces this restriction, unless `-fugly-complex' is specified, in which case the appropriate interpretation is chosen and no diagnostic is issued.

See section 22.1 CMPAMBIG, for information on how to cope with existing code with unclear expectations of REAL() and AIMAG() with COMPLEX(KIND=2) arguments.

See section 8.11.9.212 RealPart Intrinsic, for information on the REALPART() intrinsic, used to extract the real part of a complex expression without conversion. See section 8.11.9.146 ImagPart Intrinsic, for information on the IMAGPART() intrinsic, used to extract the imaginary part of a complex expression without conversion.


  webmaster     delorie software   privacy  
  Copyright 2003   by The Free Software Foundation     Updated Jun 2003