34 use element_mod , only : nixtg
35
36
37
38
39
40#include "implicit_f.inc"
41
42
43
44#include "mvsiz_p.inc"
45#include "param_c.inc"
46
47
48
49 INTEGER, INTENT(IN) :: NEL
50 INTEGER, INTENT(IN) :: IXTG(NIXTG,*)
51 my_real ,
INTENT(IN) :: theaccfact
53 my_real ::
area(nel), px1(mvsiz),py1(mvsiz), py2(mvsiz),
54 . tempnc(*), fphi(mvsiz,3), pm(*),dheat(nel),
55 . thk(nel),tempel(nel)
56
57
58
59 INTEGER :: I
60 my_real :: ca,cb ,kc,phix,phiy,a
61
62 ca = pm(75)
63 cb = pm(76)
64
65 DO i=1,nel
66
67
68
69
70
71
72 kc = (ca + cb*tempel(i))*dt /
max(em20,
area(i))*theaccfact
73 phix = tempnc(ixtg(2,i))*px1(i) - tempnc(ixtg(3,i))*px1(i)
74
75 phiy = tempnc(ixtg(2,i))*py1(i) + tempnc(ixtg(3,i))*py2(i) -
76 . tempnc(ixtg(4,i))*(py1(i) + py2(i))
77
78 phix = kc*phix*thk(i)
79 phiy = kc*phiy*thk(i)
80
81
82
83 a = third * dheat(i)
84 fphi(i,1) = a - phix*px1(i) - phiy*py1(i)
85 fphi(i,2) = a + phix*px1(i) - phiy*py2(i)
86 fphi(i,3) = a + phiy*(py1(i)+py2(i))
87 ENDDO
88
89 RETURN
subroutine area(d1, x, x2, y, y2, eint, stif0)