106 INTEGER :: I, I1, I2, J, IC, N1, N2, N3
107 REAL(SP) :: DXN,DYN,DXC,DYC,CROSS
115 n1 =
nv(ic,1) ; n2 =
nv(ic,2) ; n3 =
nv(ic,3)
116 IF( n1-i2 == 0 .OR. n2-i2 == 0 .OR. n3-i2 == 0)
THEN 117 dxn =
vx(i2)-
vx(i1) ; dyn =
vy(i2)-
vy(i1)
118 dxc =
xc(ic)-
vx(i1) ; dyc =
yc(ic)-
vy(i1)
119 cross = sign(1.0_sp,dxc*dyn - dyc*dxn)
120 cxobc(ic) = cross*dyn/sqrt(dxn**2 +dyn**2)
121 cyobc(ic) = -cross*dxn/sqrt(dxn**2 +dyn**2)
129 n1 =
nv(ic,1) ; n2 =
nv(ic,2) ; n3 =
nv(ic,3)
130 IF( n1-i2 == 0 .OR. n2-i2 == 0 .OR. n3-i2 == 0)
THEN 131 dxn =
vx(i2)-
vx(i1) ; dyn =
vy(i2)-
vy(i1)
132 dxc =
xc(ic)-
vx(i1) ; dyc =
yc(ic)-
vy(i1)
133 cross = sign(1.0_sp,dxc*dyn - dyc*dxn)
134 cxobc(ic) = cross*dyn/sqrt(dxn**2 +dyn**2)
135 cyobc(ic) =-cross*dxn/sqrt(dxn**2 +dyn**2)
150 INTEGER,
INTENT(IN) :: KKT
151 INTEGER :: I,I1,N1,N2,N3,C1,C2
152 REAL(SP) :: E1_X,E1_Y,E2_X,E2_Y
153 REAL(SP) :: FLUXF_OBC_1,FLUXF_OBC_2
244 INTEGER :: I,II,I1,I2,J,J1,J2,ITMP,JTMP
245 REAL(DP) DX12,DY12,TMP1,DTMP
246 REAL(SP) :: FLUXF_OBC_1,FLUXF_OBC_2
253 IF(
nbe(ii,j) == 0)
THEN 259 print*,
'something is wrong here 2' 263 j1=jtmp+1-int((jtmp+1)/4)*3
264 j2=jtmp+2-int((jtmp+2)/4)*3
272 tmp1 =
uant(i) * dy12 -
vant(i) * dx12
287 INTEGER :: I,II,I1,I2,J,J1,J2,K,ITMP,JTMP
288 REAL(DP) DX12,DY12,TMP1,DTMP
289 REAL(SP) :: UTMP,VTMP
301 IF(
nbe(ii,j) == 0 .and.
isonb(
nv(ii,j)) /= 2)
THEN 307 print*,
'something is wrong here 3' 311 j1=jtmp+1-int((jtmp+1)/4)*3
312 j2=jtmp+2-int((jtmp+2)/4)*3
317 utmp = 0.0_sp ; vtmp = 0.0_sp
319 utmp = utmp +
unt(i,k)*
dz1(ii,k)
320 vtmp = vtmp +
vnt(i,k)*
dz1(ii,k)
336 IF(
nbe(ii,j) == 0)
THEN 341 j1=jtmp+1-int((jtmp+1)/4)*3
342 j2=jtmp+2-int((jtmp+2)/4)*3
351 tmp1 =
unt(i,k) * dy12 -
vnt(i,k) * dx12
371 INTEGER :: I,II,I1,I2,J,J1,J2,K,ITMP,JTMP
372 REAL(DP) DX12,DY12,TMP1,DTMP
373 REAL(SP) :: UTMP,VTMP
380 utmp = sum(
unt(i,1:kbm1)*
dz1(ii,1:kbm1))
381 vtmp = sum(
vnt(i,1:kbm1)*
dz1(ii,1:kbm1))
382 unt(i,1:kbm1) =
unt(i,1:kbm1) + (
uant(i) - utmp)
383 vnt(i,1:kbm1) =
vnt(i,1:kbm1) + (
vant(i) - vtmp)
392 IF(
nbe(ii,j) == 0)
THEN 397 j1=jtmp+1-int((jtmp+1)/4)*3
398 j2=jtmp+2-int((jtmp+2)/4)*3
407 tmp1 =
unt(i,k) * dy12 -
vnt(i,k) * dx12
real(sp), dimension(:), allocatable fluxobn2
real(sp), dimension(:), allocatable eltdt
real(sp), dimension(:), allocatable fluxobc2d_y
real(sp), dimension(:), allocatable, target h
integer, dimension(:,:), allocatable node_mfcell
integer, dimension(:), allocatable i_mfcell_n
subroutine alloc_obc3_data
integer, dimension(:,:), allocatable adjn_obc
integer, dimension(:), allocatable nadjn_obc
real(sp), dimension(:), allocatable, target yc
integer, dimension(:), allocatable i_obc_node
real(sp), dimension(:), allocatable obc2d_x_tide
real(sp), dimension(:), allocatable elt
real(sp), dimension(:,:), allocatable vnt
real(sp), dimension(:), allocatable, target vx
real(sp), dimension(:,:), allocatable fluxobc3d_y
real(sp), dimension(:), allocatable cxobc
real(sp), dimension(:,:), allocatable fluxobc3d_x_2
real(sp), dimension(:), allocatable cyobc
real(sp), dimension(:), allocatable, target vy
integer, dimension(:), allocatable, target ntve
integer, dimension(:,:), allocatable, target nbe
subroutine flux_obn2d(KKT)
integer, dimension(:,:), allocatable, target nv
real(sp), dimension(:), allocatable uant
real(sp), dimension(:,:), allocatable unt
real(sp), dimension(:), allocatable vant
real(sp), dimension(:), allocatable fluxobc2d_x
integer, dimension(:,:), allocatable, target nbve
integer, dimension(:), allocatable i_obc_node2
real(sp), dimension(:), allocatable, target xc
real(sp), dimension(:,:), allocatable, target dz1
real(sp), dimension(:), allocatable mfqdis
real(sp), dimension(:), allocatable obc2d_y_tide
real(sp), dimension(:,:), allocatable fluxobc3d_x
real(sp), dimension(:,:), allocatable fluxobc3d_y_2
real(sp), dimension(:,:), allocatable rdismf
integer, dimension(:), allocatable, target isonb