c set up for aq+ky+zo+an+H2O implicit real (a-z) 20 write (*,*) 'enter xgr, xpy, xalm, xan, xab, nalzo, nfezo' read (*,*) xgr, xpy, xal, xan, xab, nalzo, nfezo xan = xan / (xan+xab) ztot = nalzo + nfezo nalzo = nalzo * 3. / ztot nfezo = nfezo * 3. / ztot xzo = 1. - nfezo write (*,*) ' xan and xzo ', xan, xzo c T's for endmember points t1 = 900. t2 = 950. c endmember points for gr: pg1 = 12562. pg2 = 13698. c endmember points for zo: pz1 = 8037.7 pz2 = 9142. c sg = (pg2-pg1) / (t2-t1) sz = (pz2-pz1) / (t2-t1) db= (pg1 - pz1) + t1 * (sz - sg) ds= sg - sz dvz = 7.81 dvg = -6.26 xt = xgr + xpy + xal xgr = xgr / xt xpy = xpy / xt xal = xal / xt r = 8.314 x1 = xpy / (xpy+xal) x2 = 1. - x1 b = x1*(-11.205) + x2 * ( -8.293) c = x1*(-.512) + x2 * ( -1.482 ) d = x1 * (-.418) + x2 * (-.480) e = x1 * .94 + x2 * .914 f = x1 * 0.083 + x2 * 0.066 x = 1.- xgr z = (x - e)/ f vgr = -c * x*x +d*(1+z*x/f) * exp(z**2/(-2.)) vgr = 0.1 * vgr 10 write (*,*) 'enter p, t, ah2o' read (*,*) p, t, aw if (p.eq.0.0) goto 20 aan = xan*(1.+xan)**2/4.*exp((1-xan)**2/r/t* * 4.184*(2050.+9392.*xan)) wg = 3.*4.184*(3300.- 1.5*t) agr = xgr**3 * exp ( wg / r /t *(xpy**2 + xpy*xal) ) write (*,*) 'aan, agr, vgr ', aan, agr, vgr kx = (xgr/xan)**3 lkx = log (kx) write (*,*) 'kx, lkx ',kx, lkx lkv = p * vgr / r / t kv = exp (lkv) ka = agr / aan**3 lka = log(ka) dp = t * ds + db kg = ka * kv kz = aw*aan**4 / xzo**2 dpz = r*t*log(kz)/dvz dpg = r*t*log(kg)/dvg write (*,*) 'sg, sz = ',sg,sz write (*,*) 'pg0 = ',sg*(t-t1) + pg1 write (*,*) 'pz0 = ',sz*(t-t1) + pz1 write (*,*) 'pg = ',sg*(t-t1) + pg1 - dpg write (*,*) 'pz = ',sz*(t-t1) + pz1 - dpz write (*,*) 'dp = ',sg*(t-t1) + pg1 - dpg-sz*(t-t1)-pz1+dpz write (*,*) write (*,*) 'kv, lkv ',kv, lkv write (*,*) 'ka, lka',ka,lka write (*,*) 'k, lk',ka*kv,lka+lkv goto 10 99 end