Skip to content

Commit e5cc25b

Browse files
committed
LIMITATION
1 parent d6a82ed commit e5cc25b

File tree

5 files changed

+61
-12
lines changed

5 files changed

+61
-12
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# FVCOM 4.4.6
1+
# FVCOM 4.4.7
22

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

src/adv_uv_edge_gcn.F

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ SUBROUTINE ADV_UV_EDGE_GCN
8888
REAL(SP) :: UALFA_TMP,VALFA_TMP
8989
INTEGER :: ERROR
9090
REAL(SP) :: EPS
91+
REAL(SP) :: XAB, YAB ! Lu Wang, LIMITATION@20240328
9192
# endif
9293

9394
# if defined (NH) || defined (LIMITER_VER_ADV)
@@ -171,6 +172,17 @@ SUBROUTINE ADV_UV_EDGE_GCN
171172
YIJA=DLTYNE(I,1)
172173
XIJB=DLTXNE(I,2)
173174
YIJB=DLTYNE(I,2)
175+
!----> Lu Wang, LIMITATION@20240328
176+
XTMP = XC(IA)*TPI - XC(IB)*TPI
177+
XTMP1 = XC(IA) - XC(IB)
178+
IF(XTMP1 > 180.0_SP)THEN
179+
XTMP = -360.0_SP*TPI+XTMP
180+
ELSE IF(XTMP1 < -180.0_SP)THEN
181+
XTMP = 360.0_SP*TPI+XTMP
182+
END IF
183+
XAB = XTMP * COS(DEG2RAD * (YC(IA)+YC(IB))*0.5_SP)
184+
YAB = (YC(IA) - YC(IB)) * TPI
185+
!<----
174186
# if defined (THIN_DAM)
175187
IF(IB==0.AND.E_DAM_MATCH(IA)/=0.AND.K<=KDAM1(IA))XIJB=DLTXNE_DAM_MATCH(I)
176188
IF(IB==0.AND.E_DAM_MATCH(IA)/=0.AND.K<=KDAM1(IA))YIJB=DLTYNE_DAM_MATCH(I)
@@ -180,6 +192,10 @@ SUBROUTINE ADV_UV_EDGE_GCN
180192
YIJA=YIJC(I)-YC(IA)
181193
XIJB=XIJC(I)-XC(IB)
182194
YIJB=YIJC(I)-YC(IB)
195+
!----> Lu Wang, LIMITATION@20240328
196+
XAB = XC(IA) - XC(IB)
197+
YAB = YC(IA) - YC(IB)
198+
!<----
183199
# if defined (THIN_DAM)
184200
IF(IB==0.AND.E_DAM_MATCH(IA)/=0.AND.K<=KDAM1(IA))XIJB=XIJC(I)-XC(E_DAM_MATCH(IA))
185201
IF(IB==0.AND.E_DAM_MATCH(IA)/=0.AND.K<=KDAM1(IA))YIJB=YIJC(I)-YC(E_DAM_MATCH(IA))
@@ -278,8 +294,12 @@ SUBROUTINE ADV_UV_EDGE_GCN
278294

279295
UIJ1(I)=COFA1*XIJA+COFA2*YIJA
280296
VIJ1(I)=COFA5*XIJA+COFA6*YIJA
281-
UALFA_TMP=ABS(U(IA,K)-U(IB_TMP,K))/ABS(UIJ1(I)+EPSILON(EPS))
282-
VALFA_TMP=ABS(V(IA,K)-V(IB_TMP,K))/ABS(VIJ1(I)+EPSILON(EPS))
297+
!----> Lu Wang, LIMITATION@20240328
298+
! UALFA_TMP=ABS(U(IA,K)-U(IB_TMP,K))/ABS(UIJ1(I)+EPSILON(EPS))
299+
! VALFA_TMP=ABS(V(IA,K)-V(IB_TMP,K))/ABS(VIJ1(I)+EPSILON(EPS))
300+
UALFA_TMP=ABS(U(IA,K)-U(IB_TMP,K))/ABS(COFA1*XAB + COFA2*YAB + EPSILON(EPS))
301+
VALFA_TMP=ABS(V(IA,K)-V(IB_TMP,K))/ABS(COFA5*XAB + COFA6*YAB + EPSILON(EPS))
302+
!<----
283303
IF(UALFA_TMP > 1)UALFA_TMP = 1.0_SP
284304
IF(VALFA_TMP > 1)VALFA_TMP = 1.0_SP
285305
UALFA(IA)=MIN(UALFA(IA),UALFA_TMP)
@@ -294,10 +314,15 @@ SUBROUTINE ADV_UV_EDGE_GCN
294314
! 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)
295315
! 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)
296316

