1 SUBROUTINE POWP
(NNNN
,XXXX
,YYYY
)
3 C THIS SUBROUTINE TAKES A NON-NEGATIVE POWER OF A COMPLEX NUMBER:
4 C YYYY = XXXX**NNNN USING DE MOIVRE'S FORMULA:
6 C YYYY = R**NNNN * (COS(NNNN*THETA),SIN(NNNN*THETA)),
8 C WHERE R=DNRM2(2,XXXX,1) AND THETA=ATAN2(XXXX(2),XXXX(1)).
10 C NOTE: POWP SETS 0**0 EQUAL TO 1.
14 C NNNN IS A NON-NEGATIVE INTEGER.
16 C XXXX IS AN ARRAY OF LENGTH TWO REPRESENTING A COMPLEX
17 C NUMBER, WHERE XXXX(1) = REAL PART OF XXXX AND XXXX(2) =
18 C IMAGINARY PART OF XXXX.
22 C YYYY IS AN ARRAY OF LENGTH TWO REPRESENTING THE RESULT OF
23 C THE POWER, YYYY = XXXX**NNNN, WHERE YYYY(1) =
24 C REAL PART OF YYYY AND YYYY(2) = IMAGINARY PART OF YYYY.
26 C SUBROUTINES: COS, SIN, ATAN2, DNRM2
28 C DECLARATION OF INPUT
33 C DECLARATION OF OUTPUT
37 C DECLARATION OF VARIABLES
38 DOUBLE PRECISION R
,RR
,T
,TT
40 C DECLARATION OF FUNCTIONS
41 DOUBLE PRECISION DNRM2
60 T
= ATAN2
(XXXX
(2),XXXX
(1))