82 & LBi, UBi, LBj, UBj, &
83 & IminS, ImaxS, JminS, JmaxS, &
84# if defined SEDIMENT_NOT_YET && defined SED_MORPH_NOT_YET
87 & bed_thick, ad_bed_thick, &
90 & ad_Huon, ad_Hvom, ad_z_w, &
107 integer,
intent(in) :: ng, tile, model
108 integer,
intent(in) :: LBi, UBi, LBj, UBj
109 integer,
intent(in) :: IminS, ImaxS, JminS, JmaxS
110# if defined SEDIMENT_NOT_YET && defined SED_MORPH_NOT_YET
111 integer,
intent(in) :: nstp, nnew
115 real(r8),
intent(in) :: Huon(LBi:,LBj:,:)
116 real(r8),
intent(in) :: Hvom(LBi:,LBj:,:)
117 real(r8),
intent(in) :: z_w(LBi:,LBj:,0:)
118# if defined SEDIMENT_NOT_YET && defined SED_MORPH_NOT_YET
119 real(r8),
intent(in) :: omn(LBi:,LBj:)
120 real(r8),
intent(in):: bed_thick(LBi:,LBj:,:)
121 real(r8),
intent(inout):: ad_bed_thick(LBi:,LBj:,:)
123 real(r8),
intent(inout) :: ad_Huon(LBi:,LBj:,:)
124 real(r8),
intent(inout) :: ad_Hvom(LBi:,LBj:,:)
125 real(r8),
intent(inout) :: ad_z_w(LBi:,LBj:,0:)
126 real(r8),
intent(inout) :: ad_W(LBi:,LBj:,0:)
127 real(r8),
intent(inout) :: ad_W_sol(LBi:,LBj:,0:)
129 real(r8),
intent(out) :: W(LBi:,LBj:,0:)
133 real(r8),
intent(in) :: Huon(LBi:UBi,LBj:UBj,N(ng))
134 real(r8),
intent(in) :: Hvom(LBi:UBi,LBj:UBj,N(ng))
135 real(r8),
intent(in) :: z_w(LBi:UBi,LBj:UBj,0:N(ng))
136# if defined SEDIMENT_NOT_YET && defined SED_MORPH_NOT_YET
137 real(r8),
intent(in) :: omn(LBi:UBi,LBj:UBj)
138 real(r8),
intent(in):: bed_thick(LBi:UBi,LBj:UBj,2)
139 real(r8),
intent(inout):: ad_bed_thick(LBi:UBi,LBj:UBj,2)
141 real(r8),
intent(inout) :: ad_Huon(LBi:UBi,LBj:UBj,N(ng))
142 real(r8),
intent(inout) :: ad_Hvom(LBi:UBi,LBj:UBj,N(ng))
143 real(r8),
intent(inout) :: ad_z_w(LBi:UBi,LBj:UBj,0:N(ng))
144 real(r8),
intent(inout) :: ad_W(LBi:UBi,LBj:UBj,0:N(ng))
145 real(r8),
intent(inout) :: ad_W_sol(LBi:UBi,LBj:UBj,0:N(ng))
147 real(r8),
intent(out) :: W(LBi:UBi,LBj:UBj,0:N(ng))
152 integer :: i, ii, is, j, jj, k
154 real(r8) :: ad_cff, adfac
155# if defined SEDIMENT_NOT_YET && defined SED_MORPH_NOT_YET
158 real(r8),
dimension(IminS:ImaxS) :: wrk
159 real(r8),
dimension(IminS:ImaxS) :: ad_wrk
161# include "set_bounds.h"
181 ad_w_sol(i,j,k)=ad_w(i,j,k)
196 & lbi, ubi, lbj, ubj, 0, n(ng), &
206 & lbi, ubi, lbj, ubj, 0, n(ng), &
219# if defined SEDIMENT_NOT_YET && defined SED_MORPH_NOT_YET
224# if defined SEDIMENT_NOT_YET && defined SED_MORPH_NOT_YET
225 w(i,j,0)=-cff1*(bed_thick(i,j,nstp)- &
226 & bed_thick(i,j,nnew))*omn(i,j)
234 w(i,j,k)=w(i,j,k-1)- &
235 & (huon(i+1,j,k)-huon(i,j,k)+ &
236 & hvom(i,j+1,k)-hvom(i,j,k))
252 IF (int(
sources(ng)%Dsrc(is)).eq.2)
THEN
255 IF (((istrr.le.ii).and.(ii.le.iendr)).and. &
256 & ((jstrr.le.jj).and.(jj.le.jendr)).and. &
259 w(ii,jj,k)=w(ii,jj,k-1)- &
260 & (huon(ii+1,jj,k)-huon(ii,jj,k)+ &
261 & hvom(ii,jj+1,k)-hvom(ii,jj,k))+ &
270 wrk(i)=w(i,j,n(ng))/(z_w(i,j,n(ng))-z_w(i,j,0))
281 ad_w(i,j,n(ng))=0.0_r8
289 adfac=wrk(i)*ad_w(i,j,k)
290 ad_wrk(i)=ad_wrk(i)- &
291 & ad_w(i,j,k)*(z_w(i,j,k)-z_w(i,j,0))
292 ad_z_w(i,j,0)=ad_z_w(i,j,0)+adfac
293 ad_z_w(i,j,k)=ad_z_w(i,j,k)-adfac
297 cff=1.0_r8/(z_w(i,j,n(ng))-z_w(i,j,0))
300 ad_w(i,j,n(ng))=ad_w(i,j,n(ng))+cff*ad_wrk(i)
301 ad_cff=ad_cff+w(i,j,n(ng))*ad_wrk(i)
305 adfac=-cff*cff*ad_cff
306 ad_z_w(i,j,0 )=ad_z_w(i,j,0 )-adfac
307 ad_z_w(i,j,n(ng))=ad_z_w(i,j,n(ng))+adfac
317 IF (int(
sources(ng)%Dsrc(is)).eq.2)
THEN
320 IF (((istrr.le.ii).and.(ii.le.iendr)).and. &
321 & ((jstrr.le.jj).and.(jj.le.jendr)).and. &
331 ad_w(ii,jj,k-1)=ad_w(ii,jj,k-1)+ad_w(ii,jj,k)
332 ad_huon(ii ,jj,k)=ad_huon(ii ,jj,k)+ad_w(ii,jj,k)
333 ad_huon(ii+1,jj,k)=ad_huon(ii+1,jj,k)-ad_w(ii,jj,k)
334 ad_hvom(ii,jj ,k)=ad_hvom(ii,jj ,k)+ad_w(ii,jj,k)
335 ad_hvom(ii,jj+1,k)=ad_hvom(ii,jj+1,k)-ad_w(ii,jj,k)
360 ad_w(i,j,k-1)=ad_w(i,j,k-1)+ad_w(i,j,k)
361 ad_huon(i ,j,k)=ad_huon(i ,j,k)+ad_w(i,j,k)
362 ad_huon(i+1,j,k)=ad_huon(i+1,j,k)-ad_w(i,j,k)
363 ad_hvom(i,j ,k)=ad_hvom(i,j ,k)+ad_w(i,j,k)
364 ad_hvom(i,j+1,k)=ad_hvom(i,j+1,k)-ad_w(i,j,k)
378# if defined SEDIMENT_NOT_YET && defined SED_MORPH_NOT_YET
382 adfac=cff1*omn(i,j)*ad_w(i,j,0)
383 ad_bed_thick(i,j,nnew)=ad_bed_thick(i,j,nnew)+adfac
384 ad_bed_thick(i,j,nstp)=ad_bed_thick(i,j,nstp)+adfac
398 w(i,j,k)=w(i,j,k)-wrk(i)*(z_w(i,j,k)-z_w(i,j,0))
409 & lbi, ubi, lbj, ubj, 0, n(ng), &
413 & lbi, ubi, lbj, ubj, 0, n(ng), &