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