DISPATCH
stagger_16.f90
1 !===============================================================================
2 !> $Id: 58a65b41b0d191bd26ac1bb76d844cc3cdb7f22b $
3 !===============================================================================
4 MODULE stagger_16
5  implicit none
6  public
7 CONTAINS
8 
9 !*******************************************************************************
10 SUBROUTINE ddxdn_16 (ds, a, b)
11  real, dimension(16,16,16), intent(in):: a
12  real, dimension(16,16,16):: 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,16
19  do iy=1,16
20  do ix=2,16
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_16
26 
27 !*******************************************************************************
28 SUBROUTINE ddydn_16 (ds, a, b)
29  real, dimension(16,16,16), intent(in):: a
30  real, dimension(16,16,16):: 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,16
37  do iy=2,16
38  do ix=1,16
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_16
44 
45 !*******************************************************************************
46 SUBROUTINE ddzdn_16 (ds, a, b)
47  real, dimension(16,16,16), intent(in):: a
48  real, dimension(16,16,16):: 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,16
55  do iy=1,16
56  do ix=1,16
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_16
62 
63 !*******************************************************************************
64 SUBROUTINE ddxup_16 (ds, a, b)
65  real, dimension(16,16,16), intent(in):: a
66  real, dimension(16,16,16):: b
67  integer :: ix, iy, iz
68  real :: ds(3), c
69 !...............................................................................
70  b(16,:,:) = 0.0
71  c = 1./ds(1)
72  do iz=1,16
73  do iy=1,16
74  do ix=1,16-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_16
80 
81 !*******************************************************************************
82 SUBROUTINE ddyup_16 (ds, a, b)
83  real, dimension(16,16,16), intent(in):: a
84  real, dimension(16,16,16):: b
85  integer :: ix, iy, iz
86  real :: ds(3), c
87 !...............................................................................
88  b(:,16,:) = 0.0
89  c = 1./ds(2)
90  do iz=1,16
91  do iy=1,16-1
92  do ix=1,16
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_16
98 
99 !*******************************************************************************
100 SUBROUTINE ddzup_16 (ds, a, b)
101  real, dimension(16,16,16), intent(in):: a
102  real, dimension(16,16,16):: b
103  integer :: ix, iy, iz
104  real :: ds(3), c
105 !...............................................................................
106  b(:,:,16) = 0.0
107  c = 1./ds(3)
108  do iz=1,16-1
109  do iy=1,16
110  do ix=1,16
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_16
116 
117 !*******************************************************************************
118 SUBROUTINE xdn_16 (a, b)
119  real, dimension(16,16,16), intent(in):: a
120  real, dimension(16,16,16):: b
121  real :: c
122  integer :: ix, iy, iz
123 !...............................................................................
124  c = 0.5
125  b(1,:,:) = a(1,:,:)
126  do iz=1,16
127  do iy=1,16
128  do ix=2,16
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_16
134 
135 !*******************************************************************************
136 SUBROUTINE ydn_16 (a, b)
137  real, dimension(16,16,16), intent(in):: a
138  real, dimension(16,16,16):: b
139  real :: c
140  integer :: ix, iy, iz
141 !...............................................................................
142  c = 0.5
143  b(:,1,:) = a(:,1,:)
144  do iz=1,16
145  do iy=2,16
146  do ix=1,16
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_16
152 
153 !*******************************************************************************
154 SUBROUTINE zdn_16 (a, b)
155  real, dimension(16,16,16), intent(in):: a
156  real, dimension(16,16,16):: b
157  real :: c
158  integer :: ix, iy, iz
159 !...............................................................................
160  c = 0.5
161  b(:,:,1) = a(:,:,1)
162  do iz=2,16
163  do iy=1,16
164  do ix=1,16
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_16
170 
171 !*******************************************************************************
172 SUBROUTINE xup_16 (a, b)
173  real, dimension(16,16,16), intent(in):: a
174  real, dimension(16,16,16):: b
175  real :: c
176  integer :: ix, iy, iz
177 !...............................................................................
178  c = 0.5
179  b(16,:,:) = a(16,:,:)
180  do iz=1,16
181  do iy=1,16
182  do ix=1,16-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_16 (a, b)
191  real, dimension(16,16,16), intent(in):: a
192  real, dimension(16,16,16):: b
193  real :: c
194  integer :: ix, iy, iz
195 !...............................................................................
196  c = 0.5
197  b(:,16,:) = a(:,16,:)
198  do iz=1,16
199  do iy=1,16-1
200  do ix=1,16
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_16 (a, b)
209  real, dimension(16,16,16), intent(in):: a
210  real, dimension(16,16,16):: b
211  real :: c
212  integer :: ix, iy, iz
213 !...............................................................................
214  c = 0.5
215  b(:,:,16) = a(:,:,16)
216  do iz=1,16-1
217  do iy=1,16
218  do ix=1,16
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