7 SUBROUTINE tl_sqlq(innLoop, a, tl_a, tau, tl_tau, y, tl_y)
29 integer,
intent(in) :: innLoop
31 real(r8),
dimension(innLoop,innLoop),
intent(inout) :: a, tl_a
32 real(r8),
dimension(innLoop),
intent(inout) :: tau, tl_tau
33 real(r8),
dimension(innLoop),
intent(inout) :: y, tl_y
37 integer :: i, j, ii, jj
39 real(r8) :: znorm, zbeta, zaii, ztemp
40 real(r8) :: tl_znorm, tl_zbeta, tl_zaii, tl_ztemp
58 znorm=znorm+a(ii,j)*a(ii,j)
59 tl_znorm=tl_znorm+2.0_r8*a(ii,j)*tl_a(ii,j)
62 IF (znorm.NE.0.0_r8)
THEN
63 tl_znorm=0.5_r8*tl_znorm/znorm
67 zbeta=sqrt(znorm*znorm+a(ii,ii)*a(ii,ii))
68 IF (zbeta.NE.0.0_r8)
THEN
69 tl_zbeta=(tl_znorm*znorm+tl_a(ii,ii)*a(ii,ii))/zbeta
75 tl_zbeta=-sign(1.0_r8,zbeta)*sign(1.0_r8,a(ii,ii))*tl_zbeta
76 zbeta=-sign(zbeta,a(ii,ii))
77 tau(ii)=(zbeta-a(ii,ii))/zbeta
78 tl_tau(ii)=(tl_zbeta-tl_a(ii,ii))/zbeta-tl_zbeta*tau(ii)/zbeta
80 a(ii,j)=a(ii,j)/(a(ii,ii)-zbeta)
81 tl_a(ii,j)=tl_a(ii,j)/(a(ii,ii)-zbeta)- &
82 & (tl_a(ii,ii)-tl_zbeta)*a(ii,j)/(a(ii,ii)-zbeta)
93 IF (tau(ii).ne.0.0_r8)
THEN
101 tl_ztemp=tl_a(ii,j+jj)
103 y(i)=y(i)+ztemp*a(ii+i,j+jj)
104 tl_y(i)=tl_y(i)+tl_ztemp*a(ii+i,j+jj)+ &
105 & ztemp*tl_a(ii+i,j+jj)
110 ztemp=-tau(ii)*a(ii,j+jj)
111 tl_ztemp=-tl_tau(ii)*a(ii,j+jj)-tau(ii)*tl_a(ii,j+jj)
113 a(ii+i,j+jj)=a(ii+i,j+jj)+y(i)*ztemp
114 tl_a(ii+i,j+jj)=tl_a(ii+i,j+jj)+tl_y(i)*ztemp+ &
subroutine tl_sqlq(innloop, a, tl_a, tau, tl_tau, y, tl_y)