39 SUBROUTINE xinit3(ELBUF_STR,KXX ,IXX ,X ,V ,
41 3 SKEW ,DTELEM ,NEL ,STIFN ,STIFR ,
42 4 PARTSAV ,IPARTX ,GEO ,
43 5 ITAB ,UIX ,XUSR ,VUSR ,
44 6 VRUSR ,UMASS ,UINER ,USTIFM ,USTIFR ,
45 7 UVISM ,UVISR ,IGEO ,NFT)
55#include "implicit_f.inc"
67 INTEGER KXX(NIXX,*), IXX(*), IPARTX(*),ITAB(*),
68 . NEL, UIX(*),IGEO(NPROPGI,*), NFT
70 TYPE(ELBUF_STRUCT_),
TARGET :: ELBUF_STR
73 . x(3,*), v(*), vr(*), xmas(*), xin(*),
74 . skew(lskew,*), dtelem(*),stifn(*),stifr(*),partsav(20,*),
75 . geo(npropg,*),xusr(3,*), vusr(3,*),vrusr(3,*),
76 . umass(*) ,uiner(*) ,ustifm(*) ,ustifr(*) ,uvism(*) ,uvisr(*)
80 INTEGER I, J, IGTYP, NDEPAR, I1,
81 . NUVAR, NUVARN, NUPARAM, IADBUF, NFUNC, IADFUN,
82 . NMAT,IADMAT,NJPID,IADPID,
83 . IADNOD, IMAT, IPROP, NX, K, UID,
84 . NAX1D, NAX2D, NAX3D,IPID1,KVAR,KVARN
86 CHARACTER(LEN=NCHARTITLE)::TITR
89 . DT, DTC, XK, XC, XKR, XCR, XM, XINE, A,
92 TYPE(),
POINTER :: GBUF
94 gbuf => elbuf_str%GBUF
96 ndepar=numelc+numels+numelt+numelq+numelp+numelr+numeltg
101 CALL fretitl2(titr,igeo(npropgi-ltitr+1,ipid1),ltitr)
109 igtyp = nint(geo(12,iprop))
110 nuvar = nint(geo(25,iprop))
111 nuvarn= nint(geo(35,iprop))
117 2 gbuf%OFF(i) ,kxx(1,j),ixx ,itab ,nx ,
118 3 uid ,uix ,xusr ,vusr ,vrusr )
120 nuparam = nint(geo(26,iprop))
121 iadbuf = nint(geo(27,iprop))
123 IF (igtyp == 28)
THEN
124 CALL xini28 (nx ,nax1d ,nax2d ,nax3d ,
125 1 xusr ,vusr ,vrusr ,
126 3 iout ,iprop ,imat ,
128 5 uiner ,ustifm ,ustifr ,uvism ,uvisr ,
129 6 gbuf%VAR(kvar),nuvar ,gbuf%VARN(kvarn),nuvarn ,dte )
130 ELSEIF (igtyp == 29)
THEN
143 CALL xini29 (nx ,nax1d ,nax2d ,nax3d ,
144 1 xusr ,vusr ,vrusr ,
145 3 iout ,iprop ,imat ,
148 6 gbuf%VAR(kvar),nuvar ,gbuf%VARN(kvarn) ,nuvarn
149 ELSEIF (igtyp == 30)
THEN
162 CALL xini30 (nx ,nax1d ,nax2d ,nax3d ,
163 1 xusr ,vusr ,vrusr ,
164 3 iout ,iprop ,imat ,
166 5 uiner ,ustifm ,ustifr ,uvism ,uvisr ,
167 6 gbuf%VAR(kvar) ,nuvar ,gbuf%VARN(kvarn) ,nuvarn ,dte )
168 ELSEIF (igtyp == 31)
THEN
181 CALL xini31 (nx ,nax1d ,nax2d ,nax3d ,
182 1 xusr ,vusr ,vrusr ,
183 3 iout ,iprop ,imat ,
185 5 uiner ,ustifm ,ustifr ,uvism ,uvisr ,
186 6 gbuf%VAR(kvar) ,nuvar ,gbuf%VARN(kvarn) ,nuvarn ,dte )
190 . anmode=aninfo_blind_1,
201 massele=massele+umass(k)
203 gbuf%MASS(i) = massele
205 nanim1d=nanim1d+nax1d
206 nanim2d=nanim2d+nax2d
207 nanim3d=nanim3d+nax3d
210 dtelem(ndepar+i)= dte
216 stifn(i1)=stifn(i1)+ustifm(k)
217 stifr(i1)=stifr(i1)+ustifr(k)
221 CALL xini2u(kxx(1,j),ixx,umass,uiner,xmas,
222 . xin,partsav,x,v,ipartx(j))
283 SUBROUTINE xini2u(KXX,IXX,UMASS,UINER,MS,
284 . XIN,PARTSAV,X,V,IPART)
289#include "implicit_f.inc"
293#include "scr23_c.inc"
297 INTEGER KXX(NIXX),IXX(*),IPART
300 . UMASS(*), UINER(*), MS(*), XIN(*),X(3,*),V(3,*),
305 INTEGER I, K, , I1, NX, IADNOD
325 partsav(1,ip)=partsav(1,ip) + ems
326 partsav(2,ip)=partsav(2,ip) + ems*x(1,i1)
327 partsav(3,ip)=partsav(3,ip) + ems*x(2,i1)
328 partsav(4,ip)=partsav(4,ip) + ems*x(3,i1)
335 partsav(5,ip) =partsav(5,ip) + xi + ems * (yy+zz)
336 partsav(6,ip) =partsav(6,ip) + xi + ems * (zz+xx)
337 partsav(7,ip) =partsav(7,ip) + xi + ems * (xx+yy)
338 partsav(8,ip) =partsav(8,ip) - ems * xy * half
339 partsav(9,ip) =partsav(9,ip) - ems * yz * half
340 partsav(10,ip)=partsav(10,ip) - ems * zx * half
342 partsav(11,ip)=partsav(11,ip) + ems*v(1,i1)
343 partsav(12,ip)=partsav(12,ip) + ems*v(2,i1)
344 partsav(13,ip)=partsav(13,ip) + ems*v(3,i1)
345 partsav(14,ip)=partsav(14,ip) + half * ems *
346 . (v(1,i1)*v(1,i1)+v(2,i1)*v(2,i1)+v(3,i1)*v(3,i1))
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)
subroutine xini29(nx, nax1d, nax2d, nax3d, xel, vel, vrel, iout, iprop, imat, ix, ids, mass, xiner, stifm, stifr, viscm, viscr, uvar, nuvar, uvarn, nuvarn, dte)
subroutine xini30(nx, nax1d, nax2d, nax3d, xel, vel, vrel, iout, iprop, imat, ix, ids, mass, xiner, stifm, stifr, viscm, viscr, uvar, nuvar, uvarn, nuvarn, dte)
subroutine xini31(nx, nax1d, nax2d, nax3d, xel, vel, vrel, iout, iprop, imat, ix, ids, mass, xiner, stifm, stifr, viscm, viscr, uvar, nuvar, uvarn, nuvarn, dte)
subroutine xinit3(elbuf_str, kxx, ixx, x, v, vr, xmas, xin, skew, dtelem, nel, stifn, stifr, partsav, ipartx, geo, itab, uix, xusr, vusr, vrusr, umass, uiner, ustifm, ustifr, uvism, uvisr, igeo, nft)