151# if defined PIO_LIB && defined DISTRIBUTE
161 integer,
intent(in) :: ng, lbi, ubi, lbj, ubj
167 integer :: nfiles, vid, i, ifile, mg, nvatt, nvdim
171 character (len=*),
parameter :: myfile = &
172 & __FILE__//
", allocate_tides"
174# if defined PIO_LIB && defined DISTRIBUTE
176 TYPE (var_desc_t) :: my_piovar
191 SELECT CASE (
tide(ng)%IOtype)
195 & searchvar = foundit, &
200# if defined PIO_LIB && defined DISTRIBUTE
204 & searchvar = foundit, &
205 & piovar = my_piovar, &
230 size2d=real((ubi-lbi+1)*(ubj-lbj+1),
r8)
234 allocate (
tides(ng) % Tperiod(
mtc) )
237# if defined SSH_TIDES
238 allocate (
tides(ng) % SSH_Tamp(lbi:ubi,lbj:ubj,
mtc) )
241 allocate (
tides(ng) % SSH_Tphase(lbi:ubi,lbj:ubj,
mtc) )
246 allocate (
tides(ng) % UV_Tangle(lbi:ubi,lbj:ubj,
mtc) )
249 allocate (
tides(ng) % UV_Tmajor(lbi:ubi,lbj:ubj,
mtc) )
252 allocate (
tides(ng) % UV_Tminor(lbi:ubi,lbj:ubj,
mtc) )
255 allocate (
tides(ng) % UV_Tphase(lbi:ubi,lbj:ubj,
mtc) )
259# if defined AVERAGES && defined AVERAGES_DETIDE
264 allocate (
tides(ng) % CosOmega(
mtc) )
267 allocate (
tides(ng) % SinOmega(
mtc) )
270 allocate (
tides(ng) % CosW_avg(
mtc) )
273 allocate (
tides(ng) % CosW_sum(
mtc) )
276 allocate (
tides(ng) % SinW_avg(
mtc) )
279 allocate (
tides(ng) % SinW_sum(
mtc) )
292 allocate (
tides(ng) % zeta_detided(lbi:ubi,lbj:ubj) )
295 allocate (
tides(ng) % zeta_tide(lbi:ubi,lbj:ubj,0:2*
mtc) )
300 allocate (
tides(ng) % ubar_detided(lbi:ubi,lbj:ubj) )
302 allocate (
tides(ng) % ubar_tide(lbi:ubi,lbj:ubj,0:2*
mtc) )
307 allocate (
tides(ng) % vbar_detided(lbi:ubi,lbj:ubj) )
309 allocate (
tides(ng) % vbar_tide(lbi:ubi,lbj:ubj,0:2*
mtc) )
315 allocate (
tides(ng) % u_detided(lbi:ubi,lbj:ubj,
n(ng)) )
318 allocate (
tides(ng) % u_tide(lbi:ubi,lbj:ubj,
n(ng),0:2*
mtc) )
323 allocate (
tides(ng) % v_detided(lbi:ubi,lbj:ubj,
n(ng)) )
326 allocate (
tides(ng) % v_tide(lbi:ubi,lbj:ubj,
n(ng),0:2*
mtc) )
331 allocate (
tides(ng) % t_detided(lbi:ubi,lbj:ubj,
n(ng),
nat) )
334 allocate (
tides(ng) % t_tide(lbi:ubi,lbj:ubj,
n(ng), &
356# ifdef SUBOBJECT_DEALLOCATION
363 integer,
intent(in) :: ng
367 character (len=*),
parameter :: myfile = &
368 & __FILE__//
", deallocate_tides"
371# ifdef SUBOBJECT_DEALLOCATION
379 & __line__,
'TIDES(ng)%Tperiod'))
RETURN
381# if defined SSH_TIDES
383 & __line__,
'TIDES(ng)%SSH_Tamp'))
RETURN
386 & __line__,
'TIDES(ng)%SSH_Tphase'))
RETURN
391 & __line__,
'TIDES(ng)%UV_Tangle'))
RETURN
394 & __line__,
'TIDES(ng)%UV_Tmajor'))
RETURN
397 & __line__,
'TIDES(ng)%UV_Tminor'))
RETURN
400 & __line__,
'TIDES(ng)%UV_Tphase'))
RETURN
403# if defined AVERAGES && defined AVERAGES_DETIDE
409 & __line__,
'TIDES(ng)%CosOmega'))
RETURN
412 & __line__,
'TIDES(ng)%SinOmega'))
RETURN
415 & __line__,
'TIDES(ng)%CosW_avg'))
RETURN
418 & __line__,
'TIDES(ng)%CosW_sum'))
RETURN
421 & __line__,
'TIDES(ng)%SinW_avg'))
RETURN
424 & __line__,
'TIDES(ng)%SinW_sum'))
RETURN
427 & __line__,
'TIDES(ng)%CosWCosW'))
RETURN
430 & __line__,
'TIDES(ng)%SinWSinW'))
RETURN
433 & __line__,
'TIDES(ng)%SinWCosW'))
RETURN
437 & __line__,
'TIDES(ng)%zeta_detided'))
RETURN
440 & __line__,
'TIDES(ng)%zeta_tide'))
RETURN
445 & __line__,
'TIDES(ng)%ubar_detided'))
RETURN
448 & __line__,
'TIDES(ng)%ubar_tide'))
RETURN
453 & __line__,
'TIDES(ng)%vbar_detided'))
RETURN
456 & __line__,
'TIDES(ng)%vbar_tide'))
RETURN
462 & __line__,
'TIDES(ng)%u_detided'))
RETURN
465 & __line__,
'TIDES(ng)%u_tide'))
RETURN
470 & __line__,
'TIDES(ng)%v_detided'))
RETURN
473 & __line__,
'TIDES(ng)%v_tide'))
RETURN
478 & __line__,
'TIDES(ng)%t_detided'))
RETURN
481 & __line__,
'TIDES(ng)%t_tide'))
RETURN
515 integer,
intent(in) :: ng, tile
519 integer :: imin, imax, jmin, jmax
520 integer :: i, itide, itrc, j, jtide, k
522 real(
r8),
parameter :: inival = 0.0_r8
524# include "set_bounds.h"
534 IF (
domain(ng)%Western_Edge(tile))
THEN
539 IF (
domain(ng)%Eastern_Edge(tile))
THEN
544 IF (
domain(ng)%Southern_Edge(tile))
THEN
549 IF (
domain(ng)%Northern_Edge(tile))
THEN
562 IF (
domain(ng)%SouthWest_Test(tile))
THEN
564 tides(ng) % Tperiod(itide) = inival
569# if defined SSH_TIDES
572 tides(ng) % SSH_Tamp(i,j,itide) = inival
573 tides(ng) % SSH_Tphase(i,j,itide) = inival
580 tides(ng) % UV_Tangle(i,j,itide) = inival
581 tides(ng) % UV_Tmajor(i,j,itide) = inival
582 tides(ng) % UV_Tminor(i,j,itide) = inival
583 tides(ng) % UV_Tphase(i,j,itide) = inival
589# if defined AVERAGES && defined AVERAGES_DETIDE
594 IF (
domain(ng)%SouthWest_Test(tile))
THEN
596 tides(ng) % CosOmega(jtide) = inival
597 tides(ng) % SinOmega(jtide) = inival
598 tides(ng) % CosW_avg(jtide) = inival
599 tides(ng) % CosW_sum(jtide) = inival
600 tides(ng) % SinW_avg(jtide) = inival
601 tides(ng) % SinW_sum(jtide) = inival
603 tides(ng) % CosWCosW(itide,jtide) = inival
604 tides(ng) % SinWSinW(itide,jtide) = inival
605 tides(ng) % SinWCosW(itide,jtide) = inival
613 tides(ng) % zeta_detided(i,j) = inival
619 tides(ng) % zeta_tide(i,j,itide) = inival
628 tides(ng) % ubar_detided(i,j) = inival
634 tides(ng) % ubar_tide(i,j,itide) = inival
643 tides(ng) % vbar_detided(i,j) = inival
649 tides(ng) % vbar_tide(i,j,itide) = inival
660 tides(ng) % u_detided(i,j,k) = inival
668 tides(ng) % u_tide(i,j,k,itide) = inival
679 tides(ng) % v_detided(i,j,k) = inival
687 tides(ng) % v_tide(i,j,k,itide) = inival
699 tides(ng) % t_detided(i,j,k,itrc) = inival
709 tides(ng) % t_tide(i,j,k,itide,itrc) = inival