34 . NPTT ,NLAY ,SIGSH ,NSIGSH ,PTSH ,
35 . RNOISE ,PERTURB ,ALDT ,THK )
44#include "implicit_f.inc"
49#include "vect01_c.inc"
55 INTEGER NPTT,NLAY,NSIGSH,PERTURB(NPERTURB),PTSH(*)
57 . sigsh(nsigsh,*),rnoise(nperturb,*),aldt(*),thk(*)
58 TYPE(elbuf_struct_),
TARGET :: ELBUF_STR
59 TYPE (MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT) ,
INTENT(INOUT) :: MAT_PARAM
63 INTEGER I,J,IIP,JPT, IFL,II, JJ, IPT, IPP,IUS,IPSU,
64 . IFLAGINI,JPS,IL,IT,NV,NVAR_RUPT,NVMAX,
66 my_real,
DIMENSION(:),
POINTER :: uvarf,dfmax
67 TYPE(buf_lay_) ,
POINTER :: BUFLY
68 TYPE(buf_fail_),
POINTER :: FBUF
69 my_real :: c1,c2,c3,c4,c5,x_1(2),x_2(3)
74 bufly => elbuf_str%BUFLY(il)
77 irup = bufly%FAIL(1,1,1)%FLOC(ifl)%ILAWF
81 fbuf => bufly%FAIL(1,1,it)
82 uvarf => fbuf%FLOC(ifl)%VAR
84 uvarf(llt +i) = thk(i)
85 uvarf(llt*4+i) = aldt(i)
96 IF( nvshell1 /= 0 )
THEN
104 nfail = elbuf_str%BUFLY(il)%NFAIL
106 jps = nvshell + nushell + 3 + nortshel
107 nvmax = nvshell1 /(nptt*nlay*5)
109 fbuf => elbuf_str%BUFLY(il)%FAIL(1,1,it)
110 uvarf => fbuf%FLOC(ius)%VAR
111 dfmax => fbuf%FLOC(ius)%DAMMX
112 nvar_rupt = fbuf%FLOC(ius)%NVAR
113 dfmax(i)= sigsh(jps+1+(ius-1)*nlay*nptt*nvmax+
114 . (il-1)*nvmax*nptt,jj)
118 . sigsh(jps+1+(ius-1)*nlay*nptt*nvmax+(il-1)*nvmax*nptt,jj)
128 IF( nperturb /= 0 )
THEN
130 IF(perturb(j) == 2)
THEN
132 IF (rnoise(j,i+nft) /= zero)
THEN
134 nfail = elbuf_str%BUFLY(il)%NFAIL
135 imat = elbuf_str%BUFLY(il)%IMAT
137 irup = mat_param(imat)%FAIL(ius)%IRUPT
139 mat_param(imat)%FAIL(ius)%UPARAM(8) = 1
142 c3 = mat_param(imat)%FAIL(ius)%UPARAM(9) * rnoise(j,i+nft)
145 l = int(mat_param(imat)%FAIL(ius)%UPARAM(10))
147 CALL biquad_coefficients(c1,c2,c3,c4,c5,l,x_1,x_2,zero,zero,zero,zero)
150 fbuf => elbuf_str%BUFLY(il)%FAIL(1,1,it)
151 uvarf => fbuf%FLOC(ius)%VAR
152 uvarf((3-1)*llt+i) = c2
153 uvarf((4-1)*llt+i) = x_1(1)
154 uvarf((5-1)*llt+i) = x_1(2)
155 uvarf((6-1)*llt+i) = x_2(1)
156 uvarf((7-1)*llt+i) = x_2(2)
157 uvarf((8-1)*llt+i) = x_2(3)
179 . ELBUF_STR,NPTR ,NPTS ,NPTT ,NLAY ,
180 . SIGSH ,NSIGSH ,PTSH ,RNOISE ,PERTURB ,
181 . MAT_PARAM,ALDT ,THK )
190#include "implicit_f.inc"
194#include "param_c.inc"
195#include "vect01_c.inc"
196#include "com01_c.inc"
197#include "com04_c.inc"
201 INTEGER NPTR,NPTS,NPTT,NSIGSH,NLAY,
202 . PTSH(*),PERTURB(NPERTURB)
204 . SIGSH(NSIGSH,*),RNOISE(NPERTURB,*),ALDT(*),THK(*)
205 TYPE(ELBUF_STRUCT_),
TARGET :: ELBUF_STR
206 TYPE (MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT) ,
INTENT(INOUT) :: MAT_PARAM
210 INTEGER I,J,IIP,JPT,IFL, II, JJ, IPT, IPP,IUS,IPSU,
211 . iflagini,jps,il,ir,is,it,nv,nvar_rupt,nvmax,nfail,n,
213 my_real ,
DIMENSION(:),
POINTER :: uvarf,dfmax
214 my_real :: c1,c2,c3,c4,c5,x_1(2),x_2(3)
215 TYPE(buf_lay_) ,
POINTER :: BUFLY
216 TYPE(BUF_FAIL_),
POINTER :: FBUF
221 bufly => elbuf_str%BUFLY(il)
224 irup = bufly%FAIL(1,1,1)%FLOC(ifl)%ILAWF
230 fbuf => bufly%FAIL(ir,is,it)
231 uvarf => fbuf%FLOC(ifl)%VAR
233 uvarf(llt +i) = thk(i)
234 uvarf(llt*4+i) = aldt(i) ! uvar(5)
247 IF( nvshell1 /= 0 )
THEN
254 nfail = elbuf_str%BUFLY(il)%NFAIL
256 jps = nvshell + nushell + 3 + nortshel
257 nvmax = nvshell1 /(
max(1,nptr)*
max(1,npts)*
max(1,nptt)*
262 fbuf => elbuf_str%BUFLY(il)%FAIL(ir,is,it)
263 uvarf => fbuf%FLOC(ius)%VAR
264 dfmax => fbuf%FLOC(ius)%DAMMX
265 nvar_rupt = fbuf%FLOC(ius)%NVAR
266 dfmax(i)=sigsh(jps+1+(ius-1)*nlay*nptr*npts*nptt*nvmax+
267 . (il-1)*nvmax*nptr*npts*nptt,jj)
271 . sigsh(jps+1+(ius-1)*nlay*nptr*npts*nptt*nvmax+
272 . (il-1)*nvmax*nptr*npts*nptt,jj)
284 IF( nperturb /= 0 )
THEN
286 IF(perturb(j) == 2)
THEN
288 IF (rnoise(j,i+nft) /= zero)
THEN
290 nfail = elbuf_str%BUFLY(il)%NFAIL
291 imat = elbuf_str%BUFLY(il)%IMAT
293 irup = mat_param(imat)%FAIL(ius)%IRUPT
295 mat_param(imat)%FAIL(ius)%UPARAM(8) = 1
298 c3 = mat_param(imat)%FAIL(ius)%UPARAM(9) * rnoise(j,i+nft)
301 l = int(mat_param(imat)%FAIL(ius)%UPARAM(10))
303 CALL biquad_coefficients(c1,c2,c3,c4,c5,l,x_1,x_2,zero,zero,zero,zero)
307 fbuf => elbuf_str%BUFLY(il)%FAIL(ir,is,it)
308 uvarf => fbuf%FLOC(ius)%VAR
309 uvarf((3-1)*llt+i) = c2
310 uvarf((4-1)*llt+i) = x_1(1)
311 uvarf((5-1)*llt+i) = x_1(2)
312 uvarf((6-1)*llt+i) = x_2(1)
313 uvarf((7-1)*llt+i) = x_2(2)
314 uvarf((8-1)*llt+i) = x_2(3)
subroutine cfailini4(elbuf_str, nptr, npts, nptt, nlay, sigsh, nsigsh, ptsh, rnoise, perturb, mat_param, aldt, thk)