36 SUBROUTINE rskew33(JFT ,JLT ,IXR ,IOUT ,IPROP,
37 . NUVAR ,UVAR ,RBY ,X ,XL ,
38 . ROT1 ,ROT2 ,DX ,DY ,DZ ,
39 . RX ,RY ,RZ ,VR ,IGTYP,
40 . NSENSOR,SENSOR_TAB,ISENS ,NC1 ,NC2 ,
46 use element_mod ,
only : nixr
58#include "implicit_f.inc"
71 INTEGER ,
INTENT(IN) :: NSENSOR
72 INTEGER JFT, JLT, IOUT, NUVAR, IPROP, IXR(NIXR,*),IGTYP,
75 my_real UVAR(NUVAR,*),X(3,*),
76 . rot1(3,mvsiz),rot2(3,mvsiz),rby(*),
77 . dx(*), dy(*), dz(*), rx(*), ry(*), rz(*),vr(3,*)
78 DOUBLE PRECISION XDP(3,*),XL(MVSIZ,3)
79 TYPE (SENSOR_STR_) ,
DIMENSION(NSENSOR) :: SENSOR_TAB
83 INTEGER I, J, K, JTYP, IERR, SKFLG,
84 . idsk1,idsk2,isk1,isk2,
85 . n1,n2,n3,usens,insens,
88 . u(lskew),v(lskew),ex(lskew),
91 . a(lskew),exi(lskew),
92 . get_u_geo,nr,dt(3),dex(lskew),exprec(lskew)
93 DOUBLE PRECISION X21(MVSIZ),Y21(MVSIZ),Z21(MVSIZ)
108 jtyp = nint(get_u_geo(1,iprop))
111 idsk1 = nint(get_u_geo(2,iprop))
112 idsk2 = nint(get_u_geo(3,iprop))
113 skflg = nint(get_u_geo(14,iprop))
114 isk1 = get_u_skew(idsk1,n1,n2,n2,u)
115 isk2 = get_u_skew(idsk2,n1,n2,n3,v)
119 usens = nint(get_u_geo(2,iprop))
122 isens_old = nint(uvar(16,jft))
124 IF(usens==sensor_tab(k)%SENS_ID) insens=k
127 IF (tt>sensor_tab(insens)%TSTART)
THEN
131 IF (isens/=isens_old) isens_act = 1
141 IF ((ncycle==0).AND.(tt==0))
THEN
155 IF ((igtyp==45).AND.(isens_act==1))
THEN
172 dt(1)= vr(1,nc1(i))*dt1
173 dt(2)= vr(2,nc1(i))*dt1
174 dt(3)= vr(3,nc1(i))*dt1
175 u(1)=uvar(10,i) - uvar(11,i)*dt(3)+uvar(12,i)*dt(2)
176 u(2)=uvar(11,i) - uvar(12,i)*dt(1)+uvar(10,i)*dt(3)
177 u(3)=uvar(12,i) - uvar(10,i)*dt(2)+uvar(11,i)*dt(1)
178 nr =sqrt(u(1)*u(1)+u(2)*u(2)+u(3)*u(3))
190 dt(1)= vr(1,nc2(i))*dt1
191 dt(2)= vr(2,nc2(i))*dt1
192 dt(3)= vr(3,nc2(i))*dt1
193 v(1)=uvar(13,i) - uvar(14,i)*dt(3)+uvar(15,i)*dt(2)
194 v(2)=uvar(14,i) - uvar(15,i)*dt(1)+uvar(13,i)*dt(3)
195 v(3)=uvar(15,i) - uvar(13,i)*dt(2)+uvar(14,i)*dt(1)
196 nr =sqrt(v(1)*v(1)+v(2)*v(2)+v(3)*v(3))
208 ex(1) = u(2)*v(3) - u(3)*v(2)
209 ex(2) = u(3)*v(1) - u(1)*v(3)
210 ex(3) = u(1)*v(2) - u(2)*v(1)
211 nx = sqrt(ex(1)*ex(1)+ex(2)*ex(2)+ex(3)*ex(3))
225 x21(i) = (vr(1,nc2(i))-vr(1,nc1(i)))*dt1
226 y21(i) = (vr(2,nc2(i))-vr(2,nc1(i)))*dt1
227 z21(i) = (vr(3,nc2(i))-vr(3,nc1(i)))*dt1
229 rm(1) = rx(i)+exi(1)*x21(i)+exi(4)*y21(i)+exi(7)*z21(i)
230 rm(2) = ry(i)+exi(2)*x21(i)+exi(5)*y21(i)+exi(8)*z21(i)
231 rm(3) = rz(i)+exi(3)*x21(i)+exi(6)*y21(i)+exi(9)*z21(i)
240 x21(i) = x(1,nc2(i))-x(1,nc1(i))
241 y21(i) = x(2,nc2(i))-x(2,nc1(i))
242 z21(i) = x(3,nc2(i))-x(3,nc1(i))
243 xl(i,1)=exi(1)*x21(i)+exi(4)*y21(i)+exi(7)*z21(i)
244 xl(i,2)=exi(2)*x21(i)+exi(5)*y21(i)+exi(8)*z21(i)
245 xl(i,3)=exi(3)*x21(i)+exi(6)*y21(i)+exi(9)*z21(i)
265 IF ((ncycle==0).AND.(tt==0).AND.(igtyp==33))
THEN
272 exprec(j) = uvar(21+j,i)
277 x21(i) = half*(vr(1,nc2(i))+vr(1,nc1(i)))*dt1
278 y21(i) = half*(vr(2,nc2(i))+vr(2,nc1(i)))*dt1
279 z21(i) = half*(vr(3,nc2(i))+vr(3,nc1(i)))*dt1
280 dt(1)=exprec(1)*x21(i)+exprec(2)*y21(i)+exprec(3)*z21(i)
281 dt(2)=exprec(4)*x21(i)+exprec(5)*y21(i)+exprec(6)*z21(i)
282 dt(3)=exprec(7)*x21(i)+exprec(8)*y21(i)+exprec(9)*z21(i)
284 nr =sqrt(dt(1)*dt(1)+dt(2)*dt(2)+dt(3)*dt(3))
292 CALL qrot33(dex, dt, co, si)
301 x21(i) = (vr(1,nc2(i))-vr(1,nc1(i)))*dt1
302 y21(i) = (vr(2,nc2(i))-vr(2,nc1(i)))*dt1
303 z21(i) = (vr(3,nc2(i))-vr(3,nc1(i)))*dt1
305 rm(1) = rx(i)+ex(1)*x21(i)+ex(2)*y21(i)+ex(3)*z21(i)
306 rm(2) = ry(i)+ex(4)*x21(i)+ex(5)*y21(i)+ex(6)*z21(i)
307 rm(3) = rz(i)+ex(7)*x21(i)+ex(8)*y21(i)+ex(9)*z21(i)
318 x21(i) = xdp(1,nc2(i))-xdp(1,nc1(i))
319 y21(i) = xdp(2,nc2(i))-xdp(2,nc1(i))
320 z21(i) = xdp(3,nc2(i))-xdp(3,nc1(i))
323 x21(i) = x(1,nc2(i))-x(1,nc1(i))
324 y21(i) = x(2,nc2(i))-x(2,nc1(i))
325 z21(i) = x(3,nc2(i))-x(3,nc1(i))
328 xl(i,1)=ex(1)*x21(i)+ex(2)*y21(i)+ex(3)*z21(i)
329 xl(i,2)=ex(4)*x21(i)+ex(5)*y21(i)+ex(6)*z21(i)
330 xl(i,3)=ex(7)*x21(i)+ex(8)*y21(i)+ex(9)*z21(i)