36 SUBROUTINE hm_grogro(NUMEN ,NGRELN ,IGRELEM ,ICOUNT,
37 . FLAG ,ITER ,ELKEY ,LSUBMODEL )
53#include "implicit_f.inc"
60 INTEGER NUMEN,NGRELN,FLAG,ICOUNT,ITER
62 TYPE (GROUP_) ,
DIMENSION(NGRELN) :: IGRELEM
67 INTEGER I,J,K,L,ID,NEL,IGS,IGRS,JREC,,NONTRI,JJ,KK,
68 . flag_fmt,group_id,ifix_tmp,skipflag,uid,nn
69 CHARACTER(LEN=NCHARTITLE) :: TITR
70 CHARACTER(LEN=NCHARKEY)::KEY,KEY2
72 LOGICAL IS_ENCRYPTED, IS_AVAILABLE
73 INTEGER,
DIMENSION(:),
ALLOCATABLE :: LIST_ELEM
74 INTEGER,
DIMENSION(:),
ALLOCATABLE :: BUFTMP
80 INTEGER,
DIMENSION(:),
ALLOCATABLE :: arg1
81 INTEGER,
INTENT(INOUT) :: arg2
86 CALL my_alloc(buftmp,numen*2)
87 IF (flag == 0) icount=0
92 . option_id = group_id,
93 . option_titr = titr ,
97 IF (igrelem(igs)%GRPGRP == 2)
THEN
101 nontri = igrelem(igs)%SORTED
103 IF (flag == 0 .AND. igrelem(igs)%NENTITY == -1)
THEN
106 IF (skipflag == 0)
THEN
114 IF (iabs(jj) == igrelem(k)%ID)
THEN
121 . msgtype=msgwarning,
123 . i1=igrelem(igs)%ID,c1=titr,
125 ELSEIF (igrelem(igrs)%LEVEL == 0)
THEN
127 IF (iter > ngreln)
GOTO 900
128 igrelem(igs)%NENTITY=-1
136 IF (nontri == 0)
THEN
138 DO l=1,igrelem(igrs)%NENTITY
141 buftmp(igrelem(igrs)%ENTITY(l))=-1
142 ELSEIF (buftmp(igrelem(igrs)%ENTITY(l)) == 0)
THEN
144 buftmp(igrelem(igrs)%ENTITY(l))=1
149 nel = nel + igrelem(igrs)%NENTITY
154 IF(
ALLOCATED(list_elem))
DEALLOCATE (list_elem)
158 IF (skipflag == 0)
THEN
159 IF (nontri == 0 )
THEN
162 IF (buftmp(j) > 0) nel=nel+1
166 igrelem(igs)%NENTITY = nel
167 CALL my_alloc(igrelem(igs)%ENTITY,nel)
168 igrelem(igs)%ENTITY = 0
171 ELSEIF (flag == 1 .AND. igrelem(igs)%LEVEL == 0 .AND.
172 . igrelem(igs)%NENTITY > -1)
THEN
182 IF (iabs(jj) == igrelem(k)%ID)
THEN
188 ELSEIF (igrelem(igrs)%NENTITY == -1)
THEN
191 IF (nontri == 0)
THEN
193 DO l=1,igrelem(igrs)%NENTITY
196 buftmp(igrelem(igrs)%ENTITY(l))=-1
197 ELSEIF (buftmp(igrelem(igrs)%ENTITY(l)) == 0)
THEN
199 buftmp(igrelem(igrs)%ENTITY(l))=1
203 DO l=1,igrelem(igrs)%NENTITY
205 igrelem(igs)%ENTITY(nn) = igrelem(igrs)%ENTITY(l)
211 IF(
ALLOCATED(list_elem))
DEALLOCATE (list_elem)
216 IF (nontri == 0)
THEN
219 IF (buftmp(j) > 0)
THEN
221 igrelem(igs)%ENTITY(nn)=j
225 igrelem(igs)%LEVEL = 1
236 900
CALL ancmsg(msgid=176,
241 . i2=igrelem(igs)%ID,
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)