58 REAL(SP),
DIMENSION(0:MT,KB) :: Q,QF,XFLUX
59 REAL(SP),
DIMENSION(0:MT) :: PUPX,PUPY,PVPX,PVPY
60 REAL(SP),
DIMENSION(0:MT) :: PQPX,PQPY,PQPXD,PQPYD,VISCOFF
61 REAL(SP),
DIMENSION(3*(NT),KBM1) :: DTIJ
62 REAL(SP),
DIMENSION(3*(NT),KBM1) :: UVN
63 REAL(SP) :: UTMP,VTMP,SITAI,FFD,FF1
64 REAL(SP) :: DXA,DYA,DXB,DYB,FIJ1,FIJ2,UN
65 REAL(SP) :: TXX,TYY,FXX,FYY,VISCOF,EXFLUX,TEMP,STPOINT
67 INTEGER :: I,I1,I2,IA,IB,J,J1,J2,K,JTMP,JJ,II
68 REAL(SP) :: Q1MIN, Q1MAX, Q2MIN, Q2MAX
80 REAL(SP),
DIMENSION(0:NT,KB) :: UQ,VQ
82 REAL(SP),
ALLOCATABLE :: UQ1(:,:),VQ1(:,:)
94 SELECT CASE(horizontal_mixing_type)
102 CALL fatal_error(
"UNKNOW HORIZONTAL MIXING TYPE:",&
103 & trim(horizontal_mixing_type) )
119 uq(i,k) = (
u(i,k)*
dz1(i,k-1)+
u(i,k-1)*
dz1(i,k))/(
dz1(i,k)+
dz1(i,k-1))
120 vq(i,k) = (
v(i,k)*
dz1(i,k-1)+
v(i,k-1)*
dz1(i,k))/(
dz1(i,k)+
dz1(i,k-1))
132 uvn(i,k) = vq(i1,k)*
dltxe(i) - uq(i1,k)*
dltye(i)
153 ffd=0.5_sp*(q(i1,k)+q(i2,k)-qmean1-qmean1)
154 ff1=0.5_sp*(q(i1,k)+q(i2,k))
212 pqpx(i)=pqpx(i)/
art2(i)
213 pqpy(i)=pqpy(i)/
art2(i)
214 pqpxd(i)=pqpxd(i)/
art2(i)
215 pqpyd(i)=pqpyd(i)/
art2(i)
271 q1min=minval(q(
nbsn(ia,1:
ntsn(ia)-1),k))
272 q1min=min(q1min, q(ia,k))
273 q1max=maxval(q(
nbsn(ia,1:
ntsn(ia)-1),k))
274 q1max=max(q1max, q(ia,k))
275 q2min=minval(q(
nbsn(ib,1:
ntsn(ib)-1),k))
276 q2min=min(q2min, q(ib,k))
277 q2max=maxval(q(
nbsn(ib,1:
ntsn(ib)-1),k))
278 q2max=max(q2max, q(ib,k))
279 IF(fij1 < q1min) fij1=q1min
280 IF(fij1 > q1max) fij1=q1max
281 IF(fij2 < q2min) fij2=q2min
282 IF(fij2 > q2max) fij2=q2max
292 txx=0.5_sp*(pqpxd(ia)+pqpxd(ib))*viscof
293 tyy=0.5_sp*(pqpyd(ia)+pqpyd(ib))*viscof
295 fxx=-dtij(i,k)*txx*
dltye(i)
296 fyy= dtij(i,k)*tyy*
dltxe(i)
299 exflux=-un*dtij(i,k)* &
300 ((1.0_sp+sign(1.0_sp,un))*fij2+(1.0_sp-sign(1.0_sp,un))*fij1)*0.5_sp+fxx+fyy
302 xflux(ia,k)=xflux(ia,k)+exflux
303 xflux(ib,k)=xflux(ib,k)-exflux
321 temp=
wts(i,k-1)*q(i,k-1)-
wts(i,k+1)*q(i,k+1)
322 xflux(i,k)=xflux(i,k)+temp*
art1(i)*
dzz(i,k-1)/(
dz(i,k-1)+
dz(i,k))
334 qf(i,k)=(q(i,k)-xflux(i,k)/
art1(i)*(dti/(
dt(i)*
dzz(i,k-1))))*(
dt(i)/
d(i))
integer, dimension(:), allocatable, target ntsn
real(sp), dimension(:), allocatable, target d
real(sp), dimension(:,:), allocatable, target viscofh
real(sp), dimension(:,:), allocatable, target v
logical function dbg_set(vrb)
real(sp), dimension(:,:), allocatable, target dltxncve
real(sp), dimension(:), allocatable, target art1
real(sp), dimension(:,:), allocatable, target dzz1
real(sp), dimension(:,:), allocatable, target dltytrie
real(sp), dimension(:,:), allocatable, target dltyncve
real(sp), dimension(:), allocatable, target art2
integer, dimension(:), allocatable, target ntrg
real(sp), dimension(:,:), allocatable, target u
integer, dimension(:,:), allocatable, target niec
real(sp), dimension(:), allocatable, target dltye
real(sp), dimension(:), allocatable nn_hvc
real(sp), dimension(:,:), allocatable, target dzz
real(sp), dimension(:,:), allocatable, target dz
integer, dimension(:), allocatable iswetnt
real(sp), dimension(:,:), allocatable, target dltxtrie
real(sp), dimension(:), allocatable, target dt1
subroutine fatal_error(ER1, ER2, ER3, ER4)
real(sp), dimension(:,:), allocatable, target dz1
integer, dimension(:,:), allocatable, target nbsn
real(sp), dimension(:,:), allocatable, target wts
real(sp), dimension(:), allocatable, target dltxe
integer, parameter dbg_sbr
real(sp), dimension(:), allocatable, target dt
integer, dimension(:), allocatable iswetn