2 SUBROUTINE ana_wwave (ng, tile, model)
23 integer,
intent(in) :: ng, tile, model
27 character (len=*),
parameter :: MyFile = &
32 CALL ana_wwave_tile (ng, tile, model, &
33 & lbi, ubi, lbj, ubj, &
34 & imins, imaxs, jmins, jmaxs, &
44#ifdef WAVES_TOP_PERIOD
45 &
forces(ng) % Pwave_top, &
47#ifdef WAVES_BOT_PERIOD
48 &
forces(ng) % Pwave_bot, &
51 &
forces(ng) % Uwave_rms, &
53 &
grid(ng) % angler, &
67 END SUBROUTINE ana_wwave
70 SUBROUTINE ana_wwave_tile (ng, tile, model, &
71 & LBi, UBi, LBj, UBj, &
72 & IminS, ImaxS, JminS, JmaxS, &
82#ifdef WAVES_TOP_PERIOD
85#ifdef WAVES_BOT_PERIOD
104 integer,
intent(in) :: ng, tile, model
105 integer,
intent(in) :: LBi, UBi, LBj, UBj
106 integer,
intent(in) :: IminS, ImaxS, JminS, JmaxS
109 real(r8),
intent(in) :: angler(LBi:,LBj:)
110 real(r8),
intent(in) :: h(LBi:,LBj:)
112 real(r8),
intent(inout) :: Dwave(LBi:,LBj:)
115 real(r8),
intent(inout) :: Hwave(LBi:,LBj:)
118 real(r8),
intent(inout) :: Lwave(LBi:,LBj:)
120# ifdef WAVES_TOP_PERIOD
121 real(r8),
intent(inout) :: Pwave_top(LBi:,LBj:)
123# ifdef WAVES_BOT_PERIOD
124 real(r8),
intent(inout) :: Pwave_bot(LBi:,LBj:)
127 real(r8),
intent(inout) :: Uwave_rms(LBi:,LBj:)
132 real(r8),
intent(in) :: angler(LBi:UBi,LBj:UBj)
133 real(r8),
intent(in) :: h(LBi:UBi,LBj:UBj)
135 real(r8),
intent(inout) :: Dwave(LBi:UBi,LBj:UBj)
138 real(r8),
intent(inout) :: Hwave(LBi:UBi,LBj:UBj)
141 real(r8),
intent(inout) :: Lwave(LBi:UBi,LBj:UBj)
143# ifdef WAVES_TOP_PERIOD
144 real(r8),
intent(inout) :: Pwave_top(LBi:UBi,LBj:UBj)
146# ifdef WAVES_BOT_PERIOD
147 real(r8),
intent(inout) :: Pwave_bot(LBi:UBi,LBj:UBj)
150 real(r8),
intent(inout) :: Uwave_rms(LBi:UBi,LBj:UBj)
158 real(r8) :: cff, wdir
159#if defined LAKE_SIGNELL
160 real(r8) :: cff1, mxst, ramp_u, ramp_time, ramp_d
163#include "set_bounds.h"
180# ifdef WAVES_BOT_PERIOD
181 pwave_bot(i,j)=8.0_r8
185#elif defined LAKE_SIGNELL
196 hwave(i,j)=max((cff1*mxst),0.01_r8)
198# ifdef WAVES_BOT_PERIOD
199 pwave_bot(i,j)=5.0_r8
200 cff1=min((0.5_r8*(tanh((
time(ng)/3600.0_r8-ramp_u)/ &
201 & (ramp_time/5.0_r8))+1.0_r8)), &
202 & (1.0_r8-(0.5_r8*(tanh((
time(ng)/3600.0_r8-ramp_d)/ &
203 & (ramp_time/5.0_r8))+1.0_r8))))
207#elif defined NJ_BIGHT
219 dwave(i,j)=wdir-angler(i,j)
224# ifdef WAVES_BOT_PERIOD
225 pwave_bot(i,j)=10.0_r8
241# ifdef WAVES_BOT_PERIOD
242 pwave_bot(i,j)=8.0_r8
247 ana_wwave: no values provided for hwave, dwave, pwave, lwave.
255 & lbi, ubi, lbj, ubj, &
260 & lbi, ubi, lbj, ubj, &
270 & lbi, ubi, lbj, ubj, &
275 & lbi, ubi, lbj, ubj, &
285 & lbi, ubi, lbj, ubj, &
290 & lbi, ubi, lbj, ubj, &
297#ifdef WAVES_TOP_PERIOD
300 & lbi, ubi, lbj, ubj, &
305 & lbi, ubi, lbj, ubj, &
312#ifdef WAVES_BOT_PERIOD
315 & lbi, ubi, lbj, ubj, &
320 & lbi, ubi, lbj, ubj, &
330 & lbi, ubi, lbj, ubj, &
335 & lbi, ubi, lbj, ubj, &
343 END SUBROUTINE ana_wwave_tile
subroutine ana_wwave(ng, tile, model)
subroutine ana_wwave_tile(ng, tile, model, lbi, ubi, lbj, ubj, imins, imaxs, jmins, jmaxs, dwave, hwave, lwave, pwave_top, pwave_bot, uwave_rms, angler, h)
subroutine exchange_r2d_tile(ng, tile, lbi, ubi, lbj, ubj, a)
type(t_forces), dimension(:), allocatable forces
type(t_grid), dimension(:), allocatable grid
character(len=256), dimension(39) ananame
logical, dimension(:), allocatable ewperiodic
logical, dimension(:), allocatable nsperiodic
real(dp), dimension(:), allocatable tdays
real(dp), parameter deg2rad
real(dp), dimension(:), allocatable time
subroutine mp_exchange2d(ng, tile, model, nvar, lbi, ubi, lbj, ubj, nghost, ew_periodic, ns_periodic, a, b, c, d)