1234567891011121314151617181920212223242526272829303132333435363738394041 |
- *DECK TRIDQ
- SUBROUTINE TRIDQ (MR, A, B, C, Y, D)
- C***BEGIN PROLOGUE TRIDQ
- C***SUBSIDIARY
- C***PURPOSE Subsidiary to POIS3D
- C***LIBRARY SLATEC
- C***TYPE SINGLE PRECISION (TRIDQ-S)
- C***AUTHOR (UNKNOWN)
- C***SEE ALSO POIS3D
- C***ROUTINES CALLED (NONE)
- C***REVISION HISTORY (YYMMDD)
- C 801001 DATE WRITTEN
- C 891214 Prologue converted to Version 4.0 format. (BAB)
- C 900308 Renamed routine from TRID to TRIDQ. (WRB)
- C 900402 Added TYPE section. (WRB)
- C***END PROLOGUE TRIDQ
- DIMENSION A(*) ,B(*) ,C(*) ,Y(*) ,
- 1 D(*)
- C***FIRST EXECUTABLE STATEMENT TRIDQ
- M = MR
- MM1 = M-1
- Z = 1./B(1)
- D(1) = C(1)*Z
- Y(1) = Y(1)*Z
- DO 101 I=2,MM1
- Z = 1./(B(I)-A(I)*D(I-1))
- D(I) = C(I)*Z
- Y(I) = (Y(I)-A(I)*Y(I-1))*Z
- 101 CONTINUE
- Z = B(M)-A(M)*D(MM1)
- IF (Z .NE. 0.) GO TO 102
- Y(M) = 0.
- GO TO 103
- 102 Y(M) = (Y(M)-A(M)*Y(MM1))/Z
- 103 CONTINUE
- DO 104 IP=1,MM1
- I = M-IP
- Y(I) = Y(I)-D(I)*Y(I+1)
- 104 CONTINUE
- RETURN
- END
|