36
37
38
39#include "implicit_f.inc"
40
41
42
43#include "mvsiz_p.inc"
44
45
46
47 INTEGER, INTENT(IN) :: NEL
48 INTEGER, INTENT(IN) :: JHBE
49 INTEGER, INTENT(IN) :: ISROT
50
52 . vx(mvsiz,10),vy(mvsiz,10),vz(mvsiz,10),
53 . px(mvsiz,10),py(mvsiz,10),pz(mvsiz,10),
54 . dxx(*), dxy(*), dxz(*),
55 . dyx(*), dyy(*), dyz(*),
56 . dzx(*), dzy(*), dzz(*), d4(*), d5(*), d6(*),
57 . wxx(*), wyy(*), wzz(*),volp(*),voln(*),rho(*),
58 . rhoo(*)
59
60
61
62#include "com08_c.inc"
63
64
65
66 INTEGER I,N
67
69 . dt1d2
71 . pxx2,pyy2,pzz2,pxx2p,pyy2p,pzz2p,aaa,bbb
72
73
74 IF(isrot /= 1)THEN
75 DO i=1,nel
76 voln(i)=volp(i)
77 rhoo(i)=rho(i)
78 ENDDO
79 ELSE
80 DO i=1,nel
81
82 rhoo(i)=rho(i)
83 ENDDO
84 ENDIF
85 DO i=1,nel
86 dxx(i)=px(i,1)*vx(i,1)+px(i,2)*vx(i,2)+px(i,3)*vx(i,3)+px(i,4)*vx(i,4)+px(i,5)*vx(i,5)
87 . +px(i,6)*vx(i,6)+px(i,7)*vx(i,7)+px(i,8)*vx(i,8)+px(i,9)*vx(i,9)+px(i,10)*vx(i,10)
88 dyy(i)=py(i,1)*vy(i,1)+py(i,2)*vy(i,2)+py(i,3)*vy(i,3)+py(i,4)*vy(i,4)+py(i,5)*vy(i,5)
89 . +py(i,6)*vy(i,6)+py(i,7)*vy(i,7)+py(i,8)*vy(i,8)+py(i,9)*vy(i,9)+py(i,10)*vy(i,10)
90 dzz(i)=pz(i,1)*vz(i,1)+pz(i,2)*vz(i,2)+pz(i,3)*vz(i,3)+pz(i,4)*vz(i,4)+pz(i,5)*vz(i,5)
91 . +pz(i,6)*vz(i,6)+pz(i,7)*vz(i,7)+pz(i,8)*vz(i,8)+pz(i,9)*vz(i,9)+pz(i,10)*vz(i,10)
92 dxy(i)=py(i,1)*vx(i,1)+py(i,2)*vx(i,2)+py(i,3)*vx(i,3)+py(i,4)*vx(i,4)+py(i,5)*vx(i,5)
93 . +py(i,6)*vx(i,6)+py(i,7)*vx(i,7)+py(i,8)*vx(i,8)+py(i,9)*vx(i,9)+py(i,10)*vx(i,10)
94 dxz(i)=pz(i,1)*vx(i,1)+pz(i,2)*vx(i,2)+pz(i,3)*vx(i,3)+pz(i,4)*vx(i,4)+pz(i,5)*vx(i,5)
95 . +pz(i,6)*vx(i,6)+pz(i,7)*vx(i,7)+pz(i,8)*vx(i,8)+pz(i,9)*vx(i,9)+pz(i,10)*vx(i,10)
96 dyx(i)=px(i,1)*vy(i,1)+px(i,2)*vy(i,2)+px(i,3)*vy(i,3)+px(i,4)*vy(i,4)+px(i,5)*vy(i,5)
97 . +px(i,6)*vy(i,6)+px(i,7)*vy(i,7)+px(i,8)*vy(i,8)+px(i,9)*vy(i,9)+px(i,10)*vy(i,10)
98 dyz(i)=pz(i,1)*vy(i,1)+pz(i,2)*vy(i,2)+pz(i,3)*vy(i,3)+pz(i,4)*vy(i,4)+pz(i,5)*vy(i,5)
99 . +pz(i,6)*vy(i,6)+pz(i,7)*vy(i,7)+pz(i,8)*vy(i,8)+pz(i,9)*vy(i,9)+pz(i,10)*vy(i,10)
100 dzx(i)=px(i,1)*vz(i,1)+px(i,2)*vz(i,2)+px(i,3)*vz(i,3)+px(i,4)*vz(i,4)+px(i,5)*vz(i,5)
101 . +px(i,6)*vz(i,6)+px(i,7)*vz(i,7)+px(i,8)*vz(i,8)+px(i,9)*vz(i,9)+px(i,10)*vz(i,10)
102 dzy(i)=py(i,1)*vz(i,1)+py(i,2)*vz(i,2)+py(i,3)*vz(i,3)+py(i,4)*vz(i,4)+py(i,5)*vz(i,5)
103 . +py(i,6)*vz(i,6)+py(i,7)*vz(i,7)+py(i,8)*vz(i,8)+py(i,9)*vz(i,9)+py(i,10)*vz(i,10)
104 ENDDO
105
106 dt1d2=half*dt1
107
108 IF(jhbe>=2)THEN
109 DO i=1,nel
110 dxx(i) = dxx(i)
111 . -dt1d2*(dxx(i)*dxx(i)+dyx(i)*dyx(i)+dzx(i)*dzx(i))
112 dyy(i) = dyy(i)
113 . -dt1d2*(dyy(i)*dyy(i)+dzy(i)*dzy(i)+dxy(i)*dxy(i))
114 dzz(i) = dzz(i)
115 . -dt1d2*(dzz(i)*dzz(i)+dxz(i)*dxz(i)+dyz(i)*dyz(i))
116 aaa = dt1d2*(dxx(i)*dxy(i)+dyx(i)*dyy(i)+dzx(i)*dzy(i))
117 dxy(i) = dxy(i) - aaa
118 dyx(i) = dyx(i) - aaa
119 d4(i) = dxy(i)+dyx(i)
120 aaa = dt1d2*(dyy(i)*dyz(i)+dzy(i)*dzz(i)+dxy(i)*dxz(i))
121 dyz(i) = dyz(i) - aaa
122 dzy(i) = dzy(i) - aaa
123 d5(i) = dyz(i)+dzy(i)
124 aaa = dt1d2*(dzz(i)*dzx(i)+dxz(i)*dxx(i)+dyz(i)*dyx(i))
125 dxz(i) = dxz(i) - aaa
126 dzx(i) = dzx(i) - aaa
127 d6(i) = dxz(i)+dzx(i)
128
129 n = 1
130 pxx2 = px(i,n)*px(i,n)
131 pyy2 = py(i,n)*py(i,n)
132 pzz2 = pz(i,n)*pz(i,n)
133 DO n=2,10
134 pxx2 = pxx2+px(i,n)*px(i,n)
135 pyy2 = pyy2+py(i,n)*py(i,n)
136 pzz2 = pzz2+pz(i,n)*pz(i,n)
137 END DO
138 wzz(i)=dt1*(pyy2*dyx(i)-pxx2*dxy(i))/(pxx2+pyy2)
139 wxx(i)=dt1*(pzz2*dzy(i)-pyy2*dyz(i))/(pyy2+pzz2)
140 wyy(i)=dt1*(pxx2*dxz(i)-pzz2*dzx(i))/(pzz2+pxx2)
141 ENDDO
142 ELSE
143 DO i=1,nel
144 d4(i) =dxy(i)+dyx(i)
145 d5(i) =dyz(i)+dzy(i)
146 d6(i) =dxz(i)+dzx(i)
147 wzz(i)=dt1d2*(dyx(i)-dxy(i))
148 wyy(i)=dt1d2*(dxz(i)-dzx(i))
149 wxx(i)=dt1d2*(dzy(i)-dyz(i))
150 ENDDO
151 END IF
152
153 RETURN
154