61 REAL(SP) :: XFLUX(0:NT,KB),YFLUX(0:NT,KB)
62 REAL(SP) :: PSTX_TM(0:NT,KB),PSTY_TM(0:NT,KB)
63 REAL(SP) :: COFA1,COFA2,COFA3,COFA4,COFA5,COFA6,COFA7,COFA8
64 REAL(SP) :: XADV,YADV,TXXIJ,TYYIJ,TXYIJ,UN
65 REAL(SP) :: VISCOF,VISCOF1,VISCOF2,TEMP,TPA,TPB
66 REAL(SP) :: XIJA,YIJA,XIJB,YIJB,UIJ,VIJ
67 REAL(SP) :: DIJ,ELIJ,TMPA,TMPB,TMP,XFLUXV,YFLUXV
68 REAL(SP) :: FACT,FM1,EXFLUX,ISWETTMP
69 INTEGER :: I,IA,IB,J1,J2,K1,K2,K3,K4,K5,K6,K,II,J,I1,I2
72 REAL(SP) :: UIJ1,VIJ1,UIJ2,VIJ2,FXX,FYY
73 REAL(SP) :: UK1(KB),UK2(KB),UK3(KB),UK4(KB),UK5(KB),UK6(KB), &
74 VK1(KB),VK2(KB),VK3(KB),VK4(KB),VK5(KB),VK6(KB)
80 SELECT CASE(horizontal_mixing_type)
89 & trim(horizontal_mixing_type) )
113 elij=0.5_sp*(
egf(j1)+
egf(j2))
141 IF(k1 == 0)
CALL ghostuv3(ia,1,uk1,vk1)
142 IF(k2 == 0)
CALL ghostuv3(ia,2,uk2,vk2)
143 IF(k3 == 0)
CALL ghostuv3(ia,3,uk3,vk3)
144 IF(k4 == 0)
CALL ghostuv3(ib,1,uk4,vk4)
145 IF(k5 == 0)
CALL ghostuv3(ib,2,uk5,vk5)
146 IF(k6 == 0)
CALL ghostuv3(ib,3,uk6,vk6)
149 dij=0.5_sp*(
dt(j1)*
dz(j1,k)+
dt(j2)*
dz(j2,k))
152 cofa1=
a1u(ia,1)*
u(ia,k)+
a1u(ia,2)*uk1(k)+
a1u(ia,3)*uk2(k)+
a1u(ia,4)*uk3(k)
153 cofa2=
a2u(ia,1)*
u(ia,k)+
a2u(ia,2)*uk1(k)+
a2u(ia,3)*uk2(k)+
a2u(ia,4)*uk3(k)
154 cofa5=
a1u(ia,1)*
v(ia,k)+
a1u(ia,2)*vk1(k)+
a1u(ia,3)*vk2(k)+
a1u(ia,4)*vk3(k)
155 cofa6=
a2u(ia,1)*
v(ia,k)+
a2u(ia,2)*vk1(k)+
a2u(ia,3)*vk2(k)+
a2u(ia,4)*vk3(k)
161 uij1=
u(ia,k)+cofa1*xija+cofa2*yija
162 vij1=
v(ia,k)+cofa5*xija+cofa6*yija
164 cofa3=
a1u(ib,1)*
u(ib,k)+
a1u(ib,2)*uk4(k)+
a1u(ib,3)*uk5(k)+
a1u(ib,4)*uk6(k)
165 cofa4=
a2u(ib,1)*
u(ib,k)+
a2u(ib,2)*uk4(k)+
a2u(ib,3)*uk5(k)+
a2u(ib,4)*uk6(k)
166 cofa7=
a1u(ib,1)*
v(ib,k)+
a1u(ib,2)*vk4(k)+
a1u(ib,3)*vk5(k)+
a1u(ib,4)*vk6(k)
167 cofa8=
a2u(ib,1)*
v(ib,k)+
a2u(ib,2)*vk4(k)+
a2u(ib,3)*vk5(k)+
a2u(ib,4)*vk6(k)
173 uij2=
u(ib,k)+cofa3*xijb+cofa4*yijb
174 vij2=
v(ib,k)+cofa7*xijb+cofa8*yijb
176 uij=0.5_sp*(uij1+uij2)
177 vij=0.5_sp*(vij1+vij2)
185 viscof1=
art(ia)*sqrt(cofa1**2+cofa6**2+0.5_sp*(cofa2+cofa5)**2)
186 viscof2=
art(ib)*sqrt(cofa3**2+cofa8**2+0.5_sp*(cofa4+cofa7)**2)
196 txxij=(cofa1+cofa3)*viscof
197 tyyij=(cofa6+cofa8)*viscof
198 txyij=0.5_sp*(cofa2+cofa4+cofa5+cofa7)*viscof
203 xadv=exflux*((1.0_sp-sign(1.0_sp,exflux))*uij2+(1.0_sp+sign(1.0_sp,exflux))*uij1)*0.5_sp
204 yadv=exflux*((1.0_sp-sign(1.0_sp,exflux))*vij2+(1.0_sp+sign(1.0_sp,exflux))*vij1)*0.5_sp
212 xflux(ia,k)=xflux(ia,k)+xadv*tpa+fxx*tpa
213 yflux(ia,k)=yflux(ia,k)+yadv*tpa+fyy*tpa
214 xflux(ib,k)=xflux(ib,k)-xadv*tpb-fxx*tpb
215 yflux(ib,k)=yflux(ib,k)-yadv*tpb-fyy*tpb
235 xflux(i,k) = xflux(i,k)*iswettmp
236 yflux(i,k) = yflux(i,k)*iswettmp
237 pstx_tm(i,k)= pstx_tm(i,k)*iswettmp
238 psty_tm(i,k)= psty_tm(i,k)*iswettmp
241 xflux(i,k)=xflux(i,k)+pstx_tm(i,k)
242 yflux(i,k)=yflux(i,k)+psty_tm(i,k)
256 xfluxv=-
w(i,k+1)*(
u(i,k)*
dz1(i,k+1)+
u(i,k+1)*
dz1(i,k))/&
258 yfluxv=-
w(i,k+1)*(
v(i,k)*
dz1(i,k+1)+
v(i,k+1)*
dz1(i,k))/&
260 ELSE IF(k == kbm1)
THEN 261 xfluxv=
w(i,k)*(
u(i,k)*
dz1(i,k-1)+
u(i,k-1)*
dz1(i,k))/&
263 yfluxv=
w(i,k)*(
v(i,k)*
dz1(i,k-1)+
v(i,k-1)*
dz1(i,k))/&
266 xfluxv=
w(i,k)*(
u(i,k)*
dz1(i,k-1)+
u(i,k-1)*
dz1(i,k))/&
268 w(i,k+1)*(
u(i,k)*
dz1(i,k+1)+
u(i,k+1)*
dz1(i,k))/&
270 yfluxv=
w(i,k)*(
v(i,k)*
dz1(i,k-1)+
v(i,k-1)*
dz1(i,k))/&
272 w(i,k+1)*(
v(i,k)*
dz1(i,k+1)+
v(i,k+1)*
dz1(i,k))/&
279 xflux(i,k)=xflux(i,k)+xfluxv*
art(i)&
281 yflux(i,k)=yflux(i,k)+yfluxv*
art(i)&
291 IF(
isbce(i) == 2)
THEN 302 IF(river_inflow_location ==
'node')
THEN 315 xflux(i1,k)=xflux(i1,k)-temp*cos(
angleq(ii))
316 xflux(i2,k)=xflux(i2,k)-temp*cos(
angleq(ii))
317 yflux(i1,k)=yflux(i1,k)-temp*sin(
angleq(ii))
318 yflux(i2,k)=yflux(i2,k)-temp*sin(
angleq(ii))
321 ELSE IF(river_inflow_location ==
'edge')
THEN 330 xflux(i1,k)=xflux(i1,k)-temp*cos(
angleq(ii))
331 yflux(i1,k)=yflux(i1,k)-temp*sin(
angleq(ii))
335 print*,
'RIVER_INFLOW_LOCATION NOT CORRECT' integer, dimension(:,:), allocatable, target ienode
real(sp), dimension(:), allocatable, target epor
real(sp), dimension(:), allocatable, target cor
real(sp), dimension(:), allocatable, target d1
real(sp), dimension(:), allocatable, target art
real(sp), dimension(:,:), allocatable, target v
real(sp), dimension(:,:), allocatable, target vqdist
logical function dbg_set(vrb)
real(sp), dimension(:), allocatable, target qdis
real(sp), dimension(:), allocatable, target yc
real(sp), dimension(:), allocatable cc_hvc
real(sp), dimension(:,:), allocatable, target w
real(sp), dimension(:), allocatable, target dltxc
real(sp), dimension(:), allocatable, target egf
subroutine ghostuv3(I, JJ, UAKK, VAKK)
real(sp), dimension(:,:), allocatable, target a1u
integer, dimension(:), allocatable iswetct
real(sp), dimension(:,:), allocatable, target vf
real(sp), dimension(:,:), allocatable, target viscofm
real(sp), dimension(:,:), allocatable, target u
integer, dimension(:), allocatable, target isbc
real(sp), dimension(:), allocatable, target angleq
integer, dimension(:,:), allocatable, target iec
real(sp), dimension(:,:), allocatable, target drhox
real(sp), dimension(:,:), allocatable, target vbeta
real(sp), dimension(:), allocatable, target grav_e
real(sp), dimension(:,:), allocatable, target uf
real(sp), dimension(:,:), allocatable, target ubeta
integer, dimension(:), allocatable, target ntve
integer, dimension(:,:), allocatable, target nbe
real(sp), dimension(:), allocatable, target xijc
real(sp), dimension(:), allocatable, target qarea
real(sp), dimension(:,:), allocatable, target drhoy
real(sp), dimension(:), allocatable, target dltyc
real(sp), dimension(:,:), allocatable, target dz
integer, dimension(:), allocatable, target icellq
real(sp), dimension(:), allocatable, target yijc
real(sp), dimension(:,:), allocatable, target a2u
integer, dimension(:), allocatable iswetc
integer, dimension(:,:), allocatable, target nbve
real(sp), dimension(:), allocatable, target dt1
subroutine fatal_error(ER1, ER2, ER3, ER4)
real(sp), dimension(:), allocatable, target xc
real(sp), dimension(:,:), allocatable, target dz1
integer, dimension(:), allocatable, target isbce
real(sp), dimension(:), allocatable, target vlctyq
integer, parameter dbg_sbr
integer, dimension(:), allocatable, target inodeq
real(sp), dimension(:), allocatable, target dt