56
57
58
59 USE my_alloc_mod
67
68
69
70#include "implicit_f.inc"
71
72
73
74#include "com04_c.inc"
75#include "param_c.inc"
76#include "remesh_c.inc"
77#include "scr17_c.inc"
78
79
80
81 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
82 INTEGER NIX1 ,NIX ,NUMEL ,NGRELE,IELT,FLAG
83 INTEGER IPARTE(*),IPART(LIPART1,*),IX(NIX,*),ISUBMOD(*),
84 . KELTREE, ELTREE(KELTREE,*),
85 . KSONTREE, NSONTREE, KLEVTREE,ISKN(LISKN,*),ITABM1(*),
86 . IXX_S(*), IXX_S_IND(*)
88 . x(3,*),skew(lskew,*),rtrans(*)
89 TYPE(SUBMODEL_DATA) LSUBMODEL(*)
90 CHARACTER ELKEY*4,STARTKEY*7
91
92 TYPE (SUBSET_) , DIMENSION(NSUBS) :: SUBSET
93 TYPE (GROUP_) , TARGET, DIMENSION(NGRELE) :: IGRELEM
94 TYPE (BOX_) , DIMENSION(NBBOX) :: IBOX
95
96
97
98 INTEGER I,J,K,L,II,JJ,KK,ISU,ID,NEL,N1,N2,IGS,JREC,
99 . IAD0,IADC,IADFIN,IT0,IT1,IT2,IT3,IT4,IT5,
100 . KAD,UID,IFLAGUNIT,
101 . ISK,BOXTYPE,J2(2),IT6,SUB_ID,IADBOX,NN,IADBOXMAX,
102 . IT7, IDB
103 INTEGER NLIST,STAT,LIST_IGR(NGRELE)
104 INTEGER IP, NLEV, MY_LEV,IDMIN,IDMAX,OFFSET,NLINES
106 . xmin,xmax,ymin,
ymax,zmin,zmax,bid,fac_l,
107 . diam,xp1,yp1,zp1,xp2,yp2,zp2
108 CHARACTER(LEN=NCHARTITLE) :: TITR,TITR1
109 CHARACTER(LEN=NCHARKEY) :: KEY, KEY2
110 CHARACTER MES*40
111 INTEGER, DIMENSION(:),ALLOCATABLE
112INTEGER, DIMENSION(:),ALLOCATABLE :: BUFBOX
113 LOGICAL IS_AVAILABLE,IS_ENCRYPTED
114
115 INTEGER, DIMENSION(:), POINTER :: ELEM
116 INTEGER,DIMENSION(:),ALLOCATABLE :: LIST_ENTITY
117 INTEGER :: NENTITY
118
119 INTERFACE
122 INTEGER,DIMENSION(:),ALLOCATABLE :: arg1
123 INTEGER,INTENT(INOUT) :: arg2
124 TYPE(SUBMODEL_DATA) :: arg3(NSUBMOD)
125 END SUBROUTINE
126 END INTERFACE
127
128
129
130 INTEGER NINTLST,NINTLSTN,LISTCNT
131
132
133
134
135
136
137
138
139
140
141
142
143! = 2 grelem
144
145
146
147
148
149! = 0 ---> not yet initialized
150
151
152 mes(01:04) = elkey
153 mes(05:18) = ' ELEMENT GROUP'
154 mes(19:40) = ' '
155 it0 = 0
156 it1 = 0
157 it2 = 0
158 it3 = 0
159 it4 = 0
160 it5 = 0
161 it6 = 0
162 it7 = 0
163 titr1='ELEMENT GROUP'
164 ALLOCATE(buftmp(
max(numel*5,npart)),stat=stat)
165 IF (stat /= 0) THEN
166 CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1
'BUFTMP')
167 ENDIF
168
169
170
171 igs=0
173 DO i=1,ngrele
174
177 . option_titr = titr ,
178 . unit_id = uid,
179 . keyword2 = key ,
180 . keyword3 = key2)
181
182 igs=igs+1
183
184
185 IF (flag == 0) THEN
186 igrelem(igs)%ID = 0
187 igrelem(igs)%NENTITY = 0
188 igrelem(igs)%GRTYPE = 0
189 igrelem(igs)%SORTED = 0
190 igrelem(igs)%GRPGRP = 0
191 igrelem(igs)%LEVEL = 0
192 igrelem(igs)%R2R_ALL = 0
193 igrelem(igs)%R2R_SHARE = 0
194 ENDIF
195
197 igrelem(igs)%GRTYPE=ielt
198 igrelem(igs)%LEVEL=1
199 igrelem(igs)%TITLE=titr
200
201 IF(key(1:6) == startkey(2:7))THEN
202
203 igrelem(igs)%NENTITY=-1
204 igrelem(igs)%GRPGRP=2
205 igrelem(igs)%LEVEL=0
206 it0=it0+1
207 ELSEIF(key(1:4) == elkey)THEN
208
209 it1=it1+1
210 IF (flag == 0) THEN
211 igrelem(igs)%NENTITY=0
212 igrelem(igs)%GRPGRP
213 ENDIF
214 ELSEIF(key(1:4) == 'PART' .OR. key(1:6) == 'SUBSET' .OR. key(1:3) == 'MAT' .OR. key(1:4) == 'PROP') THEN
215
216 it2=it2+1
217 IF (flag == 0) THEN
218 igrelem(igs)%NENTITY=0
219 igrelem(igs)%GRPGRP=3
220 ENDIF
221 ELSEIF((key(1:3) == 'BOX' .AND. nbbox == 0 .AND.(key2(1:5) /= 'RECTA'.AND.
222 . key2(1:5) /= 'CYLIN'.AND.key2(1:5) /= 'SPHER')).OR.key(1:4) == 'GENE')THEN
223
224 it3=it3+1
225 IF (flag == 0) THEN
226 igrelem(igs)%NENTITY=0
227 igrelem(igs)%GRPGRP=4
228 ENDIF
229 ELSEIF(key(1:6) == 'SUBMOD')THEN
230
231 it4=it4+1
232 IF (flag == 0) THEN
233 igrelem(igs)%NENTITY=0
234 igrelem(igs)%GRPGRP=5
235 ENDIF
236 ELSEIF(key(1:3) == 'BOX'.AND.(key2(1:5) == 'RECTA'.OR.
237 . key2(1:5) == 'CYLIN'.OR.key2(1:5) == 'SPHER'))THEN
238
239
240
241 it5=it5+1
242 IF (flag == 0) THEN
243 igrelem(igs)%NENTITY=0
244 igrelem(igs)%GRPGRP=6
245 ENDIF
246 ELSEIF(key(1:3) == 'BOX' .AND. nbbox > 0)THEN
247
248 it6=it6+1
249 ELSEIF(key(1:8) == 'GEN_INCR')THEN
250
251
252 it7=it7+1
253 IF (flag == 0) THEN
254 igrelem(igs)%NENTITY=0
255 igrelem(igs)%GRPGRP=4
256 ENDIF
257 ENDIF
258
259 ENDDO
260
261
262
263
264 IF (flag == 0) THEN
265 DO igs=1,ngrele
266 list_igr(igs) = igrelem(igs)%ID
267 enddo
269 ENDIF
270
271
272
273
274
275 igs=0
276 kk=0
277
278 IF (it1 /= 0) THEN
279
280 buftmp = 0
281 IF(nadmesh==0.OR.(elkey(1:4)/='SHEL'.AND.elkey(1:4)/='SH3N'))THEN
283 DO i=1,ngrele
286 . option_titr = titr ,
287 . unit_id = uid,
288 . keyword2 = key ,
289 . keyword3 = key2)
290 nel=0
291 nn = 0
292 igs=igs+1
293 IF(key(1:4) == elkey)THEN
294 IF(flag == 0)THEN
296 igrelem(igs)%NENTITY=nel
297 CALL my_alloc(igrelem(igs)%ENTITY,nel)
298 igrelem(igs)%ENTITY = 0
299 ELSEIF (flag == 1) THEN
300
302 DO kk=1,nentity
303 jj=list_entity(kk)
304 IF(jj /= 0)THEN
305 nn = nn + 1
306 igrelem(igs)%ENTITY(nn) = jj
307 ENDIF
308 enddo
309 IF(ALLOCATED(list_entity))DEALLOCATE (list_entity)
310
311 IF ( numel == 0 ) igrelem(igs)%NENTITY = 0
312 nel = igrelem(igs)%NENTITY
313 IF (nel > 0) THEN
314 titr = igrelem(igs)%TITLE
315 elem => igrelem(igs)%ENTITY
317 . elem,nel ,ixx_s ,nix ,numel ,
318 . mes,ixx_s_ind,buftmp(1+2*numel),elkey,
319 . igrelem(igs)%ID,titr)
320 igrelem(igs)%NENTITY=nel
321 ENDIF
322 ENDIF
323
324 ENDIF
325 enddo
326 ELSE
328 DO i=1,ngrele
329 nel=0
330 igs=igs+1
333 . option_titr = titr ,
334 . unit_id = uid,
335 . keyword2 = key ,
336 . keyword3 = key2)
337 IF(key(1:4) == elkey)THEN
338 IF(flag == 0)THEN
340 titr=igrelem(igs)%TITLE
341 CALL hm_admlcnt(nix ,ix ,numel ,iparte ,ipart ,
342 . keltree ,eltree ,ksontree,nsontree,klevtree,
343 . nlist ,mes ,buftmp ,buftmp(1+numel),buftmp(1+2*numel),
344 . kk ,nel ,elkey ,igrelem(igs)%ID,titr,lsubmodel)
345 kk=1
346 igrelem(igs)%NENTITY=nel
347 CALL my_alloc(igrelem(igs)%ENTITY,nel)
348 igrelem(igs)%ENTITY = 0
349 ELSEIF (flag == 1) THEN
350 nel = igrelem(igs)%NENTITY
351 IF (nel > 0) THEN
353 titr=igrelem(igs)%TITLE
354 elem => igrelem(igs)%ENTITY
355 CALL hm_admlist(nix ,ix ,numel ,iparte ,ipart ,
356 . keltree ,eltree ,ksontree,nsontree,klevtree,
357 . nlist ,mes ,buftmp ,buftmp(1+numel),buftmp(1+2*numel),
358 . kk ,nel ,elem,elkey,igrelem(igs)%ID,titr,lsubmodel)
359 kk=1
360 ENDIF
361 ENDIF
362 ENDIF
363 enddo
364 ENDIF
365 ENDIF
366
367
368
369 igs=0
370 IF (it3 /= 0) THEN
372 DO i=1,ngrele
373
376 . option_titr = titr ,
377 . unit_id = uid,
378 . keyword2 = key ,
379 . keyword3 = key2)
380 nn = 0
381 nel=0
382 igs=igs+1
383
384
385
386 IF(key(1:3) == 'BOX'.AND.(key2(1:5) /= 'RECTA'.AND.key2(1:5) /= 'CYLIN'.AND.key2(1:5) /= 'SPHER').AND.nbbox == 0)THEN
387
388
389
390
391
392 ELSEIF(key(1:4) == 'GENE')THEN
393 iadc = 0
394 buftmp = 0
395 CALL hm_get_intv (
'grnodGenArrCnt' ,nentity,is_available,lsubmodel)
396 DO kk=1,nentity
399 IF(n2>n1)THEN
400
401 DO k=1,numel
402 IF (ix(nix,k) >= n1 .AND. ix(nix,k) <= n2) buftmp(k)=1
403 enddo
404 ENDIF
405 enddo
406
407 IF(nadmesh==0)THEN
408 nel=0
409 IF (flag == 0) THEN
410 DO j=1,numel
411 IF (buftmp(j) == 1) nel=nel+1
412 enddo
413 igrelem(igs)%NENTITY=nel
414 CALL my_alloc(igrelem(igs)%ENTITY,nel)
415 igrelem(igs)%ENTITY = 0
416 ELSEIF (flag == 1) THEN
417 DO j=1,numel
418 IF (buftmp(j) == 1) THEN
419 nn = nn + 1
420 igrelem(igs)%ENTITY(nn)=j
421 ENDIF
422 enddo
423 ENDIF
424 ELSE
425 nel=0
426 IF (flag == 0) THEN
427 DO j=1,numel
428 IF (buftmp(j) == 1) THEN
429 ip=iparte(j)
430 nlev =ipart(10,ip)
431 my_lev=eltree(klevtree,j)
432 IF(my_lev < 0) my_lev=-(my_lev+1)
433 IF(my_lev==nlev)nel=nel+1
434 END IF
435 enddo
436 igrelem(igs)%NENTITY=nel
437 CALL my_alloc(igrelem(igs)%ENTITY,nel)
438 igrelem(igs)%ENTITY = 0
439 ELSEIF (flag == 1) THEN
440 DO j=1,numel
441 IF (buftmp(j) == 1) THEN
442 ip=iparte(j)
443 nlev =ipart(10,ip)
444 my_lev=eltree(klevtree,j)
445 IF(my_lev < 0) my_lev=-(my_lev+1)
446 IF(my_lev==nlev)THEN
447
448 igrelem(igs)%ENTITY(nn)=j
449 ENDIF
450 ENDIF
451 enddo
452 ENDIF
453 ENDIF
454 ENDIF
455 enddo
456 ENDIF
457
458
459
460
461 igs=0
462 IF (it5 /= 0) THEN
463
464
465
466
467 ENDIF
468
469
470
471 igs=0
472 IF(it6 /= 0)THEN
473
474
475 IF (flag == 0) THEN
476 ALLOCATE(bufbox(1))
477 bufbox = 0
478 ELSEIF (flag == 1) THEN
479 ALLOCATE(bufbox(iadboxmax))
480 bufbox(1:iadboxmax) = 0
481 ENDIF
482
484 DO i=1,ngrele
487 . option_titr = titr ,
488 . unit_id = uid,
489 . keyword2 = key ,
490 . keyword3 = key2)
491 nn = 0
492 nel=0
493 igs=igs+1
494 IF (key(1:3) == 'BOX'.AND. nbbox > 0)THEN
495 buftmp = 0
496 iadbox = 1
497 iflagunit = 0
499 DO j=1,unitab%NUNITS
500 IF (unitab%UNIT_ID(j) == uid) THEN
501 fac_l = unitab%FAC_L(j)
502 iflagunit = 1
503 EXIT
504 ENDIF
505 ENDDO
506 IF (uid/=0.AND.iflagunit==0) THEN
507 CALL ancmsg(msgid=659,anmode=aninfo,msgtype=msgerror,
508 . i2=uid,i1=
id,c1='element group
',
509 . C2='element group',
510 . C3=TITR)
511 ENDIF
512
513 CALL HM_GET_INT_ARRAY_INDEX ('ids' ,IDB ,1,IS_AVAILABLE,LSUBMODEL)
514 CALL HM_BIGBOX2(X ,FLAG ,NEL ,
515 . SKEW ,IGS ,ISKN ,ITABM1,IBOX ,
516 . ID ,NADMESH,NIX ,IX ,NIX1 ,NUMEL ,
517 . IPARTE ,IPART ,KLEVTREE,ELTREE,KELTREE,BUFTMP,
518 . KEY ,TITR ,MES ,IGRELEM,NGRELE ,NN ,
519 . IADBOX ,IADBOXMAX,BUFBOX,IDB)
520
521 IADBOXMAX = MAX(IADBOX,IADBOXMAX)
522 IF(FLAG == 0)THEN
523 IGRELEM(IGS)%NENTITY=NEL
524 CALL MY_ALLOC(IGRELEM(IGS)%ENTITY,NEL)
525 IGRELEM(IGS)%ENTITY = 0
526 ELSE IF(FLAG == 1)THEN
527 IGRELEM(IGS)%NENTITY=NEL
528 ENDIF ! IF(FLAG == 0)
529 ENDIF
530
531
532 ENDDO
533 IF(ALLOCATED(BUFBOX))DEALLOCATE(BUFBOX)
534 ENDIF ! IF(IT6 /= 0)
535
536
537
538
539 IGS=0
540 IF (IT2 > 0) THEN
541 CALL HM_OPTION_START(TRIM(STARTKEY))
542 DO I=1,NGRELE
543 CALL HM_OPTION_READ_KEY(LSUBMODEL,
544 . OPTION_ID = ID,
545 . OPTION_TITR = TITR ,
546 . UNIT_ID = UID ,
547 . KEYWORD2 = KEY ,
548 . KEYWORD3 = KEY2)
549 NN = 0
550 NEL=0
551 IGS=IGS+1
552 IF (KEY(1:6)=='subset.OR.' KEY(1:4)=='part.OR.' KEY(1:3)=='mat.OR.' KEY(1:4)=='prop') THEN
553
554 BUFTMP = 0
555 CALL HM_TAGPART(BUFTMP, IPART, KEY, IGRELEM(IGS)%ID, TITR, TITR1, FLAG, SUBSET, LSUBMODEL)
556
557 IF(NADMESH==0)THEN
558 IF (FLAG == 0) THEN
559 DO J=1,NUMEL
560 IF (BUFTMP(IPARTE(J)) == 1) NEL=NEL+1
561 ENDDO
562 IGRELEM(IGS)%NENTITY=NEL
563 CALL MY_ALLOC(IGRELEM(IGS)%ENTITY,NEL)
564 IGRELEM(IGS)%ENTITY = 0
565 ELSEIF (FLAG == 1) THEN
566 DO J=1,NUMEL
567 IF (BUFTMP(IPARTE(J)) == 1) THEN
568 NN = NN + 1
569 IGRELEM(IGS)%ENTITY(NN)=J
570 ENDIF
571 ENDDO
572 ENDIF
573 ELSE
574 IF (FLAG == 0) THEN
575 DO J=1,NUMEL
576 IP=IPARTE(J)
577 IF(BUFTMP(IP) == 1) THEN
578 NLEV =IPART(10,IP)
579 MY_LEV=ELTREE(KLEVTREE,J)
580 IF(MY_LEV < 0) MY_LEV=-(MY_LEV+1)
581 IF(MY_LEV==NLEV)NEL=NEL+1
582 END IF
583 ENDDO
584 IGRELEM(IGS)%NENTITY=NEL
585 CALL MY_ALLOC(IGRELEM(IGS)%ENTITY,NEL)
586 IGRELEM(IGS)%ENTITY = 0
587 ELSEIF (FLAG == 1) THEN
588 DO J=1,NUMEL
589 IP=IPARTE(J)
590 IF (BUFTMP(IP) == 1) THEN
591 NLEV =IPART(10,IP)
592 MY_LEV=ELTREE(KLEVTREE,J)
593 IF(MY_LEV < 0) MY_LEV=-(MY_LEV+1)
594 IF(MY_LEV==NLEV)THEN
595 NN = NN + 1
596 IGRELEM(IGS)%ENTITY(NN)=J
597 ENDIF
598 ENDIF
599 ENDDO
600 ENDIF
601 ENDIF
602 ENDIF
603
604 ENDDO
605 ENDIF
606
607
608
609
610 IGS=0
611 IF (IT4 > 0) THEN
612 CALL HM_OPTION_START(TRIM(STARTKEY))
613 DO I=1,NGRELE
614 CALL HM_OPTION_READ_KEY(LSUBMODEL,
615 . OPTION_ID = ID,
616 . OPTION_TITR = TITR ,
617 . UNIT_ID = UID ,
618 . KEYWORD2 = KEY ,
619 . KEYWORD3 = KEY2)
620 NN = 0
621 NEL=0
622 IGS=IGS+1
623 IF (KEY(1:6) == 'submod') THEN
624 CALL HM_SUBMODGRE(
625 . ISUBMOD ,IX ,NIX ,ID ,
626 . NEL ,NUMEL ,IELT ,MES ,
627 . FLAG ,TITR ,TITR1 ,LSUBMODEL,IGRELEM ,
628 . NN ,IGS )
629 IF (FLAG == 0) THEN
630 IGRELEM(IGS)%NENTITY=NEL
631 CALL MY_ALLOC(IGRELEM(IGS)%ENTITY,NEL)
632 IGRELEM(IGS)%ENTITY = 0
633 ENDIF
634 ENDIF
635
636 ENDDO
637 ENDIF
638
639
640
641 IGS=0
642 IF (IT7 /= 0) THEN
643 CALL HM_OPTION_START(TRIM(STARTKEY))
644 DO I=1,NGRELE
645 CALL HM_OPTION_READ_KEY(LSUBMODEL,
646 . OPTION_ID = ID,
647 . OPTION_TITR = TITR ,
648 . UNIT_ID = UID ,
649 . KEYWORD2 = KEY ,
650 . KEYWORD3 = KEY2)
651 NN = 0
652 NEL=0
653 IGS=IGS+1
654 IF(KEY(1:8) == 'gen_incr')THEN
655 IADC = 0
656 BUFTMP = 0
657 CALL HM_GET_INTV ('grnodgenarrcnt' ,NLINES,IS_AVAILABLE,LSUBMODEL)
658 DO KK=1,NLINES
659 CALL HM_GET_INT_ARRAY_INDEX ('ifirst' ,IDMIN ,KK,IS_AVAILABLE,LSUBMODEL)
660 CALL HM_GET_INT_ARRAY_INDEX ('ilast' ,IDMAX ,KK,IS_AVAILABLE,LSUBMODEL)
661 CALL HM_GET_INT_ARRAY_INDEX ('iincr' ,OFFSET ,KK,IS_AVAILABLE,LSUBMODEL)
662 !optimized loop
663 DO K=1,NUMEL
664 ID=IX(NIX,K)
665.OR. IF(ID<IDMIN ID>IDMAX)CYCLE
666 IF(MOD(ID-IDMIN,OFFSET)==0)BUFTMP(K)=1
667 ENDDO
668 ENDDO
669
670 IF(NADMESH==0)THEN
671 NEL=0
672 IF (FLAG == 0) THEN
673 DO J=1,NUMEL
674 IF (BUFTMP(J) == 1) NEL=NEL+1
675 ENDDO
676 IGRELEM(IGS)%NENTITY=NEL
677 CALL MY_ALLOC(IGRELEM(IGS)%ENTITY,NEL)
678 IGRELEM(IGS)%ENTITY = 0
679 ELSEIF (FLAG == 1) THEN
680 DO J=1,NUMEL
681 IF (BUFTMP(J) == 1) THEN
682 NN = NN + 1
683 IGRELEM(IGS)%ENTITY(NN)=J
684 ENDIF
685 ENDDO
686 ENDIF
687 ELSE
688 NEL=0
689 IF (FLAG == 0) THEN
690 DO J=1,NUMEL
691 IF (BUFTMP(J) == 1) THEN
692 IP=IPARTE(J)
693 NLEV =IPART(10,IP)
694 MY_LEV=ELTREE(KLEVTREE,J)
695 IF(MY_LEV < 0) MY_LEV=-(MY_LEV+1)
696 IF(MY_LEV==NLEV)NEL=NEL+1
697 END IF
698 ENDDO
699 IGRELEM(IGS)%NENTITY=NEL
700 CALL MY_ALLOC(IGRELEM(IGS)%ENTITY,NEL)
701 IGRELEM(IGS)%ENTITY = 0
702 ELSEIF (FLAG == 1) THEN
703 DO J=1,NUMEL
704 IF (BUFTMP(J) == 1) THEN
705 IP=IPARTE(J)
706 NLEV =IPART(10,IP)
707 MY_LEV=ELTREE(KLEVTREE,J)
708 IF(MY_LEV < 0) MY_LEV=-(MY_LEV+1)
709 IF(MY_LEV==NLEV)THEN
710 NN = NN + 1
711 IGRELEM(IGS)%ENTITY(NN)=J
712 ENDIF
713 ENDIF
714 ENDDO
715 ENDIF
716 ENDIF
717 ENDIF
718
719 ENDDO!next I
720 ENDIF
721
722 IF (ALLOCATED(BUFTMP)) DEALLOCATE(BUFTMP)
723
724 RETURN
subroutine groups_get_elem_list(list_entity, nentity, lsubmodel)
subroutine groups_get_nentity(nentity, lsubmodel)
subroutine hm_admlist(nix, ix, numel, ipartel, ipart, keltree, eltree, ksontree, nsontree, klevtree, nlist, mess, ix1, ix2, index, kk, nel, nelt, elkey, id, titr, lsubmodel)
subroutine hm_admlcnt(nix, ix, numel, ipartel, ipart, keltree, eltree, ksontree, nsontree, klevtree, nlist, mess, ix1, ix2, index, ll, nel, elkey, id, titr, lsubmodel)
subroutine hm_get_int_array_index(name, ival, index, is_available, lsubmodel)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_start(entity_type)
subroutine ymax(idn, fac, npc, pld, stiffmin, stiffmax, stiffini, stiffavg)
integer, parameter nchartitle
integer, parameter ncharkey
integer function nintlstn(list, nlist, ixx_s, nix, numel, mess, ixx_s_ind, index, type, id, titr)
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)
subroutine udouble_igr(list, nlist, mess, ir, rlist)