70 integer,
intent(in) :: ka, ks, ke
71 integer,
intent(in) :: ia, is, ie
72 integer,
intent(in) :: ja, js, je
74 real(
rp),
intent(in) :: dens(ka,ia,ja)
75 real(
rp),
intent(in) :: momz(ka,ia,ja)
76 real(
rp),
intent(in) :: momx(ka,ia,ja)
77 real(
rp),
intent(in) :: momy(ka,ia,ja)
79 real(
rp),
intent(out) :: w (ka,ia,ja)
80 real(
rp),
intent(out) :: u (ka,ia,ja)
81 real(
rp),
intent(out) :: v (ka,ia,ja)
94 w(k,i,j) = 0.5_rp * ( momz(k-1,i,j)+momz(k,i,j) ) / dens(k,i,j)
104 momws = momz(ks,is,j) &
105 + j23g(ks,is,j,
i_xyw) * ( momy(ks,is,j) + momy(ks,is,j-1) + momy(ks+1,is,j) + momy(ks+1,is,j-1) ) &
106 * 0.25_rp / gsqrt(ks,is,j,
i_xyw)
109 w(ks,is,j) = ( momws * 0.5_rp &
110 - j23g(ks,is,j,
i_xyz) * ( momy(ks,is,j) + momy(ks,is,j-1) ) &
111 * 0.5_rp / gsqrt(ks,is,j,
i_xyz) &
121 momws = momz(ks,i,j) &
122 + ( j13g(ks,i,j,
i_xyw) * ( momx(ks,i,j) + momx(ks,i-1,j) + momx(ks+1,i,j) + momx(ks+1,i-1,j) ) &
123 + j23g(ks,i,j,
i_xyw) * ( momy(ks,i,j) + momy(ks,i,j-1) + momy(ks+1,i,j) + momy(ks+1,i,j-1) ) ) &
124 * 0.25_rp / gsqrt(ks,i,j,
i_xyw)
127 w(ks,i,j) = ( momws * 0.5_rp &
128 - ( j13g(ks,i,j,
i_xyz) * ( momx(ks,i,j) + momx(ks,i-1,j) ) &
129 + j23g(ks,i,j,
i_xyz) * ( momy(ks,i,j) + momy(ks,i,j-1) ) ) &
130 * 0.5_rp / gsqrt(ks,i,j,
i_xyz) &
139 w(ke,i,j) = 0.5_rp * ( momz(ke-1,i,j) ) / dens(ke,i,j)
148 u(k,is,j) = momx(k,is,j) / dens(k,is,j)
157 u(k,i,j) = 0.5_rp * ( momx(k,i-1,j)+momx(k,i,j) ) / dens(k,i,j)
165 u(k,1,j) = momx(k,1,j) / dens(k,1,j)
175 v(k,i,j) = 0.5_rp * ( momy(k,i,j-1)+momy(k,i,j) ) / dens(k,i,j)
183 v(k,i,1) = momy(k,i,1) / dens(k,i,1)
190 w( 1:ks-1,i,j) = w(ks,i,j)
191 u( 1:ks-1,i,j) = u(ks,i,j)
192 v( 1:ks-1,i,j) = v(ks,i,j)
193 w(ke+1:ka, i,j) = w(ke,i,j)
194 u(ke+1:ka, i,j) = u(ke,i,j)
195 v(ke+1:ka, i,j) = v(ke,i,j)
199 call comm_vars8( w(:,:,:), 1 )
200 call comm_vars8( u(:,:,:), 2 )
201 call comm_vars8( v(:,:,:), 3 )
202 call comm_wait ( w(:,:,:), 1, .false. )
203 call comm_wait ( u(:,:,:), 2, .false. )
204 call comm_wait ( v(:,:,:), 3, .false. )