Annotation of 43BSDTahoe/new/help/src/f77/complex, revision 1.1.1.1

1.1       root        1: .TI F77/COMPLEX "Sep. 4, 1985"
                      2: Complex and Double Complex Constants, Variables and Intrinsic Functions
                      3: 
                      4: Declare single precision complex variables as type 'complex' or 'complex*8';
                      5: declare double precision complex variables as 'double complex' or 'complex*16'. 
                      6: 
                      7: Here is an example illustrating the use of single precision complex
                      8: variables and constants:
                      9: 
                     10: .nf
                     11:                implicit complex (c)
                     12:                data x1/8.5/, x2/9.2/
                     13:                
                     14:        c               create c1 from a complex constant
                     15:                c1 = (1.1,2.1)
                     16:        c               create c2 from two real variables
                     17:                c2 = cmplx( x1, x2 )
                     18:        
                     19:        c               take complex square root of c1 using
                     20:        c                       the generic function name
                     21:                c3 = sqrt(c1)
                     22:        
                     23:        c               get the real part of c3
                     24:                xreal1 = c3
                     25:                xreal2 = real(c3)
                     26:        c               get imaginary part, aimag() would also work
                     27:                ximag = imag( c3 )
                     28:        c               find the conjugate of c3
                     29:                c4 = conjg(c3)
                     30:        
                     31:                print *, c1,c2,c3,c4,x1,x2,xreal1,xreal2,ximag
                     32:                end
                     33: .fi
                     34: 
                     35: The same example in double precision:
                     36: 
                     37: .nf
                     38:                implicit double complex (z)
                     39:                implicit double precision (d)
                     40:                data d1/8.5d0/, d2/9.2d0/
                     41:                
                     42:                z1 = (1.1d0,2.1d0)
                     43:                z2 = dcmplx( d1, d2 )
                     44:                z3 = sqrt(z1)
                     45:        c               get the real part, dreal() would also work
                     46:                dxreal1 = z3
                     47:                dxreal2 = dble(z3)
                     48:        c               get the imaginary part, dimag() would also work
                     49:                dximag = imag( z3 )
                     50:        c               find the conjugate
                     51:                z4 = conjg(z3)
                     52:        
                     53:                print *, z1,z2,z3,z4,d1,d2,dxreal1,dxreal2,dximag
                     54:                end
                     55: .fi
                     56: 
                     57: To create a complex value from real variables, use 'cmplx()'.  To
                     58: create a double complex value from double precision variables, use 'dcmplx()'.
                     59: The generic function names, that work with both complex
                     60: and double complex, are:
                     61: 
                     62: .nf
                     63:      imag(), conjg(), sqrt(), abs(), exp(), log(), sin(), cos()
                     64: .fi
                     65: 
                     66: If you declare the function to be external and pass the function name
                     67: to a procedure, you must use the specific function name.  For single
                     68: precision, they are:
                     69: 
                     70: .nf
                     71:     aimag(), conjg(),csqrt(),cabs(),cexp(),clog(),csin(),ccos()
                     72: .fi
                     73: 
                     74: and for double precision, they are:
                     75: 
                     76: .nf
                     77:     dimag(),dconjg(),zsqrt(),zabs(),zexp(),zlog(),zsin(),zcos()
                     78: .fi
                     79: 
                     80: For compatibility with other vendors compilers, the last six
                     81: specific functions may also be referred to as:
                     82: 
                     83: .nf
                     84:     cdsqrt(),cdabs(),cdexp(),cdlog(),cdsin(),cdcos()
                     85: .fi

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.