DISPATCH
stagger_36.f90
1 !===============================================================================
2 !> $Id: 11a1060278ad2d1a1f48b13cd8541050f464e9fd $
3 !===============================================================================
4 MODULE stagger_36
5  implicit none
6  public
7 CONTAINS
8 
9 !*******************************************************************************
10 SUBROUTINE ddxdn_36 (ds, a, b)
11  real, dimension(36,36,36), intent(in):: a
12  real, dimension(36,36,36):: b
13  real :: ds(3), c
14  integer :: ix, iy, iz
15 !...............................................................................
16  c = 1./ds(1)
17  do iz=1,36
18  do iy=1,36
19  do ix=2,36
20  b(ix,iy,iz) = c*(a(ix ,iy,iz) - a(ix-1,iy,iz))
21  end do
22  b(1,iy,iz) = 0.0
23  end do
24  end do
25 END SUBROUTINE ddxdn_36
26 
27 !*******************************************************************************
28 SUBROUTINE ddydn_36 (ds, a, b)
29  real, dimension(36,36,36), intent(in):: a
30  real, dimension(36,36,36):: 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,36
37  do iy=2,36
38  do ix=1,36
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_36
44 
45 !*******************************************************************************
46 SUBROUTINE ddzdn_36 (ds, a, b)
47  real, dimension(36,36,36), intent(in):: a
48  real, dimension(36,36,36):: 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,36
55  do iy=1,36
56  do ix=1,36
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_36
62 
63 !*******************************************************************************
64 SUBROUTINE ddxup_36 (ds, a, b)
65  real, dimension(36,36,36), intent(in):: a
66  real, dimension(36,36,36):: b
67  integer :: ix, iy, iz
68  real :: ds(3), c
69 !...............................................................................
70  c = 1./ds(1)
71  do iz=1,36
72  do iy=1,36
73  do ix=1,36-1
74  b(ix,iy,iz) = c*(a(ix+1,iy,iz) - a(ix ,iy,iz))
75  end do
76  b(36,iy,iz) = 0.0
77  end do
78  end do
79 END SUBROUTINE ddxup_36
80 
81 !*******************************************************************************
82 SUBROUTINE ddyup_36 (ds, a, b)
83  real, dimension(36,36,36), intent(in):: a
84  real, dimension(36,36,36):: b
85  integer :: ix, iy, iz
86  real :: ds(3), c
87 !...............................................................................
88  b(:,36,:) = 0.0
89  c = 1./ds(2)
90  do iz=1,36
91  do iy=1,36-1
92  do ix=1,36
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_36
98 
99 !*******************************************************************************
100 SUBROUTINE ddzup_36 (ds, a, b)
101  real, dimension(36,36,36), intent(in):: a
102  real, dimension(36,36,36):: b
103  integer :: ix, iy, iz
104  real :: ds(3), c
105 !...............................................................................
106  b(:,:,36) = 0.0
107  c = 1./ds(3)
108  do iz=1,36-1
109  do iy=1,36
110  do ix=1,36
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_36
116 
117 !*******************************************************************************
118 SUBROUTINE xdn_36 (a, b)
119  real, dimension(36,36,36), intent(in):: a
120  real, dimension(36,36,36):: b
121  real :: c
122  integer :: ix, iy, iz
123 !...............................................................................
124  c = 0.5
125  b(1,:,:) = a(1,:,:)
126  do iz=1,36
127  do iy=1,36
128  do ix=2,36
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_36
134 
135 !*******************************************************************************
136 SUBROUTINE ydn_36 (a, b)
137  real, dimension(36,36,36), intent(in):: a
138  real, dimension(36,36,36):: b
139  real :: c
140  integer :: ix, iy, iz
141 !...............................................................................
142  c = 0.5
143  b(:,1,:) = a(:,1,:)
144  do iz=1,36
145  do iy=2,36
146  do ix=1,36
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_36
152 
153 !*******************************************************************************
154 SUBROUTINE zdn_36 (a, b)
155  real, dimension(36,36,36), intent(in):: a
156  real, dimension(36,36,36):: b
157  real :: c
158  integer :: ix, iy, iz
159 !...............................................................................
160  c = 0.5
161  b(:,:,1) = a(:,:,1)
162  do iz=2,36
163  do iy=1,36
164  do ix=1,36
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_36
170 
171 !*******************************************************************************
172 SUBROUTINE xup_36 (a, b)
173  real, dimension(36,36,36), intent(in):: a
174  real, dimension(36,36,36):: b
175  real :: c
176  integer :: ix, iy, iz
177 !...............................................................................
178  c = 0.5
179  b(36,:,:) = a(36,:,:)
180  do iz=1,36
181  do iy=1,36
182  do ix=1,36-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_36 (a, b)
191  real, dimension(36,36,36), intent(in):: a
192  real, dimension(36,36,36):: b
193  real :: c
194  integer :: ix, iy, iz
195 !...............................................................................
196  c = 0.5
197  b(:,36,:) = a(36,:,:)
198  do iz=1,36
199  do iy=1,36-1
200  do ix=1,36
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_36 (a, b)
209  real, dimension(36,36,36), intent(in):: a
210  real, dimension(36,36,36):: b
211  real :: c
212  integer :: ix, iy, iz
213 !...............................................................................
214  c = 0.5
215  b(:,:,36) = a(:,:,36)
216  do iz=1,36-1
217  do iy=1,36
218  do ix=1,36
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