Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
program a2b
! this program decompress a DOUAR output file
! that has been compressed into a binary file by a2b
implicit none
integer ndir,nstep,iter,nn,nsurface,nt,ner,mer,is,ie,i
character dir*128,c4*4,cs,cc4*4
integer noctree,nnode,nleaves,nlsf,npcl
double precision current_time,activation_time
double precision,dimension(:),allocatable::x,y,z,u,v,w,temp,pressure,strain
double precision,dimension(:,:),allocatable::lsf
integer,dimension(:),allocatable::kx,ky,kz,kt
integer,dimension(:,:),allocatable::icon
double precision,dimension(:),allocatable::crit,e2d
logical,dimension(:),allocatable::whole
integer,dimension(:),allocatable::octree
integer,dimension(:,:),allocatable::iconr
logical,dimension(:),allocatable::influid
integer,dimension(:),allocatable::invoid,elvoid,ftr,rtf
integer,dimension(:),allocatable::i5
double precision,dimension(:),allocatable::xn,yn,zn,r,s
print*,'Enter directory (default is OUT)'
read (*,'(a)') dir
ndir=len_trim(dir)
if (ndir.eq.0) then
ndir=3
dir(1:ndir)='OUT'
endif
print*,'Enter time step >'
read*,nstep
write (c4,'(i4)') nstep
if (nstep.lt.1000) c4(1:1)='0'
if (nstep.lt.100) c4(1:2)='00'
if (nstep.lt.10) c4(1:3)='000'
print*,'Is it a debug file ? (y or n)'
read (*,'(a)') cs
select case (cs)
case ('y')
print*,'Which debug file: please enter grid iteration number'
read*,iter
write (cc4,'(i4)') iter
if (iter.lt.1000) cc4(1:1)='0'
if (iter.lt.100) cc4(1:2)='00'
if (iter.lt.10) cc4(1:3)='000'
case ('n')
print*,'it is not a debug file'
case default
print *,'error: please input y or n'
stop
end select
if (cs=='y') then
write(*,*) 'output file to be processed: ', '../'//dir(1:ndir)//'/time_'//c4//'_'//cc4//'.bin'
open(unit=7,file='../'//dir(1:ndir)//'/time_'//c4//'_'//cc4//'.txt',status='unknown')
open(unit=8,file='../'//dir(1:ndir)//'/time_'//c4//'_'//cc4//'.bin',status='old',form='unformatted')
else
write(*,*) 'output file to be processed: ', '../'//dir(1:ndir)//'/time_'//c4//'.bin'
open(unit=7,file='../'//dir(1:ndir)//'/time_'//c4//'.txt',status='unknown')
open(unit=8,file='../'//dir(1:ndir)//'/time_'//c4//'.bin',status='old',form='unformatted')
end if
read (8) noctree,nnode,nleaves,ner,nlsf,npcl,current_time
write (7,*) noctree,nnode,nleaves,ner,nlsf,npcl,current_time
nn=nnode
allocate (x(nn),y(nn),z(nn),u(nn),v(nn),w(nn),lsf(nn,nlsf),temp(nn),pressure(nn),strain(nn))
allocate (kx(nn),ky(nn),kz(nn),kt(nn))
read (8)(x(i),y(i),z(i),u(i),v(i),w(i),lsf(i,1:nlsf),temp(i),pressure(i),strain(i), &
kx(i),ky(i),kz(i),kt(i),i=1,nn)
write (7,*)(x(i),y(i),z(i),u(i),v(i),w(i),lsf(i,1:nlsf),temp(i),pressure(i),strain(i), &
kx(i),ky(i),kz(i),kt(i),i=1,nn)
deallocate (x,y,z,u,v,w,lsf,pressure,temp,strain,kx,ky,kz,kt)
allocate(icon(8,nleaves),crit(nleaves),e2d(nleaves),whole(nleaves))
read (8) (icon(1:8,ie),crit(ie),e2d(ie),whole(ie),ie=1,nleaves)
write (7,*) (icon(1:8,ie),crit(ie),e2d(ie),whole(ie),ie=1,nleaves)
deallocate (icon,crit,e2d,whole)
allocate(octree(noctree))
read (8) (octree(i),i=1,noctree)
write (7,*) (octree(i),i=1,noctree)
deallocate (octree)
mer=ner ! mer=1
if(ner.gt.mer)mer=ner
allocate(iconr(9,mer))
read (8) (iconr(1:9,ie),ie=1,ner)
write (7,*) (iconr(1:9,ie),ie=1,ner)
deallocate (iconr)
allocate (influid(nn),invoid(nn),elvoid(nn),ftr(nn),rtf(nn))
read (8) (invoid(i),elvoid(i),ftr(i),rtf(i),influid(i),i=1,nn)
write (7,*) (invoid(i),elvoid(i),ftr(i),rtf(i),influid(i),i=1,nn)
deallocate (influid,invoid,elvoid,ftr,rtf)
allocate (i5(ner))
read (8) (i5(i),i=1,ner)
write (7,*) (i5(i),i=1,ner)
deallocate (i5)
do is=1,nlsf
read (8) nsurface,activation_time,nt
write (7,*) nsurface,activation_time,nt
allocate (x(nsurface),y(nsurface),z(nsurface),xn(nsurface),yn(nsurface),zn(nsurface))
allocate (r(nsurface),s(nsurface),u(nsurface),v(nsurface),w(nsurface))
allocate (icon(3,nt))
if (cs=='y') then
read (8) (r(i),s(i),x(i),y(i),z(i),xn(i),yn(i),zn(i),i=1,nsurface)
write (7,*) (r(i),s(i),x(i),y(i),z(i),xn(i),yn(i),zn(i),i=1,nsurface)
else
read (8) (r(i),s(i),x(i),y(i),z(i),xn(i),yn(i),zn(i),u(i),v(i),w(i),i=1,nsurface)
write (7,*) (r(i),s(i),x(i),y(i),z(i),xn(i),yn(i),zn(i),u(i),v(i),w(i),i=1,nsurface)
end if
read (8) (icon(1:3,i),i=1,nt)
write (7,*) (icon(1:3,i),i=1,nt)
deallocate (x,y,z,xn,yn,zn,r,s,u,v,w,icon)
end do
close(7)
close (8)
end