52 SUBROUTINE ana_mask_tile (ng, tile, model, &
53 & LBi, UBi, LBj, UBj, &
54 & IminS, ImaxS, JminS, JmaxS, &
55 & pmask, rmask, umask, vmask)
72 integer,
intent(in) :: ng, tile, model
73 integer,
intent(in) :: LBi, UBi, LBj, UBj
74 integer,
intent(in) :: IminS, ImaxS, JminS, JmaxS
77 real(r8),
intent(out) :: pmask(LBi:,LBj:)
78 real(r8),
intent(out) :: rmask(LBi:,LBj:)
79 real(r8),
intent(out) :: umask(LBi:,LBj:)
80 real(r8),
intent(out) :: vmask(LBi:,LBj:)
82 real(r8),
intent(out) :: pmask(LBi:UBi,LBj:UBj)
83 real(r8),
intent(out) :: rmask(LBi:UBi,LBj:UBj)
84 real(r8),
intent(out) :: umask(LBi:UBi,LBj:UBj)
85 real(r8),
intent(out) :: vmask(LBi:UBi,LBj:UBj)
90 logical,
save :: first = .true.
92 integer :: Imin, Imax, Jmin, Jmax
95 real(r8) :: mask(IminS:ImaxS,JminS:JmaxS)
97 TYPE (T_STATS),
save :: Stats(4)
99#include "set_bounds.h"
108 stats(i) % checksum=0_i8b
111 stats(i) % max=-
large
112 stats(i) % avg=0.0_r8
113 stats(i) % rms=0.0_r8
132 IF (((imin.le.i).and.(i.le.imax)).and. &
133 & ((jmin.le.j).and.(j.le.jmax)))
THEN
138#elif defined FLT_TEST
142 IF (j.eq.1 ) mask(i,j)=0.0_r8
143 IF (j.eq.
mm(ng)) mask(i,j)=0.0_r8
144 IF ((i.ge.((
lm(ng)+1)/2)).and. &
145 & (i.le.((
lm(ng)+1)/2+1)).and. &
146 & (j.ge.((
mm(ng)+1)/2)).and. &
147 & (j.le.((
mm(ng)+1)/2+1))) mask(i,j)=0.0_r8
150#elif defined LAKE_SIGNELL
156 IF (
domain(ng)%Western_Edge(tile))
THEN
158 mask(istr-1,j)=0.0_r8
161 IF (
domain(ng)%Eastern_Edge(tile))
THEN
163 mask(iend+1,j)=0.0_r8
166 IF (
domain(ng)%Southern_Edge(tile))
THEN
168 mask(i,jstr-1)=0.0_r8
171 IF (
domain(ng)%Northern_Edge(tile))
THEN
173 mask(i,jend+1)=0.0_r8
176#elif defined RIVERPLUME1
182 DO i=istrm2,min(5,iendp2)
183 DO j=jstrm2,min(
mm(ng)-18,jendp2)
186 DO j=max(jstrm2,
mm(ng)-16),jendp2
190#elif defined RIVERPLUME2
196 DO i=istrm2,min(5,iendp2)
197 DO j=jstrm2,min(
mm(ng)-11,jendp2)
200 DO j=max(jstrm2,
mm(ng)-9),jendp2
204#elif defined SHOREFACE
211 ana_mask.h: no values provided for mask.
226 umask(i,j)=mask(i-1,j)*mask(i,j)
231 vmask(i,j)=mask(i,j-1)*mask(i,j)
241 pmask(i,j)=mask(i-1,j-1)*mask(i,j-1)* &
242 & mask(i-1,j )*mask(i,j )
251 & lbi, ubi, lbj, ubj, pmask)
252 IF (
domain(ng)%NorthEast_Corner(tile))
THEN
253 WRITE (
stdout,10)
'mask on PSI-points: mask_psi', &
254 & ng, stats(1)%min, stats(1)%max
257 & lbi, ubi, lbj, ubj, rmask)
258 IF (
domain(ng)%NorthEast_Corner(tile))
THEN
259 WRITE (
stdout,10)
'mask on RHO-points: mask_rho', &
260 & ng, stats(2)%min, stats(2)%max
263 & lbi, ubi, lbj, ubj, umask)
264 IF (
domain(ng)%NorthEast_Corner(tile))
THEN
265 WRITE (
stdout,10)
'mask on U-points: mask_u', &
266 & ng, stats(3)%min, stats(3)%max
269 & lbi, ubi, lbj, ubj, vmask)
270 IF (
domain(ng)%NorthEast_Corner(tile))
THEN
271 WRITE (
stdout,10)
'mask on V-points: mask_v', &
272 & ng, stats(4)%min, stats(4)%max
281 & lbi, ubi, lbj, ubj, &
284 & lbi, ubi, lbj, ubj, &
287 & lbi, ubi, lbj, ubj, &
290 & lbi, ubi, lbj, ubj, &
296 & lbi, ubi, lbj, ubj, &
299 & rmask, pmask, umask, vmask)
302 10
FORMAT (3x,
' ANA_MASK - ',a,/,19x, &
303 &
'(Grid = ',i2.2,
', Min = ',1p,e15.8,0p, &
304 &
' Max = ',1p,e15.8,0p,
')')
subroutine ana_mask_tile(ng, tile, model, lbi, ubi, lbj, ubj, imins, imaxs, jmins, jmaxs, pmask, rmask, umask, vmask)
subroutine mp_exchange2d(ng, tile, model, nvar, lbi, ubi, lbj, ubj, nghost, ew_periodic, ns_periodic, a, b, c, d)
subroutine, public stats_2dfld(ng, tile, model, gtype, s, extract_flag, lbi, ubi, lbj, ubj, f, fmask, debug)