51 SUBROUTINE pycrth(NM,N,LOW,IGH,AR,AI,ORTR,ORTI)
53 INTEGER i,
j,m,
n,ii,jj,la,mp,nm,igh,kp1,
low
54 DOUBLE PRECISION ar(4,4),ai(4,4),ortr(4),orti(4)
59 IF (la .LT. kp1) goto 210
68 100 scale = scale + dabs(ar(
i,m-1)) + dabs(ai(
i,m-1))
70 IF (scale .EQ. 0.0d0) goto 200
75 ortr(
i) = ar(
i,m-1) / scale
76 orti(
i) = ai(
i,m-1) / scale
77 h =
h + ortr(
i) * ortr(
i) + orti(
i) * orti(
i)
82 IF (
f .EQ. 0.0d0) goto 120
85 ortr(m) = (1.0d0 +
g) * ortr(m)
86 orti(m) = (1.0d0 +
g) * orti(m)
98 fr = fr + ortr(
i) * ar(
i,
j) + orti(
i) * ai(
i,
j)
99 fi = fi + ortr(
i) * ai(
i,
j) - orti(
i) * ar(
i,
j)
106 ar(
i,
j) = ar(
i,
j) - fr * ortr(
i) + fi * orti(
i)
107 ai(
i,
j) = ai(
i,
j) - fr * orti(
i) - fi * ortr(
i)
118 fr = fr + ortr(
j) * ar(
i,
j) - orti(
j) * ai(
i,
j)
119 fi = fi + ortr(
j) * ai(
i,
j) + orti(
j) * ar(
i,
j)
126 ar(
i,
j) = ar(
i,
j) - fr * ortr(
j) - fi * orti(
j)
127 ai(
i,
j) = ai(
i,
j) + fr * orti(
j) - fi * ortr(
j)
132 ortr(m) = scale * ortr(m)
133 orti(m) = scale * orti(m)
134 ar(m,m-1) = -
g * ar(m,m-1)
135 ai(m,m-1) = -
g * ai(m,m-1)