317+
297318
UIJ2(I)=COFA3*XIJB+COFA4*YIJB
298319
VIJ2(I)=COFA7*XIJB+COFA8*YIJB
299-
UALFA_TMP=ABS(U(IA,K)-U(IB_TMP,K))/ABS(UIJ2(I)+EPSILON(EPS))
300-
VALFA_TMP=ABS(V(IA,K)-V(IB_TMP,K))/ABS(VIJ2(I)+EPSILON(EPS))
320+
!----> Lu Wang, LIMITATION@20240328
321+
! UALFA_TMP=ABS(U(IA,K)-U(IB_TMP,K))/ABS(UIJ2(I)+EPSILON(EPS))
322+
! VALFA_TMP=ABS(V(IA,K)-V(IB_TMP,K))/ABS(VIJ2(I)+EPSILON(EPS))
323+
UALFA_TMP=ABS(U(IA,K)-U(IB_TMP,K))/ABS(COFA3*XAB + COFA4*YAB + EPSILON(EPS))
324+
VALFA_TMP=ABS(V(IA,K)-V(IB_TMP,K))/ABS(COFA7*XAB + COFA8*YAB + EPSILON(EPS))
325+
!<----
301326
IF(UALFA_TMP > 1)UALFA_TMP = 1.0_SP
302327
IF(VALFA_TMP > 1)VALFA_TMP = 1.0_SP
303328
UALFA(IB_TMP)=MIN(UALFA(IB_TMP),UALFA_TMP)

src/adv_uv_edge_gcy.F

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ SUBROUTINE ADV_UV_EDGE_GCY
8686
REAL(SP) :: EPS
8787

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

9192
# if defined (NH) || defined (LIMITER_VER_ADV)
@@ -162,11 +163,26 @@ SUBROUTINE ADV_UV_EDGE_GCY
162163
YIJA=DLTYNE(I,1)
163164
XIJB=DLTXNE(I,2)
164165
YIJB=DLTYNE(I,2)
166+
!----> Lu Wang, LIMITATION@20240328
167+
XTMP = XC(IA)*TPI - XC(IB)*TPI
168+
XTMP1 = XC(IA) - XC(IB)
169+
IF(XTMP1 > 180.0_SP)THEN
170+
XTMP = -360.0_SP*TPI+XTMP
171+
ELSE IF(XTMP1 < -180.0_SP)THEN
172+
XTMP = 360.0_SP*TPI+XTMP
173+
END IF
174+
XAB = XTMP * COS(DEG2RAD * (YC(IA)+YC(IB))*0.5_SP)
175+
YAB = (YC(IA) - YC(IB)) * TPI
176+
!<----
165177
# else
166178
XIJA=XIJC(I)-XC(IA)
167179
YIJA=YIJC(I)-YC(IA)
168180
XIJB=XIJC(I)-XC(IB)
169181
YIJB=YIJC(I)-YC(IB)
182+
!----> Lu Wang, LIMITATION@20240328
183+
XAB = XC(IA) - XC(IB)
184+
YAB = YC(IA) - YC(IB)
185+
!<----
170186
# endif
171187

172188
UK1 = U(K1,K)
@@ -208,8 +224,12 @@ SUBROUTINE ADV_UV_EDGE_GCY
208224

