Page 1 Source Listing WMWAVE 2014-09-16 16:49 wmwavemd.f90 1 !/ ------------------------------------------------------------------- / 2 MODULE WMWAVEMD 3 !/ 4 !/ +-----------------------------------+ 5 !/ | WAVEWATCH III NOAA/NCEP | 6 !/ | H. L. Tolman | 7 !/ | FORTRAN 90 | 8 !/ | Last update : 12-Mar-2012 | 9 !/ +-----------------------------------+ 10 !/ 11 !/ 13-Jun-2005 : Origination. ( version 3.07 ) 12 !/ 30-Jan-2006 : Add static nesting. ( version 3.08 ) 13 !/ 25-May-2006 : Add overlapping grids. ( version 3.09 ) 14 !/ 09-Aug-2006 : Unified point output added. ( version 3.10 ) 15 !/ 22-Dec-2006 : Final algorith changes for tests. ( version 3.10 ) 16 !/ 25-Jan-2007 : Tweaking algorithm. ( version 3.10 ) 17 !/ 02-Feb-2007 : Replacing MPI_BCAST with WMBCST. ( version 3.10 ) 18 !/ 07-Feb-2007 : Reintroduce pre-fetching. ( version 3.10 ) 19 !/ 10-May-2007 : Removing / streamlining WMBCST. ( version 3.11 ) 20 !/ 21-Jun-2007 : Dedicated output processes. ( version 3.11 ) 21 !/ 20-Sep-2007 : Fix reset of GRSTAT in 0.b ( version 3.13 ) 22 !/ 29-May-2009 : Preparing distribution version. ( version 3.14 ) 23 !/ 20-Aug-2010 : Fix MAPSTA/MAPST2 bug. ( version 3.14.6 ) 24 !/ 12-Mar-2012 : Use MPI_COMM_NULL for checks. ( version 3.14 ) 25 !/ 26 !/ Copyright 2009-2010 National Weather Service (NWS), 27 !/ National Oceanic and Atmospheric Administration. All rights 28 !/ reserved. WAVEWATCH III is a trademark of the NWS. 29 !/ No unauthorized use without permission. 30 !/ 31 ! 1. Purpose : 32 ! 33 ! Running the multi-grid version of WAVEWATCH III up to a given 34 ! ending time for each grid. 35 ! 36 ! 2. Variables and types : 37 ! 38 ! Name Type Scope Description 39 ! ---------------------------------------------------------------- 40 ! ---------------------------------------------------------------- 41 ! 42 ! 3. Subroutines and functions : 43 ! 44 ! Name Type Scope Description 45 ! ---------------------------------------------------------------- 46 ! WMWAVE Subr. Public Wave model initialization. 47 ! WMPRNT Subr. Public Print action table to log file. 48 ! WMBCST Subr. Public Non-blocking MPI broadcast. 49 ! WMWOUT Subr. Public Non-blocking MPI broadcast. 50 ! ---------------------------------------------------------------- 51 ! 52 ! 4. Subroutines and functions used : 53 ! 54 ! See subroutine documentation. 55 ! 56 ! 5. Remarks : 57 ! Page 2 Source Listing WMWAVE 2014-09-16 16:49 wmwavemd.f90 58 ! 6. Switches : 59 ! 60 ! See subroutine documentation. 61 ! 62 ! 7. Source code : 63 ! 64 !/ ------------------------------------------------------------------- / 65 PUBLIC 66 !/ 67 CONTAINS 68 !/ ------------------------------------------------------------------- / 69 SUBROUTINE WMWAVE ( TEND ) 70 !/ 71 !/ +-----------------------------------+ 72 !/ | WAVEWATCH III NOAA/NCEP | 73 !/ | H. L. Tolman | 74 !/ | FORTRAN 90 | 75 !/ | Last update : 12-Mar-2012 | 76 !/ +-----------------------------------+ 77 !/ 78 !/ 13-Jun-2005 : Origination. ( version 3.07 ) 79 !/ 30-Jan-2006 : Add static nesting. ( version 3.08 ) 80 !/ 25-May-2006 : Add overlapping grids. ( version 3.09 ) 81 !/ 09-Aug-2006 : Unified point output added. ( version 3.10 ) 82 !/ 22-Dec-2006 : Final algorith changes for tests. ( version 3.10 ) 83 !/ 25-Jan-2007 : Tweaking algorithm. ( version 3.10 ) 84 !/ 02-Feb-2007 : Replacing MPI_BCAST with WMBCST. ( version 3.10 ) 85 !/ 07-Feb-2007 : Reintroduce pre-fetching. ( version 3.10 ) 86 !/ 10-May-2007 : Removing / streamlining WMBCST. ( version 3.11 ) 87 !/ 21-Jun-2007 : Dedicated output processes. ( version 3.11 ) 88 !/ 20-Sep-2007 : Fix reset of GRSTAT in 0.b ( version 3.13 ) 89 !/ 20-Aug-2010 : Fix MAPSTA/MAPST2 bug sec. 9.a. ( version 3.14.6 ) 90 !/ 12-Mar-2012 : Use MPI_COMM_NULL for checks. ( version 3.14 ) 91 !/ 92 ! 1. Purpose : 93 ! 94 ! Run multi-grid version of WAVEWATCH III. 95 ! 96 ! 2. Method : 97 ! 98 ! See manual. 99 ! 100 ! 3. Parameters : 101 ! 102 ! Parameter list 103 ! ---------------------------------------------------------------- 104 ! TEND I.A. I Ending time for calculations for each grid. 105 ! ---------------------------------------------------------------- 106 ! 107 ! Local variables 108 ! ---------------------------------------------------------------- 109 ! J Int. Group counter. 110 ! JJ Int. Grid in group counter. 111 ! I Int. Grid counter. 112 ! ---------------------------------------------------------------- 113 ! 114 ! 4. Subroutines used : Page 3 Source Listing WMWAVE 2014-09-16 16:49 wmwavemd.f90 115 ! 116 ! Name Type Module Description 117 ! ---------------------------------------------------------------- 118 ! W3SETG Subr W3GDATMD Point to grid/model. 119 ! W3SETW Subr W3WDATMD Point to grid/model. 120 ! W3SETA Subr W3ADATMD Point to grid/model. 121 ! W3SETO Subr W3ODATMD Point to grid/model. 122 ! W3IOPE Subr W3IOPOMD Extracting point output. 123 ! W3WAVE Subr W3WAVEMD Actual ave model routine. 124 ! STRACE Subr W3SERVMD Subroutine tracing. 125 ! EXTCDE Subr Id. Abort program with exit code. 126 ! WWTIME Subr Id. System time in readable format. 127 ! PRTIME Subr Id. Profiling routine ( !/MPRF ) 128 ! STME21 Subr W3TIMEMD Print date and time readable. 129 ! DSEC21 Func Id. Difference between times. 130 ! TICK21 Subr Id. Advance time. 131 ! WMSETM Subr WMMDATMD Point to grid/model. 132 ! WMUPDT Subr WMUPDTMD Update input fields at driver level. 133 ! WMIOBG Subr WMINIOMD Gather staged boundary data. 134 ! WMIOBS Subr Id. Stage boundary data. 135 ! WMIOBF Subr Id. Finalize WMIOBS. ( !/MPI ) 136 ! WMIOHS Subr Id. Stage high-to-low data. 137 ! WMIOHG Subr Id. Gather staged high-to-low data. 138 ! WMIOHF Subr Id. Finalize WMIOHS. ( !/MPI ) 139 ! WMIOES Subr Id. Stage same-rank data. 140 ! WMIOEG Subr Id. Gather staged same-rank data. 141 ! WMIOEF Subr Id. Finalize WMIOES. ( !/MPI ) 142 ! WMIOPO Subr WMIOPOMD Unified point output. 143 ! ---------------------------------------------------------------- 144 ! 145 ! 5. Called by : 146 ! 147 ! Name Type Module Description 148 ! ---------------------------------------------------------------- 149 ! W3MLTI Prog. N/A Multi-grid model driver. 150 ! .... Any coupled model. 151 ! ---------------------------------------------------------------- 152 ! 153 ! 6. Error messages : 154 ! 155 ! See formats 1000 and following, or escape locations 2000 and 156 ! following. 157 ! 158 ! 7. Remarks : 159 ! 160 ! - If no action is taken in the endless loop, an error is 161 ! assumed (code 2099). This should never take place in the 162 ! default driver, but may be a problem in a coupled model. 163 ! - If output is requested for the initial model time, TSYNC 164 ! is set to TIME instead of (-1,0) for GRSTAT = 0. In this case 165 ! input is updated, after which GRSTAT is set to 6 instead 166 ! of 1. This assures that restarts do not impact model results 167 ! by spurious double reconciliations. 168 ! 169 ! 8. Structure : 170 ! 171 ! See source code and manual. Page 4 Source Listing WMWAVE 2014-09-16 16:49 wmwavemd.f90 172 ! 173 ! 9. Switches : 174 ! 175 ! !/S Enable subroutine tracing. 176 ! !/T Enable test output. 177 ! !/MPIT Enable test output (use with !/MPI only). 178 ! !/MPRF Profiling. 179 ! 180 ! !/SHRD, !/DIST, !/MPI 181 ! Shared / distributed program model. 182 ! 183 ! 10. Source code : 184 ! 185 !/ ------------------------------------------------------------------- / 186 USE CONSTANTS 187 !/ 188 USE W3GDATMD, ONLY: W3SETG 189 USE W3WDATMD, ONLY: W3SETW 190 USE W3ADATMD, ONLY: W3SETA 191 USE W3ODATMD, ONLY: W3SETO, NOTYPE 192 USE W3IOPOMD, ONLY: W3IOPE 193 USE W3WAVEMD, ONLY: W3WAVE 194 USE W3SERVMD, ONLY: EXTCDE, WWTIME 195 USE W3TIMEMD, ONLY: DSEC21, STME21, TICK21 196 USE WMMDATMD, ONLY: WMSETM 197 USE WMUPDTMD, ONLY: WMUPDT 198 USE WMINIOMD, ONLY: WMIOBG, WMIOBS, WMIOBF, WMIOHG, WMIOHS, & 199 WMIOHF, WMIOEG, WMIOES, WMIOEF 200 USE WMIOPOMD, ONLY: WMIOPO 201 !/ 202 USE W3GDATMD, ONLY: DTMAX, NX, NY, MAPSTA, MAPST2 203 USE W3WDATMD, ONLY: TIME, VA 204 USE W3ODATMD, ONLY: FLOUT, TONEXT, DTOUT, TOLAST, IAPROC, & 205 NAPPNT, NOPTS, UNIPTS 206 USE W3ODATMD, ONLY: NRQPO, IRQPO1 207 USE W3IDATMD, ONLY: FLAGS 208 USE WMMDATMD, ONLY: MDSI, MDSO, MDSS, MDST, MDSE, IMPROC, & 209 NMPROC, NMPSCR, NMPERR, NMPTST, NMPLOG, & 210 STIME, ETIME, NMV, TMV, AMV, DMV, & 211 NRGRD, NRGRP, GRANK, INGRP, GRDHGH, GRDEQL, & 212 GRDLOW, TSYNC, TMAX, TOUTP, TDATA, GRSTAT, & 213 FLLSTL, FLLSTI, DTRES, FLGHG1, FLGHG2, & 214 MAPMSK 215 USE WMMDATMD, ONLY: MPI_COMM_MWAVE, MPI_COMM_GRD, & 216 MPI_COMM_BCT, CROOT, FBCAST 217 !/ 218 IMPLICIT NONE 219 ! 220 INCLUDE "mpif.h" 221 !/ 222 !/ ------------------------------------------------------------------- / 223 !/ Parameter list 224 !/ 763 INTEGER, INTENT(IN) :: TEND(2,NRGRD) 764 !/ 765 !/ ------------------------------------------------------------------- / 766 !/ Local parameters Page 5 Source Listing WMWAVE 2014-09-16 16:49 wmwavemd.f90 767 !/ 768 INTEGER :: J, JJ, I, JO, TPRNT(2), TAUX(2), & 769 II, JJJ, IX, IY, UPNEXT(2), UPLAST(2) 770 INTEGER :: IERR_MPI, NMPSCS 771 INTEGER, ALLOCATABLE :: STATUS(:,:) 772 REAL :: DTTST, DTMAXI 773 CHARACTER(LEN=8) :: WTIME 774 CHARACTER(LEN=23) :: MTIME 775 LOGICAL :: DONE, TSTAMP, FLAGOK, DO_UPT, & 776 FLG_O1, FLG_O2 777 LOGICAL :: FLAG 778 LOGICAL, ALLOCATABLE :: FLSYNC(:), GRSYNC(:), TMSYNC(:), & 779 FLEQOK(:) 780 LOGICAL, ALLOCATABLE :: PREGTB(:), PREGTH(:), PREGTE(:) 781 !/ 782 !/ ------------------------------------------------------------------- / 783 ! 784 ! 0. Initializations ------------------------------------------------ / 785 ! 0.a Initial testing 786 ! Test GRSTAT 787 ! 788 DO I=1, NRGRD 789 IF ( ( GRSTAT(I).LT.0 .OR. GRSTAT(I).GT.7 ) .AND. & 790 GRSTAT(I).NE.99 ) GOTO 2000 791 ! 792 ! Consistency of times for grids 793 ! 794 IF ( TSYNC(1,I) .NE. -1 ) THEN 795 DTTST = DSEC21 ( TSYNC(:,I), TEND(:,I) ) 796 IF ( DTTST .LT. 0. ) GOTO 2001 797 END IF 798 END DO 799 ! 800 ! Consistency of times within groups, set global TSYNC(:,0) 801 ! 802 DO J=1, NRGRP 803 DO JJ=2, INGRP(J,0) 804 IF ( DSEC21(TSYNC(:,INGRP(J,1)),TSYNC(:,INGRP(J,JJ))).NE.0. & 805 .OR. DSEC21(TEND(:,INGRP(J,1)),TEND(:,INGRP(J,JJ))).NE.0. ) & 806 GOTO 2002 807 END DO 808 IF ( GRANK(INGRP(J,1)).EQ.1 .AND. TSYNC(1,0).EQ.-1 ) & 809 TSYNC(:,0) = TSYNC(:,INGRP(J,1)) 810 END DO 811 ! 812 ! Check if FLSYNC initialized 813 ! 814 IF ( .NOT. ALLOCATED(FLSYNC) ) THEN 815 ALLOCATE ( FLSYNC(NRGRD), GRSYNC(NRGRP), TMSYNC(NRGRD), & 816 FLEQOK(NRGRD) ) 817 ALLOCATE ( PREGTB(NRGRD), PREGTH(NRGRD), PREGTE(NRGRD) ) 818 FLSYNC = .FALSE. 819 GRSYNC = .FALSE. 820 TMSYNC = .TRUE. 821 FLEQOK = .FALSE. 822 PREGTB = .FALSE. 823 PREGTH = .FALSE. Page 6 Source Listing WMWAVE 2014-09-16 16:49 wmwavemd.f90 824 PREGTE = .FALSE. 825 END IF 826 ! 827 ! 0.b Reset GRSTAT as needed 828 ! 829 DO I=1, NRGRD 830 CALL W3SETW ( I, MDSE, MDST ) 831 DTTST = DSEC21 ( TIME, TEND(:,I) ) 832 IF ( GRSTAT(I).EQ.99 .AND. DTTST.GT.0. ) GRSTAT(I) = 0 833 END DO 834 ! 835 ! 0.c Other initializations 836 ! 837 DTRES = 0. 838 NMPSCS = NMPSCR 839 ! 840 IF ( UNIPTS ) THEN 841 CALL W3SETO ( 0, MDSE, MDST ) 842 UPNEXT = TONEXT(:,2) 843 UPLAST = TOLAST(:,2) 844 DO_UPT = .TRUE. 845 ELSE 846 UPNEXT(1) = -1 847 UPNEXT(2) = 0 848 DO_UPT = .FALSE. 849 END IF 850 ! 851 ! 0.d Output 852 ! 853 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) THEN 854 CALL WMPRNT ( MDSO, NRGRD, TSYNC(:,0), GRSTAT ) 855 CALL STME21 ( TSYNC(:,0), MTIME ) 856 CALL WWTIME ( WTIME ) 857 WRITE (MDSS,901) MTIME, WTIME, MINVAL(GRSTAT), MAXVAL(GRSTAT) 858 TPRNT = TSYNC(:,0) 859 TSTAMP = .TRUE. 860 ENDIF 861 ! 862 CALL MPI_BARRIER (MPI_COMM_MWAVE,IERR_MPI) 863 ! 864 ! 1. Setting up loop structure -------------------------------------- / 865 ! 866 DO 867 ! 868 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC .AND. & 869 DSEC21(TPRNT,TSYNC(:,0)).NE.0. ) THEN 870 IF ( .NOT. TSTAMP ) WRITE (MDSS,*) 871 CALL WMPRNT ( MDSO, NRGRD, TSYNC(:,0), GRSTAT ) 872 CALL STME21 ( TSYNC(:,0), MTIME ) 873 CALL WWTIME ( WTIME ) 874 WRITE (MDSS,901) MTIME, WTIME, MINVAL(GRSTAT), MAXVAL(GRSTAT) 875 TPRNT = TSYNC(:,0) 876 TSTAMP = .TRUE. 877 ENDIF 878 ! 879 DONE = .FALSE. 880 TPRNT = TSYNC(:,0) Page 7 Source Listing WMWAVE 2014-09-16 16:49 wmwavemd.f90 881 ! 882 DO J=1, NRGRP 883 ! 884 GRSYNC(J) = .FALSE. 885 DO JJ=1, INGRP(J,0) 886 I = INGRP(J,JJ) 887 CALL WMSETM ( I, MDSE, MDST ) 888 GRSYNC(J) = GRSYNC(J) .OR. FBCAST 889 END DO 890 ! 891 DO JJ=1, INGRP(J,0) 892 I = INGRP(J,JJ) 893 CALL WMSETM ( I, MDSE, MDST ) 894 ! 895 IF ( GRSTAT(I).EQ.0 ) TMSYNC(I) = .NOT. FBCAST 896 IF ( FBCAST ) THEN 897 NMPSCR = CROOT 898 ELSE 899 NMPSCR = NMPSCS 900 END IF 901 ! 902 ! 2. Update input fields -------------------------------------------- / 903 ! ( GRSTAT = 0 ) 904 ! 905 ! 2.a Check TDATA and finish step if data is still OK 906 ! 907 IF ( GRSTAT(I).EQ.0 .AND. .NOT.FLSYNC(I) ) THEN 908 ! 909 IF ( TDATA(1,I) .EQ. -1 ) THEN 910 DTTST = 0. 911 ELSE 912 CALL W3SETW ( I, MDSE, MDST ) 913 DTTST = DSEC21 ( TIME , TDATA(:,I) ) 914 END IF 915 ! 916 IF ( DTTST .GT. 0. ) THEN 917 GRSTAT(I) = 1 918 DONE = .TRUE. 919 END IF 920 ! 921 END IF 922 ! 923 ! 2.b Update input and TDATA 924 ! 925 IF ( GRSTAT(I).EQ.0 .AND. .NOT.FLSYNC(I) .AND. & 926 MPI_COMM_GRD .NE. MPI_COMM_NULL ) THEN 927 ! 928 IF ( DTTST .LE. 0 ) THEN 929 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 930 WRITE (MDSS,*) 931 TSTAMP = .FALSE. 932 CALL WMUPDT ( I, TDATA(:,I) ) 933 END IF 934 ! 935 ! 2.c Finish up if possible ( !/SHRD or .NOT. FBCAST or no update ) 936 ! 937 IF ( .NOT. GRSYNC(J) ) THEN Page 8 Source Listing WMWAVE 2014-09-16 16:49 wmwavemd.f90 938 GRSTAT(I) = 1 939 DONE = .TRUE. 940 END IF 941 ! 942 END IF 943 ! 944 ! 2.d Synchronize in parts ( !/MPI ) 945 ! 946 IF ( GRSTAT(I).EQ.0 .AND. GRSYNC(J) ) THEN 947 DONE = .TRUE. 948 ! 949 IF ( FLSYNC(I) ) THEN 950 IF ( FBCAST ) CALL WMBCST & 951 ( TDATA(1,I), 2, I, NRGRD, 1 ) 952 GRSTAT(I) = 1 953 FLSYNC(I) = .FALSE. 954 IF ( GRSYNC(J) ) CYCLE 955 ELSE 956 FLSYNC(I) = .TRUE. 957 CYCLE 958 END IF 959 ! 960 END IF 961 ! 962 ! 3. Update data from lower ranked grids ---------------------------- / 963 ! ( GRSTAT = 1 ) 964 ! 965 ! 3.a Skip for initial output only 966 ! 967 IF ( GRSTAT(I) .EQ. 1 .AND. TSYNC(1,I) .NE. -1 ) THEN 968 CALL W3SETW ( I, MDSE, MDST ) 969 DTTST = DSEC21 ( TIME, TSYNC(:,I) ) 970 IF ( DTTST .EQ. 0. ) THEN 971 GRSTAT(I) = 7 972 DONE = .TRUE. 973 END IF 974 END IF 975 ! 976 ! 3.b Normal processing 977 ! 978 IF ( GRSTAT(I) .EQ. 1 ) THEN 979 ! 980 ! 3.b.1 Test if data is there 981 ! 982 FLAGOK = .TRUE. 983 CALL W3SETW ( I, MDSE, MDST ) 984 TAUX = TIME 985 DO JJJ=1, GRDLOW(I,0) 986 CALL W3SETW ( GRDLOW(I,JJJ), MDSE, MDST ) 987 FLAGOK = FLAGOK .AND. DSEC21(TAUX,TIME).GT.0. & 988 .AND. GRSTAT(GRDLOW(I,JJJ)).EQ.5 989 END DO 990 CALL W3SETW ( I, MDSE, MDST ) 991 ! 992 ! 3.b.1 Get the data 993 ! 994 IF ( .NOT.FLAGOK .AND. .NOT.PREGTB(I) ) THEN Page 9 Source Listing WMWAVE 2014-09-16 16:49 wmwavemd.f90 995 IF ( MPI_COMM_GRD.NE.MPI_COMM_NULL ) & 996 CALL WMIOBG (I,FLAG) 997 PREGTB(I) = .TRUE. 998 END IF 999 ! 1000 IF ( FLAGOK ) THEN 1001 IF ( MPI_COMM_GRD.NE.MPI_COMM_NULL ) & 1002 CALL WMIOBG ( I ) 1003 PREGTB(I) = .FALSE. 1004 GRSTAT(I) = 2 1005 DONE = .TRUE. 1006 END IF 1007 ! 1008 END IF 1009 ! 1010 ! 4. Update model time step ----------------------------------------- / 1011 ! ( GRSTAT = 2 ) 1012 ! 1013 IF ( GRSTAT(I) .EQ. 2 ) THEN 1014 ! 1015 ! 4.a Check TMAX and update as necessary ( needs !/MPI synchronizaion ) 1016 ! 1017 CALL W3SETW ( I, MDSE, MDST ) 1018 IF ( TMAX(1,I) .EQ. -1 ) THEN 1019 TMAX(:,I) = TIME 1020 DTTST = 0. 1021 ELSE 1022 DTTST = DSEC21(TIME,TMAX(:,I)) 1023 END IF 1024 ! 1025 IF ( DTTST .LE. 0 ) THEN 1026 CALL W3SETG ( I, MDSE, MDST ) 1027 DTMAXI = REAL(NINT(DTMAX+DTRES(I)+0.0001)) 1028 DTRES(I)= DTRES(I)+ DTMAX - DTMAXI 1029 IF ( ABS(DTRES(I)) .LT. 0.001 ) DTRES(I) = 0. 1030 TMAX(:,I) = TIME 1031 CALL TICK21 ( TMAX(:,I), DTMAXI ) 1032 TAUX = TMAX(:,I) 1033 IF ( TDATA(1,I) .NE. -1 ) THEN 1034 IF ( DSEC21(TDATA(:,I),TMAX(:,I)) .GT. 0 ) & 1035 TMAX(:,I) = TDATA(:,I) 1036 END IF 1037 IF ( TOUTP(1,I) .NE. -1 ) THEN 1038 IF ( DSEC21(TOUTP(:,I),TMAX(:,I)) .GT. 0 ) & 1039 TMAX(:,I) = TOUTP(:,I) 1040 END IF 1041 IF ( UNIPTS ) THEN 1042 IF ( DSEC21(UPNEXT,TMAX(:,I)) .GT. 0 ) & 1043 TMAX(:,I) = UPNEXT(:) 1044 END IF 1045 DONE = .TRUE. 1046 CYCLE 1047 END IF 1048 ! 1049 ! 4.b Lowest ranked grids, minimum of all TMAXes 1050 ! 1051 IF ( GRANK(I) .EQ. 1 ) THEN Page 10 Source Listing WMWAVE 2014-09-16 16:49 wmwavemd.f90 1052 ! 1053 TAUX = TMAX(:,I) 1054 FLAGOK = .TRUE. 1055 ! 1056 ! 4.b.1 Check if all grids have reached previous sync point 1057 ! 1058 DO II=1, NRGRD 1059 CALL W3SETW ( II, MDSE, MDST ) 1060 IF ( TIME(1).NE.-1 .AND. & 1061 MPI_COMM_GRD.NE.MPI_COMM_NULL ) THEN 1062 IF ( DSEC21(TIME,TSYNC(:,0)) .NE. 0 ) THEN 1063 FLAGOK = .FALSE. 1064 EXIT 1065 END IF 1066 END IF 1067 END DO 1068 ! 1069 ! 4.b.2 Check availability of data 1070 ! 1071 DO II=1, NRGRD 1072 IF ( GRANK(II) .EQ. 1 ) THEN 1073 IF ( TMAX(1,II) .EQ. -1 ) THEN 1074 FLAGOK = .FALSE. 1075 EXIT 1076 ELSE 1077 IF ( DSEC21 (TAUX,TMAX(:,II)) .LT. 0. ) & 1078 TAUX = TMAX(:,II) 1079 END IF 1080 END IF 1081 END DO 1082 ! 1083 CALL W3SETW ( I, MDSE, MDST ) 1084 FLAGOK = FLAGOK .AND. DSEC21(TIME,TAUX).GT.0. 1085 ! 1086 ! 4.b.3 Update TSYNC for all grids 1087 ! 1088 IF ( FLAGOK ) THEN 1089 ! 1090 TSYNC(:,0) = TAUX 1091 DO_UPT = .TRUE. 1092 DO II=1, NRGRD 1093 IF ( GRANK(II) .EQ. 1 ) THEN 1094 TSYNC(:,II) = TAUX 1095 IF ( GRSTAT(II) .EQ. 2 ) GRSTAT(II) = 3 1096 END IF 1097 END DO 1098 DONE = .TRUE. 1099 ! 1100 ! 4.b.4 Output 1101 ! 1102 ! 4.b.5 Skip computations so that all grids start processing 1103 ! simultaneously. 1104 ! 1105 IF ( INGRP(J,0) .GT. 1 ) GOTO 1111 1106 ! 1107 END IF 1108 ! Page 11 Source Listing WMWAVE 2014-09-16 16:49 wmwavemd.f90 1109 ! 4.c Other grids, logical from relations and TMAXes 1110 ! 1111 ELSE IF ( TSYNC(1,0) .NE. -1 ) THEN 1112 ! 1113 TAUX = TSYNC(:,0) 1114 FLAGOK = .TRUE. 1115 ! 1116 ! 4.c.1 Check availability of data within group 1117 ! Time within group needs to be the same for load balancing. 1118 ! 1119 DO JJJ=1, INGRP(J,0) 1120 II = INGRP(J,JJJ) 1121 IF ( TMAX(1,II) .EQ. -1 ) THEN 1122 FLAGOK = .FALSE. 1123 EXIT 1124 ELSE 1125 IF ( DSEC21 (TAUX,TMAX(:,II)) .LT. 0. ) & 1126 TAUX = TMAX(:,II) 1127 END IF 1128 END DO 1129 ! 1130 ! 4.c.2 Check with dependent lower rank grids ( TSYNC ) 1131 ! 1132 DO JJJ=1, GRDLOW(I,0) 1133 II = GRDLOW(I,JJJ) 1134 IF ( TSYNC(1,II) .EQ. -1 ) THEN 1135 FLAGOK = .FALSE. 1136 EXIT 1137 ELSE 1138 IF ( DSEC21 (TAUX,TSYNC(:,II)) .LT. 0. ) & 1139 TAUX = TSYNC(:,II) 1140 END IF 1141 END DO 1142 ! 1143 ! 4.c.3 Check with dependent higher rank grids ( TSYNC ) 1144 ! No check needed 1145 ! 1146 ! 4.c.4 Final check against grid time 1147 ! 1148 CALL W3SETW ( I, MDSE, MDST ) 1149 FLAGOK = FLAGOK .AND. DSEC21(TIME,TAUX).GT.0. 1150 ! 1151 ! 4.c.5 Update TSYNC throughout group 1152 ! 1153 IF ( FLAGOK ) THEN 1154 ! 1155 DO JJJ=1, INGRP(J,0) 1156 II = INGRP(J,JJJ) 1157 TSYNC(:,II) = TAUX 1158 IF ( GRSTAT(II) .EQ. 2 ) GRSTAT(II) = 3 1159 1160 END DO 1161 DONE = .TRUE. 1162 ! 1163 ! 4.c.6 Skip computations so that all grids in group are advanced 1164 ! simultaneously. 1165 Page 12 Source Listing WMWAVE 2014-09-16 16:49 wmwavemd.f90 1166 IF ( INGRP(J,0) .GT. 1 ) GOTO 1111 1167 ! 1168 END IF 1169 ! 1170 END IF 1171 ! 1172 END IF 1173 ! 1174 ! 5. Run the wave model --------------------------------------------- / 1175 ! ( GRSTAT = 3 ) w3xdatmd data structures set in W3WAVE 1176 ! 1177 ! 5.a Run model 1178 ! 1179 IF ( GRSTAT(I).EQ.3 .AND. & 1180 MPI_COMM_GRD .EQ. MPI_COMM_NULL ) THEN 1181 CALL W3SETW ( I, MDSE, MDST ) 1182 TIME = TSYNC(:,I) 1183 GRSTAT(I) = 4 1184 DONE = .TRUE. 1185 ELSE IF ( GRSTAT(I).EQ.3 .AND. & 1186 MPI_COMM_GRD .NE. MPI_COMM_NULL ) THEN 1187 ! 1188 CALL WMSETM ( I, MDSE, MDST ) 1189 CALL W3WAVE ( I, TSYNC(:,I), .FALSE., .TRUE. ) 1190 IF ( FLLSTL ) FLAGS(1) = .FALSE. 1191 IF ( FLLSTI ) FLAGS(4) = .FALSE. 1192 ! 1193 ! 5.b Stage data for grids with equal rank 1194 ! 1195 CALL WMIOEF ( I ) 1196 CALL WMIOES ( I ) 1197 ! 1198 ! 5.c Finish up 1199 ! 1200 GRSTAT(I) = 4 1201 DONE = .TRUE. 1202 ! 1203 END IF 1204 ! 1205 ! 6. Reconcile grids with same rank --------------------------------- / 1206 ! and stage data transfer to higher and lower ranked grids. 1207 ! ( GRSTAT = 4 ) 1208 ! 1209 IF ( GRSTAT(I) .EQ. 4 ) THEN 1210 ! 1211 ! 6.a Test against times and statuses of dependent grids 1212 ! Note: This is done per GROUP, not per local equal grid dependence 1213 ! Therefore, it is essential that sync times per group are 1214 ! equal (4.c.1) and that all equal grid dependences are a 1215 ! subset of groups (WMGEQL 5.d) 1216 ! 1217 ! 6.a.1 Check if sync point is reached 1218 ! 1219 IF ( .NOT. FLEQOK(I) ) THEN 1220 ! 1221 FLAGOK = .TRUE. 1222 CALL W3SETW ( I, MDSE, MDST ) Page 13 Source Listing WMWAVE 2014-09-16 16:49 wmwavemd.f90 1223 TAUX = TIME 1224 DO JJJ=1, INGRP(J,0) 1225 CALL W3SETW ( INGRP(J,JJJ), MDSE, MDST ) 1226 FLAGOK = FLAGOK .AND. DSEC21(TAUX,TIME).EQ.0. & 1227 .AND. GRSTAT(INGRP(J,JJJ)).EQ.4 1228 END DO 1229 CALL W3SETW ( I, MDSE, MDST ) 1230 ! 1231 ! 6.a.2 Point reached, set flag for all in group and cycle 1232 ! 1233 IF ( FLAGOK ) THEN 1234 DO JJJ=1, INGRP(J,0) 1235 FLEQOK(INGRP(J,JJJ)) = .TRUE. 1236 END DO 1237 DONE = .TRUE. 1238 ! 1239 IF ( INGRP(J,0) .GT. 1 ) GOTO 1111 1240 END IF 1241 ! 1242 END IF 1243 ! 1244 ! 6.b Call gathering routine, reset FLEQOK and cycle 1245 ! 1246 IF ( .NOT.FLEQOK(I) .AND. .NOT.PREGTE(I) ) THEN 1247 IF ( MPI_COMM_GRD.NE.MPI_COMM_NULL ) & 1248 CALL WMIOEG (I,FLAG) 1249 PREGTE(I) = .TRUE. 1250 END IF 1251 ! 1252 IF ( FLEQOK(I) ) THEN 1253 IF ( MPI_COMM_GRD.NE.MPI_COMM_NULL ) & 1254 CALL WMIOEG ( I ) 1255 PREGTE(I) = .FALSE. 1256 GRSTAT(I) = 5 1257 FLEQOK(I) = .FALSE. 1258 DONE = .TRUE. 1259 END IF 1260 ! 1261 ! 6.c Stage data 1262 ! 1263 IF ( GRSTAT(I) .EQ. 5 ) THEN 1264 ! 1265 IF ( MPI_COMM_GRD .NE. MPI_COMM_NULL ) THEN 1266 CALL WMIOBF ( I ) 1267 CALL WMIOBS ( I ) 1268 END IF 1269 ! 1270 CYCLE 1271 ! 1272 END IF 1273 ! 1274 END IF 1275 ! 1276 ! 7. Reconcile with higher ranked grids ----------------------------- / 1277 ! ( GRSTAT = 5 ) 1278 ! 1279 ! This needs to be a little more complicated than with boundary Page 14 Source Listing WMWAVE 2014-09-16 16:49 wmwavemd.f90 1280 ! data to assure proper logic in cases where data providing 1281 ! data does not get data back (e.g., as for the boundary grid 1282 ! in mww3_test_04) 1283 ! 1284 IF ( GRSTAT(I) .EQ. 5 ) THEN 1285 ! 1286 ! 7.a Test against times and statuses of dependent grids 1287 ! 1288 IF ( GRDHGH(I,0) .EQ. 0 ) THEN 1289 GRSTAT(I) = 6 1290 DONE = .TRUE. 1291 ELSE 1292 ! 1293 FLAGOK = .TRUE. 1294 CALL W3SETW ( I, MDSE, MDST ) 1295 TAUX = TIME 1296 DO JJJ=1, GRDHGH(I,0) 1297 CALL W3SETW ( GRDHGH(I,JJJ), MDSE, MDST ) 1298 IF ( .NOT. ( DSEC21(TAUX,TIME).EQ.0. .AND. & 1299 ( GRSTAT(GRDHGH(I,JJJ)).GE.7 .OR. & 1300 GRSTAT(GRDHGH(I,JJJ)).LE.2 ) ) ) & 1301 FLAGOK = .FALSE. 1302 END DO 1303 CALL W3SETW ( I, MDSE, MDST ) 1304 ! 1305 ! 7.b Call gathering routine 1306 ! 1307 IF ( .NOT.FLAGOK .AND. .NOT.PREGTH(I) ) THEN 1308 IF ( MPI_COMM_GRD.NE.MPI_COMM_NULL ) & 1309 CALL WMIOHG ( I, FLAG ) 1310 PREGTH(I) = .TRUE. 1311 END IF 1312 ! 1313 IF ( FLAGOK ) THEN 1314 IF ( MPI_COMM_GRD.NE.MPI_COMM_NULL ) & 1315 CALL WMIOHG ( I ) 1316 PREGTH(I) = .FALSE. 1317 GRSTAT(I) = 6 1318 DONE = .TRUE. 1319 END IF 1320 ! 1321 END IF 1322 ! 1323 ! 7.c Stage data 1324 ! 1325 IF ( GRSTAT(I) .EQ. 6 .AND. & 1326 MPI_COMM_GRD .NE. MPI_COMM_NULL ) THEN 1327 CALL WMIOHF ( I ) 1328 CALL WMIOHS ( I ) 1329 END IF 1330 ! 1331 END IF 1332 ! 1333 ! 8. Perform data assimmilation ------------------------------------- / 1334 ! ( GRSTAT = 6 ) Placeholder only ..... 1335 ! 1336 IF ( GRSTAT(I) .EQ. 6 ) THEN Page 15 Source Listing WMWAVE 2014-09-16 16:49 wmwavemd.f90 1337 GRSTAT(I) = 7 1338 DONE = .TRUE. 1339 END IF 1340 ! 1341 ! 9. Perform output ------------------------------------------------- / 1342 ! ( GRSTAT = 7 ) w3xdatmd data structures set in W3WAVE 1343 ! 1344 ! 9.a Check times and finish step if no output to be made 1345 ! 1346 IF ( GRSTAT(I).EQ.7 .AND. .NOT.FLSYNC(I) ) THEN 1347 ! 1348 IF ( TOUTP(1,I) .EQ. -1 ) THEN 1349 DTTST = 1. 1350 ELSE 1351 CALL W3SETW ( I, MDSE, MDST ) 1352 DTTST = DSEC21 ( TIME , TOUTP(:,I) ) 1353 END IF 1354 FLG_O1 = DTTST .EQ. 0. 1355 ! 1356 IF ( UNIPTS ) THEN 1357 CALL W3SETW ( I, MDSE, MDST ) 1358 DTTST = DSEC21 ( TIME , UPNEXT ) 1359 FLG_O2 = DTTST .EQ. 0. 1360 ELSE 1361 FLG_O2 = .FALSE. 1362 END IF 1363 ! 1364 IF ( .NOT.FLG_O1 .AND. .NOT.FLG_O2 ) THEN 1365 GRSTAT(I) = 8 1366 DONE = .TRUE. 1367 END IF 1368 ! 1369 END IF 1370 ! 1371 ! 9.b Perform output 1372 ! 1373 IF ( GRSTAT(I) .EQ. 7 ) THEN 1374 IF ( MPI_COMM_GRD .NE. MPI_COMM_NULL ) THEN 1375 ! 1376 !!/MPRF CALL PRTIME ( PRFT0 ) 1377 !!/MPRF CALL WMWOUT ( I, NRGRD, 3 ) 1378 !!/MPRF CALL PRTIME ( PRFTN ) 1379 !!/MPRF WRITE (MDSP,991) PRFT0, PRFTN,'BCST',I 1380 ! 1381 IF ( FLG_O1 ) THEN 1382 CALL W3SETG ( I, MDSE, MDST ) 1383 CALL WMSETM ( I, MDSE, MDST ) 1384 ! 1385 IF ( FLGHG1 .AND. .NOT.FLGHG2 .AND. & 1386 GRDHGH(I,0).GT.0 ) THEN 1387 MAPST2 = MAPST2 - 8*MAPMSK 1388 MAPSTA = ABS(MAPSTA) 1389 DO IX=1, NX 1390 DO IY=1, NY 1391 IF ( MAPST2(IY,IX) .GT. 0 ) & 1392 MAPSTA(IY,IX) = - MAPSTA(IY,IX) 1393 END DO Page 16 Source Listing WMWAVE 2014-09-16 16:49 wmwavemd.f90 1394 END DO 1395 ! 1396 END IF 1397 ! 1398 CALL W3WAVE ( I, TSYNC(:,I), .FALSE. ) 1399 ! 1400 IF ( FLGHG1 .AND. .NOT.FLGHG2 .AND. & 1401 GRDHGH(I,0).GT.0 ) THEN 1402 MAPST2 = MAPST2 + 8*MAPMSK 1403 MAPSTA = ABS(MAPSTA) 1404 DO IX=1, NX 1405 DO IY=1, NY 1406 IF ( MAPST2(IY,IX) .GT. 0 ) & 1407 MAPSTA(IY,IX) = - MAPSTA(IY,IX) 1408 END DO 1409 END DO 1410 END IF 1411 ! 1412 IF ( FLLSTL ) FLAGS(1) = .FALSE. 1413 IF ( FLLSTI ) FLAGS(4) = .FALSE. 1414 ! 1415 ! 9.c Update TOUPT 1416 ! 1417 TOUTP(1,I) = -1 1418 TOUTP(2,I) = 0 1419 ! 1420 DO JO=1, NOTYPE 1421 IF ( .NOT.FLOUT(JO) ) CYCLE 1422 IF ( TOUTP(1,I) .EQ. -1 ) THEN 1423 TOUTP(:,I) = TONEXT(:,JO) 1424 ELSE 1425 DTTST = DSEC21 ( TOUTP(:,I) , TONEXT(:,JO) ) 1426 IF (DTTST.LT.0.) TOUTP(:,I) = TONEXT(:,JO) 1427 ENDIF 1428 END DO 1429 ! 1430 END IF 1431 1432 ! 1433 ! 9.d Process unified point output for selected grid 1434 ! 1435 IF ( UNIPTS ) THEN 1436 IF ( FLG_O2 ) THEN 1437 CALL W3SETO ( I, MDSE, MDST ) 1438 ! 1439 IF ( NRQPO.NE.0 ) CALL MPI_STARTALL & 1440 ( NRQPO, IRQPO1, IERR_MPI ) 1441 ! 1442 IF ( NOPTS.NE.0 .AND. IAPROC.EQ.NAPPNT ) THEN 1443 CALL W3SETG ( I, MDSE, MDST ) 1444 CALL W3SETA ( I, MDSE, MDST ) 1445 CALL W3IOPE ( VA ) 1446 END IF 1447 ! 1448 IF ( NRQPO .NE. 0 ) THEN 1449 ALLOCATE ( STATUS(MPI_STATUS_SIZE,NRQPO) ) 1450 CALL MPI_WAITALL & Page 17 Source Listing WMWAVE 2014-09-16 16:49 wmwavemd.f90 1451 ( NRQPO, IRQPO1, STATUS, IERR_MPI ) 1452 DEALLOCATE ( STATUS ) 1453 END IF 1454 ! 1455 END IF 1456 ! 1457 END IF 1458 ! 1459 ! 9.e Update TOUPT outside communicator 1460 ! 1461 ELSE IF ( FLG_O1 ) THEN 1462 ! 1463 CALL W3SETO ( I, MDSE, MDST ) 1464 CALL W3SETW ( I, MDSE, MDST ) 1465 ! 1466 TIME = TOUTP(:,I) 1467 TOUTP(1,I) = -1 1468 TOUTP(2,I) = 0 1469 ! 1470 DO JO=1, NOTYPE 1471 ! 1472 IF ( FLOUT(JO) ) THEN 1473 DO 1474 DTTST = DSEC21 ( TIME, TONEXT(:,JO) ) 1475 IF ( DTTST .LE. 0. ) THEN 1476 CALL TICK21 ( TONEXT(:,JO), DTOUT(JO) ) 1477 DTTST = DSEC21 ( TONEXT(:,JO), TOLAST(:,JO) ) 1478 IF ( DTTST .LT. 0. ) THEN 1479 FLOUT(JO) = .FALSE. 1480 EXIT 1481 END IF 1482 ELSE 1483 EXIT 1484 END IF 1485 END DO 1486 END IF 1487 ! 1488 IF ( .NOT.FLOUT(JO) ) CYCLE 1489 IF ( TOUTP(1,I) .EQ. -1 ) THEN 1490 TOUTP(:,I) = TONEXT(:,JO) 1491 ELSE 1492 DTTST = DSEC21 ( TOUTP(:,I) , TONEXT(:,JO) ) 1493 IF (DTTST.LT.0.) TOUTP(:,I) = TONEXT(:,JO) 1494 ENDIF 1495 ! 1496 END DO 1497 ! 1498 END IF 1499 ! 1500 ! 9.f Finish up 1501 ! 1502 GRSTAT(I) = 8 1503 DONE = .TRUE. 1504 ! 1505 END IF 1506 ! 1507 ! 10. Go to next time step ------------------------------------------- / Page 18 Source Listing WMWAVE 2014-09-16 16:49 wmwavemd.f90 1508 ! ( GRSTAT = 8 ) ( 9 added for diagnostic output only ... ) 1509 ! ( Unified point output and synchronization added ) 1510 ! 1511 IF ( GRSTAT(I) .EQ. 8 ) THEN 1512 ! 1513 ! 10.a Processing unified point output 1514 ! 1515 IF ( UNIPTS .AND. DO_UPT ) THEN 1516 CALL W3SETW ( I, MDSE, MDST ) 1517 FLAGOK = DSEC21 ( TIME, UPNEXT ) .EQ. 0. 1518 ELSE 1519 FLAGOK = .FALSE. 1520 END IF 1521 ! 1522 IF ( FLAGOK ) THEN 1523 ! 1524 DO II=1, NRGRD 1525 CALL W3SETW ( II, MDSE, MDST ) 1526 FLAGOK = FLAGOK .AND. GRSTAT(II).EQ.8 .AND. & 1527 DSEC21(TIME,UPNEXT).EQ.0. 1528 END DO 1529 ! 1530 IF ( FLAGOK ) THEN 1531 ! 1532 CALL WMIOPO ( UPNEXT ) 1533 DO_UPT = .FALSE. 1534 ! 1535 CALL W3SETO ( 0, MDSE, MDST ) 1536 CALL TICK21 ( UPNEXT, DTOUT(2) ) 1537 IF ( DSEC21(UPNEXT,UPLAST) .GE. 0. ) THEN 1538 TONEXT(:,2) = UPNEXT 1539 ELSE 1540 UNIPTS = .FALSE. 1541 UPNEXT(1) = -1 1542 UPNEXT(2) = 0 1543 END IF 1544 ! 1545 DO II=1, NRGRD 1546 CALL W3SETW ( II, MDSE, MDST ) 1547 DTTST = DSEC21 ( TIME, TEND(:,II) ) 1548 IF ( DTTST .GT. 0. ) THEN 1549 GRSTAT(II) = 9 1550 ELSE IF ( DTTST .EQ. 0 ) THEN 1551 GRSTAT(II) = 99 1552 END IF 1553 TSYNC(1,II) = -1 1554 TSYNC(2,II) = 0 1555 END DO 1556 ! 1557 DONE = .TRUE. 1558 END IF 1559 ! 1560 ELSE 1561 FLAGOK = .TRUE. 1562 END IF 1563 ! 1564 ! 10.b Regular processing Page 19 Source Listing WMWAVE 2014-09-16 16:49 wmwavemd.f90 1565 ! 1566 IF ( FLAGOK ) THEN 1567 CALL W3SETW ( I, MDSE, MDST ) 1568 DTTST = DSEC21 ( TIME, TEND(:,I) ) 1569 IF ( DTTST .GT. 0. ) THEN 1570 GRSTAT(I) = 9 1571 DONE = .TRUE. 1572 ELSE IF ( DTTST .EQ. 0 ) THEN 1573 GRSTAT(I) = 99 1574 DONE = .TRUE. 1575 END IF 1576 END IF 1577 ! 1578 IF ( GRSTAT(I).EQ.9 .OR. GRSTAT(I).EQ.99 ) THEN 1579 TSYNC(1,I) = -1 1580 TSYNC(2,I) = 0 1581 END IF 1582 ! 1583 END IF 1584 ! 1585 ! ... End of loops started in 1. ------------------------------------- / 1586 ! 1587 END DO 1588 ! 1589 1111 CONTINUE 1590 ! 1591 END DO 1592 ! 1593 NMPSCR = NMPSCS 1594 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 1595 CALL WMPRNT ( MDSO, NRGRD, TSYNC(:,0), GRSTAT ) 1596 ! 1597 DO I=1, NRGRD 1598 IF ( GRSTAT(I) .EQ. 9 ) GRSTAT(I) = 0 1599 END DO 1600 ! 1601 IF ( .NOT. DONE ) GOTO 2099 1602 IF ( MINVAL(GRSTAT) .EQ. 99 ) EXIT 1603 END DO 1604 ! 1605 ! End of routine -------------------------------------------------- / 1606 ! 1607 DO I=1, NRGRD 1608 CALL WMSETM ( I, MDSE, MDST ) 1609 IF ( MPI_COMM_GRD .NE. MPI_COMM_NULL ) THEN 1610 CALL WMIOBF ( I ) 1611 CALL WMIOHF ( I ) 1612 CALL WMIOEF ( I ) 1613 END IF 1614 END DO 1615 ! 1616 RETURN 1617 ! 1618 ! Escape locations 1619 ! 1620 2000 CONTINUE 1621 IF ( IMPROC .EQ. NMPERR ) WRITE (MDSE,1000) I, GRSTAT(I) Page 20 Source Listing WMWAVE 2014-09-16 16:49 wmwavemd.f90 1622 CALL EXTCDE ( 2000 ) 1623 RETURN 1624 ! 1625 2001 CONTINUE 1626 IF ( IMPROC .EQ. NMPERR ) WRITE (MDSE,1001) I, TSYNC(:,I), & 1627 TEND(:,I) 1628 CALL EXTCDE ( 2001 ) 1629 RETURN 1630 ! 1631 2002 CONTINUE 1632 IF ( IMPROC .EQ. NMPERR ) WRITE (MDSE,1002) J, INGRP(J,1), & 1633 INGRP(J,JJ), TSYNC(:,INGRP(J,1)), TSYNC(:,INGRP(J,JJ)), & 1634 TEND(:,INGRP(J,1)), TEND(:,INGRP(J,JJ)) 1635 CALL EXTCDE ( 2002 ) 1636 RETURN 1637 ! 1638 2099 CONTINUE 1639 IF ( IMPROC .EQ. NMPERR ) WRITE (MDSE,1099) 1640 ! CALL EXTCDE ( 2099 ) 1641 RETURN 1642 ! 1643 ! Formats 1644 ! 1645 900 FORMAT ( ' ========== STARTING WAVE MODEL (WMWAVE) ==========', & 1646 '============================'/) 1647 901 FORMAT (' MWW3 calculating for ',A,' at ',A,' status [', & 1648 I2,'-',I2,']') 1649 999 FORMAT (/' ========== END OF WAVE MODEL (WMWAVE) ============', & 1650 '============================'/) 1651 ! 1652 1000 FORMAT (/' *** WAVEWATCH III ERROR IN WMWAVE : *** '/ & 1653 ' GRID',I3,' HAS ILLEGAL GRSTAT :',I8/) 1654 ! 1655 1001 FORMAT (/' *** WAVEWATCH III ERROR IN WMWAVE : *** '/ & 1656 ' GRID',I3,' HAS ILLEGAL TSYNC / TEND '/ & 1657 ' TSYNC :',I9.8,I7.6/ & 1658 ' TEND :',I9.8,I7.6/) 1659 ! 1660 1002 FORMAT (/' *** WAVEWATCH III ERROR IN WMWAVE : *** '/ & 1661 ' GROUP',I3,' HAS INCOMPATIBLE TIMES ', & 1662 'IN GRIDS ',I3,' AND ',I3/ & 1663 ' TSYNC :',I9.8,I7.6,1X,I9.8,I7.6/ & 1664 ' TEND :',I9.8,I7.6,1X,I9.8,I7.6/) 1665 ! 1666 ! Note: This 1099 error can occur when multi-grid time steps are not 1667 ! compatible. 1668 1099 FORMAT (/' *** WAVEWATCH III ERROR IN WMWAVE : *** '/ & 1669 ' ABORT FOR POSSIBLE ENDLESS LOOP '/) 1670 ! 1671 !/ 1672 !/ End of WMWAVE ----------------------------------------------------- / 1673 !/ 1674 END SUBROUTINE WMWAVE Page 21 Source Listing WMWAVE 2014-09-16 16:49 Entry Points wmwavemd.f90 ENTRY POINTS Name wmwavemd_mp_wmwave_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1000 Label 1114 1083 1001 Label 1117 1088 1002 Label 1122 1094 1099 Label 1130 1101 1111 Label 1051 567,628,701 2000 Label 1082 252 2001 Label 1087 258 2002 Label 1093 268 2099 Label 1100 1063 900 Label 1107 901 Label 1109 319,336 999 Label 1111 ABS Func 491 scalar 491,850,865 ALLOCATED Func 276 scalar 276 AMV Local 210 R(4) 4 2 1 PTR 210 CONSTANTS Module 186 186 CROOT Local 216 I(4) 4 scalar PTR 216,359 DMV Local 210 R(4) 4 2 1 PTR 210 DONE Local 237 L(4) 4 scalar 341,380,401,409,434,467,507,560,62 3,646,663,699,720,752,780,800,828, 965,1019,1033,1036,1063 DO_UPT Local 237 L(4) 4 scalar 306,310,553,977,995 DSEC21 Func 195 R(4) 4 scalar 195,257,266,267,293,331,375,431,44 9,484,496,500,504,524,539,546,587, 600,611,688,760,814,820,887,936,93 9,954,979,989,999,1009,1030 DTMAX Local 202 R(4) 4 scalar PTR 202,489,490 DTMAXI Local 234 R(4) 4 scalar 489,490,493 DTOUT Local 204 R(4) 4 1 1 PTR 204,938,998 DTRES Local 213 R(4) 4 1 1 ALC 213,299,489,490,491 DTTST Local 234 R(4) 4 scalar 257,258,293,294,372,375,378,390,43 1,432,482,484,487,811,814,816,820, 821,887,888,936,937,939,940,954,95 5,1009,1010,1012,1030,1031,1034 ETIME Local 210 I(4) 4 1 2 210 EXTCDE Subr 194 194,1084,1090,1097 FBCAST Local 216 L(4) 4 scalar PTR 216,350,357,358,412 FLAG Local 239 L(4) 4 scalar 458,710,771 FLAGOK Local 237 L(4) 4 scalar 444,449,456,462,516,525,536,546,55 0,576,584,597,611,615,683,688,695, 755,763,769,775,979,981,984,988,99 2,1023,1028 FLAGS Local 207 L(4) 4 1 1 PTR 207,652,653,874,875 FLEQOK Local 241 L(4) 4 1 1 ALC 278,283,681,697,708,714,719 Page 22 Source Listing WMWAVE 2014-09-16 16:49 Symbol Table wmwavemd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References FLGHG1 Local 213 L(4) 4 scalar 213,847,862 FLGHG2 Local 213 L(4) 4 scalar 213,847,862 FLG_O1 Local 238 L(4) 4 scalar 816,826,843,923 FLG_O2 Local 238 L(4) 4 scalar 821,823,826,898 FLLSTI Local 213 L(4) 4 scalar PTR 213,653,875 FLLSTL Local 213 L(4) 4 scalar PTR 213,652,874 FLOUT Local 204 L(4) 4 1 1 PTR 204,883,934,941,950 FLSYNC Local 240 L(4) 4 1 1 ALC 276,277,280,369,387,411,415,418,80 8 GRANK Local 211 I(4) 4 1 1 ALC 211,270,513,534,555 GRDEQL Local 211 I(4) 4 2 1 ALC 211 GRDHGH Local 211 I(4) 4 2 1 ALC 211,750,758,759,761,762,848,863 GRDLOW Local 212 I(4) 4 2 1 ALC 212,447,448,450,594,595 GRSTAT Local 212 I(4) 4 1 1 ALC 212,251,252,294,316,319,333,336,35 7,369,379,387,400,408,414,429,433, 440,450,466,475,557,620,641,645,64 7,662,671,689,718,725,746,751,761, 762,779,787,798,799,808,827,835,96 4,973,988,1011,1013,1032,1035,1040 ,1057,1060,1064,1083 GRSYNC Local 240 L(4) 4 1 1 ALC 277,281,346,350,399,408,416 I Local 230 I(4) 4 scalar 250,251,252,256,257,291,292,293,29 4,348,349,354,355,357,369,371,374, 375,379,387,394,400,408,411,413,41 4,415,418,429,430,431,433,440,445, 447,448,450,452,456,458,459,464,46 5,466,475,479,480,481,484,488,489, 490,491,492,493,494,495,496,497,49 9,500,501,504,505,513,515,545,594, 595,610,641,643,644,645,647,650,65 1,657,658,662,671,681,684,691,708, 710,711,714,716,717,718,719,725,72 8,729,746,750,751,756,758,759,761, 762,765,769,771,772,777,778,779,78 7,789,790,798,799,808,810,813,814, 819,827,835,844,845,848,860,863,87 9,880,884,885,887,888,899,905,906, 925,926,928,929,930,951,952,954,95 5,964,973,978,1029,1030,1032,1035, 1040,1041,1042,1059,1060,1069,1070 ,1072,1073,1074,1083,1088,1089 IAPROC Local 204 I(4) 4 scalar PTR 204,904 IERR_MPI Local 232 I(4) 4 scalar 324,902,913 II Local 231 I(4) 4 scalar 520,521,533,534,535,539,540,554,55 5,556,557,582,583,587,588,595,596, 600,601,618,619,620,986,987,988,10 07,1008,1009,1011,1013,1015,1016 IMPROC Local 208 I(4) 4 scalar 208,315,330,391,1056,1083,1088,109 4,1101 INGRP Local 211 I(4) 4 2 1 ALC 211,265,266,267,270,271,347,348,35 3,354,567,581,582,617,618,628,686, 687,689,696,697,701,1094,1095,1096 IRQPO1 Local 206 I(4) 4 1 1 PTR 206,902,913 IX Local 231 I(4) 4 scalar 851,853,854,866,868,869 IY Local 231 I(4) 4 scalar 852,853,854,867,868,869 Page 23 Source Listing WMWAVE 2014-09-16 16:49 Symbol Table wmwavemd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References J Local 230 I(4) 4 scalar 264,265,266,267,270,271,344,346,34 7,348,350,353,354,399,408,416,567, 581,582,617,618,628,686,687,689,69 6,697,701,1094,1095,1096 JJ Local 230 I(4) 4 scalar 265,266,267,347,348,353,354,1095,1 096 JJJ Local 231 I(4) 4 scalar 447,448,450,581,582,594,595,617,61 8,686,687,689,696,697,758,759,761, 762 JO Local 230 I(4) 4 scalar 882,883,885,887,888,932,934,936,93 8,939,941,950,952,954,955 MAPMSK Local 214 I(4) 4 2 1 PTR 214,849,864 MAPST2 Local 202 I(4) 4 2 1 PTR 202,849,853,864,868 MAPSTA Local 202 I(4) 4 2 1 PTR 202,850,854,865,869 MAXVAL Func 319 scalar 319,336 MDSE Local 208 I(4) 4 scalar 208,292,303,349,355,374,430,445,44 8,452,479,488,521,545,610,643,650, 684,687,691,756,759,765,813,819,84 4,845,899,905,906,925,926,978,987, 997,1008,1029,1070,1083,1088,1094, 1101 MDSI Local 208 I(4) 4 scalar 208 MDSO Local 208 I(4) 4 scalar 208,315,316,330,333,391,1056,1057 MDSS Local 208 I(4) 4 scalar 208,315,319,330,332,336,391,392,10 56 MDST Local 208 I(4) 4 scalar 208,292,303,349,355,374,430,445,44 8,452,479,488,521,545,610,643,650, 684,687,691,756,759,765,813,819,84 4,845,899,905,906,925,926,978,987, 997,1008,1029,1070 MINVAL Func 319 scalar 319,336,1064 MPIPRIV1 Common 532 28 MPIPRIV2 Common 534 24 MPIPRIVC Common 537 2 MPI_2COMPLEX Param 332 I(4) 4 scalar MPI_2DOUBLE_COMPLEX Param 338 I(4) 4 scalar MPI_2DOUBLE_PRECISION Param 334 I(4) 4 scalar MPI_2INT Param 415 I(4) 4 scalar MPI_2INTEGER Param 330 I(4) 4 scalar MPI_2REAL Param 336 I(4) 4 scalar MPI_ADDRESS_KIND Param 372 I(4) 4 scalar MPI_ANY_SOURCE Param 300 I(4) 4 scalar MPI_ANY_TAG Param 302 I(4) 4 scalar MPI_APPNUM Param 269 I(4) 4 scalar MPI_ARGVS_NULL Scalar 83 CHAR 1 2 1 COM MPI_ARGV_NULL Scalar 84 CHAR 1 1 1 COM MPI_BAND Param 217 I(4) 4 scalar MPI_BARRIER Subr 324 324 MPI_BOR Param 221 I(4) 4 scalar MPI_BOTTOM Scalar 517 I(4) 4 scalar COM MPI_BSEND_OVERHEAD Param 296 I(4) 4 scalar MPI_BXOR Param 225 I(4) 4 scalar MPI_BYTE Param 342 I(4) 4 scalar MPI_CART Param 308 I(4) 4 scalar MPI_CHAR Param 375 I(4) 4 scalar Page 24 Source Listing WMWAVE 2014-09-16 16:49 Symbol Table wmwavemd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References MPI_CHARACTER Param 340 I(4) 4 scalar MPI_COMBINER_CONTIGUOUS Param 423 I(4) 4 scalar MPI_COMBINER_DARRAY Param 445 I(4) 4 scalar MPI_COMBINER_DUP Param 421 I(4) 4 scalar MPI_COMBINER_F90_COMPLEX Param 449 I(4) 4 scalar MPI_COMBINER_F90_INTEGER Param 451 I(4) 4 scalar MPI_COMBINER_F90_REAL Param 447 I(4) 4 scalar MPI_COMBINER_HINDEXED Param 435 I(4) 4 scalar MPI_COMBINER_HINDEXED_INTE GER Param 433 I(4) 4 scalar MPI_COMBINER_HVECTOR Param 429 I(4) 4 scalar MPI_COMBINER_HVECTOR_INTEG ER Param 427 I(4) 4 scalar MPI_COMBINER_INDEXED Param 431 I(4) 4 scalar MPI_COMBINER_INDEXED_BLOCK Param 437 I(4) 4 scalar MPI_COMBINER_NAMED Param 419 I(4) 4 scalar MPI_COMBINER_RESIZED Param 453 I(4) 4 scalar MPI_COMBINER_STRUCT Param 441 I(4) 4 scalar MPI_COMBINER_STRUCT_INTEGE R Param 439 I(4) 4 scalar MPI_COMBINER_SUBARRAY Param 443 I(4) 4 scalar MPI_COMBINER_VECTOR Param 425 I(4) 4 scalar MPI_COMM_BCT Local 216 I(4) 4 scalar PTR 216 MPI_COMM_DUP_FN Subr 521 scalar MPI_COMM_GRD Local 215 I(4) 4 scalar PTR 215,388,457,463,523,642,648,709,71 5,727,770,776,788,836,1071 MPI_COMM_MWAVE Local 215 I(4) 4 scalar 215,324 MPI_COMM_NULL Param 239 I(4) 4 scalar 388,457,463,523,642,648,709,715,72 7,770,776,788,836,1071 MPI_COMM_NULL_COPY_FN Subr 522 scalar MPI_COMM_NULL_DELETE_FN Subr 521 scalar MPI_COMM_SELF Param 235 I(4) 4 scalar MPI_COMM_WORLD Param 233 I(4) 4 scalar MPI_COMPLEX Param 318 I(4) 4 scalar MPI_COMPLEX16 Param 368 I(4) 4 scalar MPI_COMPLEX32 Param 370 I(4) 4 scalar MPI_COMPLEX8 Param 366 I(4) 4 scalar MPI_CONGRUENT Param 201 I(4) 4 scalar MPI_CONVERSION_FN_NULL Subr 527 scalar MPI_DATATYPE_NULL Param 249 I(4) 4 scalar 359 MPI_DISPLACEMENT_CURRENT Param 515 I(8) 8 scalar MPI_DISTRIBUTE_BLOCK Param 507 I(4) 4 scalar MPI_DISTRIBUTE_CYCLIC Param 509 I(4) 4 scalar MPI_DISTRIBUTE_DFLT_DARG Param 513 I(4) 4 scalar MPI_DISTRIBUTE_NONE Param 511 I(4) 4 scalar MPI_DOUBLE Param 397 I(4) 4 scalar MPI_DOUBLE_COMPLEX Param 320 I(4) 4 scalar MPI_DOUBLE_INT Param 409 I(4) 4 scalar MPI_DOUBLE_PRECISION Param 326 I(4) 4 scalar MPI_DUP_FN Subr 518 scalar MPI_ERRCODES_IGNORE Scalar 82 I(4) 4 1 1 COM MPI_ERRHANDLER_NULL Param 253 I(4) 4 scalar MPI_ERROR Param 76 I(4) 4 scalar MPI_ERRORS_ARE_FATAL Param 195 I(4) 4 scalar MPI_ERRORS_RETURN Param 197 I(4) 4 scalar Page 25 Source Listing WMWAVE 2014-09-16 16:49 Symbol Table wmwavemd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References MPI_ERR_ACCESS Param 189 I(4) 4 scalar MPI_ERR_AMODE Param 173 I(4) 4 scalar MPI_ERR_ARG Param 109 I(4) 4 scalar MPI_ERR_ASSERT Param 131 I(4) 4 scalar MPI_ERR_BAD_FILE Param 163 I(4) 4 scalar MPI_ERR_BASE Param 97 I(4) 4 scalar MPI_ERR_BUFFER Param 115 I(4) 4 scalar MPI_ERR_COMM Param 137 I(4) 4 scalar MPI_ERR_CONVERSION Param 193 I(4) 4 scalar MPI_ERR_COUNT Param 93 I(4) 4 scalar MPI_ERR_DIMS Param 179 I(4) 4 scalar MPI_ERR_DISP Param 125 I(4) 4 scalar MPI_ERR_DUP_DATAREP Param 117 I(4) 4 scalar MPI_ERR_FILE Param 91 I(4) 4 scalar MPI_ERR_FILE_EXISTS Param 133 I(4) 4 scalar MPI_ERR_FILE_IN_USE Param 165 I(4) 4 scalar MPI_ERR_GROUP Param 145 I(4) 4 scalar MPI_ERR_INFO Param 159 I(4) 4 scalar MPI_ERR_INFO_KEY Param 103 I(4) 4 scalar MPI_ERR_INFO_NOKEY Param 129 I(4) 4 scalar MPI_ERR_INFO_VALUE Param 153 I(4) 4 scalar MPI_ERR_INTERN Param 185 I(4) 4 scalar MPI_ERR_IN_STATUS Param 101 I(4) 4 scalar MPI_ERR_IO Param 187 I(4) 4 scalar MPI_ERR_KEYVAL Param 139 I(4) 4 scalar MPI_ERR_LASTCODE Param 121 I(4) 4 scalar MPI_ERR_LOCKTYPE Param 105 I(4) 4 scalar MPI_ERR_NAME Param 141 I(4) 4 scalar MPI_ERR_NOT_SAME Param 155 I(4) 4 scalar MPI_ERR_NO_MEM Param 161 I(4) 4 scalar MPI_ERR_NO_SPACE Param 191 I(4) 4 scalar MPI_ERR_NO_SUCH_FILE Param 181 I(4) 4 scalar MPI_ERR_OP Param 107 I(4) 4 scalar MPI_ERR_OTHER Param 87 I(4) 4 scalar MPI_ERR_PENDING Param 135 I(4) 4 scalar MPI_ERR_PORT Param 127 I(4) 4 scalar MPI_ERR_QUOTA Param 171 I(4) 4 scalar MPI_ERR_RANK Param 177 I(4) 4 scalar MPI_ERR_READ_ONLY Param 111 I(4) 4 scalar MPI_ERR_REQUEST Param 143 I(4) 4 scalar MPI_ERR_RMA_CONFLICT Param 99 I(4) 4 scalar MPI_ERR_RMA_SYNC Param 157 I(4) 4 scalar MPI_ERR_ROOT Param 175 I(4) 4 scalar MPI_ERR_SERVICE Param 183 I(4) 4 scalar MPI_ERR_SIZE Param 113 I(4) 4 scalar MPI_ERR_SPAWN Param 95 I(4) 4 scalar MPI_ERR_TAG Param 151 I(4) 4 scalar MPI_ERR_TOPOLOGY Param 147 I(4) 4 scalar MPI_ERR_TRUNCATE Param 123 I(4) 4 scalar MPI_ERR_TYPE Param 149 I(4) 4 scalar MPI_ERR_UNKNOWN Param 167 I(4) 4 scalar MPI_ERR_UNSUPPORTED_DATARE P Param 119 I(4) 4 scalar MPI_ERR_UNSUPPORTED_OPERAT ION Param 169 I(4) 4 scalar Page 26 Source Listing WMWAVE 2014-09-16 16:49 Symbol Table wmwavemd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References MPI_ERR_WIN Param 89 I(4) 4 scalar MPI_FILE_NULL Param 243 I(4) 4 scalar MPI_FLOAT Param 395 I(4) 4 scalar MPI_FLOAT_INT Param 407 I(4) 4 scalar MPI_GRAPH Param 306 I(4) 4 scalar MPI_GROUP_EMPTY Param 237 I(4) 4 scalar MPI_GROUP_NULL Param 245 I(4) 4 scalar MPI_HOST Param 259 I(4) 4 scalar MPI_IDENT Param 199 I(4) 4 scalar MPI_INFO_NULL Param 255 I(4) 4 scalar MPI_INT Param 387 I(4) 4 scalar MPI_INTEGER Param 328 I(4) 4 scalar MPI_INTEGER1 Param 350 I(4) 4 scalar MPI_INTEGER16 Param 358 I(4) 4 scalar MPI_INTEGER2 Param 352 I(4) 4 scalar MPI_INTEGER4 Param 354 I(4) 4 scalar MPI_INTEGER8 Param 356 I(4) 4 scalar MPI_IN_PLACE Scalar 517 I(4) 4 scalar COM MPI_IO Param 261 I(4) 4 scalar MPI_KEYVAL_INVALID Param 294 I(4) 4 scalar MPI_LAND Param 215 I(4) 4 scalar MPI_LASTUSEDCODE Param 267 I(4) 4 scalar MPI_LB Param 346 I(4) 4 scalar MPI_LOCK_EXCLUSIVE Param 314 I(4) 4 scalar MPI_LOCK_SHARED Param 316 I(4) 4 scalar MPI_LOGICAL Param 322 I(4) 4 scalar MPI_LONG Param 391 I(4) 4 scalar MPI_LONG_DOUBLE Param 399 I(4) 4 scalar MPI_LONG_DOUBLE_INT Param 417 I(4) 4 scalar MPI_LONG_INT Param 411 I(4) 4 scalar MPI_LONG_LONG Param 405 I(4) 4 scalar MPI_LONG_LONG_INT Param 401 I(4) 4 scalar MPI_LOR Param 219 I(4) 4 scalar MPI_LXOR Param 223 I(4) 4 scalar MPI_MAX Param 207 I(4) 4 scalar MPI_MAXLOC Param 229 I(4) 4 scalar MPI_MAX_DATAREP_STRING Param 289 I(4) 4 scalar MPI_MAX_ERROR_STRING Param 277 I(4) 4 scalar MPI_MAX_INFO_KEY Param 283 I(4) 4 scalar MPI_MAX_INFO_VAL Param 285 I(4) 4 scalar MPI_MAX_OBJECT_NAME Param 281 I(4) 4 scalar MPI_MAX_PORT_NAME Param 279 I(4) 4 scalar MPI_MAX_PROCESSOR_NAME Param 287 I(4) 4 scalar MPI_MIN Param 209 I(4) 4 scalar MPI_MINLOC Param 227 I(4) 4 scalar MPI_MODE_APPEND Param 493 I(4) 4 scalar MPI_MODE_CREATE Param 489 I(4) 4 scalar MPI_MODE_DELETE_ON_CLOSE Param 485 I(4) 4 scalar MPI_MODE_EXCL Param 491 I(4) 4 scalar MPI_MODE_NOCHECK Param 461 I(4) 4 scalar MPI_MODE_NOPRECEDE Param 467 I(4) 4 scalar MPI_MODE_NOPUT Param 465 I(4) 4 scalar MPI_MODE_NOSTORE Param 463 I(4) 4 scalar MPI_MODE_NOSUCCEED Param 469 I(4) 4 scalar MPI_MODE_RDONLY Param 479 I(4) 4 scalar Page 27 Source Listing WMWAVE 2014-09-16 16:49 Symbol Table wmwavemd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References MPI_MODE_RDWR Param 481 I(4) 4 scalar MPI_MODE_SEQUENTIAL Param 495 I(4) 4 scalar MPI_MODE_UNIQUE_OPEN Param 487 I(4) 4 scalar MPI_MODE_WRONLY Param 483 I(4) 4 scalar MPI_NULL_COPY_FN Subr 518 scalar MPI_NULL_DELETE_FN Subr 518 scalar MPI_OFFSET_KIND Param 372 I(4) 4 scalar MPI_OP_NULL Param 247 I(4) 4 scalar MPI_ORDER_C Param 503 I(4) 4 scalar MPI_ORDER_FORTRAN Param 505 I(4) 4 scalar MPI_PACKED Param 348 I(4) 4 scalar MPI_PROC_NULL Param 298 I(4) 4 scalar MPI_PROD Param 213 I(4) 4 scalar MPI_REAL Param 324 I(4) 4 scalar MPI_REAL16 Param 364 I(4) 4 scalar MPI_REAL4 Param 360 I(4) 4 scalar MPI_REAL8 Param 362 I(4) 4 scalar MPI_REPLACE Param 231 I(4) 4 scalar MPI_REQUEST_NULL Param 251 I(4) 4 scalar MPI_ROOT Param 304 I(4) 4 scalar MPI_SEEK_CUR Param 499 I(4) 4 scalar MPI_SEEK_END Param 501 I(4) 4 scalar MPI_SEEK_SET Param 497 I(4) 4 scalar MPI_SHORT Param 383 I(4) 4 scalar MPI_SHORT_INT Param 413 I(4) 4 scalar MPI_SIGNED_CHAR Param 377 I(4) 4 scalar MPI_SIMILAR Param 203 I(4) 4 scalar MPI_SOURCE Param 76 I(4) 4 scalar MPI_STARTALL Subr 901 901 MPI_STATUSES_IGNORE Scalar 81 I(4) 4 2 5 COM MPI_STATUS_IGNORE Scalar 80 I(4) 4 1 5 COM MPI_STATUS_SIZE Param 78 I(4) 4 scalar 80,81,911 MPI_SUBVERSION Param 312 I(4) 4 scalar MPI_SUCCESS Param 85 I(4) 4 scalar MPI_SUM Param 211 I(4) 4 scalar MPI_TAG Param 76 I(4) 4 scalar MPI_TAG_UB Param 257 I(4) 4 scalar MPI_THREAD_FUNNELED Param 473 I(4) 4 scalar MPI_THREAD_MULTIPLE Param 477 I(4) 4 scalar MPI_THREAD_SERIALIZED Param 475 I(4) 4 scalar MPI_THREAD_SINGLE Param 471 I(4) 4 scalar MPI_TYPECLASS_COMPLEX Param 459 I(4) 4 scalar MPI_TYPECLASS_INTEGER Param 457 I(4) 4 scalar MPI_TYPECLASS_REAL Param 455 I(4) 4 scalar MPI_TYPE_DUP_FN Subr 525 scalar MPI_TYPE_NULL_COPY_FN Subr 526 scalar MPI_TYPE_NULL_DELETE_FN Subr 525 scalar MPI_UB Param 344 I(4) 4 scalar MPI_UNDEFINED Param 291 I(4) 4 scalar MPI_UNDEFINED_RANK Param 291 I(4) 4 scalar MPI_UNEQUAL Param 205 I(4) 4 scalar MPI_UNIVERSE_SIZE Param 265 I(4) 4 scalar MPI_UNSIGNED Param 389 I(4) 4 scalar MPI_UNSIGNED_CHAR Param 379 I(4) 4 scalar MPI_UNSIGNED_LONG Param 393 I(4) 4 scalar Page 28 Source Listing WMWAVE 2014-09-16 16:49 Symbol Table wmwavemd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References MPI_UNSIGNED_LONG_LONG Param 403 I(4) 4 scalar MPI_UNSIGNED_SHORT Param 385 I(4) 4 scalar MPI_VERSION Param 310 I(4) 4 scalar MPI_WAITALL Subr 912 912 MPI_WCHAR Param 381 I(4) 4 scalar MPI_WIN_BASE Param 271 I(4) 4 scalar MPI_WIN_DISP_UNIT Param 275 I(4) 4 scalar MPI_WIN_DUP_FN Subr 523 scalar MPI_WIN_NULL Param 241 I(4) 4 scalar MPI_WIN_NULL_COPY_FN Subr 524 scalar MPI_WIN_NULL_DELETE_FN Subr 523 scalar MPI_WIN_SIZE Param 273 I(4) 4 scalar MPI_WTICK Func 519 R(8) 8 scalar MPI_WTIME Func 519 R(8) 8 scalar MPI_WTIME_IS_GLOBAL Param 263 I(4) 4 scalar MTIME Local 236 CHAR 23 scalar 317,319,334,336 NAPPNT Local 205 I(4) 4 scalar PTR 205,904 NINT Func 489 scalar 489 NMPERR Local 209 I(4) 4 scalar 209,1083,1088,1094,1101 NMPLOG Local 209 I(4) 4 scalar 209 NMPROC Local 209 I(4) 4 scalar 209 NMPSCR Local 209 I(4) 4 scalar 209,300,315,330,359,361,391,1055,1 056 NMPSCS Local 232 I(4) 4 scalar 300,361,1055 NMPTST Local 209 I(4) 4 scalar 209 NMV Local 210 I(4) 4 scalar PTR 210 NOPTS Local 205 I(4) 4 scalar PTR 205,904 NOTYPE Local 191 I(4) 4 scalar 191,882,932 NRGRD Local 211 I(4) 4 scalar 211,225,250,277,278,279,291,316,33 3,413,520,533,554,986,1007,1057,10 59,1069 NRGRP Local 211 I(4) 4 scalar 211,264,277,344 NRQPO Local 206 I(4) 4 scalar PTR 206,901,902,910,911,913 NX Local 202 I(4) 4 scalar PTR 202,851,866 NY Local 202 I(4) 4 scalar PTR 202,852,867 PMPI_WTICK Func 520 R(8) 8 scalar PMPI_WTIME Func 520 R(8) 8 scalar PREGTB Local 242 L(4) 4 1 1 ALC 279,284,456,459,465 PREGTE Local 242 L(4) 4 1 1 ALC 279,286,708,711,717 PREGTH Local 242 L(4) 4 1 1 ALC 279,285,769,772,778 REAL Func 489 scalar 489 STATUS Local 233 I(4) 4 2 1 ALC 911,913,914 STIME Local 210 I(4) 4 1 2 210 STME21 Subr 195 195,317,334 TAUX Local 230 I(4) 4 1 2 446,449,494,515,539,540,546,552,55 6,575,587,588,600,601,611,619,685, 688,757,760 TDATA Local 212 I(4) 4 2 1 ALC 212,371,375,394,413,495,496,497 TEND Dummy 69 I(4) 4 2 0 ARG,IN 257,267,293,1009,1030,1089,1096 TICK21 Subr 195 195,493,938,998 TIME Local 203 I(4) 4 1 1 PTR 203,293,375,431,446,449,481,484,49 2,522,524,546,611,644,685,688,757, 760,814,820,928,936,979,989,1009,1 030 TMAX Local 212 I(4) 4 2 1 ALC 212,480,481,484,492,493,494,496,49 Page 29 Source Listing WMWAVE 2014-09-16 16:49 Symbol Table wmwavemd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 7,500,501,504,505,515,535,539,540, 583,587,588 TMSYNC Local 240 L(4) 4 1 1 ALC 277,282,357 TMV Local 210 I(4) 4 3 1 PTR 210 TOLAST Local 204 I(4) 4 2 1 PTR 204,305,939 TONEXT Local 204 I(4) 4 2 1 PTR 204,304,885,887,888,936,938,939,95 2,954,955,1000 TOUTP Local 212 I(4) 4 2 1 ALC 212,499,500,501,810,814,879,880,88 4,885,887,888,928,929,930,951,952, 954,955 TPRNT Local 230 I(4) 4 1 2 320,331,337,342 TSTAMP Local 237 L(4) 4 scalar 321,332,338,393 TSYNC Local 212 I(4) 4 2 1 ALC 212,256,257,266,270,271,316,317,32 0,331,333,334,337,342,429,431,524, 552,556,573,575,596,600,601,619,64 4,651,860,1015,1016,1041,1042,1057 ,1088,1095 UNIPTS Local 205 L(4) 4 scalar 205,302,503,818,897,977,1002 UPLAST Local 231 I(4) 4 1 2 305,999 UPNEXT Local 231 I(4) 4 1 2 304,308,309,504,505,820,979,989,99 4,998,999,1000,1003,1004 VA Local 203 R(4) 4 2 1 PTR 203,907 W3ADATMD Module 190 190 W3GDATMD Module 188 188,202 W3IDATMD Module 207 207 W3IOPE Subr 192 192,907 W3IOPOMD Module 192 192 W3ODATMD Module 191 191,204,206 W3SERVMD Module 194 194 W3SETA Subr 190 190,906 W3SETG Subr 188 188,488,844,905 W3SETO Subr 191 191,303,899,925,997 W3SETW Subr 189 189,292,374,430,445,448,452,479,52 1,545,610,643,684,687,691,756,759, 765,813,819,926,978,987,1008,1029 W3TIMEMD Module 195 195 W3WAVE Subr 193 193,651,860 W3WAVEMD Module 193 193 W3WDATMD Module 189 189,203 WMINIOMD Module 198 198 WMIOBF Subr 198 198,728,1072 WMIOBG Subr 198 198,458,464 WMIOBS Subr 198 198,729 WMIOEF Subr 199 199,657,1074 WMIOEG Subr 199 199,710,716 WMIOES Subr 199 199,658 WMIOHF Subr 199 199,789,1073 WMIOHG Subr 198 198,771,777 WMIOHS Subr 198 198,790 WMIOPO Subr 200 200,994 WMIOPOMD Module 200 200 WMMDATMD Module 196 196,208,215 WMSETM Subr 196 196,349,355,650,845,1070 WMUPDT Subr 197 197,394 WMUPDTMD Module 197 197 Page 30 Source Listing WMWAVE 2014-09-16 16:49 Symbol Table wmwavemd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References WMWAVE Subr 69 WTIME Local 235 CHAR 8 scalar 318,319,335,336 WWTIME Subr 194 194,318,335 Page 31 Source Listing WMWAVE 2014-09-16 16:49 wmwavemd.f90 1675 !/ ------------------------------------------------------------------- / 1676 SUBROUTINE WMPRNT ( MDSO, NRGRD, TSYNC, GRSTAT ) 1677 !/ 1678 !/ +-----------------------------------+ 1679 !/ | WAVEWATCH III NOAA/NCEP | 1680 !/ | H. L. Tolman | 1681 !/ | FORTRAN 90 | 1682 !/ | Last update : 22-Feb-2005 | 1683 !/ +-----------------------------------+ 1684 !/ 1685 !/ 22-Feb-2005 : Origination. ( version 3.07 ) 1686 !/ 1687 ! 1. Purpose : 1688 ! 1689 ! Print out action table in the log file log.ww3m 1690 ! 1691 ! 2. Method : 1692 ! 1693 ! 3. Parameters : 1694 ! 1695 ! Parameter list 1696 ! ---------------------------------------------------------------- 1697 ! NRGRD Int. I Number of grids. 1698 ! TSYN I.A. I Synchronization time. 1699 ! GRSTAT I.A. I Status array per grid. 1700 ! ---------------------------------------------------------------- 1701 ! 1702 ! 4. Subroutines used : 1703 ! 1704 ! Name Type Module Description 1705 ! ---------------------------------------------------------------- 1706 ! STRACE Subr. W3SERVMD Subroutine tracing. 1707 ! STME21 Subr. W3TIMEMD Print date and time readable. 1708 ! ---------------------------------------------------------------- 1709 ! 1710 ! 5. Called by : 1711 ! 1712 ! Name Type Module Description 1713 ! ---------------------------------------------------------------- 1714 ! WMWAVE Subr. WMWAVEMD Multi-grid wave model routine. 1715 ! ---------------------------------------------------------------- 1716 ! 1717 ! 6. Error messages : 1718 ! 1719 ! None. 1720 ! 1721 ! 7. Remarks : 1722 ! 1723 ! 8. Structure : 1724 ! 1725 ! See source code. 1726 ! 1727 ! 9. Switches : 1728 ! 1729 ! !/S Enable subroutine tracing. 1730 ! !/T Test output. 1731 ! Page 32 Source Listing WMPRNT 2014-09-16 16:49 wmwavemd.f90 1732 ! 10. Source code : 1733 ! 1734 !/ ------------------------------------------------------------------- / 1735 USE W3TIMEMD, ONLY: STME21 1736 !/ 1737 IMPLICIT NONE 1738 !/ 1739 !/ ------------------------------------------------------------------- / 1740 !/ Parameter list 1741 !/ 1742 INTEGER, INTENT(IN) :: MDSO, NRGRD, TSYNC(2), GRSTAT(NRGRD) 1743 !/ 1744 !/ ------------------------------------------------------------------- / 1745 !/ Local parameters 1746 !/ 1747 INTEGER, PARAMETER :: IW = 15 1748 INTEGER :: I, I0, IN 1749 INTEGER, SAVE :: IDLAST(2) 1750 LOGICAL, SAVE :: FIRST = .TRUE. 1751 CHARACTER(LEN=23) :: IDTIME 1752 CHARACTER(LEN=3) :: STR(IW), LNE(IW) 1753 !/ 1754 !/ ------------------------------------------------------------------- / 1755 !/ 1756 ! 1757 DO I=1, IW 1758 LNE(I) = '---' 1759 END DO 1760 ! 1761 IF ( FIRST ) THEN 1762 WRITE (MDSO,900) NRGRD, LNE, '-+' 1763 FIRST = .FALSE. 1764 IDLAST(1) = -1 1765 IDLAST(2) = 0 1766 ELSE 1767 BACKSPACE (MDSO) 1768 END IF 1769 ! 1770 CALL STME21 ( TSYNC, IDTIME ) 1771 ! 1772 DO I=1, MIN(IW,NRGRD) 1773 WRITE (STR(I),'(I3)') GRSTAT(I) 1774 END DO 1775 DO I=1+MIN(IW,NRGRD), IW 1776 STR(I) = ' ' 1777 END DO 1778 ! 1779 IF ( IDLAST(1).EQ.TSYNC(1) .AND. IDLAST(2).EQ.TSYNC(2) ) THEN 1780 ELSE IF ( IDLAST(1) .EQ. TSYNC(1) ) THEN 1781 WRITE (MDSO,902) IDTIME(12:19), STR, ' |' 1782 ELSE 1783 WRITE (MDSO,901) IDTIME(01:19), STR, ' |' 1784 END IF 1785 IDLAST = TSYNC 1786 ! 1787 IF ( NRGRD .GT. IW ) THEN 1788 I0 = 1 Page 33 Source Listing WMPRNT 2014-09-16 16:49 wmwavemd.f90 1789 IN = IW 1790 DO 1791 I0 = I0 + IW 1792 IN = IN + IW 1793 DO I=I0, MIN(IN,NRGRD) 1794 WRITE (STR(I-I0+1),'(I3)') GRSTAT(I) 1795 END DO 1796 DO I=1+MIN(IN,NRGRD), IN 1797 STR(I-I0+1) = ' ' 1798 END DO 1799 WRITE (MDSO,903) STR, ' |' 1800 IF ( IN .GE. NRGRD ) EXIT 1801 END DO 1802 END IF 1803 ! 1804 WRITE (MDSO,904) LNE, '-+' 1805 ! 1806 RETURN 1807 ! 1808 ! Formats 1809 ! 1810 900 FORMAT (1X,' Time (sync rank 1) | Status for',I3,' grids'/ & 1811 1X,'---------------------+',16A) 1812 901 FORMAT (2X,A19,' |',16A) 1813 902 FORMAT (2X,11X,A8,' |',16A) 1814 903 FORMAT (21X,' |',16A) 1815 904 FORMAT (1X,'---------------------+',16A) 1816 !/ 1817 !/ End of WMPRNT ----------------------------------------------------- / 1818 !/ 1819 END SUBROUTINE WMPRNT Page 34 Source Listing WMPRNT 2014-09-16 16:49 Entry Points wmwavemd.f90 ENTRY POINTS Name wmwavemd_mp_wmprnt_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 900 Label 1272 1224 901 Label 1274 1245 902 Label 1275 1243 903 Label 1276 1261 904 Label 1277 1266 FIRST Local 1212 L(4) 4 scalar 1212,1223,1225 GRSTAT Dummy 1138 I(4) 4 1 0 ARG,IN 1235,1256 I Local 1210 I(4) 4 scalar 1219,1220,1234,1235,1237,1238,1255 ,1256,1258,1259 I0 Local 1210 I(4) 4 scalar 1250,1253,1255,1256,1259 IDLAST Local 1211 I(4) 4 1 2 1226,1227,1241,1242,1247 IDTIME Local 1213 CHAR 23 scalar 1232,1243,1245 IN Local 1210 I(4) 4 scalar 1251,1254,1255,1258,1262 IW Param 1209 I(4) 4 scalar 1214,1219,1234,1237,1249,1251,1253 ,1254 LNE Local 1214 CHAR 3 1 15 1220,1224,1266 MDSO Dummy 1138 I(4) 4 scalar ARG,IN 1224,1229,1243,1245,1261,1266 MIN Func 1234 scalar 1234,1237,1255,1258 NRGRD Dummy 1138 I(4) 4 scalar ARG,IN 1204,1224,1234,1237,1249,1255,1258 ,1262 STME21 Subr 1197 1197,1232 STR Local 1214 CHAR 3 1 15 1235,1238,1243,1245,1256,1259,1261 TSYNC Dummy 1138 I(4) 4 1 2 ARG,IN 1232,1241,1242,1247 W3TIMEMD Module 1197 1197 WMPRNT Subr 1138 316,333,1057 Page 35 Source Listing WMPRNT 2014-09-16 16:49 wmwavemd.f90 1820 !/ ------------------------------------------------------------------- / 1821 SUBROUTINE WMBCST ( DATA, NR, IMOD, NMOD, ID ) 1822 !/ 1823 !/ +-----------------------------------+ 1824 !/ | WAVEWATCH III NOAA/NCEP | 1825 !/ | H. L. Tolman | 1826 !/ | FORTRAN 90 | 1827 !/ | Last update : 02-Feb-2007 ! 1828 !/ +-----------------------------------+ 1829 !/ 1830 !/ 02-Feb-2007 : Origination. ( version 3.10 ) 1831 !/ 1832 ! 1. Purpose : 1833 ! 1834 ! Non-blocking broadcast, initially for times only, but made for 1835 ! any integer array. Sending data from first process in the 1836 ! model cummunicator to all processes that are in the overall 1837 ! communicator but not in the model communicator. 1838 ! 1839 ! 2. Method : 1840 ! 1841 ! Standard send and recieves using defined communicator. Send 1842 ! form first processor in communicator. 1843 ! 1844 ! 3. Parameters : 1845 ! 1846 ! Parameter list 1847 ! ---------------------------------------------------------------- 1848 ! DATA I.A. I/O Data to be send/received. 1849 ! NR Int. I Size of array. 1850 ! IMOD Int. I Model number. 1851 ! NMOD Int. I Number of models. 1852 ! ID Int. I ID number, used with NMOD for ITAG. 1853 ! ---------------------------------------------------------------- 1854 ! 1855 ! 4. Subroutines used : 1856 ! 1857 ! Name Type Module Description 1858 ! ---------------------------------------------------------------- 1859 ! STRACE Sur. W3SERVMD Subroutine tracing. 1860 ! ---------------------------------------------------------------- 1861 ! 1862 ! 5. Called by : 1863 ! 1864 ! Name Type Module Description 1865 ! ---------------------------------------------------------------- 1866 ! WMWAVE Subr. WMWAVEMD Multi-grid wave model routine. 1867 ! ---------------------------------------------------------------- 1868 ! 1869 ! 6. Error messages : 1870 ! 1871 ! 7. Remarks : 1872 ! 1873 ! 8. Structure : 1874 ! 1875 ! 9. Switches : 1876 ! Page 36 Source Listing WMBCST 2014-09-16 16:49 wmwavemd.f90 1877 ! !/S Enable subroutine tracing. 1878 ! !/MPIT Enable test output 1879 ! 1880 ! 10. Source code : 1881 ! 1882 !/ ------------------------------------------------------------------- / 1883 ! 1884 USE WMMDATMD, ONLY: MDST, MTAGB, IMPROC, NMPROC, ALLPRC, & 1885 CROOT, MPI_COMM_MWAVE 1886 ! 1887 IMPLICIT NONE 1888 ! 1889 INCLUDE "mpif.h" 1890 !/ 1891 !/ ------------------------------------------------------------------- / 1892 !/ Parameter list 1893 !/ 2432 INTEGER, INTENT(IN) :: NR, IMOD, NMOD, ID 2433 INTEGER, INTENT(INOUT) :: DATA(NR) 2434 !/ 2435 !/ ------------------------------------------------------------------- / 2436 !/ Local parameters 2437 !/ 2438 INTEGER :: ITAG, IP, IERR_MPI, & 2439 STATUS(MPI_STATUS_SIZE) 2440 !/ 2441 ! 2442 ! -------------------------------------------------------------------- / 2443 ! 0. Initializations 2444 ! 2445 ITAG = MTAGB + IMOD + ID*NMOD 2446 ! 2447 !!/MPIT WRITE (MDST,9000) IMOD, NMOD, ID, ITAG-MTAGB 2448 !!/MPIT WRITE (MDST,9001) IMPROC, NMPROC 2449 !!/MPIT WRITE (MDST,9002) ALLPRC(:,IMOD) 2450 ! 2451 ! -------------------------------------------------------------------- / 2452 ! 1. Processor to send data from 2453 ! 2454 IF ( ALLPRC(IMPROC,IMOD) .EQ. 1 ) THEN 2455 DO IP=1, NMPROC 2456 IF ( ALLPRC(IP,IMOD) .EQ. 0 ) THEN 2457 !!/MPIT WRITE (MDST,9010) ALLPRC(IMPROC,IMOD), IP 2458 CALL MPI_SEND ( DATA, NR, MPI_INTEGER, IP-1, & 2459 ITAG, MPI_COMM_MWAVE, IERR_MPI ) 2460 END IF 2461 END DO 2462 ! 2463 ! -------------------------------------------------------------------- / 2464 ! 2. Processor to receive data at 2465 ! 2466 ELSE IF ( ALLPRC(IMPROC,IMOD) .EQ. 0 ) THEN 2467 !!/MPIT WRITE (MDST,9020) ALLPRC(IMPROC,IMOD), CROOT 2468 CALL MPI_RECV ( DATA, NR, MPI_INTEGER, CROOT-1, ITAG, & 2469 MPI_COMM_MWAVE, STATUS, IERR_MPI ) 2470 2471 ! Page 37 Source Listing WMBCST 2014-09-16 16:49 wmwavemd.f90 2472 ! -------------------------------------------------------------------- / 2473 ! 3. Processor with no action 2474 ! 2475 !!/MPIT ELSE 2476 !!/MPIT WRITE (MDST,9030) ALLPRC(IMPROC,IMOD) 2477 END IF 2478 ! 2479 RETURN 2480 ! 2481 ! Formats 2482 ! 2483 !/ 2484 !/ End of WMBCST ----------------------------------------------------- / 2485 !/ 2486 END SUBROUTINE WMBCST ENTRY POINTS Name wmwavemd_mp_wmbcst_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References ALLPRC Local 1346 I(4) 4 2 1 ALC 1346,1378,1380,1390 CROOT Local 1347 I(4) 4 scalar PTR 1347,1392 DATA Dummy 1283 I(4) 4 1 0 ARG,INOUT 1382,1392 ID Dummy 1283 I(4) 4 scalar ARG,IN 1369 IERR_MPI Local 1362 I(4) 4 scalar 1383,1393 IMOD Dummy 1283 I(4) 4 scalar ARG,IN 1369,1378,1380,1390 IMPROC Local 1346 I(4) 4 scalar 1346,1378,1390 IP Local 1362 I(4) 4 scalar 1379,1380,1382 ITAG Local 1362 I(4) 4 scalar 1369,1383,1392 MDST Local 1346 I(4) 4 scalar 1346 MPIPRIV1 Common 532 28 MPIPRIV2 Common 534 24 MPIPRIVC Common 537 2 MPI_2COMPLEX Param 332 I(4) 4 scalar MPI_2DOUBLE_COMPLEX Param 338 I(4) 4 scalar MPI_2DOUBLE_PRECISION Param 334 I(4) 4 scalar MPI_2INT Param 415 I(4) 4 scalar MPI_2INTEGER Param 330 I(4) 4 scalar MPI_2REAL Param 336 I(4) 4 scalar MPI_ADDRESS_KIND Param 372 I(4) 4 scalar MPI_ANY_SOURCE Param 300 I(4) 4 scalar MPI_ANY_TAG Param 302 I(4) 4 scalar MPI_APPNUM Param 269 I(4) 4 scalar MPI_ARGVS_NULL Scalar 83 CHAR 1 2 1 COM MPI_ARGV_NULL Scalar 84 CHAR 1 1 1 COM MPI_BAND Param 217 I(4) 4 scalar MPI_BOR Param 221 I(4) 4 scalar MPI_BOTTOM Scalar 517 I(4) 4 scalar COM MPI_BSEND_OVERHEAD Param 296 I(4) 4 scalar Page 38 Source Listing WMBCST 2014-09-16 16:49 Symbol Table wmwavemd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References MPI_BXOR Param 225 I(4) 4 scalar MPI_BYTE Param 342 I(4) 4 scalar MPI_CART Param 308 I(4) 4 scalar MPI_CHAR Param 375 I(4) 4 scalar MPI_CHARACTER Param 340 I(4) 4 scalar MPI_COMBINER_CONTIGUOUS Param 423 I(4) 4 scalar MPI_COMBINER_DARRAY Param 445 I(4) 4 scalar MPI_COMBINER_DUP Param 421 I(4) 4 scalar MPI_COMBINER_F90_COMPLEX Param 449 I(4) 4 scalar MPI_COMBINER_F90_INTEGER Param 451 I(4) 4 scalar MPI_COMBINER_F90_REAL Param 447 I(4) 4 scalar MPI_COMBINER_HINDEXED Param 435 I(4) 4 scalar MPI_COMBINER_HINDEXED_INTE GER Param 433 I(4) 4 scalar MPI_COMBINER_HVECTOR Param 429 I(4) 4 scalar MPI_COMBINER_HVECTOR_INTEG ER Param 427 I(4) 4 scalar MPI_COMBINER_INDEXED Param 431 I(4) 4 scalar MPI_COMBINER_INDEXED_BLOCK Param 437 I(4) 4 scalar MPI_COMBINER_NAMED Param 419 I(4) 4 scalar MPI_COMBINER_RESIZED Param 453 I(4) 4 scalar MPI_COMBINER_STRUCT Param 441 I(4) 4 scalar MPI_COMBINER_STRUCT_INTEGE R Param 439 I(4) 4 scalar MPI_COMBINER_SUBARRAY Param 443 I(4) 4 scalar MPI_COMBINER_VECTOR Param 425 I(4) 4 scalar MPI_COMM_DUP_FN Subr 521 scalar MPI_COMM_MWAVE Local 1347 I(4) 4 scalar 1347,1383,1393 MPI_COMM_NULL Param 239 I(4) 4 scalar MPI_COMM_NULL_COPY_FN Subr 522 scalar MPI_COMM_NULL_DELETE_FN Subr 521 scalar MPI_COMM_SELF Param 235 I(4) 4 scalar MPI_COMM_WORLD Param 233 I(4) 4 scalar MPI_COMPLEX Param 318 I(4) 4 scalar MPI_COMPLEX16 Param 368 I(4) 4 scalar MPI_COMPLEX32 Param 370 I(4) 4 scalar MPI_COMPLEX8 Param 366 I(4) 4 scalar MPI_CONGRUENT Param 201 I(4) 4 scalar MPI_CONVERSION_FN_NULL Subr 527 scalar MPI_DATATYPE_NULL Param 249 I(4) 4 scalar 359 MPI_DISPLACEMENT_CURRENT Param 515 I(8) 8 scalar MPI_DISTRIBUTE_BLOCK Param 507 I(4) 4 scalar MPI_DISTRIBUTE_CYCLIC Param 509 I(4) 4 scalar MPI_DISTRIBUTE_DFLT_DARG Param 513 I(4) 4 scalar MPI_DISTRIBUTE_NONE Param 511 I(4) 4 scalar MPI_DOUBLE Param 397 I(4) 4 scalar MPI_DOUBLE_COMPLEX Param 320 I(4) 4 scalar MPI_DOUBLE_INT Param 409 I(4) 4 scalar MPI_DOUBLE_PRECISION Param 326 I(4) 4 scalar MPI_DUP_FN Subr 518 scalar MPI_ERRCODES_IGNORE Scalar 82 I(4) 4 1 1 COM MPI_ERRHANDLER_NULL Param 253 I(4) 4 scalar MPI_ERROR Param 76 I(4) 4 scalar MPI_ERRORS_ARE_FATAL Param 195 I(4) 4 scalar MPI_ERRORS_RETURN Param 197 I(4) 4 scalar Page 39 Source Listing WMBCST 2014-09-16 16:49 Symbol Table wmwavemd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References MPI_ERR_ACCESS Param 189 I(4) 4 scalar MPI_ERR_AMODE Param 173 I(4) 4 scalar MPI_ERR_ARG Param 109 I(4) 4 scalar MPI_ERR_ASSERT Param 131 I(4) 4 scalar MPI_ERR_BAD_FILE Param 163 I(4) 4 scalar MPI_ERR_BASE Param 97 I(4) 4 scalar MPI_ERR_BUFFER Param 115 I(4) 4 scalar MPI_ERR_COMM Param 137 I(4) 4 scalar MPI_ERR_CONVERSION Param 193 I(4) 4 scalar MPI_ERR_COUNT Param 93 I(4) 4 scalar MPI_ERR_DIMS Param 179 I(4) 4 scalar MPI_ERR_DISP Param 125 I(4) 4 scalar MPI_ERR_DUP_DATAREP Param 117 I(4) 4 scalar MPI_ERR_FILE Param 91 I(4) 4 scalar MPI_ERR_FILE_EXISTS Param 133 I(4) 4 scalar MPI_ERR_FILE_IN_USE Param 165 I(4) 4 scalar MPI_ERR_GROUP Param 145 I(4) 4 scalar MPI_ERR_INFO Param 159 I(4) 4 scalar MPI_ERR_INFO_KEY Param 103 I(4) 4 scalar MPI_ERR_INFO_NOKEY Param 129 I(4) 4 scalar MPI_ERR_INFO_VALUE Param 153 I(4) 4 scalar MPI_ERR_INTERN Param 185 I(4) 4 scalar MPI_ERR_IN_STATUS Param 101 I(4) 4 scalar MPI_ERR_IO Param 187 I(4) 4 scalar MPI_ERR_KEYVAL Param 139 I(4) 4 scalar MPI_ERR_LASTCODE Param 121 I(4) 4 scalar MPI_ERR_LOCKTYPE Param 105 I(4) 4 scalar MPI_ERR_NAME Param 141 I(4) 4 scalar MPI_ERR_NOT_SAME Param 155 I(4) 4 scalar MPI_ERR_NO_MEM Param 161 I(4) 4 scalar MPI_ERR_NO_SPACE Param 191 I(4) 4 scalar MPI_ERR_NO_SUCH_FILE Param 181 I(4) 4 scalar MPI_ERR_OP Param 107 I(4) 4 scalar MPI_ERR_OTHER Param 87 I(4) 4 scalar MPI_ERR_PENDING Param 135 I(4) 4 scalar MPI_ERR_PORT Param 127 I(4) 4 scalar MPI_ERR_QUOTA Param 171 I(4) 4 scalar MPI_ERR_RANK Param 177 I(4) 4 scalar MPI_ERR_READ_ONLY Param 111 I(4) 4 scalar MPI_ERR_REQUEST Param 143 I(4) 4 scalar MPI_ERR_RMA_CONFLICT Param 99 I(4) 4 scalar MPI_ERR_RMA_SYNC Param 157 I(4) 4 scalar MPI_ERR_ROOT Param 175 I(4) 4 scalar MPI_ERR_SERVICE Param 183 I(4) 4 scalar MPI_ERR_SIZE Param 113 I(4) 4 scalar MPI_ERR_SPAWN Param 95 I(4) 4 scalar MPI_ERR_TAG Param 151 I(4) 4 scalar MPI_ERR_TOPOLOGY Param 147 I(4) 4 scalar MPI_ERR_TRUNCATE Param 123 I(4) 4 scalar MPI_ERR_TYPE Param 149 I(4) 4 scalar MPI_ERR_UNKNOWN Param 167 I(4) 4 scalar MPI_ERR_UNSUPPORTED_DATARE P Param 119 I(4) 4 scalar MPI_ERR_UNSUPPORTED_OPERAT ION Param 169 I(4) 4 scalar Page 40 Source Listing WMBCST 2014-09-16 16:49 Symbol Table wmwavemd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References MPI_ERR_WIN Param 89 I(4) 4 scalar MPI_FILE_NULL Param 243 I(4) 4 scalar MPI_FLOAT Param 395 I(4) 4 scalar MPI_FLOAT_INT Param 407 I(4) 4 scalar MPI_GRAPH Param 306 I(4) 4 scalar MPI_GROUP_EMPTY Param 237 I(4) 4 scalar MPI_GROUP_NULL Param 245 I(4) 4 scalar MPI_HOST Param 259 I(4) 4 scalar MPI_IDENT Param 199 I(4) 4 scalar MPI_INFO_NULL Param 255 I(4) 4 scalar MPI_INT Param 387 I(4) 4 scalar MPI_INTEGER Param 328 I(4) 4 scalar 1382,1392 MPI_INTEGER1 Param 350 I(4) 4 scalar MPI_INTEGER16 Param 358 I(4) 4 scalar MPI_INTEGER2 Param 352 I(4) 4 scalar MPI_INTEGER4 Param 354 I(4) 4 scalar MPI_INTEGER8 Param 356 I(4) 4 scalar MPI_IN_PLACE Scalar 517 I(4) 4 scalar COM MPI_IO Param 261 I(4) 4 scalar MPI_KEYVAL_INVALID Param 294 I(4) 4 scalar MPI_LAND Param 215 I(4) 4 scalar MPI_LASTUSEDCODE Param 267 I(4) 4 scalar MPI_LB Param 346 I(4) 4 scalar MPI_LOCK_EXCLUSIVE Param 314 I(4) 4 scalar MPI_LOCK_SHARED Param 316 I(4) 4 scalar MPI_LOGICAL Param 322 I(4) 4 scalar MPI_LONG Param 391 I(4) 4 scalar MPI_LONG_DOUBLE Param 399 I(4) 4 scalar MPI_LONG_DOUBLE_INT Param 417 I(4) 4 scalar MPI_LONG_INT Param 411 I(4) 4 scalar MPI_LONG_LONG Param 405 I(4) 4 scalar MPI_LONG_LONG_INT Param 401 I(4) 4 scalar MPI_LOR Param 219 I(4) 4 scalar MPI_LXOR Param 223 I(4) 4 scalar MPI_MAX Param 207 I(4) 4 scalar MPI_MAXLOC Param 229 I(4) 4 scalar MPI_MAX_DATAREP_STRING Param 289 I(4) 4 scalar MPI_MAX_ERROR_STRING Param 277 I(4) 4 scalar MPI_MAX_INFO_KEY Param 283 I(4) 4 scalar MPI_MAX_INFO_VAL Param 285 I(4) 4 scalar MPI_MAX_OBJECT_NAME Param 281 I(4) 4 scalar MPI_MAX_PORT_NAME Param 279 I(4) 4 scalar MPI_MAX_PROCESSOR_NAME Param 287 I(4) 4 scalar MPI_MIN Param 209 I(4) 4 scalar MPI_MINLOC Param 227 I(4) 4 scalar MPI_MODE_APPEND Param 493 I(4) 4 scalar MPI_MODE_CREATE Param 489 I(4) 4 scalar MPI_MODE_DELETE_ON_CLOSE Param 485 I(4) 4 scalar MPI_MODE_EXCL Param 491 I(4) 4 scalar MPI_MODE_NOCHECK Param 461 I(4) 4 scalar MPI_MODE_NOPRECEDE Param 467 I(4) 4 scalar MPI_MODE_NOPUT Param 465 I(4) 4 scalar MPI_MODE_NOSTORE Param 463 I(4) 4 scalar MPI_MODE_NOSUCCEED Param 469 I(4) 4 scalar MPI_MODE_RDONLY Param 479 I(4) 4 scalar Page 41 Source Listing WMBCST 2014-09-16 16:49 Symbol Table wmwavemd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References MPI_MODE_RDWR Param 481 I(4) 4 scalar MPI_MODE_SEQUENTIAL Param 495 I(4) 4 scalar MPI_MODE_UNIQUE_OPEN Param 487 I(4) 4 scalar MPI_MODE_WRONLY Param 483 I(4) 4 scalar MPI_NULL_COPY_FN Subr 518 scalar MPI_NULL_DELETE_FN Subr 518 scalar MPI_OFFSET_KIND Param 372 I(4) 4 scalar MPI_OP_NULL Param 247 I(4) 4 scalar MPI_ORDER_C Param 503 I(4) 4 scalar MPI_ORDER_FORTRAN Param 505 I(4) 4 scalar MPI_PACKED Param 348 I(4) 4 scalar MPI_PROC_NULL Param 298 I(4) 4 scalar MPI_PROD Param 213 I(4) 4 scalar MPI_REAL Param 324 I(4) 4 scalar MPI_REAL16 Param 364 I(4) 4 scalar MPI_REAL4 Param 360 I(4) 4 scalar MPI_REAL8 Param 362 I(4) 4 scalar MPI_RECV Subr 1392 1392 MPI_REPLACE Param 231 I(4) 4 scalar MPI_REQUEST_NULL Param 251 I(4) 4 scalar MPI_ROOT Param 304 I(4) 4 scalar MPI_SEEK_CUR Param 499 I(4) 4 scalar MPI_SEEK_END Param 501 I(4) 4 scalar MPI_SEEK_SET Param 497 I(4) 4 scalar MPI_SEND Subr 1382 1382 MPI_SHORT Param 383 I(4) 4 scalar MPI_SHORT_INT Param 413 I(4) 4 scalar MPI_SIGNED_CHAR Param 377 I(4) 4 scalar MPI_SIMILAR Param 203 I(4) 4 scalar MPI_SOURCE Param 76 I(4) 4 scalar MPI_STATUSES_IGNORE Scalar 81 I(4) 4 2 5 COM MPI_STATUS_IGNORE Scalar 80 I(4) 4 1 5 COM MPI_STATUS_SIZE Param 78 I(4) 4 scalar 80,81,1363 MPI_SUBVERSION Param 312 I(4) 4 scalar MPI_SUCCESS Param 85 I(4) 4 scalar MPI_SUM Param 211 I(4) 4 scalar MPI_TAG Param 76 I(4) 4 scalar MPI_TAG_UB Param 257 I(4) 4 scalar MPI_THREAD_FUNNELED Param 473 I(4) 4 scalar MPI_THREAD_MULTIPLE Param 477 I(4) 4 scalar MPI_THREAD_SERIALIZED Param 475 I(4) 4 scalar MPI_THREAD_SINGLE Param 471 I(4) 4 scalar MPI_TYPECLASS_COMPLEX Param 459 I(4) 4 scalar MPI_TYPECLASS_INTEGER Param 457 I(4) 4 scalar MPI_TYPECLASS_REAL Param 455 I(4) 4 scalar MPI_TYPE_DUP_FN Subr 525 scalar MPI_TYPE_NULL_COPY_FN Subr 526 scalar MPI_TYPE_NULL_DELETE_FN Subr 525 scalar MPI_UB Param 344 I(4) 4 scalar MPI_UNDEFINED Param 291 I(4) 4 scalar MPI_UNDEFINED_RANK Param 291 I(4) 4 scalar MPI_UNEQUAL Param 205 I(4) 4 scalar MPI_UNIVERSE_SIZE Param 265 I(4) 4 scalar MPI_UNSIGNED Param 389 I(4) 4 scalar MPI_UNSIGNED_CHAR Param 379 I(4) 4 scalar Page 42 Source Listing WMBCST 2014-09-16 16:49 Symbol Table wmwavemd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References MPI_UNSIGNED_LONG Param 393 I(4) 4 scalar MPI_UNSIGNED_LONG_LONG Param 403 I(4) 4 scalar MPI_UNSIGNED_SHORT Param 385 I(4) 4 scalar MPI_VERSION Param 310 I(4) 4 scalar MPI_WCHAR Param 381 I(4) 4 scalar MPI_WIN_BASE Param 271 I(4) 4 scalar MPI_WIN_DISP_UNIT Param 275 I(4) 4 scalar MPI_WIN_DUP_FN Subr 523 scalar MPI_WIN_NULL Param 241 I(4) 4 scalar MPI_WIN_NULL_COPY_FN Subr 524 scalar MPI_WIN_NULL_DELETE_FN Subr 523 scalar MPI_WIN_SIZE Param 273 I(4) 4 scalar MPI_WTICK Func 519 R(8) 8 scalar MPI_WTIME Func 519 R(8) 8 scalar MPI_WTIME_IS_GLOBAL Param 263 I(4) 4 scalar MTAGB Param 1346 I(4) 4 scalar 1346,1369 NMOD Dummy 1283 I(4) 4 scalar ARG,IN 1369 NMPROC Local 1346 I(4) 4 scalar 1346,1379 NR Dummy 1283 I(4) 4 scalar ARG,IN 1357,1382,1392 PMPI_WTICK Func 520 R(8) 8 scalar PMPI_WTIME Func 520 R(8) 8 scalar STATUS Local 1363 I(4) 4 1 5 1393 WMBCST Subr 1283 412 WMMDATMD Module 1346 1346 Page 43 Source Listing WMBCST 2014-09-16 16:49 wmwavemd.f90 2487 !/ ------------------------------------------------------------------- / 2488 SUBROUTINE WMWOUT ( IMOD, NMOD, ID ) 2489 !/ 2490 !/ +-----------------------------------+ 2491 !/ | WAVEWATCH III NOAA/NCEP | 2492 !/ | H. L. Tolman | 2493 !/ | FORTRAN 90 | 2494 !/ | Last update : 21-Jun-2007 ! 2495 !/ +-----------------------------------+ 2496 !/ 2497 !/ 21-Jun-2007 : Origination. ( version 3.11 ) 2498 !/ 2499 ! 1. Purpose : 2500 ! 2501 ! Non-blocking broadcast using dummy parameter to have output! 2502 ! processes wait for computations on first node to be finished. 2503 ! Neede for profiling purposes only. 2504 ! 2505 ! 2. Method : 2506 ! 2507 ! Standard send and recieves using defined communicator. Send 2508 ! form first processor in communicator. 2509 ! 2510 ! 3. Parameters : 2511 ! 2512 ! Parameter list 2513 ! ---------------------------------------------------------------- 2514 ! IMOD Int. I Model number. 2515 ! NMOD Int. I Number of models. 2516 ! ID Int. I ID number, used with NMOD for ITAG. 2517 ! ---------------------------------------------------------------- 2518 ! 2519 ! 4. Subroutines used : 2520 ! 2521 ! Name Type Module Description 2522 ! ---------------------------------------------------------------- 2523 ! STRACE Sur. W3SERVMD Subroutine tracing. 2524 ! W3SETO Subr. W3ODATMD Point to data structure 2525 ! W3SETA Subr. W3ADATMD Point to data structure 2526 ! ---------------------------------------------------------------- 2527 ! 2528 ! 5. Called by : 2529 ! 2530 ! Name Type Module Description 2531 ! ---------------------------------------------------------------- 2532 ! WMWAVE Subr. WMWAVEMD Multi-grid wave model routine. 2533 ! ---------------------------------------------------------------- 2534 ! 2535 ! 6. Error messages : 2536 ! 2537 ! 7. Remarks : 2538 ! 2539 ! 8. Structure : 2540 ! 2541 ! 9. Switches : 2542 ! 2543 ! !/S Enable subroutine tracing. Page 44 Source Listing WMWOUT 2014-09-16 16:49 wmwavemd.f90 2544 ! !/MPIT Enable test output 2545 ! 2546 ! 10. Source code : 2547 ! 2548 !/ ------------------------------------------------------------------- / 2549 ! 2550 USE W3ODATMD, ONLY: W3SETO 2551 USE W3ADATMD, ONLY: W3SETA 2552 ! 2553 USE W3ODATMD, ONLY: IAPROC, NAPROC, NTPROC 2554 USE W3ADATMD, ONLY: MPI_COMM_WAVE 2555 USE WMMDATMD, ONLY: MDST, MDSE, MTAGB 2556 ! 2557 IMPLICIT NONE 2558 ! 2559 INCLUDE "mpif.h" 2560 !/ 2561 !/ ------------------------------------------------------------------- / 2562 !/ Parameter list 2563 !/ 3102 INTEGER, INTENT(IN) :: IMOD, NMOD, ID 3103 !/ 3104 !/ ------------------------------------------------------------------- / 3105 !/ Local parameters 3106 !/ 3107 INTEGER :: ITAG, IP, IERR_MPI, & 3108 STATUS(MPI_STATUS_SIZE) 3109 REAL, SAVE :: DUMMY = 999. 3110 !/ 3111 ! 3112 ! -------------------------------------------------------------------- / 3113 ! 0. Initializations 3114 ! 3115 CALL W3SETO ( IMOD, MDSE, MDST ) 3116 CALL W3SETA ( IMOD, MDSE, MDST ) 3117 ITAG = MTAGB + IMOD + ID*NMOD 3118 ! 3119 !!/MPIT WRITE (MDST,9000) IMOD, NMOD, ID, ITAG-MTAGB 3120 !!/MPIT WRITE (MDST,9001) IAPROC, NAPROC, NTPROC 3121 IF ( IAPROC .LT. 1 ) THEN 3122 !!/MPIT WRITE (MDST,9002) 3123 RETURN 3124 END IF 3125 ! 3126 ! -------------------------------------------------------------------- / 3127 ! 1. Processor to send data from 3128 ! 3129 IF ( IAPROC .EQ. 1 ) THEN 3130 DO IP=NAPROC+1, NTPROC 3131 !!/MPIT WRITE (MDST,9010) IAPROC, IP 3132 CALL MPI_SEND ( DUMMY, 1, MPI_INTEGER, IP-1, & 3133 ITAG, MPI_COMM_WAVE, IERR_MPI ) 3134 END DO 3135 ! 3136 ! -------------------------------------------------------------------- / 3137 ! 2. Processor to receive data at 3138 ! Page 45 Source Listing WMWOUT 2014-09-16 16:49 wmwavemd.f90 3139 ELSE IF ( IAPROC .GT. NAPROC ) THEN 3140 !!/MPIT WRITE (MDST,9020) IAPROC, 1 3141 CALL MPI_RECV ( DUMMY, 1, MPI_INTEGER, 0, ITAG, & 3142 MPI_COMM_WAVE, STATUS, IERR_MPI ) 3143 ! 3144 ! -------------------------------------------------------------------- / 3145 ! 3. Processor with no action 3146 ! 3147 !!/MPIT ELSE 3148 !!/MPIT WRITE (MDST,9030) IAPROC 3149 END IF 3150 ! 3151 RETURN 3152 ! 3153 ! Formats 3154 ! 3155 !/ 3156 !/ End of WMWOUT ----------------------------------------------------- / 3157 !/ 3158 END SUBROUTINE WMWOUT ENTRY POINTS Name wmwavemd_mp_wmwout_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References DUMMY Local 1495 R(4) 4 scalar 1495,1518,1527 IAPROC Local 1477 I(4) 4 scalar PTR 1477,1507,1515,1525 ID Dummy 1412 I(4) 4 scalar ARG,IN 1503 IERR_MPI Local 1493 I(4) 4 scalar 1519,1528 IMOD Dummy 1412 I(4) 4 scalar ARG,IN 1501,1502,1503 IP Local 1493 I(4) 4 scalar 1516,1518 ITAG Local 1493 I(4) 4 scalar 1503,1519,1527 MDSE Local 1479 I(4) 4 scalar 1479,1501,1502 MDST Local 1479 I(4) 4 scalar 1479,1501,1502 MPIPRIV1 Common 532 28 MPIPRIV2 Common 534 24 MPIPRIVC Common 537 2 MPI_2COMPLEX Param 332 I(4) 4 scalar MPI_2DOUBLE_COMPLEX Param 338 I(4) 4 scalar MPI_2DOUBLE_PRECISION Param 334 I(4) 4 scalar MPI_2INT Param 415 I(4) 4 scalar MPI_2INTEGER Param 330 I(4) 4 scalar MPI_2REAL Param 336 I(4) 4 scalar MPI_ADDRESS_KIND Param 372 I(4) 4 scalar MPI_ANY_SOURCE Param 300 I(4) 4 scalar MPI_ANY_TAG Param 302 I(4) 4 scalar MPI_APPNUM Param 269 I(4) 4 scalar MPI_ARGVS_NULL Scalar 83 CHAR 1 2 1 COM MPI_ARGV_NULL Scalar 84 CHAR 1 1 1 COM Page 46 Source Listing WMWOUT 2014-09-16 16:49 Symbol Table wmwavemd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References MPI_BAND Param 217 I(4) 4 scalar MPI_BOR Param 221 I(4) 4 scalar MPI_BOTTOM Scalar 517 I(4) 4 scalar COM MPI_BSEND_OVERHEAD Param 296 I(4) 4 scalar MPI_BXOR Param 225 I(4) 4 scalar MPI_BYTE Param 342 I(4) 4 scalar MPI_CART Param 308 I(4) 4 scalar MPI_CHAR Param 375 I(4) 4 scalar MPI_CHARACTER Param 340 I(4) 4 scalar MPI_COMBINER_CONTIGUOUS Param 423 I(4) 4 scalar MPI_COMBINER_DARRAY Param 445 I(4) 4 scalar MPI_COMBINER_DUP Param 421 I(4) 4 scalar MPI_COMBINER_F90_COMPLEX Param 449 I(4) 4 scalar MPI_COMBINER_F90_INTEGER Param 451 I(4) 4 scalar MPI_COMBINER_F90_REAL Param 447 I(4) 4 scalar MPI_COMBINER_HINDEXED Param 435 I(4) 4 scalar MPI_COMBINER_HINDEXED_INTE GER Param 433 I(4) 4 scalar MPI_COMBINER_HVECTOR Param 429 I(4) 4 scalar MPI_COMBINER_HVECTOR_INTEG ER Param 427 I(4) 4 scalar MPI_COMBINER_INDEXED Param 431 I(4) 4 scalar MPI_COMBINER_INDEXED_BLOCK Param 437 I(4) 4 scalar MPI_COMBINER_NAMED Param 419 I(4) 4 scalar MPI_COMBINER_RESIZED Param 453 I(4) 4 scalar MPI_COMBINER_STRUCT Param 441 I(4) 4 scalar MPI_COMBINER_STRUCT_INTEGE R Param 439 I(4) 4 scalar MPI_COMBINER_SUBARRAY Param 443 I(4) 4 scalar MPI_COMBINER_VECTOR Param 425 I(4) 4 scalar MPI_COMM_DUP_FN Subr 521 scalar MPI_COMM_NULL Param 239 I(4) 4 scalar MPI_COMM_NULL_COPY_FN Subr 522 scalar MPI_COMM_NULL_DELETE_FN Subr 521 scalar MPI_COMM_SELF Param 235 I(4) 4 scalar MPI_COMM_WAVE Local 1478 I(4) 4 scalar PTR 1478,1519,1528 MPI_COMM_WORLD Param 233 I(4) 4 scalar MPI_COMPLEX Param 318 I(4) 4 scalar MPI_COMPLEX16 Param 368 I(4) 4 scalar MPI_COMPLEX32 Param 370 I(4) 4 scalar MPI_COMPLEX8 Param 366 I(4) 4 scalar MPI_CONGRUENT Param 201 I(4) 4 scalar MPI_CONVERSION_FN_NULL Subr 527 scalar MPI_DATATYPE_NULL Param 249 I(4) 4 scalar 359 MPI_DISPLACEMENT_CURRENT Param 515 I(8) 8 scalar MPI_DISTRIBUTE_BLOCK Param 507 I(4) 4 scalar MPI_DISTRIBUTE_CYCLIC Param 509 I(4) 4 scalar MPI_DISTRIBUTE_DFLT_DARG Param 513 I(4) 4 scalar MPI_DISTRIBUTE_NONE Param 511 I(4) 4 scalar MPI_DOUBLE Param 397 I(4) 4 scalar MPI_DOUBLE_COMPLEX Param 320 I(4) 4 scalar MPI_DOUBLE_INT Param 409 I(4) 4 scalar MPI_DOUBLE_PRECISION Param 326 I(4) 4 scalar MPI_DUP_FN Subr 518 scalar MPI_ERRCODES_IGNORE Scalar 82 I(4) 4 1 1 COM Page 47 Source Listing WMWOUT 2014-09-16 16:49 Symbol Table wmwavemd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References MPI_ERRHANDLER_NULL Param 253 I(4) 4 scalar MPI_ERROR Param 76 I(4) 4 scalar MPI_ERRORS_ARE_FATAL Param 195 I(4) 4 scalar MPI_ERRORS_RETURN Param 197 I(4) 4 scalar MPI_ERR_ACCESS Param 189 I(4) 4 scalar MPI_ERR_AMODE Param 173 I(4) 4 scalar MPI_ERR_ARG Param 109 I(4) 4 scalar MPI_ERR_ASSERT Param 131 I(4) 4 scalar MPI_ERR_BAD_FILE Param 163 I(4) 4 scalar MPI_ERR_BASE Param 97 I(4) 4 scalar MPI_ERR_BUFFER Param 115 I(4) 4 scalar MPI_ERR_COMM Param 137 I(4) 4 scalar MPI_ERR_CONVERSION Param 193 I(4) 4 scalar MPI_ERR_COUNT Param 93 I(4) 4 scalar MPI_ERR_DIMS Param 179 I(4) 4 scalar MPI_ERR_DISP Param 125 I(4) 4 scalar MPI_ERR_DUP_DATAREP Param 117 I(4) 4 scalar MPI_ERR_FILE Param 91 I(4) 4 scalar MPI_ERR_FILE_EXISTS Param 133 I(4) 4 scalar MPI_ERR_FILE_IN_USE Param 165 I(4) 4 scalar MPI_ERR_GROUP Param 145 I(4) 4 scalar MPI_ERR_INFO Param 159 I(4) 4 scalar MPI_ERR_INFO_KEY Param 103 I(4) 4 scalar MPI_ERR_INFO_NOKEY Param 129 I(4) 4 scalar MPI_ERR_INFO_VALUE Param 153 I(4) 4 scalar MPI_ERR_INTERN Param 185 I(4) 4 scalar MPI_ERR_IN_STATUS Param 101 I(4) 4 scalar MPI_ERR_IO Param 187 I(4) 4 scalar MPI_ERR_KEYVAL Param 139 I(4) 4 scalar MPI_ERR_LASTCODE Param 121 I(4) 4 scalar MPI_ERR_LOCKTYPE Param 105 I(4) 4 scalar MPI_ERR_NAME Param 141 I(4) 4 scalar MPI_ERR_NOT_SAME Param 155 I(4) 4 scalar MPI_ERR_NO_MEM Param 161 I(4) 4 scalar MPI_ERR_NO_SPACE Param 191 I(4) 4 scalar MPI_ERR_NO_SUCH_FILE Param 181 I(4) 4 scalar MPI_ERR_OP Param 107 I(4) 4 scalar MPI_ERR_OTHER Param 87 I(4) 4 scalar MPI_ERR_PENDING Param 135 I(4) 4 scalar MPI_ERR_PORT Param 127 I(4) 4 scalar MPI_ERR_QUOTA Param 171 I(4) 4 scalar MPI_ERR_RANK Param 177 I(4) 4 scalar MPI_ERR_READ_ONLY Param 111 I(4) 4 scalar MPI_ERR_REQUEST Param 143 I(4) 4 scalar MPI_ERR_RMA_CONFLICT Param 99 I(4) 4 scalar MPI_ERR_RMA_SYNC Param 157 I(4) 4 scalar MPI_ERR_ROOT Param 175 I(4) 4 scalar MPI_ERR_SERVICE Param 183 I(4) 4 scalar MPI_ERR_SIZE Param 113 I(4) 4 scalar MPI_ERR_SPAWN Param 95 I(4) 4 scalar MPI_ERR_TAG Param 151 I(4) 4 scalar MPI_ERR_TOPOLOGY Param 147 I(4) 4 scalar MPI_ERR_TRUNCATE Param 123 I(4) 4 scalar MPI_ERR_TYPE Param 149 I(4) 4 scalar MPI_ERR_UNKNOWN Param 167 I(4) 4 scalar Page 48 Source Listing WMWOUT 2014-09-16 16:49 Symbol Table wmwavemd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References MPI_ERR_UNSUPPORTED_DATARE P Param 119 I(4) 4 scalar MPI_ERR_UNSUPPORTED_OPERAT ION Param 169 I(4) 4 scalar MPI_ERR_WIN Param 89 I(4) 4 scalar MPI_FILE_NULL Param 243 I(4) 4 scalar MPI_FLOAT Param 395 I(4) 4 scalar MPI_FLOAT_INT Param 407 I(4) 4 scalar MPI_GRAPH Param 306 I(4) 4 scalar MPI_GROUP_EMPTY Param 237 I(4) 4 scalar MPI_GROUP_NULL Param 245 I(4) 4 scalar MPI_HOST Param 259 I(4) 4 scalar MPI_IDENT Param 199 I(4) 4 scalar MPI_INFO_NULL Param 255 I(4) 4 scalar MPI_INT Param 387 I(4) 4 scalar MPI_INTEGER Param 328 I(4) 4 scalar 1518,1527 MPI_INTEGER1 Param 350 I(4) 4 scalar MPI_INTEGER16 Param 358 I(4) 4 scalar MPI_INTEGER2 Param 352 I(4) 4 scalar MPI_INTEGER4 Param 354 I(4) 4 scalar MPI_INTEGER8 Param 356 I(4) 4 scalar MPI_IN_PLACE Scalar 517 I(4) 4 scalar COM MPI_IO Param 261 I(4) 4 scalar MPI_KEYVAL_INVALID Param 294 I(4) 4 scalar MPI_LAND Param 215 I(4) 4 scalar MPI_LASTUSEDCODE Param 267 I(4) 4 scalar MPI_LB Param 346 I(4) 4 scalar MPI_LOCK_EXCLUSIVE Param 314 I(4) 4 scalar MPI_LOCK_SHARED Param 316 I(4) 4 scalar MPI_LOGICAL Param 322 I(4) 4 scalar MPI_LONG Param 391 I(4) 4 scalar MPI_LONG_DOUBLE Param 399 I(4) 4 scalar MPI_LONG_DOUBLE_INT Param 417 I(4) 4 scalar MPI_LONG_INT Param 411 I(4) 4 scalar MPI_LONG_LONG Param 405 I(4) 4 scalar MPI_LONG_LONG_INT Param 401 I(4) 4 scalar MPI_LOR Param 219 I(4) 4 scalar MPI_LXOR Param 223 I(4) 4 scalar MPI_MAX Param 207 I(4) 4 scalar MPI_MAXLOC Param 229 I(4) 4 scalar MPI_MAX_DATAREP_STRING Param 289 I(4) 4 scalar MPI_MAX_ERROR_STRING Param 277 I(4) 4 scalar MPI_MAX_INFO_KEY Param 283 I(4) 4 scalar MPI_MAX_INFO_VAL Param 285 I(4) 4 scalar MPI_MAX_OBJECT_NAME Param 281 I(4) 4 scalar MPI_MAX_PORT_NAME Param 279 I(4) 4 scalar MPI_MAX_PROCESSOR_NAME Param 287 I(4) 4 scalar MPI_MIN Param 209 I(4) 4 scalar MPI_MINLOC Param 227 I(4) 4 scalar MPI_MODE_APPEND Param 493 I(4) 4 scalar MPI_MODE_CREATE Param 489 I(4) 4 scalar MPI_MODE_DELETE_ON_CLOSE Param 485 I(4) 4 scalar MPI_MODE_EXCL Param 491 I(4) 4 scalar MPI_MODE_NOCHECK Param 461 I(4) 4 scalar MPI_MODE_NOPRECEDE Param 467 I(4) 4 scalar Page 49 Source Listing WMWOUT 2014-09-16 16:49 Symbol Table wmwavemd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References MPI_MODE_NOPUT Param 465 I(4) 4 scalar MPI_MODE_NOSTORE Param 463 I(4) 4 scalar MPI_MODE_NOSUCCEED Param 469 I(4) 4 scalar MPI_MODE_RDONLY Param 479 I(4) 4 scalar MPI_MODE_RDWR Param 481 I(4) 4 scalar MPI_MODE_SEQUENTIAL Param 495 I(4) 4 scalar MPI_MODE_UNIQUE_OPEN Param 487 I(4) 4 scalar MPI_MODE_WRONLY Param 483 I(4) 4 scalar MPI_NULL_COPY_FN Subr 518 scalar MPI_NULL_DELETE_FN Subr 518 scalar MPI_OFFSET_KIND Param 372 I(4) 4 scalar MPI_OP_NULL Param 247 I(4) 4 scalar MPI_ORDER_C Param 503 I(4) 4 scalar MPI_ORDER_FORTRAN Param 505 I(4) 4 scalar MPI_PACKED Param 348 I(4) 4 scalar MPI_PROC_NULL Param 298 I(4) 4 scalar MPI_PROD Param 213 I(4) 4 scalar MPI_REAL Param 324 I(4) 4 scalar MPI_REAL16 Param 364 I(4) 4 scalar MPI_REAL4 Param 360 I(4) 4 scalar MPI_REAL8 Param 362 I(4) 4 scalar MPI_RECV Subr 1527 1527 MPI_REPLACE Param 231 I(4) 4 scalar MPI_REQUEST_NULL Param 251 I(4) 4 scalar MPI_ROOT Param 304 I(4) 4 scalar MPI_SEEK_CUR Param 499 I(4) 4 scalar MPI_SEEK_END Param 501 I(4) 4 scalar MPI_SEEK_SET Param 497 I(4) 4 scalar MPI_SEND Subr 1518 1518 MPI_SHORT Param 383 I(4) 4 scalar MPI_SHORT_INT Param 413 I(4) 4 scalar MPI_SIGNED_CHAR Param 377 I(4) 4 scalar MPI_SIMILAR Param 203 I(4) 4 scalar MPI_SOURCE Param 76 I(4) 4 scalar MPI_STATUSES_IGNORE Scalar 81 I(4) 4 2 5 COM MPI_STATUS_IGNORE Scalar 80 I(4) 4 1 5 COM MPI_STATUS_SIZE Param 78 I(4) 4 scalar 80,81,1494 MPI_SUBVERSION Param 312 I(4) 4 scalar MPI_SUCCESS Param 85 I(4) 4 scalar MPI_SUM Param 211 I(4) 4 scalar MPI_TAG Param 76 I(4) 4 scalar MPI_TAG_UB Param 257 I(4) 4 scalar MPI_THREAD_FUNNELED Param 473 I(4) 4 scalar MPI_THREAD_MULTIPLE Param 477 I(4) 4 scalar MPI_THREAD_SERIALIZED Param 475 I(4) 4 scalar MPI_THREAD_SINGLE Param 471 I(4) 4 scalar MPI_TYPECLASS_COMPLEX Param 459 I(4) 4 scalar MPI_TYPECLASS_INTEGER Param 457 I(4) 4 scalar MPI_TYPECLASS_REAL Param 455 I(4) 4 scalar MPI_TYPE_DUP_FN Subr 525 scalar MPI_TYPE_NULL_COPY_FN Subr 526 scalar MPI_TYPE_NULL_DELETE_FN Subr 525 scalar MPI_UB Param 344 I(4) 4 scalar MPI_UNDEFINED Param 291 I(4) 4 scalar MPI_UNDEFINED_RANK Param 291 I(4) 4 scalar Page 50 Source Listing WMWOUT 2014-09-16 16:49 Symbol Table wmwavemd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References MPI_UNEQUAL Param 205 I(4) 4 scalar MPI_UNIVERSE_SIZE Param 265 I(4) 4 scalar MPI_UNSIGNED Param 389 I(4) 4 scalar MPI_UNSIGNED_CHAR Param 379 I(4) 4 scalar MPI_UNSIGNED_LONG Param 393 I(4) 4 scalar MPI_UNSIGNED_LONG_LONG Param 403 I(4) 4 scalar MPI_UNSIGNED_SHORT Param 385 I(4) 4 scalar MPI_VERSION Param 310 I(4) 4 scalar MPI_WCHAR Param 381 I(4) 4 scalar MPI_WIN_BASE Param 271 I(4) 4 scalar MPI_WIN_DISP_UNIT Param 275 I(4) 4 scalar MPI_WIN_DUP_FN Subr 523 scalar MPI_WIN_NULL Param 241 I(4) 4 scalar MPI_WIN_NULL_COPY_FN Subr 524 scalar MPI_WIN_NULL_DELETE_FN Subr 523 scalar MPI_WIN_SIZE Param 273 I(4) 4 scalar MPI_WTICK Func 519 R(8) 8 scalar MPI_WTIME Func 519 R(8) 8 scalar MPI_WTIME_IS_GLOBAL Param 263 I(4) 4 scalar MTAGB Param 1479 I(4) 4 scalar 1479,1503 NAPROC Local 1477 I(4) 4 scalar PTR 1477,1516,1525 NMOD Dummy 1412 I(4) 4 scalar ARG,IN 1503 NTPROC Local 1477 I(4) 4 scalar PTR 1477,1516 PMPI_WTICK Func 520 R(8) 8 scalar PMPI_WTIME Func 520 R(8) 8 scalar STATUS Local 1494 I(4) 4 1 5 1528 W3ADATMD Module 1475 1475,1478 W3ODATMD Module 1474 1474,1477 W3SETA Subr 1475 1475,1502 W3SETO Subr 1474 1474,1501 WMMDATMD Module 1479 1479 WMWOUT Subr 1412 Page 51 Source Listing WMWOUT 2014-09-16 16:49 wmwavemd.f90 3159 !/ 3160 !/ End of module WMWAVEMD -------------------------------------------- / 3161 !/ 3162 END MODULE WMWAVEMD SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References WMWAVEMD Module 2 Page 52 Source Listing WMWOUT 2014-09-16 16:49 Subprograms/Common Blocks wmwavemd.f90 SUBPROGRAMS/COMMON BLOCKS Name Object Declared Type Bytes Dimen Elements Attributes References MPIPRIV1 Common 532 28 MPIPRIV2 Common 534 24 MPIPRIVC Common 537 2 WMBCST Subr 1283 412 WMPRNT Subr 1138 316,333,1057 WMWAVE Subr 69 WMWAVEMD Module 2 WMWOUT Subr 1412 COMPILER OPTIONS BEING USED -align nocommons -align nodcommons -align noqcommons -align records -align nosequence -align norec1byte -align norec2byte -align norec4byte -align norec8byte -align norec16byte -altparam -assume accuracy_sensitive -assume nobscc -assume nobuffered_io -assume byterecl -assume cc_omp -assume nocstring -assume nodummy_aliases -assume nofpe_summary -assume noieee_fpe_flags -assume nominus0 -assume noold_boz -assume old_unit_star -assume old_ldout_format -assume noold_logical_ldio -assume old_maxminloc -assume old_xor -assume protect_constants -assume noprotect_parens -assume split_common -assume source_include -assume nostd_intent_in -assume nostd_mod_proc_name -assume norealloc_lhs -assume underscore -assume no2underscores -auto no -auto_scalar no -bintext -ccdefault default -check noargs -check noarg_temp_created -check nobounds -check noformat -check nooutput_conversion -check nooverflow -check nopointers -check power -check noshape -check nounderflow -check nouninitialized -coarray-num-procs 0 no -coarray-config-file -convert big_endian -cross_reference -D __INTEL_COMPILER=1210 -D __unix__ -D __unix -D __linux__ -D __linux -D __gnu_linux__ -D unix -D linux -D __ELF__ -D __x86_64 -D __x86_64__ -D _MT -D __INTEL_COMPILER_BUILD_DATE=20120612 -D _OPENMP=201107 -D __pentium4 -D __pentium4__ -D __tune_pentium4__ -D __SSE2__ -D __SSE3__ -D __SSSE3__ -D __SSE4_1__ -D __SSE4_2__ -D __SSE__ -D __MMX__ -D __AVX__ Page 53 Source Listing WMWOUT 2014-09-16 16:49 wmwavemd.f90 -double_size 64 no -d_lines no -Qdyncom -error_limit 30 no -f66 no -f77rtl no -fast -fpscomp nofilesfromcmd -fpscomp nogeneral -fpscomp noioformat -fpscomp noldio_spacing -fpscomp nologicals no -fpconstant -fpe3 -fprm nearest no -ftz -fp_model noprecise -fp_model fast -fp_model nostrict -fp_model nosource -fp_model nodouble -fp_model noextended -fp_model novery_fast -fp_model noexcept -fp_model nono_except -heap_arrays 0 no -threadprivate_compat -free -g0 -iface nomixed_str_len_arg -iface nono_mixed_str_len_arg no -intconstant -integer_size 32 no -mixed_str_len_arg no -module -names lowercase no -noinclude -openmp -O2 no -pad_source -real_size 32 no -recursive -reentrancy threaded no -sharable_localsaves -vec=simd -show noinclude -show map -show options no -syntax_only no -threadcom no -U no -vms -w noall -w nonone -w alignments -w noargument_checking -w nodeclarations -w general -w noignore_bounds -w noignore_loc -w nointerfaces -w notruncated_source -w uncalled -w uninitialized -w nounused -w usage -includepath : /usrx/local/intel/composerxe/tbb/include/,/usr/include/,./,/usrx/local/intel/impi/4.0.3.008/intel64/include/, /usrx/local/intel/impi/4.0.3.008/intel64/include/,/usrx/local/intel/composerxe/mkl/include/,/usrx/local/intel/composerxe/tbb/include/, /gpfs/gp1/usrx/local/intel/composer_xe_2011_sp1.11.339/compiler/include/intel64/,/gpfs/gp1/usrx/local/intel/composer_xe_2011_sp1.11.339/compiler/include/, /usr/local/include/,/usr/lib/gcc/x86_64-redhat-linux/4.4.7/include/,/usr/include/,/usr/include/ -list filename : wmwavemd.lst -o filename : none COMPILER: Intel(R) Fortran 12.1-2100