Page 1 Source Listing WMIOBS 2014-09-16 16:49 wminiomd.f90 1 !/ ------------------------------------------------------------------- / 2 MODULE WMINIOMD 3 !/ 4 !/ +-----------------------------------+ 5 !/ | WAVEWATCH III NOAA/NCEP | 6 !/ | H. L. Tolman | 7 !/ | FORTRAN 90 | 8 !/ | Last update : 29-May-2009 | 9 !/ +-----------------------------------+ 10 !/ 11 !/ 29-May-2006 : Origination. ( version 3.09 ) 12 !/ 21-Dec-2006 : VTIME change in WMIOHx and WMIOEx. ( version 3.10 ) 13 !/ 22-Jan-2007 : Adding NAVMAX in WMIOEG. ( version 3.10 ) 14 !/ 30-Jan-2007 : Fix memory leak WMIOBS. ( version 3.10 ) 15 !/ 29-May-2009 : Preparing distribution version. ( version 3.14 ) 16 !/ 17 !/ Copyright 2009 National Weather Service (NWS), 18 !/ National Oceanic and Atmospheric Administration. All rights 19 !/ reserved. WAVEWATCH III is a trademark of the NWS. 20 !/ No unauthorized use without permission. 21 !/ 22 ! 1. Purpose : 23 ! 24 ! Internal IO routines for the multi-grid model. 25 ! 26 ! 2. Variables and types : 27 ! 28 ! 3. Subroutines and functions : 29 ! 30 ! Name Type Scope Description 31 ! ---------------------------------------------------------------- 32 ! WMIOBS Subr. Public Stage internal boundary data. 33 ! WMIOBG Subr. Public Gather internal boundary data. 34 ! WMIOBF Subr. Public Finalize WMIOBS. ( !/MPI ) 35 ! WMIOHS Subr. Public Stage internal high to low data. 36 ! WMIOHG Subr. Public Gather internal high to low data. 37 ! WMIOHF Subr. Public Finalize WMIOHS. ( !/MPI ) 38 ! WMIOES Subr. Public Stage internal same rank data. 39 ! WMIOEG Subr. Public Gather internal same rank data. 40 ! WMIOEF Subr. Public Finalize WMIOES. ( !/MPI ) 41 ! ---------------------------------------------------------------- 42 ! 43 ! 4. Subroutines and functions used : 44 ! 45 ! Name Type Module Description 46 ! ---------------------------------------------------------------- 47 ! W3SETG, W3SETW, W3SETA, W3SETO, WMSETM 48 ! Subr. WxxDATMD Manage data structures. 49 ! W3UBPT Subr. W3UBPTMD Update internal bounday spectra. 50 ! W3IOBC Subr W3IOBCMD I/O of boundary data. 51 ! W3CSPC Subr. W3CSPCMD Spectral grid conversion. 52 ! STRACE Sur. W3SERVMD Subroutine tracing. 53 ! 54 ! MPI_ISEND, MPI_IRECV, MPI_TESTALL, MPI_WAITALL 55 ! Subr. mpif.h MPI routines. 56 ! ---------------------------------------------------------------- 57 ! Page 2 Source Listing WMIOBS 2014-09-16 16:49 wminiomd.f90 58 ! 5. Remarks : 59 ! 60 ! !/SHRD Shared/distributed memory models. 61 ! !/DIST 62 ! !/MPI 63 ! 64 ! !/S Enable subroutine tracing. 65 ! !/T Enable test output 66 ! !/MPIT 67 ! 68 ! 6. Switches : 69 ! 70 ! 7. Source code : 71 ! 72 !/ ------------------------------------------------------------------- / 73 PUBLIC 74 !/ 75 CONTAINS 76 !/ ------------------------------------------------------------------- / 77 SUBROUTINE WMIOBS ( IMOD ) 78 !/ 79 !/ +-----------------------------------+ 80 !/ | WAVEWATCH III NOAA/NCEP | 81 !/ | H. L. Tolman | 82 !/ | FORTRAN 90 | 83 !/ | Last update : 30-Jan-2007 ! 84 !/ +-----------------------------------+ 85 !/ 86 !/ 06-Oct-2005 : Origination. ( version 3.08 ) 87 !/ 29-May-2006 : Adding buffering for MPI. ( version 3.09 ) 88 !/ 30-Jan-2007 : Fix memory leak. ( version 3.10 ) 89 !/ 90 ! 1. Purpose : 91 ! 92 ! Stage internal boundary data in the data structure BPSTGE. 93 ! 94 ! 2. Method : 95 ! 96 ! For the shared memory version, arrays are initialized and the 97 ! data are copied. For the distributed memory version, the data 98 ! are moved using a non-blocking send. in this case, the arrays 99 ! are dimensioned on the recieving side. 100 ! 101 ! 3. Parameters : 102 ! 103 ! Parameter list 104 ! ---------------------------------------------------------------- 105 ! IMOD Int. I Model number of grid from which data is to 106 ! be staged. 107 ! ---------------------------------------------------------------- 108 ! 109 ! 4. Subroutines used : 110 ! 111 ! Name Type Module Description 112 ! ---------------------------------------------------------------- 113 ! W3SETG, W3SETW, W3SETA, W3SETO, WMSETM 114 ! Subr. WxxDATMD Manage data structures. Page 3 Source Listing WMIOBS 2014-09-16 16:49 wminiomd.f90 115 ! W3CSPC Subr. W3CSPCMD Spectral grid conversion. 116 ! STRACE Subr. W3SERVMD Subroutine tracing. 117 ! 118 ! MPI_ISEND 119 ! Subr. mpif.h MPI routines. 120 ! ---------------------------------------------------------------- 121 ! 122 ! 5. Called by : 123 ! 124 ! Name Type Module Description 125 ! ---------------------------------------------------------------- 126 ! WMINIT Subr WMINITMD Multi-grid model initialization. 127 ! WMWAVE Subr WMWAVEMD Multi-grid wave model. 128 ! ---------------------------------------------------------------- 129 ! 130 ! 6. Error messages : 131 ! 132 ! 7. Remarks : 133 ! 134 ! 8. Structure : 135 ! 136 ! See source code. 137 ! 138 ! 9. Switches : 139 ! 140 ! !/SHRD Shared/distributed memory models. 141 ! !/DIST 142 ! !/MPI 143 ! 144 ! !/S Enable subroutine tracing. 145 ! !/T Enable test output 146 ! !/MPIT 147 ! 148 ! 10. Source code : 149 ! 150 !/ ------------------------------------------------------------------- / 151 ! 152 USE W3GDATMD 153 USE W3WDATMD 154 USE W3ADATMD 155 USE W3ODATMD 156 USE WMMDATMD 157 ! 158 USE W3CSPCMD, ONLY: W3CSPC 159 ! 160 IMPLICIT NONE 161 ! 162 INCLUDE "mpif.h" 163 !/ 164 !/ ------------------------------------------------------------------- / 165 !/ Parameter list 166 !/ 705 INTEGER, INTENT(IN) :: IMOD 706 !/ 707 !/ ------------------------------------------------------------------- / 708 !/ Local parameters 709 !/ Page 4 Source Listing WMIOBS 2014-09-16 16:49 wminiomd.f90 710 INTEGER :: J, I, IOFF, ISEA, JSEA, IS 711 INTEGER :: ISPROC 712 INTEGER :: IP, IT0, ITAG, IERR_MPI 713 INTEGER, POINTER :: NRQ, IRQ(:) 714 REAL, POINTER :: SBPI(:,:), TSTORE(:,:) 715 !/ 716 ! 717 ! -------------------------------------------------------------------- / 718 ! 0. Initializations 719 ! 720 IF ( SUM(NBI2G(:,IMOD)) .EQ. 0 ) RETURN 721 ! 722 CALL W3SETO ( IMOD, MDSE, MDST ) 723 CALL W3SETG ( IMOD, MDSE, MDST ) 724 CALL W3SETW ( IMOD, MDSE, MDST ) 725 CALL W3SETA ( IMOD, MDSE, MDST ) 726 ! 727 ! -------------------------------------------------------------------- / 728 ! 1. Loop over grids 729 ! 730 DO J=1, NRGRD 731 ! 732 IF ( NBI2G(J,IMOD) .EQ. 0 ) CYCLE 733 ! 734 CALL WMSETM ( J , MDSE, MDST ) 735 ! 736 IF ( IMOD .EQ. 1 ) THEN 737 IOFF = 0 738 ELSE 739 IOFF = SUM(NBI2G(J,1:IMOD-1)) 740 END IF 741 ! 742 ! -------------------------------------------------------------------- / 743 ! 2. Allocate arrays 744 ! 745 NAPROC => OUTPTS(J)%NAPROC 746 ALLOCATE ( IRQ(NBI2G(J,IMOD)*NAPROC+NAPROC) ) 747 ALLOCATE ( BPSTGE(J,IMOD)%TSTORE(NSPEC,NBI2G(J,IMOD)) ) 748 NAPROC => OUTPTS(IMOD)%NAPROC 749 ! 750 NRQ => BPSTGE(J,IMOD)%NRQBPS 751 SBPI => BPSTGE(J,IMOD)%TSTORE 752 ! 753 NRQ = 0 754 IRQ = 0 755 ! 756 ! -------------------------------------------------------------------- / 757 ! 3. Set the time 758 ! Note that with MPI the send needs to be posted to the local 759 ! processor too to make time management possible. 760 ! 761 IF ( IAPROC .EQ. 1 ) THEN 762 BPSTGE(J,IMOD)%STIME = TIME 763 ITAG = MTAG0 + IMOD + (J-1)*NRGRD 764 DO IP=1, NMPROC 765 IF ( ALLPRC(IP,J) .NE. 0 .AND. & 766 ALLPRC(IP,J) .LE. OUTPTS(J)%NAPROC ) THEN Page 5 Source Listing WMIOBS 2014-09-16 16:49 wminiomd.f90 767 NRQ = NRQ + 1 768 CALL MPI_ISEND ( BPSTGE(J,IMOD)%STIME, 2, & 769 MPI_INTEGER, IP-1, ITAG, & 770 MPI_COMM_MWAVE, IRQ(NRQ), & 771 IERR_MPI ) 772 END IF 773 END DO 774 END IF 775 ! 776 ! -------------------------------------------------------------------- / 777 ! 4. Stage the spectral data 778 ! 779 DO I=1, NBI2G(J,IMOD) 780 ! 781 ISEA = NBI2S(IOFF+I,2) 782 JSEA = 1 + (ISEA-1)/NAPROC 783 ISPROC = ISEA - (JSEA-1)*NAPROC 784 IF ( ISPROC .NE. IAPROC ) CYCLE 785 IT0 = MTAG0 + NRGRD**2 + SUM(NBI2G(1:J-1,:)) + & 786 SUM(NBI2G(J,1:IMOD-1)) 787 ! 788 DO IS=1, NSPEC 789 SBPI(IS,I) = VA(IS,JSEA) * SIG2(IS) / CG(1+(IS-1)/NTH,ISEA) 790 END DO 791 ! 792 DO IP=1, NMPROC 793 IF ( ALLPRC(IP,J) .NE. 0 .AND. & 794 ALLPRC(IP,J) .LE. OUTPTS(J)%NAPROC ) THEN 795 NRQ = NRQ + 1 796 ITAG = IT0 + I 797 CALL MPI_ISEND ( SBPI(1,I), NSPEC, MPI_REAL, & 798 IP-1, ITAG, MPI_COMM_MWAVE, & 799 IRQ(NRQ), IERR_MPI ) 800 END IF 801 END DO 802 ! 803 END DO 804 ! 805 IF ( NRQ .GT. 0 ) THEN 806 ALLOCATE ( BPSTGE(J,IMOD)%IRQBPS(NRQ) ) 807 BPSTGE(J,IMOD)%IRQBPS = IRQ(:NRQ) 808 ELSE 809 DEALLOCATE ( BPSTGE(J,IMOD)%TSTORE ) 810 END IF 811 ! 812 DEALLOCATE ( IRQ ) 813 ! 814 ! -------------------------------------------------------------------- / 815 ! 5. Convert spectra ( !/SHRD only ) 816 ! 817 ! ... End of loop over grids 818 ! 819 END DO 820 ! 821 RETURN 822 ! 823 ! Formats Page 6 Source Listing WMIOBS 2014-09-16 16:49 wminiomd.f90 824 ! 825 !/ 826 !/ End of WMIOBS ----------------------------------------------------- / 827 !/ 828 END SUBROUTINE WMIOBS ENTRY POINTS Name wminiomd_mp_wmiobs_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References ALLPRC Local 227 I(4) 4 2 1 ALC 227,228,255,256 BPSTGE Local 209 RECORD 296 2 1 ALC,TGT 209,212,213,224,230,268,269,271 CG Local 251 R(4) 4 2 1 PTR 251 I Local 172 I(4) 4 scalar 241,243,251,258,259 IAPROC Local 223 I(4) 4 scalar PTR 223,246 IERR_MPI Local 174 I(4) 4 scalar 233,261 IMOD Dummy 77 I(4) 4 scalar ARG,IN 182,184,185,186,187,194,198,201,20 8,209,210,212,213,224,225,230,241, 248,268,269,271 IOFF Local 172 I(4) 4 scalar 199,201,243 IP Local 174 I(4) 4 scalar 226,227,228,231,254,255,256,260 IRQ Local 175 I(4) 4 1 1 PTR 208,216,232,261,269,274 IRQBPS Local 268 I(4) 4 1 1 PTR 268,269 IS Local 172 I(4) 4 scalar 250,251 ISEA Local 172 I(4) 4 scalar 243,244,245,251 ISPROC Local 173 I(4) 4 scalar 245,246 IT0 Local 174 I(4) 4 scalar 247,258 ITAG Local 174 I(4) 4 scalar 225,231,258,260 J Local 172 I(4) 4 scalar 192,194,196,201,207,208,209,212,21 3,224,225,227,228,230,241,247,248, 255,256,268,269,271 JSEA Local 172 I(4) 4 scalar 244,245,251 MDSE Local 184 I(4) 4 scalar 184,185,186,187,196 MDST Local 184 I(4) 4 scalar 184,185,186,187,196 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 7 Source Listing WMIOBS 2014-09-16 16:49 Symbol Table wminiomd.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_MWAVE Local 232 I(4) 4 scalar 232,260 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 Page 8 Source Listing WMIOBS 2014-09-16 16:49 Symbol Table wminiomd.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 9 Source Listing WMIOBS 2014-09-16 16:49 Symbol Table wminiomd.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 231 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_ISEND Subr 230 230,259 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 Page 10 Source Listing WMIOBS 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 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 259 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_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 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 Page 11 Source Listing WMIOBS 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 MTAG0 Param 225 I(4) 4 scalar 225,247 NAPROC Local 207 I(4) 4 scalar PTR,TGT 207,208,210,244,245,228,256 NBI2G Local 182 I(4) 4 2 1 ALC 182,194,201,208,209,241,247,248 NBI2S Local 243 I(4) 4 2 1 PTR 243 NMPROC Local 226 I(4) 4 scalar 226,254 NRGRD Local 192 I(4) 4 scalar 192,225,247 NRQ Local 175 I(4) 4 scalar PTR 212,215,229,232,257,261,267,268,26 9 NRQBPS Local 212 I(4) 4 scalar TGT 212 NSPEC Local 209 I(4) 4 scalar PTR 209,250,259 NTH Local 251 I(4) 4 scalar PTR 251 OUTPTS Local 207 RECORD 5960 1 1 ALC,TGT 207,210,228,256 PMPI_WTICK Func 520 R(8) 8 scalar PMPI_WTIME Func 520 R(8) 8 scalar SBPI Local 176 R(4) 4 2 1 PTR 213,251,259 SIG2 Local 251 R(4) 4 1 1 PTR 251 STIME Local 224 I(4) 4 1 2 224,230 SUM Func 182 scalar 182,201,247,248 TIME Local 224 I(4) 4 1 1 PTR 224 TSTORE Local 176 R(4) 4 2 1 PTR TSTORE Local 209 R(4) 4 2 1 PTR 209,213,271 VA Local 251 R(4) 4 2 1 PTR 251 W3ADATMD Module 154 154 W3CSPC Subr 158 158 W3CSPCMD Module 158 158 W3GDATMD Module 152 152 W3ODATMD Module 155 155 W3SETA Subr 187 187 W3SETG Subr 185 185 W3SETO Subr 184 184 W3SETW Subr 186 186 W3WDATMD Module 153 153 WMIOBS Subr 77 WMMDATMD Module 156 156 WMSETM Subr 196 196 Page 12 Source Listing WMIOBS 2014-09-16 16:49 wminiomd.f90 829 !/ ------------------------------------------------------------------- / 830 SUBROUTINE WMIOBG ( IMOD, DONE ) 831 !/ 832 !/ +-----------------------------------+ 833 !/ | WAVEWATCH III NOAA/NCEP | 834 !/ | H. L. Tolman | 835 !/ | FORTRAN 90 | 836 !/ | Last update : 29-May-2006 ! 837 !/ +-----------------------------------+ 838 !/ 839 !/ 18-Oct-2005 : Origination. ( version 3.08 ) 840 !/ 29-May-2006 : Adding buffering for MPI. ( version 3.09 ) 841 !/ 842 ! 1. Purpose : 843 ! 844 ! Gather internal boundary data for a given model. 845 ! 846 ! 2. Method : 847 ! 848 ! For the shared memory version, datat are gathered from the data 849 ! structure BPSTGE. For the distributed memeory version, the 850 ! gathering of thee data are finished first. 851 ! 852 ! Gathering of data is triggered by the time stamp of the data 853 ! that is presently in the storage arrays. 854 ! 855 ! This routine preempts the data flow normally executed by 856 ! W3IOBC and W3UBPT, and hence bypasses both routines in W3WAVE. 857 ! 858 ! 2. Method : 859 ! 860 ! Using storage array BPSTAGE and time stamps. 861 ! 862 ! 3. Parameters : 863 ! 864 ! Parameter list 865 ! ---------------------------------------------------------------- 866 ! IMOD Int. I Model number of grid from which data is to 867 ! be gathered. 868 ! DONE Log. O Flag for completion of operation (opt). 869 ! ---------------------------------------------------------------- 870 ! 871 ! 4. Subroutines used : 872 ! 873 ! Name Type Module Description 874 ! ---------------------------------------------------------------- 875 ! W3SETG, W3SETW, W3SETA, W3SETO, WMSETM 876 ! Subr. WxxDATMD Manage data structures. 877 ! W3CSPC Subr. W3CSPCMD Spectral grid conversion. 878 ! W3UBPT Subr. W3UBPTMD Update internal bounday spectra. 879 ! W3IOBC Subr W3IOBCMD I/O of boundary data. 880 ! STRACE Sur. W3SERVMD Subroutine tracing. 881 ! EXTCDE Sur. Id. Program abort. 882 ! DSEC21 Func. W3TIMEMD Difference between times. 883 ! 884 ! MPI_IRECV, MPI_TESTALL, MPI_WAITALL 885 ! Subr. mpif.h MPI routines. Page 13 Source Listing WMIOBG 2014-09-16 16:49 wminiomd.f90 886 ! ---------------------------------------------------------------- 887 ! 888 ! 5. Called by : 889 ! 890 ! Name Type Module Description 891 ! ---------------------------------------------------------------- 892 ! WMINIT Subr WMINITMD Multi-grid model initialization. 893 ! WMWAVE Subr WMWAVEMD Multi-grid wave model. 894 ! ---------------------------------------------------------------- 895 ! 896 ! 6. Error messages : 897 ! 898 ! See FORMAT labels 1001-1002. 899 ! 900 ! 7. Remarks : 901 ! 902 ! 8. Structure : 903 ! 904 ! 9. Switches : 905 ! 906 ! !/SHRD Shared/distributed memory models. 907 ! !/DIST 908 ! !/MPI 909 ! 910 ! !/S Enable subroutine tracing. 911 ! !/T Enable test output 912 ! 913 ! 10. Source code : 914 ! 915 !/ ------------------------------------------------------------------- / 916 ! 917 USE W3GDATMD 918 USE W3WDATMD 919 USE W3ADATMD 920 USE W3ODATMD 921 USE WMMDATMD 922 ! 923 USE W3CSPCMD, ONLY: W3CSPC 924 USE W3TIMEMD, ONLY: DSEC21 925 USE W3UPDTMD, ONLY: W3UBPT 926 USE W3IOBCMD, ONLY: W3IOBC 927 USE W3SERVMD, ONLY: EXTCDE 928 ! 929 IMPLICIT NONE 930 ! 931 INCLUDE "mpif.h" 932 !/ 933 !/ ------------------------------------------------------------------- / 934 !/ Parameter list 935 !/ 1474 INTEGER, INTENT(IN) :: IMOD 1475 LOGICAL, INTENT(OUT), OPTIONAL :: DONE 1476 !/ 1477 !/ ------------------------------------------------------------------- / 1478 !/ Local parameters 1479 !/ 1480 INTEGER :: J, I, IOFF, TTEST(2), ITEST Page 14 Source Listing WMIOBG 2014-09-16 16:49 wminiomd.f90 1481 INTEGER :: IERR_MPI, IT0, ITAG, IFROM, & 1482 ISEA, JSEA, ISPROC 1483 INTEGER, POINTER :: VTIME(:) 1484 INTEGER, POINTER :: NRQ, IRQ(:) 1485 INTEGER, ALLOCATABLE :: STATUS(:,:) 1486 REAL :: DTTST, DT1, DT2, W1, W2 1487 REAL, POINTER :: SBPI(:,:) 1488 REAL, ALLOCATABLE :: TSTORE(:,:) 1489 LOGICAL :: FLAGOK 1490 !/ 1491 ! 1492 ! -------------------------------------------------------------------- / 1493 ! 0. Initializations 1494 ! 1495 IF ( PRESENT(DONE) ) DONE = .FALSE. 1496 ! 1497 CALL W3SETO ( IMOD, MDSE, MDST ) 1498 ! 1499 IF ( IAPROC .GT. NAPROC ) THEN 1500 IF ( PRESENT(DONE) ) DONE = .TRUE. 1501 RETURN 1502 END IF 1503 ! 1504 IF ( SUM(NBI2G(IMOD,:)) .EQ. 0 ) THEN 1505 IF ( PRESENT(DONE) ) DONE = .TRUE. 1506 RETURN 1507 END IF 1508 ! 1509 CALL W3SETG ( IMOD, MDSE, MDST ) 1510 CALL W3SETW ( IMOD, MDSE, MDST ) 1511 CALL W3SETA ( IMOD, MDSE, MDST ) 1512 ! 1513 IF ( TBPIN(1) .NE. -1 ) THEN 1514 IF ( DSEC21(TIME,TBPIN) .GT. 0. ) THEN 1515 IF ( PRESENT(DONE) ) DONE = .TRUE. 1516 RETURN 1517 END IF 1518 END IF 1519 ! 1520 ! -------------------------------------------------------------------- / 1521 ! 1. Testing / gathering data in staging arrays 1522 ! 1523 ! 1.a Shared memory version, test valid times. - - - - - - - - - - - - / 1524 ! 1525 ! 1.b Distributed memory version - - - - - - - - - - - - - - - - - - - / 1526 ! 1527 ! 1.b.1 NBISTA = 0 1528 ! Check if staging arrays are initialized. 1529 ! Post the proper receives. 1530 ! 1531 IF ( NBISTA(IMOD) .EQ. 0 ) THEN 1532 ! 1533 NRQ => MDATAS(IMOD)%NRQBPG 1534 NRQ = NRGRD + SUM(NBI2G(IMOD,:)) 1535 ALLOCATE ( MDATAS(IMOD)%IRQBPG(NRQ) ) 1536 IRQ => MDATAS(IMOD)%IRQBPG 1537 IRQ = 0 Page 15 Source Listing WMIOBG 2014-09-16 16:49 wminiomd.f90 1538 NRQ = 0 1539 ! 1540 DO J=1, NRGRD 1541 IF ( NBI2G(IMOD,J) .EQ. 0 ) CYCLE 1542 ! 1543 ! ..... Staging arrays 1544 ! 1545 IF ( BPSTGE(IMOD,J)%INIT ) THEN 1546 IF ( RESPEC(IMOD,J) ) THEN 1547 DEALLOCATE ( BPSTGE(IMOD,J)%SBPI ) 1548 BPSTGE(IMOD,J)%INIT = .FALSE. 1549 ELSE 1550 IF ( SIZE(BPSTGE(IMOD,J)%SBPI(:,1)) .NE. & 1551 SGRDS(J)%NSPEC .OR. & 1552 SIZE(BPSTGE(IMOD,J)%SBPI(1,:)) .NE. & 1553 NBI2G(IMOD,J) ) THEN 1554 IF ( IMPROC .EQ. NMPERR ) WRITE (MDSE,1003) 1555 CALL EXTCDE (1003) 1556 END IF 1557 END IF 1558 END IF 1559 ! 1560 IF ( .NOT. BPSTGE(IMOD,J)%INIT ) THEN 1561 NSPEC => SGRDS(J)%NSPEC 1562 ALLOCATE (BPSTGE(IMOD,J)%SBPI(NSPEC,NBI2G(IMOD,J))) 1563 NSPEC => SGRDS(IMOD)%NSPEC 1564 BPSTGE(IMOD,J)%INIT = .TRUE. 1565 END IF 1566 ! 1567 ! ..... Check valid time to determine staging. 1568 ! 1569 VTIME => BPSTGE(IMOD,J)%VTIME 1570 IF ( VTIME(1) .EQ. -1 ) THEN 1571 DTTST = 0. 1572 ELSE 1573 DTTST = DSEC21 ( TIME, VTIME ) 1574 END IF 1575 ! 1576 ! ..... Post receives for data gather 1577 ! 1578 IF ( DTTST .LE. 0. ) THEN 1579 ! 1580 ! ..... Time 1581 ! 1582 ITAG = MTAG0 + J + (IMOD-1)*NRGRD 1583 IFROM = MDATAS(J)%CROOT - 1 1584 NRQ = NRQ + 1 1585 CALL MPI_IRECV ( BPSTGE(IMOD,J)%VTIME, 2, & 1586 MPI_INTEGER, IFROM, ITAG, & 1587 MPI_COMM_MWAVE, IRQ(NRQ), & 1588 IERR_MPI ) 1589 ! 1590 ! ..... Spectra 1591 ! 1592 IF ( J .EQ. 1 ) THEN 1593 IOFF = 0 1594 ELSE Page 16 Source Listing WMIOBG 2014-09-16 16:49 wminiomd.f90 1595 IOFF = SUM(NBI2G(IMOD,1:J-1)) 1596 END IF 1597 ! 1598 IT0 = MTAG0 + NRGRD**2 + SUM(NBI2G(1:IMOD-1,:)) & 1599 + SUM(NBI2G(IMOD,1:J-1)) 1600 ! 1601 SBPI => BPSTGE(IMOD,J)%SBPI 1602 ! 1603 NAPROC => OUTPTS(J)%NAPROC 1604 NSPEC => SGRDS(J)%NSPEC 1605 DO I=1, NBI2G(IMOD,J) 1606 ISEA = NBI2S(IOFF+I,2) 1607 JSEA = 1 + (ISEA-1)/NAPROC 1608 ISPROC = MDATAS(J)%CROOT - 1 + ISEA - & 1609 (JSEA-1)*NAPROC 1610 NRQ = NRQ + 1 1611 ITAG = IT0 + I 1612 CALL MPI_IRECV ( SBPI(1,I), NSPEC, & 1613 MPI_REAL, ISPROC-1, & 1614 ITAG, MPI_COMM_MWAVE, & 1615 IRQ(NRQ), IERR_MPI ) 1616 END DO 1617 NSPEC => SGRDS(IMOD)%NSPEC 1618 NAPROC => OUTPTS(IMOD)%NAPROC 1619 ! 1620 ! ..... End IF for posting receives 1.b.1 1621 ! 1622 END IF 1623 ! 1624 ! ..... End grid loop J in 1.b.1 1625 ! 1626 END DO 1627 ! 1628 ! ..... Reset status 1629 ! NOTE: if NBI.EQ.0 all times are already OK, skip to section 2 1630 ! 1631 IF ( NBI .GT. 0 ) THEN 1632 NBISTA(IMOD) = 1 1633 END IF 1634 ! 1635 ! ..... End IF in 1.b.1 1636 ! 1637 END IF 1638 ! 1639 ! 1.b.2 NBISTA = 1 1640 ! Wait for communication to finish. 1641 ! If DONE defined, check if done, otherwise wait. 1642 ! 1643 IF ( NBISTA(IMOD) .EQ. 1 ) THEN 1644 ! 1645 NRQ => MDATAS(IMOD)%NRQBPG 1646 IRQ => MDATAS(IMOD)%IRQBPG 1647 ALLOCATE ( STATUS(MPI_STATUS_SIZE,NRQ) ) 1648 ! 1649 ! ..... Test communication if DONE is present, wait otherwise 1650 ! 1651 IF ( PRESENT(DONE) ) THEN Page 17 Source Listing WMIOBG 2014-09-16 16:49 wminiomd.f90 1652 ! 1653 CALL MPI_TESTALL ( NRQ, IRQ, FLAGOK, STATUS, & 1654 IERR_MPI ) 1655 ! 1656 ELSE 1657 ! 1658 CALL MPI_WAITALL ( NRQ, IRQ, STATUS, IERR_MPI ) 1659 FLAGOK = .TRUE. 1660 ! 1661 END IF 1662 ! 1663 ! ..... Go on based on FLAGOK 1664 ! 1665 IF ( FLAGOK ) THEN 1666 DEALLOCATE ( STATUS, MDATAS(IMOD)%IRQBPG ) 1667 NRQ = 0 1668 ELSE 1669 RETURN 1670 END IF 1671 ! 1672 NBISTA(IMOD) = 2 1673 ! 1674 ! 1.b.3 Convert spectra if needed 1675 ! 1676 DO J=1, NRGRD 1677 ! 1678 IF ( RESPEC(IMOD,J) .AND. NBI2G(IMOD,J).NE.0 ) THEN 1679 ! 1680 NSPEC => SGRDS(J)%NSPEC 1681 ALLOCATE ( TSTORE(NSPEC,NBI2G(IMOD,J))) 1682 NSPEC => SGRDS(IMOD)%NSPEC 1683 TSTORE = BPSTGE(IMOD,J)%SBPI 1684 DEALLOCATE ( BPSTGE(IMOD,J)%SBPI ) 1685 ALLOCATE (BPSTGE(IMOD,J)%SBPI(NSPEC,NBI2G(IMOD,J))) 1686 ! 1687 SBPI => BPSTGE(IMOD,J)%SBPI 1688 CALL W3CSPC ( TSTORE, SGRDS(J)%NK, SGRDS(J)%NTH, & 1689 SGRDS(J)%XFR, SGRDS(J)%FR1, SGRDS(J)%TH(1), & 1690 SBPI, NK, NTH, XFR, FR1, TH(1), & 1691 NBI2G(IMOD,J), MDST, MDSE, SGRDS(IMOD)%FACHFE) 1692 ! 1693 DEALLOCATE ( TSTORE ) 1694 ! 1695 END IF 1696 ! 1697 END DO 1698 ! 1699 NBISTA(IMOD) = 0 1700 ! 1701 END IF 1702 ! 1703 ! -------------------------------------------------------------------- / 1704 ! 2. Update arrays ABPI0/N and data times 1705 ! 1706 ! 2.a Determine next valid time 1707 ! 1708 TTEST = -1 Page 18 Source Listing WMIOBG 2014-09-16 16:49 wminiomd.f90 1709 DO J=1, NRGRD 1710 IF ( NBI2G(IMOD,J) .EQ. 0 ) CYCLE 1711 VTIME => BPSTGE(IMOD,J)%VTIME 1712 IF ( TTEST(1) .EQ. -1 ) THEN 1713 TTEST = VTIME 1714 ELSE 1715 DTTST = DSEC21(VTIME,TTEST) 1716 IF ( DTTST .GT. 0. ) TTEST = VTIME 1717 END IF 1718 END DO 1719 ! 1720 ! 2.b Shift data 1721 ! 1722 IF ( TBPIN(1) .EQ. -1 ) THEN 1723 DTTST = DSEC21(TTEST,TIME) 1724 IF ( DTTST .NE. 0. ) THEN 1725 IF ( NMPROC .EQ. NMPERR ) WRITE (MDSE,1002) 1726 CALL EXTCDE(1002) 1727 END IF 1728 ABPI0 = 0. 1729 ELSE 1730 TBPI0 = TBPIN 1731 ABPI0 = ABPIN 1732 END IF 1733 ! 1734 ! 2.c Loop over grids for new spectra 1735 ! 1736 DO J=1, NRGRD 1737 ! 1738 IF ( NBI2G(IMOD,J) .EQ. 0 ) CYCLE 1739 VTIME => BPSTGE(IMOD,J)%VTIME 1740 SBPI => BPSTGE(IMOD,J)%SBPI 1741 ! 1742 IF ( J .EQ. 1 ) THEN 1743 IOFF = 0 1744 ELSE 1745 IOFF = SUM(NBI2G(IMOD,1:J-1)) 1746 END IF 1747 ! 1748 IF ( TBPIN(1) .EQ. -1 ) THEN 1749 W1 = 0. 1750 W2 = 1. 1751 ELSE 1752 DT1 = DSEC21(TBPI0,VTIME) 1753 DT2 = DSEC21(TBPI0,TTEST) 1754 W2 = DT2 / DT1 1755 W1 = 1. - W2 1756 END IF 1757 ! 1758 ABPIN(:,IOFF+1:IOFF+NBI2G(IMOD,J)) = & 1759 W1 * ABPI0(:,IOFF+1:IOFF+NBI2G(IMOD,J)) + & 1760 W2 * SBPI(:,1:NBI2G(IMOD,J)) 1761 ! 1762 END DO 1763 ! 1764 ! 2.d New time 1765 ! Page 19 Source Listing WMIOBG 2014-09-16 16:49 wminiomd.f90 1766 TBPIN = TTEST 1767 ! 1768 ! -------------------------------------------------------------------- / 1769 ! 3. Dump data to file if requested 1770 ! 1771 IF ( IAPROC.EQ.NAPBPT .AND. BCDUMP(IMOD) ) THEN 1772 CALL W3IOBC ( 'DUMP', NDS(9), TBPIN, TBPIN, ITEST, IMOD ) 1773 END IF 1774 ! 1775 ! -------------------------------------------------------------------- / 1776 ! 4. Update arrays BBPI0/N 1777 ! 1778 CALL W3UBPT 1779 ! 1780 ! -------------------------------------------------------------------- / 1781 ! 5. Successful update 1782 ! 1783 IF ( PRESENT(DONE) ) DONE = .TRUE. 1784 ! 1785 RETURN 1786 ! 1787 ! Formats 1788 ! 1789 1001 FORMAT (/' *** ERROR WMIOBG : NO DATA IN STAGING ARRAY ***'/ & 1790 ' CALL WMIOBS FIRST '/) 1791 1002 FORMAT (/' *** ERROR WMIOBG : INITIAL DATA NOT AT INITAL ', & 1792 'MODEL TIME ***'/) 1793 1003 FORMAT (/' *** ERROR WMIOBG : UNEXPECTED SIZE OF STAGING', & 1794 ' ARRAY ***') 1795 ! 1796 !/ 1797 !/ End of WMIOBG ----------------------------------------------------- / 1798 !/ 1799 END SUBROUTINE WMIOBG Page 20 Source Listing WMIOBG 2014-09-16 16:49 Entry Points wminiomd.f90 ENTRY POINTS Name wminiomd_mp_wmiobg_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1001 Label 713 1002 Label 715 649 1003 Label 717 478 ABPI0 Local 652 R(4) 4 2 1 PTR 652,655,683 ABPIN Local 655 R(4) 4 2 1 PTR 655,682 BCDUMP Local 695 L(4) 4 1 1 ALC 695 BPSTGE Local 469 RECORD 296 2 1 ALC,TGT 469,471,472,474,476,484,486,488,49 3,509,525,607,608,609,611,635,663, 664 CROOT Local 507 I(4) 4 scalar 507,532 DONE Dummy 292 L(4) 4 scalar ARG,OUT 419,424,429,439,575,707 DSEC21 Func 386 R(4) 4 scalar 386,438,497,639,647,676,677 DT1 Local 410 R(4) 4 scalar 676,678 DT2 Local 410 R(4) 4 scalar 677,678 DTTST Local 410 R(4) 4 scalar 495,497,502,639,640,647,648 EXTCDE Subr 389 389,479,650 FACHFE Local 615 R(4) 4 scalar 615 FLAGOK Local 413 L(4) 4 scalar 577,583,589 FR1 Local 613 R(4) 4 scalar 613 FR1 Local 614 R(4) 4 scalar PTR 614 I Local 404 I(4) 4 scalar 529,530,535,536 IAPROC Local 423 I(4) 4 scalar PTR 423,695 IERR_MPI Local 405 I(4) 4 scalar 512,539,578,582 IFROM Local 405 I(4) 4 scalar 507,510 IMOD Dummy 292 I(4) 4 scalar ARG,IN 421,428,433,434,435,455,457,458,45 9,460,465,469,470,471,472,474,476, 477,484,486,487,488,493,506,509,51 9,522,523,525,529,541,542,556,567, 569,570,590,596,602,605,606,607,60 8,609,611,615,623,634,635,662,663, 664,669,682,683,684,695,696 IMPROC Local 478 I(4) 4 scalar 478 INIT Local 469 L(4) 4 scalar 469,472,484,488 IOFF Local 404 I(4) 4 scalar 517,519,530,667,669,682,683 IRQ Local 408 I(4) 4 1 1 PTR 460,461,511,539,570,577,582 IRQBPG Local 459 I(4) 4 1 1 PTR 459,460,570,590 ISEA Local 406 I(4) 4 scalar 530,531,532 ISPROC Local 406 I(4) 4 scalar 532,537 IT0 Local 405 I(4) 4 scalar 522,535 ITAG Local 405 I(4) 4 scalar 506,510,535,538 ITEST Local 404 I(4) 4 scalar 696 J Local 404 I(4) 4 scalar 464,465,469,470,471,472,474,475,47 6,477,484,485,486,488,493,506,507, 509,516,519,523,525,527,528,529,53 Page 21 Source Listing WMIOBG 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 2,600,602,604,605,607,608,609,611, 612,613,615,633,634,635,660,662,66 3,664,666,669,682,683,684 JSEA Local 406 I(4) 4 scalar 531,533 MDATAS Local 457 RECORD 1360 1 1 ALC,TGT 457,459,460,507,532,569,570,590 MDSE Local 421 I(4) 4 scalar 421,433,434,435,478,615,649 MDST Local 421 I(4) 4 scalar 421,433,434,435,615 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 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 511 I(4) 4 scalar 511,538 MPI_COMM_NULL Param 239 I(4) 4 scalar Page 22 Source Listing WMIOBG 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 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 Page 23 Source Listing WMIOBG 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 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 510 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_IRECV Subr 509 509,536 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 Page 24 Source Listing WMIOBG 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 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 537 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 Page 25 Source Listing WMIOBG 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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,571 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_TESTALL Subr 577 577 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 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 582 582 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 MTAG0 Param 506 I(4) 4 scalar 506,522 NAPBPT Local 695 I(4) 4 scalar PTR 695 NAPROC Local 423 I(4) 4 scalar PTR 423,527,531,533,542 NAPROC Local 527 I(4) 4 scalar TGT 527,542 NBI Local 555 I(4) 4 scalar PTR 555 NBI2G Local 428 I(4) 4 2 1 ALC 428,458,465,477,486,519,522,523,52 9,602,605,609,615,634,662,669,682, 683,684 NBI2S Local 530 I(4) 4 2 1 PTR 530 NBISTA Local 455 I(4) 4 1 1 ALC 455,556,567,596,623 NDS Local 696 I(4) 4 1 1 PTR 696 NK Local 612 I(4) 4 scalar 612 NK Local 614 I(4) 4 scalar PTR 614 Page 26 Source Listing WMIOBG 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References NMPERR Local 478 I(4) 4 scalar 478,649 NMPROC Local 649 I(4) 4 scalar 649 NRGRD Local 458 I(4) 4 scalar 458,464,506,522,600,633,660 NRQ Local 408 I(4) 4 scalar PTR 457,458,459,462,508,511,534,539,56 9,571,577,582,591 NRQBPG Local 457 I(4) 4 scalar TGT 457,569 NSPEC Local 475 I(4) 4 scalar TGT 475,485,487,528,541,604,606 NSPEC Local 485 I(4) 4 scalar PTR 485,486,487,528,536,541,604,605,60 6,609 NTH Local 612 I(4) 4 scalar 612 NTH Local 614 I(4) 4 scalar PTR 614 OUTPTS Local 527 RECORD 5960 1 1 ALC,TGT 527,542 PMPI_WTICK Func 520 R(8) 8 scalar PMPI_WTIME Func 520 R(8) 8 scalar PRESENT Func 419 scalar 419,424,429,439,575,707 RESPEC Local 470 L(4) 4 2 1 ALC 470,602 SBPI Local 411 R(4) 4 2 1 PTR 525,536,611,614,664,684 SBPI Local 471 R(4) 4 2 1 PTR 471,474,476,486,525,607,608,609,61 1,664 SGRDS Local 475 RECORD 1080 1 1 ALC,TGT 475,485,487,528,541,604,606,612,61 3,615 SIZE Func 474 scalar 474,476 STATUS Local 409 I(4) 4 2 1 ALC 571,577,582,590 SUM Func 428 scalar 428,458,519,522,523,669 TBPI0 Local 654 I(4) 4 1 1 PTR 654,676,677 TBPIN Local 437 I(4) 4 1 1 PTR 437,438,646,654,672,690,696 TH Local 613 R(4) 4 1 1 PTR 613 TH Local 614 R(4) 4 1 1 PTR 614 TIME Local 438 I(4) 4 1 1 PTR 438,497,647 TSTORE Local 412 R(4) 4 2 1 ALC 605,607,612,617 TTEST Local 404 I(4) 4 1 2 632,636,637,639,640,647,677,690 VTIME Local 407 I(4) 4 1 1 PTR 493,494,497,635,637,639,640,663,67 6 VTIME Local 493 I(4) 4 1 2 493,509,635,663 W1 Local 410 R(4) 4 scalar 673,679,683 W2 Local 410 R(4) 4 scalar 674,678,679,684 W3ADATMD Module 381 381 W3CSPC Subr 385 385,612 W3CSPCMD Module 385 385 W3GDATMD Module 379 379 W3IOBC Subr 388 388,696 W3IOBCMD Module 388 388 W3ODATMD Module 382 382 W3SERVMD Module 389 389 W3SETA Subr 435 435 W3SETG Subr 433 433 W3SETO Subr 421 421 W3SETW Subr 434 434 W3TIMEMD Module 386 386 W3UBPT Subr 387 387,702 W3UPDTMD Module 387 387 W3WDATMD Module 380 380 WMIOBG Subr 292 WMMDATMD Module 383 383 XFR Local 613 R(4) 4 scalar 613 Page 27 Source Listing WMIOBG 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References XFR Local 614 R(4) 4 scalar PTR 614 Page 28 Source Listing WMIOBG 2014-09-16 16:49 wminiomd.f90 1800 !/ ------------------------------------------------------------------- / 1801 SUBROUTINE WMIOBF ( IMOD ) 1802 !/ 1803 !/ +-----------------------------------+ 1804 !/ | WAVEWATCH III NOAA/NCEP | 1805 !/ | H. L. Tolman | 1806 !/ | FORTRAN 90 | 1807 !/ | Last update : 29-May-2006 ! 1808 !/ +-----------------------------------+ 1809 !/ 1810 !/ 18-Oct-2005 : Origination. ( version 3.08 ) 1811 !/ 29-May-2006 : Adding buffering for MPI. ( version 3.09 ) 1812 !/ 1813 ! 1. Purpose : 1814 ! 1815 ! Finalize staging of internal boundary data in the data 1816 ! structure BPSTGE (MPI only). 1817 ! 1818 ! 2. Method : 1819 ! 1820 ! Post appropriate 'wait' functions to assure that the 1821 ! communication has finished. 1822 ! 1823 ! 3. Parameters : 1824 ! 1825 ! Parameter list 1826 ! ---------------------------------------------------------------- 1827 ! IMOD Int. I Model number of grid from which data has 1828 ! been staged. 1829 ! ---------------------------------------------------------------- 1830 ! 1831 ! 4. Subroutines used : 1832 ! 1833 ! Name Type Module Description 1834 ! ---------------------------------------------------------------- 1835 ! STRACE Subr. W3SERVMD Subroutine tracing. 1836 ! 1837 ! MPI_WAITALL 1838 ! Subr. mpif.h MPI routines. 1839 ! ---------------------------------------------------------------- 1840 ! 1841 ! 5. Called by : 1842 ! 1843 ! Name Type Module Description 1844 ! ---------------------------------------------------------------- 1845 ! WMINIT Subr WMINITMD Multi-grid model initialization. 1846 ! WMWAVE Subr WMWAVEMD Multi-grid wave model. 1847 ! ---------------------------------------------------------------- 1848 ! 1849 ! 6. Error messages : 1850 ! 1851 ! 7. Remarks : 1852 ! 1853 ! 8. Structure : 1854 ! 1855 ! See source code. 1856 ! Page 29 Source Listing WMIOBF 2014-09-16 16:49 wminiomd.f90 1857 ! 9. Switches : 1858 ! 1859 ! !/SHRD Shared/distributed memory models. 1860 ! !/DIST 1861 ! !/MPI 1862 ! 1863 ! !/S Enable subroutine tracing. 1864 ! !/T Test output. 1865 ! 1866 ! 10. Source code : 1867 ! 1868 !/ ------------------------------------------------------------------- / 1869 ! 1870 USE WMMDATMD 1871 ! 1872 IMPLICIT NONE 1873 ! 1874 INCLUDE "mpif.h" 1875 !/ 1876 !/ ------------------------------------------------------------------- / 1877 !/ Parameter list 1878 !/ 2417 INTEGER, INTENT(IN) :: IMOD 2418 !/ 2419 !/ ------------------------------------------------------------------- / 2420 !/ Local parameters 2421 !/ 2422 INTEGER :: J 2423 INTEGER :: IERR_MPI 2424 INTEGER, POINTER :: NRQ, IRQ(:) 2425 INTEGER, ALLOCATABLE :: STATUS(:,:) 2426 !/ 2427 ! 2428 ! -------------------------------------------------------------------- / 2429 ! 0. Initializations 2430 ! 2431 ! -------------------------------------------------------------------- / 2432 ! 1. Loop over grids 2433 ! 2434 DO J=1, NRGRD 2435 ! 2436 NRQ => BPSTGE(J,IMOD)%NRQBPS 2437 ! 2438 ! 1.a Nothing to finalize 2439 ! 2440 IF ( NRQ .EQ. 0 ) CYCLE 2441 IRQ => BPSTGE(J,IMOD)%IRQBPS 2442 ! 2443 ! 1.b Wait for communication to end 2444 ! 2445 ALLOCATE ( STATUS(MPI_STATUS_SIZE,NRQ) ) 2446 CALL MPI_WAITALL ( NRQ, IRQ, STATUS, IERR_MPI ) 2447 DEALLOCATE ( STATUS ) 2448 ! 2449 ! 1.c Reset arrays and counter 2450 ! 2451 NRQ = 0 Page 30 Source Listing WMIOBF 2014-09-16 16:49 wminiomd.f90 2452 DEALLOCATE ( BPSTGE(J,IMOD)%IRQBPS , & 2453 BPSTGE(J,IMOD)%TSTORE ) 2454 ! 2455 END DO 2456 ! 2457 RETURN 2458 ! 2459 ! Formats 2460 ! 2461 !/ 2462 !/ End of WMIOBF ----------------------------------------------------- / 2463 !/ 2464 END SUBROUTINE WMIOBF ENTRY POINTS Name wminiomd_mp_wmiobf_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References BPSTGE Local 822 RECORD 296 2 1 ALC,TGT 822,827,838,839 IERR_MPI Local 809 I(4) 4 scalar 832 IMOD Dummy 725 I(4) 4 scalar ARG,IN 822,827,838,839 IRQ Local 810 I(4) 4 1 1 PTR 827,832 IRQBPS Local 827 I(4) 4 1 1 PTR 827,838 J Local 808 I(4) 4 scalar 820,822,827,838,839 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 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 Page 31 Source Listing WMIOBF 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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_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 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 Page 32 Source Listing WMIOBF 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 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 Page 33 Source Listing WMIOBF 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 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 Page 34 Source Listing WMIOBF 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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_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,831 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 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 832 832 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 Page 35 Source Listing WMIOBF 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 NRGRD Local 820 I(4) 4 scalar 820 NRQ Local 810 I(4) 4 scalar PTR 822,826,831,832,837 NRQBPS Local 822 I(4) 4 scalar TGT 822 PMPI_WTICK Func 520 R(8) 8 scalar PMPI_WTIME Func 520 R(8) 8 scalar STATUS Local 811 I(4) 4 2 1 ALC 831,832,833 TSTORE Local 839 R(4) 4 2 1 PTR 839 WMIOBF Subr 725 WMMDATMD Module 794 794 Page 36 Source Listing WMIOBF 2014-09-16 16:49 wminiomd.f90 2465 !/ ------------------------------------------------------------------- / 2466 SUBROUTINE WMIOHS ( IMOD ) 2467 !/ 2468 !/ +-----------------------------------+ 2469 !/ | WAVEWATCH III NOAA/NCEP | 2470 !/ | H. L. Tolman | 2471 !/ | FORTRAN 90 | 2472 !/ | Last update : 20-Dec-2006 ! 2473 !/ +-----------------------------------+ 2474 !/ 2475 !/ 27-Jan-2006 : Origination. ( version 3.08 ) 2476 !/ 20-Dec-2006 : Remove VTIME from MPI comm. ( version 3.10 ) 2477 !/ 2478 ! 1. Purpose : 2479 ! 2480 ! Stage internal hight-to-low data in the data structure HGSTGE. 2481 ! 2482 ! 2. Method : 2483 ! 2484 ! Directly fill staging arrays in shared memory version, or post 2485 ! the corresponding sends in distributed memory version. 2486 ! 2487 ! 3. Parameters : 2488 ! 2489 ! Parameter list 2490 ! ---------------------------------------------------------------- 2491 ! IMOD Int. I Model number of grid from which data is to 2492 ! be staged. 2493 ! ---------------------------------------------------------------- 2494 ! 2495 ! 4. Subroutines used : 2496 ! 2497 ! Name Type Module Description 2498 ! ---------------------------------------------------------------- 2499 ! W3SETG, W3SETW, W3SETA, W3SETO, WMSETM 2500 ! Subr. WxxDATMD Manage data structures. 2501 ! STRACE Subr. W3SERVMD Subroutine tracing. 2502 ! DSEC21 Func. W3TIMEMD Difference between times. 2503 ! ---------------------------------------------------------------- 2504 ! 2505 ! 5. Called by : 2506 ! 2507 ! Name Type Module Description 2508 ! ---------------------------------------------------------------- 2509 ! WMWAVE Subr WMWAVEMD Multi-grid wave model. 2510 ! ---------------------------------------------------------------- 2511 ! 2512 ! 6. Error messages : 2513 ! 2514 ! 7. Remarks : 2515 ! 2516 ! 8. Structure : 2517 ! 2518 ! See source code. 2519 ! 2520 ! 9. Switches : 2521 ! Page 37 Source Listing WMIOHS 2014-09-16 16:49 wminiomd.f90 2522 ! !/SHRD Shared/distributed memory models. 2523 ! !/DIST 2524 ! !/MPI 2525 ! 2526 ! !/S Enable subroutine tracing. 2527 ! !/T Enable test output 2528 ! !/MPIT 2529 ! 2530 ! 10. Source code : 2531 ! 2532 !/ ------------------------------------------------------------------- / 2533 ! 2534 USE W3GDATMD 2535 USE W3WDATMD 2536 USE W3ADATMD 2537 USE W3ODATMD 2538 USE WMMDATMD 2539 ! 2540 USE W3TIMEMD, ONLY: DSEC21 2541 ! 2542 IMPLICIT NONE 2543 ! 2544 INCLUDE "mpif.h" 2545 !/ 2546 !/ ------------------------------------------------------------------- / 2547 !/ Parameter list 2548 !/ 3087 INTEGER, INTENT(IN) :: IMOD 3088 !/ 3089 !/ ------------------------------------------------------------------- / 3090 !/ Local parameters 3091 !/ 3092 INTEGER :: J, NR, I, JSEA, ISEA, IS 3093 INTEGER :: ITAG, IP, IT0, IERR_MPI 3094 INTEGER :: I1, I2 3095 INTEGER, POINTER :: NRQ, IRQ(:), NRQOUT, OUTDAT(:,:) 3096 REAL :: DTOUTP 3097 REAL, POINTER :: SHGH(:,:) 3098 !/ 3099 ! 3100 ! -------------------------------------------------------------------- / 3101 ! 0. Initializations 3102 ! 3103 IF ( .NOT. FLGHG1 ) THEN 3104 IF ( SUM(HGSTGE(:,IMOD)%NSND) .EQ. 0 ) RETURN 3105 ELSE 3106 IF ( SUM(HGSTGE(:,IMOD)%NSN1) .EQ. 0 ) RETURN 3107 END IF 3108 ! 3109 CALL W3SETO ( IMOD, MDSE, MDST ) 3110 CALL W3SETG ( IMOD, MDSE, MDST ) 3111 CALL W3SETW ( IMOD, MDSE, MDST ) 3112 CALL W3SETA ( IMOD, MDSE, MDST ) 3113 ! 3114 ! -------------------------------------------------------------------- / 3115 ! 1. Loop over grids 3116 ! Page 38 Source Listing WMIOHS 2014-09-16 16:49 wminiomd.f90 3117 DO J=1, NRGRD 3118 ! 3119 IF ( J .EQ. IMOD ) CYCLE 3120 ! 3121 IF ( .NOT. FLGHG1 ) THEN 3122 NR = HGSTGE(J,IMOD)%NSND 3123 ELSE IF ( FLGHG2 ) THEN 3124 NR = HGSTGE(J,IMOD)%NSN1 3125 ELSE 3126 IF ( TOUTP(1,J) .EQ. -1 ) THEN 3127 DTOUTP = 1. 3128 ELSE 3129 DTOUTP = DSEC21(TIME,TOUTP(:,J)) 3130 END IF 3131 IF ( DTOUTP .EQ. 0. ) THEN 3132 NR = HGSTGE(J,IMOD)%NSND 3133 ELSE 3134 NR = HGSTGE(J,IMOD)%NSN1 3135 END IF 3136 END IF 3137 ! 3138 IF ( NR .EQ. 0 ) CYCLE 3139 IF ( DSEC21(TIME,TSYNC(:,J)) .NE. 0. ) CYCLE 3140 ! 3141 ! -------------------------------------------------------------------- / 3142 ! 2. Allocate arrays and/or point pointers 3143 ! 3144 ALLOCATE ( HGSTGE(J,IMOD)%TSTORE(NSPEC,NR) ) 3145 SHGH => HGSTGE(J,IMOD)%TSTORE 3146 ! 3147 ALLOCATE ( HGSTGE(J,IMOD)%IRQHGS(NR) ) 3148 ALLOCATE ( HGSTGE(J,IMOD)%OUTDAT(NR,3) ) 3149 ! 3150 NRQ => HGSTGE(J,IMOD)%NRQHGS 3151 NRQOUT => HGSTGE(J,IMOD)%NRQOUT 3152 IRQ => HGSTGE(J,IMOD)%IRQHGS 3153 OUTDAT => HGSTGE(J,IMOD)%OUTDAT 3154 NRQ = 0 3155 NRQOUT = 0 3156 IRQ = 0 3157 ! 3158 ! -------------------------------------------------------------------- / 3159 ! 3. Set the time 3160 ! !/SHRD only. 3161 ! 3162 ! -------------------------------------------------------------------- / 3163 ! 4. Stage the spectral data 3164 ! 3165 IT0 = MTAG1 + 1 3166 ! 3167 DO I=1, NR 3168 ! 3169 JSEA = HGSTGE(J,IMOD)%ISEND(I,1) 3170 ISEA = IAPROC + NAPROC*(JSEA-1) 3171 IP = HGSTGE(J,IMOD)%ISEND(I,2) 3172 I1 = HGSTGE(J,IMOD)%ISEND(I,3) 3173 I2 = HGSTGE(J,IMOD)%ISEND(I,4) Page 39 Source Listing WMIOHS 2014-09-16 16:49 wminiomd.f90 3174 ITAG = HGSTGE(J,IMOD)%ISEND(I,5) + IT0 3175 ! 3176 DO IS=1, NSPEC 3177 SHGH( IS,I ) = VA(IS,JSEA) * SIG2(IS) & 3178 / CG(1+(IS-1)/NTH,ISEA) 3179 END DO 3180 ! 3181 IF ( IP .NE. IMPROC ) THEN 3182 NRQ = NRQ + 1 3183 CALL MPI_ISEND ( SHGH(1,I), NSPEC, MPI_REAL, IP-1, & 3184 ITAG, MPI_COMM_MWAVE, IRQ(NRQ), IERR_MPI ) 3185 ELSE 3186 NRQOUT = NRQOUT + 1 3187 OUTDAT(NRQOUT,1) = I 3188 OUTDAT(NRQOUT,2) = I2 3189 OUTDAT(NRQOUT,3) = I1 3190 END IF 3191 ! 3192 END DO 3193 ! 3194 END DO 3195 ! 3196 RETURN 3197 ! 3198 ! Formats 3199 ! 3200 !/ 3201 !/ End of WMIOHS ----------------------------------------------------- / 3202 !/ 3203 END SUBROUTINE WMIOHS Page 40 Source Listing WMIOHS 2014-09-16 16:49 Entry Points wminiomd.f90 ENTRY POINTS Name wminiomd_mp_wmiohs_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References CG Local 1026 R(4) 4 2 1 PTR 1026 DSEC21 Func 926 R(4) 4 scalar 926,977,987 DTOUTP Local 944 R(4) 4 scalar 975,977,979 FLGHG1 Local 951 L(4) 4 scalar 951,969 FLGHG2 Local 971 L(4) 4 scalar 971 HGSTGE Local 952 RECORD 968 2 1 ALC,TGT 952,954,970,972,980,982,992,993,99 5,996,998,999,1000,1001,1017,1019, 1020,1021,1022 I Local 940 I(4) 4 scalar 1015,1017,1019,1020,1021,1022,1025 ,1031,1035 I1 Local 942 I(4) 4 scalar 1020,1037 I2 Local 942 I(4) 4 scalar 1021,1036 IAPROC Local 1018 I(4) 4 scalar PTR 1018 IERR_MPI Local 941 I(4) 4 scalar 1032 IMOD Dummy 852 I(4) 4 scalar ARG,IN 952,954,957,958,959,960,967,970,97 2,980,982,992,993,995,996,998,999, 1000,1001,1017,1019,1020,1021,1022 IMPROC Local 1029 I(4) 4 scalar 1029 IP Local 941 I(4) 4 scalar 1019,1029,1031 IRQ Local 943 I(4) 4 1 1 PTR 1000,1004,1032 IRQHGS Local 995 I(4) 4 1 1 PTR 995,1000 IS Local 940 I(4) 4 scalar 1024,1025,1026 ISEA Local 940 I(4) 4 scalar 1018,1026 ISEND Local 1017 I(4) 4 2 1 PTR 1017,1019,1020,1021,1022 IT0 Local 941 I(4) 4 scalar 1013,1022 ITAG Local 941 I(4) 4 scalar 1022,1032 J Local 940 I(4) 4 scalar 965,967,970,972,974,977,980,982,98 7,992,993,995,996,998,999,1000,100 1,1017,1019,1020,1021,1022 JSEA Local 940 I(4) 4 scalar 1017,1018,1025 MDSE Local 957 I(4) 4 scalar 957,958,959,960 MDST Local 957 I(4) 4 scalar 957,958,959,960 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 Page 41 Source Listing WMIOHS 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 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 1032 I(4) 4 scalar 1032 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 Page 42 Source Listing WMIOHS 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 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 Page 43 Source Listing WMIOHS 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 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_ISEND Subr 1031 1031 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 Page 44 Source Listing WMIOHS 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 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 1031 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_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 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 Page 45 Source Listing WMIOHS 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 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 MTAG1 Param 1013 I(4) 4 scalar 1013 NAPROC Local 1018 I(4) 4 scalar PTR 1018 NR Local 940 I(4) 4 scalar 970,972,980,982,986,992,995,996,10 15 NRGRD Local 965 I(4) 4 scalar 965 NRQ Local 943 I(4) 4 scalar PTR 998,1002,1030,1032 NRQHGS Local 998 I(4) 4 scalar TGT 998 NRQOUT Local 943 I(4) 4 scalar PTR 999,1003,1034,1035,1036,1037 NRQOUT Local 999 I(4) 4 scalar TGT 999 NSN1 Local 954 I(4) 4 scalar 954,972,982 NSND Local 952 I(4) 4 scalar 952,970,980 NSPEC Local 992 I(4) 4 scalar PTR 992,1024,1031 NTH Local 1026 I(4) 4 scalar PTR 1026 OUTDAT Local 943 I(4) 4 2 1 PTR 1001,1035,1036,1037 OUTDAT Local 996 I(4) 4 2 1 PTR 996,1001 PMPI_WTICK Func 520 R(8) 8 scalar PMPI_WTIME Func 520 R(8) 8 scalar SHGH Local 945 R(4) 4 2 1 PTR 993,1025,1031 SIG2 Local 1025 R(4) 4 1 1 PTR 1025 SUM Func 952 scalar 952,954 TIME Local 977 I(4) 4 1 1 PTR 977,987 TOUTP Local 974 I(4) 4 2 1 ALC 974,977 TSTORE Local 992 R(4) 4 2 1 PTR 992,993 TSYNC Local 987 I(4) 4 2 1 ALC 987 VA Local 1025 R(4) 4 2 1 PTR 1025 W3ADATMD Module 922 922 W3GDATMD Module 920 920 W3ODATMD Module 923 923 W3SETA Subr 960 960 W3SETG Subr 958 958 W3SETO Subr 957 957 W3SETW Subr 959 959 W3TIMEMD Module 926 926 W3WDATMD Module 921 921 Page 46 Source Listing WMIOHS 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References WMIOHS Subr 852 WMMDATMD Module 924 924 Page 47 Source Listing WMIOHS 2014-09-16 16:49 wminiomd.f90 3204 !/ ------------------------------------------------------------------- / 3205 SUBROUTINE WMIOHG ( IMOD, DONE ) 3206 !/ 3207 !/ +-----------------------------------+ 3208 !/ | WAVEWATCH III NOAA/NCEP | 3209 !/ | H. L. Tolman | 3210 !/ | FORTRAN 90 | 3211 !/ | Last update : 20-Dec-2006 ! 3212 !/ +-----------------------------------+ 3213 !/ 3214 !/ 27-Jan-2006 : Origination. ( version 3.08 ) 3215 !/ 20-Dec-2006 : Remove VTIME from MPI comm. ( version 3.10 ) 3216 !/ 3217 ! 1. Purpose : 3218 ! 3219 ! Gather internal high-to-low data for a given model. 3220 ! 3221 ! 2. Method : 3222 ! 3223 ! For distributed memory version first receive all staged data. 3224 ! After staged data is present, average, convert as necessary, 3225 ! and store in basic spatral arrays. 3226 ! 3227 ! 2. Method : 3228 ! 3229 ! Using storage array HGSTAGE and time stamps. 3230 ! 3231 ! 3. Parameters : 3232 ! 3233 ! Parameter list 3234 ! ---------------------------------------------------------------- 3235 ! IMOD Int. I Model number of grid from which data is to 3236 ! be gathered. 3237 ! DONE Log. O Flag for completion of operation (opt). 3238 ! ---------------------------------------------------------------- 3239 ! 3240 ! 4. Subroutines used : 3241 ! 3242 ! Name Type Module Description 3243 ! ---------------------------------------------------------------- 3244 ! W3SETG, W3SETW, W3SETA, W3SETO 3245 ! Subr. WxxDATMD Manage data structures. 3246 ! W3CSPC Subr. W3CSPCMD Spectral grid conversion. 3247 ! STRACE Sur. W3SERVMD Subroutine tracing. 3248 ! DSEC21 Func. W3TIMEMD Difference between times. 3249 ! ---------------------------------------------------------------- 3250 ! 3251 ! 5. Called by : 3252 ! 3253 ! Name Type Module Description 3254 ! ---------------------------------------------------------------- 3255 ! WMWAVE Subr WMWAVEMD Multi-grid wave model. 3256 ! ---------------------------------------------------------------- 3257 ! 3258 ! 6. Error messages : 3259 ! 3260 ! See FORMAT labels 1001-1002. Page 48 Source Listing WMIOHG 2014-09-16 16:49 wminiomd.f90 3261 ! 3262 ! 7. Remarks : 3263 ! 3264 ! 8. Structure : 3265 ! 3266 ! 9. Switches : 3267 ! 3268 ! !/SHRD Shared/distributed memory models. 3269 ! !/DIST 3270 ! !/MPI 3271 ! 3272 ! !/S Enable subroutine tracing. 3273 ! !/T Enable test output 3274 ! !/MPIT 3275 ! 3276 ! 10. Source code : 3277 ! 3278 !/ ------------------------------------------------------------------- / 3279 ! 3280 USE W3GDATMD 3281 USE W3WDATMD 3282 USE W3ADATMD 3283 USE W3ODATMD 3284 USE WMMDATMD 3285 ! 3286 USE W3CSPCMD, ONLY: W3CSPC 3287 USE W3TIMEMD, ONLY: DSEC21 3288 ! USE W3SERVMD, ONLY: EXTCDE 3289 ! 3290 IMPLICIT NONE 3291 ! 3292 INCLUDE "mpif.h" 3293 !/ 3294 !/ ------------------------------------------------------------------- / 3295 !/ Parameter list 3296 !/ 3835 INTEGER, INTENT(IN) :: IMOD 3836 LOGICAL, INTENT(OUT), OPTIONAL :: DONE 3837 !/ 3838 !/ ------------------------------------------------------------------- / 3839 !/ Local parameters 3840 !/ 3841 INTEGER :: NTOT, J, IS, NA, IA, JSEA, ISEA, I 3842 INTEGER :: ITAG, IT0, IFROM, ILOC, NLOC, & 3843 ISPROC, IERR_MPI, ICOUNT, & 3844 I0, I1, I2 3845 INTEGER, POINTER :: VTIME(:) 3846 INTEGER, POINTER :: NRQ, IRQ(:), STATUS(:,:) 3847 REAL :: DTTST, WGTH 3848 REAL, POINTER :: SPEC1(:,:), SPEC2(:,:), SPEC(:,:) 3849 REAL, POINTER :: SHGH(:,:,:) 3850 LOGICAL :: FLGALL 3851 LOGICAL :: FLAGOK 3852 !/ 3853 ! 3854 ! -------------------------------------------------------------------- / 3855 ! 0. Initializations Page 49 Source Listing WMIOHG 2014-09-16 16:49 wminiomd.f90 3856 ! 3857 IF ( TOUTP(1,IMOD) .EQ. -1 ) THEN 3858 DTTST = 1. 3859 ELSE 3860 DTTST = DSEC21 ( WDATAS(IMOD)%TIME , TOUTP(:,IMOD) ) 3861 END IF 3862 ! 3863 IF ( .NOT. FLGHG1 ) THEN 3864 FLGALL = .TRUE. 3865 ELSE IF ( FLGHG2 ) THEN 3866 FLGALL = .FALSE. 3867 ELSE IF ( DTTST .EQ. 0. ) THEN 3868 FLGALL = .TRUE. 3869 ELSE 3870 FLGALL = .FALSE. 3871 END IF 3872 ! 3873 IF ( FLGALL ) THEN 3874 NTOT = SUM(HGSTGE(IMOD,:)%NREC) 3875 ELSE 3876 NTOT = SUM(HGSTGE(IMOD,:)%NRC1) 3877 END IF 3878 ! 3879 IF ( PRESENT(DONE) ) DONE = .FALSE. 3880 ! 3881 IF ( NTOT .EQ. 0 ) THEN 3882 IF ( PRESENT(DONE) ) DONE = .TRUE. 3883 RETURN 3884 END IF 3885 ! 3886 CALL W3SETO ( IMOD, MDSE, MDST ) 3887 CALL W3SETG ( IMOD, MDSE, MDST ) 3888 CALL W3SETW ( IMOD, MDSE, MDST ) 3889 CALL W3SETA ( IMOD, MDSE, MDST ) 3890 ! 3891 ! -------------------------------------------------------------------- / 3892 ! 1. Testing / gathering data in staging arrays 3893 ! 3894 ! 1.a Shared memory version, test valid times. - - - - - - - - - - - - / 3895 ! 3896 ! 1.b Distributed memory version - - - - - - - - - - - - - - - - - - - / 3897 ! 3898 ! 1.b.1 HGHSTA = 0 3899 ! Check if staging arrays are initialized. 3900 ! Post the proper receives. 3901 ! 3902 IF ( HGHSTA(IMOD) .EQ. 0 ) THEN 3903 ! 3904 NRQ => MDATAS(IMOD)%NRQHGG 3905 NRQ = 0 3906 DO J=1, NRGRD 3907 IF ( FLGALL ) THEN 3908 NRQ = NRQ + HGSTGE(IMOD,J)%NREC * & 3909 HGSTGE(IMOD,J)%NSMX 3910 ELSE 3911 NRQ = NRQ + HGSTGE(IMOD,J)%NRC1 * & 3912 HGSTGE(IMOD,J)%NSMX Page 50 Source Listing WMIOHG 2014-09-16 16:49 wminiomd.f90 3913 END IF 3914 END DO 3915 NRQ = MAX(1,NRQ) 3916 ALLOCATE ( IRQ(NRQ) ) 3917 IRQ = 0 3918 NRQ = 0 3919 ! 3920 DO J=1, NRGRD 3921 IF ( HGSTGE(IMOD,J)%NTOT .EQ. 0 ) CYCLE 3922 ! 3923 ! ..... Check valid time to determine staging. 3924 ! 3925 VTIME => HGSTGE(IMOD,J)%VTIME 3926 IF ( VTIME(1) .EQ. -1 ) THEN 3927 DTTST = 1. 3928 ELSE 3929 DTTST = DSEC21 ( TIME, VTIME ) 3930 END IF 3931 ! 3932 ! ..... Post receives for data gather 3933 ! 3934 IF ( DTTST .NE. 0. ) THEN 3935 ! 3936 ! ..... Spectra 3937 ! 3938 IT0 = MTAG1 + 1 3939 SHGH => HGSTGE(IMOD,J)%SHGH 3940 ! 3941 IF ( FLGALL ) THEN 3942 NTOT = HGSTGE(IMOD,J)%NREC 3943 ELSE 3944 NTOT = HGSTGE(IMOD,J)%NRC1 3945 END IF 3946 ! 3947 DO I=1, NTOT 3948 NLOC = HGSTGE(IMOD,J)%NRAVG(I) 3949 DO ILOC=1, NLOC 3950 ISPROC = HGSTGE(IMOD,J)%IMPSRC(I,ILOC) 3951 ITAG = HGSTGE(IMOD,J)%ITAG(I,ILOC) + IT0 3952 IF ( ISPROC .NE. IMPROC ) THEN 3953 NRQ = NRQ + 1 3954 CALL MPI_IRECV ( SHGH(1,ILOC,I), & 3955 SGRDS(J)%NSPEC, MPI_REAL, & 3956 ISPROC-1, ITAG, MPI_COMM_MWAVE, & 3957 IRQ(NRQ), IERR_MPI ) 3958 END IF 3959 END DO 3960 END DO 3961 ! 3962 ! ..... End IF for posting receives 1.b.1 3963 ! 3964 END IF 3965 ! 3966 ! ..... End grid loop J in 1.b.1 3967 ! 3968 END DO 3969 ! Page 51 Source Listing WMIOHG 2014-09-16 16:49 wminiomd.f90 3970 ALLOCATE ( MDATAS(IMOD)%IRQHGG(NRQ) ) 3971 MDATAS(IMOD)%IRQHGG = IRQ(1:NRQ) 3972 DEALLOCATE ( IRQ ) 3973 ! 3974 ! ..... Reset status 3975 ! 3976 IF ( NRQ .GT. 0 ) THEN 3977 HGHSTA(IMOD) = 1 3978 END IF 3979 ! 3980 ! ..... End IF in 1.b.1 3981 ! 3982 END IF 3983 ! 3984 ! 1.b.2 HGHSTA = 1 3985 ! Wait for communication to finish. 3986 ! If DONE defined, check if done, otherwise wait. 3987 ! 3988 IF ( HGHSTA(IMOD) .EQ. 1 ) THEN 3989 ! 3990 NRQ => MDATAS(IMOD)%NRQHGG 3991 IRQ => MDATAS(IMOD)%IRQHGG 3992 ALLOCATE ( STATUS(MPI_STATUS_SIZE,NRQ) ) 3993 ! 3994 ! ..... Test communication if DONE is present, wait otherwise 3995 ! 3996 IF ( PRESENT(DONE) ) THEN 3997 ! 3998 CALL MPI_TESTALL ( NRQ, IRQ, FLAGOK, STATUS, & 3999 IERR_MPI ) 4000 ! 4001 ELSE 4002 ! 4003 CALL MPI_WAITALL ( NRQ, IRQ, STATUS, IERR_MPI ) 4004 FLAGOK = .TRUE. 4005 ! 4006 END IF 4007 ! 4008 DEALLOCATE ( STATUS ) 4009 ! 4010 ! ..... Go on based on FLAGOK 4011 ! 4012 IF ( FLAGOK ) THEN 4013 NRQ = 0 4014 DEALLOCATE ( MDATAS(IMOD)%IRQHGG ) 4015 ELSE 4016 RETURN 4017 END IF 4018 ! 4019 HGHSTA(IMOD) = 0 4020 ! 4021 END IF 4022 ! 4023 ! ..... process locally stored data 4024 ! 4025 DO J=1, NRGRD 4026 HGSTGE(IMOD,J)%VTIME = TIME Page 52 Source Listing WMIOHG 2014-09-16 16:49 wminiomd.f90 4027 IF ( J .EQ. IMOD ) CYCLE 4028 DO IS=1, HGSTGE(IMOD,J)%NRQOUT 4029 I0 = HGSTGE(IMOD,J)%OUTDAT(IS,1) 4030 I2 = HGSTGE(IMOD,J)%OUTDAT(IS,2) 4031 I1 = HGSTGE(IMOD,J)%OUTDAT(IS,3) 4032 HGSTGE(IMOD,J)%SHGH(:,I2,I1) = HGSTGE(IMOD,J)%TSTORE(:,I0) 4033 END DO 4034 END DO 4035 ! 4036 ! -------------------------------------------------------------------- / 4037 ! 2. Data available, process grid by grid 4038 ! 4039 ! 2.a Loop over grids 4040 ! 4041 DO J=1, NRGRD 4042 ! 4043 IF ( FLGALL ) THEN 4044 NTOT = HGSTGE(IMOD,J)%NREC 4045 ELSE 4046 NTOT = HGSTGE(IMOD,J)%NRC1 4047 END IF 4048 IF ( NTOT .EQ. 0 ) CYCLE 4049 ! 4050 ! 2.b Set up temp data structures 4051 ! 4052 IF ( RESPEC(IMOD,J) ) THEN 4053 ALLOCATE ( SPEC1(SGRDS(J)%NSPEC,NTOT), SPEC2(NSPEC,NTOT) ) 4054 SPEC => SPEC1 4055 ELSE 4056 ALLOCATE ( SPEC2(NSPEC,NTOT) ) 4057 SPEC => SPEC2 4058 END IF 4059 ! 4060 ! 2.c Average spectra to temp storage 4061 ! 4062 DO IS=1, NTOT 4063 NA = HGSTGE(IMOD,J)%NRAVG(IS) 4064 WGTH = HGSTGE(IMOD,J)%WGTH(IS,1) 4065 SPEC(:,IS) = WGTH * HGSTGE(IMOD,J)%SHGH(:,1,IS) 4066 DO IA=2, NA 4067 WGTH = HGSTGE(IMOD,J)%WGTH(IS,IA) 4068 SPEC(:,IS) = SPEC(:,IS) + WGTH*HGSTGE(IMOD,J)%SHGH(:,IA,IS) 4069 END DO 4070 END DO 4071 ! 4072 ! 2.d Convert spectral grid as needed 4073 ! 4074 IF ( RESPEC(IMOD,J) ) THEN 4075 ! 4076 CALL W3CSPC ( SPEC1, SGRDS(J)%NK, SGRDS(J)%NTH, & 4077 SGRDS(J)%XFR, SGRDS(J)%FR1, SGRDS(J)%TH(1), & 4078 SPEC2 , NK, NTH, XFR, FR1, TH(1), & 4079 NTOT, MDST, MDSE, FACHFE) 4080 DEALLOCATE ( SPEC1 ) 4081 ! 4082 END IF 4083 ! Page 53 Source Listing WMIOHG 2014-09-16 16:49 wminiomd.f90 4084 ! 2.e Move spectra to model 4085 ! 4086 DO IS=1, NTOT 4087 JSEA = HGSTGE(IMOD,J)%LJSEA(IS) 4088 ISEA = IAPROC + NAPROC*(JSEA-1) 4089 DO I=1, NSPEC 4090 VA(I,JSEA) = SPEC2(I,IS) / SIG2(I) * CG(1+(I-1)/NTH,ISEA) 4091 END DO 4092 END DO 4093 ! 4094 DEALLOCATE ( SPEC2 ) 4095 ! 4096 END DO 4097 ! 4098 ! -------------------------------------------------------------------- / 4099 ! 3. Set flag if reqeusted 4100 ! 4101 IF ( PRESENT(DONE) ) DONE = .TRUE. 4102 ! 4103 RETURN 4104 ! 4105 ! Formats 4106 ! 4107 !/ 4108 !/ End of WMIOHG ----------------------------------------------------- / 4109 !/ 4110 END SUBROUTINE WMIOHG ENTRY POINTS Name wminiomd_mp_wmiohg_ Page 54 Source Listing WMIOHG 2014-09-16 16:49 Symbol Table wminiomd.f90 SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References CG Local 1400 R(4) 4 2 1 PTR 1400 DONE Dummy 1053 L(4) 4 scalar ARG,OUT 1189,1192,1306,1411 DSEC21 Func 1135 R(4) 4 scalar 1135,1170,1239 DTTST Local 1157 R(4) 4 scalar 1168,1170,1177,1237,1239,1244 FACHFE Local 1389 R(4) 4 scalar PTR 1389 FLAGOK Local 1161 L(4) 4 scalar 1308,1314,1322 FLGALL Local 1160 L(4) 4 scalar 1174,1176,1178,1180,1183,1217,1251 ,1353 FLGHG1 Local 1173 L(4) 4 scalar 1173 FLGHG2 Local 1175 L(4) 4 scalar 1175 FR1 Local 1387 R(4) 4 scalar 1387 FR1 Local 1388 R(4) 4 scalar PTR 1388 HGHSTA Local 1212 I(4) 4 1 1 ALC 1212,1287,1298,1329 HGSTGE Local 1184 RECORD 968 2 1 ALC,TGT 1184,1186,1218,1219,1221,1222,1231 ,1235,1249,1252,1254,1258,1260,126 1,1336,1338,1339,1340,1341,1342,13 54,1356,1373,1374,1375,1377,1378,1 397 I Local 1151 I(4) 4 scalar 1257,1258,1260,1261,1264,1399,1400 I0 Local 1154 I(4) 4 scalar 1339,1342 I1 Local 1154 I(4) 4 scalar 1341,1342 I2 Local 1154 I(4) 4 scalar 1340,1342 IA Local 1151 I(4) 4 scalar 1376,1377,1378 IAPROC Local 1398 I(4) 4 scalar PTR 1398 ICOUNT Local 1153 I(4) 4 scalar IERR_MPI Local 1153 I(4) 4 scalar 1267,1309,1313 IFROM Local 1152 I(4) 4 scalar ILOC Local 1152 I(4) 4 scalar 1259,1260,1261,1264 IMOD Dummy 1053 I(4) 4 scalar ARG,IN 1167,1170,1184,1186,1196,1197,1198 ,1199,1212,1214,1218,1219,1221,122 2,1231,1235,1249,1252,1254,1258,12 60,1261,1280,1281,1287,1298,1300,1 301,1324,1329,1336,1337,1338,1339, 1340,1341,1342,1354,1356,1362,1373 ,1374,1375,1377,1378,1384,1397 IMPROC Local 1262 I(4) 4 scalar 1262 IMPSRC Local 1260 I(4) 4 2 1 PTR 1260 IRQ Local 1156 I(4) 4 1 1 PTR 1226,1227,1267,1281,1282,1301,1308 ,1313 IRQHGG Local 1280 I(4) 4 1 1 PTR 1280,1281,1301,1324 IS Local 1151 I(4) 4 scalar 1338,1339,1340,1341,1372,1373,1374 ,1375,1377,1378,1396,1397,1400 ISEA Local 1151 I(4) 4 scalar 1398,1400 ISPROC Local 1153 I(4) 4 scalar 1260,1262,1266 IT0 Local 1152 I(4) 4 scalar 1248,1261 ITAG Local 1152 I(4) 4 scalar 1261,1266 ITAG Local 1261 I(4) 4 2 1 PTR 1261 J Local 1151 I(4) 4 scalar 1216,1218,1219,1221,1222,1230,1231 ,1235,1249,1252,1254,1258,1260,126 1,1265,1335,1336,1337,1338,1339,13 40,1341,1342,1351,1354,1356,1362,1 Page 55 Source Listing WMIOHG 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 363,1373,1374,1375,1377,1378,1384, 1386,1387,1397 JSEA Local 1151 I(4) 4 scalar 1397,1398,1400 LJSEA Local 1397 I(4) 4 1 1 PTR 1397 MAX Func 1225 scalar 1225 MDATAS Local 1214 RECORD 1360 1 1 ALC,TGT 1214,1280,1281,1300,1301,1324 MDSE Local 1196 I(4) 4 scalar 1196,1197,1198,1199,1389 MDST Local 1196 I(4) 4 scalar 1196,1197,1198,1199,1389 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 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 1266 I(4) 4 scalar 1266 Page 56 Source Listing WMIOHG 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 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 Page 57 Source Listing WMIOHG 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 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_IRECV Subr 1264 1264 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 Page 58 Source Listing WMIOHG 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 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 1265 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 Page 59 Source Listing WMIOHG 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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,1302 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_TESTALL Subr 1308 1308 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 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 1313 1313 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 MTAG1 Param 1248 I(4) 4 scalar 1248 NA Local 1151 I(4) 4 scalar 1373,1376 NAPROC Local 1398 I(4) 4 scalar PTR 1398 NK Local 1386 I(4) 4 scalar 1386 NK Local 1388 I(4) 4 scalar PTR 1388 NLOC Local 1152 I(4) 4 scalar 1258,1259 NRAVG Local 1258 I(4) 4 1 1 PTR 1258,1373 NRC1 Local 1186 I(4) 4 scalar 1186,1221,1254,1356 NREC Local 1184 I(4) 4 scalar 1184,1218,1252,1354 NRGRD Local 1216 I(4) 4 scalar 1216,1230,1335,1351 NRQ Local 1156 I(4) 4 scalar PTR 1214,1215,1218,1221,1225,1226,1228 ,1263,1267,1280,1281,1286,1300,130 Page 60 Source Listing WMIOHG 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 2,1308,1313,1323 NRQHGG Local 1214 I(4) 4 scalar TGT 1214,1300 NRQOUT Local 1338 I(4) 4 scalar 1338 NSMX Local 1219 I(4) 4 scalar 1219,1222 NSPEC Local 1265 I(4) 4 scalar 1265,1363 NSPEC Local 1363 I(4) 4 scalar PTR 1363,1366,1399 NTH Local 1386 I(4) 4 scalar 1386 NTH Local 1388 I(4) 4 scalar PTR 1388,1400 NTOT Local 1151 I(4) 4 scalar 1184,1186,1191,1252,1254,1257,1354 ,1356,1358,1363,1366,1372,1389,139 6 NTOT Local 1231 I(4) 4 scalar 1231 OUTDAT Local 1339 I(4) 4 2 1 PTR 1339,1340,1341 PMPI_WTICK Func 520 R(8) 8 scalar PMPI_WTIME Func 520 R(8) 8 scalar PRESENT Func 1189 scalar 1189,1192,1306,1411 RESPEC Local 1362 L(4) 4 2 1 ALC 1362,1384 SGRDS Local 1265 RECORD 1080 1 1 ALC,TGT 1265,1363,1386,1387 SHGH Local 1159 R(4) 4 3 1 PTR 1249,1264 SHGH Local 1249 R(4) 4 3 1 PTR 1249,1342,1375,1378 SIG2 Local 1400 R(4) 4 1 1 PTR 1400 SPEC Local 1158 R(4) 4 2 1 PTR 1364,1367,1375,1378 SPEC1 Local 1158 R(4) 4 2 1 PTR 1363,1364,1386,1390 SPEC2 Local 1158 R(4) 4 2 1 PTR 1363,1366,1367,1388,1400,1404 STATUS Local 1156 I(4) 4 2 1 PTR 1302,1308,1313,1318 SUM Func 1184 scalar 1184,1186 TH Local 1387 R(4) 4 1 1 PTR 1387 TH Local 1388 R(4) 4 1 1 PTR 1388 TIME Local 1170 I(4) 4 1 2 1170 TIME Local 1239 I(4) 4 1 1 PTR 1239,1336 TOUTP Local 1167 I(4) 4 2 1 ALC 1167,1170 TSTORE Local 1342 R(4) 4 2 1 PTR 1342 VA Local 1400 R(4) 4 2 1 PTR 1400 VTIME Local 1155 I(4) 4 1 1 PTR 1235,1236,1239 VTIME Local 1235 I(4) 4 1 2 1235,1336 W3ADATMD Module 1130 1130 W3CSPC Subr 1134 1134,1386 W3CSPCMD Module 1134 1134 W3GDATMD Module 1128 1128 W3ODATMD Module 1131 1131 W3SETA Subr 1199 1199 W3SETG Subr 1197 1197 W3SETO Subr 1196 1196 W3SETW Subr 1198 1198 W3TIMEMD Module 1135 1135 W3WDATMD Module 1129 1129 WDATAS Local 1170 RECORD 632 1 1 ALC,TGT 1170 WGTH Local 1157 R(4) 4 scalar 1374,1375,1377,1378 WGTH Local 1374 R(4) 4 2 1 PTR 1374,1377 WMIOHG Subr 1053 WMMDATMD Module 1132 1132 XFR Local 1387 R(4) 4 scalar 1387 XFR Local 1388 R(4) 4 scalar PTR 1388 Page 61 Source Listing WMIOHG 2014-09-16 16:49 wminiomd.f90 4111 !/ ------------------------------------------------------------------- / 4112 SUBROUTINE WMIOHF ( IMOD ) 4113 !/ 4114 !/ +-----------------------------------+ 4115 !/ | WAVEWATCH III NOAA/NCEP | 4116 !/ | H. L. Tolman | 4117 !/ | FORTRAN 90 | 4118 !/ | Last update : 16-Jan-2006 ! 4119 !/ +-----------------------------------+ 4120 !/ 4121 !/ 16-Jan-2006 : Origination. ( version 3.08 ) 4122 !/ 4123 ! 1. Purpose : 4124 ! 4125 ! Finalize staging of internal high-to-low data in the data 4126 ! structure HGSTGE (MPI only). 4127 ! 4128 ! 2. Method : 4129 ! 4130 ! Post appropriate 'wait' functions to assure that the 4131 ! communication has finished. 4132 ! 4133 ! 3. Parameters : 4134 ! 4135 ! Parameter list 4136 ! ---------------------------------------------------------------- 4137 ! IMOD Int. I Model number of grid from which data has 4138 ! been staged. 4139 ! ---------------------------------------------------------------- 4140 ! 4141 ! 4. Subroutines used : 4142 ! 4143 ! Name Type Module Description 4144 ! ---------------------------------------------------------------- 4145 ! STRACE Subr. W3SERVMD Subroutine tracing. 4146 ! ---------------------------------------------------------------- 4147 ! 4148 ! 5. Called by : 4149 ! 4150 ! Name Type Module Description 4151 ! ---------------------------------------------------------------- 4152 ! WMWAVE Subr WMWAVEMD Multi-grid wave model. 4153 ! ---------------------------------------------------------------- 4154 ! 4155 ! 6. Error messages : 4156 ! 4157 ! 7. Remarks : 4158 ! 4159 ! 8. Structure : 4160 ! 4161 ! See source code. 4162 ! 4163 ! 9. Switches : 4164 ! 4165 ! !/SHRD Shared/distributed memory models. 4166 ! !/DIST 4167 ! !/MPI Page 62 Source Listing WMIOHF 2014-09-16 16:49 wminiomd.f90 4168 ! 4169 ! !/S Enable subroutine tracing. 4170 ! !/T Test output. 4171 ! 4172 ! 10. Source code : 4173 ! 4174 !/ ------------------------------------------------------------------- / 4175 ! 4176 USE WMMDATMD 4177 ! 4178 IMPLICIT NONE 4179 ! 4180 INCLUDE "mpif.h" 4181 !/ 4182 !/ ------------------------------------------------------------------- / 4183 !/ Parameter list 4184 !/ 4723 INTEGER, INTENT(IN) :: IMOD 4724 !/ 4725 !/ ------------------------------------------------------------------- / 4726 !/ Local parameters 4727 !/ 4728 INTEGER :: J 4729 INTEGER :: IERR_MPI 4730 INTEGER, POINTER :: NRQ, IRQ(:) 4731 INTEGER, ALLOCATABLE :: STATUS(:,:) 4732 !/ 4733 ! 4734 ! -------------------------------------------------------------------- / 4735 ! 0. Initializations 4736 ! 4737 ! -------------------------------------------------------------------- / 4738 ! 1. Loop over grids 4739 ! 4740 DO J=1, NRGRD 4741 ! 4742 NRQ => HGSTGE(J,IMOD)%NRQHGS 4743 ! 4744 ! 1.a Nothing to finalize 4745 ! 4746 IF ( NRQ .EQ. 0 ) CYCLE 4747 IRQ => HGSTGE(J,IMOD)%IRQHGS 4748 ! 4749 ! 1.b Wait for communication to end 4750 ! 4751 ALLOCATE ( STATUS(MPI_STATUS_SIZE,NRQ) ) 4752 CALL MPI_WAITALL ( NRQ, IRQ, STATUS, IERR_MPI ) 4753 DEALLOCATE ( STATUS ) 4754 ! 4755 ! 1.c Reset arrays and counter 4756 ! 4757 NRQ = 0 4758 DEALLOCATE ( HGSTGE(J,IMOD)%IRQHGS, & 4759 HGSTGE(J,IMOD)%TSTORE, & 4760 HGSTGE(J,IMOD)%OUTDAT ) 4761 ! 4762 END DO Page 63 Source Listing WMIOHF 2014-09-16 16:49 wminiomd.f90 4763 ! 4764 RETURN 4765 ! 4766 ! Formats 4767 ! 4768 !/ 4769 !/ End of WMIOHF ----------------------------------------------------- / 4770 !/ 4771 END SUBROUTINE WMIOHF ENTRY POINTS Name wminiomd_mp_wmiohf_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References HGSTGE Local 1514 RECORD 968 2 1 ALC,TGT 1514,1519,1530,1531,1532 IERR_MPI Local 1501 I(4) 4 scalar 1524 IMOD Dummy 1422 I(4) 4 scalar ARG,IN 1514,1519,1530,1531,1532 IRQ Local 1502 I(4) 4 1 1 PTR 1519,1524 IRQHGS Local 1519 I(4) 4 1 1 PTR 1519,1530 J Local 1500 I(4) 4 scalar 1512,1514,1519,1530,1531,1532 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 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 Page 64 Source Listing WMIOHF 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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_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 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 Page 65 Source Listing WMIOHF 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 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 Page 66 Source Listing WMIOHF 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 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 Page 67 Source Listing WMIOHF 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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_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,1523 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 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 1524 1524 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 Page 68 Source Listing WMIOHF 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 NRGRD Local 1512 I(4) 4 scalar 1512 NRQ Local 1502 I(4) 4 scalar PTR 1514,1518,1523,1524,1529 NRQHGS Local 1514 I(4) 4 scalar TGT 1514 OUTDAT Local 1532 I(4) 4 2 1 PTR 1532 PMPI_WTICK Func 520 R(8) 8 scalar PMPI_WTIME Func 520 R(8) 8 scalar STATUS Local 1503 I(4) 4 2 1 ALC 1523,1524,1525 TSTORE Local 1531 R(4) 4 2 1 PTR 1531 WMIOHF Subr 1422 WMMDATMD Module 1486 1486 Page 69 Source Listing WMIOHF 2014-09-16 16:49 wminiomd.f90 4772 !/ ------------------------------------------------------------------- / 4773 SUBROUTINE WMIOES ( IMOD ) 4774 !/ 4775 !/ +-----------------------------------+ 4776 !/ | WAVEWATCH III NOAA/NCEP | 4777 !/ | H. L. Tolman | 4778 !/ | FORTRAN 90 | 4779 !/ | Last update : 21-Dec-2006 ! 4780 !/ +-----------------------------------+ 4781 !/ 4782 !/ 25-May-2006 : Origination. ( version 3.09 ) 4783 !/ 21-Dec-2006 : Remove VTIME from MPI comm. ( version 3.10 ) 4784 !/ 4785 ! 1. Purpose : 4786 ! 4787 ! Stage internal same-rank data in the data structure EQSTGE. 4788 ! 4789 ! 2. Method : 4790 ! 4791 ! Directly fill staging arrays in shared memory version, or post 4792 ! the corresponding sends in distributed memory version. 4793 ! 4794 ! 3. Parameters : 4795 ! 4796 ! Parameter list 4797 ! ---------------------------------------------------------------- 4798 ! IMOD Int. I Model number of grid from which data is to 4799 ! be staged. 4800 ! ---------------------------------------------------------------- 4801 ! 4802 ! 4. Subroutines used : 4803 ! 4804 ! Name Type Module Description 4805 ! ---------------------------------------------------------------- 4806 ! W3SETG, W3SETW, W3SETA, W3SETO, WMSETM 4807 ! Subr. WxxDATMD Manage data structures. 4808 ! STRACE Subr. W3SERVMD Subroutine tracing. 4809 ! DSEC21 Func. W3TIMEMD Difference between times. 4810 ! ---------------------------------------------------------------- 4811 ! 4812 ! 5. Called by : 4813 ! 4814 ! Name Type Module Description 4815 ! ---------------------------------------------------------------- 4816 ! WMWAVE Subr WMWAVEMD Multi-grid wave model. 4817 ! ---------------------------------------------------------------- 4818 ! 4819 ! 6. Error messages : 4820 ! 4821 ! 7. Remarks : 4822 ! 4823 ! 8. Structure : 4824 ! 4825 ! See source code. 4826 ! 4827 ! 9. Switches : 4828 ! Page 70 Source Listing WMIOES 2014-09-16 16:49 wminiomd.f90 4829 ! !/SHRD Shared/distributed memory models. 4830 ! !/DIST 4831 ! !/MPI 4832 ! 4833 ! !/S Enable subroutine tracing. 4834 ! !/T Enable test output 4835 ! !/MPIT 4836 ! 4837 ! 10. Source code : 4838 ! 4839 !/ ------------------------------------------------------------------- / 4840 ! 4841 USE W3GDATMD 4842 USE W3WDATMD 4843 USE W3ADATMD 4844 USE W3ODATMD 4845 USE WMMDATMD 4846 ! 4847 USE W3TIMEMD, ONLY: DSEC21 4848 ! 4849 IMPLICIT NONE 4850 ! 4851 INCLUDE "mpif.h" 4852 !/ 4853 !/ ------------------------------------------------------------------- / 4854 !/ Parameter list 4855 !/ 5394 INTEGER, INTENT(IN) :: IMOD 5395 !/ 5396 !/ ------------------------------------------------------------------- / 5397 !/ Local parameters 5398 !/ 5399 INTEGER :: J, NR, I, ISEA, JSEA, IS, I1, I2 5400 INTEGER :: IT0, ITAG, IP, IERR_MPI 5401 INTEGER, POINTER :: NRQ, IRQ(:), NRQOUT, OUTDAT(:,:) 5402 REAL, POINTER :: SEQL(:,:) 5403 !/ 5404 ! 5405 ! -------------------------------------------------------------------- / 5406 ! 0. Initializations 5407 ! 5408 CALL W3SETO ( IMOD, MDSE, MDST ) 5409 CALL W3SETG ( IMOD, MDSE, MDST ) 5410 CALL W3SETW ( IMOD, MDSE, MDST ) 5411 CALL W3SETA ( IMOD, MDSE, MDST ) 5412 ! 5413 ! -------------------------------------------------------------------- / 5414 ! 1. Loop over grids 5415 ! 5416 DO J=1, NRGRD 5417 ! 5418 IF ( J .EQ. IMOD ) CYCLE 5419 NR = EQSTGE(J,IMOD)%NSND 5420 ! 5421 IF ( NR .EQ. 0 ) CYCLE 5422 IF ( DSEC21(TIME,TSYNC(:,J)) .NE. 0. ) STOP 5423 ! Page 71 Source Listing WMIOES 2014-09-16 16:49 wminiomd.f90 5424 ! -------------------------------------------------------------------- / 5425 ! 2. Allocate arrays and/or point pointers 5426 ! 5427 ALLOCATE ( EQSTGE(J,IMOD)%TSTORE(NSPEC,NR) ) 5428 SEQL => EQSTGE(J,IMOD)%TSTORE 5429 ! 5430 ALLOCATE ( EQSTGE(J,IMOD)%IRQEQS(NR) , & 5431 EQSTGE(J,IMOD)%OUTDAT(NR,3) ) 5432 ! 5433 NRQ => EQSTGE(J,IMOD)%NRQEQS 5434 NRQOUT => EQSTGE(J,IMOD)%NRQOUT 5435 IRQ => EQSTGE(J,IMOD)%IRQEQS 5436 OUTDAT => EQSTGE(J,IMOD)%OUTDAT 5437 NRQ = 0 5438 NRQOUT = 0 5439 IRQ = 0 5440 ! 5441 ! -------------------------------------------------------------------- / 5442 ! 3. Set the time 5443 ! Note that with MPI the send needs to be posted to the local 5444 ! processor too to make time management possible. 5445 ! 5446 ! -------------------------------------------------------------------- / 5447 ! 4. Stage the spectral data 5448 ! 5449 IT0 = MTAG2 + 1 5450 ! 5451 DO I=1, NR 5452 ! 5453 ISEA = EQSTGE(J,IMOD)%SIS(I) 5454 JSEA = EQSTGE(J,IMOD)%SJS(I) 5455 I1 = EQSTGE(J,IMOD)%SI1(I) 5456 I2 = EQSTGE(J,IMOD)%SI2(I) 5457 IP = EQSTGE(J,IMOD)%SIP(I) 5458 ITAG = EQSTGE(J,IMOD)%STG(I) + IT0 5459 ! 5460 DO IS=1, NSPEC 5461 SEQL( IS,I ) = VA(IS,JSEA) * SIG2(IS) & 5462 / CG(1+(IS-1)/NTH,ISEA) 5463 END DO 5464 ! 5465 IF ( IP .NE. IMPROC ) THEN 5466 NRQ = NRQ + 1 5467 CALL MPI_ISEND ( SEQL(1,I), NSPEC, MPI_REAL, IP-1, & 5468 ITAG, MPI_COMM_MWAVE, IRQ(NRQ), IERR_MPI ) 5469 ELSE 5470 NRQOUT = NRQOUT + 1 5471 OUTDAT(NRQOUT,1) = I 5472 OUTDAT(NRQOUT,2) = I1 5473 OUTDAT(NRQOUT,3) = I2 5474 END IF 5475 ! 5476 END DO 5477 ! 5478 END DO 5479 ! 5480 RETURN Page 72 Source Listing WMIOES 2014-09-16 16:49 wminiomd.f90 5481 ! 5482 ! Formats 5483 ! 5484 !/ 5485 !/ 5486 !/ End of WMIOES ----------------------------------------------------- / 5487 !/ 5488 END SUBROUTINE WMIOES ENTRY POINTS Name wminiomd_mp_wmioes_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References CG Local 1696 R(4) 4 2 1 PTR 1696 DSEC21 Func 1619 R(4) 4 scalar 1619,1656 EQSTGE Local 1653 RECORD 1432 2 1 ALC,TGT 1653,1661,1662,1664,1665,1667,1668 ,1669,1670,1687,1688,1689,1690,169 1,1692 I Local 1633 I(4) 4 scalar 1685,1687,1688,1689,1690,1691,1692 ,1695,1701,1705 I1 Local 1633 I(4) 4 scalar 1689,1706 I2 Local 1633 I(4) 4 scalar 1690,1707 IERR_MPI Local 1634 I(4) 4 scalar 1702 IMOD Dummy 1545 I(4) 4 scalar ARG,IN 1642,1643,1644,1645,1652,1653,1661 ,1662,1664,1665,1667,1668,1669,167 0,1687,1688,1689,1690,1691,1692 IMPROC Local 1699 I(4) 4 scalar 1699 IP Local 1634 I(4) 4 scalar 1691,1699,1701 IRQ Local 1635 I(4) 4 1 1 PTR 1669,1673,1702 IRQEQS Local 1664 I(4) 4 1 1 PTR 1664,1669 IS Local 1633 I(4) 4 scalar 1694,1695,1696 ISEA Local 1633 I(4) 4 scalar 1687,1696 IT0 Local 1634 I(4) 4 scalar 1683,1692 ITAG Local 1634 I(4) 4 scalar 1692,1702 J Local 1633 I(4) 4 scalar 1650,1652,1653,1656,1661,1662,1664 ,1665,1667,1668,1669,1670,1687,168 8,1689,1690,1691,1692 JSEA Local 1633 I(4) 4 scalar 1688,1695 MDSE Local 1642 I(4) 4 scalar 1642,1643,1644,1645 MDST Local 1642 I(4) 4 scalar 1642,1643,1644,1645 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 Page 73 Source Listing WMIOES 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 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 1702 I(4) 4 scalar 1702 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 Page 74 Source Listing WMIOES 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 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 Page 75 Source Listing WMIOES 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 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_ISEND Subr 1701 1701 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 Page 76 Source Listing WMIOES 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 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 1701 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_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 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 Page 77 Source Listing WMIOES 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 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 MTAG2 Param 1683 I(4) 4 scalar 1683 NR Local 1633 I(4) 4 scalar 1653,1655,1661,1664,1665,1685 NRGRD Local 1650 I(4) 4 scalar 1650 NRQ Local 1635 I(4) 4 scalar PTR 1667,1671,1700,1702 NRQEQS Local 1667 I(4) 4 scalar TGT 1667 NRQOUT Local 1635 I(4) 4 scalar PTR 1668,1672,1704,1705,1706,1707 NRQOUT Local 1668 I(4) 4 scalar TGT 1668 NSND Local 1653 I(4) 4 scalar 1653 NSPEC Local 1661 I(4) 4 scalar PTR 1661,1694,1701 NTH Local 1696 I(4) 4 scalar PTR 1696 OUTDAT Local 1635 I(4) 4 2 1 PTR 1670,1705,1706,1707 OUTDAT Local 1665 I(4) 4 2 1 PTR 1665,1670 PMPI_WTICK Func 520 R(8) 8 scalar PMPI_WTIME Func 520 R(8) 8 scalar SEQL Local 1636 R(4) 4 2 1 PTR 1662,1695,1701 SI1 Local 1689 I(4) 4 1 1 PTR 1689 SI2 Local 1690 I(4) 4 1 1 PTR 1690 SIG2 Local 1695 R(4) 4 1 1 PTR 1695 SIP Local 1691 I(4) 4 1 1 PTR 1691 SIS Local 1687 I(4) 4 1 1 PTR 1687 SJS Local 1688 I(4) 4 1 1 PTR 1688 STG Local 1692 I(4) 4 1 1 PTR 1692 TIME Local 1656 I(4) 4 1 1 PTR 1656 TSTORE Local 1661 R(4) 4 2 1 PTR 1661,1662 TSYNC Local 1656 I(4) 4 2 1 ALC 1656 VA Local 1695 R(4) 4 2 1 PTR 1695 W3ADATMD Module 1615 1615 W3GDATMD Module 1613 1613 W3ODATMD Module 1616 1616 W3SETA Subr 1645 1645 W3SETG Subr 1643 1643 Page 78 Source Listing WMIOES 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References W3SETO Subr 1642 1642 W3SETW Subr 1644 1644 W3TIMEMD Module 1619 1619 W3WDATMD Module 1614 1614 WMIOES Subr 1545 WMMDATMD Module 1617 1617 Page 79 Source Listing WMIOES 2014-09-16 16:49 wminiomd.f90 5489 !/ ------------------------------------------------------------------- / 5490 SUBROUTINE WMIOEG ( IMOD, DONE ) 5491 !/ 5492 !/ +-----------------------------------+ 5493 !/ | WAVEWATCH III NOAA/NCEP | 5494 !/ | H. L. Tolman | 5495 !/ | FORTRAN 90 | 5496 !/ | Last update : 22-Jan-2007 ! 5497 !/ +-----------------------------------+ 5498 !/ 5499 !/ 25-May-2006 : Origination. ( version 3.09 ) 5500 !/ 21-Dec-2006 : Remove VTIME from MPI comm. ( version 3.10 ) 5501 !/ 22-Jan-2007 : Adding NAVMAX. ( version 3.10 ) 5502 !/ 5503 ! 1. Purpose : 5504 ! 5505 ! Gather internal same-rank data for a given model. 5506 ! 5507 ! 2. Method : 5508 ! 5509 ! For distributed memory version first receive all staged data. 5510 ! After staged data is present, average, convert as necessary, 5511 ! and store in basic spatral arrays. 5512 ! 5513 ! 2. Method : 5514 ! 5515 ! Using storage array EQSTGE and time stamps. 5516 ! 5517 ! 3. Parameters : 5518 ! 5519 ! Parameter list 5520 ! ---------------------------------------------------------------- 5521 ! IMOD Int. I Model number of grid from which data is to 5522 ! be gathered. 5523 ! DONE Log. O Flag for completion of operation (opt). 5524 ! ---------------------------------------------------------------- 5525 ! 5526 ! 4. Subroutines used : 5527 ! 5528 ! Name Type Module Description 5529 ! ---------------------------------------------------------------- 5530 ! W3SETG, W3SETW, W3SETA, W3SETO 5531 ! Subr. WxxDATMD Manage data structures. 5532 ! W3CSPC Subr. W3CSPCMD Spectral grid conversion. 5533 ! STRACE Sur. W3SERVMD Subroutine tracing. 5534 ! DSEC21 Func. W3TIMEMD Difference between times. 5535 ! ---------------------------------------------------------------- 5536 ! 5537 ! 5. Called by : 5538 ! 5539 ! Name Type Module Description 5540 ! ---------------------------------------------------------------- 5541 ! WMWAVE Subr WMWAVEMD Multi-grid wave model. 5542 ! ---------------------------------------------------------------- 5543 ! 5544 ! 6. Error messages : 5545 ! Page 80 Source Listing WMIOEG 2014-09-16 16:49 wminiomd.f90 5546 ! See FORMAT labels 1001-1002. 5547 ! 5548 ! 7. Remarks : 5549 ! 5550 ! 8. Structure : 5551 ! 5552 ! 9. Switches : 5553 ! 5554 ! !/SHRD Shared/distributed memory models. 5555 ! !/DIST 5556 ! !/MPI 5557 ! 5558 ! !/S Enable subroutine tracing. 5559 ! !/T Enable test output 5560 ! !/MPIT 5561 ! 5562 ! 10. Source code : 5563 ! 5564 !/ ------------------------------------------------------------------- / 5565 ! 5566 USE W3GDATMD 5567 USE W3WDATMD 5568 USE W3ADATMD 5569 USE W3ODATMD 5570 USE WMMDATMD 5571 ! 5572 USE W3CSPCMD, ONLY: W3CSPC 5573 USE W3TIMEMD, ONLY: DSEC21 5574 USE W3SERVMD, ONLY: EXTCDE 5575 ! 5576 IMPLICIT NONE 5577 ! 5578 INCLUDE "mpif.h" 5579 !/ 5580 !/ ------------------------------------------------------------------- / 5581 !/ Parameter list 5582 !/ 6121 INTEGER, INTENT(IN) :: IMOD 6122 LOGICAL, INTENT(OUT), OPTIONAL :: DONE 6123 !/ 6124 !/ ------------------------------------------------------------------- / 6125 !/ Local parameters 6126 !/ 6127 INTEGER :: J, I, ISEA, JSEA, IA, IS 6128 INTEGER :: IT0, ITAG, IFROM, IERR_MPI, & 6129 NA, IP, I1, I2 6130 INTEGER, POINTER :: VTIME(:) 6131 INTEGER, POINTER :: NRQ, IRQ(:), STATUS(:,:) 6132 REAL :: DTTST, WGHT 6133 REAL, POINTER :: SPEC1(:,:), SPEC2(:,:), SPEC(:,:) 6134 REAL, POINTER :: SEQL(:,:,:) 6135 LOGICAL :: FLAGOK 6136 LOGICAL :: FLAG 6137 !/ 6138 ! 6139 ! -------------------------------------------------------------------- / 6140 ! 0. Initializations Page 81 Source Listing WMIOEG 2014-09-16 16:49 wminiomd.f90 6141 ! 6142 IF ( PRESENT(DONE) ) DONE = .FALSE. 6143 ! 6144 IF ( EQSTGE(IMOD,IMOD)%NREC .EQ. 0 ) THEN 6145 IF ( PRESENT(DONE) ) DONE = .TRUE. 6146 RETURN 6147 END IF 6148 ! 6149 CALL W3SETO ( IMOD, MDSE, MDST ) 6150 CALL W3SETG ( IMOD, MDSE, MDST ) 6151 CALL W3SETW ( IMOD, MDSE, MDST ) 6152 CALL W3SETA ( IMOD, MDSE, MDST ) 6153 ! 6154 ! -------------------------------------------------------------------- / 6155 ! 1. Testing / gathering data in staging arrays 6156 ! 6157 ! 1.a Shared memory version, test valid times. - - - - - - - - - - - - / 6158 ! 6159 ! 1.b Distributed memory version - - - - - - - - - - - - - - - - - - - / 6160 ! 6161 ! 1.b.1 EQLSTA = 0 6162 ! Check if staging arrays are initialized. 6163 ! Post the proper receives. 6164 ! 6165 IF ( EQLSTA(IMOD) .EQ. 0 ) THEN 6166 ! 6167 NRQ => MDATAS(IMOD)%NRQEQG 6168 NRQ = 0 6169 DO J=1, NRGRD 6170 IF ( J .EQ. IMOD ) CYCLE 6171 NRQ = NRQ + EQSTGE(IMOD,J)%NREC * & 6172 EQSTGE(IMOD,J)%NAVMAX 6173 END DO 6174 ALLOCATE ( IRQ(NRQ) ) 6175 IRQ = 0 6176 NRQ = 0 6177 ! 6178 DO J=1, NRGRD 6179 IF ( IMOD .EQ. J ) CYCLE 6180 IF ( EQSTGE(IMOD,J)%NREC .EQ. 0 ) CYCLE 6181 ! 6182 ! ..... Check valid time to determine staging. 6183 ! 6184 VTIME => EQSTGE(IMOD,J)%VTIME 6185 IF ( VTIME(1) .EQ. -1 ) THEN 6186 DTTST = 1. 6187 ELSE 6188 DTTST = DSEC21 ( TIME, VTIME ) 6189 END IF 6190 ! 6191 ! ..... Post receives for data gather 6192 ! 6193 IF ( DTTST .NE. 0. ) THEN 6194 ! 6195 ! ..... Spectra 6196 ! 6197 IT0 = MTAG2 + 1 Page 82 Source Listing WMIOEG 2014-09-16 16:49 wminiomd.f90 6198 SEQL => EQSTGE(IMOD,J)%SEQL 6199 ! 6200 DO I=1, EQSTGE(IMOD,J)%NREC 6201 JSEA = EQSTGE(IMOD,J)%JSEA(I) 6202 NA = EQSTGE(IMOD,J)%NAVG(I) 6203 DO IA=1, NA 6204 IP = EQSTGE(IMOD,J)%RIP(I,IA) 6205 ITAG = EQSTGE(IMOD,J)%RTG(I,IA) + IT0 6206 IF ( IP .NE. IMPROC ) THEN 6207 NRQ = NRQ + 1 6208 CALL MPI_IRECV ( SEQL(1,I,IA), & 6209 SGRDS(J)%NSPEC, MPI_REAL, & 6210 IP-1, ITAG, MPI_COMM_MWAVE, & 6211 IRQ(NRQ), IERR_MPI ) 6212 END IF 6213 END DO 6214 END DO 6215 ! 6216 ! ..... End IF for posting receives 1.b.1 6217 ! 6218 END IF 6219 ! 6220 ! ..... End grid loop J in 1.b.1 6221 ! 6222 END DO 6223 ! 6224 IF ( NRQ .NE. 0 ) THEN 6225 ALLOCATE ( MDATAS(IMOD)%IRQEQG(NRQ) ) 6226 MDATAS(IMOD)%IRQEQG = IRQ(1:NRQ) 6227 END IF 6228 ! 6229 DEALLOCATE ( IRQ ) 6230 ! 6231 ! ..... Reset status 6232 ! 6233 IF ( NRQ .GT. 0 ) THEN 6234 EQLSTA(IMOD) = 1 6235 END IF 6236 ! 6237 ! ..... End IF in 1.b.1 6238 ! 6239 END IF 6240 ! 6241 ! 1.b.2 EQLSTA = 1 6242 ! Wait for communication to finish. 6243 ! If DONE defined, check if done, otherwise wait. 6244 ! 6245 IF ( EQLSTA(IMOD) .EQ. 1 ) THEN 6246 ! 6247 NRQ => MDATAS(IMOD)%NRQEQG 6248 IRQ => MDATAS(IMOD)%IRQEQG 6249 ALLOCATE ( STATUS(MPI_STATUS_SIZE,NRQ) ) 6250 ! 6251 ! ..... Test communication if DONE is present, wait otherwise 6252 ! 6253 IF ( PRESENT(DONE) ) THEN 6254 ! Page 83 Source Listing WMIOEG 2014-09-16 16:49 wminiomd.f90 6255 CALL MPI_TESTALL ( NRQ, IRQ, FLAGOK, STATUS, & 6256 IERR_MPI ) 6257 ! 6258 ELSE 6259 ! 6260 CALL MPI_WAITALL ( NRQ, IRQ, STATUS, IERR_MPI ) 6261 FLAGOK = .TRUE. 6262 ! 6263 END IF 6264 ! 6265 DEALLOCATE ( STATUS ) 6266 ! 6267 ! ..... Go on based on FLAGOK 6268 ! 6269 IF ( FLAGOK ) THEN 6270 IF ( NRQ.NE.0 ) DEALLOCATE ( MDATAS(IMOD)%IRQEQG ) 6271 NRQ = 0 6272 ELSE 6273 RETURN 6274 END IF 6275 ! 6276 EQLSTA(IMOD) = 0 6277 ! 6278 END IF 6279 ! 6280 ! ..... process locally stored data 6281 ! 6282 DO J=1, NRGRD 6283 EQSTGE(IMOD,J)%VTIME = TIME 6284 IF ( J .EQ. IMOD ) CYCLE 6285 DO IS=1, EQSTGE(IMOD,J)%NRQOUT 6286 I = EQSTGE(IMOD,J)%OUTDAT(IS,1) 6287 I1 = EQSTGE(IMOD,J)%OUTDAT(IS,2) 6288 I2 = EQSTGE(IMOD,J)%OUTDAT(IS,3) 6289 EQSTGE(IMOD,J)%SEQL(:,I1,I2) = EQSTGE(IMOD,J)%TSTORE(:,I) 6290 END DO 6291 END DO 6292 ! 6293 ! -------------------------------------------------------------------- / 6294 ! 2. Data available, process grid by grid 6295 ! 6296 ! 2.a Do 'native' grid IMOD 6297 ! 6298 DO I=1, EQSTGE(IMOD,IMOD)%NREC 6299 JSEA = EQSTGE(IMOD,IMOD)%JSEA(I) 6300 WGHT = EQSTGE(IMOD,IMOD)%WGHT(I) 6301 VA(:,JSEA) = WGHT * VA(:,JSEA) 6302 END DO 6303 ! 6304 ! 2.b Loop over other grids 6305 ! 6306 DO J=1, NRGRD 6307 IF ( IMOD.EQ.J .OR. EQSTGE(IMOD,J)%NREC.EQ.0 ) CYCLE 6308 ! 6309 ! 2.c Average spectra 6310 ! 6311 ALLOCATE ( SPEC1(SGRDS(J)%NSPEC,EQSTGE(IMOD,J)%NREC) ) Page 84 Source Listing WMIOEG 2014-09-16 16:49 wminiomd.f90 6312 SPEC1 = 0. 6313 ! 6314 DO I=1, EQSTGE(IMOD,J)%NREC 6315 DO IA=1, EQSTGE(IMOD,J)%NAVG(I) 6316 SPEC1(:,I) = SPEC1(:,I) + EQSTGE(IMOD,J)%SEQL(:,I,IA) * & 6317 EQSTGE(IMOD,J)%WAVG(I,IA) 6318 END DO 6319 END DO 6320 ! 6321 ! 2.d Convert spectra 6322 ! 6323 IF ( RESPEC(IMOD,J) ) THEN 6324 ALLOCATE ( SPEC2(NSPEC,EQSTGE(IMOD,J)%NREC) ) 6325 ! 6326 CALL W3CSPC ( SPEC1, SGRDS(J)%NK, SGRDS(J)%NTH, & 6327 SGRDS(J)%XFR, SGRDS(J)%FR1, SGRDS(J)%TH(1), & 6328 SPEC2 , NK, NTH, XFR, FR1, TH(1), & 6329 EQSTGE(IMOD,J)%NREC, MDST, MDSE, FACHFE) 6330 ! 6331 SPEC => SPEC2 6332 ELSE 6333 SPEC => SPEC1 6334 END IF 6335 ! 6336 ! 2.e Apply to native grid 6337 ! 6338 DO I=1, EQSTGE(IMOD,J)%NREC 6339 ISEA = EQSTGE(IMOD,J)%ISEA(I) 6340 JSEA = EQSTGE(IMOD,J)%JSEA(I) 6341 WGHT = EQSTGE(IMOD,J)%WGHT(I) 6342 DO IS=1, NSPEC 6343 VA(IS,JSEA) = VA(IS,JSEA) + WGHT * & 6344 SPEC(IS,I) / SIG2(IS) * CG(1+(IS-1)/NTH,ISEA) 6345 END DO 6346 END DO 6347 ! 6348 ! 2.f Final clean up 6349 ! 6350 DEALLOCATE ( SPEC1 ) 6351 IF ( RESPEC(IMOD,J) ) DEALLOCATE ( SPEC2 ) 6352 END DO 6353 ! 6354 ! -------------------------------------------------------------------- / 6355 ! 3. Set flag if requested 6356 ! 6357 IF ( PRESENT(DONE) ) DONE = .TRUE. 6358 ! 6359 RETURN 6360 ! 6361 ! Formats 6362 ! 6363 !/ 6364 !/ End of WMIOEG ----------------------------------------------------- / 6365 !/ 6366 END SUBROUTINE WMIOEG Page 85 Source Listing WMIOEG 2014-09-16 16:49 Entry Points wminiomd.f90 ENTRY POINTS Name wminiomd_mp_wmioeg_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References CG Local 2040 R(4) 4 2 1 PTR 2040 DONE Dummy 1724 L(4) 4 scalar ARG,OUT 1838,1841,1949,2053 DSEC21 Func 1807 R(4) 4 scalar 1807,1884 DTTST Local 1828 R(4) 4 scalar 1882,1884,1889 EQLSTA Local 1861 I(4) 4 1 1 ALC 1861,1930,1941,1972 EQSTGE Local 1840 RECORD 1432 2 1 ALC,TGT 1840,1867,1868,1876,1880,1894,1896 ,1897,1898,1900,1901,1979,1981,198 2,1983,1984,1985,1994,1995,1996,20 03,2007,2010,2011,2012,2013,2020,2 025,2034,2035,2036,2037 EXTCDE Subr 1808 1808 FACHFE Local 2025 R(4) 4 scalar PTR 2025 FLAG Local 1832 L(4) 4 scalar FLAGOK Local 1831 L(4) 4 scalar 1951,1957,1965 FR1 Local 2023 R(4) 4 scalar 2023 FR1 Local 2024 R(4) 4 scalar PTR 2024 I Local 1823 I(4) 4 scalar 1896,1897,1898,1900,1901,1904,1982 ,1985,1994,1995,1996,2010,2011,201 2,2013,2034,2035,2036,2037,2040 I1 Local 1825 I(4) 4 scalar 1983,1985 I2 Local 1825 I(4) 4 scalar 1984,1985 IA Local 1823 I(4) 4 scalar 1899,1900,1901,1904,2011,2012,2013 IERR_MPI Local 1824 I(4) 4 scalar 1907,1952,1956 IFROM Local 1824 I(4) 4 scalar IMOD Dummy 1724 I(4) 4 scalar ARG,IN 1840,1845,1846,1847,1848,1861,1863 ,1866,1867,1868,1875,1876,1880,189 4,1896,1897,1898,1900,1901,1921,19 22,1930,1941,1943,1944,1966,1972,1 979,1980,1981,1982,1983,1984,1985, 1994,1995,1996,2003,2007,2010,2011 ,2012,2013,2019,2020,2025,2034,203 5,2036,2037,2047 IMPROC Local 1902 I(4) 4 scalar 1902 IP Local 1825 I(4) 4 scalar 1900,1902,1906 IRQ Local 1827 I(4) 4 1 1 PTR 1870,1871,1907,1922,1925,1944,1951 ,1956 IRQEQG Local 1921 I(4) 4 1 1 PTR 1921,1922,1944,1966 IS Local 1823 I(4) 4 scalar 1981,1982,1983,1984,2038,2039,2040 ISEA Local 1823 I(4) 4 scalar 2035,2040 ISEA Local 2035 I(4) 4 1 1 PTR 2035 IT0 Local 1824 I(4) 4 scalar 1893,1901 ITAG Local 1824 I(4) 4 scalar 1901,1906 J Local 1823 I(4) 4 scalar 1865,1866,1867,1868,1874,1875,1876 ,1880,1894,1896,1897,1898,1900,190 Page 86 Source Listing WMIOEG 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 1,1905,1978,1979,1980,1981,1982,19 83,1984,1985,2002,2003,2007,2010,2 011,2012,2013,2019,2020,2022,2023, 2025,2034,2035,2036,2037,2047 JSEA Local 1823 I(4) 4 scalar 1897,1995,1997,2036,2039 JSEA Local 1897 I(4) 4 1 1 PTR 1897,1995,2036 MDATAS Local 1863 RECORD 1360 1 1 ALC,TGT 1863,1921,1922,1943,1944,1966 MDSE Local 1845 I(4) 4 scalar 1845,1846,1847,1848,2025 MDST Local 1845 I(4) 4 scalar 1845,1846,1847,1848,2025 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 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 Page 87 Source Listing WMIOEG 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References MPI_COMM_MWAVE Local 1906 I(4) 4 scalar 1906 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 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 Page 88 Source Listing WMIOEG 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 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_IRECV Subr 1904 1904 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 Page 89 Source Listing WMIOEG 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 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 1905 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 Page 90 Source Listing WMIOEG 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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,1945 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_TESTALL Subr 1951 1951 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 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 1956 1956 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 MTAG2 Param 1893 I(4) 4 scalar 1893 NA Local 1825 I(4) 4 scalar 1898,1899 NAVG Local 1898 I(4) 4 1 1 PTR 1898,2011 NAVMAX Local 1868 I(4) 4 scalar 1868 NK Local 2022 I(4) 4 scalar 2022 NK Local 2024 I(4) 4 scalar PTR 2024 NREC Local 1840 I(4) 4 scalar 1840,1867,1876,1896,1994,2003,2007 ,2010,2020,2025,2034 NRGRD Local 1865 I(4) 4 scalar 1865,1874,1978,2002 NRQ Local 1827 I(4) 4 scalar PTR 1863,1864,1867,1870,1872,1903,1907 ,1920,1921,1922,1929,1943,1945,195 Page 91 Source Listing WMIOEG 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 1,1956,1966,1967 NRQEQG Local 1863 I(4) 4 scalar TGT 1863,1943 NRQOUT Local 1981 I(4) 4 scalar 1981 NSPEC Local 1905 I(4) 4 scalar 1905,2007 NSPEC Local 2020 I(4) 4 scalar PTR 2020,2038 NTH Local 2022 I(4) 4 scalar 2022 NTH Local 2024 I(4) 4 scalar PTR 2024,2040 OUTDAT Local 1982 I(4) 4 2 1 PTR 1982,1983,1984 PMPI_WTICK Func 520 R(8) 8 scalar PMPI_WTIME Func 520 R(8) 8 scalar PRESENT Func 1838 scalar 1838,1841,1949,2053 RESPEC Local 2019 L(4) 4 2 1 ALC 2019,2047 RIP Local 1900 I(4) 4 2 1 PTR 1900 RTG Local 1901 I(4) 4 2 1 PTR 1901 SEQL Local 1830 R(4) 4 3 1 PTR 1894,1904 SEQL Local 1894 R(4) 4 3 1 PTR 1894,1985,2012 SGRDS Local 1905 RECORD 1080 1 1 ALC,TGT 1905,2007,2022,2023 SIG2 Local 2040 R(4) 4 1 1 PTR 2040 SPEC Local 1829 R(4) 4 2 1 PTR 2027,2029,2040 SPEC1 Local 1829 R(4) 4 2 1 PTR 2007,2008,2012,2022,2029,2046 SPEC2 Local 1829 R(4) 4 2 1 PTR 2020,2024,2027,2047 STATUS Local 1827 I(4) 4 2 1 PTR 1945,1951,1956,1961 TH Local 2023 R(4) 4 1 1 PTR 2023 TH Local 2024 R(4) 4 1 1 PTR 2024 TIME Local 1884 I(4) 4 1 1 PTR 1884,1979 TSTORE Local 1985 R(4) 4 2 1 PTR 1985 VA Local 1997 R(4) 4 2 1 PTR 1997,2039 VTIME Local 1826 I(4) 4 1 1 PTR 1880,1881,1884 VTIME Local 1880 I(4) 4 1 2 1880,1979 W3ADATMD Module 1802 1802 W3CSPC Subr 1806 1806,2022 W3CSPCMD Module 1806 1806 W3GDATMD Module 1800 1800 W3ODATMD Module 1803 1803 W3SERVMD Module 1808 1808 W3SETA Subr 1848 1848 W3SETG Subr 1846 1846 W3SETO Subr 1845 1845 W3SETW Subr 1847 1847 W3TIMEMD Module 1807 1807 W3WDATMD Module 1801 1801 WAVG Local 2013 R(4) 4 2 1 PTR 2013 WGHT Local 1828 R(4) 4 scalar 1996,1997,2037,2039 WGHT Local 1996 R(4) 4 1 1 PTR 1996,2037 WMIOEG Subr 1724 WMMDATMD Module 1804 1804 XFR Local 2023 R(4) 4 scalar 2023 XFR Local 2024 R(4) 4 scalar PTR 2024 Page 92 Source Listing WMIOEG 2014-09-16 16:49 wminiomd.f90 6367 !/ ------------------------------------------------------------------- / 6368 SUBROUTINE WMIOEF ( IMOD ) 6369 !/ 6370 !/ +-----------------------------------+ 6371 !/ | WAVEWATCH III NOAA/NCEP | 6372 !/ | H. L. Tolman | 6373 !/ | FORTRAN 90 | 6374 !/ | Last update : 25-May-2006 ! 6375 !/ +-----------------------------------+ 6376 !/ 6377 !/ 25-May-2006 : Origination. ( version 3.09 ) 6378 !/ 6379 ! 1. Purpose : 6380 ! 6381 ! Finalize staging of internal same-rank data in the data 6382 ! structure EQSTGE (MPI only). 6383 ! 6384 ! 2. Method : 6385 ! 6386 ! Post appropriate 'wait' functions to assure that the 6387 ! communication has finished. 6388 ! 6389 ! 3. Parameters : 6390 ! 6391 ! Parameter list 6392 ! ---------------------------------------------------------------- 6393 ! IMOD Int. I Model number of grid from which data has 6394 ! been staged. 6395 ! ---------------------------------------------------------------- 6396 ! 6397 ! 4. Subroutines used : 6398 ! 6399 ! Name Type Module Description 6400 ! ---------------------------------------------------------------- 6401 ! STRACE Subr. W3SERVMD Subroutine tracing. 6402 ! ---------------------------------------------------------------- 6403 ! 6404 ! 5. Called by : 6405 ! 6406 ! Name Type Module Description 6407 ! ---------------------------------------------------------------- 6408 ! WMWAVE Subr WMWAVEMD Multi-grid wave model. 6409 ! ---------------------------------------------------------------- 6410 ! 6411 ! 6. Error messages : 6412 ! 6413 ! 7. Remarks : 6414 ! 6415 ! 8. Structure : 6416 ! 6417 ! See source code. 6418 ! 6419 ! 9. Switches : 6420 ! 6421 ! !/SHRD Shared/distributed memory models. 6422 ! !/DIST 6423 ! !/MPI Page 93 Source Listing WMIOEF 2014-09-16 16:49 wminiomd.f90 6424 ! 6425 ! !/S Enable subroutine tracing. 6426 ! !/T Test output. 6427 ! 6428 ! 10. Source code : 6429 ! 6430 !/ ------------------------------------------------------------------- / 6431 ! 6432 USE WMMDATMD 6433 ! 6434 IMPLICIT NONE 6435 ! 6436 INCLUDE "mpif.h" 6437 !/ 6438 !/ ------------------------------------------------------------------- / 6439 !/ Parameter list 6440 !/ 6979 INTEGER, INTENT(IN) :: IMOD 6980 !/ 6981 !/ ------------------------------------------------------------------- / 6982 !/ Local parameters 6983 !/ 6984 INTEGER :: J 6985 INTEGER :: IERR_MPI 6986 INTEGER, POINTER :: NRQ, IRQ(:) 6987 INTEGER, ALLOCATABLE :: STATUS(:,:) 6988 !/ 6989 ! 6990 ! -------------------------------------------------------------------- / 6991 ! 0. Initializations 6992 ! 6993 ! -------------------------------------------------------------------- / 6994 ! 1. Loop over grids 6995 ! 6996 DO J=1, NRGRD 6997 ! 6998 NRQ => EQSTGE(J,IMOD)%NRQEQS 6999 ! 7000 ! 1.a Nothing to finalize 7001 ! 7002 IF ( NRQ .EQ. 0 ) CYCLE 7003 IRQ => EQSTGE(J,IMOD)%IRQEQS 7004 ! 7005 ! 1.b Wait for communication to end 7006 ! 7007 ALLOCATE ( STATUS(MPI_STATUS_SIZE,NRQ) ) 7008 CALL MPI_WAITALL ( NRQ, IRQ, STATUS, IERR_MPI ) 7009 DEALLOCATE ( STATUS ) 7010 ! 7011 ! 1.c Reset arrays and counter 7012 ! 7013 DEALLOCATE ( EQSTGE(J,IMOD)%IRQEQS, & 7014 EQSTGE(J,IMOD)%TSTORE, & 7015 EQSTGE(J,IMOD)%OUTDAT ) 7016 NRQ = 0 7017 ! 7018 END DO Page 94 Source Listing WMIOEF 2014-09-16 16:49 wminiomd.f90 7019 ! 7020 RETURN 7021 ! 7022 ! Formats 7023 ! 7024 !/ 7025 !/ End of WMIOEF ----------------------------------------------------- / 7026 !/ 7027 END SUBROUTINE WMIOEF ENTRY POINTS Name wminiomd_mp_wmioef_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References EQSTGE Local 2156 RECORD 1432 2 1 ALC,TGT 2156,2161,2171,2172,2173 IERR_MPI Local 2143 I(4) 4 scalar 2166 IMOD Dummy 2064 I(4) 4 scalar ARG,IN 2156,2161,2171,2172,2173 IRQ Local 2144 I(4) 4 1 1 PTR 2161,2166 IRQEQS Local 2161 I(4) 4 1 1 PTR 2161,2171 J Local 2142 I(4) 4 scalar 2154,2156,2161,2171,2172,2173 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 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 Page 95 Source Listing WMIOEF 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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_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 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 Page 96 Source Listing WMIOEF 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 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 Page 97 Source Listing WMIOEF 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 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 Page 98 Source Listing WMIOEF 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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_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,2165 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 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 2166 2166 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 Page 99 Source Listing WMIOEF 2014-09-16 16:49 Symbol Table wminiomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 NRGRD Local 2154 I(4) 4 scalar 2154 NRQ Local 2144 I(4) 4 scalar PTR 2156,2160,2165,2166,2174 NRQEQS Local 2156 I(4) 4 scalar TGT 2156 OUTDAT Local 2173 I(4) 4 2 1 PTR 2173 PMPI_WTICK Func 520 R(8) 8 scalar PMPI_WTIME Func 520 R(8) 8 scalar STATUS Local 2145 I(4) 4 2 1 ALC 2165,2166,2167 TSTORE Local 2172 R(4) 4 2 1 PTR 2172 WMIOEF Subr 2064 WMMDATMD Module 2128 2128 Page 100 Source Listing WMIOEF 2014-09-16 16:49 wminiomd.f90 7028 !/ 7029 !/ End of module WMINIOMD -------------------------------------------- / 7030 !/ 7031 END MODULE WMINIOMD SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References WMINIOMD Module 2 Page 101 Source Listing WMIOEF 2014-09-16 16:49 Subprograms/Common Blocks wminiomd.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 WMINIOMD Module 2 WMIOBF Subr 725 WMIOBG Subr 292 WMIOBS Subr 77 WMIOEF Subr 2064 WMIOEG Subr 1724 WMIOES Subr 1545 WMIOHF Subr 1422 WMIOHG Subr 1053 WMIOHS Subr 852 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 Page 102 Source Listing WMIOEF 2014-09-16 16:49 wminiomd.f90 -D __pentium4__ -D __tune_pentium4__ -D __SSE2__ -D __SSE3__ -D __SSSE3__ -D __SSE4_1__ -D __SSE4_2__ -D __SSE__ -D __MMX__ -D __AVX__ -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 : wminiomd.lst -o filename : none COMPILER: Intel(R) Fortran 12.1-2100