38
39
40
42 USE intbufdef_mod
44
45
46
47#include "implicit_f.inc"
48
49
50
51#include "units_c.inc"
52#include "param_c.inc"
53#include "scr17_c.inc"
54#include "com04_c.inc"
55#include "kincod_c.inc"
56#include "tabsiz_c.inc"
57
58
59
60 INTEGER IPARI(NPARI,NINTER),ITAB(*),IKINE(*),ITAGND(*),ICNDS10(3,*)
61 INTEGER NOM_OPT(LNOPT1,*),NSTRF(*),ITAGCYC(*)
62 INTEGER , DIMENSION(NRBE2L,NRBE2), INTENT(IN) :: IRBE2
63 INTEGER , DIMENSION(NRBE3L,NRBE3), INTENT(IN) :: IRBE3
64 INTEGER , DIMENSION(SLRBE3), INTENT(IN) :: LRBE3
65 TYPE(INTBUF_STRUCT_), DIMENSION(NINTER) :: INTBUF_TAB
66
67
68
69 INTEGER I,J,N,NTY,ILEV,NSN,NMN,ISL,NKIN,NOINT,NINT,KCOND,IML,NNOD,NBINTER,TYP,K0
70 INTEGER, DIMENSION(:), ALLOCATABLE :: PENTAG,TAGNOS,ITAGMD
71 INTEGER, DIMENSION(:), ALLOCATABLE :: IKINE1
72 CHARACTER(LEN=NCHARTITLE)::TITR
73 INTEGER II,N1,N2,IAD,M
74 LOGICAL IS1,IS2
75
76
77
78 LOGICAL
80
81 ALLOCATE( pentag(numnod),tagnos(numnod),itagmd(numnod) )
82 ALLOCATE( ikine1(3*numnod) )
83 pentag(1:numnod) = 0
84 tagnos(1:numnod) = 0
85 ikine1(1:3*numnod) = 0
86
87
88
89 DO n=1,ninter
90 nty = ipari(7,n)
91 ilev = ipari(20,n)
92 IF (nty == 2 .and. (ilev == 27 .or. ilev == 28)) THEN
93 nsn = ipari(5,n)
94 noint = ipari(15,n)
95 DO i=1,nsn
96 isl = intbuf_tab(n)%NSV(i)
97 nkin = ikine(isl)
98
99 kcond = ibc(nkin)+itf(nkin)+irb(nkin)+irb2(nkin)+ivf(nkin)+irv(nkin)+ijo(nkin)
100 . + irbm(nkin)+ilmult(nkin)+irlk(nkin)+ikrbe2(nkin)+ikrbe3(nkin)
101 . + tagnos(isl)
102 IF (nbcscyc > 0) kcond = kcond +itagcyc(isl)
103
104 IF (kcond /= 0) pentag(isl) = 1
105
106 tagnos(isl) = 1
107 ENDDO
108 ENDIF
109 ENDDO
110
111
112
113
114 IF(nsect > 0) THEN
115 k0 = nstrf(25)
116 DO n=1,nsect
117 typ = nstrf(k0)
118 nnod = nstrf(k0+6)
119 nbinter = nstrf(k0+14)
120 IF ((typ == 100).OR.(typ == 101)) THEN
121 DO i=1,nnod
122 isl = nstrf(k0+30+nbinter-1+i)
123 IF (tagnos(isl) == 1) pentag(isl) = 1
124 ENDDO
125 ENDIF
126 k0 = nstrf(k0+24)
127 ENDDO
128 ENDIF
129
130
131
132 DO n=1,ninter
133 nty = ipari(7,n)
134 IF (nty == 2) THEN
135 nmn = ipari(6,n)
136 ilev = ipari(20,n)
137
138 DO i=1,nmn
139 j = intbuf_tab(n)%MSR(i)
140 IF ((ilev == 0 .OR. ilev == 1 .OR. ilev == 27 .OR. ilev == 28) .AND. pentag(j) == 0) THEN
141 pentag(j) = 1
142 ENDIF
143 ENDDO
144 ENDIF
145 ENDDO
146
147 IF (ns10e>0) THEN
148 DO n=1,ninter
149 nty = ipari(7,n)
150 ilev = ipari(20,n)
151 IF (nty == 2.AND.(ilev == 27 .or. ilev == 28)) THEN
152 nsn = ipari(5,n)
153 noint = ipari(15,n)
154 DO i=1,nsn
155 isl = intbuf_tab(n)%NSV(i)
156 IF (itagnd(isl)/=0 .AND.pentag(isl) /= 1) THEN
157 ii = iabs(itagnd(isl))
158 n1 = icnds10(2,ii)
159 n2 = icnds10(3,ii)
160 is1 =
intab(nsn,intbuf_tab(n)%NSV,n1)
161 is2 =
intab(nsn,intbuf_tab(n)%NSV,n2)
162 IF (.NOT.(is1).OR..NOT.(is2)) pentag(isl) = 1
163 END IF
164 ENDDO
165 END IF
166 ENDDO
167
168 itagmd(1:numnod) = 0
169 DO i = 1, ns10e
170 n = iabs(icnds10(1,i))
171 itagmd(n) = i
172 END DO
173
174
175 DO n=1,ninter
176 nty = ipari(7,n)
177 IF (nty == 2 ) THEN
178 nmn =ipari(6,n)
179 nsn = ipari(5,n)
180 ilev = ipari(20,n)
181 IF (ilev == 27 .or. ilev == 28) THEN
182 DO i=1,nsn
183 isl = intbuf_tab(n)%NSV(i)
184 IF (pentag(isl) /= 1.AND.itagmd(isl)==0) itagmd(isl)=-1
185 END DO
186 DO i=1,nmn
187 iml = intbuf_tab(n)%MSR(i)
188 IF (itagmd(iml)>0) itagmd(iml) = itagmd(iml) + ns10e
189 ENDDO
190 END IF
191 END IF
192 END DO
193 DO i = 1, ns10e
194 n = iabs(icnds10(1,i))
195 n1 = icnds10(2,i)
196 n2 = icnds10(3,i)
197 IF (itagmd(n)>ns10e.OR.pentag(n)==1) THEN
198 IF (itagmd(n1)<0) pentag(n1)=1
199 IF (itagmd(n2)<0) pentag(n2)=1
200 END IF
201 END DO
202 END IF
203
204
205
206 DO i=1,nrbe3
207 iad = irbe3(1,i)
208 nmn = irbe3(5,i)
209 DO j =1,nmn
210 m = lrbe3(iad+j)
211 IF (pentag(m)==0) pentag(m)=1
212 END DO
213 END DO
214
215
216
217 DO i=1,nrbe2
218 m = irbe2(3,i)
219 IF (pentag(m)==0) pentag(m)=1
220 END DO
221
222 DO n=1,ninter
223 nty = ipari(7,n)
224 ilev = ipari(20,n)
225 IF (nty == 2 .and. (ilev == 27.or. ilev == 28)) THEN
226 nsn = ipari(5,n)
227 noint = ipari(15,n)
228 nint = n
229
230
231 CALL fretitl2(titr,nom_opt(lnopt1-ltitr+1,nint),ltitr)
232 DO i=1,nsn
233 isl = intbuf_tab(n)%NSV(i)
234 IF (pentag(isl) == 1) THEN
235
236 intbuf_tab(n)%IRUPT(i) = 1
237 itf(ikine(isl)) = 0
239 . msgtype=msgwarning,
240 . anmode=aninfo_blind_1,
241 . i1=itab(isl),
242 . prmod=msg_cumu)
243 ELSE
244
245 CALL kinset(2,itab(isl),ikine(isl),1,0,ikine1(isl))
246 CALL kinset(2,itab(isl),ikine(isl),2,0,ikine1(isl))
247 CALL kinset(2,itab(isl),ikine(isl),3,0,ikine1(isl))
248 CALL kinset(2,itab(isl),ikine(isl),4,0,ikine1(isl))
249 CALL kinset(2,itab(isl),ikine(isl),5,0,ikine1(isl))
250 CALL kinset(2,itab(isl),ikine(isl),6,0,ikine1(isl))
251 ENDIF
252 ENDDO
253 ENDIF
255 . msgtype=msgwarning,
256 . anmode=aninfo_blind_1,
257 . i1=noint,
258 . c1=titr,
259 . prmod=msg_print)
260 ENDDO
261
262 WRITE(iout,*)''
263 DEALLOCATE( pentag,tagnos,itagmd )
264 DEALLOCATE( ikine1 )
265
266 RETURN
subroutine kinset(ik, node, ikine, idir, isk, ikine1)
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)