Skip to content

Commit

Permalink
Backport ukmo ps45 bugfixes (#38)
Browse files Browse the repository at this point in the history
* Backport of air density bigfix from develop.
See e90487 for info.

* Backported duplicate OASIS calls bugfix from develop.
See 5ebed9 for info.
  • Loading branch information
ukmo-ccbunney authored Feb 1, 2023
1 parent f1c3c74 commit 9ed7f33
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 3 deletions.
6 changes: 3 additions & 3 deletions model/ftn/w3wavemd.ftn
Original file line number Diff line number Diff line change
Expand Up @@ -705,9 +705,9 @@
! 1.g Air density time
!
IF ( FLRHOA ) THEN
DTTST1 = DSEC21 ( TU0 , TUN )
DTTST2 = DSEC21 ( TU0 , TIME )
DTTST3 = DSEC21 ( TEND , TUN )
DTTST1 = DSEC21 ( TR0 , TRN )
DTTST2 = DSEC21 ( TR0 , TIME )
DTTST3 = DSEC21 ( TEND , TRN )
!/T WRITE (NDST,9018) DTTST1, DTTST2, DTTST3
IF ( DTTST1.LT.0. .OR. DTTST2.LT.0. .OR. DTTST3.LT.0. ) THEN
IF ( IAPROC .EQ. NAPERR ) WRITE (NDSE,1008)
Expand Down
34 changes: 34 additions & 0 deletions model/ftn/ww3_shel.ftn
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,7 @@
!/MPI LOGICAL :: FLHYBR = .FALSE.
!/OMPH INTEGER :: THRLEV
!/OASIS LOGICAL :: L_MASTER
!/OASIS LOGICAL :: FIRST_STEP = .TRUE.
!
!/
!/ ------------------------------------------------------------------- /
Expand Down Expand Up @@ -1997,12 +1998,17 @@
!/OASIS COUPL_COMM = MPI_COMM
!/OASICM IF (FLAGSC(J)) FLAGSCI = .TRUE.
!/OASICM IF (.NOT.FLAGSCI) ID_OASIS_TIME = -1
!/OASIS IF (ID_OASIS_TIME >0 .OR. FIRST_STEP .OR. &
!/OASIS .NOT. FLAGSC(J)) THEN
CALL W3FLDG ('READ', IDSTR(J), NDSF(J), &
NDST, NDSEN, NX, NY, NX, NY, TIME0, TIMEN, &
TTT, XXX, XXX, XXX, TI1, XXX, XXX, ICEP1, &
IERR, FLAGSC(J) &
!/OASICM , COUPL_COMM &
)
!/OASIS ELSE
!/OASIS IERR = -1
!/OASIS END IF
END IF
IF ( IERR .LT. 0 ) FLLST_ALL(J) = .TRUE.

Expand Down Expand Up @@ -2058,12 +2064,17 @@
!/OASIS COUPL_COMM = MPI_COMM
!/OASICM IF (FLAGSC(J)) FLAGSCI = .TRUE.
!/OASICM IF (.NOT.FLAGSCI) ID_OASIS_TIME = -1
!/OASIS IF (ID_OASIS_TIME >0 .OR. FIRST_STEP .OR. &
!/OASIS .NOT. FLAGSC(J)) THEN
CALL W3FLDG ('READ', IDSTR(J), NDSF(J), &
NDST, NDSEN, NX, NY, NX, NY, TIME0, TIMEN, &
TTT, XXX, XXX, XXX, TI5, XXX, XXX, ICEP5, &
IERR, FLAGSC(J) &
!/OASICM , COUPL_COMM &
)
!/OASIS ELSE
!/OASIS IERR = -1
!/OASIS END IF
END IF
IF ( IERR .LT. 0 )FLLST_ALL(J) = .TRUE.

Expand Down Expand Up @@ -2126,12 +2137,17 @@
!/TIDE ELSE
!/OASIS COUPL_COMM = MPI_COMM
!/OASOCM IF (.NOT.FLAGSC(J)) ID_OASIS_TIME = -1
!/OASIS IF (ID_OASIS_TIME >0 .OR. FIRST_STEP .OR. &
!/OASIS .NOT. FLAGSC(J)) THEN
CALL W3FLDG ('READ', IDSTR(J), NDSF(J), &
NDST, NDSEN, NX, NY, NX, NY, TIME0, TIMEN, &
TTT, XXX, XXX, XXX, TLN, XXX, XXX, WLEV, &
IERR, FLAGSC(J) &
!/OASOCM , COUPL_COMM &
)
!/OASIS ELSE
!/OASIS IERR = -1
!/OASIS END IF
!/TIDE END IF
END IF
IF ( IERR .LT. 0 ) FLLSTL = .TRUE.
Expand Down Expand Up @@ -2162,12 +2178,15 @@
!/TIDE ELSE
!/OASIS COUPL_COMM = MPI_COMM
!/OASOCM IF (.NOT.FLAGSC(J)) ID_OASIS_TIME = -1
!/OASIS IF (ID_OASIS_TIME >0 .OR. FIRST_STEP .OR. &
!/OASIS .NOT. FLAGSC(J)) THEN
CALL W3FLDG ('READ', IDSTR(J), NDSF(J), &
NDST, NDSEN, NX, NY, NX, NY, TIME0, TIMEN, &
TC0, CX0, CY0, XXX, TCN, CXN, CYN, XXX, &
IERR, FLAGSC(J) &
!/OASOCM , COUPL_COMM &
)
!/OASIS END IF
!/TIDE END IF
END IF

Expand All @@ -2188,12 +2207,15 @@
ELSE
!/OASIS COUPL_COMM = MPI_COMM
!/OASACM IF (.NOT.FLAGSC(J)) ID_OASIS_TIME = -1
!/OASIS IF (ID_OASIS_TIME >0 .OR. FIRST_STEP .OR. &
!/OASIS .NOT. FLAGSC(J)) THEN
CALL W3FLDG ('READ', IDSTR(J), NDSF(J), &
NDST, NDSEN, NX, NY, NX, NY, TIME0, TIMEN, &
TW0, WX0, WY0, DT0, TWN, WXN, WYN, DTN, &
IERR, FLAGSC(J) &
!/OASACM , COUPL_COMM &
)
!/OASIS END IF
END IF

! ICE : ice conc.
Expand All @@ -2206,12 +2228,17 @@
!/OASIS COUPL_COMM = MPI_COMM
!/OASICM IF (FLAGSC(J)) FLAGSCI = .TRUE.
!/OASICM IF (.NOT.FLAGSCI) ID_OASIS_TIME = -1
!/OASIS IF (ID_OASIS_TIME >0 .OR. FIRST_STEP .OR. &
!/OASIS .NOT. FLAGSC(J)) THEN
CALL W3FLDG ('READ', IDSTR(J), NDSF(J), &
NDST, NDSEN, NX, NY, NX, NY, TIME0, TIMEN, &
TTT, XXX, XXX, XXX, TIN, XXX, BERGI, ICEI, &
IERR, FLAGSC(J) &
!/OASICM , COUPL_COMM &
)
!/OASIS ELSE
!/OASIS IERR = -1
!/OASIS END IF
IF ( IERR .LT. 0 ) FLLSTI = .TRUE.
!could be: IF ( IERR .LT. 0 ) FLLST_ALL(J) = .TRUE.
END IF
Expand All @@ -2233,12 +2260,15 @@
ELSE
!/OASIS COUPL_COMM = MPI_COMM
!/OASACM IF (.NOT.FLAGSC(J)) ID_OASIS_TIME = -1
!/OASIS IF (ID_OASIS_TIME >0 .OR. FIRST_STEP .OR. &
!/OASIS .NOT. FLAGSC(J)) THEN
CALL W3FLDG ('READ', IDSTR(J), NDSF(J), &
NDST, NDSEN, NX, NY, NX, NY, TIME0, TIMEN, &
TU0, UX0, UY0, XXX, TUN, UXN, UYN, XXX, &
IERR, FLAGSC(J) &
!/OASACM , COUPL_COMM &
)
!/OASIS END IF
END IF

! RHO : air density
Expand All @@ -2257,12 +2287,15 @@
ELSE
!/OASIS COUPL_COMM = MPI_COMM
!/OASACM IF (.NOT.FLAGSC(J)) ID_OASIS_TIME = -1
!/OASIS IF (ID_OASIS_TIME >0 .OR. FIRST_STEP .OR. &
!/OASIS .NOT. FLAGSC(J)) THEN
CALL W3FLDG ('READ', IDSTR(J), NDSF(J), &
NDST, NDSEN, NX, NY, NX, NY, TIME0, TIMEN, &
TR0, XXX, XXX, RH0, TRN, XXX, XXX, RHN, &
IERR, FLAGSC(J) &
!/OASACM , COUPL_COMM &
)
!/OASIS END IF
IF ( IERR .LT. 0 ) FLLSTR = .TRUE.
END IF

Expand Down Expand Up @@ -2359,6 +2392,7 @@
!
! update the next assimilation data time
!
!/OASIS FIRST_STEP = .FALSE.

!/MEMCHECK write(740+IAPROC,*) 'memcheck_____:', 'WW3_SHEL SECTION 8'
!/MEMCHECK call getMallocInfo(mallinfos)
Expand Down

0 comments on commit 9ed7f33

Please sign in to comment.