51#include "implicit_f.inc"
62 INTEGER NNODT, NSTRF(*), IAD_CUT(NSPMD+2,*), FR_CUT(*)
68 . j, i, k, ii, i1, i2, n, kr1,kr2,kr3,k0,kr0,k1,k2,kc,iflg,
69 . ir1, ir2, ifrl1, ifrl2, found, nr, l, ll, nsecr, id_sec,nnodg,
70 .
TYPE, ifilnam(2148), LROOTLEN, LREC, NNOD,IR, NNODR,KR11,KR12,
71 . KR21,KR22,NBINTER,, 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
171 LEN_TMP_NAME = OUTFILE_NAME_LEN + LEN_TRIM(FILNAM)
172 TMP_NAME=OUTFILE_NAME(1:OUTFILE_NAME_LEN)//FILNAM(1:LEN_TRIM(FILNAM))
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)
200 CALL READ_I_C(NSECR,1)
202 CALL READ_I_C(ID_SEC,1)
207.AND.
DOWHILE(FOUND==0N<NSECT)
209 IF(ID_SEC==NSTRF(K0+23))THEN
217 NNOD = IAD_CUT(NSPMD+2,N)
223 CALL READ_I_C(TYPE,1)
224 CALL READ_I_C(NNODR,1)
225.AND.
IF (NNOD/=NNODR FOUND == 1) THEN
226 CALL ANCMSG(MSGID=35,ANMODE=ANINFO_BLIND,
227 . I1=ID_SEC,I2=NNODR,I3=NNOD)
230.OR.
IF(FOUND==0NSTRF(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)
338 CALL SPMD_RBCAST(BUFCOM,BUFCOM,3*NSECT+7,1,0,2)
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
384 L = ADDSEC(I+IFRL1*NSECT)
387 1 SECBUFG(L),NNODG ,SECBUF(KR1),SECBUF(KR2),NNOD,
388 2 FR_CUT(KC),IAD_CUT(1,I),IFLG )
391.AND.
IF(NSTRF(K0)>=100ISPMD==0) THEN
392 KC = KC + IAD_CUT(NSPMD+1,I)