36
37
38
39 USE elbufdef_mod
40 USE fail_param_mod
41
42
43
44#include "implicit_f.inc"
45
46
47
48#include "mvsiz_p.inc"
49#include "com04_c.inc"
50#include "com08_c.inc"
51#include "param_c.inc"
52#include "tabsiz_c.inc"
53
54
55
56 INTEGER , INTENT(IN) :: IR,IS,IT,ILAY,IFAIL,NEL
57 INTEGER , DIMENSION(NEL), INTENT(IN) :: NGL
58 my_real ,
DIMENSION(3,MVSIZ),
INTENT(IN) :: evar
59 my_real ,
DIMENSION(STF),
INTENT(IN) :: tf
60 INTEGER , DIMENSION(SNPC), INTENT(IN) :: NPF
61 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_TAB
62 TYPE (FAIL_PARAM_) ,INTENT(IN) :: FAIL
63
64
65
66 INTEGER I,I1,II,J,IL
67 INTEGER NPAR,NFUNC,IPG,NVARF,NIPAR,LF_DAMMX
68 INTEGER, DIMENSION(:) ,POINTER :: FLD_IDX,FOFF
69 my_real,
DIMENSION(:),
POINTER :: uvarf,dfmax,tdel,dam
70 my_real,
DIMENSION(NEL) :: es1,es2,es4,es5,es6
71
72 TYPE(G_BUFEL_) ,POINTER :: GBUF
73 TYPE(L_BUFEL_) ,POINTER :: LBUF
74 TYPE(BUF_FAIL_) ,POINTER :: FBUF
75
76 gbuf => elbuf_tab%GBUF
77 lbuf => elbuf_tab%BUFLY(ilay)%LBUF(ir,is,it)
78 fbuf => elbuf_tab%BUFLY(ilay)%FAIL(ir,is,it)
79 npar = fail%NUPARAM
80 nipar = fail%NIPARAM
81 nfunc = fail%NFUNC
82 lf_dammx = fbuf%FLOC(ifail)%LF_DAMMX
83 uvarf => fbuf%FLOC(ifail)%VAR
84 nvarf = fbuf%FLOC(ifail)%NVAR
85 dfmax => fbuf%FLOC(ifail)%DAMMX
86 tdel => fbuf%FLOC(ifail)%TDEL
87 fld_idx=> fbuf%FLOC(ifail)%INDX
88 foff => fbuf%FLOC(ifail)%OFF
89 dam => fbuf%FLOC(ifail)%DAM
90 es1(1:nel) = evar(1,1:nel)
91 es2(1:nel) = evar(2,1:nel)
92 es4(1:nel) = two*evar(3,1:nel)
93
95 1 nel ,npar ,nvarf ,nfunc ,fail%IFUNC ,
96 2 npf ,tf ,tt ,dt1 ,fail%UPARAM,
97 3 uvarf ,ngl ,it ,ilay ,it ,
98 4 es1 ,es2 ,es4 ,es5 ,es6 ,
99 5 lbuf%OFF ,foff ,fld_idx ,dam ,dfmax ,
100 6 nipar ,fail%IPARAM,lbuf%PLA ,lf_dammx )
101
102 RETURN
subroutine fail_fld_tsh(nel, nuparam, nuvar, nfunc, ifunc, npf, tf, time, timestep, uparam, uvar, ngl, ipg, ilay, iptt, epsxx, epsyy, epsxy, epsyz, epszx, off, foff, fld_idx, dam, dfmax, niparam, iparam, pla, lf_dammx)