Skip to content

Commit

Permalink
Merge branch 'ww3_hycom' into ww3_shom
Browse files Browse the repository at this point in the history
  • Loading branch information
aronroland committed Apr 26, 2024
2 parents 7fa5242 + dd5ff98 commit 7df5855
Show file tree
Hide file tree
Showing 4 changed files with 85 additions and 17 deletions.
17 changes: 9 additions & 8 deletions model/src/w3oacpmd.F90
Original file line number Diff line number Diff line change
Expand Up @@ -387,6 +387,7 @@ SUBROUTINE CPL_OASIS_DEFINE(NDSO,RCV_STR,SND_STR)
!/ 08-Jun-2018 : use INIT_GET_ISEA ( version 6.04 )
!/ 22-Feb-2023 : Extend to domain decomposition ( version 7.xx )
!/ 01-Mar-2023 : Work on HYCOM part
!/ (A. Roland & H. Michaud)
!/
! 1. Purpose :
!
Expand Down Expand Up @@ -925,14 +926,14 @@ SUBROUTINE GET_LIST_EXCH_FIELD(NDSO, RCV, SND, ID_NB_RCV, ID_NB_SND, RCV_STR, SN
ID_NB_RCV=ID_NB_RCV+1
RCV(ID_NB_RCV)%CL_FIELD_NAME='WW3__SSH'
!
CASE('CUR')
! uz : sea surface zonal currents (m.s-1)
ID_NB_RCV=ID_NB_RCV+1
RCV(ID_NB_RCV)%CL_FIELD_NAME='WW3_OSSU'
!
! vz : sea surface meridional currents (m.s-1)
ID_NB_RCV=ID_NB_RCV+1
RCV(ID_NB_RCV)%CL_FIELD_NAME='WW3_OSSV'
! CASE('CUR')
! ! uz : sea surface zonal currents (m.s-1)
! ID_NB_RCV=ID_NB_RCV+1
! RCV(ID_NB_RCV)%CL_FIELD_NAME='WW3_OSSU'
! !
! ! vz : sea surface meridional currents (m.s-1)
! ID_NB_RCV=ID_NB_RCV+1
! RCV(ID_NB_RCV)%CL_FIELD_NAME='WW3_OSSV'
#endif
!
!
Expand Down
9 changes: 6 additions & 3 deletions model/src/w3ogcmmd.F90
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ MODULE W3OGCMMD
!/ For upgrades see subroutines.
!/ Apr-2016 : Add comments (J. Pianezze) ( version 5.07 )
!/ 22-Mar-2021 : Add extra coupling variables ( version 7.13 )
!/ 1-Mar-2023 : Adaptation to Hycom (H. Michaud)
!/
!/ Copyright 2009-2012 National Weather Service (NWS),
!/ National Oceanic and Atmospheric Administration. All rights
Expand Down Expand Up @@ -591,7 +592,7 @@ SUBROUTINE RCV_FIELDS_FROM_OCEAN(ID_LCOMM, IDFLD, FXN, FYN, FAN)

IF (LL_ACTION) THEN
!AR: todo: double check the masking at this place
TMP(1:NSEALL) = RLA_OASIS_RCV(1:NSEALL,1) * MASKT(1:NSEALL)
TMP(1:NSEALL) = RLA_OASIS_RCV(1:NSEALL,1) !* MASKT(1:NSEALL)
SND_BUFF(1:NSEA) = 0.0
#ifdef W3_PDLIB
DO IB_I = 1, NSEALL
Expand Down Expand Up @@ -629,7 +630,8 @@ SUBROUTINE RCV_FIELDS_FROM_OCEAN(ID_LCOMM, IDFLD, FXN, FYN, FAN)
IF (RCV_FLD(IB_DO)%CL_FIELD_NAME == 'WW3_OSSU') THEN
CALL CPL_OASIS_RCV(IB_DO, ID_OASIS_TIME, RLA_OASIS_RCV, LL_ACTION)
IF (LL_ACTION) THEN
TMP(1:NSEALL) = RLA_OASIS_RCV(1:NSEALL,1) * MASKU(1:NSEALL)
! TMP(1:NSEALL) = RLA_OASIS_RCV(1:NSEALL,1) * MASKU(1:NSEALL)
TMP(1:NSEALL) = RLA_OASIS_RCV(1:NSEALL,1) * MASKT(1:NSEALL)
SND_BUFF(1:NSEA) = 0.0
#ifdef W3_PDLIB
DO IB_I = 1, NSEALL
Expand Down Expand Up @@ -662,7 +664,8 @@ SUBROUTINE RCV_FIELDS_FROM_OCEAN(ID_LCOMM, IDFLD, FXN, FYN, FAN)
IF (RCV_FLD(IB_DO)%CL_FIELD_NAME == 'WW3_OSSV') THEN
CALL CPL_OASIS_RCV(IB_DO, ID_OASIS_TIME, RLA_OASIS_RCV, LL_ACTION)
IF (LL_ACTION) THEN
TMP(1:NSEALL) = RLA_OASIS_RCV(1:NSEALL,1) * MASKV(1:NSEALL)
! TMP(1:NSEALL) = RLA_OASIS_RCV(1:NSEALL,1) * MASKV(1:NSEALL)
TMP(1:NSEALL) = RLA_OASIS_RCV(1:NSEALL,1) * MASKT(1:NSEALL)
SND_BUFF(1:NSEA) = 0.0
#ifdef W3_PDLIB
DO IB_I = 1, NSEALL
Expand Down
10 changes: 5 additions & 5 deletions model/src/w3triamd.F90
Original file line number Diff line number Diff line change
Expand Up @@ -3187,11 +3187,11 @@ SUBROUTINE GET_BOUNDARY(MNP, MNE, TRIGP, IOBP, NEIGHBOR_PREV, &
IP2=NEIGHBOR_NEXT(IP)
IF (IP2.GT.0) THEN
IP3=NEIGHBOR_PREV(IP2)
IF (ABS(IP3 - IP).GT.0) THEN
WRITE(*,*) 'IP=', IP, ' IP2=', IP2, ' IP3=', IP3
WRITE(*,*) 'We have a dramatic inconsistency'
STOP
END IF
! IF (ABS(IP3 - IP).GT.0) THEN
! WRITE(*,*) 'IP=', IP, ' IP2=', IP2, ' IP3=', IP3
! WRITE(*,*) 'We have a dramatic inconsistency'
! STOP
! END IF
END IF
END DO
! Now assigning the boundary IOBP array
Expand Down
66 changes: 65 additions & 1 deletion model/src/ww3_shel.F90
Original file line number Diff line number Diff line change
Expand Up @@ -2074,7 +2074,7 @@ PROGRAM W3SHEL
DTTST=0.
ELSE
ID_OASIS_TIME = NINT(DSEC21 ( TIME00 , TFN(:,J) ))
IF ( MOD(NINT(DSEC21(TIME00,TIME)), NINT(DTOUT(7))) .EQ. 0 .AND. &
IF ( NINT(MOD(DSEC21(TIME00,TIME), DTOUT(7))) .EQ. 0 .AND. &
DSEC21 (TFN(:,J), TIMEEND) .GT. 0.0 ) DTTST=0.
ENDIF
ENDIF
Expand Down Expand Up @@ -2112,6 +2112,10 @@ PROGRAM W3SHEL
#ifdef W3_OASICM
IF (FLAGSC(J)) FLAGSCI = .TRUE.
IF (.NOT.FLAGSCI) ID_OASIS_TIME = -1
#endif
#ifdef W3_OASIS
IF (ID_OASIS_TIME >0 .OR. FIRST_STEP .OR. &
.NOT. FLAGSC(J)) THEN
#endif
CALL W3FLDG ('READ', IDSTR(J), NDSF(J), &
NDST, NDSEN, NX, NY, NX, NY, TIME0, TIMEN, &
Expand All @@ -2121,6 +2125,11 @@ PROGRAM W3SHEL
, COUPL_COMM &
#endif
)
#ifdef W3_OASIS
ELSE
IERR = -1
END IF
#endif
END IF
IF ( IERR .LT. 0 ) FLLST_ALL(J) = .TRUE.

Expand Down Expand Up @@ -2179,6 +2188,10 @@ PROGRAM W3SHEL
#ifdef W3_OASICM
IF (FLAGSC(J)) FLAGSCI = .TRUE.
IF (.NOT.FLAGSCI) ID_OASIS_TIME = -1
#endif
#ifdef W3_OASIS
IF (ID_OASIS_TIME >0 .OR. FIRST_STEP .OR. &
.NOT. FLAGSC(J)) THEN
#endif
CALL W3FLDG ('READ', IDSTR(J), NDSF(J), &
NDST, NDSEN, NX, NY, NX, NY, TIME0, TIMEN, &
Expand All @@ -2188,6 +2201,11 @@ PROGRAM W3SHEL
, COUPL_COMM &
#endif
)
#ifdef W3_OASIS
ELSE
IERR = -1
END IF
#endif
END IF
IF ( IERR .LT. 0 )FLLST_ALL(J) = .TRUE.

Expand Down Expand Up @@ -2255,6 +2273,10 @@ PROGRAM W3SHEL
#endif
#ifdef W3_OASOCM
IF (.NOT.FLAGSC(J)) ID_OASIS_TIME = -1
#endif
#ifdef W3_OASIS
IF (ID_OASIS_TIME >0 .OR. FIRST_STEP .OR. &
.NOT. FLAGSC(J)) THEN
#endif
CALL W3FLDG ('READ', IDSTR(J), NDSF(J), &
NDST, NDSEN, NX, NY, NX, NY, TIME0, TIMEN, &
Expand All @@ -2264,6 +2286,11 @@ PROGRAM W3SHEL
, COUPL_COMM &
#endif
)
#ifdef W3_OASIS
ELSE
IERR = -1
END IF
#endif
#ifdef W3_TIDE
END IF
#endif
Expand Down Expand Up @@ -2303,6 +2330,10 @@ PROGRAM W3SHEL
#endif
#ifdef W3_OASOCM
IF (.NOT.FLAGSC(J)) ID_OASIS_TIME = -1
#endif
#ifdef W3_OASIS
IF (ID_OASIS_TIME >0 .OR. FIRST_STEP .OR. &
.NOT. FLAGSC(J)) THEN
#endif
CALL W3FLDG ('READ', IDSTR(J), NDSF(J), &
NDST, NDSEN, NX, NY, NX, NY, TIME0, TIMEN, &
Expand All @@ -2312,6 +2343,9 @@ PROGRAM W3SHEL
, COUPL_COMM &
#endif
)
#ifdef W3_OASIS
END IF
#endif
#ifdef W3_TIDE
END IF
#endif
Expand Down Expand Up @@ -2339,6 +2373,10 @@ PROGRAM W3SHEL
#endif
#ifdef W3_OASACM
IF (.NOT.FLAGSC(J)) ID_OASIS_TIME = -1
#endif
#ifdef W3_OASIS
IF (ID_OASIS_TIME >0 .OR. FIRST_STEP .OR. &
.NOT. FLAGSC(J)) THEN
#endif
CALL W3FLDG ('READ', IDSTR(J), NDSF(J), &
NDST, NDSEN, NX, NY, NX, NY, TIME0, TIMEN, &
Expand All @@ -2348,6 +2386,9 @@ PROGRAM W3SHEL
, COUPL_COMM &
#endif
)
#ifdef W3_OASIS
END IF
#endif
END IF

! ICE : ice conc.
Expand All @@ -2363,6 +2404,10 @@ PROGRAM W3SHEL
#ifdef W3_OASICM
IF (FLAGSC(J)) FLAGSCI = .TRUE.
IF (.NOT.FLAGSCI) ID_OASIS_TIME = -1
#endif
#ifdef W3_OASIS
IF (ID_OASIS_TIME >0 .OR. FIRST_STEP .OR. &
.NOT. FLAGSC(J)) THEN
#endif
CALL W3FLDG ('READ', IDSTR(J), NDSF(J), &
NDST, NDSEN, NX, NY, NX, NY, TIME0, TIMEN, &
Expand All @@ -2372,6 +2417,11 @@ PROGRAM W3SHEL
, COUPL_COMM &
#endif
)
#ifdef W3_OASIS
ELSE
IERR = -1
END IF
#endif
IF ( IERR .LT. 0 ) FLLSTI = .TRUE.
!could be: IF ( IERR .LT. 0 ) FLLST_ALL(J) = .TRUE.
END IF
Expand All @@ -2398,6 +2448,10 @@ PROGRAM W3SHEL
#endif
#ifdef W3_OASACM
IF (.NOT.FLAGSC(J)) ID_OASIS_TIME = -1
#endif
#ifdef W3_OASIS
IF (ID_OASIS_TIME >0 .OR. FIRST_STEP .OR. &
.NOT. FLAGSC(J)) THEN
#endif
CALL W3FLDG ('READ', IDSTR(J), NDSF(J), &
NDST, NDSEN, NX, NY, NX, NY, TIME0, TIMEN, &
Expand All @@ -2407,6 +2461,9 @@ PROGRAM W3SHEL
, COUPL_COMM &
#endif
)
#ifdef W3_OASIS
END IF
#endif
END IF

! RHO : air density
Expand All @@ -2430,6 +2487,10 @@ PROGRAM W3SHEL
#endif
#ifdef W3_OASACM
IF (.NOT.FLAGSC(J)) ID_OASIS_TIME = -1
#endif
#ifdef W3_OASIS
IF (ID_OASIS_TIME >0 .OR. FIRST_STEP .OR. &
.NOT. FLAGSC(J)) THEN
#endif
CALL W3FLDG ('READ', IDSTR(J), NDSF(J), &
NDST, NDSEN, NX, NY, NX, NY, TIME0, TIMEN, &
Expand All @@ -2439,6 +2500,9 @@ PROGRAM W3SHEL
, COUPL_COMM &
#endif
)
#ifdef W3_OASIS
END IF
#endif
IF ( IERR .LT. 0 ) FLLSTR = .TRUE.
END IF

Expand Down

0 comments on commit 7df5855

Please sign in to comment.