47 . IGRNOD ,ISKN ,LXINTD ,IKINE ,IDDLEVEL,
48 . NOM_OPT,ITAGND ,GRNOD_UID,UNITAB,LSUBMODEL )
65#include "implicit_f.inc"
74#include "tabsiz_c.inc"
81 INTEGER IRBE3(NRBE3L,*), LRBE3(*), ITAB(*),ITABM1(*),
82 . ISKN(LISKN,*),LXINTD,
83 . iddlevel,ikine(*),itagnd(*)
84 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
86 INTEGER NOM_OPT(LNOPT1,*)
88 TYPE (GROUP_) ,
DIMENSION(NGRNOD) :: IGRNOD
94 INTEGER I, N, K, NSL, NSLT, , NUSER, NM, NI, NI_OK,
95 . ISK, ISENS, INGU, IGM, J, P,IAD,NS,NN,J6(6),JJ,II,
96 . ic,ic1,ic2,irot,isks,iads,ierr1,imodif,
97 . idir,nrb,
id,uid,sub_index,iform
99 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IKINE1
100 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ISKEW0
101 my_real,
DIMENSION(:,:),
ALLOCATABLE :: wi
102 CHARACTER(LEN=NCHARTITLE) :: TITR
103 CHARACTER(LEN=NCHARKEY) :: KEY
104 CHARACTER(LEN=NCHARFIELD) :: STRING
105 CHARACTER :: CODE*7,MESS*40
110 INTEGER USR2SYS,NODGRNR5
112 DATA mess/
'INTERPOLATION CONSTRAINT BODY '/
130 CALL my_alloc(ikine1,3*numnod)
131 CALL my_alloc(iskew0,slrbe3/2)
132 CALL my_alloc(wi,6,numnod)
136 is_available = .false.
167 . option_titr = titr,
168 . submodel_index = sub_index)
170 CALL fretitl(titr,nom_opt(lnopt1-ltitr+1,i),ltitr)
172 CALL hm_get_intv(
'dependentnode',nsl,is_available,lsubmodel)
173 CALL hm_get_intv(
'LTX',j6(1),is_available,lsubmodel)
174 CALL hm_get_intv(
'LTY',j6(2),is_available,lsubmodel)
175 CALL hm_get_intv(
'LTZ',j6(3),is_available,lsubmodel)
176 CALL hm_get_intv(
'LRX',j6(4),is_available,lsubmodel)
177 CALL hm_get_intv(
'LRY',j6(5),is_available,lsubmodel)
178 CALL hm_get_intv(
'LRZ',j6(6),is_available,lsubmodel)
180 CALL hm_get_intv(
'I_Modif',imodif,is_available,lsubmodel)
181 CALL hm_get_intv(
'Iform',iform,is_available,lsubmodel)
186 IF (imodif==0) imodif =1
192 IF (iform==0) iform =1
198 ns = usr2sys(nsl,itabm1,mess,nuser)
199 ic1=j6(1)*4 +j6(2)*2 +j6(3)
200 ic2=j6(4)*4 +j6(5)*2 +j6(6)
202 IF (ic==0) ic =7*512+7*64
204 IF(itagnd(ns)/=0)
THEN
208 . anmode=aninfo_blind_1,
229 IF (w==zero.OR.imodif==3) w=one
240 nm = igrnod(igm)%NENTITY
241 lrbe3(iad+1:iad+nm) = igrnod(igm)%ENTITY(1:nm)
246 IF ((j6(1)+j6(2)+j6(3)+j6(4)+j6(5)+j6(6))==0)
THEN
253 IF(isk==iskn(4,jj+1))
THEN
270 lrbe3(iads+iad+k)=isks
276 IF (wi(jj,ni)==zero)
THEN
288 IF(itagnd(ni)/=0)
THEN
304 irbe3(5,i) = iad-irbe3(1,i)
309 DO ni_ok = irbe3(1,i)+1,irbe3(1,i)+irbe3(5,i)
311 wi(jj,lrbe3(ni_ok)) = zero
317 IF (ipri<5)
WRITE(iout,1103)
324 IF (imodif/=2) irbe3(8,i)=4
327 WRITE(iout,1100) nuser,itab(ns),j6,nm,imodif,iform
330 WRITE(iout,1102) itab(lrbe3(iad+j)),iskew0(iad+j),
331 . (frbe3(jj,iad+j),jj=1,6)
336 WRITE(iout,1104) nuser,itab(ns),j6,nm,imodif,iform
338 lxintd = lxintd + nm/4 + 1
339 IF (iddlevel == 0)
THEN
341 CALL kinset(4096,itab(ns),ikine(ns),idir,0,
346 IF (nspmd==1) lxintd = 0
354 .
' INTERPOLATION CONSTRAINT BODY (RBE3) '/
355 .
' ---------------------- '/)
356 1100
FORMAT( 5x,
'NUMBER. . . . . . . . . . . . . ',i10
357 . /5x,
'DEPENDENT NODE . . . . . . . . .',i10
358 . /5x,
'REFERENCE DOF(Trarot). . . . . . . ',3i1,1x,3i1
359 . /5x,
'NUMBER OF INDEPENDENT NODES. . .',i10
360 . /5x,
'FLAG OF WEIGHTING MODIFICATION .',i10
361 . /5x,
'FLAG OF RBE3 FORMULATION. . . . ',i10)
363 .
' WEIGHTING FACTORS OF INDEPENDENT NODES '/
364 .
' ------------------- '/
365 .
' NODE SKEW DIR_TRA_1 DIR_TRA_2',
366 .
' DIR_TRA_3 DIR_ROT_1 DIR_ROT_2',
368 1102
FORMAT(3x,2i10,3x,6g20.13)
369 1103
FORMAT(
' RBE3_ID DEPENDENT_NODE REF_DOF #IND. IMODIF IFORM'/)
370 1104
FORMAT(3x,2i10,2x,3i1,1x,3i1,3i10)
543 SUBROUTINE rbe3chk(INRBE3 ,ILRBE3 ,NS ,XYZ ,FRBE3 ,
544 . SKEW ,NG ,IROT ,IMODIF ,WMIN ,
549#include "implicit_f.inc"
553#include "param_c.inc"
557 INTEGER INRBE3(*),ILRBE3(*),NG, NS,IROT,IMODIF,IERR,IPEN
560 . XYZ(3,*), FRBE3(6,*), SKEW(LSKEW,*),WMIN
564 INTEGER I, J, K,N, M ,NML, IAD,JJ,KG,NSNGLR,IELSUB,KDIAG
567 * TW(3,NG), RW(3,NG),
568 * FUFXLC(3,NG), FUFYLC(3,NG)
570 * mxlc(3,ng), mylc(3,ng), mzlc(3,ng),
571 * fufx(3,ng), fufy(3,ng), fufz(3,ng),
572 * mufx(3,ng), mufy(3,ng), mufz(3,ng),
573 * fumx(3,ng), fumy(3,ng), fumz(3,ng),
574 * mx(3,ng), my(3,ng), mz(3,ng),
575 * mumx(3,ng), mumy(3,ng), mumz(3,ng),
576 * flocal(3,ng,6), mlocal(3,ng,6),
577 * fbasic(3,ng,6), mbasic(3,ng,6),
578 * fdstnl(3,ng,6), mdstnl(3,ng,6),
579 * fdstnb(3,ng,6), mdstnb(3,ng,6),el(3,3,ng)
581 * denfx, denfy, denfz, denmx, denmy, denmz,
582 * refpt(3), cgmx(3), cgmy(3), cgmz(3), averef,
583 * tfufx(3), tfufy(3), tfufz(3),
584 * tmufx(3), tmufy(3), tmufz(3),
585 * tfumx(3), tfumy(3), tfumz(3),
586 * tmumx(3), tmumy(3), tmumz(3),
587 * a(6,6), c(6,6), t(3,3),smin,smax,mmax,tmax,
588 * xbar(3),rn(3),gamma(9),wi(ng),gamma_max,rndotrn,det,arm
592 CALL zero1(flocal,3*ng*6)
593 CALL zero1(mlocal,3*ng*6)
594 CALL zero1(fbasic,3*ng*6)
595 CALL zero1(mbasic,3*ng*6)
596 CALL zero1(fdstnl,3*ng*6)
597 CALL zero1(mdstnl,3*ng*6)
598 CALL zero1(fdstnb,3*ng*6)
599 CALL zero1(mdstnb,3*ng*6)
615 rw(i,k) = frbe3(i+3,k)
623 IF (ng == 2.AND.irot==0)
THEN
634 el(i,1,k) = skew(i,ielsub)
635 el(i,2,k) = skew(i+3,ielsub)
636 el(i,3,k) = skew(i+6,ielsub)
656 denfx = denfx + tw(i,k)*el(i,1,k)**2
657 denfy = denfy + tw(i,k)*el(i,2,k)**2
658 denfz = denfz + tw(i,k)*el(i,3,k)**2
661 denfx = denfx + tw(1,k)
662 denfy = denfy + tw(2,k)
663 denfz = denfz + tw(3,k)
666 averef = averef + sqrt( (xyz(1,kg) - refpt(1))**2 +
667 * (xyz(2,kg) - refpt(2))**2 +
668 * (xyz(3,kg) - refpt(3))**2 )
671 IF (abs(denfx) <= em20)
THEN
675 IF (abs(denfy) <= em20)
THEN
679 IF (abs(denfz) <= em20)
THEN
682 IF (ierr > 0)
GOTO 999
684 IF (averef == zero) averef = 1.0d0
686 IF (imodif==4.OR.ipen>0)
THEN
688 frbe3(1,k) = frbe3(1,k)/denfx
689 frbe3(2,k) = frbe3(2,k)/denfy
690 frbe3(3,k) = frbe3(3,k)/denfz
691 frbe3(4,k) = frbe3(4,k)/denfx
692 frbe3(5,k) = frbe3(5,k)/denfy
693 frbe3(6,k) = frbe3(6,k)/denfz
701 xbar(1:3) = xbar(1:3) + wi(k)*xyz(1:3,kg)
704 rn(1:3) = refpt(1:3)-xbar(1:3)
705 arm = rn(1)*rn(1)+rn(2)*rn(2)+rn(3)*rn(3)
709 rn(1:3) = xyz(1:3,kg)-xbar(1:3)
710 rndotrn =
max(rndotrn,rn(1)*rn(1)+rn(2)*rn(2)+rn(3)*rn(3))
712 IF (arm/rndotrn < em06) ipen =-2
718 rn(1:3) = xyz(1:3,kg)-xbar(1:3)
719 rndotrn = rn(1)*rn(1)+rn(2)*rn(2)+rn(3)*rn(3)
721 gamma(1) = gamma(1)+wi(k)*(rndotrn-rn(1)*rn(1))
722 gamma(2) = gamma(2)+wi(k)*( -rn(2)*rn(1))
723 gamma(3) = gamma(3)+wi(k)*( -rn(3)*rn(1))
724 gamma(4) = gamma(4)+wi(k)*( -rn(1)*rn(2))
725 gamma(5) = gamma(5)+wi(k)*(rndotrn-rn(2)*rn(2))
726 gamma(6) = gamma(6)+wi(k)*( -rn(3)*rn(2))
727 gamma(7) = gamma(7)+wi(k)*( -rn(1)*rn(3))
728 gamma(8) = gamma(8)+wi(k)*( -rn(2)*rn(3))
729 gamma(9) = gamma(9)+wi(k)*(rndotrn-rn(3)*rn(3))
731 det = (gamma(1)*(gamma(5)*gamma(9)-gamma(6)*gamma(8))-
732 * gamma(2)*(gamma(4)*gamma(9)-gamma(6)*gamma(7))+
733 * gamma(3)*(gamma(4)*gamma(8)-gamma(5)*gamma(7)))
735 gamma_max =
max(em20,gamma(1),gamma(5),gamma(9))
736 IF(abs(det/(gamma_max*gamma_max*gamma_max)) < em6) ierr = 400
739 IF (ierr > 0)
GOTO 999
753 cgmx(2) = cgmx(2) + tw(i,k)*el(i,3,k)**2*xyz(2,kg)
754 cgmx(3) = cgmx(3) + tw(i,k)*el(i,2,k)**2*xyz(3,kg)
758 cgmy(3) = cgmy(3) + tw(i,k)*el(i,1,k)**2*xyz(3,kg)
759 cgmy(1) = cgmy(1) + tw(i,k)*el(i,3,k)**2*xyz(1,kg)
763 cgmz(1) = cgmz(1) + tw(i,k)*el(i,2,k)**2*xyz(1,kg)
764 cgmz(2) = cgmz(2) + tw(i,k)*el(i,1,k)**2*xyz(2,kg)
768 cgmx(2) = cgmx(2) + tw(3,k)*xyz(2,kg)
769 cgmx(3) = cgmx(3) + tw(2,k)*xyz(3,kg)
771 cgmy(3) = cgmy(3) + tw(1,k)*xyz(3,kg)
772 cgmy(1) = cgmy(1) + tw(3,k)*xyz(1,kg)
774 cgmz(1) = cgmz(1) + tw(2,k)*xyz(1,kg)
775 cgmz(2) = cgmz(2) + tw(1,k)*xyz(2,kg)
778 cgmx(2) = cgmx(2)/denfz
779 cgmx(3) = cgmx(3)/denfy
781 cgmy(3) = cgmy(3)/denfx
782 cgmy(1) = cgmy(1)/denfz
784 cgmz(1) = cgmz(1)/denfy
785 cgmz(2) = cgmz(2)/denfx
805 denmx = denmx + rw(i,k)*el(i,1,k)**2*averef**2 +
806 * tw(i,k)*( el(i,3,k)*(xyz(2,kg) - cgmx(2)) -
807 * el(i,2,k)*(xyz(3,kg) - cgmx(3))
809 denmy = denmy + rw(i,k)*el(i,2,k)**2*averef**2 +
810 * tw(i,k)*( el(i,1,k)*(xyz(3,kg) - cgmy(3)) -
811 * el(i,3,k)*(xyz(1,kg) - cgmy(1))
813 denmz = denmz + rw(i,k)*el(i,3,k)**2*averef**2 +
814 * tw(i,k)*( el(i,2,k)*(xyz(1,kg) - cgmz(1)) -
815 * el(i,1,k)*(xyz(2,kg) - cgmz(2))
819 denmx = denmx + rw(1,k)*averef**2 +
820 * tw(2,k)*(xyz(3,kg) - cgmx(3))**2 +
821 * tw(3,k)*(xyz(2,kg) - cgmx(2))**2
822 denmy = denmy + rw(2,k)*averef**2 +
823 * tw(1,k)*(xyz(3,kg) - cgmy(3))**2 +
824 * tw(3,k)*(xyz(1,kg) - cgmy(1))**2
825 denmz = denmz + rw(3,k)*averef**2 +
826 * tw(2,k)*(xyz(1,kg) - cgmz(1))**2 +
827 * tw(1,k)*(xyz(2,kg) - cgmz(2))**2
835 IF (abs(denmx) <= em20)
THEN
839 IF (abs(denmy) <= em20)
THEN
843 IF (abs(denmz) <= em20)
THEN
847 smin =
min(abs(denmx),abs(denmy),abs(denmz))
848 smax =
max(abs(denmx),abs(denmy),abs(denmz))
850 IF (ierr > 0)
GOTO 999
852 IF (irot==0 .AND.(smax/smin)>thirty) ierr = -100
856 CALL rbe3uf(inrbe3,ilrbe3,el,tw,xyz,refpt,
857 * fufxlc,fufylc,fufzlc,fufx,fufy,fufz
858 * tfufx,tfufy,tfufz,tmufx,tmufy,tmufz,
859 * denfx,denfy,denfz,ng)
865 CALL rbe3um(inrbe3,ilrbe3,el,tw,rw,xyz,refpt,cgmx,cgmy,cgmz,
866 * fumxlc,fumylc,fumzlc,mxlc,mylc,mzlc
867 * fumx,fumy,fumz,mx,my,mz,mumx,mumy,mumz,
868 * tfumx,tfumy,tfumz,tmumx,tmumy,tmumz,
869 * averef,denmx,denmy,denmz,ng,irot )
911 IF (nsnglr /= 0)
THEN
916 CALL wrrinf(
'C(i,1)=',c(1,1),3)
917 CALL wrrinf(
'C(i,2)=',c(1,2),3)
918 CALL wrrinf(
'C(i,3)=',c(1,3),3)
920 IF (kdiag==0.AND.ierr==0)
RETURN
927 flocal(i,k,j) = c(1,j)*fufxlc(i,k) + c(2,j)*fufylc(i,k) +
928 * c(3,j)*fufzlc(i,k) + c(4,j)*fumxlc(i,k) +
929 * c(5,j)*fumylc(i,k) + c(6,j)*fumzlc(i,k)
930 mlocal(i,k,j) = c(4,j)*mxlc(i,k) + c(5,j)*mylc(i,k) +
932 fbasic(i,k,j) = c(1,j)*fufx(i,k) + c(2,j)*fufy(i,k) +
933 * c(3,j)*fufz(i,k) + c(4,j)*fumx(i,k) +
934 * c(5,j)*fumy(i,k) + c(6,j)*fumz(i,k)
935 mbasic(i,k,j) = c(4,j)*mx(i,k) + c(5,j)*my(i,k) +
947 fdstnl(i,k,j) = flocal(i,k,j)
948 mdstnl(i,k,j) = mlocal(i,k,j)
949 fdstnb(i,k,j) = fbasic(i,k,j)
950 mdstnb(i,k,j) = mbasic(i,k,j)
960 IF (mmax<abs(fdstnb(i,k,j))) mmax = abs(fdstnb(i,k,j))
971 IF (tmax<tw(i,k)) tmax=tw(i,k)
977 frbe3(1,k) =
max(wmin,frbe3(1,k))
978 frbe3(2,k) =
max(wmin,frbe3(2,k))
979 frbe3(3,k) =
max(wmin,frbe3(3,k))
992 CALL wrrinf(
'TRAN_WGHTS',tw,3*ng)
993 CALL wrrinf(
'ROT_WGHTS',rw,3*ng)
994 CALL wrrinf(
'CGMX',cgmx,3)
995 CALL wrrinf(
'CGMY',cgmy,3)
996 CALL wrrinf(
'CGMZ',cgmz,3)
997 CALL wrrinf(
'DENFX',denfx,1)
998 CALL wrrinf(
'DENFY',denfy,1)
999 CALL wrrinf(
'DENFZ',denfz,1)
1000 CALL wrrinf(
'DENMX',denmx,1)
1001 CALL wrrinf(
'DENMY',denmy,1)
1002 CALL wrrinf(
'DENMZ',denmz,1)
1003 CALL wrrinf(
'AVEREF',averef,1)
1005 IF (kdiag == 9.or.ierr/=0)
THEN
1006 CALL wrrinf(
'FDSTNB_ULFX@REF',fdstnb(1,1,1),3*ng)
1007 CALL wrrinf(
'FDSTNB_ULFY@REF',fdstnb(1,1,2),3*ng)
1008 CALL wrrinf(
'FDSTNB_ULFZ@REF',fdstnb(1,1,3),3*ng)
1009 CALL wrrinf(
'FDSTNB_ULMX@REF',fdstnb(1,1,4),3*ng)
1010 CALL wrrinf(
'FDSTNB_ULMY@REF',fdstnb(1,1,5),3*ng)
1011 CALL wrrinf(
'FDSTNB_ULMZ@REF',fdstnb(1,1,6),3*ng)
1012 CALL wrrinf(
'MDSTNB_ULFX@REF',mdstnb(1,1,1),3*ng)
1013 CALL wrrinf(
'MDSTNB_ULFY@REF',mdstnb(1,1,2),3*ng)
1014 CALL wrrinf(
'MDSTNB_ULFZ@REF',mdstnb(1,1,3),3*ng)
1015 CALL wrrinf(
'MDSTNB_ULMX@REF',mdstnb(1,1,4),3*ng)
1016 CALL wrrinf(
'MDSTNB_ULMY@REF',mdstnb(1,1,5),3*ng)
1017 CALL wrrinf(
'MDSTNB_ULMZ@REF',mdstnb(1,1,6),3*ng)
1019 IF (kdiag >= 30)
THEN
1020 CALL wrrinf(
'FDSTNL_ULFX@REF',fdstnl(1,1,1),3*ng)
1021 CALL wrrinf(
'FDSTNL_ULFY@REF',fdstnl(1,1,2),3*ng)
1022 CALL wrrinf(
'FDSTNL_ULFZ@REF',fdstnl(1,1,3),3*ng)
1023 CALL wrrinf(
'FDSTNL_ULMX@REF',fdstnl(1,1,4),3*ng)
1024 CALL wrrinf(
'FDSTNL_ULMY@REF',fdstnl(1,1,5),3*ng)
1025 CALL wrrinf(
'FDSTNL_ULMZ@REF',fdstnl(1,1,6),3*ng)
1026 CALL wrrinf(
'MDSTNL_ULFX@REF',mdstnl(1,1,1),3*ng)
1027 CALL wrrinf(
'MDSTNL_ULFY@REF',mdstnl(1,1,2),3*ng)
1028 CALL wrrinf(
'MDSTNL_ULFZ@REF',mdstnl(1,1,3),3*ng)
1029 CALL wrrinf(
'MDSTNL_ULMX@REF',mdstnl(1,1,4),3*ng)
1030 CALL wrrinf(
'MDSTNL_ULMY@REF',mdstnl(1,1,5),3*ng)
1031 CALL wrrinf(
'MDSTNL_ULMZ@REF',mdstnl(1,1,6),3*ng)
1047 SUBROUTINE rbe3uf(INRBE3,ILRBE3,EL,TW,XYZ,REFPT,
1048 * FUFXLC,FUFYLC,FUFZLC,
1049 * FUFX,FUFY,FUFZ,MUFX,MUFY,MUFZ,
1050 * TFUFX,TFUFY,TFUFZ,TMUFX,TMUFY,TMUFZ,
1051 * DENFX,DENFY,DENFZ,NG)
1055#include "implicit_f.inc"
1057 INTEGER (NG), ILRBE3(NG)
1059 * EL(3,3,*),TW(3,NG), XYZ(3,*), REFPT(3),
1060 * FUFXLC(3,NG), FUFYLC(3,NG), FUFZLC(3,NG),
1061 * FUFX(3,), FUFY(3,NG), FUFZ(3,NG),
1062 * MUFX(3,NG), MUFY(3,NG), MUFZ(3,NG),
1063 * TFUFX(3), TFUFY(3), TFUFZ(3),
1064 * TMUFX(3), TMUFY(3), TMUFZ(3)
1066 * denfx, denfy, denfz,xarm, yarm, zarm
1067 INTEGER I, J, K, KG, IELSUB
1071 CALL ZERO1(FUFX,3*NG)
1072 CALL ZERO1(FUFY,3*NG)
1073 CALL ZERO1(FUFZ,3*NG)
1088 IF (ielsub > 0)
THEN
1094 fufxlc(i,k) = tw(i,k)*el(i,1,k)/denfx
1095 fufylc(i,k) = tw(i,k)*el(i,2,k)/denfy
1096 fufzlc(i,k) = tw(i,k)*el(i,3,k)/denfz
1103 fufx(j,k) = fufx(j,k) + fufxlc(i,k)*el(i,j,k)
1104 fufy(j,k) = fufy(j,k) + fufylc(i,k)*el(i,j,k)
1105 fufz(j,k) = fufz(j,k) + fufzlc(i,k)*el(i,j,k)
1110 fufxlc(1,k) = tw(1,k)/denfx
1111 fufylc(2,k) = tw(2,k)/denfy
1112 fufzlc(3,k) = tw(3,k)/denfz
1113 fufx(1,k) = fufxlc(1,k)
1114 fufy(2,k) = fufylc(2,k)
1115 fufz(3,k) = fufzlc(3,k)
1120 xarm = xyz(1,kg) - refpt(1)
1121 yarm = xyz(2,kg) - refpt(2)
1122 zarm = xyz(3,kg) - refpt(3)
1126 mufx(1,k) = yarm*fufx(3,k) - zarm*fufx(2,k)
1127 mufx(2,k) = zarm*fufx(1,k) - xarm*fufx(3,k)
1128 mufx(3,k) = xarm*fufx(2,k) - yarm*fufx(1,k)
1132 mufy(1,k) = yarm*fufy(3,k) - zarm*fufy(2,k)
1133 mufy(2,k) = zarm*fufy(1,k) - xarm*fufy(3,k)
1134 mufy(3,k) = xarm*fufy(2,k) - yarm*fufy(1,k)
1138 mufz(1,k) = yarm*fufz(3,k) - zarm*fufz(2,k)
1139 mufz(2,k) = zarm*fufz(1,k) - xarm*fufz(3,k)
1140 mufz(3,k) = xarm*fufz(2,k) - yarm*fufz(1,k)
1145 tfufx(j) = tfufx(j) + fufx(j,k)
1146 tfufy(j) = tfufy(j) + fufy(j,k)
1147 tfufz(j) = tfufz(j) + fufz(j,k)
1148 tmufx(j) = tmufx(j) + mufx(j,k)
1149 tmufy(j) = tmufy(j) + mufy(j,k)
1150 tmufz(j) = tmufz(j) + mufz(j,k)
1166 SUBROUTINE rbe3um(INRBE3,ILRBE3,EL,TW,RW,XYZ,REFPT,CGMX,CGMY,CGMZ,
1167 * FUMXLC,FUMYLC,FUMZLC,MXLC,MYLC,MZLC,
1168 * FUMX,FUMY,FUMZ,MX,MY,MZ,MUMX,MUMY,MUMZ,
1169 * TFUMX,TFUMY,TFUMZ,TMUMX,TMUMY,TMUMZ,
1170 * AVEREF,DENMX,DENMY,DENMZ,NG ,IROT)
1174#include "implicit_f.inc"
1176 INTEGER INRBE3(NG), ILRBE3(NG)
1178 * EL(3,3,*),TW(3,NG), RW(3,NG), XYZ(3,*),
1179 * refpt(3), cgmx(3), cgmy(3), cgmz(3),
1180 * fumxlc(3,ng), fumylc(3,ng), fumzlc(3,ng),
1181 * mxlc(3,ng), mylc(3,ng), mzlc(3,ng),
1182 * fumx(3,ng), fumy(3,ng), fumz(3,ng),
1183 * mx(3,ng), my(3,ng), mz(3,ng),
1184 * mumx(3,ng), mumy(3,ng), mumz(3,ng),
1185 * tfumx(3), tfumy(3), tfumz(3),
1186 * tmumx(3), tmumy(3), tmumz(3)
1188 * averef, denmx, denmy, denmz,xarm, yarm, zarm
1189 INTEGER I, J, K, KG, IELSUB
1193 CALL zero1(fumx,3*ng)
1194 CALL zero1(fumy,3*ng)
1195 CALL zero1(fumz,3*ng)
1213 IF (ielsub > 0)
THEN
1219 fumxlc(i,k) = tw(i,k)*
1220 * ( el(i,3,k)*(xyz(2,kg) - cgmx(2)) -
1221 * el(i,2,k)*(xyz(3,kg) - cgmx(3))
1223 fumylc(i,k) = tw(i,k)*
1224 * ( el(i,1,k)*(xyz(3,kg) - cgmy(3)) -
1225 * el(i,3,k)*(xyz(1,kg) - cgmy(1))
1227 fumzlc(i,k) = tw(i,k)*
1228 * ( el(i,2,k)*(xyz(1,kg) - cgmz(1)) -
1229 * el(i,1,k)*(xyz(2,kg) - cgmz(2))
1237 fumx(j,k) = fumx(j,k) + fumxlc(i,k)*el(i,j,k)
1238 fumy(j,k) = fumy(j,k) + fumylc(i,k)*el(i,j,k)
1239 fumz(j,k) = fumz(j,k) + fumzlc(i,k)*el(i,j,k)
1244 fumxlc(2,k) = -tw(2,k)*(xyz(3,kg) - cgmx(3))/denmx
1245 fumxlc(3,k) = tw(3,k)*(xyz(2,kg) - cgmx(2))/denmx
1246 fumylc(1,k) = tw(1,k)*(xyz(3,kg) - cgmy(3))/denmy
1247 fumylc(3,k) = -tw(3,k)*(xyz(1,kg) - cgmy(1))/denmy
1248 fumzlc(1,k) = -tw(1,k)*(xyz(2,kg) - cgmz(2))/denmz
1249 fumzlc(2,k) = tw(2,k)*(xyz(1,kg) - cgmz(1))/denmz
1251 fumx(2,k) = fumxlc(2,k)
1252 fumx(3,k) = fumxlc(3,k)
1253 fumy(1,k) = fumylc(1,k)
1254 fumy(3,k) = fumylc(3,k)
1255 fumz(1,k) = fumzlc(1,k)
1256 fumz(2,k) = fumzlc(2,k)
1261 xarm = xyz(1,kg) - refpt(1)
1262 yarm = xyz(2,kg) - refpt(2)
1263 zarm = xyz(3,kg) - refpt(3)
1265 mumx(1,k) = yarm*fumx(3,k) - zarm*fumx(2,k)
1266 mumx(2,k) = zarm*fumx(1,k) - xarm*fumx(3,k)
1267 mumx(3,k) = xarm*fumx(2,k) - yarm*fumx(1,k)
1271 mumy(1,k) = yarm*fumy(3,k) - zarm*fumy(2,k)
1272 mumy(2,k) = zarm*fumy(1,k) - xarm*fumy(3,k)
1273 mumy(3,k) = xarm*fumy(2,k) - yarm*fumy(1,k)
1277 mumz(1,k) = yarm*fumz(3,k) - zarm*fumz(2,k)
1278 mumz(2,k) = zarm*fumz(1,k) - xarm*fumz(3,k)
1279 mumz(3,k) = xarm*fumz(2,k) - yarm*fumz(1
1287 IF (ielsub > 0)
THEN
1293 mxlc(i,k) = averef**2*rw(i,k)*el(i,1,k)/denmx
1294 mylc(i,k) = averef**2*rw(i,k)*el(i,2,k)/denmy
1295 mzlc(i,k) = averef**2*rw(i,k)*el(i,3,k)/denmz
1302 mx(j,k) = mx(j,k) + mxlc(i,k)*el(i,j,k)
1303 my(j,k) = my(j,k) + mylc(i,k)*el(i,j,k)
1304 mz(j,k) = mz(j,k) + mzlc(i,k)*el(i,j,k)
1309 mxlc(1,k) = averef**2*rw(1,k)/denmx
1310 mylc(2,k) = averef**2*rw(2,k)/denmy
1311 mzlc(3,k) = averef**2*rw(3,k)/denmz
1319 mumx(j,k) = mumx(j,k) + mx(j,k)
1320 mumy(j,k) = mumy(j,k) + my(j,k)
1321 mumz(j,k) = mumz(j,k) + mz(j,k)
1332 tfumx(j) = tfumx(j) + fumx(j,k)
1333 tfumy(j) = tfumy(j) + fumy(j,k)
1334 tfumz(j) = tfumz(j) + fumz(j,k)
1335 tmumx(j) = tmumx(j) + mumx(j,k)
1336 tmumy(j) = tmumy(j) + mumy(j,k)
1337 tmumz(j) = tmumz(j) + mumz(j,k)