31 1 INTSTAMP ,NPC ,TF ,SKEW ,NODNX_SMS,
41#include "implicit_f.inc"
48#include "intstamp_c.inc"
52 INTEGER NPC(*), NODNX_SMS(*), NPBY(NNPBY,*)
55 . tf(*), skew(lskew,*), v(3,*), vr(3,*), ms(*), x(3,*), d(3,*),
61 INTEGER NN, IRB, MAIN, J, INTDAMP, MSR, MSRR, IROT
64 . dw,
alpha, mass, vis, stf, str, inm, vx, vy, vz,
72 intdamp=intstamp(nn)%INTDAMP
73 alpha=intstamp(nn)%DAMP
74 mass=intstamp(nn)%MASS
76 vis =
alpha*sqrt(four*mass*stf)
79 fvx=vis*intstamp(nn)%V(1)
80 fvy=vis*intstamp(nn)%V(2)
81 fvz=vis*intstamp(nn)%V(3)
82 dw=-(fvx*v(1,msr)+fvy*v(2,msr)+fvz*v(3,msr))
85 fvx=vis*(intstamp(nn)%V(1)-intstamp(intdamp)%V(1))
86 fvy=vis*(intstamp(nn)%V(2)-intstamp(intdamp)%V(2))
87 fvz=vis*(intstamp(nn)%V(3)-intstamp(intdamp)%V(3))
88 dw=-two*( fvx*(v(1,msr)-v(1,msrr))
89 . +fvy*(v(2,msr)-v(2,msrr))
90 . +fvz*(v(3,msr)-v(3,msrr)))
92 intstamp(nn)%DW = half * dt2 * dw
93 irot=intstamp(nn)%IROT
95 alpha=intstamp(nn)%DAMPR
96 inm=
min(intstamp(nn)%IN(1),
100 vis =
alpha*sqrt(four*inm*str)
102 fvx=vis*intstamp(nn)%VR(1)
103 fvy=vis*intstamp(nn)%VR(2)
104 fvz=vis*intstamp(nn)%VR(3)
105 dw=-(fvx*vr(1,msr)+fvy*vr(2,msr)+fvz*vr(3,msr))
107 fvx=vis*(intstamp(nn)%VR(1)-intstamp(intdamp)%VR(1))
108 fvy=vis*(intstamp(nn)%VR(2)-intstamp(intdamp)%VR(2))
109 fvz=vis*(intstamp(nn)%VR(3)-intstamp(intdamp)%VR(3))
110 dw=-two*( fvx*(vr(1,msr)-vr(1,msrr))
111 . +fvy*(vr(2,msr)-vr(2,msrr))
112 . +fvz*(vr(3,msr)-vr(3,msrr)))
114 intstamp(nn)%DW = intstamp(nn)%DW + half * dt2 * dw
122 irb =intstamp(nn)%IRB
123 main=intstamp(nn)%MSR
124 intstamp(nn)%V(1) =v(1,main)
125 intstamp(nn)%V(2) =v(2,main)
126 intstamp(nn)%V(3) =v(3,main)
127 intstamp(nn)%D(1) =d(1,main)
128 intstamp(nn)%D(2) =d(2,main)
129 intstamp(nn)%D(3) =d(3,main)
130 intstamp(nn)%XG(1) =x(1,main)
131 intstamp(nn)%XG(2) =x(2,main)
132 intstamp(nn)%XG(3) =x(3,main)
133 IF(intstamp(nn)%IROT/=0)
THEN
134 intstamp(nn)%VR(1) =vr(1,main)
135 intstamp(nn)%VR(2) =vr(2,main)
136 intstamp(nn)%VR(3) =vr(3,main)
137 intstamp(nn)%MASS =ms(main)
139 intstamp(nn)%ROT(j)=rby(j,irb)