59 INTEGER :: I,J,K,IA,IB,J1,J2,K1,K2,K3,I1,I2,II
60 REAL(SP) :: DIJ,ELIJ,XIJ,YIJ,UIJ,VIJ
61 REAL(SP) :: COFA1,COFA2,COFA3,COFA4,COFA5,COFA6,COFA7,COFA8
62 REAL(SP) :: XADV,YADV,TXXIJ,TYYIJ,TXYIJ,UN_TMP
63 REAL(SP) :: VISCOF,VISCOF1,VISCOF2,TEMP
64 REAL(SP) :: XFLUX(0:NT),YFLUX(0:NT)
65 REAL(SP) :: FACT,FM1,ISWETTMP
70 REAL(SP) :: UIJ1,VIJ1,UIJ2,VIJ2,FXX,FYY
73 REAL(SP) :: A1UIA1,A1UIA2,A1UIA3,A1UIA4,A2UIA1,A2UIA2,A2UIA3,A2UIA4
74 REAL(SP) :: A1UIB1,A1UIB2,A1UIB3,A1UIB4,A2UIB1,A2UIB2,A2UIB3,A2UIB4
75 INTEGER :: J11,J12,J21,J22,E1,E2,ISBCE1,ISBC_TMP,IB_TMP
80 REAL(SP) :: U_TMP,V_TMP,UAC_TMP,VAC_TMP,WUSURF_TMP,WVSURF_TMP,WUBOT_TMP,WVBOT_TMP,UAF_TMP,VAF_TMP
86 SELECT CASE(horizontal_mixing_type)
95 & trim(horizontal_mixing_type) )
118 dij=0.5_sp*(
d(j1)+
d(j2))
119 elij=0.5_sp*(
el(j1)+
el(j2))
139 cofa1=a1uia1*
ua(ia)+a1uia2*
ua(k1)+a1uia3*
ua(k2)+a1uia4*
ua(k3)
140 cofa2=a2uia1*
ua(ia)+a2uia2*
ua(k1)+a2uia3*
ua(k2)+a2uia4*
ua(k3)
141 cofa5=a1uia1*
va(ia)+a1uia2*
va(k1)+a1uia3*
va(k2)+a1uia4*
va(k3)
142 cofa6=a2uia1*
va(ia)+a2uia2*
va(k1)+a2uia3*
va(k2)+a2uia4*
va(k3)
151 uij1=
ua(ia)+cofa1*xij+cofa2*yij
152 vij1=
va(ia)+cofa5*xij+cofa6*yij
160 a1uib1 =
a1u(ib_tmp,1)
161 a1uib2 =
a1u(ib_tmp,2)
162 a1uib3 =
a1u(ib_tmp,3)
163 a1uib4 =
a1u(ib_tmp,4)
164 a2uib1 =
a2u(ib_tmp,1)
165 a2uib2 =
a2u(ib_tmp,2)
166 a2uib3 =
a2u(ib_tmp,3)
167 a2uib4 =
a2u(ib_tmp,4)
169 cofa3=a1uib1*
ua(ib_tmp)+a1uib2*
ua(k1)+a1uib3*
ua(k2)+a1uib4*
ua(k3)
170 cofa4=a2uib1*
ua(ib_tmp)+a2uib2*
ua(k1)+a2uib3*
ua(k2)+a2uib4*
ua(k3)
171 cofa7=a1uib1*
va(ib_tmp)+a1uib2*
va(k1)+a1uib3*
va(k2)+a1uib4*
va(k3)
172 cofa8=a2uib1*
va(ib_tmp)+a2uib2*
va(k1)+a2uib3*
va(k2)+a2uib4*
va(k3)
181 uij2=
ua(ib_tmp)+cofa3*xij+cofa4*yij
182 vij2=
va(ib_tmp)+cofa7*xij+cofa8*yij
185 uij=0.5_sp*(uij1+uij2)
186 vij=0.5_sp*(vij1+vij2)
190 viscof1=
art(ia)*sqrt(cofa1**2+cofa6**2+0.5_sp*(cofa2+cofa5)**2)
191 viscof2=
art(ib_tmp)*sqrt(cofa3**2+cofa8**2+0.5_sp*(cofa4+cofa7)**2)
198 txxij=(cofa1+cofa3)*viscof
199 tyyij=(cofa6+cofa8)*viscof
200 txyij=0.5_sp*(cofa2+cofa4+cofa5+cofa7)*viscof
206 ((1.0_sp-sign(1.0_sp,un_tmp))*uij2+(1.0_sp+sign(1.0_sp,un_tmp))*uij1)*0.5_sp
208 ((1.0_sp-sign(1.0_sp,un_tmp))*vij2+(1.0_sp+sign(1.0_sp,un_tmp))*vij1)*0.5_sp
212 xflux(ia)=xflux(ia)+(xadv+fxx*
epor(ia))*(1.0_sp-isbc_tmp)*
iucp(ia)
213 yflux(ia)=yflux(ia)+(yadv+fyy*
epor(ia))*(1.0_sp-isbc_tmp)*
iucp(ia)
214 xflux(ib)=xflux(ib)-(xadv+fxx*
epor(ib))*(1.0_sp-isbc_tmp)*
iucp(ib)
215 yflux(ib)=yflux(ib)-(yadv+fyy*
epor(ib))*(1.0_sp-isbc_tmp)*
iucp(ib)
234 xflux(i) = xflux(i)*iswettmp
235 yflux(i) = yflux(i)*iswettmp
245 IF(
isbce(i) == 2)
THEN 254 IF(river_inflow_location ==
'node')
THEN 265 ELSE IF(river_inflow_location ==
'edge')
THEN 270 xflux(i1)=xflux(i1)-temp*cos(
angleq(k))
271 yflux(i1)=yflux(i1)-temp*sin(
angleq(k))
integer, dimension(:,:), allocatable, target ienode
real(sp), dimension(:), allocatable, target epor
real(sp), dimension(:), allocatable, target va
real(sp), dimension(:), allocatable, target d
real(sp), dimension(:), allocatable, target d1
integer, dimension(:), allocatable iswetce
real(sp), dimension(:), allocatable, target psty
real(sp), dimension(:), allocatable, target art
real(sp), dimension(:), allocatable, target el
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 iucp
real(sp), dimension(:), allocatable, target dltxc
real(sp), dimension(:,:), allocatable, target a1u
integer, dimension(:), allocatable, target isbc
real(sp), dimension(:), allocatable, target angleq
integer, dimension(:,:), allocatable, target iec
real(sp), dimension(:), allocatable, target pstx
real(sp), dimension(:), allocatable, target grav_e
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 ua
real(sp), dimension(:), allocatable fluxobn
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
integer, dimension(:), allocatable, target isbce
subroutine advave_edge_gcn(XFLUX, YFLUX)
real(sp), dimension(:), allocatable, target vlctyq
integer, parameter dbg_sbr
integer, dimension(:), allocatable, target inodeq