46 SUBROUTINE rbe3t1(RBE3 ,NODES ,SKEW ,
48 * ADI ,H3D_DATA , DT1 ,
56 use rbe3pen_init_mod,
only: rbe3pen_init
60#include "implicit_f.inc"
67#include "tabsiz_c.inc"
79 INTEGER,
INTENT(IN) ::
80 TYPE (RBE3_),
INTENT(INOUT) :: RBE3
81 TYPE (H3D_DATABASE) :: H3D_DATA
82 TYPE(nodal_arrays_),
INTENT(INOUT) :: NODES
86 INTEGER I, J, N, MAX_M,JT(3,NRBE3),JR(3,NRBE3),IERR,NMT,
87 . IADA,IADMS,IADFN,IADAR,IADIN,IADFR,IADM0,IADI0,IADL,
88 . IPA,IPMS,IPFN,IPAR,IPIN,IPFR,NMP,IADLP,NS,NML,,
89 . iadlp1,iadm1,iadi1,nmt0,iadmp(slrbe3/2),iml(slrbe3/2),ipen
94 CALL prerbe3(rbe3%IRBE3 ,max_m , irotg_loc,jt ,jr )
96 icom = rbe3%mpi%IAD_RBE3(nspmd+1)-rbe3%mpi%IAD_RBE3(1)
99 IF (ncycle==0)
CALL rbe3pen_init(nodes%X,nodes%MS,nodes%IN,nodes%STIFN ,nodes%STIFR,numnod,rbe3,tt,impl_s)
100 CALL prerbe3p(rbe3%IRBE3 ,rbe3%LRBE3 ,iadmp ,iml , nmt )
104 IF (rbe3%IROTG>0)
THEN
115 CALL zero1(rbe3%RRBE3,iadl)
116 CALL rbe3f(rbe3%IRBE3 ,rbe3%LRBE3 ,nodes%X ,nodes%A ,nodes%AR ,
117 1 nodes%MS ,nodes%IN ,rbe3%FRBE3,skew ,nodes%WEIGHT,
118 2 nodes%STIFN ,nodes%STIFR ,jt ,jr ,rbe3%IROTG ,
119 3 max_m ,rbe3%RRBE3(iada),rbe3%RRBE3(iadar) ,rbe3%RRBE3(iadms),
120 4 rbe3%RRBE3(iadin),rbe3%RRBE3(iadfn),rbe3%RRBE3(iadfr),nmt0 ,
121 5 iadmp ,rbe3%pen,nodes%V,nodes%VR,nmt ,dt1 ,iroddl )
123 IF (nspmd>1.AND.iparit==0)
THEN
124 CALL rbe3poff(rbe3%IRBE3 ,rbe3%LRBE3 ,nodes%A ,nodes%MS ,nodes%WEIGHT,
125 1 nodes%AR ,nodes%IN ,nodes%STIFN,nodes%STIFR )
132 IF (rbe3%IROTG>0)
THEN
147 IF (rbe3%IROTG>0)
THEN
148 CALL foat_to_6_float(1 ,nmt*3 ,rbe3%RRBE3(iadar) ,rbe3%RRBE3_PON(ipar))
154 . rbe3%RRBE3_PON(ipa),rbe3%RRBE3_PON(ipar),rbe3%RRBE3_PON(ipms),rbe3%RRBE3_PON(ipin),
155 . rbe3%RRBE3_PON(ipfn),rbe3%RRBE3_PON(ipfr),rbe3%mpi%FR_RBE3MP,rbe3%mpi%IAD_RBE3 ,
156 . rbe3%mpi%IAD_RBE3(nspmd+1),rbe3%irotg_sz,rbe3%IROTG)
161 CALL asp2_rbe3(rbe3%IRBE3 ,rbe3%LRBE3 ,nodes%A ,nodes%AR ,nodes%MS ,
162 1 nodes%IN,nodes%WEIGHT,nodes%STIFN ,nodes%STIFR ,rbe3%RRBE3_PON(ipa),
163 2 rbe3%RRBE3_PON(ipar),rbe3%RRBE3_PON(ipms),rbe3%RRBE3_PON(ipin),
164 3 rbe3%RRBE3_PON(ipfn),rbe3%RRBE3_PON(ipfr),nmt ,iml ,rbe3%IROTG)
167 CALL ass_rbe3(rbe3%IRBE3 ,rbe3%LRBE3 ,nodes%A ,nodes%AR ,nodes%MS ,
168 1 nodes%IN ,nodes%WEIGHT,nodes%STIFN ,nodes%STIFR ,rbe3%RRBE3(iada),
169 2 rbe3%RRBE3(iadar) ,rbe3%RRBE3(iadms), rbe3%RRBE3(iadin),
170 3 rbe3%RRBE3(iadfn) ,rbe3%RRBE3(iadfr),nmt ,iml ,rbe3%IROTG)
171 IF (iparit==0.AND.icom>0)
THEN
173 . nodes%A ,nodes%AR ,nodes%MS ,nodes%IN ,nodes%STIFN,
174 . nodes%STIFR,rbe3%mpi%FR_RBE3 ,rbe3%mpi%IAD_RBE3 ,rbe3%mpi%IAD_RBE3(nspmd+1),rbe3%irotg_sz,
182 CALL dmi_rbe3(nmt ,rbe3%LRBE3 ,rbe3%FRBE3(iadm0),rbe3%FRBE3(iadi0),
183 1 rbe3%RRBE3(iadms) ,rbe3%RRBE3(iadin) ,dmast ,adm ,
184 2 dinert,adi ,rbe3%IROTG ,rbe3%IRBE3 ,nodes%MS ,
185 3 nodes%IN ,nodes%WEIGHT,iadmp ,h3d_data)
192 ipen= rbe3%IRBE3(9,n)
193 IF(ns/=0.AND.ipen<=0)
THEN
194 IF (nodes%WEIGHT(ns)/=0)
THEN
196 IF(jt(j,n)/=0)nodes%A(j,ns)=zero
274 SUBROUTINE rbe3f(IRBE3 ,LRBE3 ,X ,A ,AR ,
275 1 MS ,IN ,FRBE3,SKEW ,WEIGHT,
276 2 STIFN ,STIFR ,JT ,JR ,IROTG ,
277 3 MAX_M ,AM ,ARM ,MSM ,INM ,
278 4 STIFNM,STIFRM,NMT0 ,IADMP ,PEN ,
279 5 V ,VR ,NMT ,DT1 ,IRODDL)
284 USE rbe3f_pen_mod,
only : rbe3f_pen
288#include "implicit_f.inc"
292#include "com04_c.inc"
293#include "param_c.inc"
297 INTEGER IRBE3(NRBE3L,*),LRBE3(*),WEIGHT(*)
298 INTEGER MAX_M,IROTG,JT(3,*),JR(3,*),NMT0,IADMP(*)
299 INTEGER,
INTENT(IN) :: NMT
300 INTEGER,
INTENT(IN) :: IRODDL
303 . X(3,*), A(3,*), AR(3,*), MS(*), IN(*), FRBE3(*),SKEW(*),
304 . STIFN(*) ,STIFR(*), AM(3,*), ARM(3,*), MSM(*), INM(*),
305 . STIFNM(*) ,STIFRM(*), V(3,*), VR(3,*)
306 my_real,
INTENT(IN) :: dt1
307 TYPE (RBE3_pen),
INTENT(INOUT) :: PEN
311 INTEGER I, J, N, NS ,NML, IAD,JJ,IROT,IADS,NM,NN,K,IMOD,IADF,
315 . fns(3),mns(3),mss(3),ins(3),stn(3),str(3),fsum,msum,
316 . fmax,smax,mmax,sfd,smd,f2max
318 .
DIMENSION(:,:,:),
ALLOCATABLE :: fdstnb ,mdstnb
323 ALLOCATE(fdstnb(3,6,max_m))
324 IF (irotg>0)
ALLOCATE(mdstnb(3,6,max_m))
333 IF (ns==0.OR.ipen>0) cycle
334 IF (weight(ns)==1)
THEN
335 CALL rbe3cl(lrbe3(iad+1),lrbe3(iads+iad+1),ns ,x ,
336 . frbe3(6*iad+1),skew ,nml ,irot ,fdstnb ,
337 . mdstnb ,irbe3(2,n))
339 nn = jt(j,n)*weight(ns)
342 stn(j) = stifn(ns)*nn
346 CALL mfac_rbe3(fdstnb,mdstnb,nml ,irotg,sfd ,smd)
350 fsum = fdstnb(j,1,i)+fdstnb(j,2,i)+fdstnb(j,3,i)
351 msm(k) = msm(k)+abs(fsum)*mss(j
354 ELSEIF (imod ==4)
THEN
359 msm(k) = msm(k)+frbe3(iadf+j)*mss(j)
366 am(1,k) = am(1,k)+fdstnb(1,j,i)*fns(j)
367 am(2,k) = am(2,k)+fdstnb(2,j,i)*fns(j)
368 am(3,k) = am(3,k)+fdstnb
373 fmax=abs(fdstnb(j,1,i))+abs(fdstnb(j,2,i))+abs(fdstnb(j,3,i))
374 f2max=fdstnb(j,1,i)*fdstnb(j,1,i)+fdstnb(j,2,i)*fdstnb(j,2,i)+
375 . fdstnb(j,3,i)*fdstnb(j,3,i)
376 smax =
max(smax,
max(fmax,f2max)*stn(j))
378 stifnm(k) = stifnm(k)+smax
380 IF ((jr(1,n)+jr(2,n)+jr(3,n))>0)
THEN
382 nn = jr(j,n)*weight(ns)
385 str(j) = stifr(ns)*nn
390 am(1,k) = am(1,k)+fdstnb(1,j+3,i)*mns(j)
391 am(2,k) = am(2,k)+fdstnb(2,j+3,i)*mns(j)
392 am(3,k) = am(3,k)+fdstnb(3,j+3,i)*mns(j)
397 fsum = fdstnb(j,4,i)+fdstnb(j,5,i)+fdstnb(j,6,i)
398 msm(k) =msm(k)+abs(fsum)*ins(j)
399 fmax=abs(fdstnb(j,4,i))+abs(fdstnb(j,5,i))+abs(fdstnb(j,6,i))
400 f2max=fdstnb(j,4,i)*fdstnb(j,4,i)+fdstnb(j,5,i)*fdstnb(j,5,i)+
401 . fdstnb(j,6,i)*fdstnb(j,6,i)
402 smax =
max(smax,
max(fmax,f2max)*str(j))
404 stifnm(k) = stifnm(k)+smax
411 arm(1,k) = arm(1,k)+mdstnb(1,j,i)*fns(j)
412 arm(2,k) = arm(2,k)+mdstnb(2,j,i)*fns(j)
413 arm(3,k) = arm(3,k)+mdstnb(3,j,i)*fns(j)
418 msum = mdstnb(j,1,i)+mdstnb(j,2,i)+mdstnb(j,3,i)
419 IF (imod /=4) inm(k) = inm(k)+abs(msum)*mss(j)
420 mmax=abs(mdstnb(j,1,i))+abs(mdstnb(j,2,i))+abs(mdstnb(j,3,i))
421 smax =
max(smax,mmax*stn(j))
423 stifrm(k) = stifrm(k)+smax
425 IF ((jr(1,n)+jr(2,n)+jr(3,n))>0)
THEN
430 msum = mdstnb(j,4,i)+mdstnb(j,5,i)+mdstnb(j,6,i)
431 inm(k) = inm(k)+abs(msum)*ins(j)*smd
434 ELSEIF (imod ==4)
THEN
439 inm(k) = inm(k)+frbe3(iadf+j+3)*ins(j)
446 arm(1,k) = arm(1,k)+mdstnb(1,j+3,i)*mns(j)
447 arm(2,k) = arm(2,k)+mdstnb(2,j+3,i)*mns(j)
448 arm(3,k) = arm(3,k)+mdstnb(3,j+3,i)*mns(j)
452 mmax=abs(mdstnb(j,4,i))+abs(mdstnb(j,5,i))+abs(mdstnb(j,6,i))
453 smax =
max(smax,mmax*str(j))
455 stifrm(k) = stifrm(k)+smax
461 IF ((jr(1,n)+jr(2,n)+jr(3,n))>0) stifr(ns) = em20
474 IF (ns==0.OR.ipen<=0) cycle
475 IF (weight(ns)==1)
THEN
478 . ns ,nmt0 ,numnod ,nmt ,
479 . nml ,lrbe3(iad+1),lrbe3(iads+iad+1),iadmp(iad+1),
481 . stifn ,stifr ,stifnm ,stifrm
482 . v ,vr ,frbe3(6*iad+1),x ,
483 . lskew ,numskw ,skew ,
484 . pen%RRBE3PEN_F(1,n_p) ,pen%RRBE3PEN_STF(1,n_p) ,
485 . pen%RRBE3PEN_FAC(n_p) ,pen%RRBE3PEN_VI(n_p) ,
486 . pen%RRBE3PEN_M(1,n_p) ,dt1 ,in
492 IF (irotg>0)
DEALLOCATE(mdstnb)
502 1 IN ,WEIGHT,STIFN ,STIFR ,DA ,
503 2 DAR ,DMS ,DIN ,DSTIFN,DSTIFR,
508#include "implicit_f.inc"
512#include "com04_c.inc"
513#include "param_c.inc"
517 INTEGER IRBE3(NRBE3L,*),LRBE3(*),WEIGHT(*),NMT ,IML(*),IROTG
520 . A(3,*), AR(3,*), MS(*), IN(*),
521 . STIFN(*) ,STIFR(*), DA(3,*), DAR(3,*), DMS(*), DIN(*),
522 . DSTIFN(*) ,DSTIFR(*)
526 INTEGER I, J, N, NS ,NML, IAD,JJ,IROT,M,IPEN
529#include "vectorize.inc"
532 a(1,m) = a(1,m) + da(1,i)
533 a(2,m) = a(2,m) + da(2,i)
534 a(3,m) = a(3,m) + da(3,i)
535 ms(m) = ms(m) + dms(i)
536 stifn(m)= stifn(m) + dstifn(i)
541 ar(1,m) = ar(1,m) + dar(1,i)
542 ar(2,m) = ar(2,m) + dar(2,i)
543 ar(3,m) = ar(3,m) + dar(3,i)
544 in(m) = in(m) + din(i)
545 stifr(m) = stifr(m) + dstifr(i)
556 IF (ns==0.OR.weight(ns)==0.OR.ipen>0) cycle
559 a(1,m) = a(1,m) + da(1,i)
560 a(2,m) = a(2,m) + da(2,i)
561 a(3,m) = a(3,m) + da(3,i)
562 ms(m) = ms(m) + dms(i)
563 stifn(m)= stifn(m) + dstifn(i)
568 ar(1,m) = ar(1,m) + dar(1,i)
569 ar(2,m) = ar(2,m) + dar(2,i)
570 ar(3,m) = ar(3,m) + dar(3,i)
571 in(m) = in(m) + din(i)
572 stifr(m) = stifr(m) + dstifr(i)
583 1 IN ,WEIGHT,STIFN ,STIFR ,DA ,
584 2 DAR ,DMS ,DIN ,DSTIFN,DSTIFR)
588#include "implicit_f.inc"
592#include "com04_c.inc"
593#include "param_c.inc"
597 INTEGER IRBE3(NRBE3L,*),(*),WEIGHT(*)
600 . A(3,*), AR(3,*), MS(*), IN(*),
601 . STIFN(*) ,STIFR(*), DA(3,*), DAR(3,*), DMS(*), DIN(*),
602 . DSTIFN(*) ,DSTIFR(*)
606 INTEGER I, J, N, NS ,NML, IAD,JJ,IROT,M,ITAG(NUMNOD)
617#include "vectorize.inc"
634#include "vectorize.inc"
637 da(1,i) = a(1,m)*weight(i) + da(1,i)
638 da(2,i) = a(2,m)*weight(i) + da(2,i)
640 dms(i) = ms(m)*weight(i)+dms(i)
641 dstifn(i) = stifn(m)*weight(i)+dstifn(i)
644#include "vectorize.inc"
647 dar(1,i) = ar(1,m)*weight(i) + dar(1,i)
648 dar(2,i) = ar(2,m)*weight(i) + dar(2,i)
649 dar(3,i) = ar(3,m)*weight(i) + dar(3,i)
650 din(i) = in(m)*weight(i)+din(i)
651 dstifr(i) = stifr(m)*weight(i)+dstifr(i)
662 1 IN ,WEIGHT,STIFN ,STIFR ,DA ,
663 2 DAR ,DMS ,DIN ,DSTIFN,DSTIFR)
667#include "implicit_f.inc"
671#include "com04_c.inc"
672#include "param_c.inc"
676 INTEGER IRBE3(NRBE3L,*),LRBE3(*),WEIGHT(*)
679 . a(3,*), ar(3,*), ms(*), in(*),stifn(*) ,stifr(*)
681 . da(6,3,*), dar(6,3,*), dms(6,*),
682 . din(6,*),dstifn(6,*) ,dstifr(6,*)
686 INTEGER I, J, N, NS ,NML, IAD,JJ,IROT,M
694#include "vectorize.inc"
704#include "vectorize.inc"
721#include "vectorize.inc"
725 a(1,m) = a(1,m)+ da(j,1,i)
726 a(2,m) = a(2,m)+ da(j,2,i)
727 a(3,m) = a(3,m)+ da(j,3,i)
728 ms(m) = ms(m)+dms(j,i)
729 stifn(m) = stifn(m)+dstifn(j,i)
733#include "vectorize.inc"
737 ar(1,m) = ar(1,m)+ dar(j,1,i)
738 ar(2,m) = ar(2,m)+ dar(j,2,i)
739 ar(3,m) = ar(3,m)+ dar(j,3,i)
740 in(m) = in(m)+din(j,i)
741 stifr(m) = stifr(m)+dstifr(j,i)
1140 SUBROUTINE rbe3cl(INRBE3 ,ILRBE3 ,NS ,XYZ ,FRBE3 ,
1141 . SKEW ,NG ,IROT ,FDSTNB ,MDSTNB ,ID )
1149#include "implicit_f.inc"
1153#include "task_c.inc"
1154#include "param_c.inc"
1155#include "scr07_c.inc"
1159 INTEGER INRBE3(*),ILRBE3(*),NG, NS,IROT,ID
1162 . xyz(3,*), frbe3(6,*), skew(lskew,*),fdstnb(3,6,*), mdstnb(3,6,*)
1166 INTEGER I, J, K,N, M ,NML, IAD,JJ,KG,NSNGLR,IELSUB,IERR,ng1
1169 * TW(3,NG), RW(3,NG),
1170 * FUFXLC(3,NG), FUFYLC(3,), FUFZLC(3,NG),
1171 * FUMXLC(3,NG), FUMYLC(3,NG), FUMZLC(3,NG),
1172 * MXLC(3,NG), MYLC(3,NG), MZLC(3,NG),
1173 * FUFX(3,NG), FUFY(3,NG), FUFZ(3,NG),
1174 * MUFX(3,NG), MUFY(3,NG), MUFZ(3,NG),
1175 * FUMX(3,NG), FUMY(3,NG), FUMZ(3,NG),
1176 * MX(3,NG), MY(3,NG), MZ(3,NG),
1177 * MUMX(3,NG), MUMY(3,NG), MUMZ(3,NG),
1181 * refpt(3), cgmx(3), cgmy(3), cgmz(3), averef,
1182 * tfufx(3), tfufy(3), tfufz(3),
1183 * tmufx(3), tmufy(3), tmufz(3),
1184 * tfumx(3), tfumy(3), tfumz(3),
1185 * tmumx(3), tmumy(3), tmumz(3),
1186 * a(6,6), c(6,6), t(3,3)
1191 CALL zero1(fdstnb,3*ng*6)
1192 IF (irot>0)
CALL zero1(mdstnb,3*ng*6)
1200 refpt(1) = xyz(1,ns)
1201 refpt(2) = xyz(2,ns)
1202 refpt(3) = xyz(3,ns)
1205 tw(i,k) = frbe3(i,k)
1206 rw(i,k) = frbe3(i+3,k)
1214 IF (ng == 2.AND.irot==0)
THEN
1223 IF (ielsub > 0)
THEN
1226 el(i,2,k) = skew(i+3,ielsub)
1227 el(i,3,k) = skew(i+6,ielsub)
1242 IF (ielsub > 0)
THEN
1247 denfx = denfx + tw(i,k)*el(i,1,k)**2
1248 denfy = denfy + tw(i,k)*el(i,2,k)**2
1249 denfz = denfz + tw(i,k)*el(i,3,k)**2
1252 denfx = denfx + tw(1,k)
1253 denfy = denfy + tw(2,k)
1254 denfz = denfz + tw(3,k)
1257 averef = averef + sqrt( (xyz(1,kg) - refpt(1))**2 +
1258 * (xyz(2,kg) - refpt(2))**2 +
1259 * (xyz(3,kg) - refpt(3))**2 )
1262 IF (abs(denfx) <= em20)
THEN
1266 IF (abs(denfy) <= em20)
THEN
1270 IF (abs(denfz) <= em20)
THEN
1273 IF (ierr /= 0)
GOTO 999
1275 IF (averef == zero) averef = one
1283 IF (ielsub > 0)
THEN
1288 cgmx(2) = cgmx(2) + tw(i,k)*el(i,3,k)**2*xyz(2,kg)
1289 cgmx(3) = cgmx(3) + tw(i,k)*el(i,2,k)**2*xyz(3,kg)
1293 cgmy(3) = cgmy(3) + tw(i,k)*el(i,1,k)**2*xyz(3,kg)
1294 cgmy(1) = cgmy(1) + tw(i,k)*el(i,3,k)**2*xyz(1,kg)
1298 cgmz(1) = cgmz(1) + tw(i,k)*el(i,2,k)**2*xyz(1,kg)
1299 cgmz(2) = cgmz(2) + tw(i,k)*el(i,1,k)**2*xyz(2,kg)
1303 cgmx(2) = cgmx(2) + tw(3,k)*xyz(2,kg)
1304 cgmx(3) = cgmx(3) + tw(2,k)*xyz(3,kg)
1306 cgmy(3) = cgmy(3) + tw(1,k)*xyz(3,kg)
1309 cgmz(1) = cgmz(1) + tw(2,k)*xyz(1,kg)
1310 cgmz(2) = cgmz(2) + tw(1,k)*xyz(2,kg)
1313 cgmx(2) = cgmx(2)/denfz
1314 cgmx(3) = cgmx(3)/denfy
1316 cgmy(3) = cgmy(3)/denfx
1317 cgmy(1) = cgmy(1)/denfz
1319 cgmz(1) = cgmz(1)/denfy
1320 cgmz(2) = cgmz(2)/denfx
1335 IF (ielsub > 0)
THEN
1340 denmx = denmx + rw(i,k)*el(i,1,k)**2*averef**2 +
1341 * tw(i,k)*( el(i,3,k)*(xyz(2,kg) - cgmx(2)) -
1342 * el(i,2,k)*(xyz(3,kg) - cgmx(3))
1344 denmy = denmy + rw(i,k)*el(i,2,k)**2*averef**2 +
1345 * tw(i,k)*( el(i,1,k)*(xyz(3,kg) - cgmy(3)) -
1346 * el(i,3,k)*(xyz(1,kg) - cgmy(1))
1348 denmz = denmz + rw(i,k)*el(i,3,k)**2*averef**2 +
1349 * tw(i,k)*( el(i,2,k)*(xyz(1,kg) - cgmz(1)) -
1350 * el(i,1,k)*(xyz(2,kg) - cgmz(2))
1354 denmx = denmx + rw(1,k)*averef**2 +
1355 * tw(2,k)*(xyz(3,kg) - cgmx(3))**2 +
1356 * tw(3,k)*(xyz(2,kg) - cgmx(2))**2
1357 denmy = denmy + rw(2,k)*averef**2 +
1358 * tw(1,k)*(xyz(3,kg) - cgmy(3))**2 +
1359 * tw(3,k)*(xyz(1,kg) - cgmy(1))**2
1360 denmz = denmz + rw(3,k)*averef**2 +
1361 * tw(2,k)*(xyz(1,kg) - cgmz(1))**2 +
1362 * tw(1,k)*(xyz(2,kg) - cgmz(2))**2
1370 IF (abs(denmx) <= em20)
THEN
1374 IF (abs(denmy) <= em20)
THEN
1378 IF (abs(denmz) <= em20)
THEN
1382 IF (ierr /= 0)
GOTO 999
1387 CALL rbe3uf(inrbe3,ilrbe3,el,tw,xyz,refpt,
1388 * fufxlc,fufylc,fufzlc,fufx,fufy,fufz,mufx,mufy
1389 * tfufx,tfufy,tfufz,tmufx,tmufy,tmufz,
1390 * denfx,denfy,denfz,ng)
1396 CALL rbe3um(inrbe3,ilrbe3,el,tw,rw,xyz,refpt,cgmx,cgmy,cgmz,
1397 * fumxlc,fumylc,fumzlc,mxlc,mylc,mzlc,
1398 * fumx,fumy,fumz,mx,my,mz,mumx,mumy,mumz,
1399 * tfumx,tfumy,tfumz,tmumx,tmumy,tmumz,
1400 * averef,denmx,denmy,denmz,ng,irot )
1441 CALL invert(a,c,6,nsnglr)
1442 IF (nsnglr /= 0)
THEN
1450 fdstnb(i,j,k) = c(1,j)*fufx(i,k) + c(2,j)*fufy(i,k) +
1451 * c(3,j)*fufz(i,k) + c(4,j)*fumx(i,k) +
1452 * c(5,j)*fumy(i,k) + c(6,j)*fumz(i,k)
1460 mdstnb(i,j,k) = c(4,j)*mx(i,k) + c(5,j)*my(i,k) +
1470 CALL ancmsg(msgid=108,anmode=aninfo,
1503 SUBROUTINE rbe3uf(INRBE3,ILRBE3,EL,TW,XYZ,REFPT,
1504 * FUFXLC,FUFYLC,FUFZLC,
1505 * FUFX,FUFY,FUFZ,MUFX,MUFY,MUFZ,
1506 * TFUFX,TFUFY,TFUFZ,TMUFX,TMUFY,TMUFZ,
1507 * DENFX,DENFY,DENFZ,NG)
1511#include "implicit_f.inc"
1513 INTEGER INRBE3(NG), ILRBE3(NG)
1515 * el(3,3,*),tw(3,ng), xyz(3,*), refpt(3),
1516 * fufxlc(3,ng), fufylc(3,ng), fufzlc(3,ng),
1517 * fufx(3,ng), fufy(3,ng), fufz(3,ng),
1518 * mufx(3,ng), mufy(3,ng), mufz(3,ng),
1519 * tfufx(3), tfufy(3), tfufz(3),
1520 * tmufx(3), tmufy(3), tmufz(3)
1522 * denfx, denfy, denfz,xarm, yarm, zarm
1523 INTEGER I, J, K, KG, IELSUB
1527 CALL ZERO1(FUFX,3*NG)
1528 CALL zero1(fufy,3*ng)
1529 CALL zero1(fufz,3*ng)
1544 IF (ielsub > 0)
THEN
1550 fufxlc(i,k) = tw(i,k)*el(i,1,k)/denfx
1551 fufylc(i,k) = tw(i,k)*el(i,2,k)/denfy
1552 fufzlc(i,k) = tw(i,k)*el(i,3,k)/denfz
1559 fufx(j,k) = fufx(j,k) + fufxlc(i,k)*el(i,j,k)
1560 fufy(j,k) = fufy(j,k) + fufylc(i,k)*el(i,j,k)
1561 fufz(j,k) = fufz(j,k) + fufzlc(i,k)*el(i,j,k)
1566 fufxlc(1,k) = tw(1,k)/denfx
1567 fufylc(2,k) = tw(2,k)/denfy
1568 fufzlc(3,k) = tw(3,k)/denfz
1569 fufx(1,k) = fufxlc(1,k)
1570 fufy(2,k) = fufylc(2,k)
1571 fufz(3,k) = fufzlc(3,k)
1576 xarm = xyz(1,kg) - refpt(1)
1577 yarm = xyz(2,kg) - refpt(2)
1578 zarm = xyz(3,kg) - refpt(3)
1582 mufx(1,k) = yarm*fufx(3,k) - zarm*fufx(2,k)
1583 mufx(2,k) = zarm*fufx(1,k) - xarm*fufx(3,k)
1584 mufx(3,k) = xarm*fufx(2,k) - yarm*fufx(1,k)
1588 mufy(1,k) = yarm*fufy(3,k) - zarm*fufy(2,k)
1589 mufy(2,k) = zarm*fufy(1,k) - xarm*fufy(3,k)
1590 mufy(3,k) = xarm*fufy(2,k) - yarm*fufy(1,k)
1594 mufz(1,k) = yarm*fufz(3,k) - zarm*fufz(2,k)
1595 mufz(2,k) = zarm*fufz(1,k) - xarm*fufz(3,k)
1596 mufz(3,k) = xarm*fufz(2,k) - yarm*fufz(1,k)
1601 tfufx(j) = tfufx(j) + fufx(j,k)
1602 tfufy(j) = tfufy(j) + fufy(j,k)
1603 tfufz(j) = tfufz(j) + fufz(j,k)
1604 tmufx(j) = tmufx(j) + mufx(j,k)
1605 tmufy(j) = tmufy(j) + mufy(j,k)
1606 tmufz(j) = tmufz(j) + mufz(j,k)
1621 SUBROUTINE rbe3um(INRBE3,ILRBE3,EL,TW,RW,XYZ,REFPT,CGMX,CGMY,CGMZ,
1622 * FUMXLC,FUMYLC,FUMZLC,MXLC,MYLC,MZLC,
1623 * FUMX,FUMY,FUMZ,MX,MY,MZ,MUMX,MUMY,MUMZ,
1624 * TFUMX,TFUMY,TFUMZ,TMUMX,TMUMY,TMUMZ,
1625 * AVEREF,DENMX,DENMY,DENMZ,NG ,IROT)
1629#include "implicit_f.inc"
1631 INTEGER INRBE3(NG), ILRBE3(NG)
1633 * el(3,3,*),tw(3,ng), rw(3,ng), xyz(3,*),
1634 * refpt(3), cgmx(3), cgmy(3), cgmz(3),
1635 * fumxlc(3,ng), fumylc(3,ng), fumzlc(3,ng),
1636 * mxlc(3,ng), mylc(3,ng), mzlc(3,ng),
1637 * fumx(3,ng), fumy(3,ng), fumz(3,ng),
1638 * mx(3,ng), my(3,ng), mz(3,ng),
1639 * mumx(3,ng), mumy(3,ng), mumz(3,ng),
1640 * tfumx(3), tfumy(3), tfumz(3),
1641 * tmumx(3), tmumy(3), tmumz(3)
1643 * averef, denmx, denmy, denmz,xarm, yarm, zarm
1644 INTEGER I, J, K, KG, IELSUB
1648 CALL ZERO1(FUMX,3*NG)
1649 CALL ZERO1(FUMY,3*NG)
1650 CALL zero1(fumz,3*ng)
1668 IF (ielsub > 0)
THEN
1674 fumxlc(i,k) = tw(i,k)*
1675 * ( el(i,3,k)*(xyz(2,kg) - cgmx(2)) -
1676 * el(i,2,k)*(xyz(3,kg) - cgmx(3))
1678 fumylc(i,k) = tw(i,k)*
1679 * ( el(i,1,k)*(xyz(3,kg) - cgmy(3)) -
1680 * el(i,3,k)*(xyz(1,kg) - cgmy(1))
1682 fumzlc(i,k) = tw(i,k)*
1683 * ( el(i,2,k)*(xyz(1,kg) - cgmz(1)) -
1684 * el(i,1,k)*(xyz(2,kg) - cgmz(2))
1692 fumx(j,k) = fumx(j,k) + fumxlc(i,k)*el(i,j,k)
1693 fumy(j,k) = fumy(j,k) + fumylc(i,k)*el(i,j,k)
1694 fumz(j,k) = fumz(j,k) + fumzlc(i,k)*el(i,j,k)
1699 fumxlc(2,k) = -tw(2,k)*(xyz(3,kg) - cgmx(3))/denmx
1700 fumxlc(3,k) = tw(3,k)*(xyz(2,kg) - cgmx(
1701 fumylc(1,k) = tw(1,k)*(xyz(3,kg) - cgmy(3))/denmy
1702 fumylc(3,k) = -tw(3,k)*(xyz(1,kg)
1703 fumzlc(1,k) = -tw(1,k)*(xyz(2,kg) - cgmz(2))/denmz
1704 fumzlc(2,k) = tw(2,k)*(xyz(1,kg) - cgmz(1))/denmz
1706 fumx(2,k) = fumxlc(2,k)
1707 fumx(3,k) = fumxlc(3,k)
1708 fumy(1,k) = fumylc(1,k)
1709 fumy(3,k) = fumylc(3,k)
1710 fumz(1,k) = fumzlc(1,k)
1711 fumz(2,k) = fumzlc(2,k)
1716 xarm = xyz(1,kg) - refpt(1)
1717 yarm = xyz(2,kg) - refpt(2)
1718 zarm = xyz(3,kg) - refpt(3)
1720 mumx(1,k) = yarm*fumx(3,k) - zarm*fumx(2,k)
1721 mumx(2,k) = zarm*fumx(1,k) - xarm*fumx(3,k)
1722 mumx(3,k) = xarm*fumx(2,k) - yarm*fumx(1,k)
1726 mumy(1,k) = yarm*fumy(3,k) - zarm*fumy(2,k)
1727 mumy(2,k) = zarm*fumy(1,k) - xarm*fumy(3,k)
1728 mumy(3,k) = xarm*fumy(2,k) - yarm*fumy(1,k)
1732 mumz(1,k) = yarm*fumz(3,k) - zarm*fumz(2,k)
1733 mumz(2,k) = zarm*fumz(1,k) - xarm*fumz(3,k)
1734 mumz(3,k) = xarm*fumz(2,k) - yarm*fumz(1,k)
1742 IF (ielsub > 0)
THEN
1748 mxlc(i,k) = averef**2*rw(i,k)*el(i,1,k)/denmx
1749 mylc(i,k) = averef**2*rw(i,k)*el(i,2,k)/denmy
1757 mx(j,k) = mx(j,k) + mxlc(i,k)*el(i,j,k)
1758 my(j,k) = my(j,k) + mylc(i,k)*el(i,j,k)
1759 mz(j,k) = mz(j,k) + mzlc(i,k)*el(i,j,k)
1764 mxlc(1,k) = averef**2*rw(1,k)/denmx
1766 mzlc(3,k) = averef**2*rw(3,k)/denmz
1774 mumx(j,k) = mumx(j,k) + mx(j,k)
1775 mumy(j,k) = mumy(j,k) + my(j,k)
1776 mumz(j,k) = mumz(j,k) + mz(j,k)
1787 tfumx(j) = tfumx(j) + fumx(j,k)
1788 tfumy(j) = tfumy(j) + fumy(j,k)
1789 tfumz(j) = tfumz(j) + fumz(j,k)
1790 tmumx(j) = tmumx(j) + mumx(j,k)
1791 tmumy(j) = tmumy(j) + mumy(j,k)
1792 tmumz(j) = tmumz(j) + mumz(j,k)
1907 * FDSTNB,MDSTNB,JT ,JR ,IROT )
1911#include "implicit_f.inc"
1915 INTEGER NML ,IML(*) ,NS,JT(*),JR(*),IROT
1918 . a(3,*), ar(3,*), fdstnb(3,6,*) ,mdstnb(3,6,*)
1928 fns(j) = a(j,ns)*jt(j)
1933 a(1,m) = a(1,m)+fdstnb(1,j,i)*fns(j)
1934 a(2,m) = a(2,m)+fdstnb(2,j,i)*fns(j)
1935 a(3,m) = a(3,m)+fdstnb(3,j,i)*fns(j)
1938 IF ((jr(1)+jr(2)+jr(3))>0)
THEN
1940 mns(j) = ar(j,ns)*jr(j)
1945 a(1,m) = a(1,m)+fdstnb(1,j+3,i)*mns(j)
1946 a(2,m) = a(2,m)+fdstnb(2,j+3,i)*mns(j)
1947 a(3,m) = a(3,m)+fdstnb(3,j+3,i)*mns(j)
1955 ar(1,m) = ar(1,m)+mdstnb(1,j,i)*fns(j)
1956 ar(2,m) = ar(2,m)+mdstnb(2,j,i)*fns(j)
1957 ar(3,m) = ar(3,m)+mdstnb(3,j,i)*fns(j)
1960 IF ((jr(1)+jr(2)+jr(3))>0)
THEN
1964 ar(1,m) = ar(1,m)+mdstnb(1,j+3,i)*mns(j)
1965 ar(2,m) = ar(2,m)+mdstnb(2,j+3,i)*mns(j)
1966 ar(3,m) = ar(3,m)+mdstnb(3,j+3,i)*mns(j)
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 ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)