40
41
42
46
47
48
49#include "implicit_f.inc"
50
51
52
53#include "comlock.inc"
54#include "com08_c.inc"
55#include "chara_c.inc"
56#include "warn_c.inc"
57#include "task_c.inc"
58#include "com01_c.inc"
59
60
61
62 INTEGER NSTRF(*),NOM_SECT(*),ISECTR,NSECT,IOLDSECT
64 . secbuf(*)
65
66
67
68 INTEGER I,,IR, N, IR1, IR2, IFILNAM(2548),LROOTLEN,LEN,K0,ID_SEC
70 . tt1, tt2, tt3, tmp(20)
71 CHARACTER(LEN=NCHARTITLE) :: FILNAM
72 CHARACTER LCHRUN*2,LCHRUN_P1*2,CH_IDSEC*10
73 LOGICAL FEXIST
74 real*4 r4
75 INTEGER :: LEN_TMP_NAME
76 CHARACTER(len=2048) :: TMP_NAME
77
78 tt1 = secbuf(2)
79 tt2 = secbuf(3)
80 tt3 = secbuf(4)
81 ir1=nstrf(4)
82 ir2=nstrf(5)
83
84
85
86 IF (ispmd==0) THEN
87 k0 = nstrf(25)
88 DO j=1,nsect
89 IF(nstrf(k0)>=1 .AND. nstrf(k0)<=10 )THEN
91 lrootlen=0
92 DO i=1,500
93
94 filnam(i:i)=char(nom_sect((j-1)*500+i))
95 IF(filnam(i:i)/=' ')lrootlen=lrootlen+1
96 ENDDO
97 IF (lrootlen == 0 .AND. abs(ioldsect) == 1) THEN
98 ioldsect = 1
99 ELSEIF( lrootlen /= 0 .AND. (ioldsect >= 1)) THEN
100 ioldsect = 2
101 ENDIF
102 ENDIF
103 k0 = nstrf(k0+24)
104 ENDDO
105 IF(nstrf(1)>=1 .AND. ioldsect == 1)THEN
106
107 WRITE(
lchrun,
'(I2.2)')irun
108 filnam=rootnam(1:rootlen)//
'SC'//
lchrun
111 DO i=1,len_tmp_name
112 ifilnam(i)=ichar(tmp_name(i:i))
113 ENDDO
115 CALL open_c(ifilnam,len_tmp_name,0)
116 ELSEIF(nstrf(1)>=1) THEN
117 k0 = nstrf(25)
118 DO j=1,nsect
119 IF(nstrf(k0)>=1 .AND. nstrf(k0)<=10 )THEN
120 WRITE(
lchrun,
'(I2.2)')irun
121 lrootlen=0
122 DO i=1,500
123
124 IF(char(nom_sect((j-1)*500+i))/=' ')THEN
125 lrootlen=lrootlen+1
126 filnam(lrootlen:lrootlen)=char(nom_sect((j-1)*500+i))
127 ENDIF
128 ENDDO
129 IF (lrootlen == 0) THEN
130 WRITE(ch_idsec,'(I10.10)')nstrf(k0+23)
131 filnam=rootnam(1:rootlen)//ch_idsec//
'SC'//
lchrun
134 DO i=1,len_tmp_name
135 ifilnam(i)=ichar(tmp_name(i:i))
136 ENDDO
138 CALL open_c(ifilnam,len_tmp_name,0)
139 ELSE
140 filnam=filnam(1:lrootlen)//
'SC'//
lchrun
143 DO i=1,len_tmp_name
144 ifilnam(i)=ichar(tmp_name(i:i))
145 ENDDO
147 CALL open_c(ifilnam,len_tmp_name,0)
148 ENDIF
149 ENDIF
150 k0 = nstrf(k0+24)
151 ENDDO
152 ENDIF
153
154
155
156 IF(nstrf(2)>=1)THEN
157 lrootlen=0
158 DO i=1,500
159
160 filnam(i:i)=char(nom_sect((isectr-1)*500+i))
161 IF(filnam(i:i)/=' ')lrootlen=lrootlen+1
162 ENDDO
163 IF(tt==zero)THEN
164 tt1=zero
165 tt2=zero
166 filnam=filnam(1:lrootlen)//'SC01'
169 INQUIRE(file=tmp_name(1:len_trim(tmp_name)),exist=fexist)
170
171 IF(.NOT.fexist) THEN
172 len_tmp_name = lrootlen + 4
173 tmp_name(1:len_tmp_name)=filnam(1:lrootlen+4)
174 INQUIRE(file=tmp_name(1:len_trim(tmp_name)),exist=fexist)
175 ENDIF
176
177 IF(fexist)THEN
179 DO i=1,len_tmp_name
180 ifilnam(i)=ichar(tmp_name(i:i))
181 ENDDO
182 CALL open_c(ifilnam,len_tmp_name,1)
185 tt1=r4
186 ir1=1
187 ir2=1
188 ELSE
189 CALL ancmsg(msgid=188,anmode=aninfo,
190 . c1=filnam)
191 ierr=ierr+1
192 tstop = tt
193 ENDIF
194 filnam=filnam(1:lrootlen)//'SC02'
197
198 INQUIRE(file=tmp_name(1:len_trim(tmp_name)),exist=fexist)
199
200 IF(.NOT.fexist) THEN
201 len_tmp_name = lrootlen + 4
202 tmp_name(1:len_tmp_name)=filnam(1:lrootlen+4)
203 INQUIRE(file=tmp_name(1:len_trim(tmp_name)),exist=fexist)
204 ENDIF
205
206 IF(fexist)THEN
207 ir2=2
209 DO i=1,len_tmp_name
210
211 ENDDO
212
213 CALL open_c(ifilnam,len_tmp_name,1)
216 tt3=r4
217 ELSE
218 tt3=ep30
219 ENDIF
220 ELSE
221 tt1=zero
222 tt2=zero
223 WRITE(
lchrun,
'(I2.2)')irun
224 filnam=filnam(1:lrootlen)//
'SC'//
lchrun
227
228 INQUIRE(file=tmp_name(1:len_trim(tmp_name)),exist=fexist)
229
230 IF(.NOT.fexist) THEN
231 len_tmp_name = len_trim(filnam)
232 tmp_name(1:len_tmp_name)=filnam(1:len_trim(filnam))
233 INQUIRE(file=tmp_name(1:len_trim(tmp_name)),exist=fexist)
234 ENDIF
235
236 IF(fexist)THEN
238 DO i=1,len_tmp_name
239 ifilnam(i)=ichar(tmp_name(i:i))
240 ENDDO
241
242 CALL open_c(ifilnam,len_tmp_name,1)
245 tt1=r4
246 ir1=irun
247 ir2=irun
248 ELSE
249 CALL ancmsg(msgid=188,anmode=aninfo,
250 . c1=filnam)
251 ierr=ierr+1
252 tstop = tt
253 ENDIF
254 WRITE(lchrun_p1,'(I2.2)')irun+1
255 filnam=filnam(1:lrootlen)//'SC'//lchrun_p1
258
259 INQUIRE(file=tmp_name,exist=fexist)
260
261 IF(.NOT.fexist) THEN
262 len_tmp_name = len_trim(filnam)
263 tmp_name(1:len_tmp_name)=filnam(1:len_tmp_name)
264 INQUIRE(file=tmp_name(1:len_trim(tmp_name)),exist=fexist)
265 ENDIF
266
267 IF(fexist)THEN
268 ir2=irun + 1
270 DO i=1,len_tmp_name
271 ifilnam(i)=ichar(tmp_name(i:i))
272 ENDDO
273
274 CALL open_c(ifilnam,len_tmp_name,1)
277 tt3=r4
278 ELSE
279 tt3=ep30
280 ENDIF
281 ENDIF
282
284 filnam=filnam(1:lrootlen)//
'SC'//
lchrun
287
289 DO i=1,len_tmp_name
290 ifilnam(i)=ichar(tmp_name(i:i))
291 ENDDO
292
293 CALL open_c(ifilnam,len_tmp_name,1)
294 ENDIF
295 ENDIF
296
297 secbuf(2) = tt1
298 secbuf(3) = tt2
299 secbuf(4) = tt3
300
301 nstrf(4) = ir1
302 nstrf(5) = ir2
303
304
305
306 IF (nspmd > 1) THEN
307 IF(ispmd==0) THEN
308 tmp(1) = nstrf(4)
309 tmp(2) = nstrf(5)
310 tmp(3) = secbuf(2)
311 tmp(4) = secbuf(3)
312 tmp(5) = secbuf(4)
313 len = 5
314
316 ELSE
317 len = 5
318
320 nstrf(4) = tmp(1)
321 nstrf(5) = tmp(2)
322 secbuf(2)= tmp(3)
323 secbuf(3)= tmp(4)
324 secbuf(4)= tmp(5)
325 ENDIF
326 END IF
327
328 RETURN
character(len=outfile_char_len) outfile_name
integer, parameter nchartitle
integer, parameter lchrun
subroutine spmd_rbcast(tabi, tabr, n1, n2, from, add)
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)
void read_r_c(float *w, int *len)
void open_c(int *ifil, int *len, int *mod)