82 & LBi, UBi, LBj, UBj, &
83 & IminS, ImaxS, JminS, JmaxS, &
88 & u_stokes, v_stokes, &
89 & ad_u_stokes, ad_v_stokes, &
106 integer,
intent(in) :: ng, tile, model
107 integer,
intent(in) :: LBi, UBi, LBj, UBj
108 integer,
intent(in) :: IminS, ImaxS, JminS, JmaxS
109 integer,
intent(in) :: nrhs
112 real(r8),
intent(in) :: u(LBi:,LBj:,:,:)
113 real(r8),
intent(in) :: v(LBi:,LBj:,:,:)
115 real(r8),
intent(in) :: u_stokes(LBi:,LBj:,:)
116 real(r8),
intent(in) :: v_stokes(LBi:,LBj:,:)
118 real(r8),
intent(in) :: Hz(LBi:,LBj:,:)
119 real(r8),
intent(in) :: om_v(LBi:,LBj:)
120 real(r8),
intent(in) :: on_u(LBi:,LBj:)
122 real(r8),
intent(inout) :: ad_u(LBi:,LBj:,:,:)
123 real(r8),
intent(inout) :: ad_v(LBi:,LBj:,:,:)
125 real(r8),
intent(inout) :: ad_u_stokes(LBi:,LBj:,:)
126 real(r8),
intent(inout) :: ad_v_stokes(LBi:,LBj:,:)
128 real(r8),
intent(inout) :: ad_Hz(LBi:,LBj:,:)
130 real(r8),
intent(inout) :: ad_Huon(LBi:,LBj:,:)
131 real(r8),
intent(inout) :: ad_Hvom(LBi:,LBj:,:)
133 real(r8),
intent(in) :: u(LBi:UBi,LBj:UBj,N(ng),2)
134 real(r8),
intent(in) :: v(LBi:UBi,LBj:UBj,N(ng),2)
136 real(r8),
intent(in) :: u_stokes(LBi:UBi,LBj:UBj,N(ng))
137 real(r8),
intent(in) :: v_stokes(LBi:UBi,LBj:UBj,N(ng))
139 real(r8),
intent(in) :: Hz(LBi:UBi,LBj:UBj,N(ng))
140 real(r8),
intent(in) :: om_v(LBi:UBi,LBj:UBj)
141 real(r8),
intent(in) :: on_u(LBi:UBi,LBj:UBj)
143 real(r8),
intent(inout) :: ad_u(LBi:UBi,LBj:UBj,N(ng),2)
144 real(r8),
intent(inout) :: ad_v(LBi:UBi,LBj:UBj,N(ng),2)
146 real(r8),
intent(inout) :: ad_u_stokes(LBi:UBi,LBj:UBj,N(ng))
147 real(r8),
intent(inout) :: ad_v_stokes(LBi:UBi,LBj:UBj,N(ng))
149 real(r8),
intent(inout) :: ad_Hz(LBi:UBi,LBj:UBj,N(ng))
151 real(r8),
intent(inout) :: ad_Huon(LBi:UBi,LBj:UBj,N(ng))
152 real(r8),
intent(inout) :: ad_Hvom(LBi:UBi,LBj:UBj,N(ng))
159 real(r8) :: adfac, adfac1
161# include "set_bounds.h"
177 & lbi, ubi, lbj, ubj, 1, n(ng), &
190 & lbi, ubi, lbj, ubj, 1, n(ng), &
197 & lbi, ubi, lbj, ubj, 1, n(ng), &
214 adfac=0.5_r8*om_v(i,j)*tl_hvom(i,j,k)
215 adfac1=adfac*v_stokes(i,j,k)
216 tl_v_stokes(i,j,k)=tl_v_stokes(i,j,k)+ &
217 & adfac*(hz(i,j,k)+hz(i,j-1,k))
218 ad_hz(i,j-1,k)=ad_hz(i,j-1,k)+adfac1
219 ad_hz(i,j ,k)=ad_hz(i,j ,k)+adfac1
227 adfac=0.5_r8*om_v(i,j)*ad_hvom(i,j,k)
228 adfac1=adfac*v(i,j,k,nrhs)
229 ad_v(i,j,k,nrhs)=ad_v(i,j,k,nrhs)+ &
230 & adfac*(hz(i,j,k)+hz(i,j-1,k))
231 ad_hz(i,j-1,k)=ad_hz(i,j-1,k)+adfac1
232 ad_hz(i,j ,k)=ad_hz(i,j ,k)+adfac1
233 ad_hvom(i,j,k)=0.0_r8
246 adfac=0.5_r8*on_u(i,j)*ad_huon(i,j,k)
247 adfac1=adfac*u_stokes(i,j,k)
248 ad_u_stokes(i,j,k)=ad_u_stokes(i,j,k)+ &
249 & adfac*(hz(i,j,k)+hz(i-1,j,k))
250 ad_hz(i-1,j,k)=ad_hz(i-1,j,k)+adfac1
251 ad_hz(i ,j,k)=ad_hz(i ,j,k)+adfac1
259 adfac=0.5_r8*on_u(i,j)*ad_huon(i,j,k)
260 adfac1=adfac*u(i,j,k,nrhs)
261 ad_u(i,j,k,nrhs)=ad_u(i,j,k,nrhs)+ &
262 & adfac*(hz(i,j,k)+hz(i-1,j,k))
263 ad_hz(i-1,j,k)=ad_hz(i-1,j,k)+adfac1
264 ad_hz(i ,j,k)=ad_hz(i ,j,k)+adfac1
265 ad_huon(i,j,k)=0.0_r8