51#include "implicit_f.inc"
62 INTEGER NNODT, NSTRF(*), IAD_CUT(NSPMD+2,*), FR_CUT(*)
68 . i, n, kr1,kr2,kr3,k0,kr0,kc,iflg,
69 . ir1, ir2, ifrl1, ifrl2, found, nr, l, ll, nsecr, id_sec,nnodg,
70 .
TYPE, ifilnam(2148), LROOTLEN, NNOD,IR, NNODR,
71 . IEXTRA, ADDSEC(2*NSECT)
72 my_real tt1, tt2, tt3, bufcom(3*nsect+7), secbufg(24*nnodt)
73 CHARACTER FILNAM*12,LCHRUN*2
77 INTEGER :: LEN_TMP_NAME
78 CHARACTER(len=2048) :: TMP_NAME
84 IF(ispmd/=0)
GO TO 100
88 bufcom(i+nsect) = zero
89 bufcom(i+2*nsect) = zero
91 addsec(i+nsect) = zero
98 IF(nstrf(2)>=1.AND.ttt>=tt2.AND.iextra==0
99 . .AND. ttt <= tstop)
THEN
110 bufcom(i+nsect) = zero
111 bufcom(i+2*nsect) = zero
113 addsec(i+nsect) = zero
123 ELSEIF(tt3==ep30)
THEN
135 filnam(i:i)=char(nstrf(15+i))
136 IF(filnam(i:i)/=
' ')lrootlen=lrootlen+1
138 dowhile(tt3<=ttt.AND.ir<100)
140 WRITE(lchrun,
'(I2.2)')ir
141 filnam=filnam(1:lrootlen)//
'SC'//lchrun
142 INQUIRE(file=filnam,exist=fexist)
147 INQUIRE(file=tmp_name(1:len_trim(tmp_name)),exist=fexist
154 ifilnam(i)=ichar(tmp_name(i:i))
157 CALL open_c(ifilnam,tmp_name,1)
169 WRITE(lchrun,
'(I2.2)')ir1
170 filnam=filnam(1:lrootlen)//
'SC'//lchrun
173 INQUIRE(file=tmp_name(1:len_trim(tmp_name)),exist=fexist)
176 len_tmp_name = len_trim(filnam)
177 tmp_name(1:len_tmp_name)=filnam(1:len_tmp_name)
178 INQUIRE(file=tmp_name(1:len_trim(tmp_name)),exist=fexist)
183 ifilnam(i)=ichar(tmp_name(i:i))
186 CALL open_c(ifilnam,len_tmp_name,1)
207 dowhile(found==0.AND.n<nsect)
209 IF(id_sec==nstrf(k0+23))
THEN
217 nnod = iad_cut(nspmd+2,n)
225 IF (nnod/=nnodr .AND. found == 1)
THEN
226 CALL ancmsg(msgid=35,anmode=aninfo_blind,
227 . i1=id_sec,i2=nnodr,i3=nnod)
230 IF(found==0.OR.nstrf(k0)<100)
THEN
242 ELSEIF(nstrf(k0)==100)
THEN
246 bufcom(n+nsect+ifrl1*nsect) = 1
247 addsec(n+ifrl1*nsect) = l+1
272 ELSEIF(nstrf(k0)==101)
THEN
276 bufcom(n+nsect+ifrl1*nsect) = 1
277 addsec(n+ifrl1*nsect) = l+1
319 ELSEIF(nstrf(k0)>=102)
THEN
330 bufcom(3*nsect+1) = nstrf(3)
331 bufcom(3*nsect+2) = nstrf(4)
332 bufcom(3*nsect+3) = nstrf(5)
333 bufcom(3*nsect+4) = nstrf(7)
334 bufcom(3*nsect+5) = secbuf(2)
335 bufcom(3*nsect+6) = secbuf(3)
336 bufcom(3*nsect+7) = secbuf(4)
340 nstrf(3) = nint(bufcom(3*nsect+1))
341 nstrf(4) = nint(bufcom(3*nsect+2))
342 nstrf(5) = nint(bufcom(3*nsect+3))
343 nstrf(7) = nint(bufcom(3*nsect+4))
344 secbuf(2) = bufcom(3*nsect+5)
345 secbuf(3) = bufcom(3*nsect+6)
346 secbuf(4) = bufcom(3*nsect+7)
356 IF(nint(bufcom(i))>0)
THEN
358 nnodg = iad_cut(nspmd+2,i)
363 iflg = nint(bufcom(i))
364 IF(nint(bufcom(nsect+i))==1)
THEN
367 kr1 = kr0 + 10 + ifrl1*6*nnod
371 l = addsec(i+ifrl1*nsect)
374 1 secbufg(l),nnodg ,secbuf(kr1),secbuf(kr2),nnod,
375 2 fr_cut(kc),iad_cut(1,i),iflg )
377 IF(nint(bufcom(2*nsect+i))==1)
THEN
380 kr1 = kr0 + 10 + ifrl1*6*nnod
387 1 secbufg(l),nnodg ,secbuf(kr1),secbuf(kr2),nnod,
388 2 fr_cut(kc),iad_cut(1,i),iflg )
391 IF(nstrf(k0)>=100.AND.ispmd==0)
THEN
392 kc = kc + iad_cut(nspmd+1,i)
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)