32 SUBROUTINE sesame(IFLAG,NEL, PM ,OFF ,EINT ,RHO ,RHO0 ,
33 2 ESPE ,DVOL ,MAT ,PNEW ,DPDM ,DPDE ,THETA ,
56#include "implicit_f.inc"
61#include "vect01_c.inc"
63#include "tabsiz_c.inc"
67 INTEGER MAT(NEL), IFLAG, NEL
68 my_real PM(NPROPM,NUMMAT), BUFMAT(SBUFMAT),
69 . off(nel) , eint(nel), rho(nel) , rho0(nel),
70 . espe(nel), dvol(nel), pnew(nel),
71 . dpdm(nel), dpde(nel), theta(nel)
75 INTEGER I, MX, NR, NT, IDR, IDT, IDP, IDE
76 my_real ESPEM, PRES, DTDE, DPDR, DPDT
91 espem = espe(i)/rho0(i)
93 CALL mintp_re(bufmat(idr),nr,bufmat(idt),nt,bufmat(ide),rho(i),theta(i),espem,dtde)
94 CALL mintp1_rt(bufmat(idr),nr,bufmat(idt),nt,bufmat(idp),rho(i),theta(i),pres,dpdr,dpdt)
95 dpdm(i) = rho0(i)*dpdr
96 dpde(i) = dpdt*dtde/rho0(i)
97 pnew(i) =
max(pres,pc(i))*off(i)
100 ELSEIF(iflag == 1)
THEN
106 idr = nint(pm(35,mx))
110 espem=espe(i)/rho0(i)
111 CALL mintp_re(bufmat(idr),nr,bufmat(idt),nt,bufmat(ide),rho(i),theta(i),espem,dtde)
112 CALL mintp_rt(bufmat(idr),nr,bufmat(idt),nt,bufmat(idp),rho(i),theta(i),pnew(i),dpdr)
113 pnew(i)=
max(pnew(i),pc(i))*off(i)
114 eint(i)= eint(i)-half*dvol(i)*pnew(i)
117 ELSEIF(iflag == 2)
THEN
123 idr = nint(pm(35,mx))
127 espem = espe(i)/rho0(i)
128 CALL mintp_re(bufmat(idr),nr,bufmat(idt),nt,bufmat(ide),rho(i),theta(i),espem,dtde)
129 CALL mintp1_rt(bufmat(idr),nr,bufmat(idt),nt,bufmat(idp),rho(i),theta(i),pres,dpdr,dpdt)
130 dpdm(i) = rho0(i)*dpdr
131 dpde(i) = dpdt*dtde/rho0(i)
132 pnew(i) =
max(pres,pc(i))*off(i)
subroutine sesame(iflag, nel, pm, off, eint, rho, rho0, espe, dvol, mat, pnew, dpdm, dpde, theta, bufmat)