48
49
50
51 USE elbufdef_mod
54 USE matparam_def_mod, ONLY : matparam_struct_
55 use element_mod , only : nixq
56
57
58
59#include "implicit_f.inc"
60
61
62
63#include "mvsiz_p.inc"
64
65
66
67#include "com04_c.inc"
68#include "param_c.inc"
69#include "scr17_c.inc"
70#include "scry_c.inc"
71#include "vect01_c.inc"
72
73
74
75 TYPE(MATPARAM_STRUCT_),DIMENSION(NUMMAT) ,INTENT(IN) :: MAT_PARAM
76 INTEGER IXQ(NIXQ,*), IPARG(*),
77 . NEL,IPART(LIPART1,*),IPARTQ(*),
78 . IPM(NPROPMI,*), PTQUAD(*), NSIGS, IGEO(*), NPF(
79
80
81 . fill(numnod,*), sigi(nsigs,*),skew(lskew,*),
82 . msq(*), geo(*), wma(*), bufmat(*), tf(*),
83 . partsav(20,*) ,v(*)
84 TYPE(ELBUF_STRUCT_), TARGET :: ELBUF_STR
85 INTEGER,INTENT(IN) :: ILOADP(SIZLOADP,*)
86 my_real,
INTENT(IN) :: facload(lfacload,*)
87 TYPE(DETONATORS_STRUCT_)::DETONATORS
88 TYPE(t_ale_connectivity), INTENT(INOUT) :: ALE_CONNECTIVITY
89
90
91
92 INTEGER I, NF1, IMULT, IGTYP, IP,IBID
93 INTEGER MAT(MVSIZ), NGL(MVSIZ)
95 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
96 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
97 . aire(mvsiz), deltax(mvsiz),
98 . sy(mvsiz), sz(mvsiz), ty(mvsiz), tz(mvsiz)
100 INTEGER PID(MVSIZ), IX1(), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ)
101
102 TYPE(L_BUFEL_) ,POINTER ::
103 TYPE(G_BUFEL_) ,POINTER :: GBUF
104 TYPE(BUF_MAT_) ,POINTER ::
105
106
107
108 gbuf => elbuf_str%GBUF
109 lbuf => elbuf_str%BUFLY(1)%LBUF(1,1,1)
110 igtyp= iparg(38)
111 nf1 = nft+1
112 ibid = 0
113 tempel(:) = zero
114
115 CALL qcoor2(x,ixq(1,nf1),ngl,mat,
116 . pid, ix1, ix2, ix3, ix4,
117 . y1, y2, y3, y4,
118 . z1, z2, z3, z4,
119 . sy, sz, ty, tz)
120 CALL qvoli2(gbuf%VOL,ixq(1,nf1),
121 . ngl, aire,
122 . y1, y2, y3, y4,
123 . z1, z2, z3, z4)
124 IF (jeul/=0) THEN
126 . aire, deltax,
127 . y1, y2, y3, y4,
128 . z1, z2, z3, z4)
129 CALL edlen2(veul(1,nf1), aire, deltax)
130 ENDIF
131
132
133
134
135 imult=jmult
136 jmult=1
137 lbuf => elbuf_str%BUFLY(jmult)%LBUF(1,1,1)
138 mbuf => elbuf_str%BUFLY(jmult)%MAT(1,1,1)
139 mtn = iparg(25)
140
141 DO i=lft,llt
142 mat(i)=mat_param(iabs(ixq(1,nft+i)))%MULTIMAT%MID(jmult)
143 ENDDO
144
145
146
147
148 CALL bimat2(gbuf%VOL, lbuf%FRAC, fill(1,1), lbuf%VOL, lbuf%OFF, ixq(1,nf1))
149
150
151
152 ip=1
153 CALL matini(pm ,ixq ,nixq ,x ,
154 . geo ,ale_connectivity ,detonators ,iparg ,
155 . sigi ,nel ,skew ,igeo ,
156 . ipart ,ipartq ,
157 . mat ,ipm ,nsigs ,numquad ,ptquad ,
158 . ip ,ngl ,npf ,tf ,bufmat ,
159 . gbuf ,lbuf ,mbuf ,elbuf_str ,iloadp ,
160 . facload, deltax,tempel ,mat_param )
161
162
163
164 IF(jthe/=0)
CALL atheri(mat,pm,lbuf%TEMP)
165 IF(jtur/=0)
CALL aturi2(ipargg ,lbuf%RHO,pm,ixq,x,
166 . lbuf%RK,lbuf%RE, aire)
167
168
169
170 IF(jlag+jale+jeul/=0)
171 .
CALL qmasi2(pm,mat,ms,lbuf%VOL,msq(nf1),wma,ipartq(nft+1),partsav,
172 . ix1, ix2, ix3, ix4, x ,v)
173
174
175
176 IF(imult==1)RETURN
177 jmult=2
178 lbuf => elbuf_str%BUFLY(jmult)%LBUF(1,1,1)
179 mbuf => elbuf_str%BUFLY(jmult)%MAT(1,1,1)
180 mtn = iparg(26)
181
182 nf1=nft+1
183 DO i=lft,llt
184 mat(i)=mat_param(iabs(ixq(1,nft+i)))%MULTIMAT%MID(jmult)
185 ENDDO
186
187
188
189 CALL bimat2( gbuf%VOL, lbuf%FRAC, fill(1,2), lbuf%VOL, lbuf%OFF, ixq(1,nf1) )
190
191
192
193 ip=1
194 CALL matini(pm , ixq ,nixq ,x ,
195 . geo , ale_connectivity ,detonators,iparg ,
196 . sigi , nel ,skew ,igeo ,
197 . ipart , ipartq ,
198 . mat , ipm ,nsigs ,numquad ,ptquad ,
199 . ip , ngl ,npf ,tf ,bufmat ,
200 . gbuf , lbuf ,mbuf ,elbuf_str ,iloadp ,
201 . facload, deltax,tempel ,mat_param )
202
203
204
205 IF (jthe/=0)
CALL atheri(mat,pm, lbuf%TEMP)
206 IF (jtur/=0)
CALL aturi2(ipargg ,lbuf%RHO,pm,ixq,x,
207 . lbuf%RK,lbuf%RE, aire)
208
209
210
211 IF(jlag+jale+jeul/=0)
212 .
CALL qmasi2b(pm,mat,ms,lbuf%VOL,msq(nf1),wma,ipartq(nft+1),partsav,
213 . ix1, ix2, ix3, ix4 ,x ,v)
214
215 RETURN
subroutine atheri(mat, pm, temp)
subroutine aturi2(iparg, rho, pm, ix, x, rk, re, aire)
subroutine bimat2(volt, alph, fill, vol, off, ix)
subroutine edlen2(veul, aire, deltax)
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)
subroutine qmasi2(pm, mat, ms, vol, msq, wma, ipart, partsav, ix1, ix2, ix3, ix4, x, v)
subroutine qmasi2b(pm, mat, ms, vol, msq, wma, ipart, partsav, ix1, ix2, ix3, ix4, x, v)
subroutine qvoli2(volu, ixq, ngl, aire, y1, y2, y3, y4, z1, z2, z3, z4)
subroutine qcoor2(x, ixq, ngl, mxt, pid, ix1, ix2, ix3, ix4, y1, y2, y3, y4, z1, z2, z3, z4, sy, sz, ty, tz)
subroutine qdlen2(iparg, aire, deltax, y1, y2, y3, y4, z1, z2, z3, z4)