Skip to content

Commit

Permalink
LIMITATION
Browse files Browse the repository at this point in the history
  • Loading branch information
SiqiLiOcean committed Mar 28, 2024
1 parent d6a82ed commit e5cc25b
Show file tree
Hide file tree
Showing 5 changed files with 61 additions and 12 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# FVCOM 4.4.6
# FVCOM 4.4.7

http://fvcom.smast.umassd.edu/

Expand Down
33 changes: 29 additions & 4 deletions src/adv_uv_edge_gcn.F
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ SUBROUTINE ADV_UV_EDGE_GCN
REAL(SP) :: UALFA_TMP,VALFA_TMP
INTEGER :: ERROR
REAL(SP) :: EPS
REAL(SP) :: XAB, YAB ! Lu Wang, LIMITATION@20240328
# endif

# if defined (NH) || defined (LIMITER_VER_ADV)
Expand Down Expand Up @@ -171,6 +172,17 @@ SUBROUTINE ADV_UV_EDGE_GCN
YIJA=DLTYNE(I,1)
XIJB=DLTXNE(I,2)
YIJB=DLTYNE(I,2)
!----> Lu Wang, LIMITATION@20240328
XTMP = XC(IA)*TPI - XC(IB)*TPI
XTMP1 = XC(IA) - XC(IB)
IF(XTMP1 > 180.0_SP)THEN
XTMP = -360.0_SP*TPI+XTMP
ELSE IF(XTMP1 < -180.0_SP)THEN
XTMP = 360.0_SP*TPI+XTMP
END IF
XAB = XTMP * COS(DEG2RAD * (YC(IA)+YC(IB))*0.5_SP)
YAB = (YC(IA) - YC(IB)) * TPI
!<----
# if defined (THIN_DAM)
IF(IB==0.AND.E_DAM_MATCH(IA)/=0.AND.K<=KDAM1(IA))XIJB=DLTXNE_DAM_MATCH(I)
IF(IB==0.AND.E_DAM_MATCH(IA)/=0.AND.K<=KDAM1(IA))YIJB=DLTYNE_DAM_MATCH(I)
Expand All @@ -180,6 +192,10 @@ SUBROUTINE ADV_UV_EDGE_GCN
YIJA=YIJC(I)-YC(IA)
XIJB=XIJC(I)-XC(IB)
YIJB=YIJC(I)-YC(IB)
!----> Lu Wang, LIMITATION@20240328
XAB = XC(IA) - XC(IB)
YAB = YC(IA) - YC(IB)
!<----
# if defined (THIN_DAM)
IF(IB==0.AND.E_DAM_MATCH(IA)/=0.AND.K<=KDAM1(IA))XIJB=XIJC(I)-XC(E_DAM_MATCH(IA))
IF(IB==0.AND.E_DAM_MATCH(IA)/=0.AND.K<=KDAM1(IA))YIJB=YIJC(I)-YC(E_DAM_MATCH(IA))
Expand Down Expand Up @@ -278,8 +294,12 @@ SUBROUTINE ADV_UV_EDGE_GCN

UIJ1(I)=COFA1*XIJA+COFA2*YIJA
VIJ1(I)=COFA5*XIJA+COFA6*YIJA
UALFA_TMP=ABS(U(IA,K)-U(IB_TMP,K))/ABS(UIJ1(I)+EPSILON(EPS))
VALFA_TMP=ABS(V(IA,K)-V(IB_TMP,K))/ABS(VIJ1(I)+EPSILON(EPS))
!----> Lu Wang, LIMITATION@20240328
! UALFA_TMP=ABS(U(IA,K)-U(IB_TMP,K))/ABS(UIJ1(I)+EPSILON(EPS))
! VALFA_TMP=ABS(V(IA,K)-V(IB_TMP,K))/ABS(VIJ1(I)+EPSILON(EPS))
UALFA_TMP=ABS(U(IA,K)-U(IB_TMP,K))/ABS(COFA1*XAB + COFA2*YAB + EPSILON(EPS))
VALFA_TMP=ABS(V(IA,K)-V(IB_TMP,K))/ABS(COFA5*XAB + COFA6*YAB + EPSILON(EPS))
!<----
IF(UALFA_TMP > 1)UALFA_TMP = 1.0_SP
IF(VALFA_TMP > 1)VALFA_TMP = 1.0_SP
UALFA(IA)=MIN(UALFA(IA),UALFA_TMP)
Expand All @@ -294,10 +314,15 @@ SUBROUTINE ADV_UV_EDGE_GCN
! COFA7=A1U(IB,1)*V(IB,K)+A1U(IB,2)*V(K4,K)+A1U(IB,3)*V(K5,K)+A1U(IB,4)*V(K6,K)
! COFA8=A2U(IB,1)*V(IB,K)+A2U(IB,2)*V(K4,K)+A2U(IB,3)*V(K5,K)+A2U(IB,4)*V(K6,K)


