home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / cpmug / cpmug083.ark / COMCALC.BAS < prev    next >
Encoding:
BASIC Source File  |  1984-04-29  |  11.1 KB  |  340 lines

  1.     REM PROGRAM SRT BY E.R. LE CLEAR 8-16-79
  2.     REM THIS PROGRAM PROVIDES CALCULATOR TYPE
  3.     REM OPERATION FOR COMPLEX QUANTITY MATH
  4.     REM OPERATIONS INCLUDING SEVERAL MATRIX
  5.     REM CONVERSION ROUTINES. DESCRIPTIONS OF
  6.     REM EACH COMPLEX SUBROUTINE IS GIVEN IN
  7.     REM FILE DISK.DOC .
  8. 1.0    PRINT "MENUE"
  9.     PRINT "POL/REC   REC/POL   SER/PAR   PAR/SER"
  10.     PRINT "MPYCOM    DIVCOM    REFC/Z    Z/REFC"
  11.     PRINT "SMATX     XMATS     ZXXZ      YZZY"
  12.     PRINT "MTXMPY"
  13.     INPUT "WHICH ?";SELECT$
  14.     IF SELECT$="POL/REC" THEN GOSUB 2.0
  15.     IF SELECT$="REC/POL" THEN GOSUB 3.0
  16.     IF SELECT$="SER/PAR" THEN GOSUB 4.0
  17.     IF SELECT$="PAR/SER" THEN GOSUB 5.0
  18.     IF SELECT$="MPYCOM" THEN GOSUB 6.0
  19.     IF SELECT$="DIVCOM" THEN GOSUB 7.0
  20.     IF SELECT$="REFC/Z" THEN GOSUB 8.0
  21.     IF SELECT$="Z/REFC" THEN GOSUB 9.0
  22.     IF SELECT$="SMATX" THEN GOSUB 10.0
  23.     IF SELECT$="XMATS" THEN GOSUB 11.0
  24.     IF SELECT$="ZXXZ" THEN GOSUB 12.0
  25.     IF SELECT$="YZZY" THEN GOSUB 13.0
  26.     IF SELECT$="MTXMPY" THEN GOSUB 14.0
  27.     GOTO 1.0
  28. 2.0    PRINT "POLAR TO RECTANGULAR  "
  29.     INPUT "MAGNITUDE, PHASE ?";TEMP.MAG,TEMP.PHA
  30.     GOSUB 100.000
  31.     PRINT "REAL= ";TEMP.REAL,"IMAGINARY= ";TEMP.IMAG
  32.     RETURN
  33. 3.0    PRINT "RECTANGULAR TO POLAR "
  34.     INPUT "REAL, IMAGINARY ?";TEMP.REAL,TEMP.IMAG
  35.     GOSUB 100.100
  36.     PRINT "MAGNITUDE= ";TEMP.MAG,"PHASE(DEG)= ";TEMP.PHA
  37.     RETURN
  38. 4.0    PRINT "SERIAL TO PARALLEL IMPEDANCE "
  39.     INPUT "SERIES R,SERIES X ?";TEMP.REAL,TEMP.IMAG
  40.     GOSUB 101.100
  41.     PRINT"PARALLEL R= ";TEMP.REAL,"PARALLEL X=";TEMP.IMAG
  42.     RETURN
  43. 5.0    PRINT "PARALLEL TO SERIAL IMPEDANCE "
  44.     INPUT "PARALLEL R, PARALLEL X ?";TEMP.REAL,TEMP.IMAG
  45.     GOSUB 102.100
  46.     PRINT "SERIES R=";TEMP.REAL,"SERIES X=";TEMP.IMAG
  47.     RETURN
  48. 6.0    PRINT "COMPLEX MULTIPLICATION "
  49.     INPUT "A+JB, C+JD ?";TEMP.REAL,TEMP.IMAG,TEMP1.REAL,TEMP1.IMAG
  50.     GOSUB 103.100
  51.     PRINT "C=";TEMP.REAL,"JD=";TEMP.IMAG
  52.     RETURN
  53. 7.0    PRINT "COMPLEX DIVISION "
  54.     INPUT "A+JB /C+JD";TEMP.REAL,TEMP.IMAG,TEMP1.REAL,TEMP1.IMAG
  55.     GOSUB 104.100
  56.     PRINT "C=";TEMP.REAL,"JD=";TEMP.IMAG
  57.     RETURN
  58. 8.0    PRINT "REFLECTION COEFFICIENT TO LOAD Z "
  59.     INPUT "MAGNITUDE, PHASE ?";TEMP.MAG,TEMP.PHA
  60.     GOSUB 105.100
  61.     PRINT "SERIES R=";TEMP.REAL,"SERIES X=";TEMP.IMAG
  62.     RETURN
  63. 9.0    PRINT "LOAD Z TO REFLECTION COEFFICIENT"
  64.     INPUT "SERIES R, SERIES X ?";TEMP.REAL,TEMP.IMAG
  65.     GOSUB 106.100
  66.     PRINT "MAGNITUDE=";TEMP.MAG,"PHASE=";TEMP.PHA
  67.     RETURN
  68. 10.0    PRINT "S TO X MATRIX CONVERSION"
  69.     INPUT "S11,S12,S21,S22";S11.REAL,S11.IMAG,S12.REAL,S12.IMAG,S21.REAL,S21.IMAG,S22.REAL,S22.IMAG
  70.     GOSUB 107.100
  71.     PRINT "A=";A.REAL,"+J";A.IMAG
  72.     PRINT "B=";B.REAL,"+J";B.IMAG
  73.     PRINT "C=";C.REAL,"+J";C.IMAG
  74.     PRINT "D=";D.REAL,"+J";D.IMAG
  75.     RETURN
  76. 11.0    PRINT "X TO S MATRIX CONVERSION"
  77.     INPUT "A,B,C,D";A.REAL,A.IMAG,B.REAL,B.IMAG,C.REAL,C.IMAG,D.REAL,D.IMAG
  78.     GOSUB 108.100
  79.     PRINT "S11=";S11.REAL,"+J";S11.IMAG
  80.     PRINT "S12=";S12.REAL,"+J";S12.IMAG
  81.     PRINT "S21=";S21.REAL,"+J";S21.IMAG
  82.     PRINT "S22=";S22.REAL,"+J";S22.IMAG
  83.     RETURN
  84. 12.0    PRINT "Z AND X MATRIX CONVERSIONS"
  85.     INPUT "Z11(X11), Z12(X12),Z21(X21),Z22(X22) ?";TEMPA.REAL,TEMPA.IMAG,TEMPB.REAL,TEMPB.IMAG,TEMPC.REAL,TEMPC.IMAG,TEMPD.REAL,TEMPD.IMAG
  86.     GOSUB 109.100
  87.     PRINT "X11(Z11)=";TEMPA.REAL,"+J";TEMPA.IMAG
  88.     PRINT "X12(Z12)=";TEMPB.REAL,"+J";TEMPB.IMAG
  89.     PRINT "X21(Z21)=";TEMPC.REAL,"+J";TEMPC.IMAG
  90.     PRINT "X22(Z22)=";TEMPD.REAL,"+J";TEMPD.IMAG
  91.     RETURN
  92. 13.0    PRINT "Z AND Y MATRIX CONVERSIONS"
  93.     INPUT "Z11(Y11), Z12(Y12), Z21(Y21), Z22(Y22) ?";TEMPA.REAL,TEMPA.IMAG,TEMPB.REAL,TEMPB.IMAG,TEMPC.REAL,TEMPC.IMAG,TEMPD.REAL,TEMPD.IMAG
  94.     GOSUB 110.100
  95.     PRINT "Y11(Z11)=";TEMPA.REAL,"+J";TEMPA.IMAG
  96.     PRINT "Y12(Z12)=";TEMPB.REAL,"+J";TEMPB.IMAG
  97.     PRINT "Y21(Z21)=";TEMPC.REAL,"+J";TEMPC.IMAG
  98.     PRINT "Y22(Z22)=";TEMPD.REAL,"+J";TEMPD.IMAG
  99.     RETURN
  100. 14.0    PRINT "COMPLEX MATRIX MULTIPLICATION"
  101.     INPUT "A11,A12,A21,A22";A11.REAL,A11.IMAG,A12.REAL,A12.IMAG,A21.REAL,A21.IMAG,A22.REAL,A22.IMAG
  102.     INPUT "B11,B12,B21,B22";B11.REAL,B11.IMAG,B12.REAL,B12.IMAG,B21.REAL,B21.IMAG,B22.REAL,B22.IMAG
  103.     GOSUB 111.100
  104.     PRINT "C11=";C11.REAL,"+J";C11.IMAG
  105.     PRINT "C12=";C12.REAL,"+J";C12.IMAG
  106.     PRINT "C21=";C21.REAL,"+J";C21.IMAG
  107.     PRINT "C22=";C22.REAL,"+J";C22.IMAG
  108.     RETURN
  109. 100.000    REM ***********POL/REC***********
  110.     TEMP.REAL=TEMP.MAG*COS(TEMP.PHA/57.296)
  111.     TEMP.IMAG=TEMP.MAG*SIN(TEMP.PHA/57.296)
  112.     RETURN
  113. 100.100    REM ***********REC/POL***********
  114.     TEMP.MAG=SQR(TEMP.REAL*TEMP.REAL+TEMP.IMAG*TEMP.IMAG)
  115.     TEMP.PHA=57.296*ATN(TEMP.IMAG/TEMP.REAL)
  116.     RETURN
  117. 101.100    REM ***********SER/PAR***********
  118.     A=TEMP.REAL : B=TEMP.IMAG
  119.     Q=B/A
  120.     IF Q<1E-12 THEN Q=1E-12
  121.     TEMP.REAL=A*(1+Q*Q)
  122.     TEMP.IMAG=B*(1+1/(Q*Q))
  123.     RETURN
  124. 102.100    REM ***********PAR/SER***********
  125.     A=TEMP.REAL : B=TEMP.IMAG
  126.     Q=B/A
  127.     IF Q<1E-12 THEN Q=1E-12
  128.     TEMP.REAL=A/(1+1/(Q*Q))
  129.     TEMP.IMAG=B/(1+Q*Q)
  130.     RETURN
  131. 103.100    REM ***********MPYCOM***********
  132.     A=TEMP.REAL : B=TEMP.IMAG
  133.     C=TEMP1.REAL : D=TEMP1.IMAG
  134.     TEMP.REAL=A*C-B*D
  135.     TEMP.IMAG=A*D+B*C
  136.     RETURN
  137. 104.100 REM ***********DIVCOM***********
  138.     A=TEMP.REAL : B=TEMP.IMAG
  139.     C=TEMP1.REAL : D=TEMP1.IMAG
  140.     E=C*C+D*D
  141.     IF E<1E-12 THEN E=1E-12
  142.     TEMP.REAL=(A*C+B*D)/E
  143.     TEMP.IMAG=(B*C-A*D)/E
  144.     RETURN
  145. 105.100    REM ***********REFC/Z***********
  146.     A=TEMP.MAG : B=TEMP.PHA
  147.     SR=A*COS(B/57.296)
  148.     IF SR<1E-12 THEN SR=1E-12
  149.     SI=A*SIN(B/57.296)
  150.     TEMP.REAL=1+SR : TEMP.IMAG=SI
  151.     TEMP1.REAL=1-SR : TEMP1.IMAG=-SI
  152.     GOSUB 104.100
  153.     TEMR=TEMP.REAL : TEMI=TEMP.IMAG
  154.     TEMP.REAL=50*TEMR : TEMP.IMAG=50*TEMI
  155.     RETURN
  156. 106.100    REM ***********Z/REFC***********
  157.     A=TEMP.REAL
  158.     TEMP.REAL=A-50
  159.     TEMP1.REAL=A+50 : TEMP1.IMAG=TEMP.IMAG
  160.     GOSUB 104.100
  161.     TEMP.MAG=SQR(TEMP.REAL*TEMP.REAL+TEMP.IMAG*TEMP.IMAG)
  162.     TEMP.PHA=57.296*ATN(TEMP.IMAG/TEMP.REAL)
  163.     RETURN
  164.     107.100    REM ***********SMATX***********
  165.     T1R=1+S11.REAL : T1I=S11.IMAG
  166.     T2R=1-S11.REAL : T2I=-S11.IMAG
  167.     T3R=1+S22.REAL : T3I=S22.IMAG
  168.     T4R=1-S22.REAL : T4I=-S22.IMAG
  169.     TEMP.REAL=S12.REAL : TEMP.IMAG=S12.IMAG
  170.     TEMP1.REAL=S21.REAL : TEMP1.IMAG=S21.IMAG
  171.     GOSUB 103.100
  172.     T5R=TEMP.REAL : T5I=TEMP.IMAG
  173.     TEMP.REAL=T1R : TEMP.IMAG=T1I
  174.     TEMP1.REAL=T4R : TEMP1.IMAG=T4I
  175.     GOSUB 103.100
  176.     Q1R=TEMP.REAL : Q1I=TEMP.IMAG
  177.     Q2R=Q1R+T5R : Q2I=Q1I+T5I
  178.     TEMP.REAL=Q2R : TEMP.IMAG=Q2I
  179.     TEMP1.REAL=S21.REAL : TEMP1.IMAG=S21.IMAG
  180.     GOSUB 104.100
  181.     Q3R=TEMP.REAL : Q3I=TEMP.IMAG
  182.     A.REAL=Q3R/2 : A.IMAG=Q3I/2
  183.     TEMP.REAL=T2R : TEMP.IMAG=T2I 
  184.     TEMP1.REAL=T4R : TEMP1.IMAG=T4I
  185.     GOSUB 103.100
  186.     Q4R=TEMP.REAL : Q4I=TEMP.IMAG
  187.     Q5R=Q4R-T5R : Q5I=Q4I-T5I
  188.     TEMP.REAL=Q5R : TEMP.IMAG=Q5I
  189.     TEMP1.REAL=S21.REAL : TEMP1.IMAG=S21.IMAG
  190.     GOSUB 104.100
  191.     Q6R=TEMP.REAL : Q6I=TEMP.IMAG
  192.     C.REAL=Q6R/100 : C.IMAG=Q6I/100
  193.     TEMP.REAL=T2R : TEMP.IMAG=T2I
  194.     TEMP1.REAL=T3R : TEMP1.IMAG=T3I
  195.     GOSUB 103.100
  196.     Q7R=TEMP.REAL : Q7I=TEMP.IMAG
  197.     Q8R=Q7R+T5R : Q8I=Q7I+T5I
  198.     TEMP.REAL=Q8R : TEMP.IMAG=Q8I
  199.     TEMP1.REAL=S21.REAL : TEMP1.IMAG=S21.IMAG
  200.     GOSUB 104.100
  201.     Q9R=TEMP.REAL : Q9I=TEMP.IMAG
  202.     D.REAL=Q9R/2 : D.IMAG=Q9I/2
  203.     TEMP.REAL=Q2R : TEMP.IMAG=Q2I
  204.     TEMP1.REAL=Q8R : TEMP1.IMAG=Q8I
  205.     GOSUB 103.100
  206.     Q10R=TEMP.REAL : Q10I=TEMP.IMAG
  207.     Q11R=Q10R-4*T5R : Q11I=Q10I-4*T5I
  208.     TEMP.REAL=Q11R : TEMP.IMAG=Q11I
  209.     TEMP1.REAL=S21.REAL : TEMP1.IMAG=S21.IMAG
  210.     GOSUB 104.100
  211.     TEMP1.REAL=Q5R : TEMP1.IMAG=Q5I
  212.     GOSUB 104.100
  213.     Q14R=TEMP.REAL : Q14I=TEMP.IMAG
  214.     B.REAL=25*Q14R : B.IMAG=25*Q14I
  215.     RETURN
  216. 108.100    REM ***********XMATS***********
  217.     TEMP.REAL=A.REAL : TEMP.IMAG=A.IMAG
  218.     TEMP1.REAL=D.REAL : TEMP1.IMAG=D.IMAG
  219.     GOSUB 103.100
  220.     Q1R=TEMP.REAL : Q1I=TEMP.IMAG
  221.     TEMP.REAL=B.REAL : TEMP.IMAG=B.IMAG
  222.     TEMP1.REAL=C.REAL : TEMP1.IMAG=C.IMAG
  223.     GOSUB 103.100
  224.     Q2R=TEMP.REAL : Q2I=TEMP.IMAG
  225.     T1R=Q1R-Q2R : T1I=Q1I-Q2I
  226.     T2R=A.REAL+50*C.REAL : T2I=A.IMAG+50*C.IMAG
  227.     T3R=A.REAL-50*C.REAL : T3I=A.IMAG-50*C.IMAG
  228.     T4R=D.REAL+50*C.REAL : T4I=D.IMAG+50*C.IMAG
  229.     T5R=D.REAL-50*C.REAL : T5I=D.IMAG-50*C.IMAG
  230.     TEMP.REAL=T2R : TEMP.IMAG=T2I
  231.     TEMP1.REAL=T4R : TEMP1.IMAG=T4I
  232.     GOSUB 103.100
  233.     Q3R=TEMP.REAL : Q3I=TEMP.IMAG
  234.     T6R=Q3R-T1R : T6I=Q3I-T1I
  235.     TEMP.REAL=T3R : TEMP.IMAG=T3I
  236.     TEMP1.REAL=T4R : TEMP1.IMAG=T4I
  237.     GOSUB 103.100
  238.     Q4R=TEMP.REAL : Q4I=TEMP.IMAG
  239.     T7R=Q4R-T1R : T7I=Q4I-T1I
  240.     TEMP.REAL=T2R : TEMP.IMAG=T2I
  241.     TEMP1.REAL=T5R : TEMP1.IMAG=T5I
  242.     GOSUB 103.100
  243.     Q5R=TEMP.REAL : Q5I=TEMP.IMAG
  244.     T8R=Q5R-T1R : T8I=Q5I-T1I
  245.     TEMP.REAL=T7R : TEMP.IMAG=T7I
  246.     TEMP1.REAL=T6R : TEMP1.IMAG=T6I
  247.     GOSUB 104.100
  248.     S11.REAL=TEMP.REAL : S11.IMAG=TEMP.IMAG
  249.     Q6R=100*C.REAL : Q6I=100*C.IMAG
  250.     TEMP.REAL=T1R : TEMP.IMAG=T1I
  251.     TEMP1.REAL=T6R : TEMP1.IMAG=T6I
  252.     GOSUB 104.100
  253.     Q7R=TEMP.REAL : Q7I=TEMP.IMAG
  254.     TEMP.REAL=Q6R : TEMP.IMAG=Q6I
  255.     TEMP1.REAL=Q7R : TEMP1.IMAG=Q7I
  256.     GOSUB 103.100
  257.     S12.REAL=TEMP.REAL : S12.IMAG=TEMP.IMAG
  258.     TEMP.REAL=Q6R : TEMP.IMAG=Q6I
  259.     TEMP1.REAL=T6R : TEMP1.IMAG=T6I
  260.     GOSUB 104.100
  261.     S21.REAL=TEMP.REAL : S21.IMAG=TEMP.IMAG
  262.     TEMP.REAL=T8R : TEMP.IMAG=T8I
  263.     TEMP1.REAL=T6R : TEMP1.IMAG=T6I
  264.     GOSUB 104.100
  265.     S22.REAL=TEMP.REAL : S22.IMAG=TEMP.IMAG
  266.     RETURN
  267. 109.100    REM ***********ZXXZ***********
  268.     TEMP.REAL=TEMPA.REAL : TEMP.IMAG=TEMPA.IMAG
  269.     TEMP1.REAL=TEMPD.REAL : TEMP1.IMAG=TEMPD.IMAG
  270.     GOSUB 103.100
  271.     TEM1R=TEMP.REAL : TEM1I=TEMP.IMAG
  272.     TEMP.REAL=TEMPB.REAL : TEMP.IMAG=TEMPB.IMAG
  273.     TEMP1.REAL=TEMPC.REAL : TEMP1.IMAG=TEMPC.IMAG
  274.     GOSUB 103.100
  275.     TEM2R=TEMP.REAL : TEM2I=TEMP.IMAG
  276.     DELR=TEM1R-TEM2R : DELI=TEM1I-TEM2I
  277.     TEMP.REAL=TEMPA.REAL : TEMP.IMAG=TEMPA.IMAG
  278.     TEMP1.REAL=TEMPC.REAL : TEMP1.IMAG=TEMPC.IMAG
  279.     GOSUB 104.100
  280.     TEMPA.REAL=TEMP.REAL : TEMPA.IMAG=TEMP.IMAG
  281.     TEMP.REAL=DELR : TEMP.IMAG=DELI
  282.     TEMP1.REAL=TEMPC.REAL : TEMP1.IMAG=TEMPC.IMAG
  283.     GOSUB 104.100
  284.     TEMPB.REAL=TEMP.REAL : TEMPB.IMAG=TEMP.IMAG
  285.     TEM3R=TEMPC.REAL : TEM3I=TEMPC.IMAG
  286.     TEMP.REAL=1 : TEMP.IMAG=0
  287.     TEMP1.REAL=TEM3R : TEMP1.IMAG=TEM3I
  288.     GOSUB 104.100
  289.     TEMPC.REAL=TEMP.REAL : TEMPC.IMAG=TEMP.IMAG
  290.     TEMP.REAL=TEMPD.REAL : TEMP.IMAG=TEMPD.IMAG
  291.     TEMP1.REAL=TEM3R : TEMP1.IMAG=TEM3I
  292.     GOSUB 104.100
  293.     TEMPD.REAL=TEMP.REAL : TEMPD.IMAG=TEMP.IMAG
  294.     RETURN
  295. 110.100    REM ***********YZZY***********
  296.     TEMP.REAL=TEMPA.REAL : TEMP.IMAG=TEMPA.IMAG
  297.     TEMP1.REAL=TEMPD.REAL : TEMP1.IMAG=TEMPD.IMAG
  298.     GOSUB 103.100
  299.     Q1R=TEMP.REAL : Q1I=TEMP.IMAG
  300.     TEMP.REAL=TEMPB.REAL : TEMP.IMAG=TEMPB.IMAG
  301.     TEMP1.REAL=TEMPC.REAL : TEMP1.IMAG=TEMPC.IMAG
  302.     GOSUB 103.100
  303.     Q2R=TEMP.REAL : Q2I=TEMP.IMAG
  304.     Q3R=Q1R-Q2R : Q3I=Q1I-Q2I
  305.     TEM1R=TEMPA.REAL : TEM1I=TEMPA.IMAG
  306.     TEM2R=-TEMPB.REAL : TEM2I=-TEMPB.IMAG
  307.     TEM3R=-TEMPC.REAL : TEM3I=-TEMPC.IMAG
  308.     TEM4R=TEMPD.REAL : TEM4I=TEMPD.IMAG
  309.     TEMP.REAL=TEM4R : TEMP.IMAG=TEM4I
  310.     TEMP1.REAL=Q3R : TEMP1.IMAG=Q3I
  311.     GOSUB 104.100
  312.     TEMPA.REAL=TEMP.REAL : TEMPA.IMAG=TEMP.IMAG
  313.     TEMP.REAL=TEM3R : TEMP.IMAG=TEM3I
  314.     TEMP1.REAL=Q3R : TEMP1.IMAG=Q3I
  315.     GOSUB 104.100
  316.     TEMPC.REAL=TEMP.REAL : TEMPC.IMAG=TEMP.IMAG
  317.     TEMP.REAL=TEM2R : TEMP.IMAG=TEM2I
  318.     TEMP1.REAL=Q3R : TEMP1.IMAG=Q3I
  319.     GOSUB 104.100
  320.     TEMPB.REAL=TEMP.REAL : TEMPB.IMAG=TEMP.IMAG
  321.     TEMP.REAL=TEM1R : TEMP.IMAG=TEM1I
  322.     TEMP1.REAL=Q3R : TEMP1.IMAG=Q3I
  323.     GOSUB 104.100
  324.     TEMPD.REAL=TEMP.REAL : TEMPD.IMAG=TEMP.IMAG
  325.     RETURN
  326. 111.100    REM ***********MTXMPY***********
  327.     A1=A11.REAL : B1=A11.IMAG : C1=A12.REAL : D1=A12.IMAG
  328.     E1=A21.REAL : F1=A21.IMAG : G1=A22.REAL : H1=A22.IMAG
  329.     A2=B11.REAL : B2=B11.IMAG : C2=B12.REAL : D2=B12.IMAG
  330.     E2=B21.REAL : F2=B21.IMAG : G2=B22.REAL : H2=B22.IMAG
  331.     C11.REAL=A1*A2-B1*B2+C1*E2-D1*F2
  332.     C11.IMAG=B1*A2+A1*B2+C1*F2+D1*E2
  333.     C12.REAL=A1*C2-B1*D2+C1*G2-D1*H2
  334.     C12.IMAG=B1*C2+A1*D2+D1*G2+C1*H2
  335.     C21.REAL=A2*E1-B2*F1+E2*G1-F2*H1
  336.     C21.IMAG=A2*F1+B2*E1+E2*H1+F2*G1
  337.     C22.REAL=C2*E1-D2*F1+G1*G2-H1*H2
  338.     C22.IMAG=C2*F1+D2*E1+H1*G2+G1*H2
  339.     RETURN
  340.