37 . ELBUF_STR,NEL ,ILAW ,JTHE ,IFAIL ,
38 . IPM ,PM ,GEO ,TEMPEL ,OFF ,
39 . MAT ,PID ,NGL ,TIME ,DTIME ,
40 . AL ,NPF ,TF ,EXX ,EXY ,
41 . EXZ ,KXX ,KYY ,KZZ ,F1 ,
42 . F2 ,F3 ,M1 ,M2 ,M3 ,
43 . BUFMAT ,NPROPG ,NPROPMI ,NPROPM ,NUMMAT ,
44 . NUMGEO ,SBUFMAT ,SNPC ,STF ,IOUT ,
45 . ISTDO ,NUVAR ,UVAR ,EPSD ,IMAT ,
46 . FOR ,MOM ,EINT ,ISMSTR ,MAT_PARAM,
56#include "implicit_f.inc"
60 INTEGER ,
INTENT(IN) :: NEL
61 INTEGER ,
INTENT(IN) :: ILAW
62 INTEGER ,
INTENT(IN) :: IMAT
63 INTEGER ,
INTENT(IN) :: JTHE
64 INTEGER ,
INTENT(IN) :: IFAIL
65 INTEGER ,
INTENT(IN) :: SBUFMAT
66 INTEGER ,
INTENT(IN) :: SNPC
67 INTEGER ,
INTENT(IN) :: STF
68 INTEGER ,
INTENT(IN) :: NUMMAT
69 INTEGER ,
INTENT(IN) :: NUMGEO
70 INTEGER ,
INTENT(IN) :: NPROPMI
71 INTEGER ,
INTENT(IN) :: NPROPM
72 INTEGER ,
INTENT(IN) :: NPROPG
73 INTEGER ,
INTENT(IN) :: IOUT
74 INTEGER ,
INTENT(IN) :: ISTDO
75 INTEGER ,
INTENT(IN) :: NUVAR
76 INTEGER ,
INTENT(IN) :: ISMSTR
77 INTEGER ,
INTENT(IN) :: NTABLE
78 TYPE(ttable),
DIMENSION(NTABLE),
INTENT(INOUT) :: TABLE
79 INTEGER ,
DIMENSION(SNPC) ,
INTENT(IN) :: NPF
80 INTEGER ,
DIMENSION(NPROPMI,NUMMAT) ,
INTENT(IN) :: IPM
81 INTEGER ,
DIMENSION(NEL) ,
INTENT(IN) :: MAT
82 INTEGER ,
DIMENSION(NEL) ,
INTENT(IN) :: PID
83 INTEGER ,
DIMENSION(NEL) ,
INTENT(IN) :: NGL
86 my_real ,
INTENT(IN) :: pm(npropm,nummat)
87 my_real ,
INTENT(IN) :: geo(npropg,numgeo)
89 my_real ,
INTENT(IN) :: bufmat(sbufmat)
90 my_real ,
DIMENSION(NEL) ,
INTENT(IN) :: al
91 my_real ,
DIMENSION(NEL) ,
INTENT(INOUT) :: tempel
92 my_real ,
DIMENSION(NEL) ,
INTENT(INOUT) :: exx,exy,exz
93 my_real ,
DIMENSION(NEL) ,
INTENT(INOUT) :: kxx,kyy,kzz
94 my_real ,
DIMENSION(NEL) ,
INTENT(INOUT) :: off
95 my_real ,
DIMENSION(NEL) ,
INTENT(INOUT) :: f1,f2,f3
96 my_real ,
DIMENSION(NEL) ,
INTENT(INOUT) :: m1,m2
97 my_real ,
DIMENSION(NEL,2),
INTENT(INOUT) :: eint
98 my_real ,
DIMENSION(NEL,3),
INTENT(INOUT) ::
for,mom
99 my_real ,
DIMENSION(NEL) ,
INTENT(OUT) :: epsd
100 my_real ,
DIMENSION(NEL,NUVAR) ,
INTENT(INOUT) :: uvar
101 TYPE (ELBUF_STRUCT_) ,
INTENT(INOUT) :: ELBUF_STR
102 TYPE (MATPARAM_STRUCT_) ,
INTENT(IN) :: MAT_PARAM
106 INTEGER :: ,IPID,IPLA,ISRATE,NUPARAM,NFUNC,IADBUF,IFUNC(100)
108 my_real ,
DIMENSION(NEL) :: dpla,svm,pressure,degmb,degfx,degsh,sigy,
116 asrate =
min(one, pm(9,imat)*dtime)
125 epsdi = half*(exx(i)**2) + (half*exy(i))**2 + (half*exz(i))**2
126 epsdi = al(i)*sqrt(three*epsdi)/three_half
129 epsd(i)= asrate*epsdi + (one - asrate)*epsd(i)
139 exx(i) = exx(i) * dtime
141 exz(i) = exz(i) * dtime
142 kxx(i) = kxx(i) * dtime
143 kyy(i) = kyy(i) * dtime
144 kzz(i) = kzz(i) * dtime
146 degmb(i) =
for(i,1)*exx(i)
147 degsh(i) =
for(i,2)*exy(i)+
for(i,3)*exz(i)
148 degfx(i) = mom(i,1)*kxx(i)+mom(i,2)*kyy(i)+mom(i,3)*kzz(i)
152 IF (elbuf_str%GBUF%G_DMGSCL > 0)
THEN
155 for(i,2) =
for(i,2)/
max(em20,elbuf_str%GBUF%DMGSCL(i))
156 for(i,3) =
for(i,3)/
max(em20,elbuf_str%GBUF%DMGSCL(i))
159 mom(i,3) = mom(i,3)/
max(em20,elbuf_str%GBUF%DMGSCL(i))
163 ipla = elbuf_str%GBUF%G_PLA
167 dpla(i) = elbuf_str%GBUF%PLA(i)
169 . ( mom(i,1)*mom(i,1) /
max(ixx,em20)
170 . + mom(i,2)*mom(i,2) /
max(iyy,em20)
171 . + mom(i,3)*mom(i,3) /
max(izz,em20))
172 svm0(i) = sqrt(svm0(i)) /
area
184 . off ,exx ,exy ,exz ,kxx,
185 . kyy ,kzz ,al ,f1 ,f2 ,
186 . f3 ,m1 ,m2 ,m3 ,nel,
191 . pm ,
for ,mom ,eint ,geo ,
192 . off ,elbuf_str%GBUF%PLA ,exx ,exy ,exz ,
193 . kxx ,kyy ,kzz ,al ,f1 ,
194 . f2 ,f3 ,m1 ,m2 ,m3 ,
195 . nel ,mat ,pid ,ngl ,ipm ,
196 . nummat ,nuvar ,uvar ,sigy )
199 iadbuf = ipm(7 ,imat)
200 nuparam = ipm(9 ,imat)
203 ifunc(i) = ipm(10+i,imat)
206 . nel ,ngl ,mat ,pid ,nuparam ,bufmat(iadbuf),
207 . geo ,off ,elbuf_str%GBUF%PLA ,al ,
208 . exx ,exy ,exz ,kxx ,kyy ,kzz ,
209 . f1 ,f2 ,f3 ,m1 ,m2 ,m3 ,
210 .
for ,mom ,pm ,nuvar ,uvar ,nfunc ,
211 . ifunc ,tf ,npf ,sigy )
218 IF (ipla > 0 .OR. ifail > 0)
THEN
220 dpla(i) = elbuf_str%GBUF%PLA(i) - dpla(i)
224 svm(i) = f1(i)*f1(i) + three *
area *
225 . ( m1(i)*m1(i) /
max(ixx,em20)
226 . + m2(i)*m2(i) /
max(iyy,em20)
227 . + m3(i)*m3(i) /
max(izz,em20) )
228 svm(i) = sqrt(svm(i)) /
area
229 pressure(i) = third * f1(i) /
area
234 IF (elbuf_str%GBUF%G_WPLA > 0) elbuf_str%GBUF%WPLA(i) = elbuf_str%GBUF%WPLA(i) +
235 . half*(svm(i)+svm0(i))*dpla(i)*
area*al(i)
246 CALL fail_beam3(elbuf_str ,mat_param%FAIL(1),nummat ,
247 . npropm ,snpc ,stf ,
248 . nel ,imat ,jthe ,dpla ,
250 . off ,epsd ,npf ,tf ,
251 . time ,iout ,istdo ,
252 . svm ,pressure,
area ,al ,
253 . f1 ,f2 ,f3 ,m1 ,m2 ,
254 . m3 ,ismstr ,exx ,exy ,exz ,
255 . kxx ,kyy ,kzz ,dtime ,
256 . ntable ,table ,elbuf_str%GBUF%PLA , sigy )
259 IF (elbuf_str%GBUF%G_DMGSCL > 0)
THEN
261 f1(i) = f1(i)*elbuf_str%GBUF%DMGSCL(i)
262 f2(i) = f2(i)*elbuf_str%GBUF%DMGSCL(i)
263 f3(i) = f3(i)*elbuf_str%GBUF%DMGSCL(i)
264 m1(i) = m1(i)*elbuf_str%GBUF%DMGSCL(i)
265 m2(i) = m2(i)*elbuf_str%GBUF%DMGSCL(i)
266 m3(i) = m3(i)*elbuf_str%GBUF%DMGSCL(i)
273 for(i,1)=f1(i)*off(i)
276 mom(i,1)=m1(i)*off(i)
277 mom(i,2)=m2(i)*off(i)
278 mom(i,3)=m3(i)*off(i)
292 degmb(i) = degmb(i) +
for(i,1)*exx(i)
293 degsh(i) = degsh(i) +
for(i,2)*exy(i) +
for(i,3)*exz(i)
294 degfx(i) = degfx(i) + mom(i,1)*kxx(i) + mom(i,2)*kyy(i) + mom(i,3)*kzz(i)
295 fact = half*off(i)*al(i)
296 eint(i,1) = eint(i,1) + (degsh(i)+degmb(i))*fact
297 eint(i,2) = eint(i,2) + fact*degfx(i)
subroutine fail_beam3(elbuf_str, fail, nummat, npropm, snpc, stf, nel, imat, jthe, dpla, tempel, ngl, pm, off, epsd, npf, tf, time, iout, istdo, svm, pressure, area, al, f1, f2, f3, m1, m2, m3, ismstr, epsxx, epsxy, epsxz, kxx, kyy, kzz, dtime, ntable, table, pla, sigy)
subroutine m2lawp(pm, for, mom, eint, geo, off, pla, exx, exy, exz, kxx, kyy, kzz, al, fa1, fa2, fa3, ma1, ma2, ma3, nel, mat, pid, ngl, ipm, nummat, nuvar, uvar, sigy)
subroutine main_beam3(elbuf_str, nel, ilaw, jthe, ifail, ipm, pm, geo, tempel, off, mat, pid, ngl, time, dtime, al, npf, tf, exx, exy, exz, kxx, kyy, kzz, f1, f2, f3, m1, m2, m3, bufmat, npropg, npropmi, npropm, nummat, numgeo, sbufmat, snpc, stf, iout, istdo, nuvar, uvar, epsd, imat, for, mom, eint, ismstr, mat_param, ntable, table)
subroutine sigeps44p(nel, ngl, mat, pid, nuparam, uparam, geo, off, pla, al, exx, exy, exz, kxx, kyy, kzz, fa1, fa2, fa3, ma1, ma2, ma3, for, mom, pm, nuvar, uvar, nfunc, ifunc, tf, npf, sigy)