39 . ITTYP,ITHBUF,CLUSTER,SKEW ,X ,
49#include "implicit_f.inc"
60 INTEGER IAD,IADV, NN, NVAR, ITTYP, ITHBUF(*)
61 INTEGER IXS(NIXS,*),IPARG(NPARG,*)
62 my_real wa(*),skew(lskew,*),x(3,*)
63 TYPE () ,
DIMENSION(NCLUSTER) :: CLUSTER
67 INTEGER :: I,J,L,,JJ,KK,IVAR,ICLUSTER_L,IWA_L,NNOD,ISKN,
69 my_real :: xm,ym,zm,
norm,sx,sy,sz,tx,ty,tz,fs,fn,mb,mt
70 my_real ,
DIMENSION(3) :: vx,vy,vn,x1,floc,mloc
77 icluster_l = ithbuf(j)
79 IF (icluster_l > 0)
THEN
84 IF (ivar > 6 .and. ivar < 11)
THEN
85 iskn = cluster(icluster_l)%SKEW
86 nnod = cluster(icluster_l)%NNOD
101 n1 = cluster(icluster_l)%NOD1(jj)
102 x1(1) = x1(1) + x(1,n1)
103 x1(2) = x1(2) + x(2,n1)
104 x1(3) = x1(3) + x(3,n1)
114 IF (cluster(icluster_l)%TYPE == 1)
THEN
115 DO kk = 1,cluster(icluster_l)%NEL
116 ng = cluster(icluster_l)%NG(kk)
117 jj = cluster(icluster_l)%ELEM(kk)
123 sx = x(1,n3) - x(1,n1)
124 sy = x(2,n3) - x(2,n1)
125 sz = x(3,n3) - x(3,n1)
126 tx = x(1,n4) - x(1,n2)
127 ty = x(2,n4) - x(2,n2)
128 tz = x(3,n4) - x(3,n2)
129 vn(1) = vn(1) + sy*tz - sz*ty
130 vn(2) = vn(2) + sz*tx - sx*tz
131 vn(3) = vn(3) + sx*ty - sy*tx
135 n1 = cluster(icluster_l)%NOD1(nnod)
136 n2 = cluster(icluster_l)%NOD1(1)
143 vn(1) = vn(1) + sy*tz - sz*ty
144 vn(2) = vn(2) + sz*tx - sx*tz
145 vn(3) = vn(3) + sx*ty - sy*tx
147 n1 = cluster(icluster_l)%NOD1(kk)
148 n2 = cluster(icluster_l)%NOD1(kk+1)
155 vn(1) = vn(1) + sy*tz - sz*ty
156 vn(2) = vn(2) + sz*tx - sx*tz
157 vn(3) = vn(3) + sx*ty - sy*tx
161 norm = one / sqrt(vn(1)**2 + vn(2)**2 + vn(3)**2)
168 n1 = cluster(icluster_l)%NOD1(1)
169 n2 = cluster(icluster_l)%NOD1(2)
173 vy(1) = vn(2)*vx(3) - vn(3)*vx(2)
174 vy(2) = vn(3)*vx(1) - vn(1)*vx(3)
175 vy(3) = vn(1)*vx(2) - vn(2)*vx
176 norm = one / sqrt(vy(1)**2 + vy(2)**2 + vy(3)**2)
180 vx(1) = vy(2)*vn(3) - vy(3)*vn(2)
181 vx(2) = vy(3)*vn(1) - vy(1)*vn(3)
182 vx(3) = vy(1)*vn(2) - vy(2)*vn(1)
183 norm = one / sqrt(vx(1)**2 + vx(2)**2 + vx(3)**2)
189 floc(1) = cluster(icluster_l)%FOR(1)*vx(1) +
190 . cluster(icluster_l)%FOR(2)*vx(2) +
191 . cluster(icluster_l)%FOR(3)*vx(3)
192 floc(2) = cluster(icluster_l)%FOR(1)*vy(1) +
193 . cluster(icluster_l)%FOR(2)*vy(2) +
194 . cluster(icluster_l)%FOR(3)*vy(3)
195 floc(3) = cluster(icluster_l)%FOR(1)*vn(1) +
196 . cluster(icluster_l)%FOR(2)*vn(2) +
197 . cluster(icluster_l)%FOR(3)*vn(3)
198 mloc(1) = cluster(icluster_l)%MOM(1)*vx(1) +
200 . cluster(icluster_l)%MOM(3)*vx(3)
201 mloc(2) = cluster(icluster_l)%MOM(1)*vy(1) +
202 . cluster(icluster_l)%MOM(2)*vy(2) +
203 . cluster(icluster_l)%MOM(3)*vy(3)
204 mloc(3) = cluster(icluster_l)%MOM(1)*vn(1) +
205 . cluster(icluster_l)%MOM(2)*vn(2) +
206 . cluster(icluster_l)%MOM(3)*vn(3)
210 wa(iwa_l+(ii)*nvar) = cluster(icluster_l)%FOR(1)
211 ELSEIF (ivar==2)
THEN
212 wa(iwa_l+(ii)*nvar) = cluster(icluster_l)%FOR(2)
213 ELSEIF (ivar==3)
THEN
214 wa(iwa_l+(ii)*nvar) = cluster(icluster_l)%FOR(3)
215 ELSEIF (ivar==4)
THEN
216 wa(iwa_l+(ii)*nvar) = cluster(icluster_l)%MOM(1)
217 ELSEIF (ivar==5)
THEN
218 wa(iwa_l+(ii)*nvar) = cluster(icluster_l)%MOM(2)
219 ELSEIF (ivar==6)
THEN
220 wa(iwa_l+(ii)*nvar) = cluster(icluster_l)%MOM(3)
221 ELSEIF (ivar==7)
THEN
222 fs = sqrt(floc(1)*floc(1) + floc(2)*floc(2))
223 wa(iwa_l+(ii)*nvar) = fs
224 ELSEIF (ivar==8)
THEN
226 wa(iwa_l+(ii)*nvar) = fn
227 ELSEIF (ivar==9)
THEN ! m_bend
228 mb = sqrt(mloc(1)*mloc(1) + mloc(2)*mloc(2))
229 wa(iwa_l+(ii)*nvar) = mb
230 ELSEIF (ivar==10)
THEN
232 wa(iwa_l+(ii)*nvar) = mt
233 ELSEIF (ivar==11)
THEN
234 wa(iwa_l+(ii)*nvar) = cluster(icluster_l)%FAIL
240 IF (nn*nvar > 0)
THEN
243 CALL wrtdes(wa,wa,nn*nvar,ittyp,1)