41
42
43
44#include "implicit_f.inc"
45
46
47
48#include "mvsiz_p.inc"
49
50
51
52
53
54
55 INTEGER, INTENT(IN) :: NEL
56 INTEGER NC1(*),NC2(*)
57
59 . f(3,*), forx(*), fory(*), forz(*), xm(3,*), xmom(*),
60 . ymom(*), zmom(*), sti(3,*),stir(3,*),stifn(*),stifr(*),
61 . fx1(mvsiz),fy1(mvsiz),fz1(mvsiz),
62 . fx2(mvsiz),fy2(mvsiz),fz2(mvsiz),
63 . mx1(mvsiz),my1(mvsiz),mz1(mvsiz),
64 . mx2(mvsiz),my2(mvsiz),mz2(mvsiz),
65 . exx(mvsiz), eyx(mvsiz), ezx(mvsiz),
66 . exy(mvsiz), eyy(mvsiz), ezy(mvsiz),
67 . exz(mvsiz), eyz(mvsiz), ezz(mvsiz),al(mvsiz)
68
69
70
71 INTEGER I, J
72
74 . f11(mvsiz), f21(mvsiz), f31(mvsiz),
75 . m11(mvsiz), m21(mvsiz), m31(mvsiz),
76 . m12(mvsiz), m22(mvsiz), m32(mvsiz),
77 . ymom1, ymom2, zmom1, zmom2, ymom1p, zmom1p,
78 . ymom2p,zmom2p
79
80 DO i=1,nel
81 f11(i)=exx(i)*forx(i)+exy(i)*fory(i)+exz(i)*forz(i)
82 f21(i)=eyx(i)*forx(i)+eyy(i)*fory(i)+eyz(i)*forz(i)
83 f31(i)=ezx(i)*forx(i)+ezy(i)*fory(i)+ezz(i)*forz(i)
84 ENDDO
85
86
87
88 DO i=1,nel
89 f(1,nc1(i))=f(1,nc1(i))+f11(i)
90 f(2,nc1(i))=f(2,nc1(i))+f21(i)
91 f(3,nc1(i))=f(3,nc1(i))+f31(i)
92 fx1(i) = -f11(i)
93 fy1(i) = -f21(i)
94 fz1(i) = -f31(i)
95 stifn(nc1(i))=stifn(nc1(i))+sti(1,i)
96
97 f(1,nc2(i))=f(1,nc2(i))-f11(i)
98 f(2,nc2(i))=f(2,nc2(i))-f21(i)
99 f(3,nc2(i))=f(3,nc2(i))-f31(i)
100 fx2(i) = f11(i)
101 fy2(i) = f21(i)
102 fz2(i) = f31(i)
103 stifn(nc2(i))=stifn(nc2(i))+sti(2,i)
104 ENDDO
105
106
107
108 DO i=1,nel
109 ymom1 = ymom(i) - half*al(i)*forz(i)
110 zmom1 = zmom(i) + half*al(i)*fory(i)
111 m11(i)=exx(i)*xmom(i)+exy(i)*ymom1+exz(i)*zmom1
112 m21(i)=eyx(i)*xmom(i)+eyy(i)*ymom1+eyz(i)*zmom1
113 m31(i)=ezx(i)*xmom(i)+ezy(i)*ymom1+ezz(i)*zmom1
114 ymom2 = ymom(i) + half*al(i)*forz(i)
115 zmom2 = zmom(i) - half*al(i)*fory(i)
116 m12(i)=exx(i)*xmom(i)+exy(i)*ymom2+exz(i)*zmom2
117 m22(i)=eyx(i)*xmom(i)+eyy(i)*ymom2+eyz(i)*zmom2
118 m32(i)=ezx(i)*xmom(i)+ezy(i)*ymom2+ezz(i)*zmom2
119 ENDDO
120
121
122
123 DO i=1,nel
124 xm(1,nc1(i))=xm(1,nc1(i))+m11(i)
125 xm(2,nc1(i))=xm(2,nc1(i))+m21(i)
126 xm(3,nc1(i))=xm(3,nc1(i))+m31(i)
127 mx1(i) = -m11(i)
128 my1(i) = -m21(i)
129 mz1(i) = -m31(i)
130 stifr(nc1(i))=stifr(nc1(i))+stir(1,i)
131
132 xm(1,nc2(i))=xm(1,nc2(i))-m12(i)
133 xm(2,nc2(i))=xm(2,nc2(i))-m22(i)
134 xm(3,nc2(i))=xm(3,nc2(i))-m32(i)
135 mx2(i) = m12(i)
136 my2(i) = m22(i)
137 mz2(i) = m32(i)
138 stifr(nc2(i))=stifr(nc2(i))+stir(2,i)
139 ENDDO
140
141 RETURN