52
53
54
55 USE elbufdef_mod
60
61
62
63#include "implicit_f.inc"
64
65
66
67#include "mvsiz_p.inc"
68
69
70
71#include "com04_c.inc"
72#include "param_c.inc"
73#include "scry_c.inc"
74#include "vect01_c.inc"
75#include "scr17_c.inc"
76
77
78
79 INTEGER IXQ(NIXQ,*), IPARG(*),IGEO(NPROPGI,*),
80 . NEL,IPART(LIPART1,*),IPARTQ(*),IPM(NPROPMI,*), PTQUAD(*),
81 . NSIGS, NPF(*),IPARGG(*)
83 . ms(*), pm(npropm,*), x(*), geo(npropg,*),
84 . veul(10,*), dtelem(*),sigi(nsigs,*),skew(lskew,*),
85 . msq(*), bufmat(*), tf(*),wma(*),partsav(20,*),v(*)
86 TYPE(ELBUF_STRUCT_), TARGET :: ELBUF_STR
87 INTEGER,INTENT(IN) :: ILOADP(SIZLOADP,*)
88 my_real,
INTENT(IN) :: facload(lfacload,*)
89 TYPE(DETONATORS_STRUCT_)::DETONATORS
90 TYPE(t_ale_connectivity), INTENT(INOUT) :: ALE_CONNECTIVITY
91
92
93
94 INTEGER MAT(MVSIZ), PID(MVSIZ), NGL(MVSIZ)
95 INTEGER NF1, I, IGTYP, IP, IBID, IPID1
96 my_real e1y(mvsiz),e1z(mvsiz),e2y(mvsiz),e2z(mvsiz),
97 . bid(1), dtx(mvsiz),
98 . sy(mvsiz) ,sz(mvsiz) ,ty(mvsiz) ,tz(mvsiz)
100 CHARACTER(LEN=NCHARTITLE)::TITR
101 TYPE(G_BUFEL_) ,POINTER :: GBUF
102 TYPE(L_BUFEL_), POINTER :: LBUF
103 TYPE(BUF_MAT_) ,POINTER :: MBUF
104 my_real y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
105 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
106 . aire(mvsiz), deltax(mvsiz)
108 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ)
109
110
111
112 gbuf => elbuf_str%GBUF
113 lbuf => elbuf_str%BUFLY(1)%LBUF(1,1,1)
114 mbuf => elbuf_str%BUFLY(1)%MAT(1,1,1)
115
116 igtyp = iparg(38)
117 jcvt = iparg(37)
118 ibid = 0
119 bid = zero
120 tempel(:) = zero
121 nf1 = nft+1
122
123 IF(jcvt == 0)THEN
124 CALL qcoor2(x,ixq(1,nf1),ngl,mat,
125 . pid, ix1, ix2, ix3, ix4,
126 . y1, y2, y3, y4,
127 . z1, z2, z3, z4,
128 . sy, sz, ty, tz)
129 ELSE
130 CALL qrcoor2(x ,ixq(1,nf1),ngl ,mat ,
131 . pid, ix1, ix2, ix3, ix4,
132 . y1, y2, y3, y4,
133 . z1, z2, z3, z4,
134 . sy, sz, ty, tz,
135 . e1y, e1z, e2y, e2z)
136 END IF
137 IF (igtyp == 6)
CALL qmorth2(pid ,geo ,igeo ,gbuf%GAMA, nel,
138 . sy ,sz ,ty ,tz ,
139 . e1y ,e1z , e2y, e2z)
140 CALL qvoli2(gbuf%VOL,ixq(1,nf1),
141 . ngl, aire,
142 . y1, y2, y3, y4,
143 . z1, z2, z3 ,z4)
145 . aire, deltax,
146 . y1, y2, y3, y4,
147 . z1, z2, z3, z4)
148 IF(jeul/=0)
CALL edlen2(veul(1,nf1), aire, deltax)
149
150 ip=0
151 CALL matini(pm ,ixq ,nixq ,x ,
152 . geo ,ale_connectivity ,detonators,iparg ,
153 . sigi ,nel ,skew ,igeo ,
154 . ipart ,ipartq ,
155 . mat ,ipm ,nsigs ,numquad ,ptquad ,
156 . ip ,ngl ,npf ,tf ,bufmat ,
157 . gbuf ,lbuf ,mbuf ,elbuf_str ,iloadp ,
158 . facload, deltax ,tempel )
159
160
161
162 IF (jthe/=0)
CALL atheri(mat,pm,gbuf%TEMP)
163 IF (jtur/=0)
CALL aturi2(ipargg ,gbuf%RHO,pm,ixq,x,
164 . gbuf%RK,gbuf%RE, aire)
165
166
167
168 IF (jlag+jale+jeul/=0)
169 .
CALL qmasi2(pm,mat,ms,gbuf%VOL,msq(nf1),wma,ipartq(nft+1),partsav,
170 . ix1, ix2, ix3, ix4 ,x ,v)
171
172
173
174 CALL dtmain(geo ,pm ,ipm ,pid ,mat ,fv ,
175 . gbuf%EINT ,gbuf%TEMP ,gbuf%DELTAX ,gbuf%RK ,gbuf%RE ,bufmat, deltax, aire,
176 . gbuf%VOL, dtx, igeo,igtyp)
177
178 DO i=lft,llt
179 IF(ixq(6,i+nft)/=0) THEN
180 IF (igtyp/=0 .AND. igtyp/=6 .AND.
181 . igtyp/=14.AND.igtyp/=15)THEN
182 ipid1=ixq(nixq-1,i+nft)
183 CALL fretitl2(titr,igeo(npropgi-ltitr+1,ipid1),ltitr)
185 . msgtype=msgerror,
186 . anmode=aninfo_blind_1,
187 . i1=igeo(1,ipid1),
188 . c1=titr,
189 . i2=igtyp)
190 ENDIF
191 ENDIF
192 dtelem(nft+i)=dtx(i)
193 ENDDO
194
195 RETURN
subroutine atheri(mat, pm, temp)
subroutine aturi2(iparg, rho, pm, ix, x, rk, re, aire)
subroutine dtmain(geo, pm, ipm, pid, mat, fv, eint, temp, deltax, rk, re, bufmat, ddeltax, aire, vol, dtx, igeo, igtyp)
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)
integer, parameter nchartitle
subroutine qmasi2(pm, mat, ms, vol, msq, wma, ipart, partsav, ix1, ix2, ix3, ix4, x, v)
subroutine qmorth2(pid, geo, igeo, gama, nel, ry, rz, sy, sz, e1y, e1z, e2y, e2z)
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)
subroutine qrcoor2(x, ixq, ngl, mxt, pid, ix1, ix2, ix3, ix4, y1, y2, y3, y4, z1, z2, z3, z4, sy, sz, ty, tz, e1y, e1z, e2y, e2z)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)