45
46
47
51
52
53
54#include "implicit_f.inc"
55
56
57
58#include "com01_c.inc"
59#include "com04_c.inc"
60#include "units_c.inc"
61#include "scrnoi_c.inc"
62#include "chara_c.inc"
63#include "scr05_c.inc"
64#include "scr13_c.inc"
65#include "titr_c.inc"
66#include "task_c.inc"
67#include "warn_c.inc"
68
69
70
71 INTEGER INOISE(*), ITABM1(*)
72 TYPE(NAMES_AND_TITLES_),INTENT(INOUT) :: NAMES_AND_TITLES
73
74
75
76 INTEGER ICODE,ITITLE(80),I,IFILNAM(2148),IWA(33),NOILEN,ITIT40(40),K,ITEST,J,INOITMP(NNOISE)
78 CHARACTER FILNAM*100, CH8*8 , EOR*8, CH40*40, CH80*80
79 CHARACTER(LEN=LTITLE) :: CARD
80 INTEGER :: LEN_TMP_NAME
81 CHARACTER(len=2148) :: TMP_NAME
82
83
84
85 CHARACTER, EXTERNAL :: STRI*8
86 INTEGER,EXTERNAL :: SYSFUS2
87
88 DATA eor/'ZZZZZEOR'/
89
90
91
92
93 IF(rnoi==0 .AND. nnoiser/=0)rnoi=1
94
95 IF(rnoi==2)rnoi=0
96 IF(rnoi==0)THEN
97 IF(nnoiser/=0.AND.ispmd==0)THEN
98 WRITE(istdo,*)'***WARNING A @T FILE WAS SAVED IN A PREVIOUS RUN'
99 WRITE(istdo,*)' FILTERING WILL BE REINITIALIZED'
100 WRITE(iout,*)'***WARNING A @T FILE WAS SAVED IN A PREVIOUS RUN'
101 WRITE(iout,*)' IF YOU WANT TO RESUME DATA SAMPLING AS',
102 . ' BEFORE, PROVIDE ONLY LINE /@TFILE'
103 WRITE(iout,*)' OTHERWISE THE FILTERING WILL BE REINITIALIZED',
104 . ' AND YOU MAY MISS SOME SAMPLES'
105 ENDIF
106 READ (iin,'(10I10)')(inoise(i+nnoise),i=1,nnoise)
107
108 DO i=1,nnoise
109 inoitmp(i)=
sysfus2(inoise(i+nnoise),itabm1,numnod)
110 END DO
111 DO i=1,nnoise
112 inoise(i)= inoitmp(i)
113 END DO
115 IF(ispmd==0) THEN
116 DO i = 1, nnoise
117 IF(inoitmp(i)==0) THEN
118 CALL ancmsg(msgid=139,anmode=aninfo_blind,
119 . i1=inoise(i+nnoise))
120 ierr=ierr+1
121 RETURN
122 END IF
123 END DO
124 ENDIF
125 inoise(2*nnoise+8)=noisev
126 inoise(2*nnoise+9)=noisep
127 inoise(2*nnoise+10)=noisea
128 ELSE
129 IF(nnoiser==0.AND.ispmd==0) THEN
130 CALL ancmsg(msgid=138,anmode=aninfo)
132 ENDIF
133
134 IF(ispmd==0)
135 . WRITE(iout,*)' CONTINUING NOISE SAMPLING FROM PREVIOUS RUN'
136 itest=0
137 IF(noisev/=0 .AND. inoise(2*nnoise+8)==0)THEN
138 IF(ispmd==0)
139 .
CALL ancmsg(msgid=140,anmode=aninfo,
140 . c1='VELOCITIES')
141 itest=1
142 ENDIF
143 IF(noisep/=0 .AND. inoise(2*nnoise+9)==0)THEN
144 IF(ispmd==0)
145 .
CALL ancmsg(msgid=140,anmode=aninfo,
146 . c1='PRESSURES')
147 itest=1
148 ENDIF
149 IF(noisea/=0 .AND. inoise(2*nnoise+10)==0)THEN
150 IF(ispmd==0)
151 .
CALL ancmsg(msgid=140,anmode=aninfo,
152 . c1='ACCELERATIONS')
153 itest=1
154 ENDIF
155 IF(itest==1)
CALL arret(2)
156 noisev=inoise(2*nnoise+8)
157 noisep=inoise(2*nnoise+9)
158 noisea=inoise(2*nnoise+10)
159 ENDIF
160 IF(noisev+noisep+noisea==0)noisev=1
161 IF(ispmd==0) THEN
162 WRITE(iout,999)
163 IF(noisev/=0)WRITE(iout,'(A)')' ... VELOCITIES'
164 IF(noisea/=0)WRITE(iout,'(A)')' ... ACCELERATIONS'
165 IF(noisep/=0)WRITE(iout,'(A)')' ... PRESSURES'
166 WRITE(iout,1000)
167 WRITE(iout,'(10I10)') (inoise(i+nnoise),i=1,nnoise)
168 ENDIF
169
170 ncnois=3*(noisev+noisea)+noisep
171 IF(ispmd/=0) RETURN
172
173
174
175 iunit=iunoi
176 icode=3040
177 noilen=
min(rootlen,7)
178 filnam=rootnam(1:noilen)//'_'//chrun//'_@.thy'
181 IF(itform==0)THEN
182 OPEN(unit=iunit,file=tmp_name(1:len_tmp_name),
183 . access='SEQUENTIAL',
184 . form='UNFORMATTED',status='UNKNOWN')
185 ELSEIF(itform==1.OR.itform==2)THEN
186 OPEN(unit=iunit,file=tmp_name(1:len_tmp_name),
187 . access='SEQUENTIAL',
188 . form='FORMATTED',status='UNKNOWN')
189 ELSEIF(itform==3)THEN
190 DO i=1,len_tmp_name
191 ifilnam(i)=ichar(tmp_name(i:i))
192 ENDDO
194 CALL open_c(ifilnam,len_tmp_name,0)
195 ELSEIF(itform==4)THEN
196 DO i=1,len_tmp_name
197 ifilnam(i)=ichar(tmp_name(i:i))
198 ENDDO
200 CALL open_c(ifilnam,len_tmp_name,3)
201 itform=3
202 ELSEIF(itform==5)THEN
203 DO i=1,len_tmp_name
204 ifilnam(i)=ichar(tmp_name(i:i))
205 ENDDO
207 CALL open_c(ifilnam,len_tmp_name,6)
208 itform=3
209 ENDIF
210
211
212
214
215 IF(itform==0)THEN
216
217 ELSEIF(itform==1)THEN
219 WRITE(iunit,'(A)')filnam(1:noilen+11)
220 WRITE(iunit,'(2A)')ch8,card(1:72)
221 ELSEIF(itform==2)THEN
222 WRITE(iunit,'(2A)')filnam(1:noilen+11),' FORMAT'
223 WRITE(iunit,'(A,I5,A,I5,A)')eor,1,'I',72,'C'
224 WRITE(iunit,'(I5,A)')icode,card(1:72)
225 ELSEIF(itform==3)THEN
226 DO i=1,80
227 ititle(i)=ichar(card(i:i))
228 ENDDO
233 ENDIF
234
235
237 DO i=1,24
238 ch80(i:i)=char(ititle(i))
239 ENDDO
240 ch80(25:33) =' RADIOSS '
241 ch80(34:59) =versio(2)(9:34)
242 ch80(60:80) =cpunam
243 DO i=25,80
244 ititle(i)=ichar(ch80(i:i))
245 ENDDO
246 IF(itform==0)THEN
247 READ(ch80,'(20A4)')title
248 WRITE(iunit)title
249 ELSEIF(itform==1)THEN
250 WRITE(iunit,'(A)')ch80
251 ELSEIF(itform==2)THEN
252 WRITE(iunit,'(2A)')filnam(1:rootlen+11),' FORMAT'
253 WRITE(iunit,'(A,I5,A)')eor,80,'C'
254 WRITE(iunit,'(A)')ch80
255 ELSEIF(itform==3)THEN
259 ENDIF
260
261 iwa(1)=1
262 iwa(2)=1
263 iwa(3)=1
264 iwa(4)=1
265 iwa(5)=1
266 iwa(6)=1
267 CALL wrtdes(iwa,iwa,6,itform,0)
268
269 iwa(1)=1
270 CALL wrtdes(iwa,iwa,1,itform,0)
271
272
273
274
275
276 ch40='FAKE'
277 READ(ch40,'(10A4)')tit40
278 DO i=1,40
279 itit40(i)=ichar(ch40(i:i))
280 ENDDO
281 IF(itform==0)THEN
282 WRITE(iunit)1,tit40,0,1,1,0
283 ELSEIF(itform==1)THEN
284 ELSEIF(itform==2)THEN
285 WRITE(iunit,'(A,I5,A,I5,A,I5,A)')eor,1,'I',40,'C',4,'I'
286 WRITE(iunit,'(I5,A,4I5)')1,ch40,0,1,1,0
287 ELSEIF(itform==3)THEN
296 ENDIF
297
298 ch40='FAKE'
299 READ(ch40,'(10A4)')tit40
300 DO i=1,40
301 itit40(i)=ichar(ch40(i:i))
302 ENDDO
303 IF(itform==0)THEN
304 WRITE(iunit)1,tit40
305 ELSEIF(itform==1)THEN
306 ELSEIF(itform==2)THEN
307 WRITE(iunit,'(A,I5,A,I5,A)')eor,1,'I',40,'C'
308 WRITE(iunit,'(I5,A)')1,ch40
309 ELSEIF(itform==3)THEN
314 ENDIF
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335 ch40='FAKE'
336 READ(ch40,'(10A4)')tit40
337 DO i=1,40
338 itit40(i)=ichar(ch40(i:i))
339 ENDDO
340 IF(itform==0)THEN
341 WRITE(iunit)1,tit40
342 ELSEIF(itform==1)THEN
343 ELSEIF(itform==2)THEN
344 WRITE(iunit,'(A,I5,A,I5,A)')eor,1,'I',40,'C'
345 WRITE(iunit,'(I5,A)')1,ch40
346 ELSEIF(itform==3)THEN
351 ENDIF
352
353 ch40=rootnam
354 READ(ch40,'(10A4)')tit40
355 DO i=1,40
356 itit40(i)=ichar(ch40(i:i))
357 ENDDO
358 IF(itform==0)THEN
359 WRITE(iunit)0,0,0,1,0,tit40
360 ELSEIF(itform==1)THEN
361 ELSEIF(itform==2)THEN
362 WRITE(iunit,'(A,I5,A,I5,A)')eor,5,'I',40,'C'
363 WRITE(iunit,'(5I5,A)')0,0,0,1,0,ch40
364 ELSEIF(itform==3)THEN
373 ENDIF
374 CALL wrtdes(iwa,iwa,1,itform,0)
375
376 ch40='NODES'
377 READ(ch40,'(10A4)')tit40
378 DO i=1,40
379 itit40(i)=ichar(ch40(i:i))
380 ENDDO
381
382 IF(itform==0)THEN
383 WRITE(iunit)1,0,0,nnoise,ncnois,tit40
384 ELSEIF(itform==1)THEN
385 ELSEIF(itform==2)THEN
386 WRITE(iunit,'(A,I5,A,I5,A)')eor,5,'I',40,'C'
387 WRITE(iunit,'(5I5,A)')1,0,0,nnoise,ncnois,ch40
388 ELSEIF(itform==3)THEN
397 ENDIF
398
399 WRITE(ch40,'(40X)')
400 DO i=1,nnoise
401 WRITE(ch40,'(I10)')inoise(i+nnoise)
402 READ(ch40,'(10A4)')tit40
403 DO j=1,40
404 itit40(j)=ichar(ch40(j:j))
405 ENDDO
406 IF(itform==0)THEN
407 WRITE(iunit)inoise(i+nnoise),tit40
408 ELSEIF(itform==1)THEN
409 ELSEIF(itform==2)THEN
410 WRITE(iunit,'(A,I5,A,I5,A)')eor,1,'I',40,'C'
411 WRITE(iunit,'(I5,A)')inoise(i+nnoise),ch40
412 ELSEIF(itform==3)THEN
417 ENDIF
418 ENDDO
419
420 k=0
421 IF(noisev==1)THEN
422 k=k+1
423 iwa(k)=1
424 k=k+1
425 iwa(k)=2
426 k=k+1
427 iwa(k)=3
428 ENDIF
429 IF(noisea==1)THEN
430 k=k+1
431 iwa(k)=4
432 k=k+1
433 iwa(k)=5
434 k=k+1
435 iwa(k)=6
436 ENDIF
437 IF(noisep==1)THEN
438 k=k+1
439 iwa(k)=7
440 ENDIF
441 CALL wrtdes(iwa,iwa,ncnois,itform,0)
442
443 RETURN
444
445 999 FORMAT(///' LIST OF VARIABLES SAVED IN NOISE FILE')
446 1000 FORMAT(///' LIST OF NODES SAVED IN NOISE FILE')
integer function sysfus2(iu, itabm1, numnod)
character(len=outfile_char_len) outfile_name
integer, parameter ltitle
subroutine spmd_glob_isum9(v, len)
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 write_i_c(int *w, int *len)
void write_c_c(int *w, int *len)
void open_c(int *ifil, int *len, int *mod)
subroutine wrtdes(a, ia, l, iform, ir)