39
40
41
42#include "implicit_f.inc"
43
44
45
46#include "mvsiz_p.inc"
47
48
49
50 INTEGER, INTENT(IN) :: NEL
51 INTEGER, INTENT(IN) :: ISORTH
52 INTEGER NC1(*), NC2(*), NC3(*), NC4(*), MAT(*), NGL(*), NGEO(*),
53 . NCP(7,*)
54
56 . x(3,*),y1(*),y2(*),y3(*),y4(*),z1(*),z2(*),z3(*),z4(*),vd2(*),
57 . r11(*),r12(*),r13(*),
58 . r21(*),r22(*),r23(*),
59 . r31(*),r32(*),r33(*),gama(mvsiz,6),
60 . y234(*),y124(*),vis(*)
61
62
63
64#include "com01_c.inc"
65
66
67
68 INTEGER I,II,IV
70 . sy(mvsiz) , sz(mvsiz) ,
71 . ty(mvsiz) , tz(mvsiz) ,
72 . yl , zl , suma,
73 . g22,g23,g32,g33,
74 . t22,t23,t32,t33,cs,ct
75
76 DO i=1,nel
77 ngeo(i)=ncp(6,i)
78 ngl(i)=ncp(7,i)
79 mat(i)=ncp(1,i)
80 nc1(i)=ncp(2,i)
81 nc2(i)=ncp(3,i)
82 nc3(i)=ncp(4,i)
83 nc4(i)=ncp(5,i)
84 END DO
85
86
87
88
89 DO i=1,nel
90 y1(i)=x(2,nc1(i))
91 z1(i)=x(3,nc1(i))
92 y2(i)=x(2,nc2(i))
93 z2(i)=x(3,nc2(i))
94 y3(i)=x(2,nc3(i))
95 z3(i)=x(3,nc3(i))
96 y4(i)=x(2,nc4(i))
97 z4(i)=x(3,nc4(i))
98 END DO
99
100 IF(n2d==1)THEN
101 DO i=1,nel
102 y234(i)=y2(i)+y3(i)+y4(i)
103 y124(i)=y1(i)+y2(i)+y4(i)
104 END DO
105 END IF
106
107
108
109 DO i=1,nel
110 sy(i)=half*(y2(i)+y3(i)-y1(i)-y4(i))
111 sz(i)=half*(z2(i)+z3(i)-z1(i)-z4(i))
112 ty(i)=half*(y3(i)+y4(i)-y1(i)-y2(i))
113 tz(i)=half*(z3(i)+z4(i)-z1(i)-z2(i))
114 END DO
115
116
117
118 DO i=1,nel
119 ct = ty(i)*ty(i)+tz(i)*tz(i)
120 cs = sy(i)*sy(i)+sz(i)*sz(i)
121 IF(cs /= zero) THEN
122 suma = sqrt(ct/
max(em20,cs))
123 sy(i) = sy(i)*suma + tz(i)
124 sz(i) = sz(i)*suma - ty(i)
125 ELSEIF(ct /= zero)THEN
126 suma = sqrt(cs/
max(em20,ct))
127 sy(i) = sy(i) + tz(i)*suma
128 sz(i) = sz(i) - ty(i)*suma
129 END IF
130 ENDDO
131
132 DO i=1,nel
133 suma=one/
max(sqrt(sy(i)*sy(i)+sz(i)*sz(i)),em20)
134 sy(i)=sy(i)*suma
135 sz(i)=sz(i)*suma
136 ENDDO
137
138 DO i=1,nel
139 r11(i)= one
140 r21(i)= zero
141 r31(i)= zero
142 r12(i)= zero
143 r22(i)= sy(i)
144 r32(i)= sz(i)
145 r13(i)= zero
146 r23(i)=-sz(i)
147 r33(i)= sy(i)
148 END DO
149
150 DO i=1,nel
151 yl=r22(i)*y1(i)+r32(i)*z1(i)
152 zl=r23(i)*y1(i)+r33(i)*z1(i)
153 y1(i)=yl
154 z1(i)=zl
155 yl=r22(i)*y2(i)+r32(i)*z2(i)
156 zl=r23(i)*y2(i)+r33(i)*z2(i)
157 y2(i)=yl
158 z2(i)=zl
159 yl=r22(i)*y3(i)+r32(i)*z3(i)
160 zl=r23(i)*y3(i)+r33(i)*z3(i)
161 y3(i)=yl
162 z3(i)=zl
163 yl=r22(i)*y4(i)+r32(i)*z4(i)
164 zl=r23(i)*y4(i)+r33(i)*z4(i)
165 y4(i)=yl
166 z4(i)=zl
167 END DO
168
169
170
171 IF (isorth /= 0)THEN
172 DO i=1,nel
173
174
175 g22=gama(i,2)
176 g32=gama(i,3)
177 g23=gama(i,5)
178 g33=gama(i,6)
179
180 yl=g22*y1(i)+g32*z1(i)
181 zl=g23*y1(i)+g33*z1(i)
182 y1(i)=yl
183 z1(i)=zl
184 yl=g22*y2(i)+g32*z2(i)
185 zl=g23*y2(i)+g33*z2(i)
186 y2(i)=yl
187 z2(i)=zl
188 yl=g22*y3(i)+g32*z3(i)
189 zl=g23*y3(i)+g33*z3(i)
190 y3(i)=yl
191 z3(i)=zl
192 yl=g22*y4(i)+g32*z4(i)
193 zl=g23*y4(i)+g33*z4(i)
194 y4(i)=yl
195 z4(i)=zl
196
197 t22=r22(i)*g22+r23(i)*g32
198 t23=r22(i)*g23+r23(i)*g33
199 t32=r32(i)*g22+r33(i)*g32
200 t33=r32(i)*g23+r33(i)*g33
201 r22(i)=t22
202 r23(i)=t23
203 r32(i)=t32
204 r33(i)=t33
205 ENDDO
206 ENDIF
207
208 DO i=1,nel
209 vd2(i)=zero
210 vis(i)=zero
211 END DO
212
213 RETURN