C ________________________________________________________ C | | C | PACKAGE SUBROUTINES: HSR3 | C |________________________________________________________| C SUBROUTINE HSR5(A,LA,M,N) INTEGER I,J,K,L,LA,M,N REAL A(LA,1),S IF ( M .GE. N ) GOTO 10 WRITE(6,*) 'ERROR: ARGUMENT M MUST BE .GE. N IN SUBROUTINE HSR5' STOP 10 IF ( M .EQ. N ) GOTO 90 K = M 20 S = -A(K,N) DO 30 I = N,M 30 A(I,K) = S*A(I,N) A(K,K) = 1. + A(K,K) L = N 40 J = L L = L - 1 IF ( L .EQ. 0 ) GOTO 70 S = 0. DO 50 I = J,M 50 S = S + A(I,L)*A(I,K) A(L,K) = -S*A(L,L) DO 60 I = J,M 60 A(I,K) = A(I,K) - S*A(I,L) GOTO 40 70 K = K - 1 IF ( K .GT. N ) GOTO 20 90 CALL HSR3(A,LA,M,N) RETURN END