Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

QP #1050

Merged
merged 5 commits into from
Sep 14, 2023
Merged

QP #1050

Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 11 additions & 4 deletions manual/eqs/output.tex
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ \subsection{~Output parameters} \label{sub:outpars}
in \para\ref{sec:ww3shel}. That input file also provides a list of flags
indicating if output parameters are available in different field
output file types (ASCII, grib, igrads, NetCDF).
For any details on how these parameters are computed, the user may read the code of the {\code w3iogo} routine, in the {\code w3iogomd.ftn} module.
For any details on how these parameters are computed, the user may read the code of the {\code w3iogo} routine, in the {\code w3iogomd.F90} module.

Selection of field outputs in {\code ww3\_shel.inp} is most easily performed by providing a list of the
Selection of field outputs in {\code ww3\_shel.nml} or {\code ww3\_shel.inp} is most easily performed by providing a list of the
requested parameters, for example, {\textbf HS DIR SPR} will request the calculation of significant wave height, mean direction and directional spread. These will thus be stored in the {\code out\_grd.XX} file and can be post-processed, for example in NetCDF using {\code ww3\_ouf}. Examples are given in \para\ref{sec:ww3multi} and
\para\ref{sec:ww3ounf}. The names for these namelists are the bold names below, for
example \textbf{HS}.
Expand All @@ -26,6 +26,9 @@ \subsection{~Output parameters} \label{sub:outpars}
file extensions, NetCDF variable names and namelist-based selection (see
also \para\ref{sec:ww3ounf}), and the long parameter name/definition.

When the result is not overly sensitive to the contribution of the unresolved part of the spectrum (for $f<f_{NK}$), the contribution of the tail is parameterized assuming a power law decay of the spectrum, by default $E(f,\theta) = E(f_{NK},\theta) (f_{NK}/f)^{-5}$, for some parameters this is either unnecessary or misleading, and the integrals are computed only up to $f_{NK}$.


Finally we note that in all definitions the frequency is the \emph{relative} frequency. Thus, in the presence of currents, these can only be compared to drifting measurement data or data obtained in wavenumber and converted to frequency. Comparison to fixed instrument data requires the use of the full spectrum and proper conversion to the fixed reference frame.

\begin{list}{\Roman{outgrps})\hfill}
Expand Down Expand Up @@ -300,8 +303,12 @@ \subsection{~Output parameters} \label{sub:outpars}
\item \textbf{MSD} Direction of the maximum slope variance mss$_u$
\item \textbf{MCD} Spectral tail direction
\item \textbf{QP} Peakedness parameter \citep{art:G70}
\begin{equation} Q_p = \frac{2}{E^2} \int_0^{2\pi} \int_0^\infty
\sigma\:F(\sigma,\theta)^2\:d\sigma\:d\theta \: \label{eq:qp}
\begin{equation} Q_p = \frac{2}{E^2} \int_0^{f_{NK}} f \left( \int_0^{2\pi}
F(f,\theta) \:\rd \theta \right)^2 \: \rd f \: \label{eq:qp}
\end{equation}
\item \textbf{QKK} wavenumber peakedness \citep{art:DC23}
\begin{equation} Q_{kk} = \frac{1}{E^2} \int_0^{f_{NK}} \int_0^{2\pi}
0.5 \left[ A(k,\theta)+ A(k,\theta+\pi)\right]^2 \frac{\sigma^2}{k C_g} \:\rd \theta \: \rd \sigma \: \label{eq:qkk}
\end{equation}
\end{list}

Expand Down
10 changes: 10 additions & 0 deletions manual/manual.bib
Original file line number Diff line number Diff line change
Expand Up @@ -3654,3 +3654,13 @@ @article{vanVledder2006
volume = {53},
year = {2006}
}

