subroutine drfstc(ns,xmol,wmix,t,drftc,drfvs,xml1, & sig,epsm,delm,chim,vstm,rstm,tvta,itox,error) C ** routine to calculate mixture viscosity per WILKE '50 rule ** C ** & mixture thermal conductivity per MASON-SAXENA '58 rule. ** C ** C SNL / phpaul all rights reserved 1997 ** C last modified Oct/22/97 ** C **************************************************************** C inputs: C NS - number of species C T - temperature (K) C WMIX - NS long vector containing mixture fractions C XMOL - NS long vector containing molecular weights C *** - set of molecular parameter arrays from DRINIT C returns: C DRFTC - mixture thermal conductivity (milliwatts/meter Kelvin) C DRFVS - mixture dynamic viscosity (microPascal seconds) C **************************************************************** IMPLICIT NONE #include "defs.h" INCLUDE 'drfmcm.for' C passed arrays logical error,itox(kd) real*8 sig(kd),epsm(kd,kd),delm(kd,kd),chim(kd,kd) real*8 vstm(kd,kd),rstm(kd,kd),tvta(kd,6),xmol(kd),wmix(kd) real*8 xml1(kd,kd) C internal working arrays real*8 osgx(kd),sqosgx(kd),eta(kd) integer j, ns, k double precision CNVSC, RGAS, ds8, hpcon double precision zz, t, zz01, zz02, tr, vr, rr, sgr double precision sqog2j, og2j, obj, ocj, oej, hp1, sumt double precision drfvs, u, sumg, osqj, gn01, tcmult double precision sds8, hp2, drftc C C CNVSC = scaling constant for viscosity in micro_Pa sec DATA CNVSC /2.6695D0/ C RGAS = universal gas constant in joules / mol K DATA RGAS /8.31441D0/ c ds8 = 1.d0/dsqrt(8.d0) data ds8 /0.35355339059327373D0/ c hpcon = 3.d0/196.d0 data hpcon /0.15306122448979591D-01/ C generate property primitives do 10 j = 1,ns ZZ = 1.D0 + CHIM(j,j) + DELM(j,j)/T zz01 = zz**0.166666667D0 zz02 = zz*zz TR = T/(EPSM(j,j)*zz02) VR = VSTM(j,j)*zz02 RR = RSTM(j,j)*zz01 SGR = SIG(j)/zz01 CALL DRXIOM2(TR,RR,VR,sqog2j,OG2J,OBJ,OCJ,OEJ,ERROR) osgx(j) = og2j * sgr * sgr sqosgx(j) = sqog2j * sgr #ifdef FIRST_ORDER_DRFM hp1 = 1.d0 #else hn01 = 8.d0*oej-7.d0 hp1 = 1.d0+hpcon*(hn01*hn01) #endif eta(j) = cnvsc*DSQRT(xmol(j)*T)*hp1/osgx(j) 10 continue C compute mixture properties sumt = 0.d0 drfvs = 0.d0 u = dlog(T) do 100 j = 1,ns sumg = 0.d0 osqj = 1.0d0 / sqosgx(j) if(j.gt.1)then do k=1,j-1 gn01 = 1.d0 + sqosgx(k) * osqj sumg = sumg + wmix(k) * gn01 * gn01 * xml1(k,j) end do endif if(j.lt.ns)then do k=j+1,ns gn01 = 1.d0 + sqosgx(k) * osqj sumg = sumg + wmix(k) * gn01 * gn01 * xml1(k,j) end do endif if(itox(j))then tcmult=(tvta(j,1)+u*(tvta(j,3)+u*tvta(j,5)))/ & (1.d0+u*(tvta(j,2)+u*(tvta(j,4)+u*tvta(j,6)))) else tcmult = 1.d0 endif sds8 = sumg * ds8 hp2 = wmix(j)*eta(j)/(wmix(j)+1.065d0*sds8) drfvs = drfvs + wmix(j)*eta(j)/(wmix(j)+sds8) sumt = sumt + tcmult*hp2/xmol(j) 100 continue drftc = 3.75D0 * rgas * sumt return end c******************************************************************************* SUBROUTINE drxiom2(TR,RS,VS,sqog22,OG22,OBX,OCX,OEX,ERROR) C** Collision integrals using LJ for TR<10 and BM for TR>10 ** C** coefs. from Bzowski et al. JPCRD v19 p1179 (1990). ** C** Range for 0.2