67
68
69
74
75
76
77#include "implicit_f.inc"
78#include "com04_c.inc"
79#include "sphcom.inc"
80
81
82
83 INTEGER IPARTS(*),IPARTC(*),IPARTG(*),NB,VAL,GR_ID,
84 . FLAG,CONT,MODIF,IPARTSP(*),F2,ITAGL(*),EANI2(*)
85
86 TYPE (GROUP_), DIMENSION(NGRNOD) :: IGRNOD
87 TYPE (SURF_) :: IGRSURF
88
89
90
91 INTEGER J,K,L,NI,FACE(4),,CUR_ID,ELTAG,CUR_10,CUR_20,CUR_16,OFFSET
92
93
94 IF (flag==0) THEN
95
96
97
98
99
100 DO j=1,nb
101 face(1) = igrsurf%NODES(j,1)
102 face(2) = igrsurf%NODES(j,2)
103 face(3) = igrsurf%NODES(j,3)
104 face(4) = igrsurf%NODES(j,4)
105 IF (face(4)==0) face(4)=face(3)
106 ni = face(1)
107 eltag = 0
108
109
112 DO k = 1,4
113 itagl(face(k)) = 0
114 END DO
115 DO k = 2,9
116 itagl(
ixs(nixs*(cur_id-1)+k)) = 1
117 END DO
118 IF (eani2(cur_id)==10) THEN
119 offset = nixs*numels
120 cur_10 = cur_id-numels8
121 DO k=1,6
122 itagl(
ixs(offset+6*(cur_10-1)+k)) = 1
123 ENDDO
124 ELSEIF (eani2(cur_id)==20) THEN
125 offset = nixs*numels+6*numels10
126 cur_20 = cur_id-(numels8+numels10)
127 DO k=1,12
128 itagl(
ixs(offset+12*(cur_20-1)+k)) = 1
129 ENDDO
130 ELSEIF (eani2(cur_id)==16) THEN
131 offset = nixs*numels+6*numels10+12*numels20
132 cur_16 = cur_id-(numels8+numels10+numels20)
133 DO k=1,8
134 itagl(
ixs(offset+8*(cur_16-1)+k)) = 1
135 ENDDO
136 ENDIF
137 sum=itagl(face(1))+itagl(face(2))+itagl(face(3))+itagl(face(4))
138 IF (sum==4) eltag = 1
139 IF ((
tag_els(cur_id+npart)<(1+cont)).AND.
140 . (
tagno(iparts(cur_id))/=val).AND.(sum==4))
THEN
142 ENDIF
143 END DO
144
145
148 DO k = 1,4
149 itagl(face(k)) = 0
150 END DO
151 DO k = 2,5
152 itagl(
ixc(nixc*(cur_id-1)+k)) = 1
153 END DO
154 sum=itagl(face(1))+itagl(face(2))+itagl(face(3))+itagl(face(4))
155 IF (sum==4) eltag = 1
156 IF ((
tag_elc(cur_id+npart)<(1+cont)).AND.
157 . (
tagno(ipartc(cur_id))/=val).AND.(sum==4))
THEN
159 ENDIF
160 END DO
161
164 DO k = 1,4
165 itagl(face(k)) = 0
166 END DO
167 DO k = 2,4
168 itagl(
ixtg(nixtg*(cur_id-1)+k)) = 1
169 END DO
170 sum=itagl(face(1))+itagl(face(2))+itagl(face(3))+itagl(face(4))
171 IF (sum==4) eltag = 1
172 IF ((
tag_elg(cur_id+npart)<(1+cont)).AND.
173 . (
tagno(ipartg(cur_id))/=val).AND.(sum==4))
THEN
175 ENDIF
176 END DO
177
178
179 IF (eltag==0) THEN
180 DO k = 1,4
181 IF (
tagno(face(k)+npart)==-1)
THEN
183 ENDIF
184 END DO
185 ENDIF
186
187 END DO
188
189 ELSE
190
191
192
193
194
195 DO j=1,nb
196 ni = igrnod(gr_id)%ENTITY(j)
197
200 IF ((
tag_els(cur_id+npart)<(1+cont)).AND.
201 . (
tagno(iparts(cur_id))/=val))
THEN
203 ENDIF
204 END DO
205
208 IF ((
tag_elc(cur_id+npart)<(1+cont)).AND.
209 . (
tagno(ipartc(cur_id))/=val))
THEN
211 ENDIF
212 END DO
213
216 IF ((
tag_elg(cur_id+npart)<(1+cont)).AND.
217 . (
tagno(ipartg(cur_id))/=val))
THEN
219 ENDIF
220 END DO
221
222 IF (numsph>0) THEN
224 IF ((
tag_elsp(cur_id+npart)<(1+cont)).AND.
225 . (
tagno(ipartsp(cur_id))/=val))
THEN
227 ENDIF
228 ENDIF
229 END DO
230
231 ENDIF
232
233
234 RETURN
integer, dimension(:), allocatable knod2elc
integer, dimension(:), allocatable knod2els
integer, dimension(:), allocatable nod2eltg
integer, dimension(:), allocatable nod2elc
integer, dimension(:), allocatable nod2els
integer, dimension(:), allocatable knod2eltg
integer, dimension(:), allocatable tag_els
integer, dimension(:), allocatable tag_elg
integer, dimension(:), allocatable tagno
integer, dimension(:), allocatable tag_elc
integer, dimension(:), allocatable tag_elsp
integer, dimension(:), allocatable, target ixs
integer, dimension(:), allocatable, target ixtg
integer, dimension(:), allocatable nod2sp
integer, dimension(:), allocatable ixc
subroutine modif_tag(tag, new_tag, modif)