UIJ2(I)=COFA3*XIJB+COFA4*YIJB
VIJ2(I)=COFA7*XIJB+COFA8*YIJB
UALFA_TMP=ABS(U(IA,K)-U(IB_TMP,K))/ABS(UIJ2(I)+EPSILON(EPS))
VALFA_TMP=ABS(V(IA,K)-V(IB_TMP,K))/ABS(VIJ2(I)+EPSILON(EPS))
!----> Lu Wang, LIMITATION@20240328
! UALFA_TMP=ABS(U(IA,K)-U(IB_TMP,K))/ABS(UIJ2(I)+EPSILON(EPS))
! VALFA_TMP=ABS(V(IA,K)-V(IB_TMP,K))/ABS(VIJ2(I)+EPSILON(EPS))
UALFA_TMP=ABS(U(IA,K)-U(IB_TMP,K))/ABS(COFA3*XAB + COFA4*YAB + EPSILON(EPS))
VALFA_TMP=ABS(V(IA,K)-V(IB_TMP,K))/ABS(COFA7*XAB + COFA8*YAB + EPSILON(EPS))
!<----
IF(UALFA_TMP > 1)UALFA_TMP = 1.0_SP
IF(VALFA_TMP > 1)VALFA_TMP = 1.0_SP
UALFA(IB_TMP)=MIN(UALFA(IB_TMP),UALFA_TMP)
Expand Down
32 changes: 28 additions & 4 deletions src/adv_uv_edge_gcy.F
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ SUBROUTINE ADV_UV_EDGE_GCY
REAL(SP) :: EPS

REAL(SP) :: UK1,UK2,UK3,UK4,UK5,UK6,VK1,VK2,VK3,VK4,VK5,VK6
REAL(SP) :: XAB, YAB ! Lu Wang, LIMITATION@20240328
# endif

# if defined (NH) || defined (LIMITER_VER_ADV)
Expand Down Expand Up @@ -162,11 +163,26 @@ SUBROUTINE ADV_UV_EDGE_GCY
YIJA=DLTYNE(I,1)
XIJB=DLTXNE(I,2)
YIJB=DLTYNE(I,2)
!----> Lu Wang, LIMITATION@20240328
XTMP = XC(IA)*TPI - XC(IB)*TPI
XTMP1 = XC(IA) - XC(IB)
IF(XTMP1 > 180.0_SP)THEN
XTMP = -360.0_SP*TPI+XTMP
ELSE IF(XTMP1 < -180.0_SP)THEN
XTMP = 360.0_SP*TPI+XTMP
END IF
XAB = XTMP * COS(DEG2RAD * (YC(IA)+YC(IB))*0.5_SP)
YAB = (YC(IA) - YC(IB)) * TPI
!<----
# else
XIJA=XIJC(I)-XC(IA)
YIJA=YIJC(I)-YC(IA)
XIJB=XIJC(I)-XC(IB)
YIJB=YIJC(I)-YC(IB)
!----> Lu Wang, LIMITATION@20240328
XAB = XC(IA) - XC(IB)
YAB = YC(IA) - YC(IB)
!<----
# endif

UK1 = U(K1,K)
Expand Down Expand Up @@ -208,8 +224,12 @@ SUBROUTINE ADV_UV_EDGE_GCY

