diff -rupN WW3_314_12/bin/comp.Intel WW3_314_13/bin/comp.Intel --- WW3_314_12/bin/comp.Intel 2012-10-02 21:40:06.000000000 -0400 +++ WW3_314_13/bin/comp.Intel 2012-10-02 21:25:16.000000000 -0400 @@ -78,8 +78,8 @@ # 2.b.1 Build options and determine compiler name # Note that all but GrADS output is forced to big endian data -# opt="-c -list -O3 -xSSE4.2 -ip -module $path_m" - opt="-c -list -O0 -g -traceback -check all -fpe0 -ftrapuv -module $path_m" + opt="-c -list -O3 -xSSE4.2 -ip -module $path_m" +# opt="-c -list -O0 -g -traceback -check all -fpe0 -ftrapuv -module $path_m" if [ "$name" != 'gx_outp' ] && [ "$name" != 'gx_outf' ] then diff -rupN WW3_314_12/bin/comp.Portland WW3_314_13/bin/comp.Portland --- WW3_314_12/bin/comp.Portland 2012-10-02 21:40:06.000000000 -0400 +++ WW3_314_13/bin/comp.Portland 2012-10-02 21:25:16.000000000 -0400 @@ -78,9 +78,9 @@ # 2.b.1 Build options and determine compiler name # Note that all but GrADS output is forced to big endian data -# opt="-c -Mlist -fast -module $path_m" + opt="-c -Mlist -fast -module $path_m" - opt="-c -O0 -g -traceback -Mbounds -Mchkfpstk -Mchkptr -Mchkstk -Mlist -module $path_m" +# opt="-c -O0 -g -traceback -Mbounds -Mchkfpstk -Mchkptr -Mchkstk -Mlist -module $path_m" if [ "$name" != 'gx_outp' ] && [ "$name" != 'gx_outf' ] then diff -rupN WW3_314_12/bin/make_MPI WW3_314_13/bin/make_MPI --- WW3_314_12/bin/make_MPI 2012-10-02 21:40:06.000000000 -0400 +++ WW3_314_13/bin/make_MPI 2012-10-02 21:25:16.000000000 -0400 @@ -88,8 +88,8 @@ # 4. Reset switch file # # --------------------------------------------------------------------------- # - cp switch.shrd switch -# cp switch.hold switch +# cp switch.shrd switch + cp switch.hold switch # --------------------------------------------------------------------------- # # 5. Clean up # diff -rupN WW3_314_12/ftn/wmgridmd.ftn WW3_314_13/ftn/wmgridmd.ftn --- WW3_314_12/ftn/wmgridmd.ftn 2012-10-02 21:40:05.000000000 -0400 +++ WW3_314_13/ftn/wmgridmd.ftn 2012-10-02 21:25:15.000000000 -0400 @@ -5,7 +5,7 @@ !/ | WAVEWATCH III NOAA/NCEP | !/ | H. L. Tolman | !/ | FORTRAN 90 | -!/ | Last update : 29-May-2009 | +!/ | Last update : 12-Mar-2012 | !/ +-----------------------------------+ !/ !/ 28-Dec-2005 : Origination WMGLOW, WMGHGH, WMRSPC. ( version 3.08 ) @@ -24,8 +24,9 @@ !/ 20-May-2009 : Linking FLAGST and FLGHG1. ( version 3.14 ) !/ 26-May-2009 : Fix erroneous cyclic upd in WMGHGH. ( version 3.14 ) !/ 29-May-2009 : Preparing distribution version. ( version 3.14 ) +!/ 12-Mar-2012 : Use MPI_COMM_NULL in checks. ( version 3.14 ) !/ -!/ Copyright 2009 National Weather Service (NWS), +!/ Copyright 2009-2012 National Weather Service (NWS), !/ National Oceanic and Atmospheric Administration. All rights !/ reserved. WAVEWATCH III is a trademark of the NWS. !/ No unauthorized use without permission. @@ -98,12 +99,13 @@ !/ | WAVEWATCH III NOAA/NCEP | !/ | H. L. Tolman | !/ | FORTRAN 90 | -!/ | Last update : 26-Mar-2009 | +!/ | Last update : 12-MAr-2012 | !/ +-----------------------------------+ !/ !/ 06-Oct-2005 : Origination. ( version 3.08 ) !/ 10-Feb-2006 : Add test on grid resolution. ( version 3.09 ) !/ 26-Mar-2009 : Adding test output !/T9. ( version 3.14 ) +!/ 12-Mar-2012 : Use MPI_COMM_NULL in checks. ( version 3.14 ) !/ ! 1. Purpose : ! @@ -222,7 +224,7 @@ ! !/MPI FLBARR = FLBARR .OR. MDATAS(I)%FBCAST !/MPI IF ( MDATAS(I)%FBCAST .AND. & -!/MPI MDATAS(I)%MPI_COMM_BCT.NE.-1 ) THEN +!/MPI MDATAS(I)%MPI_COMM_BCT.NE.MPI_COMM_NULL ) THEN !/MPI NXYG = GRIDS(I)%NX * GRIDS(I)%NY !/MPI CALL MPI_BCAST ( GRIDS(I)%MAPSTA(1,1), NXYG, & !/MPI MPI_INTEGER, 0, & diff -rupN WW3_314_12/ftn/wminitmd.ftn WW3_314_13/ftn/wminitmd.ftn --- WW3_314_12/ftn/wminitmd.ftn 2012-10-02 21:40:05.000000000 -0400 +++ WW3_314_13/ftn/wminitmd.ftn 2012-10-02 21:25:15.000000000 -0400 @@ -14,6 +14,8 @@ !/ 16-Aug-2010 : Adding NTRMAX to unify NTRACE. ( version 3.14 ) !/ 07-Mar-2012 : Adding TNAMES to avoid read warn. ( version 3.14 ) !/ Adjust allocation INPMAP and IDINP. +!/ 12-Mar-2012 : Fixing format 9061. ( version 3.14 ) +!/ Use MPI_COMM_NULL for checks instead of fixed '-1'. !/ !/ Copyright 2009-2012 National Weather Service (NWS), !/ National Oceanic and Atmospheric Administration. All rights @@ -1842,7 +1844,7 @@ ! CALL WMSETM ( I, MDSE, MDST ) !/MPI MPI_COMM_LOC = MPI_COMM_GRD -!/MPI IF ( MPI_COMM_LOC .EQ. -1 ) CYCLE +!/MPI IF ( MPI_COMM_LOC .EQ. MPI_COMM_NULL ) CYCLE ! CALL WMUGET ( MDSE, MDST, NDSFND, 'OUT' ) CALL WMUSET ( MDSE, MDST, NDSFND, .TRUE., DESC='Log file' ) @@ -2072,7 +2074,7 @@ !/MPI CALL WMSETM ( I, MDSE, MDST ) !/MPI CALL W3SETG ( I, MDSE, MDST ) !/MPI CALL W3SETO ( I, MDSE, MDST ) -!/MPI IF ( FBCAST .AND. MPI_COMM_BCT.NE.-1 ) THEN +!/MPI IF ( FBCAST .AND. MPI_COMM_BCT.NE.MPI_COMM_NULL ) THEN !/MPI CALL MPI_BCAST ( TOUTP(1,I), 2, MPI_INTEGER, 0, & !/MPI MPI_COMM_BCT, IERR_MPI ) !/MPI CALL MPI_BCAST ( TSYNC(1,I), 2, MPI_INTEGER, 0, & @@ -2106,7 +2108,7 @@ !/MPI MPI_COMM_BCT, IERR_MPI ) !/MPI CALL MPI_BCAST ( FILEXT, 10, MPI_CHARACTER, 0, & !/MPI MPI_COMM_BCT, IERR_MPI ) -!/MPI IF ( MPI_COMM_GRD .EQ. -1 ) & +!/MPI IF ( MPI_COMM_GRD .EQ. MPI_COMM_NULL ) & !/MPI CALL W3DIMX ( I, NX, NY, NSEA, MDSE, MDST ) ! !/MPI CALL MPI_BCAST ( NK , 1, MPI_INTEGER, 0, & @@ -2117,7 +2119,7 @@ !/MPI MPI_COMM_BCT, IERR_MPI ) !/MPI CALL MPI_BCAST ( FR1 , 1, MPI_REAL , 0, & !/MPI MPI_COMM_BCT, IERR_MPI ) -!/MPI IF ( MPI_COMM_GRD .EQ. -1 ) & +!/MPI IF ( MPI_COMM_GRD .EQ. MPI_COMM_NULL ) & !/MPI CALL W3DIMS ( I, NK, NTH, MDSE, MDST ) !/MPI CALL MPI_BCAST ( TH , NTH, MPI_REAL , 0, & !/MPI MPI_COMM_BCT, IERR_MPI ) @@ -2255,7 +2257,7 @@ ! !/SHRD IF ( .NOT. FLRBPI(I) .AND. FLBPI ) THEN !/MPI IF ( .NOT. FLRBPI(I) .AND. FLBPI .AND. & -!/MPI MPI_COMM_GRD .NE. -1) THEN +!/MPI MPI_COMM_GRD .NE. MPI_COMM_NULL) THEN CALL WMUSET ( MDSE, MDST, NDS(9), .FALSE. ) IF ( BCDUMP(I) .AND. IAPROC.EQ.NAPBPT ) THEN J = LEN_TRIM(FILEXT) @@ -2279,19 +2281,19 @@ ! DO I=1, NRGRD !/MPI CALL WMSETM ( I, MDSE, MDST ) -!/MPI IF ( MPI_COMM_GRD .NE. -1 ) CALL WMIOBS ( I ) +!/MPI IF ( MPI_COMM_GRD .NE. MPI_COMM_NULL ) CALL WMIOBS ( I ) !/SHRD CALL WMIOBS ( I ) END DO ! DO I=1, NRGRD !/MPI CALL WMSETM ( I, MDSE, MDST ) -!/MPI IF ( MPI_COMM_GRD .NE. -1 ) CALL WMIOBG ( I ) +!/MPI IF ( MPI_COMM_GRD .NE. MPI_COMM_NULL ) CALL WMIOBG ( I ) !/SHRD CALL WMIOBG ( I ) END DO ! !/MPI DO I=1, NRGRD !/MPI CALL WMSETM ( I, MDSE, MDST ) -!/MPI IF ( MPI_COMM_GRD .NE. -1 ) CALL WMIOBF ( I ) +!/MPI IF ( MPI_COMM_GRD .NE. MPI_COMM_NULL ) CALL WMIOBF ( I ) !/MPI END DO ! ! 8.d.3 Relation to same ranked grids @@ -2338,7 +2340,7 @@ !/MPI CALL WMSETM ( I, MDSE, MDST ) !/MPI CALL W3SETG ( I, MDSE, MDST ) !/MPI CALL W3SETO ( I, MDSE, MDST ) -!/MPI IF ( FBCAST .AND. MPI_COMM_BCT.NE.-1 ) THEN +!/MPI IF ( FBCAST .AND. MPI_COMM_BCT.NE.MPI_COMM_NULL ) THEN !/MPI CALL MPI_BCAST ( NOPTS, 1, MPI_INTEGER, 0, & !/MPI MPI_COMM_BCT, IERR_MPI ) !/MPI END IF @@ -2751,7 +2753,7 @@ !/T 9052 FORMAT ( ' TEST WMINIT : FLGRD : ',5(5L2,1X)/24X,5(5L2,1X)) ! !/T 9060 FORMAT ( ' TEST WMINIT : GRID MOVEMENT DATA') -!/T 9061 FORMAT ( ' ',I8.8,I7.1X,2F8.2) +!/T 9061 FORMAT ( ' ',I8.8,I7,1X,2F8.2) ! !/T 9070 FORMAT ( ' TEST WMINIT : ALLPRC ') !/T 9071 FORMAT ( ' ',I3,' : ',250I3) diff -rupN WW3_314_12/ftn/wmiopomd.ftn WW3_314_13/ftn/wmiopomd.ftn --- WW3_314_12/ftn/wmiopomd.ftn 2012-10-02 21:40:05.000000000 -0400 +++ WW3_314_13/ftn/wmiopomd.ftn 2012-10-02 21:25:15.000000000 -0400 @@ -5,15 +5,16 @@ !/ | WAVEWATCH III NOAA/NCEP | !/ | H. L. Tolman | !/ | FORTRAN 90 | -!/ | Last update : 29-May-2009 | +!/ | Last update : 16-Mar-2012 | !/ +-----------------------------------+ !/ !/ 09-Aug-2006 : Origination. ( version 3.10 ) !/ 01-May-2007 : Addd diagnostic output O7a/b. ( version 3.11 ) !/ 21-Jun-2007 : Dedicated output processes. ( version 3.11 ) !/ 29-May-2009 : Preparing distribution version. ( version 3.14 ) +!/ 16-Mar-2012 : Using MPI_COMM_NULL in checks. ( version 3.14 ) !/ -!/ Copyright 2009 National Weather Service (NWS), +!/ Copyright 2009-2012 National Weather Service (NWS), !/ National Oceanic and Atmospheric Administration. All rights !/ reserved. WAVEWATCH III is a trademark of the NWS. !/ No unauthorized use without permission. @@ -83,11 +84,12 @@ !/ | WAVEWATCH III NOAA/NCEP | !/ | H. L. Tolman | !/ | FORTRAN 90 | -!/ | Last update : 01-May-2007 ! +!/ | Last update : 16-Mar-2012 ! !/ +-----------------------------------+ !/ !/ 09-Aug-2006 : Origination. ( version 3.10 ) !/ 01-May-2007 : Addd diagnostic output O7a,b ( version 3.11 ) +!/ 16-Mar-2012 : Using MPI_COMM_NULL in checks. ( version 3.14 ) !/ ! 1. Purpose : ! @@ -187,6 +189,8 @@ !/MPI USE WMMDATMD, ONLY: MPI_COMM_GRD, MPI_COMM_MWAVE ! IMPLICIT NONE +! +!/MPI INCLUDE "mpif.h" !/ !/ ------------------------------------------------------------------- / !/ Parameter list @@ -440,7 +444,7 @@ ! !/MPI CALL WMSETM ( J, MDSE, MDST ) ! -!/MPI IF ( MPI_COMM_GRD .NE. -1 ) THEN +!/MPI IF ( MPI_COMM_GRD .NE. MPI_COMM_NULL ) THEN ! !/MPI CALL W3SETO ( J, MDSE, MDST ) !/MPI CALL W3SETG ( J, MDSE, MDST ) @@ -532,11 +536,12 @@ !/ | WAVEWATCH III NOAA/NCEP | !/ | H. L. Tolman | !/ | FORTRAN 90 | -!/ | Last update : 21-Jun-2007 ! +!/ | Last update : 16-Mar-2012 ! !/ +-----------------------------------+ !/ !/ 09-Aug-2006 : Origination. ( version 3.10 ) !/ 21-Jun-2007 : Dedicated output processes. ( version 3.11 ) +!/ 16-Mar-2012 : Using MPI_COMM_NULL in checks. ( version 3.14 ) !/ ! 1. Purpose : ! @@ -629,6 +634,7 @@ !/ INTEGER :: J, I, II, IT0, IT, ITARG, IFROM !/SHRD INTEGER :: MPI_COMM_GRD = 1, CROOT = 1 +!/SHRD INTEGER, PARAMETER :: MPI_COMM_NULL = -1 !/MPI INTEGER :: IERR_MPI, NMPPNT !/MPI INTEGER, ALLOCATABLE :: STATUS(:,:) !/S INTEGER, SAVE :: IENT = 0 @@ -668,7 +674,7 @@ ! ! 1.b Determine if action ! - IF ( MPI_COMM_GRD .EQ. -1 ) THEN + IF ( MPI_COMM_GRD .EQ. MPI_COMM_NULL ) THEN !/T WRITE (MDST,9011) CYCLE END IF diff -rupN WW3_314_12/ftn/wmwavemd.ftn WW3_314_13/ftn/wmwavemd.ftn --- WW3_314_12/ftn/wmwavemd.ftn 2012-10-02 21:40:05.000000000 -0400 +++ WW3_314_13/ftn/wmwavemd.ftn 2012-10-02 21:25:15.000000000 -0400 @@ -5,7 +5,7 @@ !/ | WAVEWATCH III NOAA/NCEP | !/ | H. L. Tolman | !/ | FORTRAN 90 | -!/ | Last update : 20-Aug-2010 | +!/ | Last update : 12-Mar-2012 | !/ +-----------------------------------+ !/ !/ 13-Jun-2005 : Origination. ( version 3.07 ) @@ -21,6 +21,7 @@ !/ 20-Sep-2007 : Fix reset of GRSTAT in 0.b ( version 3.13 ) !/ 29-May-2009 : Preparing distribution version. ( version 3.14 ) !/ 20-Aug-2010 : Fix MAPSTA/MAPST2 bug. ( version 3.14.6 ) +!/ 12-Mar-2012 : Use MPI_COMM_NULL for checks. ( version 3.14 ) !/ !/ Copyright 2009-2010 National Weather Service (NWS), !/ National Oceanic and Atmospheric Administration. All rights @@ -71,7 +72,7 @@ !/ | WAVEWATCH III NOAA/NCEP | !/ | H. L. Tolman | !/ | FORTRAN 90 | -!/ | Last update : 20-Aug-2010 | +!/ | Last update : 12-Mar-2012 | !/ +-----------------------------------+ !/ !/ 13-Jun-2005 : Origination. ( version 3.07 ) @@ -86,6 +87,7 @@ !/ 21-Jun-2007 : Dedicated output processes. ( version 3.11 ) !/ 20-Sep-2007 : Fix reset of GRSTAT in 0.b ( version 3.13 ) !/ 20-Aug-2010 : Fix MAPSTA/MAPST2 bug sec. 9.a. ( version 3.14.6 ) +!/ 12-Mar-2012 : Use MPI_COMM_NULL for checks. ( version 3.14 ) !/ ! 1. Purpose : ! @@ -414,7 +416,7 @@ ! !/SHRD IF ( GRSTAT(I) .EQ. 0 ) THEN !/MPI IF ( GRSTAT(I).EQ.0 .AND. .NOT.FLSYNC(I) .AND. & -!/MPI MPI_COMM_GRD .NE. -1 ) THEN +!/MPI MPI_COMM_GRD .NE. MPI_COMM_NULL ) THEN ! !/MPRF CALL PRTIME ( PRFT0 ) IF ( DTTST .LE. 0 ) THEN @@ -508,13 +510,15 @@ ! 3.b.1 Get the data ! !/MPI IF ( .NOT.FLAGOK .AND. .NOT.PREGTB(I) ) THEN -!/MPI IF ( MPI_COMM_GRD.NE.-1 ) CALL WMIOBG (I,FLAG) +!/MPI IF ( MPI_COMM_GRD.NE.MPI_COMM_NULL ) & +!/MPI CALL WMIOBG (I,FLAG) !/MPI PREGTB(I) = .TRUE. !/MPI END IF ! IF ( FLAGOK ) THEN !/SHRD CALL WMIOBG ( I, FLAGOK ) -!/MPI IF ( MPI_COMM_GRD.NE.-1 ) CALL WMIOBG ( I ) +!/MPI IF ( MPI_COMM_GRD.NE.MPI_COMM_NULL ) & +!/MPI CALL WMIOBG ( I ) !/MPI PREGTB(I) = .FALSE. GRSTAT(I) = 2 DONE = .TRUE. @@ -583,7 +587,8 @@ DO II=1, NRGRD CALL W3SETW ( II, MDSE, MDST ) !/SHRD IF ( TIME(1) .NE. -1 ) THEN -!/MPI IF ( TIME(1).NE.-1 .AND. MPI_COMM_GRD.NE.-1 ) THEN +!/MPI IF ( TIME(1).NE.-1 .AND. & +!/MPI MPI_COMM_GRD.NE.MPI_COMM_NULL ) THEN IF ( DSEC21(TIME,TSYNC(:,0)) .NE. 0 ) THEN FLAGOK = .FALSE. EXIT @@ -724,13 +729,14 @@ ! !/SHRD IF ( GRSTAT(I) .EQ. 3 ) THEN ! -!/MPI IF ( GRSTAT(I).EQ.3 .AND. MPI_COMM_GRD .EQ. -1 ) THEN +!/MPI IF ( GRSTAT(I).EQ.3 .AND. & +!/MPI MPI_COMM_GRD .EQ. MPI_COMM_NULL ) THEN !/MPI CALL W3SETW ( I, MDSE, MDST ) !/MPI TIME = TSYNC(:,I) !/MPI GRSTAT(I) = 4 !/MPI DONE = .TRUE. !/MPI ELSE IF ( GRSTAT(I).EQ.3 .AND. & -!/MPI MPI_COMM_GRD .NE. -1 ) THEN +!/MPI MPI_COMM_GRD .NE. MPI_COMM_NULL ) THEN ! !/T WRITE (MDST,9002) I, GRSTAT(I), 'RUNNING MODEL' !/MPRF CALL PRTIME ( PRFT0 ) @@ -807,13 +813,15 @@ ! 6.b Call gathering routine, reset FLEQOK and cycle ! !/MPI IF ( .NOT.FLEQOK(I) .AND. .NOT.PREGTE(I) ) THEN -!/MPI IF ( MPI_COMM_GRD.NE.-1 ) CALL WMIOEG (I,FLAG) +!/MPI IF ( MPI_COMM_GRD.NE.MPI_COMM_NULL ) & +!/MPI CALL WMIOEG (I,FLAG) !/MPI PREGTE(I) = .TRUE. !/MPI END IF ! IF ( FLEQOK(I) ) THEN !/SHRD CALL WMIOEG ( I ) -!/MPI IF ( MPI_COMM_GRD.NE.-1 ) CALL WMIOEG ( I ) +!/MPI IF ( MPI_COMM_GRD.NE.MPI_COMM_NULL ) & +!/MPI CALL WMIOEG ( I ) !/MPI PREGTE(I) = .FALSE. GRSTAT(I) = 5 FLEQOK(I) = .FALSE. @@ -828,7 +836,7 @@ ! !/SHRD CALL WMIOBS ( I ) ! -!/MPI IF ( MPI_COMM_GRD .NE. -1 ) THEN +!/MPI IF ( MPI_COMM_GRD .NE. MPI_COMM_NULL ) THEN !/MPI CALL WMIOBF ( I ) !/MPI CALL WMIOBS ( I ) !/MPI END IF @@ -880,14 +888,15 @@ ! 7.b Call gathering routine ! !/MPI IF ( .NOT.FLAGOK .AND. .NOT.PREGTH(I) ) THEN -!/MPI IF ( MPI_COMM_GRD.NE.-1 ) & +!/MPI IF ( MPI_COMM_GRD.NE.MPI_COMM_NULL ) & !/MPI CALL WMIOHG ( I, FLAG ) !/MPI PREGTH(I) = .TRUE. !/MPI END IF ! IF ( FLAGOK ) THEN !/SHRD CALL WMIOHG ( I, FLAGOK ) -!/MPI IF ( MPI_COMM_GRD.NE.-1 ) CALL WMIOHG ( I ) +!/MPI IF ( MPI_COMM_GRD.NE.MPI_COMM_NULL ) & +!/MPI CALL WMIOHG ( I ) !/MPI PREGTH(I) = .FALSE. GRSTAT(I) = 6 DONE = .TRUE. @@ -900,7 +909,7 @@ !/SHRD IF ( GRSTAT(I) .EQ. 6 ) CALL WMIOHS ( I ) ! !/MPI IF ( GRSTAT(I) .EQ. 6 .AND. & -!/MPI MPI_COMM_GRD .NE. -1 ) THEN +!/MPI MPI_COMM_GRD .NE. MPI_COMM_NULL ) THEN !/MPI CALL WMIOHF ( I ) !/MPI CALL WMIOHS ( I ) !/MPI END IF @@ -961,7 +970,7 @@ ! 9.b Perform output ! IF ( GRSTAT(I) .EQ. 7 ) THEN -!/MPI IF ( MPI_COMM_GRD .NE. -1 ) THEN +!/MPI IF ( MPI_COMM_GRD .NE. MPI_COMM_NULL ) THEN ! !!/MPRF CALL PRTIME ( PRFT0 ) !!/MPRF CALL WMWOUT ( I, NRGRD, 3 ) @@ -1216,7 +1225,7 @@ ! !/MPI DO I=1, NRGRD !/MPI CALL WMSETM ( I, MDSE, MDST ) -!/MPI IF ( MPI_COMM_GRD .NE. -1 ) THEN +!/MPI IF ( MPI_COMM_GRD .NE. MPI_COMM_NULL ) THEN !/MPI CALL WMIOBF ( I ) !/MPI CALL WMIOHF ( I ) !/MPI CALL WMIOEF ( I )