40 . ITTYP,ITHBUF,CLUSTER,SKEW ,X ,
47 use element_mod ,
only : nixs
51#include "implicit_f.inc"
62 INTEGER IAD,IADV, NN, NVAR, ITTYP, ITHBUF(
63INTEGER IXS(NIXS,*),IPARG(NPARG,*)
64 my_real wa(*),skew(lskew,*),x(3,*)
65 TYPE (CLUSTER_) ,
DIMENSION(NCLUSTER) :: CLUSTER
69 INTEGER :: J,L,II,JJ,KK,IVAR,ICLUSTER_L,IWA_L,NNOD,ISKN,
71 my_real :: xm,ym,zm,
norm,sx,sy,sz,tx,ty,tz,fs,fn,mb,mt
72 my_real ,
DIMENSION(3) :: vx,vy,vn,x1,floc,mloc
79 icluster_l = ithbuf(j)
81 IF (icluster_l > 0)
THEN
86 IF (ivar > 6 .and. ivar < 11)
THEN
87 iskn = cluster(icluster_l)%SKEW
88 nnod = cluster(icluster_l)%NNOD
103 n1 = cluster(icluster_l)%NOD1(jj)
104 x1(1) = x1(1) + x(1,n1)
105 x1(2) = x1(2) + x(2,n1)
106 x1(3) = x1(3) + x(3,n1)
116 IF (cluster(icluster_l)%TYPE == 1)
THEN
117 DO kk = 1,cluster(icluster_l)%NEL
118 ng = cluster(icluster_l)%NG(kk)
119 jj = cluster(icluster_l)%ELEM(kk)
125 sx = x(1,n3) - x(1,n1)
126 sy = x(2,n3) - x(2,n1)
127 sz = x(3,n3) - x(3,n1)
128 tx = x(1,n4) - x(1,n2)
129 ty = x(2,n4) - x(2,n2)
130 tz = x(3,n4) - x(3,n2)
131 vn(1) = vn(1) + sy*tz - sz*ty
132 vn(2) = vn(2) + sz*tx - sx*tz
133 vn(3) = vn(3) + sx*ty - sy*tx
137 n1 = cluster(icluster_l)%NOD1(nnod)
138 n2 = cluster(icluster_l)%NOD1(1)
145 vn(1) = vn(1) + sy*tz - sz*ty
146 vn(2) = vn(2) + sz*tx - sx*tz
147 vn(3) = vn(3) + sx*ty - sy*tx
149 n1 = cluster(icluster_l)%NOD1(kk)
150 n2 = cluster(icluster_l)%NOD1(kk+1)
157 vn(1) = vn(1) + sy*tz - sz*ty
158 vn(2) = vn(2) + sz*tx - sx*tz
159 vn(3) = vn(3) + sx*ty - sy*tx
163 norm = one / sqrt(vn(1)**2 + vn(2)**2 + vn(3)**2)
170 n1 = cluster(icluster_l)%NOD1(1)
171 n2 = cluster(icluster_l)%NOD1(2)
175 vy(1) = vn(2)*vx(3) - vn(3)*vx(2)
176 vy(2) = vn(3)*vx(1) - vn(1)*vx(3)
177 vy(3) = vn(1)*vx(2) - vn(2)*vx(1)
178 norm = one / sqrt(vy(1)**2 + vy(2)**2 + vy(3)**2)
182 vx(1) = vy(2)*vn(3) - vy(3)*vn(2)
183 vx(2) = vy(3)*vn(1) - vy(1)*vn(3)
184 vx(3) = vy(1)*vn(2) - vy(2)*vn(1)
185 norm = one / sqrt(vx(1)**2 + vx(2)**2 + vx(3)**2)
191 floc(1) = cluster(icluster_l)%FOR(1)*vx(1) +
192 . cluster(icluster_l)%FOR(2)*vx(2) +
193 . cluster(icluster_l)%FOR(3)*vx(3)
194 floc(2) = cluster(icluster_l)%FOR(1)*vy(1) +
195 . cluster(icluster_l)%FOR(2)*vy(2) +
196 . cluster(icluster_l)%FOR(3)*vy(3)
197 floc(3) = cluster(icluster_l)%FOR(1)*vn(1) +
198 . cluster(icluster_l)%FOR(2)*vn(2) +
199 . cluster(icluster_l)%FOR(3)*vn(3)
200 mloc(1) = cluster(icluster_l)%MOM(1)*vx(1) +
201 . cluster(icluster_l)%MOM(2)*vx(2) +
202 . cluster(icluster_l)%MOM(3)*vx(3)
203 mloc(2) = cluster(icluster_l)%MOM(1)*vy(1) +
204 . cluster(icluster_l)%MOM(2)*vy(2) +
205 . cluster(icluster_l)%MOM(3)*vy(3)
206 mloc(3) = cluster(icluster_l)%MOM(1)*vn(1) +
207 . cluster(icluster_l)%MOM(2)*vn(2) +
208 . cluster(icluster_l)%MOM(3)*vn(3)
212 wa(iwa_l+(ii)*nvar) = cluster(icluster_l)%FOR(1)
213 ELSEIF (ivar==2)
THEN
214 wa(iwa_l+(ii)*nvar) = cluster(icluster_l)%FOR(2)
215 ELSEIF (ivar==3)
THEN
216 wa(iwa_l+(ii)*nvar) = cluster(icluster_l)%FOR(3)
217 ELSEIF (ivar==4)
THEN
218 wa(iwa_l+(ii)*nvar) = cluster(icluster_l)%MOM(1)
219 ELSEIF (ivar==5)
THEN
220 wa(iwa_l+(ii)*nvar) = cluster(icluster_l)%MOM(2)
221 ELSEIF (ivar==6)
THEN
222 wa(iwa_l+(ii)*nvar) = cluster(icluster_l)%MOM(3)
223 ELSEIF (ivar==7)
THEN
224 fs = sqrt(floc(1)*floc(1) + floc(2)*floc(2))
225 wa(iwa_l+(ii)*nvar) = fs
226 ELSEIF (ivar==8)
THEN
228 wa(iwa_l+(ii)*nvar) = fn
229 ELSEIF (ivar==9)
THEN
230 mb = sqrt(mloc(1)*mloc(1) + mloc(2)*mloc(2))
231 wa(iwa_l+(ii)*nvar) = mb
232 ELSEIF (ivar==10)
THEN
234 wa(iwa_l+(ii)*nvar) = mt
235 ELSEIF (ivar==11)
THEN
236 wa(iwa_l+(ii)*nvar) = cluster(icluster_l)%FAIL
242 IF (nn*nvar > 0)
THEN
245 CALL wrtdes(wa,wa,nn*nvar,ittyp,1)