C C slab2.f C C PROGRAM FOR THE CALCULATION OF TEMPERATURE C DISTRIBUTION FOR TRANSIENT CONDUCTION IN A PLANE SLAB. C CONDUCTION ONLY ALONG THE POSITIVE X-DIRECTION C ANALYTICAL SOLUTION OBTAINED BY SEPARATION OF C VARIABLES METHOD. C BOUNDARY CONDITIONS OF THE THIRD KIND C C PARAMETER (NX=5) PARAMETER (NT=6) PARAMETER (NTM=100) C C DOUBLE PRECISION T(NX,NT),XDIST(NX),TIME(NT) DOUBLE PRECISION TERM(NTM),ALAMB(NTM) C C DIMENSION T(NX,NT),XDIST(NX),TIME(NT) C DIMENSION TERM(NTM),ALAMB(NTM) C C OPEN (55,FILE='slab2.dat') C C READ INPUT DATA C READ(55,*) TO,TINF,HTC,EKTC,RHO,CP,EL,NTERM,DTIME C C COMPUTE PRELIMINARY PARAMETERS C PI = 3.141592654 PI2 = PI*PI DXDIST = 2.0*EL/FLOAT(NX-1) D = EKTC/(RHO*CP) BI = HTC*EL/EKTC C C C EVALUATE EIGENVALUES BY SOLVING TRASCENDENTAL EQUATION C C ARGUM = 0.0 DARGUM = 0.0001 KOUNT = 0 DO 10 I=1,100000 ARGUM = ARGUM + DARGUM COTARG = TAN(PI/2.0 - ARGUM) FIRST = COTARG SECOND = ARGUM/BI DIFF = FIRST - SECOND IF(DIFF.LE.0.0) KOUNT = KOUNT + 1 IF(DIFF.LE.0.0) ALAMB(KOUNT) = ARGUM/EL IF(DIFF.LE.0.0) ARGUM = FLOAT(KOUNT)*PI IF(KOUNT.GE.NTERM) GO TO 15 10 CONTINUE 15 CONTINUE C C INITIALIZE TEMPERATURE C DO 20 IX=1,NX T(IX,1) = TO 20 CONTINUE WRITE(6,991) (T(IX,1),IX=1,NX) C C C COMPUTE THE TEMPERATURE PROFILES FOR VARIOUS TIMES C C START TIME MARCHING C TIEMPO = 0.0 DO 500 IT=2,NT TIEMPO = TIEMPO + DTIME TIME(IT) = TIEMPO C C SET LOCATIONS FOR TEMPERATURE CALCULATION C DIST = - EL DO 100 IX=1,NX XDIST(IX) = DIST C C EVALUATE TERMS IN THE (TRUNCATED) INFINITE SERIES C SUOFTE = 0.0 DO 50 ITERM=1,NTERM AL2 = ALAMB(ITERM)*ALAMB(ITERM) ARG = ALAMB(ITERM)*EL COEFF = (2.0*SIN(ARG))/( ARG + SIN(ARG)*COS(ARG) ) TERM(ITERM) = COEFF*COS(ALAMB(ITERM)*XDIST(IX))* & EXP( - AL2*D*TIME(IT) ) SUOFTE = SUOFTE + TERM(ITERM) 50 CONTINUE C C CALCULATE TEMPERATURE C T(IX,IT) = TINF + (TO - TINF)*SUOFTE DIST = DIST + DXDIST 100 CONTINUE C C WRITE RESULTS C WRITE(6,991) (T(IX,IT),IX=1,NX) 991 FORMAT(1X,5F20.4) C 500 CONTINUE C C C STOP END