@article{art:DC23,
author = {De Carlo, Marine and Fabrice Ardhuin and Annabelle Ollivier and Adrien Nigou },
journal = {Journal of Geophysical Research - Oceans},
keywords = {wave groups,altimetry},
pages = {},
title = {Wave groups and small scale variability of wave heights observed by altimeters},
volume = {},
year = {2023}
}
19 changes: 15 additions & 4 deletions model/src/w3adatmd.F90
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,7 @@ MODULE W3ADATMD
! MSSD R.A. Public Direction of MSSX
! MSCD R.A. Public Direction of MSCX
! QP R.A. Public Goda peakedness parameter.
! QKK R.A. Public Spectral bandwidth (De Carlo et al. 2023)
!
! DTDYN R.A. Public Mean dynamic time step (raw).
! FCUT R.A. Public Cut-off frequency for tail.
Expand Down Expand Up @@ -474,9 +475,9 @@ MODULE W3ADATMD
! Output fields group 8)
!
REAL, POINTER :: MSSX(:), MSSY(:), MSSD(:), &
MSCX(:), MSCY(:), MSCD(:)
MSCX(:), MSCY(:), MSCD(:), QKK(:)
REAL, POINTER :: XMSSX(:), XMSSY(:), XMSSD(:), &
XMSCX(:), XMSCY(:), XMSCD(:)
XMSCX(:), XMSCY(:), XMSCD(:), XQKK(:)
!
! Output fields group 9)
!
Expand Down Expand Up @@ -612,7 +613,7 @@ MODULE W3ADATMD
BEDFORMS(:,:), PHIBBL(:), TAUBBL(:,:)
!
REAL, POINTER :: MSSX(:), MSSY(:), MSSD(:), &
MSCX(:), MSCY(:), MSCD(:)
MSCX(:), MSCY(:), MSCD(:), QKK(:)
!
REAL, POINTER :: DTDYN(:), FCUT(:), CFLXYMAX(:), &
CFLTHMAX(:), CFLKMAX(:)
Expand Down Expand Up @@ -1264,7 +1265,7 @@ SUBROUTINE W3DIMA ( IMOD, NDSE, NDST, D_ONLY )
ALLOCATE ( WADATS(IMOD)%MSSX(NSEALM), WADATS(IMOD)%MSSY(NSEALM), &
WADATS(IMOD)%MSCX(NSEALM), WADATS(IMOD)%MSCY(NSEALM), &
WADATS(IMOD)%MSSD(NSEALM), WADATS(IMOD)%MSCD(NSEALM), &
STAT=ISTAT )
WADATS(IMOD)%QKK(NSEALM), STAT=ISTAT )
CHECK_ALLOC_STATUS ( ISTAT )
!
WADATS(IMOD)%MSSX = UNDEF
Expand All @@ -1273,6 +1274,7 @@ SUBROUTINE W3DIMA ( IMOD, NDSE, NDST, D_ONLY )
WADATS(IMOD)%MSCX = UNDEF
WADATS(IMOD)%MSCY = UNDEF
WADATS(IMOD)%MSCD = UNDEF
WADATS(IMOD)%QKK = UNDEF
call print_memcheck(memunit, 'memcheck_____:'//' W3DIMA 8')
!
! 9) Numerical diagnostics
Expand Down Expand Up @@ -2273,13 +2275,20 @@ SUBROUTINE W3XDMA ( IMOD, NDSE, NDST, OUTFLAGS )
ALLOCATE ( WADATS(IMOD)%XQP(1) )
END IF
!
IF ( OUTFLAGS( 8, 6) ) THEN
ALLOCATE ( WADATS(IMOD)%XQKK(NXXX) )
ELSE
ALLOCATE ( WADATS(IMOD)%XQKK(1) )
END IF
!
WADATS(IMOD)%XMSSX = UNDEF
WADATS(IMOD)%XMSSY = UNDEF
WADATS(IMOD)%XMSSD = UNDEF
WADATS(IMOD)%XMSCX = UNDEF
WADATS(IMOD)%XMSCY = UNDEF
WADATS(IMOD)%XMSCD = UNDEF
WADATS(IMOD)%XQP(1) = UNDEF
WADATS(IMOD)%XQKK = UNDEF
!
IF ( OUTFLAGS( 9, 1) ) THEN
ALLOCATE ( WADATS(IMOD)%XDTDYN(NXXX), STAT=ISTAT )
Expand Down Expand Up @@ -2893,6 +2902,7 @@ SUBROUTINE W3SETA ( IMOD, NDSE, NDST )
MSCX => WADATS(IMOD)%MSCX
MSCY => WADATS(IMOD)%MSCY
MSCD => WADATS(IMOD)%MSCD
QKK => WADATS(IMOD)%QKK
!
DTDYN => WADATS(IMOD)%DTDYN
FCUT => WADATS(IMOD)%FCUT
Expand Down Expand Up @@ -3231,6 +3241,7 @@ SUBROUTINE W3XETA ( IMOD, NDSE, NDST )
MSCX => WADATS(IMOD)%XMSCX
MSCY => WADATS(IMOD)%XMSCY
MSCD => WADATS(IMOD)%XMSCD
QKK => WADATS(IMOD)%XQKK
!
DTDYN => WADATS(IMOD)%XDTDYN
FCUT => WADATS(IMOD)%XFCUT
Expand Down
52 changes: 40 additions & 12 deletions model/src/w3initmd.F90
Original file line number Diff line number Diff line change
Expand Up @@ -639,23 +639,23 @@ SUBROUTINE W3INIT ( IMOD, IsMulti, FEXT, MDS, MTRACE, ODAT, FLGRD, FLGR2, FLGD,
IF (FSTOTALIMP .and. .NOT. LPDLIB) THEN
WRITE(NDSE,*) 'IMPTOTAL is selected'
WRITE(NDSE,*) 'But PDLIB is not'
CALL FLUSH(NDSE)
STOP
CALL FLUSH(NDSE)
STOP
ELSE IF (FSTOTALEXP .and. .NOT. LPDLIB) THEN
WRITE(NDSE,*) 'EXPTOTAL is selected'
WRITE(NDSE,*) 'But PDLIB is not'
CALL FLUSH(NDSE)
STOP
CALL FLUSH(NDSE)
STOP
END IF
#ifdef W3_PDLIB
IF (B_JGS_BLOCK_GAUSS_SEIDEL .AND. .NOT. B_JGS_USE_JACOBI) THEN
WRITE(NDSE,*) 'B_JGS_BLOCK_GAUSS_SEIDEL is used but the Jacobi solver is not choosen'
WRITE(NDSE,*) 'Please set JGS_USE_JACOBI .eqv. .true.'
CALL FLUSH(NDSE)
STOP
CALL FLUSH(NDSE)
STOP
ENDIF
#endif

!
! 1.c Open files without unpacking MDS ,,,
!
Expand Down Expand Up @@ -1303,10 +1303,10 @@ SUBROUTINE W3INIT ( IMOD, IsMulti, FEXT, MDS, MTRACE, ODAT, FLGRD, FLGR2, FLGD,
END DO
!Li END DO
#ifdef W3_DEBUGSTP
WRITE(740+IAPROC,*) 'w3initmd 1: max/min(WLVeff)=', max_val, min_val
FLUSH(740+IAPROC)
max_val = 0
min_val = 0
WRITE(740+IAPROC,*) 'w3initmd 1: max/min(WLVeff)=', max_val, min_val
FLUSH(740+IAPROC)
max_val = 0
min_val = 0
#endif
DO JSEA=1, NSEAL
CALL INIT_GET_ISEA(ISEA, JSEA)
Expand Down Expand Up @@ -2147,7 +2147,7 @@ SUBROUTINE W3MPIO ( IMOD )
STMAXE, STMAXD, HMAXE, HCMAXE, HMAXD, &
HCMAXD, QP, PTHP0, PQP, PPE, PGW, PSW, &
PTM1, PT1, PT2, PEP, WBT, CX, CY, &
TAUOCX, TAUOCY, WNMEAN
TAUOCX, TAUOCY, WNMEAN, QKK
#endif

#ifdef W3_MPI
Expand Down Expand Up @@ -3394,6 +3394,20 @@ SUBROUTINE W3MPIO ( IMOD )
#ifdef W3_MPI
END IF
!
IF ( FLGRDALL( 8, 6) ) THEN
IH = IH + 1
IT = IT + 1
CALL MPI_SEND_INIT (QKK (1),NSEALM , MPI_REAL, IROOT, &
IT, MPI_COMM_WAVE, IRQGO(IH), IERR)
#endif
#ifdef W3_MPIT
WRITE (NDST,9011) IH, ' 8/06', IROOT, IT, IRQGO(IH), IERR
#endif
#ifdef W3_MPI
END IF
#endif
!
#ifdef W3_MPI
IF ( FLGRDALL( 9, 1) ) THEN
IH = IH + 1
IT = IT + 1
Expand Down Expand Up @@ -4627,6 +4641,20 @@ SUBROUTINE W3MPIO ( IMOD )
#ifdef W3_MPI
END IF
!
IF ( FLGRDALL( 8, 6) ) THEN
IH = IH + 1
IT = IT + 1
CALL MPI_RECV_INIT (QKK (I0),1,WW3_FIELD_VEC, IFROM, IT, &
MPI_COMM_WAVE, IRQGO2(IH), IERR )
#endif
#ifdef W3_MPIT
WRITE (NDST,9011) IH, ' 8/06', IFROM, IT, IRQGO2(IH), IERR
#endif
#ifdef W3_MPI
END IF
#endif
!
#ifdef W3_MPI
IF ( FLGRDALL( 9, 1) ) THEN
IH = IH + 1
IT = IT + 1
Expand Down
37 changes: 28 additions & 9 deletions model/src/w3iogomd.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1123,6 +1123,9 @@ SUBROUTINE W3FLDTOIJ(FLD, I, J, IAPROC, NAPOUT, NDSEN)
CASE('QP')
I = 8
J = 5
CASE('QKK')
I = 8
J = 6
!
! Group 9
!
Expand Down Expand Up @@ -1294,7 +1297,7 @@ SUBROUTINE W3OUTG ( A, FLPART, FLOUTG, FLOUTG2 )
TH2M, STH2M, HSIG, STMAXE, STMAXD, &
HCMAXE, HMAXE, HCMAXD, HMAXD, USSP, QP, PQP,&
PTHP0, PPE, PGW, PSW, PTM1, PT1, PT2, PEP, &
WBT
WBT, QKK
USE W3ODATMD, ONLY: NDST, UNDEF, IAPROC, NAPROC, NAPFLD, &
ICPRT, DTPRT, WSCUT, NOSWLL, FLOGRD, FLOGR2,&
NOGRP, NGRPP
Expand Down Expand Up @@ -1353,7 +1356,8 @@ SUBROUTINE W3OUTG ( A, FLPART, FLOUTG, FLOUTG2 )
STMAXDL(NSEAL), TLPHI(NSEAL), &
WL02X(NSEAL), WL02Y(NSEAL), &
ALPXT(NSEAL), ALPYT(NSEAL), &
ALPXY(NSEAL), SCREST(NSEAL)
ALPXY(NSEAL), SCREST(NSEAL), &
QK1(NSEAL), QK2(NSEAL)
REAL USSCO, FT1
REAL, SAVE :: HSMIN = 0.01
LOGICAL :: FLOLOC(NOGRP,NGRPP)
Expand Down Expand Up @@ -1429,6 +1433,7 @@ SUBROUTINE W3OUTG ( A, FLPART, FLOUTG, FLOUTG2 )
TLPHI = 0.
STMAXEL = 0.
STMAXDL = 0.
QK2 = 0.
!
HS = UNDEF
WLM = UNDEF
Expand All @@ -1445,6 +1450,7 @@ SUBROUTINE W3OUTG ( A, FLPART, FLOUTG, FLOUTG2 )
ALPXY = UNDEF
ALPXT = UNDEF
ALPYT = UNDEF
QKK = UNDEF
THMP = UNDEF
T02P = UNDEF
SCREST = UNDEF
Expand Down Expand Up @@ -1481,6 +1487,7 @@ SUBROUTINE W3OUTG ( A, FLPART, FLOUTG, FLOUTG2 )
ABXY = 0.
ABYX = 0.
ABST = 0.
QK1 = 0.
!
! 2.b Integrate energy in band
!
Expand All @@ -1506,6 +1513,7 @@ SUBROUTINE W3OUTG ( A, FLPART, FLOUTG, FLOUTG2 )
IF (ITH.LE.NTH/2) THEN
ABST(JSEA) = ABST(JSEA) + &
A(ITH,IK,JSEA)*A(ITH+NTH/2,IK,JSEA)
QK1 (JSEA) = QK1(JSEA) + (A(ITH,IK,JSEA)+A(ITH+NTH/2,IK,JSEA))**2
END IF
CALL INIT_GET_ISEA(ISEA, JSEA)
FACTOR = MAX ( 0.5 , CG(IK,ISEA)/SIG(IK)*WN(IK,ISEA) )
Expand All @@ -1532,16 +1540,17 @@ SUBROUTINE W3OUTG ( A, FLPART, FLOUTG, FLOUTG2 )
DO JSEA=1, NSEAL
CALL INIT_GET_ISEA(ISEA, JSEA)
FACTOR = DDEN(IK) / CG(IK,ISEA)
EBD(IK,JSEA) = AB(JSEA) * FACTOR
ET(JSEA) = ET(JSEA) + EBD(IK,JSEA)
EBD(IK,JSEA) = AB(JSEA) * FACTOR ! this is E(f)*df
ET (JSEA) = ET (JSEA) + EBD(IK,JSEA)
#ifdef W3_IG1
IF (IK.EQ.NINT(IGPARS(5))) HSIG(JSEA) = 4*SQRT(ET(JSEA))
#endif
ETF(JSEA) = ETF(JSEA) + EBD(IK,JSEA) * CG(IK,ISEA)
EWN(JSEA) = EWN(JSEA) + EBD(IK,JSEA) / WN(IK,ISEA)
ETR(JSEA) = ETR(JSEA) + EBD(IK,JSEA) / SIG(IK)
ET1(JSEA) = ET1(JSEA) + EBD(IK,JSEA) * SIG(IK)
EET1(JSEA) = EET1(JSEA)+ EBD(IK,JSEA)**2 * SIG(IK)
! EET1(JSEA) = EET1(JSEA)+ EBD(IK,JSEA)**2 * SIG(IK)
EET1(JSEA) = EET1(JSEA)+ EBD(IK,JSEA)**2 * SIG(IK)/DSII(IK)
ET02(JSEA) = ET02(JSEA)+ EBD(IK,JSEA) * SIG(IK)**2
ETX(JSEA) = ETX(JSEA) + ABX(JSEA) * FACTOR
ETY(JSEA) = ETY(JSEA) + ABY(JSEA) * FACTOR
Expand All @@ -1550,6 +1559,8 @@ SUBROUTINE W3OUTG ( A, FLPART, FLOUTG, FLOUTG2 )
TUSY(JSEA) = TUSY(JSEA) + ABY(JSEA)*FACTOR &
*GRAV*WN(IK,ISEA)/SIG(IK)
ETXX(JSEA) = ETXX(JSEA) + ABX2(JSEA) * FACTOR* WN(IK,ISEA)**2
! NB: QK1 (JSEA) = QK1(JSEA) + A(ITH,IK,JSEA)**2
QK2 (JSEA) = QK2 (JSEA) + QK1(JSEA) * FACTOR* SIG(IK) /WN(IK,ISEA)
ETYY(JSEA) = ETYY(JSEA) + ABY2(JSEA) * FACTOR* WN(IK,ISEA)**2
ETXY(JSEA) = ETXY(JSEA) + ABYX(JSEA) * FACTOR* WN(IK,ISEA)**2
IF (SIG(IK)*0.5*(1+XFR).LT.0.4*TPI) THEN
Expand Down Expand Up @@ -1932,13 +1943,13 @@ SUBROUTINE W3OUTG ( A, FLPART, FLOUTG, FLOUTG2 )
! 3.b Add tail
! ( DTH * SIG absorbed in FTxx )

EBAND = AB(JSEA) / CG(NK,ISEA)
EBAND = AB(JSEA) / CG(NK,ISEA) ! EBAND is E(sigma)/sigma for the last frequency band
ET (JSEA) = ET (JSEA) + FTE * EBAND
EWN(JSEA) = EWN(JSEA) + FTWL * EBAND
ETF(JSEA) = ETF(JSEA) + GRAV * FTTR * EBAND ! this is the integral of CgE in deep water
ETR(JSEA) = ETR(JSEA) + FTTR * EBAND
ET1(JSEA) = ET1(JSEA) + FT1 * EBAND
EET1(JSEA)= ET1(JSEA) + FT1 * EBAND**2
! EET1(JSEA)= EET1(JSEA) + FT1 * EBAND**2 : this was not correct. Actually tail may not be needed for Qp.
ET02(JSEA)= ET02(JSEA)+ EBAND* 0.5 * SIG(NK)**4 * DTH
ETX(JSEA) = ETX(JSEA) + FTE * ABX(JSEA) / CG(NK,ISEA)
ETY(JSEA) = ETY(JSEA) + FTE * ABY(JSEA) / CG(NK,ISEA)
Expand Down Expand Up @@ -1980,12 +1991,15 @@ SUBROUTINE W3OUTG ( A, FLPART, FLOUTG, FLOUTG2 )
END IF
#endif
IF ( ET(JSEA) .GT. 1.E-7 ) THEN
QP(JSEA) = ( 2. / ET(JSEA)**2 ) * EET1(JSEA) * TPIINV**2
QP(JSEA) = ( 2. / ET(JSEA)**2 ) * EET1(JSEA)
WLM(JSEA) = EWN(JSEA) / ET(JSEA) * TPI
T0M1(JSEA) = ETR(JSEA) / ET(JSEA) * TPI
THS(JSEA) = RADE * SQRT ( MAX ( 0. , 2. * ( 1. - SQRT ( &
MAX(0.,(ETX(JSEA)**2+ETY(JSEA)**2)/ET(JSEA)**2) ) ) ) )
IF ( THS(JSEA) .LT. 0.01*RADE*DTH ) THS(JSEA) = 0.
! NB: QK1 (JSEA) = QK1(JSEA) + A(ITH,IK,JSEA)**2
! QK2 (JSEA) = QK2 (JSEA) + QK1(JSEA) * FACTOR* SIG(IK) /WN(IK,ISEA)
QKK (JSEA) = SQRT(0.5*QK2 (JSEA))/ET(JSEA)
ELSE
WLM(JSEA) = 0.
T0M1(JSEA) = TPI / SIG(NK)
Expand Down Expand Up @@ -2495,7 +2509,7 @@ SUBROUTINE W3IOGO ( INXOUT, NDSOG, IOTST, IMOD )
CFLXYMAX, CFLTHMAX, CFLKMAX, P2SMS, US3D, &
TH1M, STH1M, TH2M, STH2M, HSIG, PHICE, TAUICE,&
STMAXE, STMAXD, HMAXE, HCMAXE, HMAXD, HCMAXD,&
USSP, TAUOCX, TAUOCY
USSP, TAUOCX, TAUOCY, QKK
!/
USE W3ODATMD, ONLY: NOGRP, NGRPP, IDOUT, UNDEF, NDST, NDSE, &
FLOGRD, IPASS => IPASS1, WRITE => WRITE1, &
Expand Down Expand Up @@ -2871,6 +2885,7 @@ SUBROUTINE W3IOGO ( INXOUT, NDSOG, IOTST, IMOD )
IF ( FLOGRD( 8, 3) ) MSSD (ISEA) = UNDEF
IF ( FLOGRD( 8, 4) ) MSCD (ISEA) = UNDEF
IF ( FLOGRD( 8, 5) ) QP (ISEA) = UNDEF
IF ( FLOGRD( 8, 6) ) QKK (ISEA) = UNDEF
!
IF ( FLOGRD( 9, 1) ) DTDYN (ISEA) = UNDEF
IF ( FLOGRD( 9, 2) ) FCUT (ISEA) = UNDEF
Expand Down Expand Up @@ -3225,6 +3240,8 @@ SUBROUTINE W3IOGO ( INXOUT, NDSOG, IOTST, IMOD )
WRITE ( NDSOG ) MSCD(1:NSEA)
ELSE IF ( IFI .EQ. 8 .AND. IFJ .EQ. 5 ) THEN
WRITE ( NDSOG ) QP(1:NSEA)
ELSE IF ( IFI .EQ. 8 .AND. IFJ .EQ. 6 ) THEN
WRITE ( NDSOG ) QKK(1:NSEA)
!
! Section 9)
!
Expand Down Expand Up @@ -3557,6 +3574,8 @@ SUBROUTINE W3IOGO ( INXOUT, NDSOG, IOTST, IMOD )
MSCD(1:NSEA)
ELSE IF ( IFI .EQ. 8 .AND. IFJ .EQ. 5 ) THEN
READ (NDSOG,END=801,ERR=802,IOSTAT=IERR) QP(1:NSEA)
ELSE IF ( IFI .EQ. 8 .AND. IFJ .EQ. 6 ) THEN
READ (NDSOG,END=801,ERR=802,IOSTAT=IERR) QKK(1:NSEA)
!
! Section 9)
!
Expand Down
Loading