OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i21buc3.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "scr06_c.inc"
#include "units_c.inc"
#include "vect07_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine i21buc1 (x, irect, nsv, bumult, nseg, nmn, nrtm, mwa, nsn, cand_e, cand_n, gap, xyzm, noint, i_stok, dist, tzinf, maxbox, minbox, msr, stf, multimp, itab, gap_s, igap, gapmin, gapmax, inacti, nrts, irects, xm0, depth, margeref, drad, id, titr, i_mem, ix1, ix2, ix3, ix4, nsvg, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, x0, y0, z0, stif, nx1, ny1, nz1, nx2, ny2, nz2, nx3, ny3, nz3, nx4, ny4, nz4, p1, p2, p3, p4, lb1, lb2, lb3, lb4, lc1, lc2, lc3, lc4, pene, prov_n, prov_e, n11, n21, n31, dgapload)

Function/Subroutine Documentation

◆ i21buc1()

subroutine i21buc1 ( x,
integer, dimension(4,*) irect,
integer, dimension(*) nsv,
bumult,
integer, dimension(*) nseg,
integer nmn,
integer nrtm,
integer, dimension(*) mwa,
integer nsn,
integer, dimension(*) cand_e,
integer, dimension(*) cand_n,
gap,
xyzm,
integer noint,
integer i_stok,
dist,
tzinf,
maxbox,
minbox,
integer, dimension(*) msr,
stf,
integer multimp,
integer, dimension(*) itab,
gap_s,
integer igap,
gapmin,
gapmax,
integer inacti,
integer nrts,
integer, dimension(4,*) irects,
xm0,
depth,
margeref,
intent(in) drad,
integer id,
character(len=nchartitle) titr,
integer i_mem,
integer, dimension(mvsiz), intent(inout) ix1,
integer, dimension(mvsiz), intent(inout) ix2,
integer, dimension(mvsiz), intent(inout) ix3,
integer, dimension(mvsiz), intent(inout) ix4,
integer, dimension(mvsiz), intent(inout) nsvg,
intent(inout) x1,
intent(inout) x2,
intent(inout) x3,
intent(inout) x4,
intent(inout) y1,
intent(inout) y2,
intent(inout) y3,
intent(inout) y4,
intent(inout) z1,
intent(inout) z2,
intent(inout) z3,
intent(inout) z4,
intent(inout) xi,
intent(inout) yi,
intent(inout) zi,
intent(inout) x0,
intent(inout) y0,
intent(inout) z0,
intent(inout) stif,
intent(inout) nx1,
intent(inout) ny1,
intent(inout) nz1,
intent(inout) nx2,
intent(inout) ny2,
intent(inout) nz2,
intent(inout) nx3,
intent(inout) ny3,
intent(inout) nz3,
intent(inout) nx4,
intent(inout) ny4,
intent(inout) nz4,
intent(inout) p1,
intent(inout) p2,
intent(inout) p3,
intent(inout) p4,
intent(inout) lb1,
intent(inout) lb2,
intent(inout) lb3,
intent(inout) lb4,
intent(inout) lc1,
intent(inout) lc2,
intent(inout) lc3,
intent(inout) lc4,
intent(inout) pene,
integer, dimension(mvsiz), intent(inout) prov_n,
integer, dimension(mvsiz), intent(inout) prov_e,
intent(inout) n11,
intent(inout) n21,
intent(inout) n31,
intent(in) dgapload )

Definition at line 37 of file i21buc3.F.

