31 1 PM, VOLU, EINT, THETA,
32 2 DELTAX, TF, NPF, DT2T,
33 3 NELTST, ITYPTST, IPM, STI,
34 4 VOLN, MAT, NGL, CONDE,
35 5 NEL, ITY, IDT_THERM,DT_THERM)
39#include "implicit_f.inc"
53 INTEGER,
INTENT(IN) :: NEL
54 INTEGER,
INTENT(IN) :: ITY
55 INTEGER,
INTENT(IN) :: IDT_THERM
56 INTEGER NPF(*),IPM(NPROPMI,*),MAT(*),NGL(*)
57 INTEGER NELTST,ITYPTST
58 my_real,
INTENT(INOUT) :: dt_therm
62 . pm(npropm,*), volu(*), eint(*), theta(*), deltax(*), tf(*),
63 . sti(*),voln(mvsiz), conde(*)
67 INTEGER I, IFUNC, NPOINT, ITFUN, IKFUN, MX
68 my_real A(MVSIZ), B(MVSIZ),
69 . DTX(MVSIZ), SPH(MVSIZ), RHO0, ESPE, DTDE, T0, BID,
70 . TIMESCAL,TSCAL,ESCAL,KSCAL,
89 npoint=(npf(ifunc+1)-npf(ifunc))/2
92 espe = escal * eint(i) / rho0
93 CALL interp(tf(npf(ifunc)),espe,npoint,theta(i),dtde)
94 theta(i) = tscal*theta(i)
95 sph(i) = rho0 /
max(em20,dtde)
97 theta(i)=eint(i)/sph(i)
104 timescal = pm(41,mx)*tt
105 npoint=(npf(itfun+1)-npf(itfun))/2
107 CALL interp(tf(npf(itfun)),timescal,npoint,theta(i),bid)
108 theta(i) = t0*theta(i)
109 eint(i) = sph(i)*theta(i)
116 tscal = theta(i) / pm(42,mx)
118 npoint=(npf(ikfun+1)-npf(ikfun))/2
119 CALL interp(tf(npf(ikfun)),tscal,npoint,a(i),bid)
123 dtx(i)=half*deltax(i)**2*sph(i)/(a(i)+b(i)*theta(i))
129 IF(idt_therm == 1)
THEN
131 IF(dtx(i)<dt_therm) dt_therm = dtx(i)
132 conde(i) = four*volu(i)*(a(i)+b(i)*theta(i))/deltax(i)*deltax(i)
139 IF(dtx(i)>dt2t) cycle
subroutine m18law(pm, volu, eint, theta, deltax, tf, npf, dt2t, neltst, ityptst, ipm, sti, voln, mat, ngl, conde, nel, ity, idt_therm, dt_therm)