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