32
33
34
35#include "implicit_f.inc"
36
37
38
39#include "param_c.inc"
40
41
42
43 INTEGER, INTENT(IN) :: NEL
44 INTEGER MAT(*)
45
47 . pm(npropm,*), eint(*), theta(*),
48 . amu(*), c1(*), c2(*), df(*), psh(*), pc(*)
49
50
51
52 INTEGER I,MX
53 my_real eint0, sph, dmu, plim, c2mu, c1psh, ecold
54
55 mx = mat(1)
56 DO i=1,nel
57 sph =pm(69,mx)
58 eint0 =pm(23,mx)
59 theta(i)=pm(79,mx)
60 plim =pc(i)-c1(i)-psh(i)
61 IF(c2(i)>abs(plim/ep36))THEN
62 dmu =
min(amu(i)-plim/c2(i),zero)
63 ELSE
64 dmu =zero
65 ENDIF
66
67 c2mu =c2(i)*amu(i)
68 c1psh =c1(i)+psh(i)
69
70 ecold =(c1psh + half*c2mu)*amu(i)
71
72
73 ecold =ecold + half*dmu*(c1psh+c2mu-pc(i))
74
75 ecold =ecold+eint0
76 theta(i)=theta(i) + (eint(i)*df(i)-ecold)/sph
77 ENDDO
78
79 RETURN