59
60
61
62
63
64
66 USE elbufdef_mod
70 USE glob_therm_mod
71 USE matparam_def_mod
72 use element_mod , only : nixs
73
74
75
76#include "implicit_f.inc"
77
78
79
80#include "mvsiz_p.inc"
81
82
83
84#include "com04_c.inc"
85#include "param_c.inc"
86#include "scr12_c.inc"
87#include "scr17_c.inc"
88#include "scry_c.inc"
89#include "vect01_c.inc"
90
91
92
93 INTEGER NEL,NSIGI, IUSER, NSIGS
94 INTEGER IXS(NIXS,*),IPARG(*),IPARTS(*),IPART(LIPART1,*),
95 . IPM(NPROPMI,*),PTSOL(*), NPF(*),IGEO(NPROPGI,*),
96 . STRSGLOB(*),STRAGLOB(*),ORTHOGLOB(*),FAIL_INI(*),PERTURB(NPERTURB)
98 . mas(*), pm(npropm,*), x(*), geo(npropg,*),
99 . veul(lveul,*), dtelem(*),sigi(nsigs,*),skew(lskew,*),stifn(*),
100 . partsav(20,*), v(*), mss(8,*),
101 . sigsp(nsigi, *),msnf(*), mssf(8,*), wma(*),
102 . volnod(*), bvolnod(*), vns(8,*), bns(8,*), bufmat(*),
103 . mcp(*),mcps(8,*),temp(*), tf(*), mssa(*),rnoise(nperturb,*)
104 TYPE(ELBUF_STRUCT_), TARGET :: ELBUF_STR
105 INTEGER,INTENT(IN) :: ILOADP(SIZLOADP,*)
106 my_real,
INTENT(IN) :: facload(lfacload,*)
107 TYPE(DETONATORS_STRUCT_)::DETONATORS
108 TYPE(t_ale_connectivity), INTENT(INOUT) :: ALE_CONNECTIVITY
109 type (glob_therm_) ,intent(in) :: glob_therm
110 TYPE (MATPARAM_STRUCT_) ,DIMENSION(NUMMAT) ,INTENT(INOUT) :: MAT_PARAM
111
112
113
114 INTEGER NF1, IBID, I, NLAY,IGTYP,NLYMAX,IS,NUVAR,IREP,NCC,JHBE,
115 . IDEF, IP, IPANG, IPTHK, IPPOS, IPMAT,IG,IM,MTN0,IPID1,
116 . ,NPTS,NPTT,L_PLA,L_SIGB
117 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
118 . IX5(MVSIZ), IX6(MVSIZ), IX7(MVSIZ), IX8(MVSIZ)
119 INTEGER MAT(MVSIZ), PID(MVSIZ), NGL(MVSIZ) , MAT0(MVSIZ)
120 CHARACTER(LEN=NCHARTITLE)::TITR1
122 . bid, fv, sti, zi,wi
124 . v8loc(51,mvsiz),volu(mvsiz),dtx(mvsiz),vzl(mvsiz),vzq(mvsiz),
125 . x1(mvsiz),x2(mvsiz),x3(mvsiz),x4(mvsiz),x5(mvsiz),x6(mvsiz),
126 . x7(mvsiz),x8(mvsiz),y1(mvsiz),y2(mvsiz),y3(mvsiz),y4(mvsiz),
127 . y5(mvsiz),y6(mvsiz),y7(mvsiz),y8(mvsiz),z1(mvsiz),z2(mvsiz),
128 . z3(mvsiz),z4(mvsiz),z5(mvsiz),z6(mvsiz),z7(mvsiz),z8(mvsiz),
129 . rx(mvsiz) ,ry(mvsiz) ,rz(mvsiz) ,sx(mvsiz) ,
130 . sy(mvsiz) ,sz(mvsiz) ,tx(mvsiz) ,ty(mvsiz) ,
131 . tz(mvsiz) ,e1x(mvsiz),e1y(mvsiz),e1z(mvsiz),e2x(mvsiz),
132 . e2y(mvsiz),e2z(mvsiz),e3x(mvsiz),e3y(mvsiz),e3z(mvsiz),
133 . f1x(mvsiz) ,f1y(mvsiz) ,f1z(mvsiz) ,
134 . f2x(mvsiz) ,f2y(mvsiz) ,f2z(mvsiz) ,gama(6,mvsiz),
135 . rhocp(mvsiz) ,temp0(mvsiz),angle(mvsiz),dtx0(mvsiz),
136 . deltax(mvsiz), aire(mvsiz),llsh(mvsiz)
137 my_real,
DIMENSION(8,MVSIZ) :: bid8mvsiz
138 my_real,
DIMENSION(MVSIZ) :: bidmvsiz
140
141
142 TYPE(G_BUFEL_) ,POINTER :: GBUF
143 TYPE(BUF_LAY_) ,POINTER :: BUFLY
144 TYPE(L_BUFEL_) ,POINTER :: LBUF
145 TYPE(BUF_MAT_) ,POINTER :: MBUF
146
148 . w_gauss(9,9),a_gauss(9,9)
149
150 DATA w_gauss /
151 1 2. ,0. ,0. ,
152 1 0. ,0. ,0. ,
153 1 0. ,0. ,0. ,
154 2 1. ,1. ,0. ,
155 2 0. ,0. ,0. ,
156 2 0. ,0. ,0. ,
157 3 0.555555555555556,0.888888888888889,0.555555555555556,
158 3 0. ,0. ,0. ,
159 3 0. ,0. ,0. ,
160 4 0.347854845137454,0.652145154862546,0.652145154862546,
161 4 0.347854845137454,0. ,0. ,
162 4 0. ,0. ,0. ,
163 5 0.236926885056189,0.478628670499366,0.568888888888889,
164 5 0.478628670499366,0.236926885056189,0. ,
165 5 0. ,0. ,0. ,
166 6 0.171324492379170,0.360761573048139,0.467913934572691,
167 6 0.467913934572691,0.360761573048139,0.171324492379170,
168 6 0. ,0. ,0. ,
169 7 0.129484966168870,0.279705391489277,0.381830050505119,
170 7 0.417959183673469,0.381830050505119,0.279705391489277,
171 7 0.129484966168870,0. ,0. ,
172 8 0.101228536290376,0.222381034453374,0.313706645877887,
173 8 0.362683783378362,0.362683783378362,0.313706645877887,
174 8 0.222381034453374,0.101228536290376,0. ,
175 9 0.081274388361574,0.180648160694857,0.260610696402935,
176 9 0.312347077040003,0.330239355001260,0.312347077040003,
177 9 0.260610696402935,0.180648160694857,0.081274388361574/
178 DATA a_gauss /
179 1 0. ,0. ,0. ,
180 1 0. ,0. ,0. ,
181 1 0. ,0. ,0. ,
182 2 -.577350269189626,0.577350269189626,0. ,
183 2 0. ,0. ,0. ,
184 2 0. ,0. ,0. ,
185 3 -.774596669241483,0. ,0.774596669241483,
186 3 0. ,0. ,0. ,
187 3 0. ,0. ,0. ,
188 4 -.861136311594053,-.339981043584856,0.339981043584856,
189 4 0.861136311594053,0. ,0. ,
190 4 0. ,0. ,0. ,
191 5 -.906179845938664,-.538469310105683,0. ,
192 5 0.538469310105683,0.906179845938664,0. ,
193 5 0. ,0. ,0. ,
194 6 -.932469514203152,-.661209386466265,-.238619186083197,
195 6 0.238619186083197,0.661209386466265,0.932469514203152,
196 6 0. ,0. ,0. ,
197 7 -.949107912342759,-.741531185599394,-.405845151377397,
198 7 0. ,0.405845151377397,0.741531185599394,
199 7 0.949107912342759,0. ,0. ,
200 8 -.960289856497536,-.796666477413627,-.525532409916329,
201 8 -.183434642495650,0.183434642495650,0.525532409916329,
202 8 0.796666477413627,0.960289856497536,0. ,
203 9 -.968160239507626,-.836031107326636,-.613371432700590,
204 9 -.324253423403809,0. ,0.324253423403809,
205 9 0.613371432700590,0.836031107326636,0.968160239507626/
206
207
208
209 gbuf => elbuf_str%GBUF
210 lbuf => elbuf_str%BUFLY(1)%LBUF(1,1,1)
211 mbuf => elbuf_str%BUFLY(1)%MAT(1,1,1)
212 bufly => elbuf_str%BUFLY(1)
213 nptr = elbuf_str%NPTR
214 npts = elbuf_str%NPTS
215 nptt = elbuf_str%NPTT
216 nlay = elbuf_str%NLAY
217
218 jeul = iparg(11)
219 irep = iparg(35)
220 igtyp = iparg(38)
221 jhbe = iparg(23)
222 nf1=nft+1
223 IF (jcvt==1.AND.isorth/=0) jcvt=2
224 IF (igtyp /= 22) isorth = 0
225 ibid = 0
226 idef = 0
227
228 DO i=1,nel
229 rhocp(i) = pm(69,ixs(1,nft+i))
230 temp0(i) = pm(79,ixs(1,nft+i))
231 ENDDO
232 CALL sccoor3(x ,ixs(1,nf1),geo ,mat ,pid ,ngl ,
233 . ix1 ,ix2 ,ix3 ,ix4 ,ix5 ,ix6 ,ix7 ,ix8 ,
234 . x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,
235 . y1 ,y2 ,y3 ,y4 ,y5 ,y6 ,y7 ,y8 ,
236 . z1 ,z2 ,z3 ,z4 ,z5 ,z6 ,z7 ,z8 ,
237 . rx ,ry ,rz ,sx ,sy ,sz ,tx ,ty ,tz ,
238 . e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,e3z ,
239 . f1x ,f1y ,f1z ,f2x ,f2y ,f2z ,temp0, temp,glob_therm%NINTEMP)
240 IF (igtyp == 21 .OR. igtyp == 22) THEN
241 DO i=1,nel
242 angle(i) = geo(1,pid(i))
243 END DO
244 CALL scmorth3(pid ,geo ,igeo ,skew ,irep ,gbuf%GAMA ,
245 . rx ,ry ,rz ,sx ,sy ,sz ,tx ,ty ,tz ,
246 . e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,e3z ,
247 . ngl ,angle,nsigi,sigsp,nsigs,sigi ,ixs(1,nf1) ,1 ,
248 . orthoglob,ptsol,nel)
249 IF (igtyp == 22) THEN
250 nlymax= 200
251 ipang = 200
252 ipthk = ipang+nlymax
253 ippos = ipthk+nlymax
254 ipmat = 100
255 ig=pid(1)
256 mtn0=mtn
257 DO i=1,nel
258 mat0(i) = mat(i)
259 dtx0(i) = ep20
260 ENDDO
261 END IF
262 END IF
263 CALL scderi3(nel,gbuf%VOL,jeul,veul(1,nf1),geo ,
264 . vzl ,vzq ,ngl ,pid ,
265 . x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,
266 . y1 ,y2 ,y3 ,y4 ,y5 ,y6 ,y7 ,y8 ,
267 . z1 ,z2 ,z3 ,z4 ,z5 ,z6 ,z7 ,z8 , volu)
268
269 CALL sdlen3(x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,
270 . y1 ,y2 ,y3 ,y4 ,y5 ,y6 ,y7 ,y8 ,
271 . z1 ,z2 ,z3 ,z4 ,z5 ,z6 ,z7 ,z8 ,
272 . deltax, volu)
273 IF (idttsh > 0) THEN
275 . x1, x2, x3, x4, x5, x6, x7, x8,
276 . y1, y2, y3, y4, y5, y6, y7, y8,
277 . z1, z2, z3, z4, z5, z6, z7, z8)
278 DO i=1,nel
279 IF (gbuf%IDT_TSH(i)>0)
280 . deltax(i)=
max(llsh(i),deltax(i))
281 ENDDO
282 END IF
283
284 IF (jthe == 0 .and. glob_therm%NINTEMP > 0) THEN
285 DO i=1,nel
286 tempel(i) = one_over_8 *(temp(ixs(2,i)) + temp(ixs(3,i))
287 . + temp(ixs(4,i)) + temp(ixs(5,i))
288 . + temp(ixs(6,i)) + temp(ixs(7,i))
289 . + temp(ixs(8,i)) + temp(ixs(9,i)))
290 ENDDO
291 ELSE
292 tempel(1:nel) = temp0(1:nel)
293 END IF
294
295 ip=0
296 CALL matini(pm ,ixs ,nixs ,x ,
297 . geo ,ale_connectivity ,detonators ,iparg ,
298 . sigi ,nel ,skew ,igeo ,
299 . ipart ,iparts ,
300 . mat ,ipm ,nsigs ,numsol ,ptsol ,
301 . ip ,ngl ,npf ,tf ,bufmat ,
302 . gbuf ,lbuf ,mbuf ,elbuf_str ,iloadp ,
303 . facload, deltax ,tempel ,mat_param )
304
305 IF (igtyp == 22)
CALL sczero3(gbuf%RHO,gbuf%SIG,gbuf%EINT,nel)
306
307
308 IF(jthe /=0)
CALL atheri(mat,pm,gbuf%TEMP)
309
310
311 DO is=1,nlay
312
313 lbuf => elbuf_str%BUFLY(is)%LBUF(1,1,1)
314 mbuf => elbuf_str%BUFLY(is)%MAT(1,1,1)
315 l_pla = elbuf_str%BUFLY(is)%L_PLA
316 l_sigb= elbuf_str%BUFLY(is)%L_SIGB
317
318 IF (igtyp == 22) THEN
319 zi = geo(ippos+is,ig)
320 wi = geo(ipthk+is,ig)
321 im=igeo(ipmat+is,ig)
322 mtn=nint(pm(19,im))
323 DO i=1,nel
324 mat(i)=im
325 angle(i) = geo(ipang+is,pid(i))
326 ENDDO
327 ELSE
328 zi = a_gauss(is,nlay)
329 wi = w_gauss(is,nlay)
330 ENDIF
331 DO i=1,nel
332 lbuf%VOL0DP(i) = half*wi*(gbuf%VOL(i)+vzl(i)*zi)
333 lbuf%VOL(i) = lbuf%VOL0DP(i)
334 ENDDO
335 IF (igtyp == 22)
336 .
CALL scmorth3(pid ,geo ,igeo ,skew ,irep ,lbuf%GAMA ,
337 . rx ,ry ,rz ,sx ,sy ,sz ,tx ,ty ,tz ,
338 . e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,e3z ,
339 . ngl ,angle,nsigi,sigsp,nsigs,sigi ,ixs(1,nf1) ,is ,
340 . orthoglob,ptsol,nel)
341
342 IF (jthe == 0 .and. glob_therm%NINTEMP > 0) THEN
343 DO i=1,nel
344 tempel(i) = one_over_8 *(temp(ixs(2,i)) + temp(ixs(3,i))
345 . + temp(ixs(4,i)) + temp(ixs(5,i))
346 . + temp(ixs(6,i)) + temp(ixs(7,i))
347 . + temp(ixs(8,i)) + temp(ixs(9,i)))
348 ENDDO
349 ELSE
350 tempel(1:nel) = temp0(1:nel)
351 END IF
352
353 CALL matini(pm ,ixs ,nixs ,x ,
354 . geo ,ale_connectivity ,detonators ,iparg ,
355 . sigi ,nel ,skew ,igeo ,
356 . ipart ,iparts,
357 . mat ,ipm ,nsigs ,numsol ,ptsol,
358 . is ,ngl ,npf ,tf ,bufmat,
359 . gbuf ,lbuf ,mbuf ,elbuf_str,iloadp,
360 . facload, deltax ,tempel ,mat_param )
361
362 nuvar = elbuf_str%BUFLY(is)%NVAR_MAT
363 IF(mtn>=28)THEN
364 idef =1
365 ELSE
366 IF(mtn == 14 .OR. mtn == 12)THEN
367 idef =1
368 ELSEIF(mtn == 24)THEN
369 idef =1
370 ELSEIF(istrain == 1)THEN
371 IF(mtn == 1)THEN
372 idef =1
373 ELSEIF(mtn == 2)THEN
374 idef =1
375 ELSEIF(mtn == 4)THEN
376 idef =1
377 ELSEIF(mtn == 3.OR.mtn == 6.OR.mtn == 10.OR.
378 . mtn == 21.OR.mtn == 22.OR.mtn == 23.
379 . or.mtn == 49)THEN
380 idef =1
381 ENDIF
382 ENDIF
383 ENDIF
384
386 . pm, lbuf%VOL,sigsp,sigi,lbuf%EINT,lbuf%RHO,mbuf%VAR ,
387 . lbuf%STRA,ixs ,nixs,nsigi, is, nuvar,nel,iuser,idef,
388 . nsigs,strsglob,straglob,jhbe,igtyp,x,gbuf%GAMA,
389 . mat ,lbuf%PLA,l_pla,ptsol,lbuf%SIGB,l_sigb,ipm ,
390 . bufmat,lbuf%VOL0DP)
391 IF(igtyp == 22) THEN
392
393 aire(:) = zero
394 CALL dtmain(geo ,pm ,ipm ,pid ,mat ,fv ,
395 . lbuf%EINT ,lbuf%TEMP ,lbuf%DELTAX ,lbuf%RK ,lbuf%RE ,bufmat, deltax, aire,
396 . volu, dtx , igeo ,igtyp)
397
399 . lbuf%RHO,lbuf%VOL,lbuf%OFF,lbuf%SIG,lbuf%EINT,dtx,
400 . gbuf%RHO,gbuf%VOL,gbuf%OFF,gbuf%SIG,gbuf%EINT,dtx0,
401 . nel )
402 ENDIF
403 ENDDO
404
405 IF(igtyp == 22) THEN
406 mtn=mtn0
407 DO i=1,nel
408 mat(i)=mat0(i)
409 ENDDO
410 ENDIF
411
412
413 bid8mvsiz(1:8,1:mvsiz) = zero
414 bidmvsiz(1:mvsiz) = zero
416 . gbuf%RHO ,mas ,partsav ,x ,v ,
417 . iparts(nf1),mss(1,nf1),volu ,
418 . msnf ,mssf(1,nf1),bid ,
419 . bid ,bid8mvsiz ,wma ,rhocp ,mcp ,
420 . mcps(1,nf1),mssa ,bidmvsiz ,bidmvsiz ,gbuf%FILL,
421 . ix1, ix2, ix3, ix4, ix5, ix6, ix7, ix8)
422
423
424 CALL failini(elbuf_str,nptr,npts,nptt,nlay,
425 . ipm,sigsp,nsigi,fail_ini ,
426 . sigi,nsigs,ixs,nixs,ptsol,rnoise,perturb,bufmat)
427
428
429
430 IF(i7stifs/=0)THEN
431 ncc=8
432 CALL sbulk3(volu ,ix1 ,ncc,mat,pm ,
433 2 volnod,bvolnod,vns(1,nf1),bns(1,nf1),bid,
434 3 bid ,gbuf%FILL)
435 ENDIF
436
437
438 aire(:) = zero
439 CALL dtmain(geo ,pm ,ipm ,pid ,mat ,fv ,
440 . lbuf%EINT ,lbuf%TEMP ,lbuf%DELTAX ,lbuf%RK ,lbuf%RE ,bufmat, deltax, aire,
441 . volu, dtx , igeo ,igtyp)
442
443 IF(igtyp == 22) THEN
444 DO i=1,nel
445 dtx(i)=dtx0(i)
446 ENDDO
447 ENDIF
448
449 DO i=1,nel
450 IF (ixs(10,i+nft) /= 0) THEN
451 IF (igtyp < 20 .OR. igtyp > 22) THEN
452 ipid1=ixs(nixs-1,i+nft)
453 CALL fretitl2(titr1,igeo(npropgi-ltitr+1,ipid1),ltitr)
455 . msgtype=msgerror,
456 . anmode=aninfo_blind_1,
457 . i1=igeo(1,ipid1),
458 . c1=titr1,
459 . i2=igtyp)
460 ENDIF
461 ENDIF
462 dtelem(nft+i)=dtx(i)
463
464 sti = fourth * gbuf%FILL(i) * gbuf%RHO(i) * volu(i) /
465 .
max(em20,dtx(i)*dtx(i))
466 stifn(ixs(2,i+nft))=stifn(ixs(2,i+nft))+sti
467 stifn(ixs(3,i+nft))=stifn(ixs(3,i+nft))+sti
468 stifn(ixs(4,i+nft))=stifn(ixs(4,i+nft))+sti
469 stifn(ixs(5,i+nft))=stifn(ixs(5,i+nft))+sti
470 stifn(ixs(6,i+nft))=stifn(ixs(6,i+nft))+sti
471 stifn(ixs(7,i+nft))=stifn(ixs(7,i+nft))+sti
472 stifn(ixs(8,i+nft))=stifn(ixs(8,i+nft))+sti
473 stifn(ixs(9,i+nft))=stifn(ixs(9,i+nft))+sti
474 END DO
475
476 RETURN
subroutine atheri(mat, pm, temp)
subroutine dtmain(geo, pm, ipm, pid, mat, fv, eint, temp, deltax, rk, re, bufmat, ddeltax, aire, vol, dtx, igeo, igtyp)
subroutine failini(elbuf_str, nptr, npts, nptt, nlay, ipm, sigsp, nsigi, fail_ini, sigi, nsigs, ix, nix, pt, rnoise, perturb, mat_param)
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 sigin20b(sig, pm, vol, sigsp, sigi, eint, rho, uvar, eps, ix, nix, nsigi, ipt, nuvar, nel, iuser, idef, nsigs, strsglob, straglob, jhbe, igtyp, x, bufgama, mat, epsp, l_pla, pt, sigb, l_sigb, ipm, bufmat, voldp)
subroutine sbulk3(volu, nc, nnc, mat, pm, volnod, bvolnod, vns, bns, vnsx, bnsx, fill)
subroutine sccoor3(x, ixs, geo, mxt, ngeo, ngl, ix1, ix2, ix3, ix4, ix5, ix6, ix7, ix8, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, rx, ry, rz, sx, sy, sz, tx, ty, tz, r11, r21, r31, r12, r22, r32, r13, r23, r33, f1x, f1y, f1z, f2x, f2y, f2z, temp0, temp, nintemp)
subroutine sczero3(rhog, sigg, eintg, nel)
subroutine sdlensh(nel, llsh, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8)
subroutine svalue0(rho, vol, off, sig, eint, dtx, rhog, volg, offg, sigg, eintg, dtxg, nel)
subroutine scmorth3(pid, geo, igeo, skew, irep, gama, rx, ry, rz, sx, sy, sz, tx, ty, tz, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, ngl, angle, nsigi, sigsp, nsigs, sigi, ixs, ilay, orthoglob, pt, nel)
subroutine smass3(rho, ms, partsav, x, v, ipart, mss, volu, msnf, mssf, in, vr, ins, wma, rhocp, mcp, mcps, mssa, rhof, frac, fill, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8)
subroutine sdlen3(x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, deltax, voln)
subroutine scderi3(nel, vol, jeul, veul, geo, vzl, vzq, ngl, ngeo, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, det)
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)