110# else
111 & f_ubar, f_vbar)
112# endif
113
114
115
116
117 integer, intent(in) :: ng, tile, irec
118 integer, intent(in) :: LBi, UBi, LBj, UBj
119 integer, intent(in) :: IminS, ImaxS, JminS, JmaxS
120
121# ifdef ASSUMED_SHAPE
122 real(r8), intent(inout) :: ad_zeta(LBi:,LBj:,:)
123 real(r8), intent(inout) :: f_zeta(LBi:,LBj:)
124# ifdef SOLVE3D
125 real(r8), intent(inout) :: ad_u(LBi:,LBj:,:,:)
126 real(r8), intent(inout) :: ad_v(LBi:,LBj:,:,:)
127 real(r8), intent(inout) :: ad_t(LBi:,LBj:,:,:,:)
128 real(r8), intent(inout) :: f_u(LBi:,LBj:,:)
129 real(r8), intent(inout) :: f_v(LBi:,LBj:,:)
130 real(r8), intent(inout) :: f_t(LBi:,LBj:,:,:)
131# else
132 real(r8), intent(inout) :: ad_ubar(LBi:,LBj:,:)
133 real(r8), intent(inout) :: ad_vbar(LBi:,LBj:,:)
134 real(r8), intent(inout) :: f_ubar(LBi:,LBj:)
135 real(r8), intent(inout) :: f_vbar(LBi:,LBj:)
136# endif
137# else
138 real(r8), intent(inout) :: ad_zeta(LBi:UBi,LBj:UBj,3)
139 real(r8), intent(inout) :: f_zeta(LBi:UBi,LBj:UBj)
140# ifdef SOLVE3D
141 real(r8), intent(inout) :: ad_u(LBi:UBi,LBj:UBj,N(ng),2)
142 real(r8), intent(inout) :: ad_v(LBi:UBi,LBj:UBj,N(ng),2)
143 real(r8), intent(inout) :: ad_t(LBi:UBi,LBj:UBj,N(ng),2,NT(ng))
144 real(r8), intent(inout) :: f_u(LBi:UBi,LBj:UBj,N(ng))
145 real(r8), intent(inout) :: f_v(LBi:UBi,LBj:UBj,N(ng))
146 real(r8), intent(inout) :: f_t(LBi:UBi,LBj:UBj,N(ng),NT(ng))
147# else
148 real(r8), intent(inout) :: ad_ubar(LBi:UBi,LBj:UBj,3)
149 real(r8), intent(inout) :: ad_vbar(LBi:UBi,LBj:UBj,3)
150 real(r8), intent(inout) :: f_ubar(LBi:UBi,LBj:UBj)
151 real(r8), intent(inout) :: f_vbar(LBi:UBi,LBj:UBj)
152# endif
153# endif
154
155
156
157 integer :: i, it1, it2, j, k
158# ifdef SOLVE3D
159 integer :: itrc
160# endif
161 real(r8) :: fac1
162
163# include "set_bounds.h"
164
165
166
167
168
169
170
171
172
173
174 fac1=real(timeiau(ng)/dt(ng),r8)
175 fac1=1.0_r8/fac1
176
177 DO j=jstrr,jendr
178 DO i=istrr,iendr
179 f_zeta(i,j)=fac1*ad_zeta(i,j,irec)
180 ad_zeta(i,j,irec)=f_zeta(i,j)
181 END DO
182 END DO
183
184# ifndef SOLVE3D
185
186
187
188 DO j=jstrr,jendr
189 DO i=istr,iendr
190 f_ubar(i,j)=fac1*ad_ubar(i,j,irec)
191 ad_ubar(i,j,irec)=f_ubar(i,j)
192 END DO
193 END DO
194 DO j=jstr,jendr
195 DO i=istrr,iendr
196 f_vbar(i,j)=fac1*ad_vbar(i,j,irec)
197 ad_vbar(i,j,irec)=f_vbar(i,j)
198 END DO
199 END DO
200# endif
201# ifdef SOLVE3D
202
203
204
205 DO k=1,n(ng)
206 DO j=jstrr,jendr
207 DO i=istr,iendr
208 f_u(i,j,k)=fac1*ad_u(i,j,k,irec)
209 ad_u(i,j,k,irec)=f_u(i,j,k)
210 END DO
211 END DO
212 END DO
213 DO k=1,n(ng)
214 DO j=jstr,jendr
215 DO i=istrr,iendr
216 f_v(i,j,k)=fac1*ad_v(i,j,k,irec)
217 ad_v(i,j,k,irec)=f_v(i,j,k)
218 END DO
219 END DO
220 END DO
221
222
223
224 DO itrc=1,nt(ng)
225 DO k=1,n(ng)
226 DO j=jstrr,jendr
227 DO i=istrr,iendr
228 f_t(i,j,k,itrc)=fac1*ad_t(i,j,k,irec,itrc)
229 ad_t(i,j,k,irec,itrc)=f_t(i,j,k,itrc)
230 END DO
231 END DO
232 END DO
233 END DO
234# endif
235
236 RETURN