Skip to content

Commit 5a3eb1e

Browse files
updates after merge
1 parent 61835c6 commit 5a3eb1e

File tree

3 files changed

+30
-109
lines changed

3 files changed

+30
-109
lines changed

model/src/w3iogrmd.F90

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1171,8 +1171,9 @@ SUBROUTINE W3IOGR ( INXOUT, NDSM, IMOD, FEXT &
11711171
WRITE (NDSM) &
11721172
LMPENABLED, SDTAIL, HSLMODE
11731173
ELSE
1174-
READ (NDSM,END=801,ERR=802,IOSTAT=IERR) &
1174+
READ (NDSM,IOSTAT=IERR) &
11751175
LMPENABLED, SDTAIL, HSLMODE
1176+
IF (IERR.NE.0) CALL EXTIOF(NDSE,IERR,'W3IOGR','mod_def.'//FILEXT(:IEXT),51)
11761177
END IF
11771178

11781179
! --------------

model/src/w3iorsmd.F90

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,7 @@ SUBROUTINE W3IORS ( INXOUT, NDSR, DUMFPI, IMOD, FLRSTRT , filename)
469469
!
470470
if (present(filename)) then ! only when restart_nc and restart_from_binary=true
471471
open (ndsr,file=trim(filename),form='unformatted', convert=file_endian, &
472-
access='stream',err=800,iostat=ierr, status='old',action='read')
472+
access='stream',iostat=ierr, status='old',action='read')
473473
else
474474
IF (LEN_TRIM(FNMRST) .EQ. 0) THEN
475475
FNMPRE_LOCAL = FNMPRE
@@ -1112,8 +1112,10 @@ SUBROUTINE W3IORS ( INXOUT, NDSR, DUMFPI, IMOD, FLRSTRT , filename)
11121112
WRITE(NDSR,IOSTAT=IERR) TAUOCY(1:NSEA)
11131113
ENDIF
11141114
IF ( FLOGRR(6,14) ) THEN
1115-
WRITE(NDSR,ERR=803,IOSTAT=IERR) USSHX(1:NSEA)
1116-
WRITE(NDSR,ERR=803,IOSTAT=IERR) USSHY(1:NSEA)
1115+
WRITE(NDSR,IOSTAT=IERR) USSHX(1:NSEA)
1116+
IF (IERR.NE.0) CALL EXTIOF(NDSE,IERR,'W3IORS','',31, &
1117+
ISWRITE=.TRUE.,POS=RPOS)
1118+
WRITE(NDSR,IOSTAT=IERR) USSHY(1:NSEA)
11171119
ENDIF
11181120
IF ( FLOGRR(7,2) ) THEN
11191121
WRITE(NDSR,IOSTAT=IERR) UBA(1:NSEA)
@@ -1425,8 +1427,10 @@ SUBROUTINE W3IORS ( INXOUT, NDSR, DUMFPI, IMOD, FLRSTRT , filename)
14251427
ENDDO
14261428
ENDIF
14271429
IF ( FLOGOA(6,14) ) THEN
1428-
READ (NDSR,ERR=802,IOSTAT=IERR) TMP(1:NSEA)
1429-
READ (NDSR,ERR=802,IOSTAT=IERR) TMP2(1:NSEA)
1430+
READ (NDSR,IOSTAT=IERR) TMP(1:NSEA)
1431+
IF (IERR.NE.0) CALL EXTIOF(NDSE,IERR,'W3IORS','',30)
1432+
READ (NDSR,IOSTAT=IERR) TMP2(1:NSEA)
1433+
IF (IERR.NE.0) CALL EXTIOF(NDSE,IERR,'W3IORS','',30)
14301434
DO I=1, NSEALM
14311435
J = IAPROC + (I-1)*NAPROC
14321436
IF (J .LE. NSEA) THEN

model/src/ww3_ounf.F90

Lines changed: 19 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -1394,109 +1394,8 @@ SUBROUTINE W3EXNC ( NX, NY, IX1, IXN, IY1, IYN, NSEA, &
13941394
#ifdef W3_SMC
13951395
CALL W3S2XY_SMC( WNMEAN, X1 )
13961396
#endif
1397-
ELSE
1398-
CALL W3S2XY ( NSEA, NSEA, NX+1, NY, TAUOCX(1:NSEA) &
1399-
, MAPSF, XX )
1400-
CALL W3S2XY ( NSEA, NSEA, NX+1, NY, TAUOCY(1:NSEA) &
1401-
, MAPSF, XY )
1402-
ENDIF ! SMCGRD
1403-
!
1404-
NFIELD=2
1405-
1406-
!
1407-
! Surface averaged stokes drift
1408-
ELSE IF ( IFI .EQ. 6 .AND. IFJ .EQ. 14 ) THEN
1409-
DO ISEA=1, NSEA
1410-
USSHX(ISEA)=MAX(-0.9998,MIN(0.9998,USSHX(ISEA)))
1411-
USSHY(ISEA)=MAX(-0.9998,MIN(0.9998,USSHY(ISEA)))
1412-
END DO
1413-
#ifdef W3_RTD
1414-
! Rotate x,y vector back to standard pole
1415-
IF ( FLAGUNR ) CALL W3XYRTN(NSEA, USSHX(1:NSEA), USSHY(1:NSEA), AnglD)
1416-
#endif
1417-
CALL S2GRID(USSHX(1:NSEA), XX)
1418-
CALL S2GRID(USSHY(1:NSEA), XY)
1419-
!
1420-
NFIELD=2
1421-
!
1422-
! RMS of bottom displacement amplitude
1423-
ELSE IF ( IFI .EQ. 7 .AND. IFJ .EQ. 1 ) THEN
1424-
! NB: ABA and ABD are the X and Y components of the bottom displacement
1425-
#ifdef W3_RTD
1426-
! Rotate x,y vector back to standard pole
1427-
IF ( FLAGUNR ) CALL W3XYRTN(NSEA, ABA(1:NSEA), ABD(1:NSEA), AnglD)
1428-
#endif
1429-
CALL S2GRID(ABA(1:NSEA), XX)
1430-
CALL S2GRID(ABD(1:NSEA), XY)
1431-
NFIELD=2
1432-
!
1433-
! RMS of bottom velocity amplitude
1434-
ELSE IF ( IFI .EQ. 7 .AND. IFJ .EQ. 2 ) THEN
1435-
! NB: UBA and UBD are the X and Y components of the bottom velocity
1436-
#ifdef W3_RTD
1437-
! Rotate x,y vector back to standard pole
1438-
IF ( FLAGUNR ) CALL W3XYRTN(NSEA, UBA(1:NSEA), UBD(1:NSEA), AnglD)
1439-
#endif
1440-
CALL S2GRID(UBA(1:NSEA), XX)
1441-
CALL S2GRID(UBD(1:NSEA), XY)
1442-
NFIELD=2
1443-
!
1444-
! Bottom roughness
1445-
ELSE IF ( IFI .EQ. 7 .AND. IFJ .EQ. 3 ) THEN
1446-
#ifdef W3_RTD
1447-
! Rotate x,y vector back to standard pole
1448-
IF ( FLAGUNR ) CALL W3XYRTN(NSEA, BEDFORMS(1:NSEA,2), &
1449-
BEDFORMS(1:NSEA,3), AnglD)
1450-
#endif
1451-
CALL S2GRID(BEDFORMS(1:NSEA,1), X1)
1452-
CALL S2GRID(BEDFORMS(1:NSEA,2), X2)
1453-
CALL S2GRID(BEDFORMS(1:NSEA,3), XY)
1454-
NFIELD=3
1455-
!
1456-
! Wave dissipation in bottom boundary layer
1457-
ELSE IF ( IFI .EQ. 7 .AND. IFJ .EQ. 4 ) THEN
1458-
CALL S2GRID(PHIBBL(1:NSEA), X1)
1459-
!
1460-
! Wave to bottom boundary layer stress
1461-
ELSE IF ( IFI .EQ. 7 .AND. IFJ .EQ. 5 ) THEN
1462-
#ifdef W3_RTD
1463-
! Rotate x,y vector back to standard pole
1464-
IF ( FLAGUNR ) CALL W3XYRTN(NSEA, TAUBBL(1:NSEA,1), &
1465-
TAUBBL(1:NSEA,2), AnglD)
1466-
#endif
1467-
CALL S2GRID(TAUBBL(1:NSEA,1), XX)
1468-
CALL S2GRID(TAUBBL(1:NSEA,2), XY)
1469-
NFIELD=2
1470-
!
1471-
! Mean square slope
1472-
ELSE IF ( IFI .EQ. 8 .AND. IFJ .EQ. 1 ) THEN
1473-
#ifdef W3_RTD
1474-
! Rotate x,y vector back to standard pole
1475-
IF ( FLAGUNR ) CALL W3XYRTN(NSEA, MSSX, MSSY, AnglD)
1476-
#endif
1477-
CALL S2GRID(MSSX, XX)
1478-
CALL S2GRID(MSSY, XY)
1479-
NFIELD=2
1480-
!
1481-
! Phillips constant
1482-
ELSE IF ( IFI .EQ. 8 .AND. IFJ .EQ. 2 ) THEN
1483-
#ifdef W3_RTD
1484-
! Rotate x,y vector back to standard pole
1485-
IF ( FLAGUNR ) CALL W3XYRTN(NSEA, MSCX, MSCY, AnglD)
1486-
#endif
1487-
CALL S2GRID(MSCX, XX)
1488-
CALL S2GRID(MSCY, XY)
1489-
NFIELD=2
1490-
!
1491-
! u direction for mss
1492-
ELSE IF ( IFI .EQ. 8 .AND. IFJ .EQ. 3 ) THEN
1493-
#ifdef W3_RTD
1494-
! Rotate direction back to standard pole
1495-
IF ( FLAGUNR ) CALL W3THRTN(NSEA, MSSD, AnglD, .FALSE.)
1496-
#endif
1497-
DO ISEA=1, NSEA
1498-
IF ( MSSD(ISEA) .NE. UNDEF ) THEN
1499-
MSSD(ISEA) = MOD ( 630. - RADE*MSSD(ISEA) , 180. )
1397+
ELSE
1398+
CALL W3S2XY ( NSEA, NSEA, NX+1, NY, WNMEAN, MAPSF, X1 )
15001399
END IF
15011400
!
15021401
! Wave elevation spectrum
@@ -1951,6 +1850,23 @@ SUBROUTINE W3EXNC ( NX, NY, IX1, IXN, IY1, IYN, NSEA, &
19511850
CALL W3S2XY ( NSEA, NSEA, NX+1, NY, TAUOCY(1:NSEA) &
19521851
, MAPSF, XY )
19531852
ENDIF ! SMCGRD
1853+
NFIELD=2
1854+
1855+
!
1856+
! Surface averaged stokes drift
1857+
ELSE IF ( IFI .EQ. 6 .AND. IFJ .EQ. 14 ) THEN
1858+
DO ISEA=1, NSEA
1859+
USSHX(ISEA)=MAX(-0.9998,MIN(0.9998,USSHX(ISEA)))
1860+
USSHY(ISEA)=MAX(-0.9998,MIN(0.9998,USSHY(ISEA)))
1861+
END DO
1862+
#ifdef W3_RTD
1863+
! Rotate x,y vector back to standard pole
1864+
IF ( FLAGUNR ) CALL W3XYRTN(NSEA, USSHX(1:NSEA), USSHY(1:NSEA), AnglD)
1865+
#endif
1866+
CALL S2GRID(USSHX(1:NSEA), XX)
1867+
CALL S2GRID(USSHY(1:NSEA), XY)
1868+
!
1869+
19541870
NFIELD=2
19551871
!
19561872
! RMS of bottom displacement amplitude

0 commit comments

Comments
 (0)