2 SUBROUTINE ana_sponge (ng, tile, model)
26 integer,
intent(in) :: ng, tile, model
30 character (len=*),
parameter :: MyFile = &
35 CALL ana_sponge_tile (ng, tile, model, &
36 & lbi, ubi, lbj, ubj, &
37 & imins, imaxs, jmins, jmaxs)
44 IF (lanafile.and.(tile.eq.0))
THEN
53 SUBROUTINE ana_sponge_tile (ng, tile, model, &
54 & LBi, UBi, LBj, UBj, &
55 & IminS, ImaxS, JminS, JmaxS)
73 integer,
intent(in) :: ng, tile, model
74 integer,
intent(in) :: LBi, UBi, LBj, UBj
75 integer,
intent(in) :: IminS, ImaxS, JminS, JmaxS
79 integer :: Iwrk, i, itrc, j
81 real(r8) :: cff, cff1, cff2, fac
83 real(r8) :: cff_t, cff_s, cff1_t, cff2_t, cff1_s, cff2_s
86#include "set_bounds.h"
99 DO j=jstrt,min(6,jendt)
101 mixing(ng) % visc2_r(i,j)=cff
102 mixing(ng) % visc2_p(i,j)=cff
104 DO j=max(jstrt,7),jendt
105 mixing(ng) % visc2_r(i,j)=0.0_r8
106 mixing(ng) % visc2_p(i,j)=0.0_r8
114 DO j=jstrt,min(6,jendt)
117 mixing(ng) % diff2(i,j,itrc)=cff
119 DO j=max(jstrt,7),jendt
120 mixing(ng) % diff2(i,j,itrc)=0.0_r8
142 DO j=jstrt,min(iwrk,jendt)
143 cff=cff1+real(iwrk-j,r8)*(cff2-cff1)/real(iwrk,r8)
145 mixing(ng)%visc2_r(i,j)=max(min(cff,cff2),cff1)
146 mixing(ng)%visc2_p(i,j)=max(min(cff,cff2),cff1)
152 DO j=max(jstrt,
mm(ng)+1-iwrk),jendt
153 cff=cff2-real(
mm(ng)+1-j,r8)*(cff2-cff1)/real(iwrk,r8)
155 mixing(ng) % visc2_r(i,j)=max(min(cff,cff2),cff1)
156 mixing(ng) % visc2_p(i,j)=max(min(cff,cff2),cff1)
162 DO i=istrt,min(iwrk,iendt)
163 DO j=max(jstrt,i),min(
mm(ng)+1-i,jendt)
164 cff=cff1+real(iwrk-i,r8)*(cff2-cff1)/real(iwrk,r8)
165 mixing(ng) % visc2_r(i,j)=max(min(cff,cff2),cff1)
166 mixing(ng) % visc2_p(i,j)=max(min(cff,cff2),cff1)
185 DO j=jstrt,min(iwrk,jendt)
186 cff_t=cff1_t+real(iwrk-j,r8)*(cff2_t-cff1_t)/real(iwrk,r8)
188 cff_s=cff1_s+real(iwrk-j,r8)*(cff2_s-cff1_s)/real(iwrk,r8)
191 mixing(ng) % diff2(i,j,
itemp)=max(min(cff_t,cff2_t),cff1_t)
193 mixing(ng) % diff2(i,j,
isalt)=max(min(cff_s,cff2_s),cff1_s)
200 DO j=max(jstrt,
mm(ng)+1-iwrk),jendt
201 cff_t=cff2_t-real(
mm(ng)+1-j,r8)*(cff2_t-cff1_t)/real(iwrk,r8)
203 cff_s=cff2_s-real(
mm(ng)+1-j,r8)*(cff2_s-cff1_s)/real(iwrk,r8)
206 mixing(ng) % diff2(i,j,
itemp)=max(min(cff_t,cff2_t),cff1_t)
208 mixing(ng) % diff2(i,j,
isalt)=max(min(cff_s,cff2_s),cff1_s)
215 DO i=istrt,min(iwrk,iendt)
216 DO j=max(jstrt,i),min(
mm(ng)+1-i,jendt)
217 cff_t=cff1_t+real(iwrk-i,r8)*(cff2_t-cff1_t)/real(iwrk,r8)
219 cff_s=cff1_s+real(iwrk-i,r8)*(cff2_s-cff1_s)/real(iwrk,r8)
221 mixing(ng) % diff2(i,j,
itemp)=max(min(cff_t,cff2_t),cff1_t)
223 mixing(ng) % diff2(i,j,
isalt)=max(min(cff_s,cff2_s),cff1_s)
240 & lbi, ubi, lbj, ubj, &
243 & lbi, ubi, lbj, ubj, &
251 & lbi, ubi, lbj, ubj, &
254 & lbi, ubi, lbj, ubj, &
264 & lbi, ubi, lbj, ubj, &
265 &
mixing(ng) % diff2(:,:,itrc))
274 & lbi, ubi, lbj, ubj, &
275 &
mixing(ng) % diff4(:,:,itrc))
285 & lbi, ubi, lbj, ubj, &
294 & lbi, ubi, lbj, ubj, &
304 & lbi, ubi, lbj, ubj, 1,
nt(ng), &
312 & lbi, ubi, lbj, ubj, 1,
nt(ng), &
subroutine mp_exchange2d(ng, tile, model, nvar, lbi, ubi, lbj, ubj, nghost, ew_periodic, ns_periodic, a, b, c, d)
subroutine mp_exchange3d(ng, tile, model, nvar, lbi, ubi, lbj, ubj, lbk, ubk, nghost, ew_periodic, ns_periodic, a, b, c, d)