Go to the documentation of this file.00001 LOGICAL FUNCTION ZLCTES( Z, D )
00002
00003
00004
00005
00006
00007
00008 COMPLEX*16 D, Z
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 DOUBLE PRECISION ZERO, ONE
00035 PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0 )
00036 COMPLEX*16 CZERO
00037 PARAMETER ( CZERO = ( 0.0D+0, 0.0D+0 ) )
00038
00039
00040 DOUBLE PRECISION ZMAX
00041
00042
00043 INTRINSIC ABS, DBLE, DIMAG, MAX, SIGN
00044
00045
00046
00047 IF( D.EQ.CZERO ) THEN
00048 ZLCTES = ( DBLE( Z ).LT.ZERO )
00049 ELSE
00050 IF( DBLE( Z ).EQ.ZERO .OR. DBLE( D ).EQ.ZERO ) THEN
00051 ZLCTES = ( SIGN( ONE, DIMAG( Z ) ).NE.
00052 $ SIGN( ONE, DIMAG( D ) ) )
00053 ELSE IF( DIMAG( Z ).EQ.ZERO .OR. DIMAG( D ).EQ.ZERO ) THEN
00054 ZLCTES = ( SIGN( ONE, DBLE( Z ) ).NE.
00055 $ SIGN( ONE, DBLE( D ) ) )
00056 ELSE
00057 ZMAX = MAX( ABS( DBLE( Z ) ), ABS( DIMAG( Z ) ) )
00058 ZLCTES = ( ( DBLE( Z ) / ZMAX )*DBLE( D )+
00059 $ ( DIMAG( Z ) / ZMAX )*DIMAG( D ).LT.ZERO )
00060 END IF
00061 END IF
00062
00063 RETURN
00064
00065
00066
00067 END