29 1 MASS ,MS ,PARTSAV,IPART ,MSS ,VOLG,
30 2 XX ,YY ,ZZ ,VX ,VY ,VZ,
31 3 NC ,STI ,STIFN ,DELTAX2,RHO ,DTX,
32 4 DTELEM,MSSX,RHOCP ,MCP ,MCPS ,MCPSX,
37#include "implicit_f.inc"
45 INTEGER IPART(*), NC(MVSIZ,20)
47 . MASS(*), MS(*),PARTSAV(20,*), MSS(8,*),DELTAX2(*),
48 . XX(MVSIZ,20), YY(MVSIZ,20), ZZ(MVSIZ,20),
49 . VX(MVSIZ,20), VY(MVSIZ,20), VZ(MVSIZ,20),STI(*),STIFN(*),
50 . volg(mvsiz),rho(mvsiz),dtx(mvsiz),dtelem(mvsiz),mssx(12,*),
51 . rhocp(*), mcp(*), mcps(8,*),mcpsx(12,*), fill(*)
55#include "vect01_c.inc"
59 INTEGER I, IP,N1,N2, IPERM1(20),IPERM2(20),N
62 . AXX,AYY,AZZ,AXY,AYZ,AZX,AM,BM,FAC,MASSCP
64 DATA iperm1/0,0,0,0,0,0,0,0,1,2,3,4,1,2,3,4,5,6,7,8/
65 DATA iperm2/0,0,0,0,0,0,0,0,2,3,4,1,5,6,7,8,6,7,8,5/
70 mass(i)=fill(i)*rho(i)*volg(i)
71 dtelem(i)=
min(dtelem(i),dtx(i))
72 sti(i) = fill(i) * rho(i) * volg(i) * two / sixty4 /
73 .
max(em20,dtx(i)*dtx(i))
75 am = mass(i)*fac/(eight*fac + twelve)
76 bm = mass(i)*one/(eight*fac + twelve)
85 stifn(nc(i,1))=stifn(nc(i,1))+sti(i)*deltax2(i)
86 stifn(nc(i,2))=stifn(nc(i,2))+sti(i)*deltax2(i)
87 stifn(nc(i,3))=stifn(nc(i,3))+sti(i)*deltax2(i)
88 stifn(nc(i,4))=stifn(nc(i,4))+sti(i)*deltax2(i)
89 stifn(nc(i,5))=stifn(nc(i,5))+sti(i)*deltax2(i)
90 stifn(nc(i,6))=stifn(nc(i,6))+sti(i)*deltax2(i)
91 stifn(nc(i,7))=stifn(nc(i,7))+sti(i)*deltax2(i)
92 stifn(nc(i,8))=stifn(nc(i,8))+sti(i)*deltax2(i)
98 stifn(nc(i,n))=stifn(nc(i,n))+sti(i)
100 mss(n1,i)=mss(n1,i)+ half*bm
101 mss(n2,i)=mss(n2,i)+ half*bm
102 stifn(nc(i,n1))=stifn(nc(i,n1)) + half*sti(i)
103 stifn(nc(i,n2))=stifn(nc(i,n2)) + half*sti(i)
108 partsav(1,ip)=partsav(1,ip) + mass(i)
109 partsav(2,ip)=partsav(2,ip)
110 . + am*(xx(i,1)+xx(i,2)+xx(i,3)+xx(i,4)
111 . +xx(i,5)+xx(i,6)+xx(i,7)+xx(i,8))
112 . + bm*(xx(i,9) +xx(i,10)+xx(i,11)+xx(i,12)+xx(i,13)+xx(i,14)
113 . +xx(i,15)+xx(i,16)+xx(i,17)+xx(i,18)+xx(i,19)+xx(i,20))
114 partsav(3,ip)=partsav(3,ip)
115 . + am*(yy(i,1)+yy(i,2)+yy(i,3)+yy(i,4)
116 . +yy(i,5)+yy(i,6)+yy(i,7)+yy(i,8))
117 . + bm*(yy(i,9) +yy(i,10)+yy(i,11)+yy(i,12)+yy(i,13)+yy(i,14)
118 . +yy(i,15)+yy(i,16)+yy(i,17)+yy(i,18)+yy(i,19)+yy(i,20))
119 partsav(4,ip)=partsav(4,ip)
121 . +zz(i,5)+zz(i,6)+zz(i,7)+zz(i,8))
122 . + bm*(zz(i,9) +zz(i,10)+zz(i,11)+zz(i,12)+zz(i,13)+zz(i,14)
123 . +zz(i,15)+zz(i,16)+zz(i,17)+zz(i,18)+zz(i,19)+zz(i,20))
125 . +xx(i,3)*xx(i,3)+xx(i,4)*xx(i,4)
126 . +xx(i,5)*xx(i,5)+xx(i,6)*xx(i,6)
127 . +xx(i,7)*xx(i,7)+xx(i,8)*xx(i,8))
128 . +bm*(xx(i,9) *xx(i,9) +xx(i,10)*xx(i,10)
129 . +xx(i,11)*xx(i,11)+xx(i,12)*xx(i,12)
130 . +xx(i,13)*xx(i,13)+xx(i,14)*xx(i,14)
131 . +xx(i,15)*xx(i,15)+xx(i,16)*xx(i,16)
132 . +xx(i,17)*xx(i,17)+xx(i,18)*xx(i,18)
133 . +xx(i,19)*xx(i,19)+xx(i,20)*xx(i,20
134 ayy = am*(yy(i,1)*yy(i,1)+yy(i,2)*yy(i,2)
135 . +yy(i,3)*yy(i,3)+yy(i,4)*yy(i,4)
136 . +yy(i,5)*yy(i,5)+yy(i,6)*yy(i,6)
137 . +yy(i,7)*yy(i,7)+yy(i,8)*yy(i,8))
138 . +bm*(yy(i,9) *yy(i,9) +yy(i,10)*yy(i,10)
139 . +yy(i,11)*yy(i,11)+yy(i,12)*yy(i,12)
140 . +yy(i,13)*yy(i,13)+yy(i,14)*yy(i,14)
142 . +yy(i,17)*yy(i,17)+yy(i,18)*yy(i,18)
143 . +yy(i,19)*yy(i,19)+yy(i,20)*yy(i,20))
144 azz = am*(zz(i,1)*zz(i,1)+zz(i,2)*zz(i,2)
145 . +zz(i,3)*zz(i,3)+zz(i,4)*zz(i,4)
146 . +zz(i,5)*zz(i,5)+zz(i,6)*zz(i,6)
147 . +zz(i,7)*zz(i,7)+zz(i,8)*zz(i,8))
148 . +bm*(zz(i,9) *zz(i,9) +zz(i,10)*zz(i,10)
149 . +zz(i,11)*zz(i,11)+zz(i,12)*zz(i,12)
150 . +zz(i,13)*zz(i,13)+zz(i,14)*zz(i,14)
151 . +zz(i,15)*zz(i,15)+zz(i,16)*zz(i,16)
152 . +zz(i,17)*zz(i,17)+zz(i,18)*zz(i,18)
153 . +zz(i,19)*zz(i,19)+zz(i,20)*zz(i,20))
154 axy = am*(xx(i,1)*yy(i,1)+xx(i,2)*yy(i,2)
155 . +xx(i,3)*yy(i,3)+xx(i,4)*yy(i,4)
156 . +xx(i,5)*yy(i,5)+xx(i,6)*yy(i,6)
157 . +xx(i,7)*yy(i,7)+xx(i,8)*yy(i,8))
158 . +bm*(xx(i,9) *yy(i,9) +xx(i,10)*yy(i,10)
159 . +xx(i,11)*yy(i,11)+xx(i,12)*yy(i,12)
160 . +xx(i,13)*yy(i,13)+xx(i,14)*yy(i,14)
161 . +xx(i,15)*yy(i,15)+xx(i,16)*yy(i,16)
162 . +xx(i,17)*yy(i,17)+xx(i,18)*yy(i,18)
163 . +xx(i,19)*yy(i,19)+xx(i,20)*yy(i,20))
164 ayz = am*(yy(i,1)*zz(i,1)+yy(i,2)*zz(i,2)
165 . +yy(i,3)*zz(i,3)+yy(i,4)*zz(i,4)
166 . +yy(i,5)*zz(i,5)+yy(i,6)*zz(i,6)
167 . +yy(i,7)*zz(i,7)+yy(i,8)*zz(i,8))
168 . +bm*(yy(i,9) *zz(i,9) +yy(i,10)*zz(i,10)
169 . +yy(i,11)*zz(i,11)+yy(i,12)*zz(i,12)
170 . +yy(i,13)*zz(i,13)+yy(i,14)*zz(i,14)
171 . +yy(i,15)*zz(i,15)+yy(i,16)*zz(i,16)
172 . +yy(i,17)*zz(i,17)+yy(i,18)*zz(i,18)
173 . +yy(i,19)*zz(i,19)+yy(i,20)*zz(i,20))
174 azx = am*(zz(i,1)*xx(i,1)+zz(i,2)*xx(i,2)
175 . +zz(i,3)*xx(i,3)+zz(i,4
176 . +zz(i,5)*xx(i,5)+zz(i,6)*xx(i,6)
177 . +zz(i,7)*xx(i,7)+zz(i,8)*xx(i,8))
178 . +bm*(zz(i,9) *xx(i,9) +zz(i,10)*xx(i,10)
179 . +zz(i,11)*xx(i,11)+zz(i,12)*xx(i,12)
180 . +zz(i,13)*xx(i,13)+zz(i,14)*xx(i,14)
181 . +zz(i,15)*xx(i,15)+zz(i,16)*xx(i,16)
182 . +zz(i,17)*xx(i,17)+zz(i,18)*xx(i,18)
183 . +zz(i,19)*xx(i,19)+zz(i,20)*xx(i,20))
184 partsav(5,ip) =partsav(5,ip) + (ayy+azz)
185 partsav(6,ip) =partsav(6,ip) + (azz+axx)
186 partsav(7,ip) =partsav(7,ip) + (axx+ayy)
187 partsav(8,ip) =partsav(8,ip) - axy
188 partsav(9,ip) =partsav(9,ip) - ayz
189 partsav(10,ip)=partsav(10,ip) - azx
191 partsav(11,ip)=partsav(11,ip)
192 . + am*(vx(i,1)+vx(i,2)+vx(i,3)+vx(i,4)
193 . +vx(i,5)+vx(i,6)+vx(i,7)+vx(i,8))
194 . + bm*(vx(i,9) +vx(i,10)+vx(i,11)+vx(i,12)+vx(i,13)+vx(i,14)
195 . +vx(i,15)+vx(i,16)+vx(i,17)+vx(i,18)+vx(i,19)+vx(i,20))
196 partsav(12,ip)=partsav(12,ip)
197 . + am*(vy(i,1)+vy(i,2)+vy(i,3)+vy(i,4)
198 . +vy(i,5)+vy(i,6)+vy(i,7)+vy(i,8))
199 . + bm*(vy(i,9) +vy(i,10)+vy(i,11)+vy(i,12)+vy(i,13)+vy(i,14)
200 . +vy(i,15)+vy(i,16)+vy(i,17)+vy(i,18)+vy(i,19)+vy(i,20))
201 partsav(13,ip)=partsav(13,ip)
202 . + am*(vz(i,1)+vz(i,2)+vz(i,3)+vz(i,4)
203 . +vz(i,5)+vz(i,6)+vz(i,7)+vz(i,8))
204 . + bm*(vz(i,9) +vz(i,10)+vz(i,11)+vz(i,12)+vz(i,13)+vz(i,14)
205 . +vz(i,15)+vz(i,16)+vz(i,17)+vz
206 partsav(14,ip)=partsav(14,ip) + half *
207 . (am*(vx(i,1)*vx(i,1)+vx(i,2)*vx(i,2)
208 . +vx(i,3)*vx(i,3)+vx(i,4)*vx(i,4)
209 . +vx(i,5)*vx(i,5)+vx(i,6)*vx(i,6)
210 . +vx(i,7)*vx(i,7)+vx(i,8)*vx(i,8)
211 . +vy(i,1)*vy(i,1)+vy(i,2)*vy(i,2)
212 . +vy(i,3)*vy(i,3)+vy(i,4)*vy(i,4)
213 . +vy(i,5)*vy(i,5)+vy
214 . +vy(i,7)*vy(i,7)+vy(i,8)*vy(i,8)
215 . +vz(i,1)*vz(i,1)+vz(i,2)*vz(i,2)
216 . +vz(i,3)*vz(i,3)+vz(i,4)*vz(i,4)
217 . +vz(i,5)*vz(i,5)+vz(i,6)*vz(i,6)
218 . +vz(i,7)*vz(i,7)+vz(i,8)*vz(i,8))
219 . +bm*(vx(i,9) *vx(i,9) +vx(i,10)*vx(i,10)
220 . +vx(i,11)*vx(i,11)+vx(i,12)*vx(i,12)
221 . +vx(i,13)*vx(i,13)+vx(i,14)*vx(i,14)
222 . +vx(i,15)*vx(i,15)+vx(i,16)*vx(i,16)
223 . +vx(i,17)*vx(i,17)+vx(i,18)*vx(i,18)
224 . +vx(i,19)*vx(i,19)+vx(i,20)*vx(i,20)
225 . +vy(i,9) *vy(i,9) +vy(i,10)*vy(i,10)
226 . +vy(i,11)*vy(i,11)+vy(i,12)*vy(i,12)
227 . +vy(i,13)*vy(i,13)+vy(i,14)*vy(i,14)
228 . +vy(i,15)*vy(i,15)+vy(i,16)*vy(i,16)
229 . +vy(i,17)*vy(i,17)+vy(i,18)*vy(i,18)
230 . +vy(i,19)*vy(i,19)+vy(i,20)*vy(i,20)
231 . +vz(i,9) *vz(i,9) +vz(i,10)*vz(i,10)
232 . +vz(i,11)*vz(i,11)+vz(i,12)*vz(i,12)
233 . +vz(i,13)*vz(i,13)+vz(i,14)*vz(i,14)
234 . +vz(i,15)*vz(i,15)+vz(i,16)*vz(i,16)
235 . +vz(i,17)*vz(i,17)+vz(i,18)*vz(i,18)
236 . +vz(i,19)*vz(i,19)+vz(i,20)*vz(i,20)))
243 masscp=fill(i)*rhocp(i)*volg(i)
245 am = masscp*fac/(eight*fac + twelve)
246 bm = masscp*one/(eight*fac + twelve)
261 mcps(n1,i)=mcps(n1,i)+ half*bm
262 mcps(n2,i)=mcps(n2,i)+ half*bm
343 . SIG ,PM ,VOL ,SIGSP ,
344 . SIGI ,EINT ,RHO ,UVAR ,EPS ,
345 . IX ,NIX ,NSIGI ,IPT ,NUVAR ,
346 . NEL ,IUSER ,IDEF ,NSIGS ,STRSGLOB,
347 . STRAGLOB,JHBE ,IGTYP ,X ,BUFGAMA ,
348 . MAT ,EPSP ,L_PLA ,PT ,SIGB ,
349 . L_SIGB ,IPM ,BUFMAT ,VOLDP )
353#include "implicit_f.inc"
357#include "param_c.inc"
358#include "com01_c.inc"
359#include "vect01_c.inc"
363 INTEGER IPM(NPROPMI,*)
364 INTEGER NIX,N,JPS,JHBE,IGTYP,NSIGI,NUVAR,NEL,IUSER,NSIGS,
366 INTEGER IX(NIX,*),STRSGLOB(*),STRAGLOB(*),MAT(NEL),PT(*),(NEL*L_SIGB)
369 . SIG(NEL,6) , EINT(*), RHO(*), SIGSP(NSIGI,*),
370 . PM(NPROPM,*), VOL(*), UVAR(*), SIGI(NSIGS,*),
371 . EPS(NEL,6),X(3,*),BUFGAMA(*),EPSP(*),BUFMAT(*)
377 INTEGER I,J,IIP,JPT, II, JJ, IPT, IPP,IUS,IPSU,JPS1,MA,IFLAGINI,
378 . nvar_tmp,iadb,nrate
391 jps1 = nvsolid1 + (ipt-1)*6
394 IF (straglob(i) == 1 .OR. strsglob(i) == 1)
THEN
397 gama(2)=bufgama(i + nel)
398 gama(3)=bufgama(i + 2*nel)
399 gama(4)=bufgama(i + 3*nel)
400 gama(5)=bufgama(i + 4*nel)
401 gama(6)=bufgama(i + 5*nel)
416 IF(jj==0)iflagini = 0
418 IF (iflagini == 1)
THEN
420 IF(nvsolid1 /= 0 )
THEN
421 sig(i,1)=sigsp(jps+1,jj)
423 sig(i,3)=sigsp(jps+3,jj)
424 sig(i,4)=sigsp(jps+4,jj)
425 sig(i,5)=sigsp(jps+5,jj)
426 sig(i,6)=sigsp(jps+6,jj)
427 IF (strsglob(i) == 1)
THEN
434 CALL srota6_m1(x,ix(1,ii),jcvt,tens,gama,jhbe,igtyp)
442 IF(l_pla /= 0 .AND. sigsp(jps+7,jj) /= zero)
443 . epsp(i) = sigsp(jps+7,jj)
444 IF (sigsp(jps+8,jj) /= zero) eint(i)=sigsp(jps+8,jj)
445 IF (sigsp(jps+9,jj) /= zero)
THEN
446 voldp(i) = sigsp(jps+9,jj)*voldp(i) / rho(i)
447 vol(i) = sigsp(jps+9,jj)*vol(i) / rho(i)
448 rho(i) = sigsp(jps+9,jj)
452 IF (mtn >= 28 .AND. iuser == 1)
THEN
453 IF (mtn == 36 .and. l_sigb == 6)
THEN
455 nrate = nint(bufmat(iadb))
456 nvar_tmp = sigsp(nvsolid1 + nvsolid2 + 3, jj)
457 ipsu = nvsolid1 + nvsolid2 + 4 + (ipt - 1)*nvar_tmp
459 ipp = i + (ius -1)*nel
460 sigb(ipp) = sigsp(ipsu + nrate + ius, jj)
462 ELSEIF (mtn == 112)
THEN
463 nvar_tmp = sigsp(nvsolid1 + nvsolid2 + 3, jj)
464 ipsu = nvsolid1 + nvsolid2 + 4 + (ipt - 1)*nvar_tmp
467 epsp(ipp) = sigsp(ipsu + ius, jj)
469 ELSE IF (mtn /= 36)
THEN
470 nvar_tmp = sigsp(nvsolid1 + nvsolid2 + 3, jj)
471 ipsu = nvsolid1 + nvsolid2 + 4 + (ipt - 1)*nvar_tmp
473 ipp = i + (ius -1)*nel
474 uvar(ipp) = sigsp(ipsu + ius, jj)
476 DO ius = nvar_tmp + 1, nuvar
477 ipp = i + (ius -1)*nel
483 IF (nvsolid2 /= 0 .AND. idef /=0)
THEN
484 eps(i,1) = sigsp(jps1 + 1 , jj)
485 eps(i,2) = sigsp(jps1 + 2 , jj)
486 eps(i,3) = sigsp(jps1 + 3 , jj)
487 eps(i,4) = sigsp(jps1 + 4 , jj)
488 eps(i,5) = sigsp(jps1 + 5 , jj)
489 eps(i,6) = sigsp(jps1 + 6 , jj)
490 IF (straglob(i) == 1)
THEN
497 CALL srota6_m1(x,ix(1,ii),jcvt,tens,gama,jhbe,igtyp)