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