8 REAL x
(1-ng
:nx
+ng
), y
(1-ng
:nx
+ng
), z
(1-ng
:nx
+ng
)
11 REAL A0
(1-ng
:nx
+1+ng
, 1-ng
:nx
+1+ng
)
12 REAL An
(1-ng
:nx
+ng
, 1-ng
:nx
+ ng
,1-ng
:nx
+ ng
)
13 REAL Ao
(1-ng
:nx
+ng
, 1-ng
:nx
+ ng
,1-ng
:nx
+ ng
)
14 REAL Ai
(1-ng
:nx
+ng
, 1-ng
:nx
+ ng
,1-ng
:nx
+ ng
)
15 REAL u
(1-ng
:nx
+ng
, 1-ng
:nx
+1+ng
,1-ng
:nx
+ ng
)
16 REAL v
(1-ng
:nx
+ng
, 1-ng
:nx
+ ng
,1-ng
:nx
+1+ng
)
17 REAL w
(1-ng
:nx
+1+ng
, 1-ng
:nx
+ ng
,1-ng
:nx
+ ng
)
18 REAL u0
(1-ng
:nx
+ng
, 1-ng
:nx
+1+ng
,1-ng
:nx
+ ng
)
19 REAL v0
(1-ng
:nx
+ng
, 1-ng
:nx
+ ng
,1-ng
:nx
+1+ng
)
20 REAL w0
(1-ng
:nx
+1+ng
, 1-ng
:nx
+ ng
,1-ng
:nx
+ ng
)
21 REAL ut
(1-ng
:nx
+ng
, 1-ng
:nx
+1+ng
,1-ng
:nx
+ ng
)
22 REAL vt
(1-ng
:nx
+ng
, 1-ng
:nx
+ ng
,1-ng
:nx
+1+ng
)
23 REAL wt
(1-ng
:nx
+1+ng
, 1-ng
:nx
+ ng
,1-ng
:nx
+ ng
)
24 REAL uh
(1-ng
:nx
+ng
, 1-ng
:nx
+1+ng
,1-ng
:nx
+ ng
)
25 REAL vh
(1-ng
:nx
+ng
, 1-ng
:nx
+ ng
,1-ng
:nx
+1+ng
)
26 REAL wh
(1-ng
:nx
+1+ng
, 1-ng
:nx
+ ng
,1-ng
:nx
+ ng
)
30 INTEGER i
,j
,k
,t
,m
, imgT
31 INTEGER iloc
, jloc
, kloc
32 real xl
, yl
, zl
, third
, half
33 PARAMETER (dt
= 0.005)
34 PARAMETER (pi
= 3.1415926)
38 PARAMETER (rad
= 0.15)
46 x
(i
) = -.5 + dx*REAL
(i
)
47 y
(i
) = -.5 + dx*REAL
(i
)
48 z
(i
) = -.5 + dx*REAL
(i
)
50 xl
= REAL(nx
) * dx
* .5
51 yl
= REAL(nx
) * dx
* .5
52 zl
= REAL(nx
) * dx
* .5
57 u0
(k
,i
,j
) = 1.0 * (x
(k
) - 0.5*dx
)
59 w0
(k
,i
,j
) = -1.0 * (z
(i
) - 0.5*dx
)
68 dis
= SQRT
( (x
(i
) -.5*dx
- X0
)**2 +
69 + (y
(j
) -.5*dx
- Y0
)**2 +
70 + (z
(k
) -.5*dx
- Z0
)**2)
71 Ao
(k
,i
,j
) = (20. * 0.5 * (1. + COS
(dis*pi
/rad
)))*
72 + (.5+sign
(.5,rad
-dis
))
84 do m
= nx
+ 1, nx
+ ng
85 Ao
(k
,i
,m
) = Ao
(k
,i
,nx
)
92 Ao
(k
,m
,j
) = Ao
(k
,1 ,j
)
95 Ao
(k
,m
,j
) = Ao
(k
,nx
,j
)
101 maxi
= MAX
(maxi
,Ao
(k
,i
,j
))
102 if(Ao
(k
,i
,j
) .EQ
. maxi
) then
110 write(*,*) maxi
, 'max val start ',iloc
,jloc
,kloc
112 print
*, '( nx, ng, tt ) = ', '(', nx
, ',', ng
, ',', tt
, ')'
115 call twostages
(Ao
, An
, u0
, v0
, w0
, u0
, v0
, w0
,
116 & dt
, dx
, dx
, dx
, nx
, nx
, nx
, ng
)
121 Ao
(k
,i
,j
) = An
(k
,i
,j
)
126 write(*,*) An
(kloc
,jloc
,iloc
), ' val @ finish for initial max '
131 maxi
= MAX
(maxi
,Ao
(k
,i
,j
))
132 if(Ao
(k
,i
,j
) .EQ
. maxi
) then
137 Ad2
= Ad2
+ An
(k
,i
,j
)
141 write(*,*) maxi
, 'max val finish ',iloc
,jloc
146 Ai
(k
, i
, j
) = An
(k
, i
, k
) - Ai
(k
, i
, j
)
153 maxi
= MAX
(maxi
,Ai
(k
,i
,j
))
154 if(Ai
(k
,i
,j
) .EQ
. maxi
) then
162 write(*,*) 'max error finish: ',maxi
,iloc
,jloc
163 write(*,*) 'Starting amount: ',Ad1
164 write(*,*) 'Finishing amount: ',Ad2
165 write(*,*) 'Percent conserved: ',Ad2
/Ad1
* 100.