58 REAL(SP),
INTENT(OUT),
DIMENSION(0:NT,KB) :: XFLUX,YFLUX
60 REAL(SP) :: COFA1,COFA2,COFA3,COFA4,COFA5,COFA6,COFA7,COFA8
61 REAL(SP) :: XADV,YADV,TXXIJ,TYYIJ,TXYIJ,UN_TMP
62 REAL(SP) :: VISCOF,VISCOF1,VISCOF2,TEMP,TPA,TPB
63 REAL(SP) :: XIJA,YIJA,XIJB,YIJB,UIJ,VIJ
65 INTEGER :: I,IA,IB,J1,J2,K1,K2,K3,K4,K5,K6,K,II,J,I1,I2
69 REAL(SP) :: A1UIA1,A1UIA2,A1UIA3,A1UIA4,A2UIA1,A2UIA2,A2UIA3,A2UIA4
70 REAL(SP) :: A1UIB1,A1UIB2,A1UIB3,A1UIB4,A2UIB1,A2UIB2,A2UIB3,A2UIB4
71 INTEGER :: J11,J12,J21,J22,E1,E2,ISBCE1,ISBC_TMP,IB_TMP
75 REAL(SP) :: UIJ1,VIJ1,UIJ2,VIJ2,FXX,FYY
80 SELECT CASE(horizontal_mixing_type)
89 & trim(horizontal_mixing_type) )
145 dij= 0.5_sp*(
dt(j1)*
dz(j1,k)+
dt(j2)*
dz(j2,k))
156 a1uib1 =
a1u(ib_tmp,1)
157 a1uib2 =
a1u(ib_tmp,2)
158 a1uib3 =
a1u(ib_tmp,3)
159 a1uib4 =
a1u(ib_tmp,4)
160 a2uib1 =
a2u(ib_tmp,1)
161 a2uib2 =
a2u(ib_tmp,2)
162 a2uib3 =
a2u(ib_tmp,3)
163 a2uib4 =
a2u(ib_tmp,4)
166 cofa1=a1uia1*
u(ia,k)+a1uia2*
u(k1,k)+a1uia3*
u(k2,k)+a1uia4*
u(k3,k)
167 cofa2=a2uia1*
u(ia,k)+a2uia2*
u(k1,k)+a2uia3*
u(k2,k)+a2uia4*
u(k3,k)
168 cofa5=a1uia1*
v(ia,k)+a1uia2*
v(k1,k)+a1uia3*
v(k2,k)+a1uia4*
v(k3,k)
169 cofa6=a2uia1*
v(ia,k)+a2uia2*
v(k1,k)+a2uia3*
v(k2,k)+a2uia4*
v(k3,k)
174 uij1=
u(ia,k)+cofa1*xija+cofa2*yija
175 vij1=
v(ia,k)+cofa5*xija+cofa6*yija
178 cofa3=a1uib1*
u(ib_tmp,k)+a1uib2*
u(k4,k)+a1uib3*
u(k5,k)+a1uib4*
u(k6,k)
179 cofa4=a2uib1*
u(ib_tmp,k)+a2uib2*
u(k4,k)+a2uib3*
u(k5,k)+a2uib4*
u(k6,k)
180 cofa7=a1uib1*
v(ib_tmp,k)+a1uib2*
v(k4,k)+a1uib3*
v(k5,k)+a1uib4*
v(k6,k)
181 cofa8=a2uib1*
v(ib_tmp,k)+a2uib2*
v(k4,k)+a2uib3*
v(k5,k)+a2uib4*
v(k6,k)
186 uij2=
u(ib_tmp,k)+cofa3*xijb+cofa4*yijb
187 vij2=
v(ib_tmp,k)+cofa7*xijb+cofa8*yijb
190 uij=0.5_sp*(uij1+uij2)
191 vij=0.5_sp*(vij1+vij2)
194 viscof1=
art(ia)*sqrt(cofa1**2+cofa6**2+0.5_sp*(cofa2+cofa5)**2)
195 viscof2=
art(ib_tmp)*sqrt(cofa3**2+cofa8**2+0.5_sp*(cofa4+cofa7)**2)
202 txxij=(cofa1+cofa3)*viscof
203 tyyij=(cofa6+cofa8)*viscof
204 txyij=0.5_sp*(cofa2+cofa4+cofa5+cofa7)*viscof
209 xadv=dij*un_tmp*((1.0_sp-sign(1.0_sp,un_tmp))*uij2+(1.0_sp+sign(1.0_sp,un_tmp))*uij1)*0.5_sp
210 yadv=dij*un_tmp*((1.0_sp-sign(1.0_sp,un_tmp))*vij2+(1.0_sp+sign(1.0_sp,un_tmp))*vij1)*0.5_sp
216 tpa = float(1-isbc_tmp)*
epor(ia)
217 tpb = float(1-isbc_tmp)*
epor(ib_tmp)
224 xflux(ia,k)=xflux(ia,k)+xadv*tpa+(fxx+3.0_sp*fxx*float(isbc_tmp))*
epor(ia)
225 yflux(ia,k)=yflux(ia,k)+yadv*tpa+(fyy+3.0_sp*fyy*float(isbc_tmp))*
epor(ia)
226 xflux(ib,k)=xflux(ib,k)-xadv*tpb-(fxx+3.0_sp*fxx*float(isbc_tmp))*
epor(ib)
227 yflux(ib,k)=yflux(ib,k)-yadv*tpb-(fyy+3.0_sp*fyy*float(isbc_tmp))*
epor(ib)
244 xflux(i,k) = xflux(i,k)*iswettmp
245 yflux(i,k) = yflux(i,k)*iswettmp
254 IF(
isbce(i) == 2)
THEN 267 IF(river_inflow_location ==
'node')
THEN 280 xflux(i1,k)=xflux(i1,k)-temp*cos(
angleq(ii))
281 xflux(i2,k)=xflux(i2,k)-temp*cos(
angleq(ii))
282 yflux(i1,k)=yflux(i1,k)-temp*sin(
angleq(ii))
283 yflux(i2,k)=yflux(i2,k)-temp*sin(
angleq(ii))
286 ELSE IF(river_inflow_location ==
'edge')
THEN 295 xflux(i1,k)=xflux(i1,k)-temp*cos(
angleq(ii))
296 yflux(i1,k)=yflux(i1,k)-temp*sin(
angleq(ii))
integer, dimension(:,:), allocatable, target ienode
real(sp), dimension(:), allocatable, target epor
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 dltxc
real(sp), dimension(:,:), allocatable, target a1u
integer, dimension(:), allocatable iswetct
real(sp), dimension(:,:), allocatable, target u
integer, dimension(:), allocatable, target isbc
real(sp), dimension(:), allocatable, target angleq
integer, dimension(:,:), allocatable, target iec
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 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
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