57 USE message_mod
59C-----------------------------------------------
60C I m p l i c i t T y p e s
61C-----------------------------------------------
62#include "implicit_f.inc"
63C-----------------------------------------------
64C G l o b a l P a r a m e t e r s
65C-----------------------------------------------
66#include "mvsiz_p.inc"
67C-----------------------------------------------
68C C o m m o n B l o c k s
69C-----------------------------------------------
70#include "com01_c.inc"
71#include "com04_c.inc"
72#include "scr06_c.inc"
73#include "units_c.inc"
74#include "vect07_c.inc"
75C-----------------------------------------------
76C D u m m y A r g u m e n t s
77C-----------------------------------------------
78 INTEGER NMN, NRTM, NSN, NOINT,I_STOK,MULTIMP,IGAP,INACTI,
79 . NRTS,I_MEM
80 INTEGER IRECT(4,*),IRECTS(4,*),NSV(*),MSR(*),NSEG(*),MWA(*)
81 INTEGER CAND_E(*),CAND_N(*),MAXSIZ
82 INTEGER ITAB(*)
83C REAL
85 . stf(*),x(3,*),xyzm(6,*),gap_s(*), xm0(3,*),
86 . dist,bumult,gap,tzinf,maxbox,minbox,gapmin,gapmax, depth,
87 . margeref
88 my_real , INTENT(IN) :: dgapload ,drad
89 INTEGER ID
90 CHARACTER(LEN=NCHARTITLE) :: TITR
91 INTEGER, DIMENSION(MVSIZ), INTENT(INOUT) :: PROV_N,PROV_E
92 INTEGER, DIMENSION(MVSIZ), INTENT(INOUT) :: IX1,IX2,IX3,IX4,NSVG
93 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: x1,x2,x3,x4
94 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: y1,y2,y3,y4
95 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: z1,z2,z3,z4
96 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: xi,yi,zi
97 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: x0,y0,z0,stif
98 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: n11,n21,n31,pene
99 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: nx1,ny1,nz1
100 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: nx2,ny2,nz2
101 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: nx3,ny3,nz3
102 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: nx4,ny4,nz4
103 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: p1,p2,p3,p4
104 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: lb1,lb2,lb3,lb4
105 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: lc1,lc2,lc3,lc4
106C-----------------------------------------------
107C L o c a l V a r i a b l e s
108C-----------------------------------------------
109 INTEGER I, J, L, N1, N2, N3, N4, I_AMAX
110 INTEGER I_ADD, ADESTK, NB_NC, NB_EC, ADNSTK, IBID
111 INTEGER IP1, IP2, IP21, IP22, IP31,J_STOK,I_BID,NB_N_B
112C REAL
113 my_real
114 . dx1,dy1,dz1,
115 . dx3,dy3,dz3,
116 . dx4,dy4,dz4,
117 . dx6,dy6,dz6,
118 . dd1,dd2,dd3,dd4,dd,dd0,xmin,ymin,zmin,
119 . xmax,ymax,zmax,tzinf0,minbox_st,maxbox_st,gapsmax,
120 . bid,tzinf_st,marge_st,gapv(mvsiz)
121C-----------------------------------------------
122C
123C 1-CALCUL TAILLE DES ZONES INFLUENCES
124C DD EST LA LONGEUR MOYENNE ELEMENT
125 dd=zero
126 DO 10 l=1,nrts
127C CONNECIVITES ELEMENT
128 n1=irects(1,l)
129 n2=irects(2,l)
130 n3=irects(3,l)
131 n4=irects(4,l)
132C LONGUEUR COTE 1
133 dx1=(x(1,n1)-x(1,n2))
134 dy1=(x(2,n1)-x(2,n2))
135 dz1=(x(3,n1)-x(3,n2))
136 dd1=sqrt(dx1**2+dy1**2+dz1**2)
137C LONGUEUR COTE 2
138 dx3=(x(1,n1)-x(1,n4))
139 dy3=(x(2,n1)-x(2,n4))
140 dz3=(x(3,n1)-x(3,n4))
141 dd2=sqrt(dx3**2+dy3**2+dz3**2)
142C LONGUEUR COTE 3
143 dx4=(x(1,n3)-x(1,n2))
144 dy4=(x(2,n3)-x(2,n2))
145 dz4=(x(3,n3)-x(3,n2))
146 dd3=sqrt(dx4**2+dy4**2+dz4**2)
147C LONGUEUR COTE 4
148 dx6=(x(1,n4)-x(1,n3))
149 dy6=(x(2,n4)-x(2,n3))
150 dz6=(x(3,n4)-x(3,n3))
151 dd4=sqrt(dx6**2+dy6**2+dz6**2)
152 dd=dd+ (dd1+dd2+dd3+dd4)
153 10 CONTINUE
154C TAILLE ZINF = .1*TAILLE MOYENNE ELEMENT DE CHAQUE COTE
155C TAILLE BUCKET MIN = TZINF * BUMULT
156 dd0= dd/nrts/four
157C DD = MAX(DD0,ONEP251*GAP)
158 dd = max(dd0,onep251*(gap+dgapload))
159 dd = max(dd0,onep251*depth)
160 dd = max(dd ,onep251*drad)
161C TZINF = BUMULT*DD
162 margeref = bumult*dd
163C calcul de TZINF en fct de la marge et non le contraire
164C peut etre ameliore pour engine (debut de run) : TZINF = MARGEREF + Sup(gap) !!!
165 tzinf = margeref + max(depth,drad,(gap+dgapload))
166C Depth >= max(Gapv) dans le starter
167C MARGE_ST : marge independante du BUMULT en input pour trouver les memes pene initiales (cas delete ou chgt coord.)
168 marge_st = bmul0*dd
169 tzinf_st = marge_st + max(depth,drad,(gap+dgapload))
170C MAXBOX= ZEP9*(DD - TZINF)
171C DD + 2*TZINF : taille element augmentee de zone influence
172 maxbox= half*(dd + 2*tzinf)
173 minbox= half*maxbox
174 maxbox_st= half*(dd + 2*tzinf_st)
175 minbox_st= half*maxbox_st
176C MIS A ZERO POUR FAIRE SEARCH COMPLET CYCLE 0 ENGINE
177 dist = zero
178C--------------------------------
179C CALCUL DES BORNES DU DOMAINE
180C--------------------------------
181 xmin=ep30
182 xmax=-ep30
183 ymin=ep30
184 ymax=-ep30
185 zmin=ep30
186 zmax=-ep30
187C
188 DO 20 i=1,nmn
189 j=msr(i)
190 xmin= min(xmin,x(1,j))
191 ymin= min(ymin,x(2,j))
192 zmin= min(zmin,x(3,j))
193 xmax= max(xmax,x(1,j))
194 ymax= max(ymax,x(2,j))
195 zmax= max(zmax,x(3,j))
196 20 CONTINUE
197 xmin=xmin-tzinf_st
198 ymin=ymin-tzinf_st
199 zmin=zmin-tzinf_st
200 xmax=xmax+tzinf_st
201 ymax=ymax+tzinf_st
202 zmax=zmax+tzinf_st
203 DO 25 i=1,nsn
204 j=nsv(i)
205 xmin= min(xmin,x(1,j))
206 ymin= min(ymin,x(2,j))
207 zmin= min(zmin,x(3,j))
208 xmax= max(xmax,x(1,j))
209 ymax= max(ymax,x(2,j))
210 zmax= max(zmax,x(3,j))
211 25 CONTINUE
212C
213C
214C-----2- TRI PAR BOITES DES ELEMENTS ET DES NOEUDS
215C
216 nb_n_b = 1
217 i_mem = 0
218C SI ON A PAS ASSEZ DE MEMOIRE POUR LES PILES ON RECOMMENCE LE TRI
219C EN INCREMENTANT LE NB_N_B (NOMBRE DE NOEUDS PAR BOITE FINIE)
220 100 CONTINUE
221C POINTEUR NOM TAILLE
222C P1........Elt Bas Pile NRTM
223C P2........Elt PILE 2*NRTM
224C P21.......BPN NSN
225C P22.......PN NSN
226C P31.......ADDI 2000
227C
228C POUR ONE MAILLAGE DE TOPOLOGIE CARRE LA TAILLE DE P2 PEUT ETRE ESTIMEE A:
229C 4n: NUMELC + 6*SQRT(NUMELC) + 8*LOG2(NUMELC)
230C 3n: NUMELTG + 6*SQRT(2*NUMELTG) + 8*LOG2(NUMELTG)
231C
232C 4n: NUMELC + 6*SQRT(NUMELC) + 12*LOG(NUMELC) +
233C 3n: NUMELTG + 6*SQRT(2*NUMELTG) + 12*LOG(NUMELTG)
234C
235C NUMELC + NUMELTG + 6*SQRT(NUMELC+2*NUMELTG) + 12*LOG(NUMELC+NUMELTG)
236C
237C POUR ONE MAILLAGE DE TOPOLOGIE LINEAIRE LA TAILLE DE P2 PEUT ETRE ESTIMEE A:
238C NUMELC + NUMELTG + (NUMELC+NUMELTG)*(1 + 1/2 + 1/4 +...) + LOG2(NUMELC+NUMELTG)
239C 3*(NUMELC+NUMELTG) + LOG2(NUMELC+NUMELTG)
240C 3*(NUMELC+NUMELTG) + 300
241C
242 maxsiz = max(numnod,nrtm+100)
243 ip1 = 1
244 ip2 = ip1+maxsiz
245C IP21= IP2+2*MAXSIZ
246 ip21= ip2+3*maxsiz
247 ip22= ip21+numnod
248 ip31= ip22+numnod
249C IFIN= IP22+2000
250C
251C-----INITIALISATION DES ADRESSES ET X,Y,Z
252C
253C ADDE ADDN X Y Z
254C 1 1 XMIN YMIN ZMIN
255C 1 1 XMAX YMAX ZMAX
256C
257 mwa(ip31) = 0
258 mwa(ip31+1) = 0
259 mwa(ip31+2) = 0
260 mwa(ip31+3) = 0
261 i_add = 1
262 i_amax = 1
263 xyzm(1,i_add) = xmin
264 xyzm(2,i_add) = ymin
265 xyzm(3,i_add) = zmin
266 xyzm(4,i_add) = xmax
267 xyzm(5,i_add) = ymax
268 xyzm(6,i_add) = zmax
269 i_stok = 0
270 j_stok = 0
271 adnstk = 0
272 adestk = 0
273 nb_nc = nsn
274 nb_ec = nrtm
275C
276C-----COPIE DES NOS DE SEGMENTS ET DE NOEUDS DANS MWA(IP1) ET IP21
277C
278 DO 120 i=1,nb_ec
279 mwa(ip1+i-1) = i
280 120 CONTINUE
281 DO 140 i=1,nb_nc
282 mwa(ip21+i-1) = i
283 140 CONTINUE
284C
285C-----DEBUT DE LA PHASE DE TRI
286C
287C TANT QUE IL RESTE UNE ADRESSE A TRIER
288C------------------
289 200 CONTINUE
290C------------------
291C SEPARER B ET N EN TWO
292 CALL i21tri(
293 1 mwa(ip1),mwa(ip2),mwa(ip21),mwa(ip22),mwa(ip31+2*(i_add-2)),
294 2 irect ,x ,nb_nc ,nb_ec ,xyzm,
295 3 i_add ,nsv ,i_amax ,xmax ,ymax,
296 4 zmax ,3*maxsiz,i_stok ,i_mem ,nb_n_b,
297 5 cand_n ,cand_e ,nsn ,noint ,tzinf_st,
298 6 maxbox_st,minbox_st,j_stok ,msr ,xm0 ,
299 7 multimp ,itab ,gap ,gap_s ,igap ,
300 8 gapmin ,gapmax ,marge_st,depth ,drad ,
301 9 id ,titr,
302 1 ix1 ,ix2 ,ix3 ,ix4 ,nsvg ,
303 2 x1 ,x2 ,x3 ,x4 ,y1 ,
304 3 y2 ,y3 ,y4 ,z1 ,z2 ,
305 4 z3 ,z4 ,xi ,yi ,zi ,
306 5 x0 ,y0 ,z0 ,stif ,nx1 ,
307 6 ny1 ,nz1 ,nx2 ,ny2 ,nz2 ,
308 7 nx3 ,ny3 ,nz3 ,nx4 ,ny4 ,
309 8 nz4 ,p1 ,p2 ,p3 ,p4 ,
310 9 lb1 ,lb2 ,lb3 ,lb4 ,lc1 ,
311 1 lc2 ,lc3 ,lc4 ,pene ,prov_n ,
312 2 prov_e,n11 ,n21 ,n31 ,dgapload)
313C------------------
314C I_MEM = 1 ==> PAS ASSEZ DE MEMOIRE PILE
315C I_MEM = 2 ==> PAS ASSEZ DE MEMOIRE CANDIDATS
316 IF (i_mem == 2)THEN
317 RETURN
318 ENDIF
319
320 IF(i_mem==1)THEN
321 nb_n_b = nb_n_b + 1
322 i_mem = 0
323 GO TO 100
324 ELSE IF(i_mem==2) THEN
325 marge_st = three_over_4*marge_st
326 tzinf_st = marge_st + max(depth,drad,(gap+dgapload))
327 maxbox_st= half*(dd + 2*tzinf_st)
328 minbox_st= half*maxbox_st
329 i_mem = 0
330 IF(marge_st<em03) THEN
331C WRITE(ISTDO,*)' ***ERROR INFINITE LOOP DETECTED(I7BUC)'
332C WRITE(IOUT,*)' **ERROR INFINITE LOOP DETECTED(I7BUC)'
333C CALL ARRET(2)
334 IF (istamping == 1) THEN
335 CALL ancmsg(msgid=776,
336 . msgtype=msgerror,
337 . anmode=aninfo,
338 . i1=id,
339 . c1=titr)
340 ELSE
341 CALL ancmsg(msgid=685,
342 . msgtype=msgerror,
343 . anmode=aninfo,
344 . i1=id,
345 . c1=titr)
346 ENDIF
347 ENDIF
348 GO TO 100
349 ENDIF
350 IF(i_add/=0) GO TO 200
351C FIN BOUCLE TANT QUE
352C---------------------------------
353 IF(j_stok/=0)THEN
354 lft = 1
355 llt = j_stok
356 CALL i21cor3t(x ,irect ,nsv ,prov_e ,prov_n,
357 2 gapv ,igap ,gap ,gap_s ,gapmin ,
358 3 gapmax,xm0 ,depth,drad ,ix1 ,
359 4 ix2 ,ix3 ,ix4 ,nsvg ,x1 ,
360 5 x2 ,x3 ,x4 ,y1 ,y2 ,
361 6 y3 ,y4 ,z1 ,z2 ,z3 ,
362 7 z4 ,xi ,yi ,zi ,dgapload)
363 CALL i7dst3(ix3,ix4,x1 ,x2 ,x3 ,
364 1 x4 ,y1 ,y2 ,y3 ,y4 ,
365 2 z1 ,z2 ,z3 ,z4 ,xi ,
366 3 yi ,zi ,x0 ,y0 ,z0 ,
367 4 nx1,ny1,nz1,nx2,ny2,
368 5 nz2,nx3,ny3,nz3,nx4,
369 6 ny4,nz4,p1 ,p2 ,p3 ,
370 7 p4 ,lb1,lb2,lb3,lb4,
371 8 lc1,lc2,lc3,lc4,j_stok)
372 CALL i7pen3(marge_st,gapv,n11,n21,n31,
373 1 pene ,nx1 ,ny1,nz1,nx2,
374 2 ny2 ,nz2 ,nx3,ny3,nz3,
375 3 nx4 ,ny4 ,nz4,p1 ,p2 ,
376 4 p3 ,p4,j_stok)
377 IF(i_stok+j_stok<multimp*nsn) THEN
378 CALL i7cmp3(i_stok,cand_e ,cand_n,1,pene,
379 1 prov_n,prov_e)
380 ELSE
381 i_bid = 0
382 CALL i7cmp3(i_bid,cand_e,cand_n,0,pene,
383 1 prov_n,prov_e)
384 IF(i_stok+i_bid<multimp*nsn) THEN
385 CALL i7cmp3(i_stok,cand_e,cand_n,1,pene,
386 1 prov_n,prov_e)
387 ELSE
388 marge_st = three_over_4*marge_st
389 tzinf_st = marge_st + max(depth,drad,(gap+dgapload))
390 maxbox_st= half*(dd + 2*tzinf_st)
391 minbox_st= half*maxbox_st
392 i_mem = 0
393 IF(marge_st<em03) THEN
394C WRITE(ISTDO,*)' ***ERROR INFINITE LOOP DETECTED(I7BUC)'
395C WRITE(IOUT,*)' **ERROR INFINITE LOOP DETECTED(I7BUC)'
396C CALL ARRET(2)
397 IF (istamping == 1) THEN
398 CALL ancmsg(msgid=776,
399 . msgtype=msgerror,
400 . anmode=aninfo,
401 . i1=id,
402 . c1=titr)
403 ELSE
404 CALL ancmsg(msgid=685,
405 . msgtype=msgerror,
406 . anmode=aninfo,
407 . i1=id,
408 . c1=titr)
409 ENDIF
410 ENDIF
411 GO TO 100
412 ENDIF
413 ENDIF
414 ENDIF
415 IF(nsn/=0)THEN
416 WRITE(iout,*)' POSSIBLE IMPACT NUMBER:',i_stok,' (<=',
417 . 1+(i_stok-1)/nsn,'*NSN)'
418 ELSE
419 CALL ancmsg(msgid=552,
420 . msgtype=msgwarning,
421 . anmode=aninfo_blind_2,
422 . i1=id,
423 . c1=titr)
424 ENDIF
425C
426C MISE A ZERO DE TAG POUR I21PWR3
427C
428 DO i=1,numnod
429 mwa(i)=0
430 ENDDO
431C
432 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine i7cmp3(i_stok, cand_e, cand_n, iflag, pene, prov_n, prov_e)
Definition i7cmp3.F:82
subroutine ymax(idn, fac, npc, pld, stiffmin, stiffmax, stiffini, stiffavg)
Definition law100_upd.F:272
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21
initmumps id
integer, parameter nchartitle
subroutine i21cor3t(x, irect, nsv, cand_e, cand_n, gapv, igap, gap, gap_s, gapmin, gapmax, xm0, depth, drad, ix1, ix2, ix3, ix4, nsvg, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, dgapload)
Definition i21cor3t.F:36
subroutine i21tri(bpe, pe, bpn, pn, add, irect, x, nb_nc, nb_ec, xyzm, i_add, nsv, i_amax, xmax, ymax, zmax, maxsiz, i_stok, i_mem, nb_n_b, cand_n, cand_e, nsn, noint, tzinf, maxbox, minbox, j_stok, msr, xm0, multimp, itab, gap, gap_s, igap, gapmin, gapmax, marge, depth, drad, id, titr, ix1, ix2, ix3, ix4, nsvg, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, x0, y0, z0, stif, nx1, ny1, nz1, nx2, ny2, nz2, nx3, ny3, nz3, nx4, ny4, nz4, p1, p2, p3, p4, lb1, lb2, lb3, lb4, lc1, lc2, lc3, lc4, pene, prov_n, prov_e, n11, n21, n31, dgapload)
Definition i21tri.F:58
subroutine i7dst3(ix3, ix4, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, x0, y0, z0, nx1, ny1, nz1, nx2, ny2, nz2, nx3, ny3, nz3, nx4, ny4, nz4, p1, p2, p3, p4, lb1, lb2, lb3, lb4, lc1, lc2, lc3, lc4, last)
Definition i7dst3.F:46
subroutine i7pen3(marge, gapv, n1, n2, n3, pene, nx1, ny1, nz1, nx2, ny2, nz2, nx3, ny3, nz3, nx4, ny4, nz4, p1, p2, p3, p4, last)
Definition i7pen3.F:43
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)
Definition message.F:889