UIJ1(I)=COFA1*XIJA+COFA2*YIJA
VIJ1(I)=COFA5*XIJA+COFA6*YIJA
UALFA_TMP=ABS(U(IA,K)-U(IB,K))/ABS(UIJ1(I)+EPSILON(EPS))
VALFA_TMP=ABS(V(IA,K)-V(IB,K))/ABS(VIJ1(I)+EPSILON(EPS))
!----> Lu Wang, LIMITATION@20240328
! UALFA_TMP=ABS(U(IA,K)-U(IB_TMP,K))/ABS(UIJ1(I)+EPSILON(EPS))
! VALFA_TMP=ABS(V(IA,K)-V(IB_TMP,K))/ABS(VIJ1(I)+EPSILON(EPS))
UALFA_TMP=ABS(U(IA,K)-U(IB_TMP,K))/ABS(COFA1*XAB + COFA2*YAB + EPSILON(EPS))
VALFA_TMP=ABS(V(IA,K)-V(IB_TMP,K))/ABS(COFA5*XAB + COFA6*YAB + EPSILON(EPS))
!<----
IF(UALFA_TMP > 1)UALFA_TMP = 1.0_SP
IF(VALFA_TMP > 1)VALFA_TMP = 1.0_SP
UALFA(IA)=MIN(UALFA(IA),UALFA_TMP)
Expand All @@ -226,8 +246,12 @@ SUBROUTINE ADV_UV_EDGE_GCY

UIJ2(I)=COFA3*XIJB+COFA4*YIJB
VIJ2(I)=COFA7*XIJB+COFA8*YIJB
UALFA_TMP=ABS(U(IA,K)-U(IB,K))/ABS(UIJ2(I)+EPSILON(EPS))
VALFA_TMP=ABS(V(IA,K)-V(IB,K))/ABS(VIJ2(I)+EPSILON(EPS))
!----> Lu Wang, LIMITATION@20240328
! UALFA_TMP=ABS(U(IA,K)-U(IB_TMP,K))/ABS(UIJ2(I)+EPSILON(EPS))
! VALFA_TMP=ABS(V(IA,K)-V(IB_TMP,K))/ABS(VIJ2(I)+EPSILON(EPS))
UALFA_TMP=ABS(U(IA,K)-U(IB_TMP,K))/ABS(COFA3*XAB + COFA4*YAB + EPSILON(EPS))
VALFA_TMP=ABS(V(IA,K)-V(IB_TMP,K))/ABS(COFA7*XAB + COFA8*YAB + EPSILON(EPS))
!<----
IF(UALFA_TMP > 1)UALFA_TMP = 1.0_SP
IF(VALFA_TMP > 1)VALFA_TMP = 1.0_SP
UALFA(IB)=MIN(UALFA(IB),UALFA_TMP)
Expand Down
2 changes: 1 addition & 1 deletion src/fvcom.F
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
!/===========================================================================/

!==============================================================================!
! VERSION 4.4.6
! VERSION 4.4.7
!==============================================================================!

PROGRAM FVCOM
Expand Down
4 changes: 2 additions & 2 deletions src/mod_utils.F
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ SUBROUTINE INITIALIZE_CONTROL(NAME)
! FVCOM VERSION !
!==============================================================================!

FVCOM_VERSION = 'FVCOM_4.4.6'
FVCOM_VERSION = 'FVCOM_4.4.7'
FVCOM_WEBSITE = 'http://fvcom.smast.umassd.edu, https://github.com/FVCOM-GitHub/FVCOM'
INSTITUTION = 'School for Marine Science and Technology'

Expand Down Expand Up @@ -2324,7 +2324,7 @@ SUBROUTINE WRITE_BANNER(PAR,NP,ID)
WRITE(IPT,*)' | ___) | | | || | | | | || ||_|| | '
WRITE(IPT,*)' | | \ \ / / | |_____ | |___| || | | | '
WRITE(IPT,*)' |_| \___/ \______) \_____/ |_| |_| '
WRITE(IPT,*)' -- Version 4.4.6 Release'
WRITE(IPT,*)' -- Version 4.4.7 Release'
WRITE(IPT,*)'!================================================================!'
WRITE(IPT,*)'! !'
WRITE(IPT,*)'!========DOMAIN DECOMPOSITION USING: METIS 4.0.1 ================!'
Expand Down

0 comments on commit e5cc25b

Please sign in to comment.