32 SUBROUTINE ply_accele(INOD,MS_LAYER,ZI_LAYER,MS,NODFT,NODLT,
33 . NPLYMAX,NPLYXFE,NDDIM,MSZ2 )
41#include "implicit_f.inc"
52 INTEGER NODFT,NODLT,NDDIM,NPLYMAX,NPLYXFE,INOD(*)
55 . ms_layer(nplyxfe,*), zi_layer(nplyxfe,*),
63 . rtmp, fn1,fn2,fn3,fac,msi,fm1,fm2,fm3,iner,
64 . mass,
alpha(nddim),f1,f3,f2,mdt1,mdt2,mdt3,
65 . fply, mply,df1,df2,df3,kzi,mass_node,beta
69 IF(iplyxfem == 2 )
THEN
70#include "vectorize.inc"
85 IF(ms_layer(n,j) > zero)
THEN
87 . ms_layer(n,j)*zi_layer(n,j)*zi_layer(n,j)
88 kzi=kzi+
ply(j)%A(4,n)*zi_layer(n,j)
95 IF(ms_layer(n,j) > zero)
THEN
96 mass_node = mass_node + ms_layer(n,j)
100 IF(ms_layer(n,j) > zero)
THEN
101 beta = ms(nn)/mass_node
102 fac = one/(dtfacx*dtfacx)
103 mass =fac*dt2*dt2*
ply(j)%A(4,n)
107 mdt1 = mdt1 +
ply(j)%A(1,n)*zi_layer(n,j)
108 mdt2 = mdt2 +
ply(j)%A(2,n)*zi_layer(n,j)
109 mdt3 = mdt3 +
ply(j)%A(3,n)*zi_layer(n,j)
111 f1 = f1 +
ply(j)%A(1,n)
112 f2 = f2 +
ply(j)%A(2,n)
113 f3 = f3 +
ply(j)%A(3,n)
124 IF(ms_layer(n,j) > zero)
THEN
125 beta = ms(nn)/mass_node
126 fply = beta*ms_layer(n,j)/ms(nn)
127 mply = zi_layer(n,j)*ms_layer(n,j)/msz2(n)
129 ply(j)%A(1,n)=
ply(j)%A(1,n) - f1*fply
130 ply(j)%A(2,n)=
ply(j)%A(2,n) - f2*fply
131 ply(j)%A(3,n)=
ply(j)%A(3,n) - f3*fply
137#include "vectorize.inc"
152 IF(ms_layer(n,j) > zero)
THEN
154 . ms_layer(n,j)*zi_layer(n,j)*zi_layer(n,j)
155 kzi=kzi+
ply(j)%A(4,n)*zi_layer(n,j)
161 IF(ms_layer(n,j) > zero)
THEN
162 fac = one/(dtfacx*dtfacx)
163 mass =fac*dt2*dt2*
ply(j)%A(4,n)
167 mdt1 = mdt1 +
ply(j)%A(1,n)*zi_layer(n,j)
168 mdt2 = mdt2 +
ply(j)%A(2,n)*zi_layer(n,j)
169 mdt3 = mdt3 +
ply(j)%A(3,n)*zi_layer(n,j)
171 f1 = f1 +
ply(j)%A(1,n)
172 f2 = f2 +
ply(j)%A(2,n)
173 f3 = f3 +
ply(j)%A(3,n)
175!to be checked
IF(
ply(j)%A(4,n) == zero)
THEN
185 fply = ms_layer(n,j)/ms(nn)
186 mply = zi_layer(n,j)*ms_layer(n,j)/msz2(n)
187 ply(j)%A(1,n)=
ply(j)%A(1,n) - f1*fply - mply*mdt1
188 ply(j)%A(2,n)=
ply(j)%A(2,n) - f2*fply - mply*mdt2
189 ply(j)%A(3,n)=
ply(j)%A(3,n) - f3*fply - mply*mdt3
197 CALL plya(j,nodft,nodlt,nplyxfe, inod,
alpha,
198 . ms_layer,
ply(j)%A(1,1))
208 SUBROUTINE plya(J,NODFT,NODLT,NPLYXFE,INOD,ALPHA,MS,A)
215#include "implicit_f.inc"
222 INTEGER NODFT,NODLT,NPLYXFE,INOD(*),J
225 . ms(nplyxfe,*),a(4,*),
alpha(*)
231 . rtmp, fn1,fn2,fn3,fac,msi,fm1,fm2,fm3,iner,
235#include "vectorize.inc"
239 IF(ms(n,j) > zero)
THEN
240 mass =
alpha(nn)*ms(n,j)
242 a(1,n) = a(1,n) * rtmp
243 a(2,n) = a(2,n) * rtmp
244 a(3,n) = a(3,n) * rtmp
subroutine ply_accele(inod, ms_layer, zi_layer, ms, nodft, nodlt, nplymax, nplyxfe, nddim, msz2)