File: HLSE.FT of Disk: Disks/MyPDP/m8-2-rka1-rkb1
(Source file text)
SUBROUTINE HLSE(A,X,M,N,L,IER,AUX,IPIV) C C PURPOSE C TO CALCULATE THE UNNORMALISED COVARIANCE MATRIX OF C PARAMETERS AFTER A CALL TO HLS C C USAGE C CALL HLSE (A,X,M,N,L,IER,AUX,IPIV) C C DESCRIPTION OF PARAMETERS C AS BEFORE WITH MATRIX X CONTAINING THE COVARIANCE MATRIX. C C REMARKS C (1) WITH IER=0, HLSE CAN BE USED INDEPENDENTLY OF HLS C C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED C HHSTEP, HHUK C C METHOD C CALCULATES THE INVERSE OF (A-TRANSPOSED.A) DIRECTLY C FROM THE UPPER TRIANGULAR MATRIX LEFT AFTER PERFORMING C THE HH TRANSFORMATION TO A (SEC 6 OF GOLUB). C C .................................................................. C DIMENSION A(2),X(2),AUX(2),IPIV(2) C C K1 = MAX0(N,L) IF(IABS(IER).EQ.N) GO TO 5 C C COMPLETE HOUSEHOLDER TRANSFORMATION IF IER LESS THAN N IST = IER*(M+1) + 1 KS = IER + 1 DO 4 K=KS,N LV = M - K + 1 C GENERATION OF VECTOR UK AND PARAMETER BETA CALL HHUK(A(IST),1,LV,SIG,BETA) C J = K1 + K AUX(J) = -SIG IF (K.EQ.N) GO TO 4 C TRANSFORMATION OF MATRIX A NK = N - K IA = IST + M CALL HHSTEP(A(IST),A(IA),1,M,LV,NK,BETA) C IST = IST + M + 1 4 IPIV(K) = K C C CALCULATE X FROM R AND DIAGONAL ELEMENTS OF R-T 5 DO 40 K=1,N KN=N-K+1 IA = (KN-1)*(M+1) + 1 IX = (KN-1)*(N+1) + 1 IEND = (N-1)*M + KN + 1 IK = IX IL = IX DO 20 J=K,N JA = IA + M JN=N-J+1 II=JN+K1 PIV=1./AUX(II) ID=IPIV(JN)-JN H=0. IF(J.EQ.K) H=PIV II=IK IEND = IEND - 1 IF(J.EQ.1) GO TO 15 DO 10 I=JA,IEND,M II=II+N 10 H=H-A(I)*X(II) II=IK+ID*N 15 H=H*PIV X(IL)=H X(IK)=X(II) X(II)=H IK=IK-N IL=IL-1 20 IA = IA - M - 1 C C INTERCHANGE COLUMNS ALREADY FINISHED ID=IPIV(KN)-KN IF (ID.EQ.0) GO TO 40 II=KN+ID JA=KN DO 30 J=1,N H=X(II) X(II)=X(JA) X(JA)=H JA=JA+N 30 II=II+N C INTERCHANGE REMAINING PART OF THE ROWS IF (K.EQ.N) GO TO 40 IA=(KN-1)*( N+1)+1 KA=IA-KN+1 KE=IA-1 DO 35 J=KA,KE JD= J+ID*N H = X(JD) X(JD) = X(J) 35 X(J) = H 40 CONTINUE RETURN END