SUBROUTINE SETTRM C ================= C C reads the equation-of-state tables for the pressure (P) C and entropy (S), as a function of T and rho; C C stores P(rho,T) and S(rho,t) in arrays PL and SL C INCLUDE 'IMPLIC.FOR' COMMON/THERM/SL(330,100),PL(330,100) COMMON/TABLTD/R1,R2,T1,T2,T12,T22,INDEX common/tdedge/redge,pedge(100),sedge(100),cvedge(100), & cpedge(100),gammaedge(100),tedge(100) common/tdflag/JON parameter (RCON=8.31434E7) C open(58,file='./data/stab.dat',status='old') open(59,file='./data/ptab.dat',status='old') C READ(58,*) YHEA,INDEX,R1,R2,T1,T2,T12,T22 DO JR = 1,INDEX DO JQS=1,10 JL = 1 + (JQS-1)*10 JU = JL + 9 READ(58,130) (SL(JR,JQ),JQ=JL,JU) 130 FORMAT(10F8.5) END DO END DO C READ(59,*) YHEA,INDEX,R1,R2,T1,T2,T12,T22 DO JR=1,INDEX DO JQP=1,10 JL = 1 + (JQP-1)*10 JU = JL + 9 READ(59,130) (PL(JR,JQ),JQ=JL,JU) END DO END DO C CLOSE(58) CLOSE(59) c c Edge arrays c r = 1.5d0*10.d0**r1 tmin = 1.5d0*10.d0**t1 tmax = 0.9d0*10.d0**t2 redge = r do i = 1, 100 t = t1 + (t2-t1)*dfloat(i-1)/dfloat(99) t = 10.d0**t t = min(tmax,max(t,tmin)) tedge(i) = t rho=r CALL PRSENT(RHO*1.1,T,P1,S1) CALL PRSENT(RHO,T*1.1,P2,S2) CALL PRSENT(RHO,T,P0,S0) S1=RCON*S1 S2=RCON*S2 S0=RCON*S0 DPDR=(P1-P0)/(.1*RHO) DPDT=(P2-P0)/(.1*T) DSDT=(S2-S0)/(.1*T) DSDR=(S1-S0)/(.1*RHO) DEN=DPDR*DSDT-DPDT*DSDR P=P0 S=S0/RCON CV=T*DSDT CP=T*DEN/DPDR DQ=DSDT*P/(DEN*RHO) GAMMA=1.d0/DQ c pedge(i) = p sedge(i) = s cvedge(i) = cv cpedge(i) = cp gammaedge(i) = gamma write(44,45) i,tedge(i),cvedge(i),cpedge(i),sedge(i), & gammaedge(i) 45 format(i4,5e14.5) enddo c RETURN END