From 824fb5ebc4fd0228b38573fe540400acf068c717 Mon Sep 17 00:00:00 2001 From: "Jessica.Meixner" Date: Mon, 18 Jun 2018 14:10:24 +0000 Subject: [PATCH] master: bugfixes for ugdev2 including: - removing extra output VLab Issue #51502 - bugfix for SMC w3gath/scat logic (ww3_tp2.10) VLab Issue #51501 - bugfix for mww3_test_03 tests that were failing Former-commit-id: aec7a4e0e572d9ceaf964e35fcb93460eb5db1ed --- .gitignore | 2 ++ model/ftn/w3initmd.ftn | 1 - model/ftn/w3updtmd.ftn | 4 +-- model/ftn/w3wavemd.ftn | 13 +++----- model/ftn/wmgridmd.ftn | 1 + model/ftn/wmmdatmd.ftn | 63 ++++++++++++++++++++++++++++++++++-- regtests/bin/matrix_datarmor | 1 + regtests/bin/matrix_zeus_HLT | 9 ++---- 8 files changed, 73 insertions(+), 21 deletions(-) diff --git a/.gitignore b/.gitignore index f72374e66..869033454 100644 --- a/.gitignore +++ b/.gitignore @@ -51,6 +51,7 @@ regtests/*/*.png regtests/ww3_tp2.14/input/oasis3-mct/doc regtests/ww3_tp2.14/input*/*.nc.OAS*CM regtests/ww3_tp2.14/input*/*/*.nc.OAS*CM +regtests/ww3_tp2.17/input/inlet.msh *.nc */*.nc */*/*.nc @@ -68,6 +69,7 @@ model/bin/switch.old_DIST model/bin/switch.old_SHRD model/bin/switch.old_HYB model/bin/switch.old_OMP +model/bin/switch.old_SEQ model/bin/w3adc model/bin/w3list model/bin/w3prnt diff --git a/model/ftn/w3initmd.ftn b/model/ftn/w3initmd.ftn index 8f25e0344..80f4668ff 100644 --- a/model/ftn/w3initmd.ftn +++ b/model/ftn/w3initmd.ftn @@ -2669,7 +2669,6 @@ !/MPI IH = 0 ! !/MPI DO I0=1, NAPROC -!/MPI WRITE(740+IAPROC,*) 'I0=', I0 !/MPI IT = IT0 !/MPI IFROM = I0 - 1 ! diff --git a/model/ftn/w3updtmd.ftn b/model/ftn/w3updtmd.ftn index 3d2ffa3ab..a9463647e 100644 --- a/model/ftn/w3updtmd.ftn +++ b/model/ftn/w3updtmd.ftn @@ -1814,7 +1814,7 @@ ! VA(:,JSEA) = 0. ! -!/T3 CALL PRT2DS ( NDST, NK, NK, NTH, OUT, SIG(1), ' ', & +!/T3 CALL PRT2DS ( NDST, NK, NK, NTH, OUT, SIG, ' ', & !/T3 TPI, 0., 1.E-5, 'F(f,th)', 'm2s', 'Before' ) ! ! 2.e Redistribute discrete action density @@ -1893,7 +1893,7 @@ !/T3 OUT(IK,ITH) = A(ITH,IK,JSEA) * SIG(IK) / CG(IK,ISEA) !/T3 END DO ! -!/T3 CALL PRT2DS ( NDST, NK, NK, NTH, OUT, SIG(1), ' ', & +!/T3 CALL PRT2DS ( NDST, NK, NK, NTH, OUT, SIG, ' ', & !/T3 TPI, 0., 1.E-5, 'F(f,th)', 'm2s', 'After' ) ! !/T2 ELSE diff --git a/model/ftn/w3wavemd.ftn b/model/ftn/w3wavemd.ftn index 54579ad96..cee63ea42 100644 --- a/model/ftn/w3wavemd.ftn +++ b/model/ftn/w3wavemd.ftn @@ -1648,7 +1648,7 @@ IX = MAPSF(ISEA,1) IY = MAPSF(ISEA,2) - IF (JSEA == DEBUG_NODE) WRITE(*,*) 'W3WAVE TEST', SUM(VA(:,JSEA)) +!/DEBUGRUN IF (JSEA == DEBUG_NODE) WRITE(*,*) 'W3WAVE TEST', SUM(VA(:,JSEA)) IF ( MAPSTA(IY,IX) .EQ. 1 ) THEN DEPTH = MAX ( DMIN , DW(ISEA) ) @@ -1803,12 +1803,9 @@ ! DO ISPEC=1, NSPEC IF ( IAPPRO(ISPEC) .EQ. IAPROC ) THEN -!!Li CALL W3GATH ( ISPEC, FIELD ) - IF (.NOT. LPDLIB .or.(GTYPE.ne.UNGTYPE)) THEN - CALL W3GATH ( ISPEC, FIELD ) - END IF + IF (.NOT.LPDLIB .AND. RGLGRD) CALL W3GATH ( ISPEC, FIELD ) !/SMC !!Li Otherwise use SMC sub to gether field -!/SMC CALL W3GATHSMC ( ISPEC, FIELD ) +!/SMC CALL W3GATHSMC ( ISPEC, FIELD ) ! IF (GTYPE .NE. UNGTYPE) THEN !/PR1 CALL W3XYP1 ( ISPEC, DTG, MAPSTA, FIELD, VGX, VGY ) @@ -1831,9 +1828,7 @@ !/MPI END IF !!Li CALL W3SCAT ( ISPEC, MAPSTA, FIELD ) END IF - IF (.NOT. LPDLIB .or. (GTYPE.ne.UNGTYPE)) THEN - CALL W3SCAT ( ISPEC, MAPSTA, FIELD ) - END IF + IF (.NOT.LPDLIB .AND. RGLGRD) CALL W3SCAT ( ISPEC, MAPSTA, FIELD ) !/SMC !!Li Otherwise use SMC sub to scatter field !/SMC CALL W3SCATSMC ( ISPEC, MAPSTA, FIELD ) ! diff --git a/model/ftn/wmgridmd.ftn b/model/ftn/wmgridmd.ftn index 1c6125cec..88ace8d1d 100644 --- a/model/ftn/wmgridmd.ftn +++ b/model/ftn/wmgridmd.ftn @@ -2936,6 +2936,7 @@ HGSTGE(GDST,JJ)%NTOT = HGSTGE(GDST,JJ)%NTOT + 1 ISEA = TMPINT(ILOC,-2) CALL INIT_GET_JSEA_ISPROC(ISEA, JSEA, ISPROC) +!/DIST ISPROC = ISPROC + CROOT - 1 ! I1(JJ,ISPROC) = I1(JJ,ISPROC) + 1 IF ( TMPLOG(ILOC) ) I2(JJ,ISPROC) = I2(JJ,ISPROC) + 1 diff --git a/model/ftn/wmmdatmd.ftn b/model/ftn/wmmdatmd.ftn index cd6c0f7a7..6198d429a 100644 --- a/model/ftn/wmmdatmd.ftn +++ b/model/ftn/wmmdatmd.ftn @@ -1018,20 +1018,74 @@ !********************************************************************** !* * !********************************************************************** +!/ ------------------------------------------------------------------- / SUBROUTINE INIT_GET_JSEA_ISPROC_GLOB(ISEA, J, JSEA, ISPROC) +!/ +!/ +-----------------------------------+ +!/ | WAVEWATCH III NOAA/NCEP | +!/ | Aron Roland | +!/ | FORTRAN 90 | +!/ | Last update : 14-Jun-2018 | +!/ +-----------------------------------+ +!/ +!/ 06-Jun-2018 : Origination. ( version 6.04 ) +!/ +! 1. Purpose : +! 2. Method : +! 3. Parameters : +! +! Parameter list +! ---------------------------------------------------------------- +! ---------------------------------------------------------------- +! +! 4. Subroutines used : +! +! Name Type Module Description +! ---------------------------------------------------------------- +! STRACE Subr. W3SERVMD Subroutine tracing. +! ---------------------------------------------------------------- +! +! 5. Called by : +! +! Name Type Module Description +! ---------------------------------------------------------------- +! ---------------------------------------------------------------- +! +! 6. Error messages : +! 7. Remarks +! 8. Structure : +! 9. Switches : +! +! !/S Enable subroutine tracing. +! +! 10. Source code : +! USE CONSTANTS, ONLY: LPDLIB USE W3ODATMD, ONLY: OUTPTS -! USE WMMDATMD, ONLY: MDATAS USE W3GDATMD, ONLY: GTYPE, GRIDS, UNGTYPE +!/S USE W3SERVMD, ONLY: STRACE +!/ IMPLICIT NONE +!/ ------------------------------------------------------------------- / +!/ Parameter list +!/ integer, intent(in) :: ISEA, J integer, intent(out) :: JSEA, ISPROC +!/ +!/ ------------------------------------------------------------------- / +!/ Local parameters +!/ +!/S INTEGER, SAVE :: IENT = 0 +!/ +!/ ------------------------------------------------------------------- / +!/ +!/S CALL STRACE (IENT, 'INIT_GET_JSEA_ISPROC_GLOB') integer nb IF (.NOT. LPDLIB) THEN nb=OUTPTS(J)%NAPROC JSEA = 1 + (ISEA-1)/nb ISPROC=1 -!/MPI ISPROC = MDATAS(J)%CROOT - 1 + ISEA - (JSEA-1)*nb +!/DIST ISPROC = MDATAS(J)%CROOT - 1 + ISEA - (JSEA-1)*nb ELSE !/PDLIB IF (GRIDS(J)%GTYPE .ne. UNGTYPE) THEN !/PDLIB nb=OUTPTS(J)%NAPROC @@ -1042,7 +1096,10 @@ !/PDLIB ISPROC = MDATAS(J)%SEA_IPGL_TO_PROC(ISEA) !/PDLIB ENDIF ENDIF - END SUBROUTINE +!/ +!/ End of INIT_GET_JSEA_ISPROC_GLOB ---------------------------------- / +!/ + END SUBROUTINE INIT_GET_JSEA_ISPROC_GLOB !/ !/ End of module WMMDATMD -------------------------------------------- / !/ diff --git a/regtests/bin/matrix_datarmor b/regtests/bin/matrix_datarmor index 887ebf7b2..3003bc9f2 100755 --- a/regtests/bin/matrix_datarmor +++ b/regtests/bin/matrix_datarmor @@ -103,6 +103,7 @@ export hur1mg='y' # Hurricane with one moving grid export shwtr='y' # shallow water tests export unstr='y' # unstructured grid tests + export pdlib='y' # unstr with pdlib for domain decomposition and implicit solver export smcgr='y' # SMC/Rotated grid test export mudice='y' # Mud/Ice and wave interaction tests export infgrv='y' # Second harmonic generation tests diff --git a/regtests/bin/matrix_zeus_HLT b/regtests/bin/matrix_zeus_HLT index e8b5a7255..54db9584a 100755 --- a/regtests/bin/matrix_zeus_HLT +++ b/regtests/bin/matrix_zeus_HLT @@ -49,15 +49,12 @@ echo " cd $(dirname $main_dir)/regtests" >> matrix.head echo ' ' >> matrix.head -# Netcdf modules +# Netcdf and Parmetis modules & variables echo " module load netcdf/4.3.0" >> matrix.head echo " export WWATCH3_NETCDF=NC4" >> matrix.head echo " export NETCDF_CONFIG=`which nc-config`" >> matrix.head - echo ' ' >> matrix.head - -# PARMETIS - echo " export METIS_PATH=/scratch3/NCEPDEV/stmp2/Jessica.Meixner/parmetis-4.0.3" >> matrix.head + echo " export METIS_PATH=/scratch3/NCEPDEV/stmp2/Jessica.Meixner/parmetis-4.0.3" >> matrix.head echo ' ' # Compiler option. Choose appropriate compiler and set cmplOption to @@ -95,6 +92,7 @@ export hur1mg='y' # Hurricane with one moving grid export shwtr='y' # shallow water tests export unstr='y' # unstructured grid tests + export pdlib='y' # unstr with pdlib for domain decomposition and implicit solver export smcgr='y' # SMC/Rotated grid test export mudice='y' # Mud/Ice and wave interaction tests export infgrv='y' # Second harmonic generation tests @@ -106,7 +104,6 @@ export multi06='y' # mww3_test_06 (curvilinear grid tests) export multi07='y' # mww3_test_07 (unstructured grid tests) export multi08='y' # mww3_test_08 (wind and ice tests) - export pdlib='y' # unstructured grid tests with pdlib for domain decomposition and implicit solver # export filter='PR3 ST2 UQ' # The filter does a set of consecutinve greps on the