176 integer,
intent(in) :: ng, lbi, ubi, lbj, ubj
186#if defined BEDLOAD && \
187 defined averages || \
188 (defined ad_averages && defined adjoint) || \
189 (defined rp_averages && defined tl_ioms) || \
190 (defined tl_averages && defined tangent)
192 allocate (
sedbed(ng) % avgbedldu(lbi:ubi,lbj:ubj,
nst) )
195 allocate (
sedbed(ng) % avgbedldv(lbi:ubi,lbj:ubj,
nst) )
201 allocate (
sedbed(ng) % bed_mass(lbi:ubi,lbj:ubj,
nbed,2,
nst) )
203#if defined SEDIMENT && defined SED_MORPH
204 allocate (
sedbed(ng) % bed_thick0(lbi:ubi,lbj:ubj) )
205 allocate (
sedbed(ng) % bed_thick(lbi:ubi,lbj:ubj,3) )
208 allocate (
sedbed(ng) % bedldu(lbi:ubi,lbj:ubj,
nst) )
209 allocate (
sedbed(ng) % bedldv(lbi:ubi,lbj:ubj,
nst) )
211 allocate (
sedbed(ng) % bottom(lbi:ubi,lbj:ubj,
mbotp) )
212#if defined SEDIMENT && defined SUSPLOAD
213 allocate (
sedbed(ng) % ero_flux(lbi:ubi,lbj:ubj,
nst) )
214 allocate (
sedbed(ng) % settling_flux(lbi:ubi,lbj:ubj,
nst) )
217#if defined TANGENT || defined TL_IOMS
223 allocate (
sedbed(ng) % tl_bed_frac(lbi:ubi,lbj:ubj,
nbed,
nst) )
224 allocate (
sedbed(ng) % tl_bed_mass(lbi:ubi,lbj:ubj,
nbed,2,
nst) )
226# if defined SEDIMENT && defined SED_MORPH
227 allocate (
sedbed(ng) % tl_bed_thick0(lbi:ubi,lbj:ubj) )
228 allocate (
sedbed(ng) % tl_bed_thick(lbi:ubi,lbj:ubj,3) )
231 allocate (
sedbed(ng) % tl_bedldu(lbi:ubi,lbj:ubj,
nst) )
232 allocate (
sedbed(ng) % tl_bedldv(lbi:ubi,lbj:ubj,
nst) )
234 allocate (
sedbed(ng) % tl_bottom(lbi:ubi,lbj:ubj,
mbotp) )
235# if defined SEDIMENT && defined SUSPLOAD
236 allocate (
sedbed(ng) % tl_ero_flux(lbi:ubi,lbj:ubj,
nst) )
237 allocate (
sedbed(ng) % tl_settling_flux(lbi:ubi,lbj:ubj,
nst) )
247 allocate (
sedbed(ng) % ad_bed_frac(lbi:ubi,lbj:ubj,
nbed,
nst) )
248 allocate (
sedbed(ng) % ad_bed_mass(lbi:ubi,lbj:ubj,
nbed,2,
nst) )
250# if defined SEDIMENT && defined SED_MORPH
251 allocate (
sedbed(ng) % ad_bed_thick0(lbi:ubi,lbj:ubj) )
252 allocate (
sedbed(ng) % ad_bed_thick(lbi:ubi,lbj:ubj,3) )
255 allocate (
sedbed(ng) % ad_bedldu(lbi:ubi,lbj:ubj,
nst) )
256 allocate (
sedbed(ng) % ad_bedldv(lbi:ubi,lbj:ubj,
nst) )
258 allocate (
sedbed(ng) % ad_bottom(lbi:ubi,lbj:ubj,
mbotp) )
259# if defined SEDIMENT && defined SUSPLOAD
260 allocate (
sedbed(ng) % ad_ero_flux(lbi:ubi,lbj:ubj,
nst) )
261 allocate (
sedbed(ng) % ad_settling_flux(lbi:ubi,lbj:ubj,
nst) )
278#ifdef SUBOBJECT_DEALLOCATION
285 integer,
intent(in) :: ng
287#ifdef SUBOBJECT_DEALLOCATION
296# if defined BEDLOAD && \
297 defined averages || \
298 (defined ad_averages && defined adjoint) || \
299 (defined rp_averages && defined tl_ioms) || \
300 (defined tl_averages && defined tangent)
302 & __line__,
'SEDBED(ng)%avgbedldu'))
RETURN
305 & __line__,
'SEDBED(ng)%avgbedldv'))
RETURN
310 & __line__,
'SEDBED(ng)%bed'))
RETURN
313 & __line__,
'SEDBED(ng)%bed_frac'))
RETURN
316 & __line__,
'SEDBED(ng)%bed_mass'))
RETURN
319# if defined SEDIMENT && defined SED_MORPH
321 & __line__,
'SEDBED(ng)%bed_thick0'))
RETURN
324 & __line__,
'SEDBED(ng)%bed_thick'))
RETURN
329 & __line__,
'SEDBED(ng)%bedldu'))
RETURN
332 & __line__,
'SEDBED(ng)%bedldv'))
RETURN
336 & __line__,
'SEDBED(ng)%bottom'))
RETURN
338# if defined SEDIMENT && defined SUSPLOAD
340 & __line__,
'SEDBED(ng)%ero_flux'))
RETURN
343 & __line__,
'SEDBED(ng)%settling_flux'))
RETURN
346# if defined TANGENT || defined TL_IOMS
352 & __line__,
'SEDBED(ng)%tl_bed'))
RETURN
355 & __line__,
'SEDBED(ng)%tl_bed_frac'))
RETURN
358 & __line__,
'SEDBED(ng)%tl_bed_mass'))
RETURN
361# if defined SEDIMENT && defined SED_MORPH
363 & __line__,
'SEDBED(ng)%tl_bed_thick0'))
RETURN
366 & __line__,
'SEDBED(ng)%tl_bed_thick'))
RETURN
371 & __line__,
'SEDBED(ng)%tl_bedldu'))
RETURN
374 & __line__,
'SEDBED(ng)%tl_bedldv'))
RETURN
378 & __line__,
'SEDBED(ng)%bottom'))
RETURN
380# if defined SEDIMENT && defined SUSPLOAD
382 & __line__,
'SEDBED(ng)%tl_ero_flux'))
RETURN
385 & __line__,
'SEDBED(ng)%tl_settling_flux'))
RETURN
395 & __line__,
'SEDBED(ng)%ad_bed'))
RETURN
398 & __line__,
'SEDBED(ng)%ad_bed_frac'))
RETURN
401 & __line__,
'SEDBED(ng)%ad_bed_mass'))
RETURN
404# if defined SEDIMENT && defined SED_MORPH
406 & __line__,
'SEDBED(ng)%ad_bed_thick0'))
RETURN
409 & __line__,
'SEDBED(ng)%ad_bed_thick'))
RETURN
414 & __line__,
'SEDBED(ng)%ad_bedldu'))
RETURN
417 & __line__,
'SEDBED(ng)%ad_bedldv'))
RETURN
421 & __line__,
'SEDBED(ng)%bottom'))
RETURN
423# if defined SEDIMENT && defined SUSPLOAD
425 & __line__,
'SEDBED(ng)%ad_ero_flux'))
RETURN
428 & __line__,
'SEDBED(ng)%ad_settling_flux'))
RETURN
462 integer,
intent(in) :: ng, tile, model
466 integer :: imin, imax, jmin, jmax
467 integer :: i, itrc, j, k
469 real(
r8),
parameter :: inival = 0.0_r8
471#include "set_bounds.h"
476 IF (
domain(ng)%Western_Edge(tile))
THEN
481 IF (
domain(ng)%Eastern_Edge(tile))
THEN
486 IF (
domain(ng)%Southern_Edge(tile))
THEN
491 IF (
domain(ng)%Northern_Edge(tile))
THEN
509 IF ((model.eq.0).or.(model.eq.
inlm))
THEN
511#if defined BEDLOAD && \
512 defined averages || \
513 (defined ad_averages && defined adjoint) || \
514 (defined rp_averages && defined tl_ioms) || \
515 (defined tl_averages && defined tangent)
520 sedbed(ng) % avgbedldu(i,j,itrc) = inival
529 sedbed(ng) % avgbedldv(i,j,itrc) = inival
540 sedbed(ng) % bed(i,j,k,itrc) = inival
547 sedbed(ng) % bed_frac(i,j,k,itrc) = inival
548 sedbed(ng) % bed_mass(i,j,k,1,itrc) = inival
549 sedbed(ng) % bed_mass(i,j,k,2,itrc) = inival
554#if defined SEDIMENT && defined SED_MORPH
556 sedbed(ng) % bed_thick0(i,j) = inival
557 sedbed(ng) % bed_thick(i,j,1) = inival
558 sedbed(ng) % bed_thick(i,j,2) = inival
559 sedbed(ng) % bed_thick(i,j,3) = inival
565 sedbed(ng) % bedldu(i,j,itrc) = inival
566 sedbed(ng) % bedldv(i,j,itrc) = inival
572 sedbed(ng) % bottom(i,j,itrc) = inival
575#if defined SEDIMENT && defined SUSPLOAD
578 sedbed(ng) % ero_flux(i,j,itrc) = inival
579 sedbed(ng) % settling_flux(i,j,itrc) = inival
586#if defined TANGENT || defined TL_IOMS
590 IF ((model.eq.0).or.(model.eq.
itlm).or.(model.eq.
irpm))
THEN
596 sedbed(ng) % tl_bed(i,j,k,itrc) = inival
603 sedbed(ng) % tl_bed_frac(i,j,k,itrc) = inival
604 sedbed(ng) % tl_bed_mass(i,j,k,1,itrc) = inival
605 sedbed(ng) % tl_bed_mass(i,j,k,2,itrc) = inival
610# if defined SEDIMENT && defined SED_MORPH
612 sedbed(ng) % tl_bed_thick0(i,j) = inival
613 sedbed(ng) % tl_bed_thick(i,j,1) = inival
614 sedbed(ng) % tl_bed_thick(i,j,2) = inival
615 sedbed(ng) % tl_bed_thick(i,j,3) = inival
621 sedbed(ng) % tl_bedldu(i,j,itrc) = inival
622 sedbed(ng) % tl_bedldv(i,j,itrc) = inival
628 sedbed(ng) % tl_bottom(i,j,itrc) = inival
631# if defined SEDIMENT && defined SUSPLOAD
634 sedbed(ng) % tl_ero_flux(i,j,itrc) = inival
635 sedbed(ng) % tl_settling_flux(i,j,itrc) = inival
647 IF ((model.eq.0).or.(model.eq.
iadm))
THEN
653 sedbed(ng) % ad_bed(i,j,k,itrc) = inival
660 sedbed(ng) % ad_bed_frac(i,j,k,itrc) = inival
661 sedbed(ng) % ad_bed_mass(i,j,k,1,itrc) = inival
662 sedbed(ng) % ad_bed_mass(i,j,k,2,itrc) = inival
667# if defined SEDIMENT && defined SED_MORPH
669 sedbed(ng) % ad_bed_thick0(i,j) = inival
670 sedbed(ng) % ad_bed_thick(i,j,1) = inival
671 sedbed(ng) % ad_bed_thick(i,j,2) = inival
672 sedbed(ng) % ad_bed_thick(i,j,3) = inival
678 sedbed(ng) % ad_bedldu(i,j,itrc) = inival
679 sedbed(ng) % ad_bedldv(i,j,itrc) = inival
685 sedbed(ng) % ad_bottom(i,j,itrc) = inival
688# if defined SEDIMENT && defined SUSPLOAD
691 sedbed(ng) % ad_ero_flux(i,j,itrc) = inival
692 sedbed(ng) % ad_settling_flux(i,j,itrc) = inival