Page 1 Source Listing W3CPRT 2014-09-16 16:49 w3iosfmd.f90 1 !/ ------------------------------------------------------------------- / 2 MODULE W3IOSFMD 3 !/ 4 !/ +-----------------------------------+ 5 !/ | WAVEWATCH III NOAA/NCEP | 6 !/ | H. L. Tolman | 7 !/ | FORTRAN 90 | 8 !/ | Last update : 06-Jun-2012 | 9 !/ +-----------------------------------+ 10 !/ 11 !/ 27-Jun-2006 : Origination. ( version 3.09 ) 12 !/ 02-Nov-2006 : Origination W3CPRT and W3IOSF. ( version 3.10 ) 13 !/ 24-Mar-2007 : Add pars for entire spectrum. ( version 3.11 ) 14 !/ 17-May-2007 : Adding NTPROC/NAPROC separation. ( version 3.11 ) 15 !/ 29-May-2009 : Preparing distribution version. ( version 3.14 ) 16 !/ 30-Oct-2009 : Fix unitialized dtsiz in w3iosf. ( version 3.14 ) 17 !/ (T. J. Campbell, NRL) 18 !/ 30-Oct-2009 : Implement run-time grid selection. ( version 3.14 ) 19 !/ (W. E. Rogers & T. J. Campbell, NRL) 20 !/ 30-Oct-2009 : Implement curvilinear grid type. ( version 3.14 ) 21 !/ (W. E. Rogers & T. J. Campbell, NRL) 22 !/ 06-Mar-2012 : Reparing test output under MPI. ( version 4.07 ) 23 !/ 24 !/ Copyright 2009-2012 National Weather Service (NWS), 25 !/ National Oceanic and Atmospheric Administration. All rights 26 !/ reserved. WAVEWATCH III is a trademark of the NWS. 27 !/ No unauthorized use without permission. 28 !/ 29 ! 1. Purpose : 30 ! 31 ! I/O and computational routines for the wave-field separation 32 ! output. 33 ! 34 ! 2. Variables and types : 35 ! 36 ! Name Type Scope Description 37 ! ---------------------------------------------------------------- 38 ! VERPRT C*10 Private Partition file version number. 39 ! IDSTR C*35 Private Partition file ID string. 40 ! ---------------------------------------------------------------- 41 ! 42 ! 3. Subroutines and functions : 43 ! 44 ! Name Type Scope Description 45 ! ---------------------------------------------------------------- 46 ! W3CPRT Subr. Public Partition all requested local spectra. 47 ! W3IOSF Subr. Public Processing and output of partitioned 48 ! wave data. 49 ! ---------------------------------------------------------------- 50 ! 51 ! 4. Subroutines and functions used : 52 ! 53 ! Name Type Module Description 54 ! ---------------------------------------------------------------- 55 ! W3PART Subr. W3PARTMD Spectral partition for single spectrum. 56 ! STRACE Sur. W3SERVMD Subroutine tracing. 57 ! EXTCDE Subr. Id. Program abort. Page 2 Source Listing W3CPRT 2014-09-16 16:49 w3iosfmd.f90 58 ! MPI_SEND, MPI_RECV 59 ! MPI send and recieve routines 60 ! ---------------------------------------------------------------- 61 ! 62 ! 5. Remarks : 63 ! 64 ! 6. Switches : 65 ! 66 ! !/S Enable subroutine tracing. 67 ! !/T Enable test output 68 ! 69 ! 7. Source code : 70 ! 71 !/ ------------------------------------------------------------------- / 72 PUBLIC 73 !/ 74 !/ Private parameter statements (ID strings) 75 !/ 76 CHARACTER(LEN=10), PARAMETER, PRIVATE :: VERPRT = 'III 1.01 ' 77 CHARACTER(LEN=35), PARAMETER, PRIVATE :: & 78 IDSTR = 'WAVEWATCH III PARTITIONED DATA FILE' 79 !/ 80 CONTAINS 81 !/ ------------------------------------------------------------------- / 82 SUBROUTINE W3CPRT ( IMOD ) 83 !/ 84 !/ +-----------------------------------+ 85 !/ | WAVEWATCH III NOAA/NCEP | 86 !/ | H. L. Tolman | 87 !/ | FORTRAN 90 | 88 !/ | Last update : 24-Mar-2007 ! 89 !/ +-----------------------------------+ 90 !/ 91 !/ 30-Oct-2006 : Origination. ( version 3.10 ) 92 !/ 24-Mar-2007 : Add pars for entire spectrum. ( version 3.11 ) 93 !/ 94 ! 1. Purpose : 95 ! 96 ! Partitioning of spectra into fields for all grid points that 97 ! are locally stored. 98 ! 99 ! 2. Method : 100 ! 101 ! 3. Parameters : 102 ! 103 ! Parameter list 104 ! ---------------------------------------------------------------- 105 ! IMOD Int. I Grid number. 106 ! ---------------------------------------------------------------- 107 ! 108 ! 4. Subroutines used : 109 ! 110 ! Name Type Module Description 111 ! ---------------------------------------------------------------- 112 ! W3PART Subr. W3PARTMD Spectral partition for single spectrum. 113 ! STRACE Subr. W3SERVMD Subroutine tracing. 114 ! ---------------------------------------------------------------- Page 3 Source Listing W3CPRT 2014-09-16 16:49 w3iosfmd.f90 115 ! 116 ! 5. Called by : 117 ! 118 ! Name Type Module Description 119 ! ---------------------------------------------------------------- 120 ! W3WAVE Subr. W3WAVEMD Actual wave model routine. 121 ! ---------------------------------------------------------------- 122 ! 123 ! 6. Error messages : 124 ! 125 ! 7. Remarks : 126 ! 127 ! - Although a sparse (IX,IY) grid is looked for, th major loop 128 ! is still over NSEAL to simplify storage. 129 ! 130 ! 8. Structure : 131 ! 132 ! 9. Switches : 133 ! 134 ! !/S Enable subroutine tracing. 135 ! !/T Enable test output 136 ! 137 ! 10. Source code : 138 ! 139 !/ ------------------------------------------------------------------- / 140 !/ 141 USE CONSTANTS 142 ! 143 USE W3PARTMD, ONLY: W3PART 144 ! 145 USE W3GDATMD, ONLY: NSEA, NSEAL, MAPSF, MAPSTA, NK, NTH, SIG 146 USE W3ADATMD, ONLY: WN, CG, U10, U10D, DW 147 USE W3ODATMD, ONLY: IAPROC, NAPROC, NDST, OUTPTS, O6INIT, & 148 ICPRT, DTPRT 149 USE W3WDATMD, ONLY: VA, ASF 150 ! 151 IMPLICIT NONE 152 !/ 153 !/ ------------------------------------------------------------------- / 154 !/ Parameter list 155 !/ 156 INTEGER, INTENT(IN) :: IMOD 157 !/ 158 !/ ------------------------------------------------------------------- / 159 !/ Local parameters 160 !/ 161 INTEGER :: DIMXP, NSEALM, JSEA, ISEA, IX, IY, & 162 IK, ITH, NP, TMPSIZ, OLDSIZ, FINSIZ 163 INTEGER, SAVE :: TSFAC = 7 164 REAL :: UABS, UDIR, DEPTH, FACT, E2(NK,NTH) 165 REAL, ALLOCATABLE :: XP(:,:), TMP(:,:), TMP2(:,:) 166 !/ 167 ! 168 ! -------------------------------------------------------------------- / 169 ! 0. Initializations 170 ! 171 DIMXP = ((NK+1)/2) * ((NTH-1)/2) Page 4 Source Listing W3CPRT 2014-09-16 16:49 w3iosfmd.f90 172 ALLOCATE ( XP(6,0:DIMXP) ) 173 ! 174 IF ( O6INIT ) THEN 175 DEALLOCATE ( OUTPTS(IMOD)%OUT6%DTPRT ) 176 ELSE 177 NSEALM = 1 + (NSEA-1)/NAPROC 178 ALLOCATE ( OUTPTS(IMOD)%OUT6%ICPRT(NSEALM+1,2) ) 179 ICPRT => OUTPTS(IMOD)%OUT6%ICPRT 180 O6INIT = .TRUE. 181 END IF 182 ICPRT = 0 183 ICPRT(1,2) = 1 184 ! 185 TMPSIZ = TSFAC * NSEAL 186 ALLOCATE ( TMP(6,TMPSIZ) ) 187 ! 188 ! -------------------------------------------------------------------- / 189 ! 1. Loop over sea points 190 ! 191 DO JSEA=1, NSEAL 192 ! 193 ! -------------------------------------------------------------------- / 194 ! 2. Check need for processing 195 ! 196 ISEA = IAPROC + (JSEA-1)*NAPROC 197 IX = MAPSF(ISEA,1) 198 IY = MAPSF(ISEA,2) 199 ICPRT(JSEA+1,2) = ICPRT(JSEA,2) 200 ! 201 IF ( MAPSTA(IY,IX) .LT. 0 ) CYCLE 202 ! 203 ! -------------------------------------------------------------------- / 204 ! 3. Prepare for partitioning 205 ! 206 UABS = U10(ISEA)*ASF(ISEA) 207 UDIR = U10D(ISEA)*RADE 208 DEPTH = DW(ISEA) 209 ! 210 DO IK=1, NK 211 FACT = TPI * SIG(IK) / CG(IK,ISEA) 212 DO ITH=1, NTH 213 E2(IK,ITH) = VA(ITH+(IK-1)*NTH,JSEA) * FACT 214 END DO 215 END DO 216 ! 217 ! -------------------------------------------------------------------- / 218 ! 4. perform partitioning 219 ! 220 !AR: NaN checks should results in immediate stop after trace ... 221 IF (DEPTH.NE.DEPTH) THEN 222 WRITE(6,*) 'IOSF:',ISEA,IX,IY,DW(ISEA),DEPTH 223 WRITE(*,*) 'FOUND NaN in depth' 224 STOP 'CRITICAL ERROR IN DEPTH ARRAY' 225 END IF 226 CALL W3PART ( E2, UABS, UDIR, DEPTH, WN(1:NK,ISEA), & 227 NP, XP, DIMXP ) 228 ! Page 5 Source Listing W3CPRT 2014-09-16 16:49 w3iosfmd.f90 229 ! -------------------------------------------------------------------- / 230 ! 5. Store results (temp) 231 ! 232 IF ( NP .GE. 0 ) THEN 233 ICPRT( JSEA ,1) = NP + 1 234 ICPRT(JSEA+1,2) = ICPRT(JSEA,2) + NP + 1 235 ! 236 IF ( ICPRT(JSEA,2)+NP .GT. TMPSIZ ) THEN 237 ALLOCATE ( TMP2(6,TMPSIZ) ) 238 TMP2 = TMP 239 DEALLOCATE ( TMP ) 240 OLDSIZ = TMPSIZ 241 TMPSIZ = TMPSIZ + MAX ( TSFAC*NSEAL , DIMXP ) 242 ALLOCATE ( TMP(6,TMPSIZ) ) 243 TMP(:,1:OLDSIZ) = TMP2(:,1:OLDSIZ) 244 TMP(:,OLDSIZ+1:) = 0. 245 END IF 246 ! 247 TMP(:,ICPRT(JSEA,2):ICPRT(JSEA,2)+NP) = XP(:,0:NP) 248 ! 249 END IF 250 ! 251 ! -------------------------------------------------------------------- / 252 ! 6. End of loop and clean up 253 ! 254 END DO 255 ! 256 FINSIZ = ICPRT(NSEAL+1,2) - 1 257 ! 258 ALLOCATE ( OUTPTS(IMOD)%OUT6%DTPRT(6,MAX(1,FINSIZ)) ) 259 DTPRT => OUTPTS(IMOD)%OUT6%DTPRT 260 IF ( FINSIZ .GT. 0 ) THEN 261 DTPRT = TMP(:,1:FINSIZ) 262 ELSE 263 DTPRT = 0. 264 END IF 265 ! 266 DEALLOCATE ( XP, TMP ) 267 ! 268 RETURN 269 ! 270 ! Formats 271 ! 272 !/ 273 !/ End of W3CPRT ----------------------------------------------------- / 274 !/ 275 END SUBROUTINE W3CPRT Page 6 Source Listing W3CPRT 2014-09-16 16:49 Entry Points w3iosfmd.f90 ENTRY POINTS Name w3iosfmd_mp_w3cprt_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References ASF Local 149 R(4) 4 1 1 PTR 149,206 CG Local 146 R(4) 4 2 1 PTR 146,211 CONSTANTS Module 141 141 DEPTH Local 164 R(4) 4 scalar 208,221,222,226 DIMXP Local 161 I(4) 4 scalar 171,172,227,241 DTPRT Local 148 R(4) 4 2 1 PTR 148,259,261,263 DTPRT Local 175 R(4) 4 2 1 PTR 175,258,259 DW Local 146 R(4) 4 1 1 PTR 146,208,222 E2 Local 164 R(4) 4 2 0 213,226 FACT Local 164 R(4) 4 scalar 211,213 FINSIZ Local 162 I(4) 4 scalar 256,258,260,261 IAPROC Local 147 I(4) 4 scalar PTR 147,196 ICPRT Local 148 I(4) 4 2 1 PTR 148,179,182,183,199,233,234,236,24 7,256 ICPRT Local 178 I(4) 4 2 1 PTR 178,179 IK Local 162 I(4) 4 scalar 210,211,213 IMOD Dummy 82 I(4) 4 scalar ARG,IN 175,178,179,258,259 ISEA Local 161 I(4) 4 scalar 196,197,198,206,207,208,211,222,22 6 ITH Local 162 I(4) 4 scalar 212,213 IX Local 161 I(4) 4 scalar 197,201,222 IY Local 161 I(4) 4 scalar 198,201,222 JSEA Local 161 I(4) 4 scalar 191,196,199,213,233,234,236,247 MAPSF Local 145 I(4) 4 2 1 PTR 145,197,198 MAPSTA Local 145 I(4) 4 2 1 PTR 145,201 MAX Func 241 scalar 241,258 NAPROC Local 147 I(4) 4 scalar PTR 147,177,196 NDST Local 147 I(4) 4 scalar PTR 147 NK Local 145 I(4) 4 scalar PTR 145,164,171,210,226 NP Local 162 I(4) 4 scalar 227,232,233,234,236,247 NSEA Local 145 I(4) 4 scalar PTR 145,177 NSEAL Local 145 I(4) 4 scalar PTR 145,185,191,241,256 NSEALM Local 161 I(4) 4 scalar 177,178 NTH Local 145 I(4) 4 scalar PTR 145,164,171,212,213 O6INIT Local 147 L(4) 4 scalar PTR 147,174,180 OLDSIZ Local 162 I(4) 4 scalar 240,243,244 OUT6 Local 175 W3ODATMD^OTYPE6 256 scalar 175,178,179,258,259 OUTPTS Local 147 RECORD 5960 1 1 ALC,TGT 147,175,178,179,258,259 RADE Param 207 R(4) 4 scalar 207 SIG Local 145 R(4) 4 1 1 PTR 145,211 TMP Local 165 R(4) 4 2 1 ALC 186,238,239,242,243,244,247,261,26 6 TMP2 Local 165 R(4) 4 2 1 ALC 237,238,243 TMPSIZ Local 162 I(4) 4 scalar 185,186,236,237,240,241,242 Page 7 Source Listing W3CPRT 2014-09-16 16:49 Symbol Table w3iosfmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References TPI Param 211 R(4) 4 scalar 211 TSFAC Local 163 I(4) 4 scalar 163,185,241 U10 Local 146 R(4) 4 1 1 PTR 146,206 U10D Local 146 R(4) 4 1 1 PTR 146,207 UABS Local 164 R(4) 4 scalar 206,226 UDIR Local 164 R(4) 4 scalar 207,226 VA Local 149 R(4) 4 2 1 PTR 149,213 W3ADATMD Module 146 146 W3CPRT Subr 82 W3GDATMD Module 145 145 W3ODATMD Module 147 147 W3PART Subr 143 143,226 W3PARTMD Module 143 143 W3WDATMD Module 149 149 WN Local 146 R(4) 4 2 1 PTR 146,226 XP Local 165 R(4) 4 2 1 ALC 172,227,247,266 Page 8 Source Listing W3CPRT 2014-09-16 16:49 w3iosfmd.f90 276 277 !/ ------------------------------------------------------------------- / 278 SUBROUTINE W3IOSF ( NDSPT, IMOD ) 279 !/ 280 !/ +-----------------------------------+ 281 !/ | WAVEWATCH III NOAA/NCEP | 282 !/ | H. L. Tolman | 283 !/ | FORTRAN 90 | 284 !/ | Last update : 30-Oct-2009 | 285 !/ +-----------------------------------+ 286 !/ 287 !/ 02-Nov-2006 : Origination. ( version 1.10 ) 288 !/ 24-Mar-2007 : Add pars for entire spectrum. ( version 3.11 ) 289 !/ 17-May-2007 : Adding NTPROC/NAPROC separation. ( version 3.11 ) 290 !/ 30-Oct-2009 : Fix unitialized dtsiz error. ( version 3.14 ) 291 !/ (T. J. Campbell, NRL) 292 !/ 30-Oct-2009 : Implement run-time grid selection. ( version 3.14 ) 293 !/ (W. E. Rogers & T. J. Campbell, NRL) 294 !/ 30-Oct-2009 : Implement curvilinear grid type. ( version 3.14 ) 295 !/ (W. E. Rogers & T. J. Campbell, NRL) 296 !/ 297 ! 1. Purpose : 298 ! 299 ! Write partitioned spectrakl data to file. Unlike other 300 ! WAVEWATCH III IO routines, this one writes only. 301 ! First ad-hoc version. 302 ! 303 ! 2. Method : 304 ! 305 ! Writing to formatted or unformatted file with ID headers. 306 ! 307 ! 3. Parameters : 308 ! 309 ! Parameter list 310 ! ---------------------------------------------------------------- 311 ! NDSPT Int. I Unit number. 312 ! IMOD Int. I Grid number. 313 ! ---------------------------------------------------------------- 314 ! 315 ! 4. Subroutines used : 316 ! 317 ! Name Type Module Description 318 ! ---------------------------------------------------------------- 319 ! STRACE Subr. W3SERVMD Subroutine tracing. 320 ! EXTCDE Subr. Id. Program abort. 321 ! MPI_SEND, MPI_RECV 322 ! MPI send and recieve routines 323 ! ---------------------------------------------------------------- 324 ! 325 ! 5. Called by : 326 ! 327 ! Name Type Module Description 328 ! ---------------------------------------------------------------- 329 ! W3WAVE Subr. W3WAVEMD Actual wave model routine. 330 ! ---------------------------------------------------------------- 331 ! 332 ! 6. Error messages : Page 9 Source Listing W3IOSF 2014-09-16 16:49 w3iosfmd.f90 333 ! 334 ! 7. Remarks : 335 ! 336 ! 8. Structure : 337 ! 338 ! 9. Switches : 339 ! 340 ! !/S Enable subroutine tracing. 341 ! !/T Enable test output 342 ! 343 ! 10. Source code : 344 ! 345 !/ ------------------------------------------------------------------- / 346 !/ 347 USE CONSTANTS 348 USE W3SERVMD, ONLY: EXTCDE 349 ! 350 USE W3GDATMD, ONLY: FILEXT, NSEA, XGRD, YGRD, MAPSF, FLAGLL 351 USE W3GDATMD, ONLY: NSEAL 352 USE W3WDATMD, ONLY: TIME, ASF 353 USE W3ODATMD, ONLY: NDST, NDSE, IAPROC, NAPROC, NAPPRT, NAPERR, & 354 IPASS => IPASS6, FLFORM, FNMPRE, OUTPTS, & 355 IX0, IXN, IXS, IY0, IYN, IYS 356 USE W3ADATMD, ONLY: DW, U10, U10D, CX, CY 357 USE W3ADATMD, ONLY: MPI_COMM_WAVE 358 USE W3ODATMD, ONLY: ICPRT, DTPRT, IT0PRT 359 ! 360 IMPLICIT NONE 361 ! 362 INCLUDE "mpif.h" 363 !/ 364 !/ ------------------------------------------------------------------- / 365 !/ Parameter list 366 !/ 905 INTEGER, INTENT(IN) :: NDSPT, IMOD 906 !/ 907 !/ ------------------------------------------------------------------- / 908 !/ Local parameters 909 !/ 910 INTEGER :: I, J, IERR, ISEA, JSEA, JAPROC, & 911 IX, IY, IP, IOFF, NSEALM, DTSIZ=0 912 INTEGER :: ICSIZ, IERR_MPI, IT, & 913 STATUS(MPI_STATUS_SIZE,1), JSLM 914 INTEGER, POINTER :: ICP(:,:) 915 REAL :: X, Y, DEPTH, UABS, UDIR, CABS, CDIR 916 REAL, POINTER :: DTP(:,:) 917 ! 918 TYPE PROCS 919 INTEGER, POINTER :: ICPRT(:,:) 920 REAL, POINTER :: DTPRT(:,:) 921 END TYPE PROCS 922 ! 923 TYPE(PROCS), TARGET, ALLOCATABLE :: PROC(:) 924 ! 925 ! -------------------------------------------------------------------- / 926 ! 0. Initializations 927 ! Page 10 Source Listing W3IOSF 2014-09-16 16:49 w3iosfmd.f90 928 IPASS = IPASS + 1 929 NSEALM = 1 + (NSEA-1)/NAPROC 930 ICSIZ = 2 * ( NSEALM + 1 ) 931 ! 932 ! -------------------------------------------------------------------- / 933 ! 1. Set up file ( IPASS = 1 and proper processor ) 934 ! 935 IF ( IPASS.EQ.1 .AND. IAPROC.EQ.NAPPRT ) THEN 936 ! 937 ! 1.a Open file 938 ! 939 I = LEN_TRIM(FILEXT) 940 J = LEN_TRIM(FNMPRE) 941 ! 942 IF ( FLFORM ) THEN 943 OPEN (NDSPT,FILE=FNMPRE(:J)//'partition.'//FILEXT(:I), & 944 ERR=800,IOSTAT=IERR) 945 ELSE 946 OPEN (NDSPT,FILE=FNMPRE(:J)//'partition.'//FILEXT(:I), & 947 FORM='UNFORMATTED',ERR=800,IOSTAT=IERR) 948 END IF 949 ! 950 REWIND (NDSPT) 951 ! 952 ! 1.b Header info 953 ! 954 IF ( FLFORM ) THEN 955 WRITE (NDSPT,910) IDSTR, VERPRT 956 IF ( FLAGLL ) THEN 957 WRITE (NDSPT,911) ' yyyymmdd hhmmss '// & 958 'lat lon name nprt'// & 959 ' depth ubas udir cabs cdir' 960 ELSE 961 WRITE (NDSPT,911) ' yyyymmdd hhmmss '// & 962 'X Y name nprt'// & 963 ' depth ubas udir cabs cdir' 964 END IF 965 WRITE (NDSPT,911) ' hs tp lp '// & 966 ' theta sp wf' 967 ELSE 968 WRITE ( NDSPT ) IDSTR, VERPRT 969 IF ( FLAGLL ) THEN 970 WRITE ( NDSPT ) ' yyyymmdd hhmmss '// & 971 'lat lon name nprt'// & 972 ' depth ubas udir cabs cdir' 973 ELSE 974 WRITE ( NDSPT ) ' yyyymmdd hhmmss '// & 975 'X Y name nprt'// & 976 ' depth ubas udir cabs cdir' 977 END IF 978 WRITE ( NDSPT ) ' hs tp lp '// & 979 ' theta sp wf' 980 END IF 981 ! 982 END IF 983 ! 984 ! -------------------------------------------------------------------- / Page 11 Source Listing W3IOSF 2014-09-16 16:49 w3iosfmd.f90 985 ! 2. Send data if output is non-local ( MPI only ) 986 ! Leave routine after send 987 ! 988 IF ( IAPROC.NE.NAPPRT .AND. IAPROC.LE.NAPROC ) THEN 989 ! 990 IT = IT0PRT + IAPROC - 1 991 CALL MPI_SEND ( ICPRT, ICSIZ, MPI_REAL, NAPPRT-1, IT, & 992 MPI_COMM_WAVE, IERR_MPI ) 993 DTSIZ = ICPRT(NSEAL+1,2) - 1 994 ! 995 IT = IT0PRT + NAPROC + IAPROC - 1 996 IF ( DTSIZ .GT. 0 ) CALL MPI_SEND & 997 ( DTPRT, 6*DTSIZ, MPI_REAL, NAPPRT-1, & 998 IT, MPI_COMM_WAVE, IERR_MPI ) 999 ! 1000 END IF 1001 ! 1002 IF ( IAPROC .NE. NAPPRT ) RETURN 1003 ! 1004 ! -------------------------------------------------------------------- / 1005 ! 3. Point to and/or gather data 1006 ! 3.a Set up storage 1007 ! 1008 ALLOCATE ( PROC(NAPROC) ) 1009 ! 1010 ! 3.b Point to local data 1011 ! 1012 IF ( IAPROC .LE. NAPROC ) THEN 1013 PROC(IAPROC)%ICPRT => OUTPTS(IMOD)%OUT6%ICPRT 1014 PROC(IAPROC)%DTPRT => OUTPTS(IMOD)%OUT6%DTPRT 1015 END IF 1016 ! 1017 ! 3.c Allocate and get counters and arrrays 1018 ! 1019 DO JAPROC=1, NAPROC 1020 IF ( IAPROC .EQ. JAPROC ) CYCLE 1021 ! 1022 ALLOCATE ( PROC(JAPROC)%ICPRT(NSEALM+1,2) ) 1023 ICP => PROC(JAPROC)%ICPRT 1024 IT = IT0PRT + JAPROC - 1 1025 CALL MPI_RECV ( ICP, ICSIZ, MPI_REAL, JAPROC-1, IT, & 1026 MPI_COMM_WAVE, STATUS, IERR_MPI ) 1027 JSLM = 1 + (NSEA-JAPROC)/NAPROC 1028 DTSIZ = ICP(JSLM+1,2) - 1 1029 ! 1030 ALLOCATE ( PROC(JAPROC)%DTPRT(6,MAX(1,DTSIZ)) ) 1031 DTP => PROC(JAPROC)%DTPRT 1032 IT = IT0PRT + NAPROC + JAPROC - 1 1033 IF ( DTSIZ .GT. 0 ) CALL MPI_RECV & 1034 ( DTP, 6*DTSIZ, MPI_REAL, JAPROC-1, & 1035 IT, MPI_COMM_WAVE, STATUS, IERR_MPI ) 1036 ! 1037 END DO 1038 ! 1039 ! -------------------------------------------------------------------- / 1040 ! 4. Write all data for which partitions are found 1041 ! 4.a General loop over all sea points Page 12 Source Listing W3IOSF 2014-09-16 16:49 w3iosfmd.f90 1042 ! 1043 DO ISEA=1, NSEA 1044 ! 1045 ! 4.b Check for partitioned data at sea point 1046 ! 1047 JSEA = 1 + (ISEA-1)/NAPROC 1048 JAPROC = 1 + MOD(ISEA-1,NAPROC) 1049 ! 1050 ICP => PROC(JAPROC)%ICPRT 1051 DTP => PROC(JAPROC)%DTPRT 1052 ! 1053 IF ( ICP(JSEA,1) .EQ. 0 ) CYCLE 1054 ! 1055 ! 4.c Process point ID line 1056 ! 1057 IX = MAPSF(ISEA,1) 1058 IY = MAPSF(ISEA,2) 1059 IF ( IX.LT.IX0 .OR. IX.GT.IXN .OR. MOD(IX-IX0,IXS).NE.0 ) CYCLE 1060 IF ( IY.LT.IY0 .OR. IY.GT.IYN .OR. MOD(IY-IY0,IYS).NE.0 ) CYCLE 1061 X = XGRD(IY,IX) 1062 Y = YGRD(IY,IX) 1063 DEPTH = DW(ISEA) 1064 UABS = U10(ISEA)*ASF(ISEA) 1065 UDIR = MOD ( 270. - U10D(ISEA)*RADE , 360. ) 1066 CABS = SQRT ( CX(ISEA)**2 + CY(ISEA)**2 ) 1067 IF ( CABS .LT. 1.E-3 ) THEN 1068 CDIR = 0. 1069 ELSE 1070 CDIR = ATAN2 ( CY(ISEA), CX(ISEA) ) * RADE 1071 CDIR = MOD ( 270. - CDIR , 360. ) 1072 END IF 1073 ! 1074 IF ( FLFORM ) THEN 1075 IF ( FLAGLL ) THEN 1076 WRITE (NDSPT,940) TIME, Y, X, & 1077 'grid_point', ICP(JSEA,1) - 1, & 1078 DEPTH, UABS, UDIR, CABS, CDIR 1079 ELSE 1080 WRITE (NDSPT,941) TIME, X*1.E-3, Y*1.E-3, & 1081 'grid_point', ICP(JSEA,1) - 1, & 1082 DEPTH, UABS, UDIR, CABS, CDIR 1083 END IF 1084 ELSE 1085 IF ( FLAGLL ) THEN 1086 WRITE ( NDSPT ) TIME, Y, X, & 1087 'grid_point', ICP(JSEA,1) - 1, & 1088 DEPTH, UABS, UDIR, CABS, CDIR 1089 ELSE 1090 WRITE ( NDSPT ) TIME, X*1.E-3, Y*1.E-3, & 1091 'grid_point', ICP(JSEA,1) - 1, & 1092 DEPTH, UABS, UDIR, CABS, CDIR 1093 END IF 1094 END IF 1095 ! 1096 ! 4.d Process partitions for this point 1097 ! 1098 IOFF = ICP(JSEA,2) Page 13 Source Listing W3IOSF 2014-09-16 16:49 w3iosfmd.f90 1099 ! 1100 IF ( FLFORM ) THEN 1101 DO IP=0, ICP(JSEA,1) - 1 1102 WRITE (NDSPT,942) IP, DTP(:,IP+IOFF) 1103 END DO 1104 ELSE 1105 DO IP=0, ICP(JSEA,1) - 1 1106 WRITE ( NDSPT ) IP, DTP(:,IP+IOFF) 1107 END DO 1108 END IF 1109 ! 1110 END DO 1111 ! 1112 ! -------------------------------------------------------------------- / 1113 ! 5. Clean up data structure 1114 ! 1115 DO JAPROC=1, NAPROC 1116 IF ( IAPROC .EQ. JAPROC ) CYCLE 1117 DEALLOCATE ( PROC(JAPROC)%ICPRT, PROC(JAPROC)%DTPRT ) 1118 END DO 1119 ! 1120 DEALLOCATE ( PROC ) 1121 ! 1122 RETURN 1123 ! 1124 ! Escape locations read errors --------------------------------------- * 1125 ! 1126 800 CONTINUE 1127 IF ( IAPROC .EQ. NAPERR ) WRITE (NDSE,1000) IERR 1128 CALL EXTCDE ( 1 ) 1129 ! 1130 ! Formats 1131 ! 1132 910 FORMAT (A,1X,A) 1133 911 FORMAT (A) 1134 ! 1135 940 FORMAT (1X,I8.8,1X,I6.6,2F8.3,2X,'''',A10,'''', & 1136 1X,I2,F7.1,F5.1,f6.1,F5.2,F6.1) 1137 941 FORMAT (1X,I8.8,1X,I6.6,2(F8.1,'E3'),2X,'''',A10,'''', & 1138 1X,I2,F7.1,F5.1,f6.1,F5.2,F6.1) 1139 942 FORMAT (I3,3F8.2,2F9.2,F7.2) 1140 ! 1141 1000 FORMAT (/' *** WAVEWATCH III ERROR IN W3IOSF : '/ & 1142 ' ERROR IN OPENING FILE'/ & 1143 ' IOSTAT =',I5/) 1144 ! 1145 !/ 1146 !/ End of W3IOSF ----------------------------------------------------- / 1147 !/ 1148 END SUBROUTINE W3IOSF Page 14 Source Listing W3IOSF 2014-09-16 16:49 Entry Points w3iosfmd.f90 ENTRY POINTS Name w3iosfmd_mp_w3iosf_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1000 Label 603 589 800 Label 588 406,409 910 Label 594 417 911 Label 595 419,423,427 940 Label 597 538 941 Label 599 542 942 Label 601 564 ASF Local 352 R(4) 4 1 1 PTR 352,526 ATAN2 Func 532 scalar 532 CABS Local 377 R(4) 4 scalar 528,529,540,544,550,554 CDIR Local 377 R(4) 4 scalar 530,532,533,540,544,550,554 CONSTANTS Module 347 347 CX Local 356 R(4) 4 1 1 PTR 356,528,532 CY Local 356 R(4) 4 1 1 PTR 356,528,532 DEPTH Local 377 R(4) 4 scalar 525,540,544,550,554 DTP Local 378 R(4) 4 2 1 PTR 493,496,513,564,568 DTPRT Local 358 R(4) 4 2 1 PTR 358,459 DTPRT Local 382 R(4) 4 2 1 PTR 476,492,493,513,579 DTPRT Local 476 R(4) 4 2 1 PTR 476 DTSIZ Local 373 I(4) 4 scalar 373,455,458,459,490,492,495,496 DW Local 356 R(4) 4 1 1 PTR 356,525 EXTCDE Subr 348 348,590 FILEXT Local 350 CHAR 10 scalar PTR 350,401,405,408 FLAGLL Local 350 L(4) 4 scalar 350,418,431,537,547 FLFORM Local 354 L(4) 4 scalar PTR 354,404,416,536,562 FNMPRE Local 354 CHAR 80 scalar 354,402,405,408 I Local 372 I(4) 4 scalar 401,405,408 IAPROC Local 353 I(4) 4 scalar PTR 353,397,450,452,457,464,474,475,47 6,482,578,589 ICP Local 376 I(4) 4 2 1 PTR 485,487,490,512,515,539,543,549,55 3,560,563,567 ICPRT Local 358 I(4) 4 2 1 PTR 358,453,455 ICPRT Local 381 I(4) 4 2 1 PTR 475,484,485,512,579 ICPRT Local 475 I(4) 4 2 1 PTR 475 ICSIZ Local 374 I(4) 4 scalar 392,453,487 IDSTR Param 417 CHAR 35 scalar PRIV 78,417,430 IERR Local 372 I(4) 4 scalar 406,409,589 IERR_MPI Local 374 I(4) 4 scalar 454,460,488,497 IMOD Dummy 278 I(4) 4 scalar ARG,IN 475,476 IOFF Local 373 I(4) 4 scalar 560,564,568 IP Local 373 I(4) 4 scalar 563,564,567,568 IPASS Local 354 I(4) 4 scalar PTR 390,397 ISEA Local 372 I(4) 4 scalar 505,509,510,519,520,525,526,527,52 8,532 Page 15 Source Listing W3IOSF 2014-09-16 16:49 Symbol Table w3iosfmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References IT Local 374 I(4) 4 scalar 452,453,457,460,486,487,494,497 IT0PRT Local 358 I(4) 4 scalar PTR 358,452,457,486,494 IX Local 373 I(4) 4 scalar 519,521,523,524 IX0 Local 355 I(4) 4 scalar PTR 355,521 IXN Local 355 I(4) 4 scalar PTR 355,521 IXS Local 355 I(4) 4 scalar PTR 355,521 IY Local 373 I(4) 4 scalar 520,522,523,524 IY0 Local 355 I(4) 4 scalar PTR 355,522 IYN Local 355 I(4) 4 scalar PTR 355,522 IYS Local 355 I(4) 4 scalar PTR 355,522 J Local 372 I(4) 4 scalar 402,405,408 JAPROC Local 372 I(4) 4 scalar 481,482,484,485,486,487,489,492,49 3,494,496,510,512,513,577,578,579 JSEA Local 372 I(4) 4 scalar 509,515,539,543,549,553,560,563,56 7 JSLM Local 375 I(4) 4 scalar 489,490 LEN_TRIM Func 401 scalar 401,402 MAPSF Local 350 I(4) 4 2 1 PTR 350,519,520 MAX Func 492 scalar 492 MOD Func 510 scalar 510,521,522,527,533 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 Page 16 Source Listing W3IOSF 2014-09-16 16:49 Symbol Table w3iosfmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References ER Param 427 I(4) 4 scalar MPI_COMBINER_INDEXED Param 431 I(4) 4 scalar MPI_COMBINER_INDEXED_BLOCK Param 437 I(4) 4 scalar MPI_COMBINER_NAMED Param 419 I(4) 4 scalar MPI_COMBINER_RESIZED Param 453 I(4) 4 scalar MPI_COMBINER_STRUCT Param 441 I(4) 4 scalar MPI_COMBINER_STRUCT_INTEGE R Param 439 I(4) 4 scalar MPI_COMBINER_SUBARRAY Param 443 I(4) 4 scalar MPI_COMBINER_VECTOR Param 425 I(4) 4 scalar MPI_COMM_DUP_FN Subr 521 scalar MPI_COMM_NULL Param 239 I(4) 4 scalar MPI_COMM_NULL_COPY_FN Subr 522 scalar MPI_COMM_NULL_DELETE_FN Subr 521 scalar MPI_COMM_SELF Param 235 I(4) 4 scalar MPI_COMM_WAVE Local 357 I(4) 4 scalar PTR 357,454,460,488,497 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 Page 17 Source Listing W3IOSF 2014-09-16 16:49 Symbol Table w3iosfmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 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 Page 18 Source Listing W3IOSF 2014-09-16 16:49 Symbol Table w3iosfmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 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 453,459,487,496 MPI_REAL16 Param 364 I(4) 4 scalar MPI_REAL4 Param 360 I(4) 4 scalar Page 19 Source Listing W3IOSF 2014-09-16 16:49 Symbol Table w3iosfmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References MPI_REAL8 Param 362 I(4) 4 scalar MPI_RECV Subr 487 487,495 MPI_REPLACE Param 231 I(4) 4 scalar MPI_REQUEST_NULL Param 251 I(4) 4 scalar MPI_ROOT Param 304 I(4) 4 scalar MPI_SEEK_CUR Param 499 I(4) 4 scalar MPI_SEEK_END Param 501 I(4) 4 scalar MPI_SEEK_SET Param 497 I(4) 4 scalar MPI_SEND Subr 453 453,458 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,375 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_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 NAPERR Local 353 I(4) 4 scalar PTR 353,589 Page 20 Source Listing W3IOSF 2014-09-16 16:49 Symbol Table w3iosfmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References NAPPRT Local 353 I(4) 4 scalar PTR 353,397,450,453,459,464 NAPROC Local 353 I(4) 4 scalar PTR 353,391,450,457,470,474,481,489,49 4,509,510,577 NDSE Local 353 I(4) 4 scalar PTR 353,589 NDSPT Dummy 278 I(4) 4 scalar ARG,IN 405,408,412,417,419,423,427,430,43 2,436,440,538,542,548,552,564,568 NDST Local 353 I(4) 4 scalar PTR 353 NSEA Local 350 I(4) 4 scalar PTR 350,391,489,505 NSEAL Local 351 I(4) 4 scalar PTR 351,455 NSEALM Local 373 I(4) 4 scalar 391,392,484 OUT6 Local 475 W3ODATMD^OTYPE6 256 scalar 475,476 OUTPTS Local 354 RECORD 5960 1 1 ALC,TGT 354,475,476 PMPI_WTICK Func 520 R(8) 8 scalar PMPI_WTIME Func 520 R(8) 8 scalar PROC Local 385 RECORD 192 1 1 ALC,TGT 470,475,476,484,485,492,493,512,51 3,579,582 PROCS Type 380 192 scalar 383,385 RADE Param 527 R(4) 4 scalar 527,532 SQRT Func 528 scalar 528 STATUS Local 375 I(4) 4 2 5 488,497 TIME Local 352 I(4) 4 1 1 PTR 352,538,542,548,552 U10 Local 356 R(4) 4 1 1 PTR 356,526 U10D Local 356 R(4) 4 1 1 PTR 356,527 UABS Local 377 R(4) 4 scalar 526,540,544,550,554 UDIR Local 377 R(4) 4 scalar 527,540,544,550,554 VERPRT Param 417 CHAR 10 scalar PRIV 76,417,430 W3ADATMD Module 356 356,357 W3GDATMD Module 350 350,351 W3IOSF Subr 278 W3ODATMD Module 353 353,358 W3SERVMD Module 348 348 W3WDATMD Module 352 352 X Local 377 R(4) 4 scalar 523,538,542,548,552 XGRD Local 350 R(4) 4 2 1 PTR 350,523 Y Local 377 R(4) 4 scalar 524,538,542,548,552 YGRD Local 350 R(4) 4 2 1 PTR 350,524 Page 21 Source Listing W3IOSF 2014-09-16 16:49 w3iosfmd.f90 1149 !/ 1150 !/ End of module W3IOSFMD -------------------------------------------- / 1151 !/ 1152 END MODULE W3IOSFMD SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References W3IOSFMD Module 2 Page 22 Source Listing W3IOSF 2014-09-16 16:49 Subprograms/Common Blocks w3iosfmd.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 W3CPRT Subr 82 W3IOSF Subr 278 W3IOSFMD Module 2 COMPILER OPTIONS BEING USED -align nocommons -align nodcommons -align noqcommons -align records -align nosequence -align norec1byte -align norec2byte -align norec4byte -align norec8byte -align norec16byte -altparam -assume accuracy_sensitive -assume nobscc -assume nobuffered_io -assume byterecl -assume cc_omp -assume nocstring -assume nodummy_aliases -assume nofpe_summary -assume noieee_fpe_flags -assume nominus0 -assume noold_boz -assume old_unit_star -assume old_ldout_format -assume noold_logical_ldio -assume old_maxminloc -assume old_xor -assume protect_constants -assume noprotect_parens -assume split_common -assume source_include -assume nostd_intent_in -assume nostd_mod_proc_name -assume norealloc_lhs -assume underscore -assume no2underscores -auto no -auto_scalar no -bintext -ccdefault default -check noargs -check noarg_temp_created -check nobounds -check noformat -check nooutput_conversion -check nooverflow -check nopointers -check power -check noshape -check nounderflow -check nouninitialized -coarray-num-procs 0 no -coarray-config-file -convert big_endian -cross_reference -D __INTEL_COMPILER=1210 -D __unix__ -D __unix -D __linux__ -D __linux -D __gnu_linux__ -D unix -D linux -D __ELF__ -D __x86_64 -D __x86_64__ -D _MT -D __INTEL_COMPILER_BUILD_DATE=20120612 -D _OPENMP=201107 -D __pentium4 -D __pentium4__ -D __tune_pentium4__ -D __SSE2__ -D __SSE3__ -D __SSSE3__ -D __SSE4_1__ -D __SSE4_2__ -D __SSE__ -D __MMX__ -D __AVX__ -double_size 64 no -d_lines no -Qdyncom -error_limit 30 Page 23 Source Listing W3IOSF 2014-09-16 16:49 w3iosfmd.f90 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 : w3iosfmd.lst -o filename : none COMPILER: Intel(R) Fortran 12.1-2100