44 SUBROUTINE hist1(FILNAM,IFIL ,NTHGRP2,LONG ,
46 3 SUBSET,ITHGRP,ITHBUF,IGEO ,
47 4 IPM ,IPARTH ,NPARTH ,NVPARTH ,
48 5 NVSUBTH ,ITTYP,ITHFLAG,ITHVAR,IFILTITL,
49 6 SITHBUF,NAMES_AND_TITLES)
60#include "implicit_f.inc"
76#include "tabsiz_c.inc"
80 INTEGER,
INTENT(IN) :: SITHBUF
81 INTEGER,
INTENT(IN),
DIMENSION(SITHBUF) :: ITHBUF
83 . IPART(LIPART1,*),IPM(NPROPMI,*),IGEO(NPROPGI,*),
84 . ITHGRP(NITHGR,*), IFIL,
86 . nparth,iparth(nparth,*),nvparth,nvsubth,
87 . ittyp,ithflag,ithvar(*),ifiltitl
90 . pm(npropm,*),geo(npropg,*)
92 TYPE (SUBSET_) ,
DIMENSION(NSUBS) :: SUBSET
93 TYPE(NAMES_AND_TITLES_),
INTENT(IN) :: NAMES_AND_TITLES
98 INTEGER ITITLE(100), IFILNAM(100), , I,
100 . NVAR,MID,PID,IAD1,IAD2,J,IAD,LTITL,NRECORD,
101 . SEEK_LOC,IPART1,IPART2
104 . tit40(10),tit80(20),tit100(25)
106 CHARACTER EOR*8, CH8*8,BLA*7, CH8M*8, CH8L*8, CH8T*8
107 CHARACTER (LEN=LTITLE) :: CARD
108 CHARACTER CH80*80,TITL*100,VAR*10
109 INTEGER :: LEN_TMP_NAME, TITLSUM
111 CHARACTER(len=2148) :: TMP_NAME
112 INTEGER,
dimension(:),
allocatable :: IWA
116 CHARACTER STRR*8, STRI*8
127 IF(th_vers>=2021)
THEN
130 ELSEIF(th_vers>=50)
THEN
133 ELSEIF(th_vers>=47)
THEN
145 .
OPEN(unit=ifiltitl,file=tmp_name(1:len_tmp_name)//
'_TITLES',
146 . access=
'SEQUENTIAL',
147 . form='formatted
',STATUS='unknown
')
150 OPEN(UNIT=IUNIT,FILE=TMP_NAME(1:LEN_TMP_NAME),
151 . ACCESS='sequential
',
152 . FORM='unformatted
',STATUS='unknown
')
153.OR.
ELSEIF(ITTYP==1ITTYP==2)THEN
154 OPEN(UNIT=IUNIT,FILE=TMP_NAME(1:LEN_TMP_NAME),
155 . ACCESS='sequential
',
156 . FORM='formatted
',STATUS='unknown
')
159 IFILNAM(I)=ICHAR(TMP_NAME(I:I))
163 CALL OPEN_C(IFILNAM,LEN_TMP_NAME,0)
166 CALL OPEN_C(IFILNAM,LEN_TMP_NAME,8)
171 IFILNAM(I)=ICHAR(TMP_NAME(I:I))
174 CALL OPEN_C(IFILNAM,LEN_TMP_NAME,3)
178 IFILNAM(I)=ICHAR(TMP_NAME(I:I))
181 CALL OPEN_C(IFILNAM,LEN_TMP_NAME,6)
186 READ(CARD,'(20a4)
')TITLE
187 WRITE(IUNIT)ICODE,TITLE
190 WRITE(IUNIT,'(a)
')FILNAM(1:ROOTLEN+LONG)
191 WRITE(IUNIT,'(2a)
')CH8,CARD(1:72)
193 WRITE(IUNIT,'(2a)
')FILNAM(1:ROOTLEN+LONG),' format
'
194 WRITE(IUNIT,'(a,i5,a,i5,a)
')EOR,1,'i
',72,'c
'
195 WRITE(IUNIT,'(i5,a)
')ICODE,CARD(1:72)
198 ITITLE(I)=ICHAR(CARD(I:I))
201 CALL WRITE_I_C(ICODE,1)
202 CALL WRITE_C_C(ITITLE,80)
206 CALL MY_CTIME(ITITLE)
208 CH80(I:I)=CHAR(ITITLE(I))
211 CH80(34:59) =VERSIO(2)(9:34)
214 ITITLE(I)=ICHAR(CH80(I:I))
217 READ(CH80,'(20a4)
')TITLE
220 WRITE(IUNIT,'(a)
')CH80
222 WRITE(IUNIT,'(2a)
')FILNAM(1:ROOTLEN+LONG),' format
'
223 WRITE(IUNIT,'(a,i5,a)
')EOR,80,'c
'
224 WRITE(IUNIT,'(a)
')CH80
227 CALL WRITE_C_C(ITITLE,80)
240 WRITE(IUNIT,'(2a)
')CH8
242 WRITE(IUNIT,'(a,i5,a)
')EOR,1,'i
'
243 WRITE(IUNIT,'(i5)
')NRECORD
246 CALL WRITE_I_C(NRECORD,1)
255 WRITE(IUNIT,'(2a)
')CH8
257 WRITE(IUNIT,'(a,i5,a)
')EOR,1,'i
'
258 WRITE(IUNIT,'(i5)
')LTITL
261 CALL WRITE_I_C(LTITL,1)
267 WRITE(IUNIT) FAC_MASS,FAC_LENGTH,FAC_TIME
270 CH8L=STRR(FAC_LENGTH)
272 WRITE(IUNIT,'(3a8)
')CH8M,CH8L,CH8T
274 WRITE(IUNIT,'(a,i5,a)
')EOR,3,'r
'
275 WRITE(IUNIT,'((5(1x,1pe15.8)
')FAC_MASS,FAC_LENGTH,FAC_TIME
294.AND.
IF(NSECT==0NSFLSW/=0) IWA(5)=NTHGRP2+1
296 IF (IUNIT /= IUHIS) THEN
303 CALL WRTDES(IWA,IWA,6,ITTYP,0)
305 IF(ALLOCATED(IWA)) DEALLOCATE(IWA)
306 ALLOCATE(IWA(NGLOBTH))
311 IF(IUNIT == IUHIS) CALL WRTDES(IWA,IWA,NGLOBTH,ITTYP,0)
314 NVAR=MAX(NVAR,IPARTH(NVPARTH,N))
316 IF(ALLOCATED(IWA)) DEALLOCATE(IWA)
320 NVAR=IPARTH(NVPARTH,N)
321 IAD =IPARTH(NVPARTH+1,N)
322 CALL FRETITL2(TITL,IPART(LIPART1-LTITR+1,N),40)
324 ITITLE(I)=ICHAR(TITL(I:I))
335 READ(TITL,'(10a4)
')TIT40
336 WRITE(IUNIT)IPART(4,N),TIT40,IPART(7,N),
338 ELSE IF(LTITL==80)THEN
339 READ(TITL,'(20a4)
')TIT80
340 WRITE(IUNIT)IPART(4,N),TIT80,IPART(7,N),
343 READ(TITL,'(25a4)
')TIT100
344 WRITE(IUNIT)IPART(4,N),TIT100,IPART(7,N),
349 WRITE(IUNIT,'(a,i5,a,i5,a,i5,a)
')EOR,1,'i
',40,'c
',4,'i
'
350 WRITE(IUNIT,'(i10,a,4i5)
')IPART(4,N),TITL(1:LTITL),
351 . IPART(7,N),IPART1,IPART2,NVAR
354 CALL WRITE_I_C(IPART(4,N),1)
355 CALL WRITE_C_C(ITITLE,LTITL)
356 CALL WRITE_I_C(IPART(7,N),1)
357 CALL WRITE_I_C(IPART1,1)
358 CALL WRITE_I_C(IPART2,1)
359 CALL WRITE_I_C(NVAR,1)
365 IF(I <= SITHBUF) THEN
371 IF(NVAR/=0)CALL WRTDES(IWA,IWA,NVAR,ITTYP,0)
376 CALL FRETITL2(TITL,IPM(NPROPMI-LTITR+1,N),40)
377 TITLSUM=SUM(IPM(NPROPMI-LTITR+1:NPROPMI-LTITR+40,N))
383 ITITLE(I)=ICHAR(TITL(I:I))
387 READ(TITL,'(10a4)
')TIT40
388 WRITE(IUNIT)MID,TIT40
389 ELSE IF(LTITL==80)THEN
390 READ(TITL,'(20a4)
')TIT80
391 WRITE(IUNIT)MID,TIT80
393 READ(TITL,'(25a4)
')TIT100
394 WRITE(IUNIT)MID,TIT100
398 WRITE(IUNIT,'(a,i5,a,i5,a)
')EOR,1,'i
',LTITL,'c
'
399 WRITE(IUNIT,'(i10,a)
')MID,TITL(1:LTITL)
402 CALL WRITE_I_C(MID,1)
403 CALL WRITE_C_C(ITITLE,LTITL)
410 CALL FRETITL2(TITL,IGEO(NPROPGI-LTITR+1,N),40)
412 ITITLE(I)=ICHAR(TITL(I:I))
416 READ(TITL,'(10a4)
')TIT40
417 WRITE(IUNIT)PID,TIT40
418 ELSE IF(LTITL==80)THEN
419 READ(TITL,'(20a4)
')TIT80
420 WRITE(IUNIT)PID,TIT80
422 READ(TITL,'(25a4)
')TIT100
423 WRITE(IUNIT)PID,TIT100
427 WRITE(IUNIT,'(a,i5,a,i5,a)
')EOR,1,'i
',LTITL,'c
'
428 WRITE(IUNIT,'(i10,a)
')PID,TITL(1:LTITL)
432 CALL WRITE_I_C(PID,1)
433 CALL WRITE_C_C(ITITLE,LTITL)
438 IF(ALLOCATED(IWA)) DEALLOCATE(IWA)
441 NVAR=MAX(NVAR,SUBSET(N)%NVARTH(ITHFLAG))
445!! NVAR=ISUBTH(NVSUBTH,N)
446!! IAD =ISUBTH(NVSUBTH+1,N)
447 NVAR=SUBSET(N)%NVARTH(ITHFLAG)
449!! CALL FRETITL2(TITL,ISUBS(LISUB1-LTITR+1,N),40)
450 TITL = SUBSET(N)%TITLE
452 ITITLE(I)=ICHAR(TITL(I:I))
456 READ(TITL,'(10a4)
')TIT40
457!! WRITE(IUNIT)ISUBS(1,N),ISUBS(10,N),
458!! . ISUBS(2,N),ISUBS(4,N),NVAR,TIT40
459 WRITE(IUNIT)SUBSET(N)%ID,SUBSET(N)%PARENT,
460 . SUBSET(N)%NCHILD,SUBSET(N)%NPART,NVAR,TIT40
461 ELSE IF(LTITL==00)THEN
462 READ(TITL,'(20a4)
')TIT80
463!! WRITE(IUNIT)ISUBS(1,N),ISUBS(10,N),
464!! . ISUBS(2,N),ISUBS(4,N),NVAR,TIT80
465 WRITE(IUNIT)SUBSET(N)%ID,SUBSET(N)%PARENT,
466 . SUBSET(N)%NCHILD,SUBSET(N)%NPART,NVAR,TIT80
468 READ(TITL,'(25a4)
')TIT100
469!! WRITE(IUNIT)ISUBS(1,N),ISUBS(10,N),
470!! . ISUBS(2,N),ISUBS(4,N),NVAR,TIT100
471 WRITE(IUNIT)SUBSET(N)%ID,SUBSET(N)%PARENT,
472 . SUBSET(N)%NCHILD,SUBSET(N)%NPART,NVAR,TIT100
476 WRITE(IUNIT,'(a,i5,a,i5,a)
')EOR,5,'i
',LTITL,'c
'
477!! WRITE(IUNIT,'(5i10,a)
')ISUBS(1,N),ISUBS(10,N),
478!! . ISUBS(2,N),ISUBS(4,N),NVAR,TITL(1:LTITL)
479 WRITE(IUNIT,'(5i10,a)
')SUBSET(N)%ID,SUBSET(N)%PARENT,
480 . SUBSET(N)%NCHILD,SUBSET(N)%NPART,NVAR,TITL(1:LTITL)
483!! CALL WRITE_I_C(ISUBS(1,N),1)
484 CALL WRITE_I_C(SUBSET(N)%ID,1)
485!! CALL WRITE_I_C(ISUBS(10,N),1)
486 CALL WRITE_I_C(SUBSET(N)%PARENT,1)
487!! CALL WRITE_I_C(ISUBS(2,N),1)
488 CALL WRITE_I_C(SUBSET(N)%NCHILD,1)
489!! CALL WRITE_I_C(ISUBS(4,N),1)
490 CALL WRITE_I_C(SUBSET(N)%NPART,1)
491 CALL WRITE_I_C(NVAR,1)
492 CALL WRITE_C_C(ITITLE,LTITL)
495!! IF(ISUBS(2,N)/=0)CALL WRTDES(IBUFSSG(ISUBS(3,N)),
496!! . IBUFSSG(ISUBS(3,N)),ISUBS(2,N),ITTYP,0)
497 IF(SUBSET(N)%NCHILD/=0)CALL WRTDES(SUBSET(N)%CHILD,
498 . SUBSET(N)%CHILD,SUBSET(N)%NCHILD,ITTYP,0)
499!! IF(ISUBS(4,N)/=0)CALL WRTDES(IBUFSSG(ISUBS(5,N)),
500!! . IBUFSSG(ISUBS(5,N)),ISUBS(4,N),ITTYP,0)
501 IF(SUBSET(N)%NPART/=0)CALL WRTDES(SUBSET(N)%PART,
502 . SUBSET(N)%PART,SUBSET(N)%NPART,ITTYP,0)
508 IF(NVAR/=0)CALL WRTDES(IWA,IWA,NVAR,ITTYP,0)
513 CALL FRETITL2(TITL,ITHGRP(NITHGR-LTITR+1,N),40)
515 ITITLE(I)=ICHAR(TITL(I:I))
522 READ(TITL,'(10a4)
')TIT40
523 WRITE(IUNIT)ITHGRP(1,N),ITY,
524 . ITHGRP(3,N),ITHGRP(4,N),ITHGRP(6,N),TIT40
525 ELSE IF(LTITL==80)THEN
526 READ(TITL,'(20a4)
')TIT80
527 WRITE(IUNIT)ITHGRP(1,N),ITY,
528 . ITHGRP(3,N),ITHGRP(4,N),ITHGRP(6,N),TIT80
530 READ(TITL,'(25a4)')tit100
531 WRITE(iunit)ithgrp(1,n),ity,
532 . ithgrp(3,n),ithgrp(4,n),ithgrp(6,n),tit100
536 WRITE(iunit,
'(A,I5,A,I5,A)')eor,5,
'I',ltitl,
'C'
537 WRITE(iunit,
'(5I10,A)')ithgrp(1,n),ity,
538 . ithgrp(3,n),ithgrp(4,n),ithgrp(6,n),titl(1:ltitl)
549 iad1=ithgrp(5,n)+2*ithgrp(4,n)
554 ititle(i)=ichar(titl(i:i))
558 READ(titl,
'(10A4)')tit40
559 WRITE(iunit)ithbuf(iad1),tit40
560 ELSE IF(ltitl==80)
THEN
561 READ(titl,
'(20A4)')tit80
562 WRITE(iunit)ithbuf(iad1),tit80
564 READ(titl,
'(25A4)')tit100
565 WRITE(iunit)ithbuf(iad1),tit100
569 WRITE(iunit,
'(A,I5,A,I5,A)')eor,1,
'I',ltitl,
'C'
570 WRITE(iunit,
'(I10,A)')ithbuf(iad1),titl(1:ltitl)
581 CALL wrtdes(ithbuf(ithgrp(7,n)),
582 . ithbuf(ithgrp(7,n)),nvar,ittyp,0)
587 var(k:k)=char(ithvar((ithgrp(9,n)-1+j-1)*10+k))
589 WRITE(ifiltitl,
'(I10)')ithgrp(2,n)
590 WRITE(ifiltitl,
'(A)')var(1:10)
597 IF(
ALLOCATED(iwa))
DEALLOCATE(iwa)
599 IF(nsect==0.AND.nsflsw/=0)
THEN
604 READ(titl,
'(10A4)')tit40
606 . 1,nsflsw,nvar,tit40
607 ELSE IF(ltitl==80)
THEN
608 READ(titl,
'(20A4)')tit80
610 . 1,nsflsw,nvar,tit80
612 READ(titl,
'(25A4)')tit100
614 . 1,nsflsw,nvar,tit100
618 WRITE(iunit,
'(A,I5,A,I5,A)')eor,5,
'I',ltitl,
'C'
619 WRITE(iunit,
'(5I10,A)')104,104,
620 . 1,nsflsw,ithgrp(6,n),titl(1:ltitl)
623 ititle(i)=ichar(titl(i:i))
638 ELSE IF(ltitl==80)
THEN
645 WRITE(iunit,
'(A,I5,A,I5,A)')eor,1,
'I',ltitl,
'C'
646 WRITE(iunit,
'(I10,A)')j,titl(1:ltitl)
657 CALL wrtdes(iwa,iwa,6,ittyp,0)
660 IF ((irad2r==1).AND.(r2r_siu==1))
THEN
664 IF (iunit == 3) seek_loc = 1
665 seek_flag(seek_loc) = 1
subroutine hist1(filnam, ifil, nthgrp2, long, pm, geo, ipart, subset, ithgrp, ithbuf, igeo, ipm, iparth, nparth, nvparth, nvsubth, ittyp, ithflag, ithvar, ifiltitl, sithbuf, names_and_titles)