39 SUBROUTINE xini28(NX ,NAX1D ,NAX2D ,NAX3D ,XEL ,
40 2 VEL ,VREL ,IOUT ,IPROP ,IMAT ,
41 3 IX ,IDS ,MASS ,XINER ,STIFM ,
42 4 STIFR ,VISCM ,VISCR ,UVAR ,NUVAR ,
43 5 UVARN ,NUVARN ,DTE )
129#include "implicit_f.inc"
136 INTEGER IOUT,NUVAR,NUVARN,IPROP,IMAT,
137 . NX ,NAX1D ,NAX2D ,NAX3D , IX(NX), IDS,
138 . GET_U_PNU,GET_U_PID,GET_U_MID,GET_U_MNU,
141 . xel(3,nx),vel(3,nx),vrel(3,nx),
142 . mass(nx) ,xiner(nx) ,stifm(nx) ,
143 . stifr(nx),viscm(nx) ,viscr(nx) ,uvar(nuvar) ,
144 . uvarn(nuvarn*nx), dte,
145 . get_u_mat,get_u_geo,get_u_func,ffac
146 EXTERNAL get_u_pnu,get_u_mnu,get_u_mat,get_u_geo,get_u_pid,
147 . get_u_mid,get_u_func
160 . ms,xk,xc,epstot,f,dfdx,rho,stif,deps,g,dgdx,l0,
162 . xm, xkm, xcm, fact, xn, dtc, dtk
163 INTEGER I,K,NB1,NB2,NB3,MB1,MB2,MB3,MB4,MB5,,IFV
204 rho =get_u_geo(3,iprop)
209 . sqrt((xel(1,2)-xel(1,1))*(xel(1,2)-xel(1,1))
210 . +(xel(2,2)-xel(2,1))*(xel(2,2)-xel(2,1))
211 . +(xel(3,2)-xel(3,1))*(xel(3,2)-xel(3,1)))
215 mass(1) =half*rho*lprev
216 IF (lprev<=em15)
THEN
227 IF(mass(1)<=em15)
THEN
240 . sqrt((xel(1,k+1)-xel(1,k))*(xel(1,k+1)-xel(1,k))
241 . +(xel(2,k+1)-xel(2,k))*(xel(2,k+1)-xel(2,k))
242 . +(xel(3,k+1)-xel(3,k))*(xel(3,k+1)-xel(3,k)))
243 IF (lnext<=em15)
THEN
254 mass(k) = half*rho*(lprev+lnext)
256 uvar(nb1) =uvar(nb1)+lnext
257 IF(mass(k)<=em15)
THEN
270 mass(nx) = half*rho*lprev
271 IF(mass(nx)<=em15)
THEN
283 xk =get_u_geo(4,iprop)
285 ifunct=get_u_pnu(1,iprop,kfunc)
287 xc =get_u_geo(5,iprop)
288 ifv=get_u_pnu(2,iprop,kfunc)
289 ffac=get_u_geo(12,iprop)
291 IF (ifunct==0.AND.ifv==0)
THEN
297 ELSEIF (ifunct==0.AND.ifv/=0)
THEN
308 f =get_u_func(ifunct,epstot,dfdx)
316 g=get_u_func(ifv,deps,dgdx)
321 IF( stif/uvar(nb1)<=em15
322 . .AND.(f*dgdx+xc)/uvar(nb1)<=em15)
THEN
338 xm = rho*uvarn(mb3+k-1)
342 xkm = stif/uvarn(mb3+k-1)
345 xcm = (f*dgdx+xc)/uvarn(mb3+k-1)
346 IF(xcm+xkm<em15)xm =one
362 viscm(1) =(f*dgdx+xc)/uvarn(mb3)
363 stifm(1) =stif/uvarn(mb3)
365 fact =one/uvarn(mb3+k-2) + one/uvarn(mb3+k-1)
367 viscm(k) =(f*dgdx+xc)*fact
369 viscm(nx) =(f*dgdx+xc)/uvarn(mb3+nx-2)
370 stifm(nx) =stif/uvarn(mb3+nx-2)
380 uvarn(mb1+k-1)=mass(k)
383 WRITE(iout,1000) ids,l0,rho*l0,stif/l0
384 1000
FORMAT(
' NSTRAND ELEMENT CHECKING :',/,
385 .
' ------------------------ ',/,
386 .
' ELEMENT IDENTIFIER . . . .',i8/,
387 .
' TOTAL LENGTH . . . . . . .',e12.4/,
388 .
' MASS . . . . . . . . . . .',e12.4/,
389 .
' INITIAL GLOBAL STIFFNESS .',e12.4//)
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 xini28(nx, nax1d, nax2d, nax3d, xel, vel, vrel, iout, iprop, imat, ix, ids, mass, xiner, stifm, stifr, viscm, viscr, uvar, nuvar, uvarn, nuvarn, dte)