97
98
102
103
104
105 integer, intent(in) :: ng, tile
106 integer, intent(in) :: LBi, UBi, LBj, UBj
107 integer, intent(in) :: IminS, ImaxS, JminS, JmaxS
108 integer, intent(in) :: knew
109# ifdef SOLVE3D
110 integer, intent(in) :: nstp
111# endif
112
113# ifdef ASSUMED_SHAPE
114 real(r8), intent(in) :: Rscope(LBi:,LBj:)
115 real(r8), intent(in) :: Uscope(LBi:,LBj:)
116 real(r8), intent(in) :: Vscope(LBi:,LBj:)
117# ifdef SOLVE3D
118 real(r8), intent(in) :: u_adsG(LBi:,LBj:,:,:)
119 real(r8), intent(in) :: v_adsG(LBi:,LBj:,:,:)
120 real(r8), intent(in) :: wvel_adsG(LBi:,LBj:,:,:)
121 real(r8), intent(in) :: t_adsG(LBi:,LBj:,:,:,:)
122# endif
123 real(r8), intent(in) :: ubar_adsG(LBi:,LBj:,:)
124 real(r8), intent(in) :: vbar_adsG(LBi:,LBj:,:)
125 real(r8), intent(in) :: zeta_adsG(LBi:,LBj:,:)
126# ifdef SOLVE3D
127 real(r8), intent(inout) :: ad_u(LBi:,LBj:,:,:)
128 real(r8), intent(inout) :: ad_v(LBi:,LBj:,:,:)
129 real(r8), intent(inout) :: ad_wvel(LBi:,LBj:,:)
130 real(r8), intent(inout) :: ad_t(LBi:,LBj:,:,:,:)
131# endif
132 real(r8), intent(inout) :: ad_ubar(LBi:,LBj:,:)
133 real(r8), intent(inout) :: ad_vbar(LBi:,LBj:,:)
134 real(r8), intent(inout) :: ad_zeta(LBi:,LBj:,:)
135# else
136 real(r8), intent(in) :: Rscope(LBi:UBi,LBj:UBj)
137 real(r8), intent(in) :: Uscope(LBi:UBi,LBj:UBj)
138 real(r8), intent(in) :: Vscope(LBi:UBi,LBj:UBj)
139# ifdef SOLVE3D
140 real(r8), intent(in) :: u_adsG(LBi:UBi,LBj:UBj,N(ng),2)
141 real(r8), intent(in) :: v_adsG(LBi:UBi,LBj:UBj,N(ng),2)
142 real(r8), intent(in) :: wvel_adsG(LBi:UBi,LBj:UBj,N(ng),2)
143 real(r8), intent(in) :: t_adsG(LBi:UBi,LBj:UBj,N(ng),2,NT(ng))
144# endif
145 real(r8), intent(in) :: ubar_adsG(LBi:UBi,LBj:UBj,2)
146 real(r8), intent(in) :: vbar_adsG(LBi:UBi,LBj:UBj,2)
147 real(r8), intent(in) :: zeta_adsG(LBi:UBi,LBj:UBj,2)
148# ifdef SOLVE3D
149 real(r8), intent(inout) :: ad_u(LBi:UBi,LBj:UBj,N(ng),2)
150 real(r8), intent(inout) :: ad_v(LBi:UBi,LBj:UBj,N(ng),2)
151 real(r8), intent(inout) :: ad_wvel(LBi:UBi,LBj:UBj,0:N(ng))
152 real(r8), intent(inout) :: ad_t(LBi:UBi,LBj:UBj,N(ng),3,NT(ng))
153# endif
154 real(r8), intent(inout) :: ad_ubar(LBi:UBi,LBj:UBj,:)
155 real(r8), intent(inout) :: ad_vbar(LBi:UBi,LBj:UBj,:)
156 real(r8), intent(inout) :: ad_zeta(LBi:UBi,LBj:UBj,:)
157# endif
158
159
160
161 integer :: i, itrc, j, k
162
163# include "set_bounds.h"
164
165
166
167
168
169
170
171
172
174 DO j=jstrr,jendr
175 DO i=istrr,iendr
176 ad_zeta(i,j,knew)=zeta_adsg(i,j,1)*rscope(i,j)
177 END DO
178 END DO
179 END IF
180
181
182
184 DO j=jstrr,jendr
185 DO i=istr,iendr
186 ad_ubar(i,j,knew)=ubar_adsg(i,j,1)*uscope(i,j)
187 END DO
188 END DO
189 END IF
190
192 DO j=jstr,jendr
193 DO i=istrr,iendr
194 ad_vbar(i,j,knew)=vbar_adsg(i,j,1)*vscope(i,j)
195 END DO
196 END DO
197 END IF
198# ifdef SOLVE3D
199
200
201
204 DO j=jstrr,jendr
205 DO i=istr,iendr
206 ad_u(i,j,k,nstp)=u_adsg(i,j,k,1)*uscope(i,j)
207 END DO
208 END DO
209 END DO
210 END IF
211
214 DO j=jstr,jendr
215 DO i=istrr,iendr
216 ad_v(i,j,k,nstp)=v_adsg(i,j,k,1)*vscope(i,j)
217 END DO
218 END DO
219 END DO
220 END IF
221
222
223
226 DO j=jstrr,jendr
227 DO i=istrr,iendr
228 ad_wvel(i,j,k)=wvel_adsg(i,j,k,1)*rscope(i,j)
229 END DO
230 END DO
231 END DO
232 END IF
233
234
235
239 DO j=jstrr,jendr
240 DO i=istrr,iendr
241 ad_t(i,j,k,nstp,itrc)=t_adsg(i,j,k,1,itrc)*rscope(i,j)
242 END DO
243 END DO
244 END DO
245 END IF
246 END DO
247# endif
248
249 RETURN
integer, dimension(:), allocatable istvar
integer, dimension(:), allocatable nt
integer, dimension(:), allocatable kends
integer, dimension(:), allocatable kstrs
type(t_scalars), dimension(:), allocatable scalars