76 . GEO ,ALE_CONNECTIVITY ,DETONATORS ,IPARG ,
77 . SIGI ,NEL ,SKEW ,IGEO ,
79 . MAT ,IPM ,NSIG ,NUMS ,PT ,
80 . IPT ,NGL ,NPF ,TF ,BUFMAT ,
81 . GBUF ,LBUF ,MBUF ,ELBUF_STR ,ILOADP ,
82 . FACLOAD ,DDELTAX ,TEMPEL ,MAT_PARAM)
92 USE matparam_def_mod ,
ONLY : matparam_struct_
96#include "implicit_f.inc"
100#include "mvsiz_p.inc"
104#include
"com01_c.inc"
105#include "com04_c.inc"
106#include "param_c.inc"
107#include "scr19_c.inc"
108#include "units_c.inc"
109#include "vect01_c.inc"
110#include "scr17_c.inc"
111#include "tabsiz_c.inc"
115 INTEGER NIX,NEL,NSIG,NUMS,IPT,JALE_FROM_PROP,JALE_FROM_MAT,JALE_MAX
116 INTEGER IX(NIX,*), IPARG(*),IPART(LIPART1,*),IPARTEL(*),MAT(*),IPM(NPROPMI,*),PT(*), NGL(
117INTEGER,
INTENT(IN) :: IGEO(NPROPGI,NUMGEO)
118 INTEGER,
INTENT(IN) :: ILOADP(SIZLOADP,*)
119 my_real X(*), GEO(*), PM(NPROPM,*),SIGI(NSIG,*),SKEW(LSKEW,*),BUFMAT(*),TF(*)
120 my_real,
INTENT(IN) :: FACLOAD(LFACLOAD,*)
121 my_real,
INTENT(IN) :: DDELTAX(*)
122 my_real,
INTENT(IN) :: tempel(nel)
123 TYPE(g_bufel_),
TARGET :: GBUF
124 TYPE(l_bufel_),
TARGET :: LBUF
125 TYPE(buf_mat_) :: MBUF
126 TYPE(elbuf_struct_),
TARGET :: ELBUF_STR
130 TYPE (MATPARAM_STRUCT_),
DIMENSION(NUMMAT),
INTENT(IN) :: MAT_PARAM
134 CHARACTER(LEN=NCHARTITLE)::TITR
135 INTEGER I,IADBUF,NPAR,NFUNC,NUVAR,IFORM,NUMEL
136 INTEGER IFUNC(MAXFUNC)
138 my_real,
DIMENSION(MVSIZ) :: RHO0,YLDFAC
139 my_real,
DIMENSION(MVSIZ) ,
TARGET :: TMP,EPL,FILLO
140 my_real,
DIMENSION(:) ,
POINTER ::
141 . off,sig,eint,rho,vol,epsd,deltax,tb,ang,sf,vk,rob,eplas,fill,
dtel,uparam,temp
147 off => gbuf%OFF(1:nel)
148 sig => gbuf%SIG(1:nel*6)
149 eint => gbuf%EINT(1:nel)
150 epsd => gbuf%EPSD(1:nel)
151 rho => gbuf%RHO(1:nel)
152 vol => gbuf%VOL(1:nel)
153 IF(
SIZE(gbuf%DELTAX)>0) deltax=> gbuf%DELTAX(1:nel)
154 IF(
SIZE(gbuf%TB)>0) tb => gbuf%TB(1:nel)
155 dtel => gbuf%DT(1:nel)
156 IF (gbuf%G_TEMP > 0)
THEN
157 temp => gbuf%TEMP(1:nel)
161 IF (gbuf%G_PLA > 0)
THEN
162 eplas => gbuf%PLA(1:nel)
167 off => lbuf%OFF(1:nel)
168 sig => lbuf%SIG(1:nel*6)
169 eint => lbuf%EINT(1:nel)
170 epsd => lbuf%EPSD(1:nel)
171 rho => lbuf%RHO(1:nel)
172 vol => lbuf%VOL(1:nel)
173 IF(
SIZE(lbuf%DELTAX)>0) deltax=> lbuf%DELTAX(1:nel)
174 IF(
SIZE(lbuf%TB)>0) tb => lbuf%TB(1:nel)
175 IF (elbuf_str%BUFLY(1)%L_TEMP > 0)
THEN
176 temp => lbuf%TEMP(1:nel)
180 IF (elbuf_str%BUFLY(1)%L_PLA > 0)
THEN
181 eplas => lbuf%PLA(1:nel)
188 fill => gbuf%FILL(1:nel)
194 CALL mating(pm ,vol ,off ,eint ,rho ,
195 . sig ,ix ,nix ,sigi ,eplas ,
196 . nsig ,mat ,nums ,pt ,nel ,
197 . fill ,temp ,tempel )
209 ELSEIF (mtn == 2.OR.mtn == 3.OR.mtn == 4)
THEN
212 ELSEIF (mtn == 5)
THEN
215 CALL m5in3 (pm,mat,0,detonators,tb,iparg,x,ix,nix)
217 CALL m5in2 (pm,mat,0,detonators,tb,x,ix,nix)
220 ELSEIF (mtn == 6)
THEN
223 ELSEIF (mtn == 10)
THEN
226 ELSEIF (mtn == 11)
THEN
234 jale_from_prop = igeo(62,iabs(ix(nix-1,1)))
235 jale_from_mat = iparg(7)+iparg(11)
236 jale_max =
max(jale_from_prop, jale_from_mat)
238 CALL mat11check(pm,nix,ix,ale_connectivity,numel,jale_max,nel,nft,id,nummat,npropm)
239 ELSEIF (mtn == 12)
THEN
243 WRITE(iout,
'(A)')
' LAW 12 IS NOT AVAILABLE IN 2D ANALYSIS'
246 ELSEIF (mtn == 14)
THEN
250 WRITE(iout,
'(A)') ' law 14 is not available in 2d analysis
'
253 ELSEIF (MTN == 16) THEN
256 ELSEIF (MTN == 17) THEN
258 IPARG(63)=1 !Loi fluide
259 ELSEIF (MTN == 18) THEN
260 CALL ATHLEN(DELTAX, DDELTAX)
263 CALL AGRAD3(IX,X,ALE_CONNECTIVITY,SIG,NEL)
265 CALL AGRAD2(IX,X,ALE_CONNECTIVITY,SIG,NEL)
268 ELSEIF (MTN == 20) THEN
270 CALL ANCMSG(MSGID=129,MSGTYPE=MSGERROR,ANMODE=ANINFO)
273.OR..OR.
ELSEIF (MTN == 21 MTN == 22 MTN == 23) THEN
276 ELSEIF (MTN == 24) THEN
279 ANG => LBUF%ANG(1:NEL*6)
280 SF => LBUF%SF(1:NEL*3)
282 ROB => LBUF%ROB(1:NEL)
285 CALL M24IN3(PM ,IX ,ANG ,SF ,VK ,ROB, NEL)
287 CALL M24IN2(PM ,IX ,ANG ,SF ,VK ,ROB, NEL)
290 CALL M24INSPH(PM ,ANG ,SF ,VK ,ROB ,
291 . IPART ,IPARTEL ,NEL )
293 ELSEIF (MTN == 26) THEN
296.OR.
ELSEIF (MTN == 46MTN == 47) THEN
297 IPARG(63)=1 !Loi fluide
298 ELSEIF (MTN == 49) THEN
301 ELSEIF (MTN >= 28) THEN
308 NUVAR = IPM(8,MAT(1))
310 IADBUF = IPM(7,MAT(1))
311 IADBUF = MAX(1,IADBUF)
312 UPARAM => BUFMAT(IADBUF:IADBUF+NPAR-1)
315 RHO0(I)= PM( 1,MAT(I))
318 NFUNC = IPM(10,MAT(1))
320 IFUNC(I) = IPM(10+I,MAT(1))
324 if (elbuf_str%bufly(1)%l_fac_yld > 0) then
325 yldfac(1:nel) = lbuf%fac_yld(1:nel)
330 CALL M36INIT(NEL ,NPAR ,NUVAR ,NFUNC ,IFUNC ,YLDFAC ,
331 . SNPC ,STF ,NPF ,TF ,UPARAM ,MBUF%VAR)
333 ELSEIF (MTN == 37) THEN
334 IPARG(63) = 1 !Loi fluide
335 CALL M37INIT(IPM ,PM ,
336 . NGL ,NUVAR ,MBUF%VAR ,UPARAM ,X ,
337 . MAT ,IPARG ,IFORM ,IX ,NIX ,
338 . ILOADP ,FACLOAD ,GBUF ,NEL)
339 ELSEIF (MTN == 38) THEN
341 1 NEL ,NPAR ,NUVAR ,NFUNC ,IFUNC ,
342 2 NPF ,TF ,BUFMAT(IADBUF),RHO0 ,VOL ,
344 ELSEIF (MTN == 51) THEN
345 CALL M51INIT(IPM ,DETONATORS ,PM ,TB ,
346 . NUVAR ,MBUF%VAR ,UPARAM ,X ,
347 . MAT ,IPARG ,IFORM ,IX ,NIX ,
348 . ALE_CONNECTIVITY ,BUFMAT ,RHO0 ,
349 . GBUF ,NEL ,SIG ,MAT_PARAM , NPF, TF )
350 ELSEIF (MTN == 70) THEN
351 CALL M70INIT(NEL ,NPAR ,NUVAR ,UPARAM ,MBUF%VAR)
353 ELSEIF (MTN == 75) THEN
355 CALL FRETITL2(TITR,IPM(NPROPMI-LTITR+1,MAT(1)),LTITR)
357 1 NEL ,NPAR ,NUVAR ,NFUNC ,IFUNC ,
358 2 NPF ,TF ,UPARAM ,RHO0 ,VOL ,
359 3 EINT ,MBUF%VAR,PM ,ID ,TITR )
360 ELSEIF (MTN == 77) THEN
362 1 NEL ,NPAR ,NUVAR ,NFUNC ,IFUNC ,
363 2 NPF ,TF ,UPARAM ,RHO0 ,VOL ,
366 ELSEIF (MTN == 95) THEN
367 CALL M95INIT(NEL ,NUVAR ,MBUF%VAR)
368 ELSEIF (MTN == 97)THEN
369 IPARG(16)=1 ! FLAG REZONE (BURNING TIME same index for EPS PLAST.)
370 IPARG(63)=1 ! FLAG FOR FLUID MATERIAL
372 . IPM ,DETONATORS,PM ,
373 . NUVAR ,MBUF%VAR ,BUFMAT(IADBUF) ,X ,
374 . MAT ,IPARG ,IFORM ,IX ,NIX ,
376 ELSEIF (MTN == 102) THEN
379 ELSEIF (MTN == 105)THEN
380 IPARG(16)=1 ! FLAG REZONE (BURNING TIME same index for EPS PLAST.)
381 IPARG(63)=1 ! FLAG FOR FLUID MATERIAL
383 . IPM ,DETONATORS,PM ,
384 . NUVAR ,MBUF%VAR ,BUFMAT(IADBUF) ,X ,
385 . MAT ,IPARG ,IFORM ,IX ,NIX ,
391 !must be set, once m51init() was called
392 IF(ELBUF_STR%BUFLY(1)%L_SSP /= 0)THEN
394 LBUF%SSP(I)=PM(27,MAT(I))
subroutine athlen(delt, deltax)
subroutine dtel(ssp, pm, geo, pid, mat, rho0, vis, deltax, aire, vol, dtx)
subroutine m105init(ipm, detonators, pm, nuvar, uvar, uparam, x, mat, iparg, iform, ix, nix, bufmat, rho0, tb)
subroutine m5in2(pm, mat, m151_id, detonators, tb, x, ix, nix)
subroutine m5in3(pm, mat, m151_id, detonators, tb, iparg, x, ix, nix)
subroutine mat11check(pm, nix, ix, ale_connectivity, numel, jale_from_prop, nel, nft, mat_id, nummat, npropm)
subroutine mating(pm, vol, off, eint, rho, sig, ix, nix, sigi, epsp, nsig, mat, nums, pt, nel, fill, temp, tempel)
subroutine matini(pm, ix, nix, x, geo, ale_connectivity, detonators, iparg, sigi, nel, skew, igeo, ipart, ipartel, mat, ipm, nsig, nums, pt, ipt, ngl, npf, tf, bufmat, gbuf, lbuf, mbuf, elbuf_str, iloadp, facload, ddeltax, tempel, mat_param)
integer, parameter nchartitle
subroutine sinit3(elbuf_str, mas, ixs, pm, x, detonators, geo, veul, ale_connectivity, iparg_gr, dtelem, sigi, nel, skew, igeo, stifn, partsav, v, iparts, mss, ipart, sigsp, ng, iparg, nsigi, msnf, nvc, mssf, ipm, iuser, nsigs, volnod, bvolnod, vns, bns, in, vr, ins, wma, ptsol, bufmat, mcp, mcps, temp, xrefs, npf, tf, mssa, strsglob, straglob, fail_ini, spbuf, kxsp, ipartsp, nod2sp, sol2sph, irst, iloadp, facload, rnoise, perturb, mat_param, glob_therm)