diff --git a/model/src/w3initmd.F90 b/model/src/w3initmd.F90 index 310626158d..7b5ae4b453 100644 --- a/model/src/w3initmd.F90 +++ b/model/src/w3initmd.F90 @@ -2613,7 +2613,7 @@ SUBROUTINE W3MPIO ( IMOD ) #endif ! #ifdef W3_MPI - IF ( FLGRDALL( 1, 9) ) THEN + IF ( FLGRDALL( 1, 12) ) THEN IH = IH + 1 IT = IT + 1 CALL MPI_SEND_INIT (ICEF (IAPROC), 1, WW3_FIELD_VEC, & @@ -4021,7 +4021,7 @@ SUBROUTINE W3MPIO ( IMOD ) #endif ! #ifdef W3_MPI - IF ( FLGRDALL( 1, 9) ) THEN + IF ( FLGRDALL( 1, 12) ) THEN IH = IH + 1 IT = IT + 1 CALL MPI_RECV_INIT (ICEF (I0),1,WW3_FIELD_VEC, IFROM, IT, & @@ -5533,7 +5533,7 @@ SUBROUTINE W3MPIO ( IMOD ) #endif ! #ifdef W3_MPI - IF ( FLOGRR( 1, 9) ) THEN + IF ( FLOGRR( 1, 12) ) THEN IH = IH + 1 IT = IT0 + 6 CALL MPI_SEND_INIT (ICEF(IAPROC), 1, WW3_FIELD_VEC, & @@ -5930,7 +5930,7 @@ SUBROUTINE W3MPIO ( IMOD ) #endif ! #ifdef W3_MPI - IF ( FLOGRR( 1, 9) ) THEN + IF ( FLOGRR( 1, 12) ) THEN IH = IH + 1 IT = IT0 + 6 CALL MPI_RECV_INIT (ICEF (I0),1,WW3_FIELD_VEC, & diff --git a/model/src/w3iorsmd.F90 b/model/src/w3iorsmd.F90 index 4462a6ba61..7f5cbd1643 100644 --- a/model/src/w3iorsmd.F90 +++ b/model/src/w3iorsmd.F90 @@ -984,7 +984,7 @@ SUBROUTINE W3IORS ( INXOUT, NDSR, DUMFPI, IMOD, FLRSTRT ) WRITE(NDSR,ERR=803,IOSTAT=IERR) CX(1:NSEA) WRITE(NDSR,ERR=803,IOSTAT=IERR) CY(1:NSEA) ENDIF - IF ( FLOGRR(1,9) ) & + IF ( FLOGRR(1,12) ) & WRITE(NDSR,ERR=803,IOSTAT=IERR) ICEF(1:NSEA) IF ( FLOGRR(2,1) ) & WRITE(NDSR,ERR=803,IOSTAT=IERR) HS(1:NSEA) @@ -1181,7 +1181,7 @@ SUBROUTINE W3IORS ( INXOUT, NDSR, DUMFPI, IMOD, FLRSTRT ) #ifdef W3_DEBUGINIT WRITE(740+IAPROC,*) 'Before reading ICEF' #endif - IF ( FLOGOA(1,9) ) THEN + IF ( FLOGOA(1,12) ) THEN READ (NDSR,ERR=802,IOSTAT=IERR) ICEF(1:NSEA) ENDIF #ifdef W3_DEBUGINIT diff --git a/model/src/ww3_outf.F90 b/model/src/ww3_outf.F90 index 9ed2f7bd50..233f1cbb46 100644 --- a/model/src/ww3_outf.F90 +++ b/model/src/ww3_outf.F90 @@ -120,7 +120,8 @@ PROGRAM W3OUTF USE W3IOGOMD, ONLY: W3IOGO, W3READFLGRD !/ USE W3GDATMD - USE W3WDATMD, ONLY: TIME, WLV, ICE, ICEH, ICEF, BERG, UST, USTDIR + USE W3WDATMD, ONLY: TIME, WLV, ICE, ICEH, ICEF, BERG, UST, & + USTDIR, RHOAIR USE W3ADATMD, ONLY: DW, UA, UD, AS, CX, CY, HS, WLM, T0M1, THM, & THS, FP0, THP0, FP1, THP1, DTDYN, FCUT, & ABA, ABD, UBA, UBD, SXX, SYY, SXY, USERO, & @@ -134,7 +135,7 @@ PROGRAM W3OUTF CFLTHMAX, CFLKMAX, BEDFORMS, WHITECAP, T02, & CGE, T01, HSIG, STMAXE, STMAXD, HMAXE, & HCMAXE, HMAXD, HCMAXD, MSSD, MSCD, WBT, & - WNMEAN + WNMEAN, TAUA, TAUADIR USE W3ODATMD, ONLY: NDSO, NDSE, NDST, NOGRP, NGRPP, IDOUT, & UNDEF, FLOGRD, FNMPRE, NOSWLL, NOGE ! @@ -879,8 +880,61 @@ SUBROUTINE W3EXGO ( NX, NY, NSEA ) CALL W3S2XY ( NSEA, NSEA, NX+1, NY, BERG , MAPSF, X1 ) ENDIF ! + ELSE IF ( IFI .EQ. 1 .AND. IFJ .EQ. 8 ) THEN + !! Note - TAUA and TAUADIR read in from .ww3 file are TAUAX,TAUAY + IF ( VECTOR ) THEN + FLTWO = .TRUE. + ELSE + FLDIR = .TRUE. + END IF + FSC = 0.01 + UNITS = 'Pa' + ENAME = '.taua' +#ifdef W3_RTD + ! Rotate x,y vector back to standard pole + IF ( FLAGUNR ) THEN + CALL W3XYRTN(NSEA, TAUA(1:NSEA), TAUADIR(1:NSEA), AnglD) + ENDIF +#endif + IF ( ITYPE .EQ. 4 ) THEN + XS1 = TAUA(1:NSEA) + XS2 = TAUADIR(1:NSEA) + ELSE + CALL W3S2XY ( NSEA, NSEA, NX+1, NY, TAUA(1:NSEA), MAPSF, XX ) + CALL W3S2XY ( NSEA, NSEA, NX+1, NY, TAUADIR(1:NSEA), MAPSF, XY ) + ENDIF + + DO ISEA=1, NSEA + UABS = SQRT(TAUA(ISEA)**2+TAUADIR(ISEA)**2) + IF ( UABS .GT. 0.01 ) THEN + TAUADIR(ISEA) = MOD ( 630. - & + RADE*ATAN2(TAUA(ISEA),TAUADIR(ISEA)), 360.) + ELSE + TAUADIR(ISEA) = UNDEF + END IF + UA(ISEA) = UABS + END DO + IF ( ITYPE .EQ. 4 ) THEN + XS3 = TAUA(1:NSEA) + XS4 = TAUADIR(1:NSEA) + ELSE + CALL W3S2XY ( NSEA, NSEA, NX+1, NY, TAUA(1:NSEA), MAPSF, X1 ) + CALL W3S2XY ( NSEA, NSEA, NX+1, NY, TAUADIR(1:NSEA), MAPSF, X2) + ENDIF +! + ELSE IF ( IFI .EQ. 1 .AND. IFJ .EQ. 9 ) THEN + FLONE = .TRUE. + FSC = 0.0001 + UNITS = 'kg m-3' + ENAME = '.rhoa' + IF ( ITYPE .EQ. 4 ) THEN + XS1 = RHOAIR + ELSE + CALL W3S2XY ( NSEA, NSEA, NX+1, NY, RHOAIR, MAPSF, X1 ) + ENDIF +! #ifdef W3_BT4 - ELSE IF ( IFI .EQ. 1 .AND. IFJ .EQ. 8 ) THEN + ELSE IF ( IFI .EQ. 1 .AND. IFJ .EQ. 10 ) THEN FLONE = .TRUE. FSC = 0.01 UNITS = 'Krumbein phi scale' @@ -894,7 +948,7 @@ SUBROUTINE W3EXGO ( NX, NY, NSEA ) #endif ! #ifdef W3_IS2 - ELSE IF ( IFI .EQ. 1 .AND. IFJ .EQ. 9 ) THEN + ELSE IF ( IFI .EQ. 1 .AND. IFJ .EQ. 11 ) THEN FLONE = .TRUE. FSC = 0.001 UNITS = 'm' @@ -907,7 +961,7 @@ SUBROUTINE W3EXGO ( NX, NY, NSEA ) #endif ! #ifdef W3_IS2 - ELSE IF ( IFI .EQ. 1 .AND. IFJ .EQ. 10) THEN + ELSE IF ( IFI .EQ. 1 .AND. IFJ .EQ. 12) THEN FLONE = .TRUE. FSC = 0.001 UNITS = 'm'