32 SUBROUTINE rbe2v(IRBE2 ,LRBE2 ,X ,A ,AR ,
37#include "implicit_f.inc"
46 INTEGER IRBE2(NRBE2L,*),LRBE2(*)
49 . x(3,*), a(3,*), ar(3,*),v(3,*), vr(3,*),skew(lskew,*)
53 INTEGER I, J, N, M, NS ,NML, IAD,JJ,IROT,IADS,
54 . jt(3,nrbe2),jr(3,nrbe2),nm,nn,k,isk,nsn,irad,nsn_g
66 CALL rbe2vl1(nsn ,lrbe2(iad+1),x ,a ,ar ,
67 1 v ,vr ,jt(1,n),jr(1,n),m ,
68 2 skew(1,isk),irad ,nsn_g)
70 CALL rbe2v1(nsn ,lrbe2(iad+1),x ,a ,ar ,
71 1 v ,vr ,jt(1,n),jr(1,n),m ,irad ,nsn_g)
80 SUBROUTINE rbe2v0(NSL ,ISL ,X ,A ,AR ,
85#include "implicit_f.inc"
89 INTEGER NSL,ISL(*),JT(3),JR(3),M
92 . x(3,*), a(3,*), ar(3,*), v(3,*), vr(3,*)
110 IF ((jr(1)+jr(2)+jr(3))>0)
THEN
119 vrm(j)= ar(j,m)*jr(j)
126 a(1,ns)=a(1,ns)+vrm(2)*zs-vrm(3)*ys
127 a(2,ns)=a(2,ns)-vrm(1)*zs+vrm(3)*xs
128 a(3,ns)=a(3,ns)+vrm(1)*ys-vrm(2)*xs
143#include "implicit_f.inc"
147 INTEGER NSN,ISL(*),JT(3),JR(3),M
150 . X(3,*), A(3,*), AR(3,*), V(3,*), VR(3,*),SKEW(*)
157 . XS, YS, ZS,RX, RY,RZ,LRX, LRY,LRZ,RVX,RVY,RVZ,
158 . dvx,dvy,dvz,vvx,vvy,vvz,lxs(nsn), lys(nsn), lzs(nsn)
165 vvx =jt(1)*(skew(1)*dvx+skew(2)*dvy+skew(3)*dvz)
166 vvy =jt(2)*(skew(4)*dvx+skew(5)*dvy+skew(6)*dvz)
167 vvz =jt(3)*(skew(7)*dvx+skew(8)*dvy+skew(9)*dvz)
168 a(1,ns) =a(1,ns)-vvx*skew(1)-vvy*skew(4)-vvz*skew(7)
169 a(2,ns) =a(2,ns)-vvx*skew(2)-vvy*skew(5)-vvz*skew(8)
170 a(3,ns) =a(3,ns)-vvx*skew(3)-vvy*skew(6)-vvz*skew(9)
172 IF ((jr(1)+jr(2)+jr(3))>0)
THEN
178 lxs(i)=skew(1)*xs+skew(2)*ys+skew(3)*zs
179 lys(i)=skew(4)*xs+skew(5)*ys+skew(6)*zs
180 lzs(i)=skew(7)*xs+skew(8)*ys+skew(9)*zs
184 dvx =ar(1,ns)-ar(1,m)
185 dvy =ar(2,ns)-ar(2,m)
186 dvz =ar(3,ns)-ar(3,m)
187 vvx =jr(1)*(skew(1)*dvx+skew(2)*dvy+skew(3)*dvz)
188 vvy =jr(2)*(skew(4)*dvx+skew(5)*dvy+skew(6)*dvz)
189 vvz =jr(3)*(skew(7)*dvx+skew(8)*dvy+skew(9)*dvz)
190 ar(1,ns) =ar(1,ns)-vvx*skew(1)-vvy*skew(4)-vvz*skew(7)
191 ar(2,ns) =ar(2,ns)-vvx*skew(2)-vvy*skew(5)-vvz*skew(8)
192 ar(3,ns) =ar(3,ns)-vvx*skew(3)-vvy*skew(6)-vvz*skew(9)
196 lrx =jr(1)*(skew(1)*rx+skew(2)*ry+skew(3)*rz)
197 lry =jr(2)*(skew(4)*rx+skew(5)*ry+skew(6)*rz)
198 lrz =jr(3)*(skew(7)*rx+skew(8)*ry+skew(9)*rz)
199 rvx=lry*lzs(i)-lrz*lys(i)
200 rvy=-lrx*lzs(i)+lrz*lxs(i)
201 rvz=lrx*lys(i)-lry*lxs(i)
202 a(1,ns) =a(1,ns)+rvx*skew(1)+rvy*skew(4)+rvz*skew(7)
203 a(2,ns) =a(2,ns)+rvx*skew(2)+rvy*skew(5)+rvz*skew(8)
204 a(3,ns) =a(3,ns)+rvx*skew(3)+rvy*skew(6)+rvz*skew(9)
219!||====================================================================
224#include "implicit_f.inc"
228#include "com04_c.inc"
229#include "param_c.inc"
230#include "impl1_c.inc"
234 INTEGER (NRBE2L,*),LRBE2(*)
237 . X(3,*), D(3,*), DR(3,*),SKEW(LSKEW,*)
241 INTEGER I, J, N, M, NS ,NML, IAD,JJ,ISK,
242 . JT(3,NRBE2),JR(3,NRBE2),NM,NN,K,NSL,IRAD
253 IF( imp_lr == 0 )
THEN
254 CALL rbe2dl2(nsl ,lrbe2(iad+1),x ,d ,dr ,
255 1 jt(1,n),jr(1,n),m ,skew(1,isk),irad )
257 CALL rbe2dl3(nsl ,lrbe2(iad+1),x ,d ,dr ,
258 1 jt(1,n),jr(1,n),m ,skew(1,isk),irad )
261 CALL rbe2d0(nsl ,lrbe2(iad+1),x ,d ,dr ,
262 1 jt(1,n),jr(1,n),m ,irad )
270!||--- called by ------------------------------------------------------
280#include "implicit_f.inc"
284#include "impl1_c.inc"
288 INTEGER NSL,ISL(*),JT(3),JR(3),M,IRAD
291 . X(3,*), V(3,*), VR(3,*)
298 . XS, YS, ZS,VRM(3),LSM(3),VS(3)
308 IF ((jr(1)+jr(2)+jr(3))>0)
THEN
329 IF (jt(1)/=0) v(1,ns)=v(1,ns)+vrm(2)*zs-vrm(3)*ys
330 IF (jt(2)/=0) v(2,ns)=v(2,ns)-vrm(1)*zs+vrm(3)*xs
331 IF (jt(3)/=0) v(3,ns)=v(3,ns)+vrm(1)*ys-vrm(2)*xs
337 IF (jt(1)/=0) v(1,ns)=v(1,ns) + vs(1)
338 IF (jt(2)/=0) v(2,ns)=v(2,ns) + vs(2)
339 IF (jt(3)/=0) v(3,ns)=v(3,ns) + vs(3)
342 ELSEIF ((jr(1)+jr(2)+jr
THEN
344 vrm(j)= vr(j,m)*jr(j)
351 IF( imp_lr == 0 )
THEN
353 v(2,ns)=v(2,ns)-vrm(1)*zs+vrm(3)*xs
354 v(3,ns)=v(3,ns)+vrm(1)*ys-vrm(2)*xs
360 v(1,ns)=v(1,ns)+ vs(1)
362 v(3,ns)=v(3,ns)+ vs(3)
377#include "implicit_f.inc"
381 INTEGER NSN,(*),JT(3),JR(3),M
384 . X(3,*), V(3,*), VR(3,*),SKEW(*)
391 . xs, ys, zs,rx, ry,rz,lrx, lry,lrz,rvx,rvy,rvz,
392 . dvx,dvy,dvz,vvx,vvy,vvz,lxs(nsn), lys(nsn), lzs(nsn)
399 vvx =jt(1)*(skew(1)*dvx+skew(2)*dvy+skew(3)*dvz)
400 vvy =jt(2)*(skew(4)*dvx+skew(5)*dvy+skew(6)*dvz)
401 vvz =jt(3)*(skew(7)*dvx+skew(8)*dvy+skew(9)*dvz)
402 v(1,ns) =v(1,ns)-vvx*skew(1)-vvy*skew(4)-vvz*skew(7)
403 v(2,ns) =v(2,ns)-vvx*skew(2)-vvy*skew(5)-vvz*skew(8)
404 v(3,ns) =v(3,ns)-vvx*skew(3)-vvy*skew(6)-vvz*skew(9)
406 IF ((jr(1)+jr(2)+jr(3))>0)
THEN
412 lxs(i)=skew(1)*xs+skew(2)*ys+skew(3)*zs
413 lys(i)=skew(4)*xs+skew(5)*ys+skew(6)*zs
414 lzs(i)=skew(7)*xs+skew(8)*ys+skew(9)*zs
418 dvx =vr(1,ns)-vr(1,m)
419 dvy =vr(2,ns)-vr(2,m)
420 dvz =vr(3,ns)-vr(3,m)
421 vvx =jr(1)*(skew(1)*dvx+skew(2)*dvy+skew(3)*dvz)
422 vvy =jr(2)*(skew(4)*dvx+skew(5)*dvy+skew(6)*dvz)
423 vvz =jr(3)*(skew(7)*dvx+skew(8)*dvy+skew(9)*dvz)
424 vr(1,ns) =vr(1,ns)-vvx*skew(1)-vvy*skew(4)-vvz*skew(7)
425 vr(2,ns) =vr(2,ns)-vvx*skew(2)-vvy*skew(5)-vvz*skew(8)
426 vr(3,ns) =vr(3,ns)-vvx*skew(3)-vvy*skew(6)-vvz*skew(9)
430 lrx =jr(1)*(skew(1)*rx+skew(2)*ry+skew(3)*rz)
431 lry =jr(2)*(skew(4)*rx+skew(5)*ry+skew(6)*rz)
432 lrz =jr(3)*(skew(7)*rx+skew(8)*ry+skew(9)*rz)
433 rvx=lry*lzs(i)-lrz*lys(i)
434 rvy=-lrx*lzs(i)+lrz*lxs(i)
435 rvz=lrx*lys(i)-lry*lxs(i)
436 v(1,ns) =v(1,ns)+rvx*skew(1)+rvy*skew(4)+rvz*skew(7)
437 v(2,ns) =v(2,ns)+rvx*skew(2)+rvy*skew(5)+rvz*skew(8)
438 v(3,ns) =v(3,ns)+rvx*skew(3)+rvy*skew(6)+rvz*skew(9)
453 1 JT ,JR ,M ,SKEW ,IRAD )
457#include "implicit_f.inc"
461 INTEGER NSN,ISL(*),JT(3),JR(3),M,IRAD
464 . X(3,*), V(3,*), VR(3,*),SKEW(*)
468 INTEGER I, NS ,NT,NR,ICT,ICR
471 . xs, ys, zs,rx, ry,rz,lrx, lry,lrz,rvx,rvy,rvz,
472 . dvx,dvy,dvz,vvx,vvy,vvz,ktr(3,3)
476 ict=jt(1)*4 +jt(2)*2 +jt(3)
477 icr=jr(1)*4 +jr(2)*2 +jr(3)
478 IF (nt>0.AND.nt<3)
THEN
504 IF (irad==0.OR.nr>0)
THEN
513 CALL cdi_bcn1(xs,ys,zs,jt,jr,skew,ktr,irad)
514 v(1,ns) =v(1,ns)+ktr(1,1)*rx+ktr(1,2)*ry+ktr(1,3)*rz
515 v(2,ns) =v(2,ns)+ktr(2,1)*rx+ktr(2,2)*ry+ktr(2,3)*rz
516 v(3,ns) =v(3,ns)+ktr(3,1)*rx+ktr(3,2)*ry+ktr(3,3)*rz
525!||
rbe2_frd ../engine/source/constraints/general/rbe2/
rbe2v.f
530!||
l_dir ../engine/source/constraints/general/bcs/
bc_imp0.f
537#include "implicit_f.inc"
541#include
"param_c.inc"
545 INTEGER ICT,NSN ,ISL(*),M
551 INTEGER I,J,K,J1,L,NS
553 . vq(3,3),ej(3),ej1(3),vlm(3),vv(3),vls(3),s
563 vlm(1) =skew(1)*vv(1)+skew(2)*vv(2)+skew(3)*vv(3)
564 vlm(2) =skew(4)*vv(1)+skew(5)*vv(2)+skew(6)*vv(3)
565 vlm(3) =skew(7)*vv(1)+skew(8)*vv(2)+skew(9)*vv(3)
575 ELSEIF (ict == 2)
THEN
583 ELSEIF (ict == 1)
THEN
591 ELSEIF (ict == 3)
THEN
607 IF (abs(vq(1,k))<em20)
THEN
613 ELSEIF (ict == 5)
THEN
629 IF (abs(vq(2,k))<em20)
THEN
635 ELSEIF (ict == 6)
THEN
651 IF (abs(vq(3,k))<em20)
THEN
661 v(j,ns) = vlm(1)/skew(j)-ej(j1)*v(j1,ns)-ej(k)*v(k,ns)
663 ELSEIF (ict == 2)
THEN
664 v(j,ns) = vlm(2)/skew(3+j)-ej(j1)*v(j1,ns)-ej(k)*v(k,ns)
666 ELSEIF (ict == 1)
THEN
667 v(j,ns) = vlm(3)/skew(6+j)-ej(j1)*v(j1,ns)-ej(k)*v(k,ns)
669 ELSEIF (ict == 3)
THEN
670 vls(1)=(v(k,ns)-vls(3)*vq(3,k)-vls(2)*vq(2,k))*s
671 v(1,ns) =vls(1)*skew(1)+vls(2)*skew(4)+vls(3)*skew(7)
672 v(2,ns) =vls(1)*skew(2)+vls(2)*skew(5)+vls(3)*skew(8)
673 v(3,ns) =vls(1)*skew(3)+vls(
675 ELSEIF (ict == 5)
THEN
676 vls(2)=(v(k,ns)-vls(3)*vq(3,k)-vls(1)*vq(1,k))*s
677 v(1,ns) =vls(1)*skew(1)+vls(2)*skew(4)+vls(3)*skew(7)
678 v(2,ns) =vls(1)*skew(2)+vls(2)*skew(5)+vls(3)*skew(8)
681 ELSEIF (ict == 6)
THEN
682 vls(3)=(v(k,ns)-vls(2)*vq(2,k)-vls(1)*vq(1,k))*s
683 v(1,ns) =vls(1)*skew(1)+vls(2)*skew(4)+vls(3)*skew(7)
684 v(2,ns) =vls(1)*skew(2)+vls(2)*skew(5)+vls(3)*skew(8)
685 v(3,ns) =vls(1)*skew(3)+vls(2)*skew(6)+vls(3)*skew(9)
717#include "implicit_f.inc"
729 IF (j1>3) j1 = j1 - 3
752 USE velrot_explicit_mod,
ONLY : velrot_explicit
756#include "implicit_f.inc"
760#include "com08_c.inc"
764 INTEGER NSL,ISL(*),JT(3),JR(3),M,IRAD,NSL_G
767 . X(3,*), A(3,*), AR(3,*), V(3,*), VR(3,*)
774 . v1x2, v2x1, v2x3, v3x2, v3x1, v1x3,usdt,dt05,
775 . vx1, vx2, vx3,vg(3),lsm(3),vs(3),as(3)
783 a(j,ns)= a(j,m)+(v(j,m)-v(j,ns))*usdt
788 IF ((jr(1)+jr(2)+jr(3))>0.OR.irad==0)
THEN
790 vg(j)=vr(j,m)+ar(j,m)*dt12
794 ar(j,ns)= (vg(j)-vr(j,ns)) * usdt
805 lsm(1:3) = x(1:3,ns)-x(1:3,m)
806 CALL velrot_explicit(vg, lsm,vs,dt12)
807 as(1) = usdt*(vs(1)+dt05*(vg(2)*vs(3)-vg(3)*vs(2)))
808 as(2) = usdt*(vs(2)+dt05*(vg(3)*vs(1)-vg(1)*vs(3)))
809 as(3) = usdt*(vs(3)+dt05*(vg(1)*vs(2)-vg(2)*vs(1)))
810 a(1:3,ns)= a(1:3,ns)+as(1:3)*jt(1:3)
815 v1x2=vg(1)*(x(2,ns)-x(2,m))
816 v2x1=vg(2)*(x(1,ns)-x(1,m))
817 v2x3=vg(2)*(x(3,ns)-x(3,m))
818 v3x2=vg(3)*(x(2,ns)-x(2,m))
819 v3x1=vg(3)*(x(1,ns)-x(1,m))
820 v1x3=vg(1)*(x(3,ns)-x(3,m))
826 . a(1,ns)= a(1,ns)+(vx1+dt05*(vg(2)*vx3-vg(3)*vx2))*usdt
828 . a(2,ns)= a(2,ns)+(vx2+dt05*(vg(3)*vx1-vg(1)*vx3))*usdt
830 . a(3,ns)= a(3,ns)+(vx3+dt05*(vg(1)*vx2-vg(2)*vx1))*usdt
833 ELSEIF ((jr(1)+jr(2)+jr(3))>0)
THEN
841 v1x2=vg(1)*(x(2,ns)-x(2,m))
842 v2x1=vg(2)*(x(1,ns)-x(1,m))
843 v2x3=vg(2)*(x(3,ns)-x(3,m))
844 v3x2=vg(3)*(x(2,ns)-x(2,m))
845 v3x1=vg(3)*(x(1,ns)-x(1,m))
846 v1x3=vg(1)*(x(3,ns)-x(3,m))
851 a(1,ns)= a(1,ns)+(vx1+dt05*(vg(2)*vx3-vg(3)*vx2))*usdt
852 a(2,ns)= a(2,ns)+(vx2+dt05*(vg(3)*vx1-vg(1)*vx3))*usdt
853 a(3,ns)= a(3,ns)+(vx3+dt05*(vg(1)*vx2-vg(2)*vx1))*usdt
863!||--- calls -----------------------------------------------------
872 2 SKEW ,IRAD ,NSL_G )
876 USE velrot_explicit_mod,
ONLY
880#include "implicit_f.inc"
884#include "com08_c.inc"
888 INTEGER NSL,ISL(*),JT(3),JR(3),M,IRAD,NSL_G
891 . X(3,*), A(3,*), AR(3,*), V(3,*), VR(3,*),SKEW(*)
895 INTEGER I, J, N, NS,ICR
898 . XS, YS, ZS,RX, RY,RZ,LRX, LRY,LRZ,RVX,RVY,RVZ,
899 . DVX,DVY,DVZ,VVX,VVY,VVZ,LXS(NSL),LYS(NSL),(NSL)
901 . v1x2, v2x1, v2x3, v3x2, v3x1, v1x3,usdt,dt05,
902 . vx1, vx2, vx3,vrg(3),vrl(3),usdt1(3),ktr(3,3),
907 IF ((jt(1)+jt(2)+jt(3))==3)
THEN
911 a(j,ns)= a(j,m)+(v(j,m)-v(j,ns))*usdt
917 dvx =a(1,ns)-(a(1,m)+(v(1,m)-v(1,ns))*usdt)
918 dvy =a(2,ns)-(a(2,m)+(v(2,m)-v(2,ns))*usdt)
919 dvz =a(3,ns)-(a(3,m)+(v(3,m)-v(3,ns))*usdt)
920 vvx =jt(1)*(skew(1)*dvx+skew(2)*dvy+skew(3)*dvz)
921 vvy =jt(2)*(skew(4)*dvx+skew(5)*dvy+skew(6)*dvz)
922 vvz =jt(3)*(skew(7)*dvx+skew(8)*dvy+skew(9)*dvz)
923 a(1,ns) =a(1,ns)-vvx*skew(1)-vvy*skew(4)-vvz*skew(7)
924 a(2,ns) =a(2,ns)-vvx*skew(2)-vvy*skew(5)-vvz*skew(8)
925 a(3,ns) =a(3,ns)-vvx*skew(3)-vvy*skew(6)-vvz*skew(9)
929 IF ((jr(1)+jr(2)+jr(3)) >0.OR.irad ==0 )
THEN
930 IF ((jr(1)+jr(2)+jr(3)) >0 )
THEN
931 icr=jr(1)*4 +jr(2)*2 +jr(3)
941 vr(1:3,ns)=vr(1:3,ns)+ar(1:3,ns)*dt12
944 vr(1:3,m)=vrg(1:3)+ar(1:3,m)*dt12
945 IF ((jr(1)+jr(2)+jr(3)) < 3)
THEN
958 ar(1,ns)=(vr(1,ns)-lxs(i)) * usdt
959 ar(2,ns)=(vr(2,ns)-lys(i)) * usdt
960 ar(3,ns)=(vr(3,ns)-lzs(i)) * usdt
969 vrg(j)=vr(j,m)+ar(j,m
981 IF (irad ==0.AND.nsl_g<=2 .AND.(jt(1)+jt(2)+jt(3))==3)
THEN
985 lsm(1:3) = x(1:3,ns)-x(1:3,m)
986 CALL velrot_explicit(vrg, lsm,vs,dt12)
987 as(1) = usdt*(vs(1)+dt05*(vrg(2)*vs(3)-vrg(3)*vs(2)))
988 as(2) = usdt*(vs(2)+dt05*(vrg(3)*vs(1)-vrg(1)*vs(3)))
989 as(3) = usdt*(vs(3)+dt05*(vrg(1)*vs(2)-vrg(2)*vs(1)))
990 a(1:3,ns)= a(1:3,ns)+as(1:3)
1001 CALL cdi_bcn1(xs,ys,zs,jt,jr,skew,ktr,irad)
1002 vx1 =ktr(1,1)*rx+ktr(1,2)*ry+ktr(1,3)*rz
1003 vx2 =ktr(2,1)*rx+ktr(2,2)*ry+ktr(2,3)*rz
1004 vx3 =ktr(3,1)*rx+ktr(3
1006 a(2,ns) =a(2,ns)+(vx2+dt05*(vrg(3)*vx1-vrg(1)*vx3))*usdt1(2)
1007 a(3,ns) =a(3,ns)+(vx3+dt05*(vrg(1)*vx2-vrg(2)*vx1))*usdt1(3)
1016!||--- called by ------------------------------------------------------
1018!||
imp3_u2x ../engine/source/airbag/monv_imp0.f
1024 1 JT ,JR ,SKEW0 ,ISK ,IRAD )
1028#include "implicit_f.inc"
1032#include "param_c.inc"
1036 INTEGER NS,JT(3),JR(3),M,IRAD,ISK
1039 . X(3,*), V(3,*), VR(3,*),SKEW0(*)
1043 INTEGER I, NT,NR,ICT,,NSN,ISL(1),K
1046 . XS, YS, ,RX, RY,RZ,LRX, LRY,LRZ,RVX,RVY,RVZ,
1047 . DVX,DVY,,VVX,VVY,VVZ,KTR(3,3),SKEW(LSKEW)
1049 nt=jt(1)+jt(2)+jt(3)
1050 nr=jr(1)+jr(2)+jr(3)
1051 ict=jt(1)*4 +jt(2)*2 +jt(3)
1052 icr=jr(1)*4 +jr(2)*2 +jr(3)
1065 IF (nt>0.AND.nt<3)
THEN
1089 IF (irad==0.OR.nr>0)
THEN
1096 CALL cdi_bcn1(xs,ys,zs,jt,jr,skew,ktr,irad)
1097 v(1,ns) =v(1,ns)+ktr(1,1)*rx+ktr(1,2)*ry+ktr(1,3)*rz
1098 v(2,ns) =v(2,ns)+ktr(2,1)*rx+ktr(2,2)*ry+ktr(2,3)*rz
1099 v(3,ns) =v(3,ns)+ktr(3,1)*rx+ktr(3,2)*ry+ktr(3,3)*rz
1122#include "implicit_f.inc"
1139 . vrm(*), lsm(*), vs(*)
1146 * ANGELV, RZ(3,3), LOCALZ(3), L, LOCALX(3), LSMUNI(3),TRANS(3,3),
1147 * LOCALY(3), (3), LSMLTR(3), LSMGTR(3)
1155 l = l + lsm(i)*lsm(i)
1165 angelv = angelv + vrm(i)*vrm(i)
1167 angelv = sqrt(angelv)
1168 IF( angelv <= em20)
THEN
1174 lsmuni(i) = lsm(i)/l
1178 localz(i ) = vrm(i)/angelv
1184 l = l + localx(i)*localx(i)
1193 localx(i) = localx(i)/l
1199 trans(1,i) = localx(i)
1200 trans(2,i) = localy(i)
1201 trans(3,i) = localz(i)
1211 lsmlocal(i) = lsmlocal(i) + trans(i,j)*lsm(j)
1221 rz(1,1) = cos(angelv)
1222 rz(1,2) = sin(angelv)
1223 rz(2,1) = -sin(angelv)
1224 rz(2,2) = cos(angelv)
1233 lsmltr(i) = lsmltr(i) + rz(j,i)*lsmlocal(j)
1243 lsmgtr(i) = lsmgtr(i) + trans(j,i)*lsmltr(j)
1248 vs(i) = lsmgtr(i) - lsm(i)
1265#include "implicit_f.inc"
1273 z(1) = x(2)*y(3) - y(2)*x(3)
1274 z(2) = -x(1)*y(3) + y(1)*x(3)
1275 z(3) = x(1)*y(2) - y(1)*x(2)
1291 1 JT ,JR ,M ,SKEW ,IRAD )
1295#include "implicit_f.inc"
1299 INTEGER NSN,ISL(*),JT(3),JR(3),M,IRAD
1302 . X(3,*), (3,*), VR(3,*),SKEW(*)
1306 INTEGER I, NS ,NT,NR,ICT,ICR , J , K,
1307 . TDOF1,TDOF2,TDOF3,RDOF1,RDOF2,RDOF3
1310 . RX, RY,RZ,LRX, ,LRZ,RVX,,RVZ,
1311 . DVX,DVY,DVZ,VVX,VVY,VVZ,KTR(3,3), VLM(3),LOCALSM(3),GL0BLSM(3),
1312 . VLS(3), VRLM(3), VRLS(3),VSROT(3),VRTEMP(3)
1317 nt=jt(1)+jt(2)+jt(3)
1318 nr=jr(1)+jr(2)+jr(3)
1319 ict=jt(1)*4 +jt(2)*2 +jt(3)
1320 icr=jr(1)*4 +jr(2)*2 +jr(3)
1322 CALL select_dof(ict, skew, tdof1, tdof2, tdof3)
1323 CALL select_dof(icr, skew, rdof1, rdof2, rdof3)
1333 vlm(i) = vlm(i) + skew((i-1)*3+j)*v(j,m)
1334 vrlm(i) = vrlm(i) + skew((i-1)*3+j)*vr(j,m)
1343 gl0blsm(j) = x(j,ns) - x(j,m)
1350 localsm(j) = localsm(j) + skew((j-1)*3+k)*gl0blsm(k)
1355 vls(j) = vlm(j) * jt(j)
1356 vrls(j) = vrlm(j) * jr(j)
1360 CALL velrot(vrlm, localsm,vsrot)
1361 IF( jt(1) /= 0 ) vls(1) = vls(1) + vsrot(1)
1362 IF( jt(2) /= 0 ) vls(2) = vls(2) + vsrot(2)
1363 IF( jt(3) /= 0 ) vls(3) = vls(3) + vsrot(3)
1364 ELSE IF( (jr(1)+jr(2)+jr(3))>0)
THEN
1366 vrtemp(j) = vrlm(j) * jr(j)
1368 CALL velrot(vrtemp, localsm,vsrot)
1370 vls(j) = vls(j) + vsrot(j)
1398#include "implicit_f.inc"
1401 INTEGER ICT, J, J1, K
1419 ELSEIF (ict == 2)
THEN
1427 ELSEIF (ict == 1)
THEN
1435 ELSEIF (ict == 3)
THEN
1450 ELSEIF (ict == 5)
THEN
1465 ELSEIF (ict == 6)
THEN
1490#include "implicit_f.inc"
1491#include "param_c.inc"
1492 INTEGER ICT, NS, J, J1,
1494 . vls(3), v(3,*),skew(lskew)
1499 . SKEWINV(3,3), ARRAY1(2), ARRAY2(2,2), TEMP, SKEW1(3,3)
1502 skewinv(i,1)= skew(i)
1503 skewinv(i,2)= skew(i+3)
1504 skewinv(i,3)= skew(i+6)
1509 skew1(m,n) = skew((m-1)*3+n)
1515 v(j,ns) = one/skew1(1,j)*(vls(1)-skew1(1,j1)*v(j1,ns)
1516 . -skew1(1,k)*v(k,ns ))
1518 ELSEIF (ict == 2)
THEN
1519 v(j,ns) = one/skew1(2,j)*(vls(2)-skew1(2,j1)*v(j1,ns)
1520 . -skew1(2,k)*v(k,ns ))
1522 ELSEIF (ict == 1)
THEN
1523 v(j,ns) = one/skew1(3,j)*(vls(3)-skew1(3,j1)*v(j1,ns)
1524 . -skew1(3,k)*v(k,ns ))
1526 ELSEIF (ict == 3)
THEN
1528 array1(1) = vls(2) - skew1(2,k) * v(k,ns)
1529 array1(2) = vls(3) - skew1(3,k) * v(k,ns)
1531 temp = skew1(2,j)*skew1(3,j1) - skew1(2,j1)*skew1(3,j)
1532 array2(1,1) = skew1(3,j1)/temp
1533 array2(1,2) = -skew1(2,j1)/temp
1534 array2(2,1) = -skew1(3,j)/temp
1535 array2(2,2) = skew1(2,j)/temp
1537 v(j,ns) = array2(1,1) * array1(1) + array2(1,2) * array1(2)
1538 v(j1,ns) = array2(2,1) * array1(1) + array2(2,2) * array1(2)
1541 ELSEIF (ict == 5)
THEN
1543 array1(1) = vls(1) - skew1(1,k) * v(k,ns)
1544 array1(2) = vls(3) - skew1(3,k) * v(k,ns)
1546 temp = skew1(1,j)*skew1(3,j1) - skew1(1,j1)*skew1(3,j)
1547 array2(1,1) = skew1(3,j1)/temp
1548 array2(1,2) = -skew1(1,j1)/temp
1549 array2(2,1) = -skew1(3,j)/temp
1550 array2(2,2) = skew1(1,j)/temp
1552 v(j,ns) = array2(1,1) * array1(1) + array2(1,2) * array1(2)
1553 v(j1,ns) = array2(2,1) * array1(1) + array2(2,2) * array1(2)
1556 ELSEIF (ict == 6)
THEN
1557 array1(1) = vls(2) - skew1(2,k) * v(k,ns)
1558 array1(2) = vls(1) - skew1(1,k) * v(k,ns)
1560 temp = skew1(2,j)*skew1(1,j1) - skew1(2,j1)*skew1(1,j)
1561 array2(1,1) = skew1(1,j1)/temp
1562 array2(1,2) = -skew1(2,j1)/temp
1563 array2(2,1) = -skew1(1,j)/temp
1564 array2(2,2) = skew1(2,j)/temp
1566 v(j,ns) = array2(1,1) * array1(1) + array2(1,2) * array1(2)
1567 v(j1,ns) = array2(2,1) * array1(1) + array2(2,2) * array1(2)
1570 ELSEIF( ict == 7 )
THEN
1574 v(m,ns) = v(m,ns) + skewinv(m,n)*vls(n)
subroutine bc_imp0(icodt, icodr, iskew, ifix, ndof, iadn)
if(complex_arithmetic) id
subroutine imp_fri(num_imp, ns_imp, ne_imp, ipari, intbuf_tab, npby, lpby, itab, nrbyac, irbyac, nint2, iint2, iddl, ikc, ndof, inloc, nsrem, nsl, nbintc, intlist, x, ibfv, lj, skew, xframe, iskew, icodt, a, ud, lb, ifdis, nddl, urd, iddli, irbe3, lrbe3, frbe3, irbe2, lrbe2)
subroutine fr_u2dd(d, dr, x, ipari, intbuf_tab, ndof, a, ar, lx, ibfv, skew, xframe, irbe3, lrbe3, irbe2, lrbe2)
subroutine prerbe2(irbe2, jt, jr)
subroutine imp3_u2x(x, ipari, intbuf_tab, ndof, lx, a, ar, x_imp, numn, inl, iddl, nrb, irb, iddlm, ni2, ii2, iddlm2, nfx, ifx, nbc, ibc, nrw, irw, ibfv, skew, xframe, irbe3, lrbe3, nr3, ir3, iddlm3, r3_max, fcdi, mcdi, nspc, ispc, irbe2, lrbe2, nr2, ir2, iddlm4)
subroutine cdi_bcn1(xs, ys, zs, jt, jr, skew, ktr, irad)
subroutine rbe2v(irbe2, lrbe2, x, a, ar, v, vr, skew)
subroutine rbe2dl(nsn, isl, x, v, vr, jt, jr, m, skew)
subroutine velrot(vrm, lsm, vs)
subroutine rbe2_frd(ns, m, x, v, vr, jt, jr, skew0, isk, irad)
subroutine rbe2dl2(nsn, isl, x, v, vr, jt, jr, m, skew, irad)
subroutine dir_rbe2(j, j1, k)
subroutine rbe2v0(nsl, isl, x, a, ar, v, vr, jt, jr, m)
subroutine rbe2vl(nsn, isl, x, a, ar, v, vr, jt, jr, m, skew)
subroutine rbe2dl3(nsn, isl, x, v, vr, jt, jr, m, skew, irad)
subroutine crossproduct(x, y, z)
subroutine rbe2_impd(irbe2, lrbe2, x, d, dr, skew)
subroutine update_globv(ict, ns, vls, v, skew, j, j1, k)
subroutine rbe2d_bcl(ict, nsn, isl, m, v, skew)
subroutine rbe2d0(nsl, isl, x, v, vr, jt, jr, m, irad)
subroutine rbe2vl1(nsl, isl, x, a, ar, v, vr, jt, jr, m, skew, irad, nsl_g)
subroutine rbe2v1(nsl, isl, x, a, ar, v, vr, jt, jr, m, irad, nsl_g)
subroutine select_dof(ict, skew, j, j1, k)