82
83
85
86
87
88 integer, intent(in) :: ng, tile
89 integer, intent(in) :: LBi, UBi, LBj, UBj
90 integer, intent(in) :: IminS, ImaxS, JminS, JmaxS
91 integer, intent(in) :: Kfrc
92 integer, intent(in) :: Nfrc
93
94# ifdef ASSUMED_SHAPE
95# ifdef SOLVE3D
96 real(r8), intent(inout) :: f_t(LBi:,LBj:,:,:)
97 real(r8), intent(inout) :: f_u(LBi:,LBj:,:)
98 real(r8), intent(inout) :: f_v(LBi:,LBj:,:)
99# else
100 real(r8), intent(inout) :: f_ubar(LBi:,LBj:)
101 real(r8), intent(inout) :: f_vbar(LBi:,LBj:)
102# endif
103 real(r8), intent(inout) :: f_zeta(LBi:,LBj:)
104# ifdef SOLVE3D
105 real(r8), intent(inout) :: ad_t(LBi:,LBj:,:,:,:)
106 real(r8), intent(inout) :: ad_u(LBi:,LBj:,:,:)
107 real(r8), intent(inout) :: ad_v(LBi:,LBj:,:,:)
108# else
109 real(r8), intent(inout) :: ad_ubar(LBi:,LBj:,:)
110 real(r8), intent(inout) :: ad_vbar(LBi:,LBj:,:)
111# endif
112 real(r8), intent(inout) :: ad_zeta(LBi:,LBj:,:)
113# else
114# ifdef SOLVE3D
115 real(r8), intent(inout) :: f_t(LBi:UBi,LBj:UBj,N(ng),NT(ng))
116 real(r8), intent(inout) :: f_u(LBi:UBi,LBj:UBj,N(ng))
117 real(r8), intent(inout) :: f_v(LBi:UBi,LBj:UBj,N(ng))
118# else
119 real(r8), intent(inout) :: f_ubar(LBi:UBi,LBj:UBj)
120 real(r8), intent(inout) :: f_vbar(LBi:UBi,LBj:UBj)
121# endif
122 real(r8), intent(inout) :: f_zeta(LBi:UBi,LBj:UBj)
123# ifdef SOLVE3D
124 real(r8), intent(inout) :: ad_t(LBi:UBi,LBj:UBj,N(ng),3,NT(ng))
125 real(r8), intent(inout) :: ad_u(LBi:UBi,LBj:UBj,N(ng),2)
126 real(r8), intent(inout) :: ad_v(LBi:UBi,LBj:UBj,N(ng),2)
127# else
128 real(r8), intent(inout) :: ad_ubar(LBi:UBi,LBj:UBj,:)
129 real(r8), intent(inout) :: ad_vbar(LBi:UBi,LBj:UBj,:)
130# endif
131 real(r8), intent(inout) :: ad_zeta(LBi:UBi,LBj:UBj,:)
132# endif
133
134
135
136 integer :: i, j
137# ifdef SOLVE3D
138 integer :: itrc, k
139# endif
140
141# include "set_bounds.h"
142
143
144
145
146
147
148
149 DO j=jstrr,jendr
150 DO i=istrr,iendr
151 ad_zeta(i,j,kfrc)=ad_zeta(i,j,kfrc)+f_zeta(i,j)
152 f_zeta(i,j)=0.0_r8
153 END DO
154 END DO
155
156# ifndef SOLVE3D
157
158
159
160 DO j=jstrr,jendr
161 DO i=istr,iendr
162 ad_ubar(i,j,kfrc)=ad_ubar(i,j,kfrc)+f_ubar(i,j)
163 f_ubar(i,j)=0.0_r8
164 END DO
165 END DO
166
167 DO j=jstr,jendr
168 DO i=istrr,iendr
169 ad_vbar(i,j,kfrc)=ad_vbar(i,j,kfrc)+f_vbar(i,j)
170 f_vbar(i,j)=0.0_r8
171 END DO
172 END DO
173# else
174
175
176
178 DO j=jstrr,jendr
179 DO i=istr,iendr
180 ad_u(i,j,k,nfrc)=ad_u(i,j,k,nfrc)+f_u(i,j,k)
181 f_u(i,j,k)=0.0_r8
182 END DO
183 END DO
184 DO j=jstr,jendr
185 DO i=istrr,iendr
186 ad_v(i,j,k,nfrc)=ad_v(i,j,k,nfrc)+f_v(i,j,k)
187 f_v(i,j,k)=0.0_r8
188 END DO
189 END DO
190 END DO
191
192
193
196 DO j=jstrr,jendr
197 DO i=istrr,iendr
198 ad_t(i,j,k,nfrc,itrc)=ad_t(i,j,k,nfrc,itrc)+ &
199 & f_t(i,j,k,itrc)
200 f_t(i,j,k,itrc)=0.0_r8
201 END DO
202 END DO
203 END DO
204 END DO
205# endif
206
207 RETURN
integer, dimension(:), allocatable n
integer, dimension(:), allocatable nt