SUBROUTINE MULP(XXXX,YYYY,ZZZZ) C C THIS SUBROUTINE PERFORMS MULTIPLICATION OF COMPLEX NUMBERS: C ZZZZ = XXXX*YYYY C C NOTE: IN THE CALLING ROUTINE, ZZZZ SHOULD NOT BE THE SAME C AS XXXX OR YYYY. HOWEVER, XXXX MAY BE THE SAME AS YYYY. C THUS, "CALL MULP(X,X,Z)" IS OK, BUT "CALL MULP(X,Y,X)" IS NOT. C C ON INPUT: C C XXXX IS AN ARRAY OF LENGTH TWO REPRESENTING THE FIRST COMPLEX C NUMBER, WHERE XXXX(1) = REAL PART OF XXXX AND XXXX(2) = C IMAGINARY PART OF XXXX. C C YYYY IS AN ARRAY OF LENGTH TWO REPRESENTING THE SECOND COMPLEX C NUMBER, WHERE YYYY(1) = REAL PART OF YYYY AND YYYY(2) = C IMAGINARY PART OF YYYY. C C ON OUTPUT: C C ZZZZ IS AN ARRAY OF LENGTH TWO REPRESENTING THE RESULT OF C THE MULTIPLICATION, ZZZZ = XXXX*YYYY, WHERE ZZZZ(1) = C REAL PART OF ZZZZ AND ZZZZ(2) = IMAGINARY PART OF ZZZZ. C C DECLARATION OF INPUT DOUBLE PRECISION XXXX,YYYY DIMENSION XXXX(2),YYYY(2) C C DECLARATION OF OUTPUT DOUBLE PRECISION ZZZZ DIMENSION ZZZZ(2) C ZZZZ(1) = XXXX(1)*YYYY(1) - XXXX(2)*YYYY(2) ZZZZ(2) = XXXX(1)*YYYY(2) + XXXX(2)*YYYY(1) RETURN END .