Page 325 - Introduction to Computational Fluid Dynamics
P. 325
P1: ICD
May 11, 2005
15:43
CB908/Date
0 521 85326 5
0521853265appb
304
FCMX=0.0 APPENDIX B. 1D CONDUCTION CODE
C ------------------------------------------------
C*** SOLVE BY GAUSS-SIEDEL METHOD
C ------------------------------------------------
IF(GAUSS)THEN
DO 2 I=2,N-1
TL=T(I)
ANUM=PSI*(AE(I)*T(I+1)+AW(I)*T(I-1))+SU(I)
T(I)=ANUM/AP(I)
DIFF=(T(I)-TL)/(TL+SMALL)
IF(ABS(DIFF).GT.FCMX)FCMX=ABS(DIFF)
2 CONTINUE
ENDIF
C ------------------------------------------------
C*** SOLVE BY TDMA
C ------------------------------------------------
IF(THOMAS)THEN
C CALCULATE COEFFICIENTS BY RECURRENCE
AA(2)=PSI*AE(2)/AP(2)
BB(2)=SU(2)/AP(2)
DO 3 I=3,N-1
DEN=1.0-PSI*AW(I)/AP(I)*AA(I-1)
AA(I)=PSI*AE(I)/AP(I)/(DEN+SMALL)
3 BB(I)=(PSI*AW(I)*BB(I-1)+SU(I))/AP(I)/(DEN+SMALL)
C BACK SUBSTITUTION
DO 4 I=N-1,2,-1
TL=T(I)
T(I)=AA(I)*T(I+1)+BB(I)
DIFF=(T(I)-TL)/(TL+SMALL)
IF(ABS(DIFF).GT.FCMX)FCMX=ABS(DIFF)
4 CONTINUE
ENDIF
RETURN
END
C *************************************************
SUBROUTINE UPDATE
INCLUDE ’COM1D.FOR’
C *************************************************
C RESET OLD VALUES
DO 200 I=1,N
200 TO(I)=T(I)
QB1O=QB1