33 1 IRBE3 ,LRBE3 ,FRBE3 ,X ,SKEW ,
34 2 ISS3 ,IKC ,NDOF ,IDDL ,IADK ,
35 3 JDIK ,DIAG_K ,LT_K ,B ,WEIGHT ,
40#include "implicit_f.inc"
46#include "tabsiz_c.inc"
50 INTEGER WEIGHT(*),IRBE3(NRBE3L,*),LRBE3(*),
51 . IADK(*),JDIK(*),NDOF(*),ITAB(*),
52 . IDDL(*),IKC(*),ISS3(*)
55 . x(3,*), skew(lskew,*), frbe3(*),
56 . diag_k(*),lt_k(*),b(*)
60 INTEGER I, J, N, M, NS ,NML, IAD,JJ,IROT,IADS,MAX_M,IROTG,
61 . JT(3,NRBE3),JR(3,NRBE3),NM,NN,NSJ,IADJ
64 .
DIMENSION(:),
ALLOCATABLE :: fdstnb ,mdstnb
68 CALL prerbe3(irbe3 ,max_m , irotg,jt ,jr )
69 ALLOCATE(fdstnb(18*max_m))
70 IF (irotg>0)
ALLOCATE(mdstnb(18*max_m
78 IF (ns==0.OR.ndof(ns)==0) cycle
79 IF (weight(ns)/=0)
THEN
80 CALL rbe3cl(lrbe3(iad+1),lrbe3(iads+iad+1),ns ,x ,
81 . frbe3(6*iad+1),skew ,nml ,irot ,fdstnb ,
83 CALL rbe3_imp1(ns ,nml ,lrbe3(iad+1) ,x ,irot ,
84 2 nsj ,iss3(iadj),jt(1,n) ,jr(1,n),fdstnb
85 3 mdstnb,ikc ,ndof ,iddl ,iadk ,
86 4 jdik ,diag_k,lt_k ,b ,itab )
92 IF (irotg>0)
DEALLOCATE(mdstnb)
103!||
rbe3cl ../engine/source/constraints/general/rbe3/
rbe3f.f
106 1 IRBE3 ,LRBE3 ,FRBE3 ,X ,SKEW ,
107 2 NSS3 ,ISS3 ,IKC ,NDOF ,IDDL ,
108 3 IADK ,JDIK ,DIAG_K ,LT_K ,B ,
113#include "implicit_f.inc"
117#include "com04_c.inc"
118#include "param_c.inc"
119#include "tabsiz_c.inc"
123 INTEGER WEIGHT(*),IRBE3(NRBE3L,*),LRBE3(*),
124 . IADK(*),JDIK(*),NDOF(*),ITAB(*),
125 . IDDL(*),IKC(*),NSS3(*),ISS3(*)
128 . X(3,*), SKEW(LSKEW,*), FRBE3(*),
129 . DIAG_K(*),LT_K(*),B(*)
133 INTEGER I, J, N, M, NS ,NML, IAD,JJ,IROT,IADS,,IROTG,
134 . JT(3,NRBE3),JR(3,NRBE3),NM,NN,NSJ,IADJ
137 .
DIMENSION(:),
ALLOCATABLE :: fdstnb ,mdstnb
141 CALL prerbe3(irbe3 ,max_m , irotg,jt ,jr )
142 ALLOCATE(fdstnb(18*max_m))
143 IF (irotg>0)
ALLOCATE(mdstnb(18*max_m))
154 IF (weight(ns)/=0.AND.ndof(ns)>0)
THEN
155 CALL rbe3cl(lrbe3(iad+1),lrbe3(iads+iad+1),ns ,x ,
156 . frbe3(6*iad+1),skew ,nml ,irot ,fdstnb ,
157 . mdstnb ,irbe3(2,n))
158 CALL rbe3_imp1(ns ,nml ,lrbe3(iad+1) ,x ,irot ,
159 2 nss3(n),iss3(iadj),jt(1,n) ,jr(1,n),fdstnb ,
160 3 mdstnb,ikc ,ndof ,iddl ,iadk ,
161 4 jdik ,diag_k,lt_k ,b ,itab )
167 IF (irotg>0)
DEALLOCATE(mdstnb)
188 2 NSJ ,ISJ ,JT ,JR ,FDSTNB ,
189 3 MDSTNB,IKC ,NDOF ,IDDL ,IADK ,
190 4 JDIK ,DIAG_K,LT_K ,B ,ITAB )
194#include "implicit_f.inc"
198 INTEGER NS, NML,IML(*),NSJ,ISJ(*) ,JT(3),JR(3),IROT
199 INTEGER IADK(*),JDIK(*),NDOF(*),IDDL(*),IKC(*),ITAB(*)
201 . X(3,*),DIAG_K(*),LT_K(*),B(*),FDSTNB(18,*),MDSTNB(18,*)
205 INTEGER NIR, I, J, J1, J2, J3, J4, K, JD, II, L, JJ,
206 . I1,ID,NL,NI,NJ,NIDOF,ND,NDI,NDJ,NDM,NM,L1,NM1,
210 . kdd(6,6),bd(6),kii(6,6),kij(6,6),bi(6)
214 IF (ndof(ns)<=0)
RETURN
234 bd(k+3)=bd(k+3)*jr(k)
236 CALL get_kii(i ,iddl ,iadk,diag_k,lt_k ,kdd,ndof
250 CALL updk_cdii(fdstnb(1,j),mdstnb(1,j),kdd,kii,irot,ndm)
251 CALL put_kii(nj,iddl ,iadk,diag_k,lt_k ,kii,nd)
255 CALL updk_cdij(fdstnb(1,j),mdstnb(1,j),fdstnb(1,i1),
256 . mdstnb(1,i1),kdd,kij,irot,ndm )
257 CALL put_kij(nj,nm,iddl,iadk,jdik,lt_k,kij,nd,ndof(nm),ir)
258 IF (ir==1)
CALL print_wkij(itab(nj) ,itab(nm) ,ip )
265 CALL updb_cdi(fdstnb(1,j),mdstnb(1,j),bd,bi,irot)
268 b(id) = b(id) + bi(k)
281 CALL get_kij(ni,i,iddl,iadk,jdik,lt_k,kdd,nidof,ndof(i),ir)
282 IF (ir==1)
CALL print_wkij(itab(ni) ,itab(i) ,ip )
290 CALL updk_cdi(fdstnb(1,j),mdstnb(1,j),kdd,kii,irot,ndm,1)
291 CALL put_kii(nj,iddl ,iadk,diag_k,lt_k ,kii,ndj)
293 CALL updk_cdi(fdstnb(1,j),mdstnb(1,j),kdd,kii,irot,ndm,0)
294 CALL put_kij(ni,nj,iddl,iadk,jdik,lt_k,kii,nidof,ndj,ir)
295 IF (ir==1)
CALL print_wkij(itab(ni) ,itab(nj) ,ip )
316 1 IRBE3 ,LRBE3 ,FRBE3 ,X ,SKEW ,
317 2 NDOF ,IDDL ,B ,WEIGHT)
321#include "implicit_f.inc"
325#include
"com04_c.inc"
326#include "param_c.inc"
327#include "tabsiz_c.inc"
331 INTEGER WEIGHT(*),IRBE3(NRBE3L,*),LRBE3(*),
335 . X(3,*), SKEW(LSKEW,*), FRBE3(*),B(*)
339 INTEGER I, J, N, M, NS ,NML, IAD,JJ,IROT,IADS,MAX_M,IROTG,
340 . JT(3,NRBE3),(3,NRBE3),NM,,NSJ
343 .
DIMENSION(:),
ALLOCATABLE :: FDSTNB ,MDSTNB
347 CALL prerbe3(irbe3 ,max_m , irotg,jt ,jr )
348 ALLOCATE(fdstnb(18*max_m))
349 IF (irotg>0)
ALLOCATE(mdstnb(18*max_m))
356 IF (weight(ns)/=0)
THEN
357 CALL rbe3cl(lrbe3(iad+1),lrbe3(iads+iad+1),ns ,x ,
358 . frbe3(6*iad+1),skew ,nml ,irot ,fdstnb ,
359 . mdstnb ,irbe3(2,n) )
360 CALL rbe3_impb0(ns ,nml ,lrbe3(iad+1),x ,irot ,
361 2 jt(1,n),jr(1,n),fdstnb ,mdstnb ,ndof ,
367 IF (irotg>0)
DEALLOCATE(mdstnb)
379 2 JT ,JR ,FDSTNB ,MDSTNB,NDOF ,
384#include "implicit_f.inc"
388 INTEGER NS, NML,IML(*),JT(3),JR(3),NDOF(*),IDDL(*),IROT
390 . X(3,*),B(*),FDSTNB(18,*),MDSTNB(18,*)
394 INTEGER NIR, I, J, J1, J2, J3, J4, K, JD, II, L, JJ,
395 . I1,ID,NL,NI,NJ,NIDOF,,NDI,NDJ,NDM,NM,L1,NM1,
403 IF (ndof(ns)<=0)
RETURN
415 bd(k+3)=bd(k+3)*jr(k)
420 CALL updb_cdi(fdstnb(1,j),mdstnb(1,j),bd,bi,irot)
423 b(id) = b(id) + bi(k)
442 1 IRBE3 ,LRBE3 ,FRBE3 ,X ,SKEW ,
443 2 NDOF ,IDDL ,B ,WEIGHT,A ,
448#include "implicit_f.inc"
452#include "com04_c.inc"
453#include "param_c.inc"
454#include "tabsiz_c.inc"
458 INTEGER WEIGHT(*),IRBE3(NRBE3L,*),LRBE3(*),
462 . x(3,*), skew(lskew,*), frbe3(*),b(*),a(*),ar(*)
466 INTEGER I, J, N, M, NS ,NML, IAD,JJ,IROT,IADS,MAX_M,IROTG,
467 . (3,),JR(3,NRBE3),NM,NN,NSJ
470 .
DIMENSION(:),
ALLOCATABLE :: FDSTNB
474 CALL prerbe3(irbe3 ,max_m , irotg,jt ,jr )
475 ALLOCATE(fdstnb(18*max_m))
476 IF (irotg>0)
ALLOCATE(mdstnb(18*max_m))
483 IF (weight(ns)/=0)
THEN
484 CALL rbe3cl(lrbe3(iad+1),lrbe3(iads+iad+1),ns ,x ,
485 . frbe3(6*iad+1),skew ,nml ,irot ,fdstnb ,
486 . mdstnb ,irbe3(2,n))
487 CALL rbe3_impb2(ns ,nml ,lrbe3(iad+1),x ,irot ,
488 2 jt(1,n),jr(1,n),fdstnb ,mdstnb ,ndof ,
494 IF (irotg>0)
DEALLOCATE(mdstnb)
506 2 JT ,JR ,FDSTNB ,MDSTNB,NDOF ,
511#include "implicit_f.inc"
515 INTEGER NS, NML,IML(*),JT(3),JR(3),NDOF(*),IDDL(*),IROT
518 . x(3,*),b(*),fdstnb(18,*),mdstnb(18,*),a(3,*),ar(3,*)
522#include "com01_c.inc"
526 INTEGER NIR, I, J, , J2, J3, J4, K, JD, II, L, JJ,
527 . I1,ID,,NI,NJ,NIDOF,ND,NDI,NDJ,NDM,NM,L1,NM1,
557 bd(k+3)=bd(k+3)*jr(k)
562 IF (ndof(nj)> 0)
THEN
563 CALL updb_cdi(fdstnb(1,j),mdstnb(1,j),bd,bi,irot)
589 bd(k+3)=bd(k+3)*jr(k)
594 IF (ndof(nj)==0)
THEN
595 CALL updb_cdi(fdstnb(1,j),mdstnb(1,j),bd,bi,irot)
597 a(k,nj)=a(k,nj)+bi(k)
601 ar(k,nj)=ar(k,nj)+bi(k+3)
618#include "implicit_f.inc"
622 INTEGER JT(3),JR(3),ISTIF
637 k(i,j)= k(i,j)*jt(i)*jt(j)
638 k(i,j+3)= k(i,j+3)*jt(i)*jr(j)
639 k(i+3,j)= k(i+3,j)*jr(i)*jt(j)
640 k(i+3,j+3)= k(i+3,j+3)*jr(i)*jr(j)
666#include "implicit_f.inc"
670 INTEGER JT(3),JR(3),ISTIF
686 k(i,j+3)= k(i,j+3)*jr(j)
687 k(i+3,j)= k(i+3,j)*jt(j)
688 k(i+3,j+3)= k(i+3,j+3)*jr(j)
716#include "implicit_f.inc"
723 . fdi(3,6),mdi(3,6),bd(6),bi(6)
736 bi(i)=bi(i)+fdi(i,j)*bd(j)
742 bi(i)=bi(i)+mdi(i-3,j)*bd(j)
760#include "implicit_f.inc"
767 . fdi(3,6),mdi(3,6),kdd(6,6),kii(6,6)
784 kii(i,j)=kii(i,j)+fdi(i,k)*kdd(k,l)*fdi(j,l)
800 kii(i+3,j+3)=kii(i+3,j+3)+mdi(i,k)*kdd(k,l)*mdi(j,l)
810 kii(i,j+3)=kii(i,j+3)+fdi(i,k)*kdd(k,l)*mdi(j,l)
817 kii(i+3,j)=kii(j,i+3)
822 kii(j+3,i+3)=kii(i+3,j+3)
839#include "implicit_f.inc"
846 . fdi(3,6),mdi(3,6),fdj(3,6),mdj(3,6),kdd(6,6),kij(6,6)
863 kij(i,j)=kij(i,j)+fdi(i,k)*kdd(k,l)*fdj(j,l)
874 kij(i+3,j+3)=kij(i+3,j+3)+mdi(i,k)*kdd(k,l)*mdj(j,l)
884 kij(i,j+3)=kij(i,j+3)+fdi(i,k)*kdd(k,l)*mdj(j,l)
894 kij(i+3,j)=kij(i+3,j)+mdi(i,k)*kdd(k,l)*fdj(j,l)
913#include "implicit_f.inc"
920 . fdi(3,6),mdi(3,6),kdd(6,6),kij(6,6)
936 kij(i,j)=kij(i,j)+kdd(i,k)*fdi(j,k)
945 kij(i,j+3)=kij(i,j+3)+kdd(i,k)*mdi(j,k)
954 kij(i,j)=kij(i,j)+kij(j,i)
970#include "implicit_f.inc"
989 k(i,j)= k(i,j)*jt(i)*jt(j)
1016 1 JT ,IROT ,KSS ,DIAG_M3)
1020#include "implicit_f.inc"
1025 . nir ,iml(*) ,ndof(*),jt(*)
1028 . kss(6),diag_m3(6,nir),fdstnb(18,nir),mdstnb(18,nir)
1032 INTEGER I, J, JD, L, JJ,NJ,ND,IROT,NS,
1051 . k0 ,kij ,irot ,nd )
1053 diag_m3(jj,j)=kij(jj,jj)
1070 2 JT ,JR ,FRBE3 ,SKEW ,IKC ,
1071 3 NDOF ,IADK ,JDIK ,DIAG_K ,LT_K ,
1072 2 KSS ,KSM ,KNM ,KRM ,IDLM ,
1073 3 ISS ,ISM ,ITAB ,ISK ,ID )
1077#include "implicit_f.inc"
1081 INTEGER NS, ,IML(*),(3),JR(3),IROT
1082 INTEGER IADK(*),JDIK(*),NDOF(*),ITAB(*),
1083 . idlm(*) ,iss ,ism,isk(*),ikc(*),
id
1086 . x(3,*),diag_k(*),lt_k(*),frbe3(*),skew(*),
1087 . kss(6),ksm(3,3),knm
1094 . fdstnb(18,nml),mdstnb(18,nml)
1098 IF (ndof(ns)<=0)
RETURN
1099 CALL rbe3cl(iml ,isk ,ns ,x ,frbe3 ,
1100 . skew ,nml ,irot ,fdstnb ,mdstnb ,
id)
1102 2 jt ,jr ,fdstnb ,mdstnb,ikc ,
1103 3 ndof ,iadk ,jdik ,diag_k ,lt_k ,
1104 2 kss ,ksm ,knm ,krm ,idlm ,
1122 2 JT ,JR ,FDSTNB ,MDSTNB,IKC ,
1123 3 NDOF ,IADK ,JDIK ,DIAG_K ,LT_K ,
1124 2 KSS ,KSM ,KNM ,KRM ,IDLM ,
1129#include "implicit_f.inc"
1133 INTEGER NS, NML,IML(*),JT(3),JR(3),IROT
1134 INTEGER IADK(*),JDIK(*),NDOF(*),ITAB(*),
1135 . IDLM(*) ,ISS ,ISM,IKC(*)
1137 . x(3,*),diag_k(*),lt_k(*),fdstnb(18,*),mdstnb(18,*),
1138 . kss(6),ksm(3,3),knm(3,3,*),krm(3,3,*)
1142 INTEGER NIR, I, J, J1, J2, J3, J4, K, JD, , L, JJ,
1143 . ,ID,NL,NI,NJ,NIDOF,ND,NDI,NDJ,NDM,NM,L1,NM1,
1144 . NIR1,IR,IP,ISTIF,NDOFI
1150 IF (ndof(ns)<=0)
RETURN
1178 CALL updk_cdii(fdstnb(1,j),mdstnb(1,j),kdd,kii,irot,ndofi)
1179 CALL put_kmii(idlm(j),iadk,diag_k,lt_k ,kii,nd)
1183 CALL updk_cdij(fdstnb(1,j),mdstnb(1,j),fdstnb(1,i1),
1184 . mdstnb(1,i1),kdd,kii,irot,ndofi)
1185 CALL put_kmij(idlm(j) ,idlm(i1) ,iadk,jdik,lt_k,
1187 IF (ir==1)
CALL print_wkij(itab(nj) ,itab(nm) ,ip )
1206 CALL updk_cdi(fdstnb(1,j),mdstnb(1,j),kdd,kii,irot,ndofi,0)
1209 knm(k,j1,j)=kii(j1,k)
1210 krm(k,j1,j)=kii(j1,k+ndofi)
subroutine print_wkij(ni, nj, iflag)
subroutine put_kmii(id, iadk, k_diag, k_lt, kii, nd)
subroutine put_kii(ni, iddl, iadk, k_diag, k_lt, kii, nd)
subroutine put_kij(ni, nj, iddl, iadk, jdik, k_lt, kij, nk, nl, ierr)
subroutine get_kii(ni, iddl, iadk, k_diag, k_lt, kii, nd)
subroutine put_kmij(ini, inj, iadk, jdik, k_lt, kij, nk, nl, ierr)
subroutine imp_glob_k(pm, geo, ipm, igeo, elbuf, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, ixtg1, ixs10, ixs20, ixs16, iparg, tf, npc, fr_wave, w16, bufmat, thke, bufgeo, rby, skew, x, wa, iddl, ndof, k_diag, k_lt, iadk, jdik, ikgeo, etag, elbuf_tab, stack, drape_sh4n, drape_sh3n, drapeg)
subroutine get_kij(ni, nj, iddl, iadk, jdik, k_lt, kij, nk, nl, ierr)
subroutine rbe3cl(inrbe3, ilrbe3, ns, xyz, frbe3, skew, ng, irot, fdstnb, mdstnb)
subroutine prerbe3(irbe3, max_m, irotg, jt, jr)
subroutine rbe3_fr1(ns, nml, iml, x, irot, jt, jr, fdstnb, mdstnb, ikc, ndof, iadk, jdik, diag_k, lt_k, kss, ksm, knm, krm, idlm, iss, ism, itab)
subroutine updfrk_bc(jt, k, istif)
subroutine updk_cdij(fdi, mdi, fdj, mdj, kdd, kij, irot, nd)
subroutine rbe3_fr0(ns, nml, iml, x, irot, jt, jr, frbe3, skew, ikc, ndof, iadk, jdik, diag_k, lt_k, kss, ksm, knm, krm, idlm, iss, ism, itab, isk, id)
subroutine updk_cdii(fdi, mdi, kdd, kii, irot, nd)
subroutine rbe3_imp0(irbe3, lrbe3, frbe3, x, skew, iss3, ikc, ndof, iddl, iadk, jdik, diag_k, lt_k, b, weight, itab)
subroutine rbe3_impb2(ns, nml, iml, x, irot, jt, jr, fdstnb, mdstnb, ndof, iddl, b, a, ar)
subroutine updk_cdi(fdi, mdi, kdd, kij, irot, nd, isym)
subroutine rbe3_frupd(nir, iml, fdstnb, mdstnb, ndof, jt, irot, kss, diag_m3)
subroutine rbe3_imp1(ns, nml, iml, x, irot, nsj, isj, jt, jr, fdstnb, mdstnb, ikc, ndof, iddl, iadk, jdik, diag_k, lt_k, b, itab)
subroutine rbe3_impr2(irbe3, lrbe3, frbe3, x, skew, ndof, iddl, b, weight, a, ar)
subroutine updk_bc2(jt, jr, k, istif)
subroutine rbe3_impb0(ns, nml, iml, x, irot, jt, jr, fdstnb, mdstnb, ndof, iddl, b)
subroutine rbe3_impi(irbe3, lrbe3, frbe3, x, skew, nss3, iss3, ikc, ndof, iddl, iadk, jdik, diag_k, lt_k, b, weight, itab)
subroutine rbe3_impr1(irbe3, lrbe3, frbe3, x, skew, ndof, iddl, b, weight)
subroutine updk_bc(jt, jr, k, istif)
subroutine updb_cdi(fdi, mdi, bd, bi, irot)
subroutine rbe3f(irbe3, lrbe3, x, a, ar, ms, in, frbe3, skew, weight, stifn, stifr, jt, jr, irotg, max_m, am, arm, msm, inm, stifnm, stifrm, nmt0, iadmp, pen, v, vr, nmt, dt1, iroddl)