40 1 IC ,PM ,X ,GEO ,XMAS ,
41 2 DTELEM ,NFT ,NEL ,STIFN ,PARTSAV,
42 3 V ,IPART ,MST ,STIFINT,STT ,
43 4 IGEO ,NSIGTRUSS ,SIGTRUSS ,PTTRUSS,
44 5 PRELOAD_A,IPRELD ,NPRELOAD_A)
55#include "implicit_f.inc"
71 INTEGER IC(NIXT,*),IPART(*),IGEO(NPROPGI,*),PTTRUSS(*)
72 INTEGER NFT,,NSIGTRUSS
73 INTEGER ,
INTENT (IN ) :: IPRELD,NPRELOAD_A
75 . PM(*),X(*), GEO(NPROPG,*),XMAS(*),DTELEM(*),
76 . stifn(*),partsav(20,*),v(*),mst(*),stifint(*),stt(*),
77 . sigtruss(nsigtruss,*)
79 TYPE(elbuf_struct_),
TARGET :: ELBUF_STR
80 TYPE(PREL1D_) ,
DIMENSION(NPRELOAD_A),
TARGET :: PRELOAD_A
84 INTEGER I,IGTYP,NDEPAR,
85 INTEGER MAT(MVSIZ), MXG(MVSIZ), NC1(MVSIZ), NC2(MVSIZ)
87 . X1(MVSIZ), X2(MVSIZ),
88 . Y1(MVSIZ), Y2(MVSIZ),
89 . z1(mvsiz), z2(mvsiz)
91 . deltax(mvsiz),xx,yy,zz, dtx(mvsiz)
94 CHARACTER(LEN=NCHARTITLE)::TITR
95 DATA idmin /-1/, idmax /-1/
97 . lgthmin, lgthmax,xnor,undamp,cc1
98 DATA lgthmin /-1/, lgthmax /-1/
100 TYPE(g_bufel_),
POINTER :: GBUF
102 gbuf => elbuf_str%GBUF
104 ipid1=ic(nixt-1,nft+1)
106 CALL fretitl2(titr,igeo(npropgi-ltitr+1,ipid1),ltitr)
108 CALL tcoori(x,ic(1,nft+1),mat, mxg, nc1, nc2,
109 . x1, x2, y1, y2, z1, z2)
113 CALL tibuf3(gbuf%OFF,gbuf%AREA,geo, mxg)
115 xnor=(x1(i)-x2(i))**2+(y1(i)-y2(i))**2+(z1(i)-z2(i))**2
116 IF (xnor <= 1.e-20)
THEN
117 CALL ancmsg(msgid=269, msgtype=msgerror, anmode=aninfo, i1=id, c1=titr, i2=ic(5,i+nft))
119 gbuf%LENGTH(i) = sqrt(xnor)
125 .
CALL tsigini(nsigtruss ,sigtruss ,pttruss , gbuf%EINT ,gbuf%FOR,
126 . gbuf%G_PLA ,gbuf%PLA ,gbuf%AREA )
127 CALL tmass(x ,ic ,geo ,pm ,xmas ,
128 . stifn ,partsav ,v ,ipart(nft+1),mst(nft+1),
129 . stifint,stt(nft+1) ,gbuf%AREA, mat, nc1, nc2,
130 . x1, x2, y1, y2, z1, z2)
136 igtyp=geo(12,ic(4,i+nft))
137 IF (igtyp /= 2 .AND. invers > 14)
THEN
138 CALL ancmsg(msgid=270, msgtype=msgerror, anmode=aninfo_blind_1, i1=id, c1=titr, i2=ic(nixt,i),i3=igtyp)
140 xx = (x1(i) - x2(i))*(x1(i) - x2(i))
141 yy = (y1(i) - y2(i))*(y1(i) - y2(i))
142 zz = (z1(i) - z2(i))*(z1(i) - z2(i))
143 deltax(i)=sqrt(xx+yy+zz)
144 IF (lgthmin == -1 .OR. deltax(i) < lgthmin)
THEN
148 IF (lgthmax == -1 .OR. deltax(i) > lgthmax)
THEN
154 CALL dt1lawt(pm, deltax, mat, mxg, dtx)
155 ndepar=numels+numelc+nft
157 dtelem(ndepar + i) = dtx(i)
163 undamp = cc1*mst(nft+i)*gbuf%LENGTH(i)/dtx(i)
164 gbuf%BPRELD(i) = preload_a(ipreld)%preload
165 gbuf%BPRELD(i+nel) = undamp*preload_a(ipreld)%damp
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)
subroutine tinit3(elbuf_str, ic, pm, x, geo, xmas, dtelem, nft, nel, stifn, partsav, v, ipart, mst, stifint, stt, igeo, nsigtruss, sigtruss, pttruss, preload_a, ipreld, npreload_a)
subroutine tmass(x, nc, geo, pm, ms, stifn, partsav, v, ipart, mst, stifint, stt, area, mxt, nc1, nc2, x1, x2, y1, y2, z1, z2)