39
40
41
42#include "implicit_f.inc"
43
44
45
46#include "mvsiz_p.inc"
47#include "param_c.inc"
48
49
50
51 INTEGER, INTENT(IN) :: NEL
52 INTEGER, INTENT(IN) :: NUMNOD
53 INTEGER, INTENT(IN) :: IMAT
54 INTEGER (MVSIZ),NC2(MVSIZ),NC3(MVSIZ),NC4(MVSIZ),
55 . NC5(MVSIZ),NC6(MVSIZ),NC7(MVSIZ),NC8(MVSIZ)
56 INTEGER IPARTS(*)
58 my_real ,
INTENT(IN) :: theaccfact
59 my_real ,
INTENT(IN) :: heat(mvsiz)
66 my_real :: px1(*), px2(*), px3(*), px4(*),
67 . py1(*), py2(*), py3(*), py4(*),
68 . pz1(*), pz2(*), pz3(*), pz4(*)
72
73
74
75 INTEGER ,M
76 my_real as, bs, kc, phix, phiy, phiz, a, b, rhocp, t0
77
78 as = pm(75,imat)
79 bs = pm(76,imat)
80 rhocp = pm(69,imat)
81 t0 = pm(79,imat)
82
83
84
85 DO i=1,nel
86 IF(off(i)==zero.OR.offg(i)<=zero) cycle
87 phix = tempnc(nc1(i))*px1(i) + tempnc(nc2(i))*px2(i) +
88 . tempnc(nc3(i))*px3(i) + tempnc(nc4(i))*px4(i) -
89 . tempnc(nc5(i))*px3(i) - tempnc(nc6(i))*px4(i) -
90 . tempnc(nc7(i))*px1(i) - tempnc(nc8(i))*px2(i)
91
92 phiy = tempnc(nc1(i))*py1(i) + tempnc(nc2(i))*py2(i) +
93 . tempnc(nc3(i))*py3(i) + tempnc(nc4(i))*py4(i) -
94 . tempnc(nc5(i))*py3(i) - tempnc(nc6(i))*py4(i) -
95 . tempnc(nc7(i))*py1(i) - tempnc(nc8(i))*py2(i)
96
97 phiz = tempnc(nc1(i))*pz1(i) + tempnc(nc2(i))*pz2(i) +
98 . tempnc(nc3(i))*pz3(i) + tempnc(nc4(i))*pz4(i) -
99 . tempnc(nc5(i))*pz3(i) - tempnc(nc6(i))*pz4(i) -
100 . tempnc(nc7(i))*pz1(i) - tempnc(nc8(i))*pz2(i)
101
102 kc = (as + bs*tempel(i))*vol(i)*dt1*theaccfact
103 phix = kc*phix
104 phiy = kc*phiy
105 phiz = kc*phiz
106
107
108
109 a = one_over_8 * heat(i)
110 b = phix*px1(i) + phiy*py1(i) + pz1(i)*phiz
111 fphi(i,1) = a - b
112 fphi(i,7) = a + b
113 b = phix*px2(i) + phiy*py2(i) + pz2(i)*phiz
114 fphi(i,2) = a - b
115 fphi(i,8) = a + b
116 b = phix*px3(i) + phiy*py3(i) + pz3(i)*phiz
117 fphi(i,3) = a - b
118 fphi(i,5) = a + b
119 b = phix*px4(i) + phiy*py4(i) + pz4(i)*phiz
120 fphi(i,4) = a - b
121 fphi(i,6) = a + b
122 ENDDO
123
124 DO i=1,nel
125 IF (off(i)==zero.OR.offg(i)<=zero) cycle
126 m = iparts(i)
127 partsav(28,m) = partsav(28,m) + rhocp*vol0(i)*(tempel(i)-t0) + heat(i)
128 ENDDO
129
130 RETURN