40
41
42
48
49
50
51#include "implicit_f.inc"
52
53
54
55#include "com04_c.inc"
56
57
58
59 INTEGER NUMEL,NGRELE,INDX(*),NINDX,
60 . ,ID,TAGBUF(*),
61 . FLAG
62 CHARACTER ELCHAR*(*)
63 CHARACTER(LEN=NCHARTITLE) :: TITR,TITR1
64 LOGICAL :: FLAG_GRBRIC
65 INTEGER :: NINDX_SOL, NINDX_SOL10
66 INTEGER, DIMENSION(*) :: INDX_SOL, INDX_SOL10
67
68 TYPE (GROUP_) , DIMENSION(NGRELE) :: IGRELEM
69 TYPE(SUBMODEL_DATA) LSUBMODEL(NSUBMOD)
70
71
72! and optimize an old and expensive treatment in SSURFTAG
73
74
75
76
77
78
79
80
81
82
83
84
85 INTEGER J,L,IE,IADV,K,ISU, NENTITY, KK ,JJ, NENTITY_POS,NENTITY_NEG
86 LOGICAL IS_AVAILABLE,IS_ENCRYPTED
87 INTEGER,DIMENSION(:),ALLOCATABLE :: TAG_ENTITY_POS, TAG_ENTITY_NEG,LIST_ENTITY
88
89
90 INTERFACE
93 INTEGER,DIMENSION(:),ALLOCATABLE :: arg1
94 INTEGER,INTENT(INOUT) :: arg2
95 TYPE(SUBMODEL_DATA) :: arg3(NSUBMOD)
96 END SUBROUTINE
97 END INTERFACE
98
99 IF(elchar(1:6)=='GRBRIC') flag_grbric = .true.
100
102 DO kk=1,nentity
103 jj=list_entity(kk)
104 IF(jj/=0)THEN
105 isu=0
106 DO k=1,ngrele
107 IF (jj == igrelem(k)%ID) isu=k
108 IF (jj ==-igrelem(k)%ID) isu=-k
109 ENDDO
110 IF (isu > 0)THEN
111 DO l=1,igrelem(isu)%NENTITY
112 ie=igrelem(isu)%ENTITY(l)
113 IF(tagbuf(ie)==0)THEN
114 tagbuf(ie)=1
115 nindx=nindx+1
116 indx(nindx)=ie
117 IF(flag_grbric) THEN
118 IF(ie<=numels8) THEN
119 nindx_sol=nindx_sol+1
120 indx_sol(nindx_sol)=ie
121 ELSE
122 nindx_sol10=nindx_sol10+1
123 indx_sol10(nindx_sol10)=ie
124 ENDIF
125 ENDIF
126 END IF
127 ENDDO
128 ELSEIF (isu < 0)THEN
129 DO l=1,igrelem(-isu)%NENTITY
130 ie=igrelem(-isu)%ENTITY(l)
131 IF(tagbuf(ie)==0)THEN
132 tagbuf(ie)=-1
133 nindx=nindx+1
134 indx(nindx)=ie
135 IF(flag_grbric) THEN
136 IF(ie<=numels8) THEN
137 nindx_sol=nindx_sol+1
138 indx_sol(nindx_sol)=ie
139 ELSE
140 nindx_sol10=nindx_sol10+1
141 indx_sol10(nindx_sol10)=ie
142 ENDIF
143 ENDIF
144 END IF
145 ENDDO
146 ELSEIF(flag==0)THEN
147 CALL ancmsg(msgid=192,msgtype=msgwarning,anmode=aninfo,c1=titr1,c2=titr1,c3=titr,c4=titr1,i1=
id,c5=elchar,i2=jj)
148 ENDIF
149 ENDIF
150 ENDDO
151 IF(ALLOCATED(list_entity))DEALLOCATE (list_entity)
152
153 RETURN
subroutine groups_get_elem_list(list_entity, nentity, lsubmodel)
integer, parameter nchartitle
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)