DISPATCH
stagger_32.f90
1 !===============================================================================
2 !> $Id: 7600d7f3833f83d127ca51d2e25f2ec0387c249e $
3 !===============================================================================
4 MODULE stagger_32
5  implicit none
6  public
7 CONTAINS
8 
9 !*******************************************************************************
10 SUBROUTINE ddxdn_32 (ds, a, b)
11  real, dimension(32,32,32), intent(in):: a
12  real, dimension(32,32,32):: b
13  real :: ds(3), c
14  integer :: ix, iy, iz
15 !...............................................................................
16  b(1,:,:) = 0.0
17  c = 1./ds(1)
18  do iz=1,32
19  do iy=1,32
20  do ix=2,32
21  b(ix,iy,iz) = c*(a(ix ,iy,iz) - a(ix-1,iy,iz))
22  end do
23  end do
24  end do
25 END SUBROUTINE ddxdn_32
26 
27 !*******************************************************************************
28 SUBROUTINE ddydn_32 (ds, a, b)
29  real, dimension(32,32,32), intent(in):: a
30  real, dimension(32,32,32):: b
31  integer :: ix, iy, iz
32  real :: ds(3), c
33 !...............................................................................
34  b(:,1,:) = 0.0
35  c = 1./ds(2)
36  do iz=1,32
37  do iy=2,32
38  do ix=1,32
39  b(ix,iy,iz) = c*(a(ix,iy ,iz) - a(ix,iy-1,iz))
40  end do
41  end do
42  end do
43 END SUBROUTINE ddydn_32
44 
45 !*******************************************************************************
46 SUBROUTINE ddzdn_32 (ds, a, b)
47  real, dimension(32,32,32), intent(in):: a
48  real, dimension(32,32,32):: b
49  real :: ds(3), c
50  integer :: ix, iy, iz
51 !...............................................................................
52  b(:,:,1) = 0.0
53  c = 1./ds(3)
54  do iz=2,32
55  do iy=1,32
56  do ix=1,32
57  b(ix,iy,iz) = c*(a(ix,iy,iz ) - a(ix,iy,iz-1))
58  end do
59  end do
60  end do
61 END SUBROUTINE ddzdn_32
62 
63 !*******************************************************************************
64 SUBROUTINE ddxup_32 (ds, a, b)
65  real, dimension(32,32,32), intent(in):: a
66  real, dimension(32,32,32):: b
67  integer :: ix, iy, iz
68  real :: ds(3), c
69 !...............................................................................
70  b(32,:,:) = 0.0
71  c = 1./ds(1)
72  do iz=1,32
73  do iy=1,32
74  do ix=1,32-1
75  b(ix,iy,iz) = c*(a(ix+1,iy,iz) - a(ix ,iy,iz))
76  end do
77  end do
78  end do
79 END SUBROUTINE ddxup_32
80 
81 !*******************************************************************************
82 SUBROUTINE ddyup_32 (ds, a, b)
83  real, dimension(32,32,32), intent(in):: a
84  real, dimension(32,32,32):: b
85  integer :: ix, iy, iz
86  real :: ds(3), c
87 !...............................................................................
88  b(:,32,:) = 0.0
89  c = 1./ds(2)
90  do iz=1,32
91  do iy=1,32-1
92  do ix=1,32
93  b(ix,iy,iz) = c*(a(ix,iy+1,iz) - a(ix,iy ,iz))
94  end do
95  end do
96  end do
97 END SUBROUTINE ddyup_32
98 
99 !*******************************************************************************
100 SUBROUTINE ddzup_32 (ds, a, b)
101  real, dimension(32,32,32), intent(in):: a
102  real, dimension(32,32,32):: b
103  integer :: ix, iy, iz
104  real :: ds(3), c
105 !...............................................................................
106  b(:,:,32) = 0.0
107  c = 1./ds(3)
108  do iz=1,32-1
109  do iy=1,32
110  do ix=1,32
111  b(ix,iy,iz) = c*(a(ix,iy,iz+1) - a(ix,iy,iz ))
112  end do
113  end do
114  end do
115 END SUBROUTINE ddzup_32
116 
117 !*******************************************************************************
118 SUBROUTINE xdn_32 (a, b)
119  real, dimension(32,32,32), intent(in):: a
120  real, dimension(32,32,32):: b
121  real :: c
122  integer :: ix, iy, iz
123 !...............................................................................
124  c = 0.5
125  b(1,:,:) = a(1,:,:)
126  do iz=1,32
127  do iy=1,32
128  do ix=2,32
129  b(ix,iy,iz) = c*(a(ix ,iy,iz) + a(ix-1,iy,iz))
130  end do
131  end do
132  end do
133 END SUBROUTINE xdn_32
134 
135 !*******************************************************************************
136 SUBROUTINE ydn_32 (a, b)
137  real, dimension(32,32,32), intent(in):: a
138  real, dimension(32,32,32):: b
139  real :: c
140  integer :: ix, iy, iz
141 !...............................................................................
142  c = 0.5
143  b(:,1,:) = a(:,1,:)
144  do iz=1,32
145  do iy=2,32
146  do ix=1,32
147  b(ix,iy,iz) = c*(a(ix,iy,iz) + a(ix,iy-1,iz))
148  end do
149  end do
150  end do
151 END SUBROUTINE ydn_32
152 
153 !*******************************************************************************
154 SUBROUTINE zdn_32 (a, b)
155  real, dimension(32,32,32), intent(in):: a
156  real, dimension(32,32,32):: b
157  real :: c
158  integer :: ix, iy, iz
159 !...............................................................................
160  c = 0.5
161  b(:,:,1) = a(:,:,1)
162  do iz=2,32
163  do iy=1,32
164  do ix=1,32
165  b(ix,iy,iz) = c*(a(ix,iy,iz) + a(ix,iy,iz-1))
166  end do
167  end do
168  end do
169 END SUBROUTINE zdn_32
170 
171 !*******************************************************************************
172 SUBROUTINE xup_32 (a, b)
173  real, dimension(32,32,32), intent(in):: a
174  real, dimension(32,32,32):: b
175  real :: c
176  integer :: ix, iy, iz
177 !...............................................................................
178  c = 0.5
179  b(32,:,:) = a(32,:,:)
180  do iz=1,32
181  do iy=1,32
182  do ix=1,32-1
183  b(ix,iy,iz) = c*(a(ix+1,iy,iz) + a(ix ,iy,iz))
184  end do
185  end do
186  end do
187 END SUBROUTINE
188 
189 !*******************************************************************************
190 SUBROUTINE yup_32 (a, b)
191  real, dimension(32,32,32), intent(in):: a
192  real, dimension(32,32,32):: b
193  real :: c
194  integer :: ix, iy, iz
195 !...............................................................................
196  c = 0.5
197  b(:,32,:) = a(:,32,:)
198  do iz=1,32
199  do iy=1,32-1
200  do ix=1,32
201  b(ix,iy,iz) = c*(a(ix,iy+1,iz) + a(ix,iy ,iz))
202  end do
203  end do
204  end do
205 END SUBROUTINE
206 
207 !*******************************************************************************
208 SUBROUTINE zup_32 (a, b)
209  real, dimension(32,32,32), intent(in):: a
210  real, dimension(32,32,32):: b
211  real :: c
212  integer :: ix, iy, iz
213 !...............................................................................
214  c = 0.5
215  b(:,:,32) = a(:,:,32)
216  do iz=1,32-1
217  do iy=1,32
218  do ix=1,32
219  b(ix,iy,iz) = c*(a(ix,iy,iz+1) + a(ix,iy,iz ))
220  end do
221  end do
222  end do
223 END SUBROUTINE
224 
225 END MODULE