209225
UIJ1(I)=COFA1*XIJA+COFA2*YIJA
210226
VIJ1(I)=COFA5*XIJA+COFA6*YIJA
211-
UALFA_TMP=ABS(U(IA,K)-U(IB,K))/ABS(UIJ1(I)+EPSILON(EPS))
212-
VALFA_TMP=ABS(V(IA,K)-V(IB,K))/ABS(VIJ1(I)+EPSILON(EPS))
227+
!----> Lu Wang, LIMITATION@20240328
228+
! UALFA_TMP=ABS(U(IA,K)-U(IB_TMP,K))/ABS(UIJ1(I)+EPSILON(EPS))
229+
! VALFA_TMP=ABS(V(IA,K)-V(IB_TMP,K))/ABS(VIJ1(I)+EPSILON(EPS))
230+
UALFA_TMP=ABS(U(IA,K)-U(IB_TMP,K))/ABS(COFA1*XAB + COFA2*YAB + EPSILON(EPS))
231+
VALFA_TMP=ABS(V(IA,K)-V(IB_TMP,K))/ABS(COFA5*XAB + COFA6*YAB + EPSILON(EPS))
232+
!<----
213233
IF(UALFA_TMP > 1)UALFA_TMP = 1.0_SP
214234
IF(VALFA_TMP > 1)VALFA_TMP = 1.0_SP
215235
UALFA(IA)=MIN(UALFA(IA),UALFA_TMP)
@@ -226,8 +246,12 @@ SUBROUTINE ADV_UV_EDGE_GCY
226246

227247
UIJ2(I)=COFA3*XIJB+COFA4*YIJB
228248
VIJ2(I)=COFA7*XIJB+COFA8*YIJB
229-
UALFA_TMP=ABS(U(IA,K)-U(IB,K))/ABS(UIJ2(I)+EPSILON(EPS))
230-
VALFA_TMP=ABS(V(IA,K)-V(IB,K))/ABS(VIJ2(I)+EPSILON(EPS))
249+
!----> Lu Wang, LIMITATION@20240328
250+
! UALFA_TMP=ABS(U(IA,K)-U(IB_TMP,K))/ABS(UIJ2(I)+EPSILON(EPS))
251+
! VALFA_TMP=ABS(V(IA,K)-V(IB_TMP,K))/ABS(VIJ2(I)+EPSILON(EPS))
252+
UALFA_TMP=ABS(U(IA,K)-U(IB_TMP,K))/ABS(COFA3*XAB + COFA4*YAB + EPSILON(EPS))
253+
VALFA_TMP=ABS(V(IA,K)-V(IB_TMP,K))/ABS(COFA7*XAB + COFA8*YAB + EPSILON(EPS))
254+
!<----
231255
IF(UALFA_TMP > 1)UALFA_TMP = 1.0_SP
232256
IF(VALFA_TMP > 1)VALFA_TMP = 1.0_SP
233257
UALFA(IB)=MIN(UALFA(IB),UALFA_TMP)

src/fvcom.F

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
!/===========================================================================/
2828

2929
!==============================================================================!
30-
! VERSION 4.4.6
30+
! VERSION 4.4.7
3131
!==============================================================================!
3232

3333
PROGRAM FVCOM

src/mod_utils.F

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ SUBROUTINE INITIALIZE_CONTROL(NAME)
141141
! FVCOM VERSION !
142142
!==============================================================================!
143143

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

@@ -2324,7 +2324,7 @@ SUBROUTINE WRITE_BANNER(PAR,NP,ID)
23242324
WRITE(IPT,*)' | ___) | | | || | | | | || ||_|| | '
23252325
WRITE(IPT,*)' | | \ \ / / | |_____ | |___| || | | | '
23262326
WRITE(IPT,*)' |_| \___/ \______) \_____/ |_| |_| '
2327-
WRITE(IPT,*)' -- Version 4.4.6 Release'
2327+
WRITE(IPT,*)' -- Version 4.4.7 Release'
23282328
WRITE(IPT,*)'!================================================================!'
23292329
WRITE(IPT,*)'! !'
23302330
WRITE(IPT,*)'!========DOMAIN DECOMPOSITION USING: METIS 4.0.1 ================!'

0 commit comments

Comments
 (0)