Page 1 Source Listing 2014-09-16 16:49 wminitmd.f90 wminitmd.f90(907): remark #8290: Recommended relationship between field width 'W' and the number of fractional digits 'D' in this... WRITE (LINE(JJJ+6:JJJ+11),'(F6.4)') RP1(INGRP(J,JJ)) ---------------------------------------^ wminitmd.f90(909): remark #8290: Recommended relationship between field width 'W' and the number of fractional digits 'D' in this... WRITE (LINE(JJJ+13:JJJ+18),'(F6.4)') RPN(INGRP(J,JJ)) ----------------------------------------^ Page 2 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 1 !/ ------------------------------------------------------------------- / 2 MODULE WMINITMD 3 !/ 4 !/ +-----------------------------------+ 5 !/ | WAVEWATCH III NOAA/NCEP | 6 !/ | H. L. Tolman | 7 !/ | FORTRAN 90 | 8 !/ | Last update : 28-Jul-2012 | 9 !/ +-----------------------------------+ 10 !/ 11 !/ 13-Jun-2005 : Origination. ( version 3.07 ) 12 !/ See subroutine for update log. 13 !/ 29-May-2009 : Preparing distribution version. ( version 3.14 ) 14 !/ 30-Oct-2009 : Implement run-time grid selection. ( version 3.14 ) 15 !/ (W. E. Rogers & T. J. Campbell, NRL) 16 !/ 16-Aug-2010 : Adding NTRMAX to unify NTRACE. ( version 3.14 ) 17 !/ 06-Dec-2010 : Change from GLOBAL (logical) to ICLOSE (integer) to 18 !/ specify index closure for a grid. ( version 3.14 ) 19 !/ (T. J. Campbell, NRL) 20 !/ 05-Sep-2011 : Distribute HQFAC anf HPFAC to idle processors for 21 !/ use in WMGRIDMD. ( version 4.05 ) 22 !/ 07-Mar-2012 : Adding TNAMES to avoid read warn. ( version 4.07 ) 23 !/ Adjust allocation INPMAP and IDINP. 24 !/ 12-Mar-2012 : Fixing format 9061. ( version 3.14 ) 25 !/ Use MPI_COMM_NULL for checks instead of fixed '-1'. 26 !/ 28-Jul-2012 : Initialize FLGR2 properly. ( version 4.08 ) 27 !/ Tom Durrant's fix, but moved to allocation. 28 !/ 28-Nov-2012 : Bug fix: Distribute to idle processors the grid data 29 !/ required for regridding. ( version 4.08 ) 30 !/ (T. J. Campbell, NRL) 31 !/ 02-Sep-2012 : Set up for > 999 test files. ( version 4.10 ) 32 !/ Set up output for > 999 procs. 33 !/ 03-Sep-2012 : Output of initilization time. ( version 4.10 ) 34 !/ Switch test file on/off (TSTOUT) 35 !/ 36 !/ Copyright 2009-2012 National Weather Service (NWS), 37 !/ National Oceanic and Atmospheric Administration. All rights 38 !/ reserved. WAVEWATCH III is a trademark of the NWS. 39 !/ No unauthorized use without permission. 40 !/ 41 ! 1. Purpose : 42 ! 43 ! Initialization of the multi-grid wave model. As a preparation 44 ! for coupled modeling, all initialization, including the 45 ! processing of the input file has ben included in the routine. 46 ! 47 ! 2. Variables and types : 48 ! 49 ! Name Type Scope Description 50 ! ---------------------------------------------------------------- 51 ! NTRMAX Int. Local Maximum number of subroutine trace 52 ! printouts (NTRACE in subr. ITRACE). 53 ! ---------------------------------------------------------------- 54 ! 55 ! 3. Subroutines and functions : 56 ! 57 ! Name Type Scope Description Page 3 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 58 ! ---------------------------------------------------------------- 59 ! WMINIT Subr. Public Wave model initialization. 60 ! ---------------------------------------------------------------- 61 ! 62 ! 4. Subroutines and functions used : 63 ! 64 ! See subroutine documentation. 65 ! 66 ! 5. Remarks : 67 ! 68 ! 6. Switches : 69 ! 70 ! See subroutine documentation. 71 ! 72 ! 7. Source code : 73 ! 74 !/ ------------------------------------------------------------------- / 75 PUBLIC 76 !/ 77 INTEGER, PRIVATE :: NTRMAX = 1000 78 !/ 79 CONTAINS 80 !/ ------------------------------------------------------------------- / 81 SUBROUTINE WMINIT ( IDSI, IDSO, IDSS, IDST, IDSE, IFNAME, & 82 MPI_COMM, PREAMB ) 83 !/ 84 !/ +-----------------------------------+ 85 !/ | WAVEWATCH III NOAA/NCEP | 86 !/ | H. L. Tolman | 87 !/ | FORTRAN 90 | 88 !/ | Last update : 28-Jul-2012 | 89 !/ +-----------------------------------+ 90 !/ 91 !/ 13-Jun-2005 : Origination. ( version 3.07 ) 92 !/ 28-Dec-2005 : Add static nesting. ( version 3.08 ) 93 !/ 25-May-2006 : Add overlapping grids. ( version 3.09 ) 94 !/ 26-Jun-2006 : Add output type 6. ( version 3.09 ) 95 !/ 29-Jun-2006 : Adding file name preamble. ( version 3.09 ) 96 !/ 09-Aug-2006 : Unified point output added. ( version 3.10 ) 97 !/ 14-Oct-2006 : Adding separate input grids. ( version 3.10 ) 98 !/ 03-Nov-2006 : Adding wave field separation. ( version 3.10 ) 99 !/ 02-Feb-2007 : Adding FLAGST initialization. ( version 3.10 ) 100 !/ 21-Jun-2007 : Dedicated output processes. ( version 3.11 ) 101 !/ 29-May-2009 : Preparing distribution version. ( version 3.14 ) 102 !/ 30-Oct-2009 : Implement run-time grid selection. ( version 3.14 ) 103 !/ (W. E. Rogers & T. J. Campbell, NRL) 104 !/ 16-Aug-2010 : Adding NTRMAX to unify NTRACE. ( version 3.14.5 ) 105 !/ 21-Sep-2010 : Adding coupling output ( version 3.14-Ifremer) 106 !/ 06-Dec-2010 : Change from GLOBAL (logical) to ICLOSE (integer) to 107 !/ specify index closure for a grid. ( version 3.14 ) 108 !/ (T. J. Campbell, NRL) 109 !/ 28-Jul-2012 : Initialize FLGR2 properly. ( version 4.08 ) 110 !/ Tom Durant's fix, but moved to allocation. 111 !/ 28-Nov-2012 : Bug fix: Distribute to idle processors the grid data 112 !/ required for regridding. ( version 4.08 ) 113 !/ (T. J. Campbell, NRL) 114 !/ 02-Sep-2012 : Set up for > 999 test files. ( version 4.10 ) Page 4 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 115 !/ Set up output for > 999 procs. 116 !/ 03-Sep-2012 : Output of initilization time. ( version 4.10 ) 117 !/ Switch test file on/off (TSTOUT) 118 !/ 28-Nov-2012 : Bug fix: Distribute to idle processors the grid data 119 !/ required for regridding. ( version 4.08 ) 120 !/ (T. J. Campbell, NRL) 121 !/ 15-Apr-2013 : Changes the reading of output fields( version 4.10 ) 122 !/ (F. Ardhuin) 123 !/ 124 ! 1. Purpose : 125 ! 126 ! Initialize multi-grid version of WAVEWATCH III. 127 ! 128 ! 2. Method : 129 ! 130 ! 3. Parameters : 131 ! 132 ! Parameter list 133 ! ---------------------------------------------------------------- 134 ! IDSI Int. I Unit number for input file. 135 ! IDSO Int. I Unit number for output file. 136 ! IDSS Int. I Unit number for "screen" output. Switch off 137 ! by setting equal to IDSO. 138 ! IDST Int. I Unit number for test output. 139 ! IDSE Int. I Unit number for error output. 140 ! IFNAME Char I File name for input file. 141 ! MPI_COMM Int. I MPI communicator to be used. 142 ! PREAMB Char I File name preamble (optiona). 143 ! ---------------------------------------------------------------- 144 ! 145 ! 4. Subroutines used : 146 ! 147 ! Name Type Module Description 148 ! ---------------------------------------------------------------- 149 ! W3NMOD Subr. W3GDATMD Data structure initialization. 150 ! W3DIMX Subr. Id. Set grid arrays. 151 ! W3DIMS Subr. Id. Set grid arrays. 152 ! W3SETG Subr. Id. Point to grid/model. 153 ! W3NDAT Subr. W3WDATMD Data structure initialization. 154 ! W3SETW Subr. Id. Point to grid/model. 155 ! W3NAUX Subr. W3ADATMD Data structure initialization. 156 ! W3SETA Subr. Id. Point to grid/model. 157 ! W3NOUT Subr. W3ODATMD Data structure initialization. 158 ! W3SETO Subr. Id. Point to grid/model. 159 ! W3NINP Subr. W3IDATMD Data structure initialization. 160 ! W3SETI Subr. Id. Point to grid/model. 161 ! W3DIMI Subr. Id. Allocate grid/model. 162 ! WMNDAT Subr. WMMDATMD Data structure initialization. 163 ! WMSETM Subr. Id. Point to grid/model. 164 ! WMDIMD Subr. Id. Allocate array space. 165 ! W3FLDO Subr. W3FLDSMD Open input data file. 166 ! W3IOGR Subr. W3IOGRMD Reading of model definition file. 167 ! W3INIT Subr. W3INITMD Model intiailization. 168 ! WMGLOW Subr. WMGRIDMD Lower rank grid dependencies. 169 ! WMGEQL Subr. Id. Same rank grid dependencies. 170 ! WMGHGH Subr. Id. Higher rank grid dependencies. 171 ! RESPEC Subr. Id. Spectral conversion flags. Page 5 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 172 ! WMIOBS Subr. WMINIOMD Stage boundary data. 173 ! WMIOBG Subr. Id. Gather boundary data. 174 ! WMIOBF Subr. Id. Finalize staging in WMIOBS. 175 ! WMUINI Subr. WMUNITMD Initialize dynamic unit assignment, 176 ! WMUDMP Subr. Id. Dump dynamic unit data, 177 ! WMUSET Subr. Id. Set unit number data. 178 ! WMUGET Subr. Id. Get a unit number. 179 ! WMUINQ Subr. Id. Update unit number info. 180 ! WMIOPP Subr. WMIOPOMD Initialize unified point output. 181 ! ITRACE Subr. W3SERVMD Initialize subroutine tracing. 182 ! STRACE Subr. Id. Subroutine tracing. 183 ! EXTCDE Subr. Id. Program abort. 184 ! WWDATE Subr. Id. System date. 185 ! WWTIME Subr. Id. System time. 186 ! NEXTLN Subr. Id. Find next input line in file. 187 ! PRINIT Subr. Id. Profiling routine ( !/MPRF ) 188 ! PRTIME Subr. Id. Profiling routine ( !/MPRF ) 189 ! STME21 Subr. W3TIMEMD Convert time to string. 190 ! DSEC21 Func. Id. Difference between times. 191 ! TICK21 Subr. Id. Advance the clock. 192 ! W3READFLGRD Subr. W3IOGOMD Reads flags or namelist for output fields 193 ! 194 ! MPI_COMM_SIZE, CALL MPI_COMM_RANK, MPI_BARRIER, MPI_COMM_GROUP, 195 ! MPI_GROUP_INCLUDE, MPI_COMM_CREATE, MPI_GROUP_FREE, MPI_BCAST 196 ! Subr. mpif.h Standard MPI routines. 197 ! ---------------------------------------------------------------- 198 ! 199 ! 5. Called by : 200 ! 201 ! Name Type Module Description 202 ! ---------------------------------------------------------------- 203 ! W3MLTI Prog. N/A Multi-grid model driver. 204 ! .... Any coupled model. 205 ! ---------------------------------------------------------------- 206 ! 207 ! 6. Error messages : 208 ! 209 ! See formats 1000 and following, or escape locations 2000 and 210 ! following. 211 ! 212 ! 7. Remarks : 213 ! 214 ! - When running regtests in cases where disk is non-local 215 ! (i.e. NFS used), there can be a huge improvment in compute 216 ! time by using /var/tmp/ for log files. 217 ! See commented line at "OPEN (MDSO,FILE=..." 218 ! 219 ! - IDFLDS dimensioning is hardwired as IDFLDS(-7:7) where lowest possible 220 ! value of JFIRST is JFIRST=-7 221 ! 222 ! 8. Structure : 223 ! 224 ! -------------------------------------------------------------- 225 ! 1. Multi-grid model intializations 226 ! a Unit numbers 227 ! b Subroutine tracing ( ITRACE ) 228 ! c Input file Page 6 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 229 ! d Log and test files 230 ! e Initial and test output 231 ! 2. Set-up of data structures and I/O 232 ! a Get number of grids 233 ! b Set up data structures 234 ! ( W3NMOD, W3NDAT, W3NAUX, W3NOUT, W3NINP, WMNDAT ) 235 ! c Set up I/O for individual models 236 ! 3. Get individual grid information 237 ! a Read data 238 ! b Assign input file numbers. 239 ! c Set rank and group data 240 ! d Output 241 ! e Multi-grid model options. 242 ! 4. Model run time information and settings 243 ! 5. Output requests 244 ! a Loop over types for unified output 245 ! --------------------------------------------------- 246 ! b Process standard line 247 ! c Type 1: fields of mean wave parameters 248 ! d Type 2: point output 249 ! e Type 3: track output 250 ! f Type 4: restart files (no additional data) 251 ! g Type 5: nesting data (no additional data) 252 ! h Type 6: wave field data (dummy for now) 253 ! i Set all grids to unified output 254 ! --------------------------------------------------- 255 ! j Endless loop for correcting output per grid 256 ! --------------------------------------------------- 257 ! Test grid name and output number 258 ! k Process standard line 259 ! l Type 1: fields of mean wave parameters 260 ! m Type 2: point output 261 ! n Type 3: track output 262 ! o Type 6: partitioning output 263 ! p Type 7: coupling output 264 ! --------------------------------------------------- 265 ! 6. Read moving grid data 266 ! 7. Work load distribution 267 ! a Initialize arrays 268 ! b Set communicators and ALLPRC array 269 ! c Set MODMAP and LOADMP arrays 270 ! d Warnings 271 ! 8. Actual initializations 272 ! a Loop over models for per-model initialization 273 ! 1 Wave model ( W3INIT ) 274 ! 2 Data files ( W3FLDO ) 275 ! 3 Grid status indicator and model times 276 ! 3 Grid data for processors that are NOT used. 277 ! 5 Test output 278 ! b Unified point output file. ( W3IOGR ) 279 ! c Input data files. 280 ! d Inter model initialization 281 ! 1 Set spectral conversion flags ( WMRSPC ) 282 ! 2 Prepare unified point output ( WMIOPO ) 283 ! 3 Relation to lower ranked grids 284 ! ( WMGLOW, WMIOBS, WMIOBG, WMIOBF ) 285 ! 4 Relation to same ranked grids ( WMGEQL ) Page 7 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 286 ! 5 Relation to higher ranked grids ( WMGHGH ) 287 ! 6 Output 288 ! -------------------------------------------------------------- 289 ! 290 ! 9. Switches : 291 ! 292 ! !/SHRD Switch for shared / distributed memory architecture. 293 ! !/DIST Id. 294 ! !/MPI Id. 295 ! 296 ! !/MGW Moving grid wind correction. 297 ! !/MGP Moving grid propagation correction. 298 ! 299 ! !/O10 Enable output identifying start and end of routine 300 ! 301 ! !/F90 FORTRAN 90 specific extensions. 302 ! 303 ! !/S Enable subroutine tracing. 304 ! !/T Enable test output. 305 ! !/MPRF Profiling. 306 ! 307 ! 10. Source code : 308 ! 309 !/ ------------------------------------------------------------------- / 310 USE CONSTANTS 311 !/ 312 USE W3GDATMD, ONLY: W3NMOD, W3DIMX, W3DIMS, W3SETG 313 USE W3WDATMD, ONLY: W3NDAT, W3SETW 314 USE W3ADATMD, ONLY: W3NAUX, W3SETA 315 USE W3ODATMD, ONLY: W3NOUT, W3SETO 316 USE W3IDATMD, ONLY: W3NINP, W3SETI, W3DIMI 317 USE WMMDATMD, ONLY: WMNDAT, WMSETM, WMDIMD 318 ! 319 USE W3FLDSMD, ONLY: W3FLDO 320 USE W3IOGOMD, ONLY: W3READFLGRD 321 USE W3IOGRMD, ONLY: W3IOGR 322 USE W3INITMD, ONLY: W3INIT 323 USE WMGRIDMD, ONLY: WMRSPC, WMGLOW, WMGEQL, WMGHGH 324 USE WMINIOMD, ONLY: WMIOBS, WMIOBG, WMIOBF 325 USE WMIOPOMD, ONLY: WMIOPP 326 !/ 327 USE W3SERVMD, ONLY: ITRACE, EXTCDE, WWDATE, WWTIME, NEXTLN 328 USE W3TIMEMD, ONLY: STME21, DSEC21, TICK21 329 USE WMUNITMD, ONLY: WMUINI, WMUDMP, WMUSET, WMUGET, WMUINQ 330 !/ 331 USE W3GDATMD, ONLY: GTYPE, NX, NY, FILEXT, NSEA, FLAGST 332 USE W3GDATMD, ONLY: FLAGLL, ICLOSE, GSU, X0, Y0, SX, SY, & 333 XGRD, YGRD, DXDP, DXDQ, DYDP, DYDQ, & 334 HQFAC, HPFAC, MAPSTA, MAPST2, & 335 GRIDSHIFT, NSEAL, NK, NTH, XFR, FR1, & 336 TH, DTMAX, DTCFL 337 USE W3GSRUMD 338 USE W3WDATMD, ONLY: TIME 339 USE W3ADATMD, ONLY: WADATS 340 USE W3IDATMD, ONLY: FLAGS, INPUTS, IINIT, IIDATA, FLCUR, & 341 FLWIND, JFIRST 342 USE W3ODATMD, ONLY: NOGRP, NGRPP, IDOUT, FLOUT, TONEXT, FLBPI, & Page 8 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 343 FLBPO, NFBPO, NBI, NDS, IAPROC, NAPLOG, & 344 NAPFLD, NAPPNT, NAPTRK, NAPRST, NAPBPT, & 345 NAPPRT, NAPROC, FNMPRE, OUTPTS, NDST, NDSE, & 346 NOPTS, IOSTYP, UNIPTS, UPPROC, DTOUT, & 347 TOLAST, NOTYPE, NOGE 348 USE WMMDATMD, ONLY: MDSI, MDSO, MDSS, MDST, MDSE, MDSF, MDSUP, & 349 IMPROC, NMPROC, NMPSCR, NMPERR, NMPTST, & 350 NMPLOG, NMPUPT, STIME, ETIME, NMV, NMVMAX, & 351 TMV, AMV, DMV, NRGRD, NRINP, NRGRP, GRANK, & 352 GRGRP, INGRP, GRDHGH, GRDEQL, GRDLOW, & 353 ALLPRC, MODMAP, TSYNC, TMAX, TOUTP, TDATA, & 354 GRSTAT, DTRES, BCDUMP, FLGHG1, FLGHG2, & 355 INPMAP, IDINP 356 USE WMMDATMD, ONLY: CLKT0, CLKTN, CLKINC, CLKMAX, CLKFIN 357 USE WMMDATMD, ONLY: MPI_COMM_MWAVE, MPI_COMM_GRD, & 358 MPI_COMM_BCT, CROOT, FBCAST 359 USE W3INITMD, ONLY: WWVER 360 !/ 361 IMPLICIT NONE 362 ! 363 INCLUDE "mpif.h" 364 !/ 365 !/ ------------------------------------------------------------------- / 366 !/ Parameter list 367 !/ 906 INTEGER, INTENT(IN) :: IDSI, IDSO, IDSS, IDST, IDSE, & 907 MPI_COMM 908 CHARACTER*(*), INTENT(IN) :: IFNAME 909 CHARACTER*(*), INTENT(IN), OPTIONAL :: PREAMB 910 !/ 911 !/ ------------------------------------------------------------------- / 912 !/ Local parameters 913 !/ 914 INTEGER :: MDSE2, IERR, I, J, NMOVE, TTIME(2), & 915 ILOOP, MDSI2, SCRATCH, RNKMIN, & 916 RNKMAX, RNKTMP, GRPMIN, GRPMAX, II, & 917 NDSREC, NDSFND, NPTS, JJ, IP1, IPN, & 918 MPI_COMM_LOC, NMPSC2, JJJ, TOUT(2), & 919 TLST(2), NCPROC, NPOUTT, NAPLOC, & 920 NAPRES, NAPADD, NAPBCT, IFI, IFJ, IW,& 921 IFT 922 INTEGER :: CLKDT 923 INTEGER :: IERR_MPI, BGROUP, LGROUP, IROOT 924 INTEGER, ALLOCATABLE :: MDS(:,:), NTRACE(:,:), ODAT(:,:), & 925 TMPRNK(:), TMPGRP(:), NINGRP(:), & 926 TMOVE(:,:), LOADMP(:,:), IPRT(:,:), & 927 NDPOUT(:) 928 REAL :: DTTST, XX, YY 929 REAL, ALLOCATABLE :: X(:), Y(:), AMOVE(:), DMOVE(:), & 930 RP1(:), RPN(:) 931 ! bug fix: was TFLAGS(8): size of TFLAGS needs to be consistent with 932 ! size of FLAGS as declared in w3idatmd.ftn, which is now FLAGS(-7:12) 933 LOGICAL :: FLT, TFLAGI, TFLAGS(-7:12), PSHARE 934 LOGICAL, ALLOCATABLE :: FLGRD(:,:,:), FLRBPI(:), BCDTMP(:), & 935 USEINP(:), LPRT(:), FLGR2(:,:,:), & 936 FLG(:,:), FLG2D(:,:), FLG1D(:) 937 CHARACTER(LEN=1) :: COMSTR Page 9 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 938 CHARACTER(LEN=3) :: IDSTR(7), IDTST 939 CHARACTER(LEN=5) :: STOUT, OUTSTR(6) 940 CHARACTER(LEN=6) :: ACTION(9), YESXX, XXXNO 941 CHARACTER(LEN=8) :: LFILE, STTIME 942 CHARACTER(LEN=10) :: STDATE, PN, MN, TNAMES(7) 943 CHARACTER(LEN=11), & 944 ALLOCATABLE :: INAMES(:,:), MNAMES(:), PNAMES(:) 945 CHARACTER(LEN=12) :: FORMAT 946 CHARACTER(LEN=18) :: TFILE 947 948 CHARACTER(LEN=13) :: IDFLDS(-7:7) 949 CHARACTER(LEN=23) :: DTME21 950 CHARACTER(LEN=30) :: IDOTYP(7) 951 CHARACTER(LEN=80) :: TNAME 952 CHARACTER(LEN=80) :: LINE 953 ! 954 TYPE OT2TPE 955 INTEGER :: NPTS 956 REAL, POINTER :: X(:), Y(:) 957 CHARACTER(LEN=10), POINTER :: PNAMES(:) 958 END TYPE OT2TPE 959 ! 960 TYPE(OT2TPE), ALLOCATABLE :: OT2(:) 961 !/ 962 !/ ------------------------------------------------------------------- / 963 !/ 964 965 DATA IDFLDS / 'ice param. 1 ' , 'ice param. 2 ' , & 966 'ice param. 3 ' , 'ice param. 4 ' , & 967 'ice param. 5 ' , & 968 'mud density ' , 'mud thkness ' , & 969 'mud viscos. ' , & 970 'water levels ' , 'currents ' , & 971 'winds ' , 'ice fields ' , & 972 'mean param. ' , '1D spectra ' , & 973 '2D spectra ' / 974 ! 975 DATA IDOTYP / 'Fields of mean wave parameters' , & 976 'Point output ' , & 977 'Track point output ' , & 978 'Restart files ' , & 979 'Nesting data ' , & 980 'Separated wave field data ' , & 981 'Fields for coupling ' / 982 ! 983 DATA IDSTR / 'LEV', 'CUR', 'WND', 'ICE', 'DT0', 'DT1', 'DT2' / 984 ! 985 DATA YESXX / 'YES/--' / 986 DATA XXXNO / '---/NO' / 987 ! 988 CALL SYSTEM_CLOCK ( CLKT0, CLKINC, CLKMAX ) 989 ! 990 MPI_COMM_LOC = MPI_COMM 991 MPI_COMM_MWAVE = MPI_COMM 992 CALL MPI_COMM_SIZE ( MPI_COMM_MWAVE, NMPROC, IERR_MPI ) 993 CALL MPI_COMM_RANK ( MPI_COMM_MWAVE, IMPROC, IERR_MPI ) 994 IMPROC = IMPROC + 1 Page 10 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 995 ! 996 IF ( PRESENT(PREAMB) ) FNMPRE = PREAMB 997 !/ 998 !/ ------------------------------------------------------------------- / 999 ! 1. Multi-grid model intializations 1000 ! 1.a Unit numbers 1001 ! Initialize dynamic assignment, errors and test to stdout 1002 ! 1003 CALL WMUINI ( 6, 6 ) 1004 ! 1005 ! ... Identify reserved unit numbers 1006 ! 1007 CALL WMUSET ( 6,6, 5, .TRUE., 'SYS', 'stdin', 'Standart input' ) 1008 CALL WMUSET ( 6,6, 6, .TRUE., 'SYS', 'stdout','Standart output') 1009 ! 1010 ! ... Unit numbers from parameter list 1011 ! Dynamic scripture updated per file 1012 ! 1013 MDSI = IDSI 1014 MDSO = IDSO 1015 MDSS = IDSS 1016 MDST = IDST 1017 MDSE = IDSE 1018 ! 1019 IF ( IMPROC .EQ. NMPERR ) THEN 1020 MDSE2 = MDSE 1021 ELSE 1022 MDSE2 = -1 1023 END IF 1024 ! 1025 ! 1.b Subroutine tracing 1026 ! 1027 CALL ITRACE ( MDST, NTRMAX ) 1028 ! 1029 ! 1.c Input file 1030 ! 1031 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 1032 WRITE (MDSS,910) IFNAME, MDSI 1033 ! 1034 JJ = LEN_TRIM(FNMPRE) 1035 OPEN (MDSI,FILE=FNMPRE(:JJ)//IFNAME,STATUS='OLD',ERR=2000, & 1036 IOSTAT=IERR) 1037 REWIND (MDSI) 1038 READ (MDSI,'(A)',END=2001,ERR=2002) COMSTR 1039 IF (COMSTR.EQ.' ') COMSTR = '$' 1040 CALL WMUSET ( MDSS, MDSS, MDSI, .TRUE., 'INP', & 1041 FNMPRE(:JJ)//IFNAME, 'Model control input file') 1042 ! 1043 ! 1.d Log and test files 1044 ! 1045 JJ = LEN_TRIM(FNMPRE) 1046 ! 1047 LFILE = 'log.mww3' 1048 IW = 1 + INT ( LOG10 ( REAL(NMPROC) + 0.5 ) ) 1049 IW = MAX ( 3 , MIN ( 9 , IW ) ) 1050 WRITE (FORMAT,'(A5,I1.1,A1,I1.1,A4)') '(A4,I',IW,'.',IW,',A5)' 1051 WRITE (TFILE,FORMAT) 'test', IMPROC, '.mww3' Page 11 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 1052 IFT = LEN_TRIM(TFILE) 1053 ! 1054 IF ( IMPROC .EQ. NMPLOG ) THEN 1055 OPEN (MDSO,FILE=FNMPRE(:JJ)//LFILE,ERR=2010,IOSTAT=IERR) 1056 ! OPEN (MDSO,FILE='/var/tmp/'//LFILE,ERR=2010,IOSTAT=IERR) 1057 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 1058 WRITE (MDSS,911) LFILE, MDSO 1059 CALL WMUSET ( MDSS, MDSS, MDSO, .TRUE., 'OUT', & 1060 FNMPRE(:JJ)//LFILE, 'Log file') 1061 ELSE 1062 CALL WMUSET ( MDSS, MDSS, MDSO, .TRUE., 'XXX', & 1063 'Log file on other processors') 1064 END IF 1065 ! 1066 IF ( MDST.NE.MDSO .AND. MDST.NE.MDSS .AND. TSTOUT ) THEN 1067 OPEN (MDST,FILE=FNMPRE(:JJ)//TFILE(:IFT),ERR=2011,IOSTAT=IERR) 1068 CALL WMUSET ( MDSS, MDST, MDST, .TRUE., 'OUT', & 1069 FNMPRE(:JJ)//TFILE(:IFT), 'Test output file') 1070 END IF 1071 ! 1072 ! 1.e Initial and test output 1073 ! 1074 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) WRITE (MDSS,912) COMSTR 1075 ! 1076 IF ( IMPROC .EQ. NMPLOG ) THEN 1077 CALL WWDATE ( STDATE ) 1078 CALL WWTIME ( STTIME ) 1079 WRITE (MDSO,901) WWVER, STDATE, STTIME 1080 END IF 1081 ! 1082 ! 2. Set-up of data structures and I/O ----------------------------- / 1083 ! 2.a Get number of grids 1084 ! Note: grid for consolidated point output always generated. 1085 ! Processor set as in W3INIT to minimize communication in WMIOPO 1086 ! 1087 CALL NEXTLN ( COMSTR , MDSI , MDSE2 ) 1088 READ (MDSI,*,END=2001,ERR=2002) NRGRD, NRINP, UNIPTS, & 1089 IOSTYP, UPPROC, PSHARE 1090 IOSTYP = MAX ( 0 , MIN ( 3 , IOSTYP ) ) 1091 ! 1092 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) THEN 1093 WRITE (MDSS,920) NRGRD 1094 IF ( NRINP .EQ. 0 ) THEN 1095 WRITE (MDSS,921) 1096 ELSE 1097 WRITE (MDSS,922) NRINP 1098 END IF 1099 IF ( UNIPTS ) THEN 1100 WRITE (MDSS,923) YESXX 1101 ELSE 1102 WRITE (MDSS,923) XXXNO 1103 END IF 1104 WRITE (MDSS,1923) IOSTYP 1105 IF ( UNIPTS ) THEN 1106 IF ( UPPROC ) THEN 1107 WRITE (MDSS,2923) YESXX 1108 ELSE Page 12 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 1109 WRITE (MDSS,2923) XXXNO 1110 END IF 1111 END IF 1112 IF ( IOSTYP.GT.1 .AND. PSHARE ) THEN 1113 WRITE (MDSS,3923) YESXX 1114 ELSE IF ( IOSTYP.GT. 1 ) THEN 1115 WRITE (MDSS,3923) XXXNO 1116 END IF 1117 END IF 1118 ! 1119 IF ( NRGRD .LT. 1 ) GOTO 2020 1120 IF ( NRINP .LT. 0 ) GOTO 2021 1121 IF ( NRINP.EQ.0 .AND. .NOT.UNIPTS ) NRINP = -1 1122 ! 1123 ! 2.b Set up data structures 1124 ! 1125 CALL W3NMOD ( NRGRD, MDSE2, MDST, NRINP ) 1126 CALL W3NDAT ( MDSE2, MDST ) 1127 CALL W3NAUX ( MDSE2, MDST ) 1128 CALL W3NOUT ( MDSE2, MDST ) 1129 CALL W3NINP ( MDSE2, MDST ) 1130 CALL WMNDAT ( MDSE2, MDST ) 1131 ! 1132 ! 2.c Set up I/O for individual models (initial) 1133 ! 1134 ALLOCATE ( MDS(13,NRGRD), NTRACE(2,NRGRD), ODAT(35,0:NRGRD), & 1135 FLGRD(NOGRP,NGRPP,NRGRD), OT2(0:NRGRD), FLG(NOGRP,NRGRD), & 1136 MDSF(-NRINP:NRGRD,JFIRST:7), IPRT(6,NRGRD), LPRT(NRGRD), & 1137 FLGR2(NOGRP,NGRPP,NRGRD),FLG2D(NOGRP,NGRPP), FLG1D(NOGRP) ) 1138 ! 1139 MDS = -1 1140 MDSF = -1 1141 FLGR2 = .FALSE. 1142 ! 1143 ! ... Fixed and recycleable unit numbers. 1144 ! 1145 CALL WMUGET ( MDSE, MDST, NDSREC, 'INP' ) 1146 CALL WMUSET ( MDSE, MDST, NDSREC, .TRUE., 'I/O', NAME='...', & 1147 DESC='Recyclable I/O (mod_def etc.)' ) 1148 CALL WMUGET ( MDSE, MDST, SCRATCH, 'SCR' ) 1149 CALL WMUSET ( MDSE, MDST, SCRATCH, .TRUE., DESC='Scratch file', & 1150 NAME=FNMPRE(:JJ)//'ww3_multi.scratch' ) 1151 ! 1152 IF(MDST.EQ.NDSREC)THEN 1153 IF ( IMPROC .EQ. NMPERR ) & 1154 WRITE(MDSE,'(A,I8)')'RECYCLABLE UNIT NUMBERS AND '& 1155 //'TEST OUTPUT UNIT NUMBER ARE THE SAME : ',MDST 1156 CALL EXTCDE ( 15 ) 1157 ENDIF 1158 1159 DO I=1, NRGRD 1160 MDS ( 2,I) = 6 1161 MDS ( 3,I) = MDST 1162 MDS ( 4,I) = 6 1163 MDS ( 5,I) = NDSREC 1164 MDS ( 6,I) = NDSREC 1165 NTRACE( 1,I) = MDST Page 13 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 1166 NTRACE( 2,I) = NTRMAX 1167 END DO 1168 ! 1169 ! 3. Get individual grid information -------------------------------- / 1170 ! 1171 ! Version 3.07: For now we simply read the input data flags, 1172 ! skip the homogeneous option. Later on, we want 1173 ! to have the options to use input from common 1174 ! sources, and from communication rather than 1175 ! files. 1176 ! 1177 ALLOCATE ( INAMES(2*NRGRD,JFIRST:7), MNAMES(-NRINP:2*NRGRD), & 1178 TMPRNK(2*NRGRD), TMPGRP(2*NRGRD), NINGRP(2*NRGRD), & 1179 RP1(2*NRGRD), RPN(2*NRGRD), BCDTMP(NRGRD+1:2*NRGRD) ) 1180 ALLOCATE ( GRANK(NRGRD), GRGRP(NRGRD), USEINP(NRINP) ) 1181 GRANK = -1 1182 GRGRP = -1 1183 USEINP = .FALSE. 1184 ! 1185 ! 3.a Read data 1186 ! 1187 ! 3.a.1 Input grids 1188 ! 1189 DO I=1, NRINP 1190 ! 1191 CALL NEXTLN ( COMSTR , MDSI , MDSE2 ) 1192 CALL W3SETI ( -I, MDSE, MDST ) 1193 FLAGS = .FALSE. 1194 READ (MDSI,*,END=2001,ERR=2002) MNAMES(-I), FLAGS(JFIRST:7) 1195 ! 1196 END DO 1197 ! 1198 ! 3.a.2 Unified point output grid. 1199 ! 1200 IF ( UNIPTS ) THEN 1201 ! 1202 CALL W3SETI ( 0, MDSE, MDST ) 1203 CALL W3SETO ( 0, MDSE, MDST ) 1204 FLAGS = .FALSE. 1205 NDST = MDST 1206 NDSE = MDSE 1207 ! 1208 CALL NEXTLN ( COMSTR , MDSI , MDSE2 ) 1209 READ (MDSI,*,END=2001,ERR=2002) MNAMES(0) 1210 ! 1211 IF ( IOSTYP .LE. 1 ) THEN 1212 NMPUPT = MAX(1,NMPROC-2) 1213 ELSE 1214 NMPUPT = NMPROC 1215 END IF 1216 ! 1217 END IF 1218 ! 1219 ! 3.a.3 Read wave grids 1220 ! 1221 DO I=NRGRD+1, 2*NRGRD 1222 CALL NEXTLN ( COMSTR , MDSI , MDSE2 ) Page 14 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 1223 READ (MDSI,*,END=2001,ERR=2002) MNAMES(I), TNAMES(:), & 1224 TMPRNK(I), TMPGRP(I), RP1(I), RPN(I), BCDTMP(I) 1225 INAMES(I,:) = TNAMES(:) 1226 RP1(I) = MAX ( 0. , MIN ( 1. , RP1(I) ) ) 1227 RPN(I) = MAX ( RP1(I) , MIN ( 1. , RPN(I) ) ) 1228 END DO 1229 ! 1230 ! 3.a.4 Sort wave grids 1231 ! 1232 RNKTMP = MINVAL ( TMPRNK(NRGRD+1:2*NRGRD) ) 1233 I = 0 1234 ! 1235 DO 1236 DO J=NRGRD+1, 2*NRGRD 1237 IF ( TMPRNK(J) .EQ. RNKTMP ) THEN 1238 I = I + 1 1239 CALL W3SETI ( I, MDSE, MDST ) 1240 FLAGS = .FALSE. 1241 INAMES(I,:)= INAMES(J,:) 1242 MNAMES(I) = MNAMES(J) 1243 TMPRNK(I) = TMPRNK(J) 1244 TMPGRP(I) = TMPGRP(J) 1245 RP1(I) = RP1(J) 1246 RPN(I) = RPN(J) 1247 BCDUMP(I) = BCDTMP(J) 1248 END IF 1249 END DO 1250 IF ( I .EQ. NRGRD ) EXIT 1251 RNKTMP = RNKTMP + 1 1252 END DO 1253 ! 1254 ! 3.a.5 Set input flags 1255 ! 1256 ALLOCATE ( INPMAP(NRGRD,JFIRST:8), IDINP(-NRINP:NRGRD,JFIRST:8) ) 1257 INPMAP = 0 1258 IDINP = '---' 1259 ! 1260 DO I=1, NRGRD 1261 CALL W3SETI ( I, MDSE, MDST ) 1262 DO J=JFIRST, 7 1263 IF ( INAMES(I,J) .EQ. 'native' ) THEN 1264 FLAGS(J) = .TRUE. 1265 ELSE 1266 FLAGS(J) = .FALSE. 1267 IF ( INAMES(I,J) .EQ. 'coupler' ) THEN 1268 INPMAP(I,J) = -1 1269 ELSE IF ( INAMES(I,J) .NE. 'no' ) THEN 1270 DO JJ=1, NRINP 1271 IF ( MNAMES(-JJ) .EQ. INAMES(I,J) ) THEN 1272 INPMAP(I,J) = JJ 1273 EXIT 1274 END IF 1275 END DO 1276 IF ( INPMAP(I,J) .EQ. 0 ) GOTO 2030 1277 IF ( .NOT. INPUTS(-INPMAP(I,J))%FLAGS(J) ) GOTO 2031 1278 USEINP(INPMAP(I,J)) = .TRUE. 1279 END IF Page 15 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 1280 END IF 1281 END DO 1282 END DO 1283 ! 1284 DO I=1, NRINP 1285 IF ( .NOT.USEINP(I) .AND. & 1286 MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) THEN 1287 II = LEN_TRIM(MNAMES(-I)) 1288 WRITE (MDSE,1032) MNAMES(-I)(1:II) 1289 END IF 1290 END DO 1291 ! 1292 ! 3.b Assign input file unit numbers 1293 ! 1294 DO I=-NRINP, NRGRD 1295 IF ( I .EQ. 0 ) CYCLE 1296 CALL W3SETI ( I, MDSE, MDST ) 1297 DO J=JFIRST, 7 1298 IF ( FLAGS(J) ) THEN 1299 CALL WMUGET ( MDSE, MDST, NDSFND, 'INP' ) 1300 CALL WMUSET ( MDSE, MDST, NDSFND, .TRUE., & 1301 DESC='Input data file' ) 1302 MDSF(I,J) = NDSFND 1303 END IF 1304 END DO 1305 END DO 1306 ! 1307 ! 3.c Set rank and group data 1308 ! 1309 RNKMAX = MAXVAL ( TMPRNK(1:NRGRD) ) + 1 1310 RNKTMP = 0 1311 ! 1312 DO 1313 RNKMIN = MINVAL ( TMPRNK(1:NRGRD) ) 1314 IF ( RNKMIN .EQ. RNKMAX ) EXIT 1315 RNKTMP = RNKTMP + 1 1316 DO I=1, NRGRD 1317 IF ( TMPRNK(I) .EQ. RNKMIN ) THEN 1318 GRANK(I) = RNKTMP 1319 TMPRNK(I) = RNKMAX 1320 END IF 1321 END DO 1322 END DO 1323 ! 1324 RNKMAX = RNKTMP 1325 GRPMAX = MAXVAL ( TMPGRP(1:NRGRD) ) + 1 1326 NRGRP = 0 1327 NINGRP = 0 1328 ! 1329 DO RNKTMP=1, RNKMAX 1330 DO 1331 GRPMIN = GRPMAX 1332 DO I=1, NRGRD 1333 IF ( GRANK(I) .EQ. RNKTMP ) & 1334 GRPMIN = MIN ( GRPMIN , TMPGRP(I) ) 1335 END DO 1336 IF ( GRPMIN .EQ. GRPMAX ) EXIT Page 16 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 1337 NRGRP = NRGRP + 1 1338 DO I=1, NRGRD 1339 IF ( GRANK(I).EQ.RNKTMP .AND. GRPMIN.EQ.TMPGRP(I) ) THEN 1340 GRGRP(I) = NRGRP 1341 TMPGRP(I) = GRPMAX 1342 NINGRP(NRGRP) = NINGRP(NRGRP) + 1 1343 END IF 1344 END DO 1345 END DO 1346 END DO 1347 ! 1348 ALLOCATE ( INGRP(NRGRP,0:MAXVAL(NINGRP(:NRGRP))) ) 1349 DEALLOCATE ( TMPRNK, TMPGRP, NINGRP, BCDTMP ) 1350 INGRP = 0 1351 ! 1352 DO I=1, NRGRD 1353 INGRP(GRGRP(I),0) = INGRP(GRGRP(I),0) + 1 1354 INGRP(GRGRP(I),INGRP(GRGRP(I),0)) = I 1355 END DO 1356 ! 1357 ! ... The rest is done in section 8.b 1358 ! 1359 ! 3.d Output 1360 ! 1361 IF ( NRINP .GT. 0 ) THEN 1362 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) WRITE (MDSS,924) 1363 IF ( NMPLOG .EQ. IMPROC ) WRITE (MDSO,924) 1364 DO I=1, NRINP 1365 IF ( .NOT. USEINP(I) ) CYCLE 1366 CALL W3SETI ( -I, MDSE, MDST ) 1367 ACTION(1:4) = '--- ' 1368 DO J=JFIRST, 4 1369 IF ( FLAGS(J) ) ACTION(J) = ' X ' 1370 END DO 1371 ACTION(5:7) = '- ' 1372 IF ( FLAGS(5) ) ACTION(5) = '1 ' 1373 IF ( FLAGS(6) ) ACTION(6) = '2 ' 1374 IF ( FLAGS(7) ) ACTION(7) = '3 ' 1375 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 1376 WRITE (MDSS,925) I, MNAMES(-I), ACTION(JFIRST:7) 1377 IF ( NMPLOG .EQ. IMPROC ) & 1378 WRITE (MDSO,925) I, MNAMES(-I), ACTION(JFIRST:7) 1379 END DO 1380 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) WRITE (MDSS,926) 1381 IF ( NMPLOG .EQ. IMPROC ) WRITE (MDSO,926) 1382 END IF 1383 ! 1384 IF ( UNIPTS ) THEN 1385 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) WRITE (MDSS,927) 1386 IF ( NMPLOG .EQ. IMPROC ) WRITE (MDSO,927) 1387 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 1388 WRITE (MDSS,928) MNAMES(0) 1389 IF ( NMPLOG .EQ. IMPROC ) & 1390 WRITE (MDSO,928) MNAMES(0) 1391 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) WRITE (MDSS,929) 1392 IF ( NMPLOG .EQ. IMPROC ) WRITE (MDSO,929) 1393 END IF Page 17 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 1394 ! 1395 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) WRITE (MDSS,930) 1396 IF ( NMPLOG .EQ. IMPROC ) WRITE (MDSO,930) 1397 DO I=1, NRGRD 1398 CALL W3SETI ( I, MDSE, MDST ) 1399 ACTION(1:4) = '--- ' 1400 DO J=JFIRST, 4 1401 IF ( FLAGS(J) ) THEN 1402 ACTION(J) = 'native' 1403 ELSE IF ( INPMAP(I,J) .NE. 0 ) THEN 1404 ACTION(J) = MNAMES(-INPMAP(I,J)) 1405 END IF 1406 END DO 1407 ACTION(5:9) = '- ' 1408 IF ( FLAGS(5) ) ACTION(5) = '1 ' 1409 IF ( FLAGS(6) ) ACTION(6) = '2 ' 1410 IF ( FLAGS(7) ) ACTION(7) = '3 ' 1411 IF ( FLAGS(8) ) THEN 1412 ACTION(8) = 'yes ' 1413 ELSE 1414 ACTION(8) = 'no ' 1415 END IF 1416 IF ( BCDUMP(I) ) ACTION(9) = 'y ' 1417 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 1418 WRITE (MDSS,931) I, MNAMES(I), ACTION(1:8), GRANK(I), & 1419 GRGRP(I), ACTION(9) 1420 IF ( NMPLOG .EQ. IMPROC ) & 1421 WRITE (MDSO,931) I, MNAMES(I), ACTION(1:8), GRANK(I), & 1422 GRGRP(I), ACTION(9) 1423 END DO 1424 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) WRITE (MDSS,932) 1425 IF ( NMPLOG .EQ. IMPROC ) WRITE (MDSO,932) 1426 ! 1427 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 1428 WRITE (MDSS,933) 'Group information' 1429 IF ( NMPLOG .EQ. IMPROC ) & 1430 WRITE (MDSO,933) 'Group information' 1431 DO J=1, NRGRP 1432 WRITE (LINE(1:6),'(1X,I3,2X)') J 1433 JJJ = 6 1434 DO JJ=1, INGRP(J,0) 1435 IF ( JJJ .GT. 60 ) THEN 1436 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 1437 WRITE (MDSS,934) LINE(1:JJJ) 1438 IF ( NMPLOG .EQ. IMPROC ) WRITE (MDSO,934) LINE(1:JJJ) 1439 LINE(1:6) = ' ' 1440 JJJ = 6 1441 END IF 1442 WRITE (LINE(JJJ+1:JJJ+3),'(I3)') INGRP(J,JJ) 1443 ! 1444 LINE(JJJ+4:JJJ+5) = ' (' 1445 WRITE (LINE(JJJ+6:JJJ+11),'(F6.4)') RP1(INGRP(J,JJ)) .......................................1 (1) Recommended relationship between field width 'W' and the number of fractional digits 'D' in this edit descriptor is 'W>=D+3'. 1446 LINE(JJJ+12:JJJ+12) = '-' Page 18 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 1447 WRITE (LINE(JJJ+13:JJJ+18),'(F6.4)') RPN(INGRP(J,JJ)) ........................................1 (1) Recommended relationship between field width 'W' and the number of fractional digits 'D' in this edit descriptor is 'W>=D+3'. 1448 LINE(JJJ+19:JJJ+19) = ')' 1449 JJJ = JJJ + 19 1450 ! 1451 END DO 1452 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 1453 WRITE (MDSS,934) LINE(1:JJJ) 1454 IF ( NMPLOG .EQ. IMPROC ) WRITE (MDSO,934) LINE(1:JJJ) 1455 END DO 1456 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) WRITE (MDSS,935) 1457 IF ( NMPLOG .EQ. IMPROC ) WRITE (MDSO,935) 1458 ! 1459 ! 4. Model run time information etc. -------------------------------- / 1460 ! 1461 ! Version 3.07: Same for all grids, diversify later .... 1462 ! 1463 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) WRITE (MDSS,940) 1464 ! 1465 CALL NEXTLN ( COMSTR , MDSI , MDSE2 ) 1466 READ (MDSI,*,END=2001,ERR=2002) STIME, ETIME 1467 CALL STME21 ( STIME , DTME21 ) 1468 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) WRITE (MDSS,941) DTME21 1469 CALL STME21 ( ETIME , DTME21 ) 1470 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) WRITE (MDSS,942) DTME21 1471 ! 1472 DO I=1, NRGRD 1473 CALL W3SETW ( I, MDSE, MDST ) 1474 TIME = STIME 1475 END DO 1476 ! 1477 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) WRITE (MDSS,943) 1478 ! 1479 CALL NEXTLN ( COMSTR , MDSI , MDSE2 ) 1480 READ (MDSI,*,END=2001,ERR=2002) FLGHG1, FLGHG2 1481 FLGHG2 = FLGHG1 .AND. FLGHG2 1482 ! 1483 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) THEN 1484 IF ( FLGHG1 ) THEN 1485 WRITE (MDSS,944) YESXX 1486 ELSE 1487 WRITE (MDSS,944) XXXNO 1488 END IF 1489 IF ( FLGHG2 ) THEN 1490 WRITE (MDSS,945) YESXX 1491 ELSE 1492 WRITE (MDSS,945) XXXNO 1493 END IF 1494 END IF 1495 ! 1496 ! 5. Output requests ------------------------------------------------ / 1497 ! 1498 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) WRITE (MDSS,950) 1499 NPTS = 0 1500 ! Page 19 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 1501 ! 5.a Loop over types for unified output 1502 ! 1503 NOTYPE = 6 1504 DO J=1, NOTYPE 1505 ! 1506 ! 5.b Process standard line 1507 ! 1508 CALL NEXTLN ( COMSTR , MDSI , MDSE2 ) 1509 READ (MDSI,*,END=2001,ERR=2002) (ODAT(I,1),I=5*(J-1)+1,5*J) 1510 ODAT(5*(J-1)+3,1) = MAX ( 0 , ODAT(5*(J-1)+3,1) ) 1511 ! 1512 IF ( ODAT(5*(J-1)+3,1) .NE. 0 ) THEN 1513 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 1514 WRITE (MDSS,951) J, IDOTYP(J) 1515 TTIME(1) = ODAT(5*(J-1)+1,1) 1516 TTIME(2) = ODAT(5*(J-1)+2,1) 1517 CALL STME21 ( TTIME , DTME21 ) 1518 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 1519 WRITE (MDSS,952) DTME21 1520 TTIME(1) = ODAT(5*(J-1)+4,1) 1521 TTIME(2) = ODAT(5*(J-1)+5,1) 1522 CALL STME21 ( TTIME , DTME21 ) 1523 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 1524 WRITE (MDSS,953) DTME21 1525 TTIME(1) = 0 1526 TTIME(2) = 0 1527 DTTST = REAL ( ODAT(5*(J-1)+3,1) ) 1528 CALL TICK21 ( TTIME , DTTST ) 1529 CALL STME21 ( TTIME , DTME21 ) 1530 IF ( ( ODAT(5*(J-1)+1,1) .NE. ODAT(5*(J-1)+4,1) .OR. & 1531 ODAT(5*(J-1)+2,1) .NE. ODAT(5*(J-1)+5,1) ) .AND. & 1532 MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) THEN 1533 DO I=1, 18 1534 IF ( DTME21(I:I).NE.'0' .AND. & 1535 DTME21(I:I).NE.'/' .AND. & 1536 DTME21(I:I).NE.' ' .AND. & 1537 DTME21(I:I).NE.':' ) EXIT 1538 DTME21(I:I) = ' ' 1539 END DO 1540 WRITE (MDSS,954) DTME21(1:19) 1541 END IF 1542 IF ( J .EQ. 1 ) THEN 1543 ! 1544 ! 5.c Type 1: fields of mean wave parameters 1545 ! 1546 FLGRD(:,:,:)=.FALSE. ! Initialize FLGRD 1547 CALL W3READFLGRD ( MDSI, MDSS, MDSO, MDSE2, COMSTR, FLG1D, & 1548 FLG2D, NMPSCR, IMPROC, IERR ) 1549 FLGRD(:,:,1)=FLG2D 1550 FLG(:,1) =FLG1D 1551 ! 1552 ELSE IF ( J .EQ. 2 ) THEN 1553 ! 1554 ! 5.d Type 2: point output 1555 ! 1556 DO ILOOP=1, 2 1557 JJ = LEN_TRIM(FNMPRE) Page 20 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 1558 IF ( ILOOP .EQ. 1 ) THEN 1559 MDSI2 = MDSI 1560 IF ( IMPROC .EQ. 1 ) OPEN & 1561 (SCRATCH,FILE=FNMPRE(:JJ)//'ww3_multi.scratch') 1562 ELSE 1563 MDSI2 = SCRATCH 1564 CALL MPI_BARRIER (MPI_COMM_MWAVE,IERR_MPI) 1565 OPEN & 1566 (SCRATCH,FILE=FNMPRE(:JJ)//'ww3_multi.scratch') 1567 REWIND (SCRATCH) 1568 ALLOCATE ( X(NPTS), Y(NPTS), PNAMES(NPTS) ) 1569 END IF 1570 ! 1571 NPTS = 0 1572 DO 1573 CALL NEXTLN ( COMSTR , MDSI2 , MDSE2 ) 1574 READ (MDSI2,*,END=2001,ERR=2002) XX, YY, PN 1575 ! 1576 IF ( ILOOP.EQ.1 .AND. IMPROC.EQ.1 ) THEN 1577 BACKSPACE (MDSI) 1578 READ (MDSI,'(A)') LINE 1579 WRITE (SCRATCH,'(A)') LINE 1580 END IF 1581 ! 1582 IF ( PN .EQ. 'STOPSTRING' ) EXIT 1583 ! 1584 NPTS = NPTS + 1 1585 IF ( ILOOP .EQ. 1 ) CYCLE 1586 ! 1587 X(NPTS) = XX 1588 Y(NPTS) = YY 1589 PNAMES(NPTS) = PN 1590 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) THEN 1591 IF ( NPTS .EQ. 1 ) THEN 1592 WRITE (MDSS,957) XX, YY, PN 1593 ELSE 1594 WRITE (MDSS,958) NPTS, XX, YY, PN 1595 END IF 1596 END IF 1597 ! 1598 END DO 1599 ! 1600 IF ( IMPROC.EQ.1 .AND. ILOOP.EQ.1 ) CLOSE (SCRATCH) 1601 END DO 1602 ! 1603 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC .AND. & 1604 NPTS.EQ.0 ) WRITE (MDSS,959) 1605 IF ( IMPROC .EQ. 1 ) THEN 1606 CALL MPI_BARRIER ( MPI_COMM_MWAVE, IERR_MPI ) 1607 CLOSE (SCRATCH,STATUS='DELETE') 1608 ELSE 1609 CLOSE (SCRATCH) 1610 CALL MPI_BARRIER ( MPI_COMM_MWAVE, IERR_MPI ) 1611 END IF 1612 ! 1613 ELSE IF ( J .EQ. 3 ) THEN 1614 ! Page 21 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 1615 ! 5.e Type 3: track output 1616 ! 1617 CALL NEXTLN ( COMSTR , MDSI , MDSE2 ) 1618 READ (MDSI,*,END=2001,ERR=2002) TFLAGI 1619 IF ( .NOT. TFLAGI ) MDS(11,:) = -MDS(11,:) 1620 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) THEN 1621 IF ( .NOT. TFLAGI ) THEN 1622 WRITE (MDSS,960) 'input', 'UNFORMATTED' 1623 ELSE 1624 WRITE (MDSS,960) 'input', 'FORMATTED' 1625 END IF 1626 END IF 1627 ! 1628 ELSE IF ( J .EQ. 4 ) THEN 1629 ! 1630 ! 5.f Type 4: restart files (no additional data) 1631 ! 1632 ELSE IF ( J .EQ. 5 ) THEN 1633 ! 1634 ! 5.g Type 5: nesting data (no additional data) 1635 ! 1636 ELSE IF ( J .EQ. 6 ) THEN 1637 ! 1638 ! 5.h Type 6: partitioned wave field data 1639 ! 1640 CALL NEXTLN ( COMSTR , MDSI , MDSE2 ) 1641 READ (MDSI,*,END=2001,ERR=2002) IPRT(:,1), LPRT(1) 1642 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) THEN 1643 WRITE (MDSS,961) IPRT(:,1) 1644 IF ( .NOT. LPRT(1) ) THEN 1645 WRITE (MDSS,960) 'output', 'UNFORMATTED' 1646 ELSE 1647 WRITE (MDSS,960) 'output', 'FORMATTED' 1648 END IF 1649 END IF 1650 ! 1651 ! 5.i Type 7: coupling 1652 ! 1653 1654 ! 1655 ! ... End of output type selecttion ELSE IF 1656 ! 1657 END IF 1658 ! 1659 ! ... End of IF in 5.b 1660 ! 1661 END IF 1662 ! 1663 ! ... End of loop in 5.a 1664 ! 1665 END DO 1666 ! 1667 ! 5.i Set all grids to unified output 1668 ! 1669 IF ( UNIPTS ) THEN 1670 ODAT(6:10,0) = ODAT(6:10,1) 1671 ODAT( 8 , 1) = 0 Page 22 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 1672 END IF 1673 ! 1674 DO I=2, NRGRD 1675 ODAT(:,I) = ODAT(:,1) 1676 FLG(:,I) = FLG(:,1) 1677 FLGRD(:,:,I) = FLGRD(:,:,1) 1678 FLGR2(:,:,I) = FLGR2(:,:,1) 1679 IPRT(:,I) = IPRT(:,1) 1680 LPRT(I) = LPRT(1) 1681 END DO 1682 ! 1683 IF ( UNIPTS ) THEN 1684 IF ( ( NPTS.EQ.0 .OR. ODAT(8,0).EQ.0 ) .AND. & 1685 IMPROC.EQ.NMPERR ) WRITE (MDSE,1050) 1686 IF ( NPTS.EQ.0 .OR. ODAT(8,0).EQ.0 ) UNIPTS = .FALSE. 1687 OT2(0)%NPTS = NPTS 1688 ALLOCATE (OT2(0)%X(NPTS),OT2(0)%Y(NPTS),OT2(0)%PNAMES(NPTS)) 1689 OT2(0)%X = X 1690 OT2(0)%Y = Y 1691 OT2(0)%PNAMES = PNAMES 1692 DO I=1, NRGRD 1693 OT2(I)%NPTS = 0 1694 ALLOCATE (OT2(I)%X(1),OT2(I)%Y(1),OT2(I)%PNAMES(1)) 1695 END DO 1696 ELSE 1697 DO I=1, NRGRD 1698 OT2(I)%NPTS = NPTS 1699 IF ( NPTS .EQ. 0 ) THEN 1700 ALLOCATE (OT2(I)%X(1),OT2(I)%Y(1),OT2(I)%PNAMES(1)) 1701 ELSE 1702 ALLOCATE (OT2(I)%X(NPTS),OT2(I)%Y(NPTS), & 1703 OT2(I)%PNAMES(NPTS)) 1704 OT2(I)%X = X 1705 OT2(I)%Y = Y 1706 OT2(I)%PNAMES = PNAMES 1707 END IF 1708 END DO 1709 END IF 1710 ! 1711 ! 5.j Endless loop for correcting output per grid 1712 ! 1713 DO 1714 CALL NEXTLN ( COMSTR , MDSI , MDSE2 ) 1715 READ (MDSI,*,END=2001,ERR=2002) MN, J 1716 ! 1717 ! 5.j.1 Bail out loop for output type 0 1718 ! 1719 IF ( J .EQ. 0 ) EXIT 1720 ! 1721 ! 5.j.2 Find the grid number 1722 ! 1723 II = LEN_TRIM(MN) 1724 DO I=1, NRGRD 1725 IF ( MN(:II) .EQ. MNAMES(I)(1:II) ) EXIT 1726 END DO 1727 ! 1728 IF ( I .GT. NRGRD ) GOTO 2051 Page 23 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 1729 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 1730 WRITE (MDSS,962) MN(1:II), I 1731 ! 1732 ! 5.j.3 Check the output type 1733 ! 1734 IF ( J.LT.0 .OR. J.GT.6 ) GOTO 2052 1735 IF ( J.EQ.2 .AND. UNIPTS ) GOTO 2053 1736 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 1737 WRITE (MDSS,951) J, IDOTYP(J) 1738 ! 1739 ! 5.k Process standard line 1740 ! 1741 CALL NEXTLN ( COMSTR , MDSI , MDSE2 ) 1742 READ (MDSI,*,END=2001,ERR=2002) (ODAT(II,I),II=5*(J-1)+1,5*J) 1743 ODAT(5*(J-1)+3,I) = MAX ( 0 , ODAT(5*(J-1)+3,I) ) 1744 ! 1745 IF ( ODAT(5*(J-1)+3,I) .NE. 0 ) THEN 1746 TTIME(1) = ODAT(5*(J-1)+1,I) 1747 TTIME(2) = ODAT(5*(J-1)+2,I) 1748 CALL STME21 ( TTIME , DTME21 ) 1749 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 1750 WRITE (MDSS,952) DTME21 1751 TTIME(1) = ODAT(5*(J-1)+4,I) 1752 TTIME(2) = ODAT(5*(J-1)+5,I) 1753 CALL STME21 ( TTIME , DTME21 ) 1754 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 1755 WRITE (MDSS,953) DTME21 1756 TTIME(1) = 0 1757 TTIME(2) = 0 1758 DTTST = REAL ( ODAT(5*(J-1)+3,I) ) 1759 CALL TICK21 ( TTIME , DTTST ) 1760 CALL STME21 ( TTIME , DTME21 ) 1761 IF ( ( ODAT(5*(J-1)+1,I) .NE. ODAT(5*(J-1)+4,I) .OR. & 1762 ODAT(5*(J-1)+2,I) .NE. ODAT(5*(J-1)+5,I) ) .AND. & 1763 MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) THEN 1764 DO II=1, 18 1765 IF ( DTME21(II:II).NE.'0' .AND. & 1766 DTME21(II:II).NE.'/' .AND. & 1767 DTME21(II:II).NE.' ' .AND. & 1768 DTME21(II:II).NE.':' ) EXIT 1769 DTME21(II:II) = ' ' 1770 END DO 1771 WRITE (MDSS,954) DTME21(1:19) 1772 END IF 1773 ! 1774 IF ( J .EQ. 1 ) THEN 1775 ! 1776 ! 5.l Type 1: fields of mean wave parameters 1777 ! 1778 FLGRD(:,:,:)=.FALSE. ! Initialize FLGRD 1779 ! FA: name list should be used here too 1780 DO IFI=1,NOGRP ! Loop over field output groups 1781 1782 CALL NEXTLN ( COMSTR , MDSI , MDSE2 ) 1783 READ (MDSI,*,END=2001,ERR=2002) FLG(IFI,I) 1784 1785 IF ( FLG (IFI,1) ) THEN ! Skip if group not requested Page 24 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 1786 1787 CALL NEXTLN ( COMSTR , MDSI , MDSE2 ) 1788 READ (MDSI,*,END=2001,ERR=2002) & 1789 FLGRD(IFI,1:NOGE(IFI),I) 1790 1791 ENDIF 1792 ENDDO 1793 1794 ! 1795 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) THEN 1796 FLT = .TRUE. 1797 DO IFI=1, NOGRP 1798 DO IFJ=1, NGRPP 1799 IF ( FLGRD(IFI,IFJ,I) ) THEN 1800 IF ( FLT ) THEN 1801 WRITE (MDSS,955) IDOUT(IFI,IFJ) 1802 FLT = .FALSE. 1803 ELSE 1804 WRITE (MDSS,956) IDOUT(IFI,IFJ) 1805 END IF 1806 END IF 1807 END DO 1808 END DO 1809 IF ( FLT ) WRITE (MDSS,955) 'no fields defined' 1810 END IF 1811 ! 1812 ELSE IF ( J .EQ. 2 ) THEN 1813 ! 1814 ! 5.m Type 2: point output 1815 ! 1816 DO ILOOP=1, 2 1817 JJ = LEN_TRIM(FNMPRE) 1818 IF ( ILOOP .EQ. 1 ) THEN 1819 MDSI2 = MDSI 1820 IF ( IMPROC .EQ. 1 ) OPEN & 1821 (SCRATCH,FILE=FNMPRE(:JJ)//'ww3_multi.scratch') 1822 ELSE 1823 MDSI2 = SCRATCH 1824 CALL MPI_BARRIER (MPI_COMM_MWAVE,IERR_MPI) 1825 OPEN & 1826 (SCRATCH,FILE=FNMPRE(:JJ)//'ww3_multi.scratch') 1827 REWIND (SCRATCH) 1828 DEALLOCATE ( OT2(I)%X, OT2(I)%Y, OT2(I)%PNAMES ) 1829 ALLOCATE ( OT2(I)%X(OT2(I)%NPTS), & 1830 OT2(I)%Y(OT2(I)%NPTS), & 1831 OT2(I)%PNAMES(OT2(I)%NPTS) ) 1832 END IF 1833 ! 1834 OT2(I)%NPTS = 0 1835 DO 1836 CALL NEXTLN ( COMSTR , MDSI2 , MDSE2 ) 1837 READ (MDSI2,*,END=2001,ERR=2002) XX, YY, PN 1838 ! 1839 IF ( ILOOP.EQ.1 .AND. IMPROC.EQ.1 ) THEN 1840 BACKSPACE (MDSI) 1841 READ (MDSI,'(A)') LINE 1842 WRITE (SCRATCH,'(A)') LINE Page 25 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 1843 END IF 1844 ! 1845 IF ( PN .EQ. 'STOPSTRING' ) EXIT 1846 ! 1847 OT2(I)%NPTS = OT2(I)%NPTS + 1 1848 IF ( ILOOP .EQ. 1 ) CYCLE 1849 ! 1850 OT2(I)%X(OT2(I)%NPTS) = XX 1851 OT2(I)%Y(OT2(I)%NPTS) = YY 1852 OT2(I)%PNAMES(OT2(I)%NPTS) = PN 1853 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) THEN 1854 IF ( OT2(I)%NPTS .EQ. 1 ) THEN 1855 WRITE (MDSS,957) XX, YY, PN 1856 ELSE 1857 WRITE (MDSS,958) OT2(I)%NPTS, XX, YY, PN 1858 END IF 1859 END IF 1860 ! 1861 END DO 1862 ! 1863 IF ( IMPROC.EQ.1 .AND. ILOOP.EQ.1 ) CLOSE (SCRATCH) 1864 END DO 1865 ! 1866 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC .AND. & 1867 OT2(I)%NPTS.EQ.0 ) WRITE (MDSS,959) 1868 IF ( IMPROC .EQ. 1 ) THEN 1869 CALL MPI_BARRIER ( MPI_COMM_MWAVE, IERR_MPI ) 1870 CLOSE (SCRATCH,STATUS='DELETE') 1871 ELSE 1872 CLOSE (SCRATCH) 1873 CALL MPI_BARRIER ( MPI_COMM_MWAVE, IERR_MPI ) 1874 END IF 1875 ! 1876 ELSE IF ( J .EQ. 3 ) THEN 1877 ! 1878 ! 5.n Type 3: track output 1879 ! 1880 CALL NEXTLN ( COMSTR , MDSI , MDSE2 ) 1881 READ (MDSI,*,END=2001,ERR=2002) TFLAGI 1882 IF ( TFLAGI ) THEN 1883 MDS(11,I) = ABS(MDS(11,I)) 1884 ELSE 1885 MDS(11,I) = -ABS(MDS(11,I)) 1886 END IF 1887 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) THEN 1888 IF ( .NOT. TFLAGI ) THEN 1889 WRITE (MDSS,960) 'input', 'UNFORMATTED' 1890 ELSE 1891 WRITE (MDSS,960) 'input', 'FORMATTED' 1892 END IF 1893 END IF 1894 ! 1895 ELSE IF ( J .EQ. 6 ) THEN 1896 ! 1897 ! 5.o Type 6: partitioned wave field data 1898 ! 1899 CALL NEXTLN ( COMSTR , MDSI , MDSE2 ) Page 26 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 1900 READ (MDSI,*,END=2001,ERR=2002) IPRT(:,I), LPRT(I) 1901 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) THEN 1902 WRITE (MDSS,961) IPRT(:,I) 1903 IF ( .NOT. LPRT(I) ) THEN 1904 WRITE (MDSS,960) 'output', 'UNFORMATTED' 1905 ELSE 1906 WRITE (MDSS,960) 'output', 'FORMATTED' 1907 END IF 1908 END IF 1909 ! 1910 END IF 1911 ELSE IF ( J .EQ. 1 ) THEN 1912 ! 1913 ! 5.p Type 7: coupling fields 1914 ! 1915 CALL NEXTLN ( COMSTR , MDSI , MDSE2 ) 1916 READ (MDSI,*,END=2001,ERR=2002) FLGR2(:,:,I) 1917 ! 1918 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) THEN 1919 FLT = .TRUE. 1920 DO IFI=1, NOGRP 1921 DO IFJ=1, NGRPP 1922 IF ( FLGR2(IFI,IFJ,I) ) THEN 1923 IF ( FLT ) THEN 1924 WRITE (MDSS,955) IDOUT(IFI,IFJ) 1925 FLT = .FALSE. 1926 ELSE 1927 WRITE (MDSS,956) IDOUT(IFI,IFJ) 1928 END IF 1929 END IF 1930 END DO 1931 END DO 1932 IF ( FLT ) WRITE (MDSS,955) 'no fields defined' 1933 END IF 1934 ! 1935 ELSE 1936 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) WRITE (MDSS,963) 1937 END IF 1938 ! 1939 ! ... End of loop in 5.j 1940 ! 1941 END DO 1942 ! 1943 ! 6. Read moving grid data ------------------------------------------ / 1944 ! 1945 ! Only a single set of data are provided to be applied to all 1946 ! the grids, because this is only intended for test cases. 1947 ! For true implementations, the jumping grid will be used. 1948 ! 1949 IF ( FLAGS(8) ) THEN 1950 ! 1951 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) THEN 1952 WRITE (MDSS,965) 1953 WRITE (MDSS,966) 'Continuous grid movement data' 1954 END IF 1955 ! 1956 CALL MPI_BARRIER (MPI_COMM_MWAVE,IERR_MPI) Page 27 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 1957 DO ILOOP=1, 2 1958 JJ = LEN_TRIM(FNMPRE) 1959 IF ( ILOOP .EQ. 1 ) THEN 1960 MDSI2 = MDSI 1961 IF ( IMPROC .EQ. 1 ) & 1962 OPEN (SCRATCH,FILE=FNMPRE(:JJ)//'ww3_shel.scratch') 1963 ELSE 1964 MDSI2 = SCRATCH 1965 CALL MPI_BARRIER (MPI_COMM_MWAVE,IERR_MPI) 1966 OPEN (SCRATCH,FILE=FNMPRE(:JJ)//'ww3_shel.scratch') 1967 REWIND (SCRATCH) 1968 ALLOCATE ( TMOVE(2,NMOVE), AMOVE(NMOVE), DMOVE(NMOVE) ) 1969 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 1970 WRITE (MDSS,967) NMOVE, 'MOV' 1971 END IF 1972 ! 1973 NMOVE = 0 1974 DO 1975 CALL NEXTLN ( COMSTR , MDSI2 , MDSE2 ) 1976 READ (MDSI2,*,END=2001,ERR=2002) IDTST 1977 ! 1978 IF ( ILOOP.EQ.1 .AND. IMPROC.EQ.1 ) THEN 1979 BACKSPACE (MDSI) 1980 READ (MDSI,'(A)') LINE 1981 WRITE (SCRATCH,'(A)') LINE 1982 END IF 1983 ! 1984 IF ( IDTST .EQ. 'STP' ) EXIT 1985 IF ( IDTST .NE. 'MOV' ) CYCLE 1986 ! 1987 NMOVE = NMOVE + 1 1988 IF ( ILOOP .EQ. 1 ) CYCLE 1989 ! 1990 BACKSPACE (MDSI2) 1991 READ (MDSI2,*,END=2001,ERR=2002) IDTST, TTIME, XX, YY 1992 TMOVE(:,NMOVE) = TTIME 1993 AMOVE(NMOVE) = XX 1994 DMOVE(NMOVE) = YY 1995 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 1996 WRITE (MDSS,968) NMOVE, TMOVE(:,NMOVE), & 1997 AMOVE(NMOVE), DMOVE(NMOVE) 1998 ! 1999 END DO 2000 ! 2001 IF ( IMPROC.EQ.1 .AND. ILOOP.EQ.1 ) CLOSE (SCRATCH) 2002 END DO 2003 ! 2004 IF ( IMPROC .EQ. 1 ) THEN 2005 CALL MPI_BARRIER ( MPI_COMM_MWAVE, IERR_MPI ) 2006 CLOSE (SCRATCH,STATUS='DELETE') 2007 ELSE 2008 CLOSE (SCRATCH) 2009 CALL MPI_BARRIER ( MPI_COMM_MWAVE, IERR_MPI ) 2010 END IF 2011 ! 2012 IF ( NMOVE .EQ. 0 ) GOTO 2060 2013 ! Page 28 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 2014 NMVMAX = NMOVE 2015 DO I=1, NRGRD 2016 CALL W3SETG ( I, MDSE, MDST ) 2017 CALL WMSETM ( I, MDSE, MDST ) 2018 NMV = NMOVE 2019 CALL WMDIMD ( I, MDSE, MDST, 0 ) 2020 DO II=1, NMV 2021 TMV(:,4,II) = TMOVE(:,II) 2022 AMV(II,4) = AMOVE(II) 2023 DMV(II,4) = DMOVE(II) 2024 END DO 2025 END DO 2026 ! 2027 END IF 2028 ! 2029 ! 7. Work load distribution ----------------------------------------- / 2030 ! 7.a Initialize arrays 2031 ! 2032 ! ******************************************************* 2033 ! *** NOTE : OUTPUT PROCESSOR ASSIGNMENT NEEDS TO BE *** 2034 ! *** CONSISTENT WITH ASSIGNMENT IN W3INIT. *** 2035 ! ******************************************************* 2036 ! 2037 ALLOCATE ( ALLPRC(NMPROC,NRGRD) , MODMAP(NMPROC,NRGRP) , & 2038 LOADMP(NMPROC,NRGRP) ) 2039 ! 2040 ALLPRC = 0 2041 MODMAP = 0 2042 LOADMP = 0 2043 ! 2044 ! 7.b Determine number of output processors 2045 ! 2046 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) WRITE (MDSS,970) 2047 ! 2048 NCPROC = NMPROC 2049 UPPROC = UPPROC .AND. UNIPTS .AND. IOSTYP.GT.1 2050 ! 2051 ! 7.b.1 Unified point output 2052 ! 2053 IF ( UNIPTS ) THEN 2054 IF ( NMPROC.GE.10 .AND. UPPROC ) THEN 2055 NCPROC = NMPROC - 1 2056 ELSE 2057 IF ( UPPROC .AND. MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 2058 WRITE (MDSS,971) 'Separate process for point' // & 2059 ' output disabled.' 2060 UPPROC = .FALSE. 2061 END IF 2062 IF ( NMPUPT .EQ. IMPROC ) THEN 2063 II = LEN_TRIM(MNAMES(0)) 2064 JJ = LEN_TRIM(FNMPRE) 2065 CALL WMUGET ( MDSS, MDST, MDSUP, 'OUT' ) 2066 CALL WMUSET ( MDSS, MDST, MDSUP, .TRUE., 'OUT', & 2067 FNMPRE(:JJ)//'out_pnt.'//MNAMES(0)(1:II), & 2068 'Unified point output') 2069 END IF 2070 END IF Page 29 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 2071 ! 2072 IF ( UPPROC .AND. MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 2073 WRITE (MDSS,972) NMPUPT 2074 ! 2075 ! 7.b.2 Other output 2076 ! 2077 ALLOCATE ( NDPOUT(NRGRD) ) 2078 NDPOUT = 0 2079 ! 2080 IF ( IOSTYP .GT. 1 ) THEN 2081 DO I=1, NRGRD 2082 IF ( ODAT( 3,I) .GT. 0 ) NDPOUT(I) = NDPOUT(I) + 1 2083 IF ( ODAT(13,I) .GT. 0 ) NDPOUT(I) = NDPOUT(I) + 1 2084 IF ( ODAT(28,I) .GT. 0 ) NDPOUT(I) = NDPOUT(I) + 1 2085 IF ( ODAT( 8,I) .GT. 0 .OR. ODAT(18,I) .GT. 0 .OR. & 2086 ODAT(23,I) .GT. 0 ) NDPOUT(I) = NDPOUT(I) + 1 2087 IF ( IOSTYP .EQ. 2 ) NDPOUT(I) = MIN ( 1 , NDPOUT(I) ) 2088 END DO 2089 END IF 2090 ! 2091 ! ..... Reduce IOSTYP if not enough resources to run IOSTYP = 3 2092 ! 2093 IF ( IOSTYP.EQ.3 .AND. & 2094 ( ( .NOT.PSHARE .AND. 4*SUM(NDPOUT).GT.NCPROC ) & 2095 .OR.( PSHARE .AND. 4*MAXVAL(NDPOUT).GT.NCPROC ) ) ) THEN 2096 DO I=1, NRGRD 2097 NDPOUT(I) = MIN ( 1 , NDPOUT(I) ) 2098 END DO 2099 IOSTYP = 2 2100 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 2101 WRITE (MDSS,971) 'Separate processes for output' // & 2102 ' types disabled.' 2103 END IF 2104 ! 2105 ! ..... Force sharing of output processes if not enough resources 2106 ! 2107 IF ( IOSTYP.GT.1 .AND. .NOT.PSHARE .AND. & 2108 4*SUM(NDPOUT).GT.NCPROC ) THEN 2109 PSHARE = .TRUE. 2110 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 2111 WRITE (MDSS,971) 'Grids sharing output processes.' 2112 END IF 2113 ! 2114 ! ..... Disable output processes if not enough resources 2115 ! 2116 IF ( IOSTYP.GT.1 .AND. 4*MAXVAL(NDPOUT).GT.NCPROC ) THEN 2117 NDPOUT = 0 2118 IOSTYP = 1 2119 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 2120 WRITE (MDSS,971) 'Separate processes for output' // & 2121 ' disabled.' 2122 END IF 2123 ! 2124 ! ..... Number of output processes (except for unified point output) 2125 ! 2126 NPOUTT = 0 2127 IF ( IOSTYP .GT. 1 ) THEN Page 30 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 2128 IF ( PSHARE ) THEN 2129 NPOUTT = MAXVAL(NDPOUT) 2130 ELSE 2131 NPOUTT = SUM(NDPOUT) 2132 END IF 2133 END IF 2134 NCPROC = NCPROC - NPOUTT 2135 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) THEN 2136 IF ( NPOUTT .EQ. 0 ) THEN 2137 WRITE (MDSS,971) 'No (other) dedicated output processes.' 2138 ELSE 2139 WRITE (MDSS,973) NCPROC+1, NCPROC+NPOUTT, NPOUTT 2140 END IF 2141 END IF 2142 ! 2143 ! 7.c Set communicators and ALLPRC array 2144 ! 2145 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) WRITE (MDSS,974) 2146 IF ( NMPLOG.EQ.IMPROC ) WRITE (MDSO,1974) 2147 ! 2148 CALL MPI_COMM_GROUP ( MPI_COMM_MWAVE, BGROUP, IERR_MPI ) 2149 ALLOCATE ( TMPRNK(NMPROC) ) 2150 NAPRES = NCPROC 2151 ! 2152 DO I=1, NRGRD 2153 ! 2154 IP1 = MAX( 1 , MIN ( NCPROC , 1+NINT(REAL(NCPROC)*RP1(I)) ) ) 2155 IPN = MAX( IP1 , MIN ( NCPROC , NINT(REAL(NCPROC)*RPN(I)) ) ) 2156 OUTSTR = '-----' 2157 ! 2158 CALL WMSETM ( I, MDSE, MDST ) 2159 NAPLOC = 1 + IPN - IP1 2160 NAPADD = NAPLOC 2161 CROOT = IP1 2162 FBCAST = NAPLOC .NE. NCPROC 2163 FBCAST = NAPLOC .NE. NCPROC .OR. & 2164 ( IOSTYP.GT.1 .AND. .NOT.PSHARE ) 2165 DO J=IP1, IPN 2166 TMPRNK(1+J-IP1) = J - 1 2167 END DO 2168 ! 2169 IF ( IOSTYP .GT. 1 ) THEN 2170 IF ( PSHARE ) NAPRES = NCPROC 2171 DO J=1, NDPOUT(I) 2172 NAPADD = NAPADD + 1 2173 TMPRNK(NAPADD) = NAPRES 2174 NAPRES = NAPRES + 1 2175 END DO 2176 END IF 2177 ! 2178 IF ( UPPROC ) THEN 2179 NAPADD = NAPADD + 1 2180 TMPRNK(NAPADD) = NMPROC - 1 2181 END IF 2182 ! 2183 CALL MPI_GROUP_INCL ( BGROUP, NAPADD, TMPRNK, LGROUP, & 2184 IERR_MPI ) Page 31 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 2185 CALL MPI_COMM_CREATE ( MPI_COMM_MWAVE, LGROUP, & 2186 MPI_COMM_GRD, IERR_MPI ) 2187 CALL MPI_GROUP_FREE ( LGROUP, IERR_MPI ) 2188 ! 2189 DO II=IP1, IPN 2190 ALLPRC(II,I) = 1 + II - IP1 2191 END DO 2192 II = II - IP1 2193 ! 2194 IF ( PSHARE .OR. I.EQ.1 ) THEN 2195 NAPADD = NCPROC 2196 ELSE 2197 NAPADD = NCPROC + SUM(NDPOUT(1:I-1)) 2198 END IF 2199 IF ( IOSTYP .GT. 1 ) THEN 2200 DO J=1, NDPOUT(I) 2201 NAPADD = NAPADD + 1 2202 II = II + 1 2203 ALLPRC(NAPADD,I) = II 2204 END DO 2205 END IF 2206 ! 2207 IF ( UPPROC ) THEN 2208 II = II + 1 2209 ALLPRC(NMPROC,I) = II 2210 END IF 2211 ! 2212 ! ... output 2213 ! 2214 IF ( IOSTYP .LE. 1 ) THEN 2215 ! 2216 IF ( ODAT( 3,I) .GT. 0 ) THEN 2217 WRITE (STOUT,'(I5.5)') TMPRNK(MAX(1,NAPLOC-1))+1 2218 OUTSTR(1) = STOUT 2219 END IF 2220 IF ( ODAT( 8,I) .GT. 0 .OR. UNIPTS ) THEN 2221 WRITE (STOUT,'(I5.5)') TMPRNK(MAX(1,NAPLOC-2))+1 2222 OUTSTR(2) = STOUT 2223 END IF 2224 IF ( ODAT(13,I) .GT. 0 ) THEN 2225 WRITE (STOUT,'(I5.5)') TMPRNK(MAX(1,NAPLOC-5))+1 2226 OUTSTR(3) = STOUT 2227 END IF 2228 IF ( ODAT(18,I) .GT. 0 ) THEN 2229 WRITE (STOUT,'(I5.5)') TMPRNK(NAPLOC)+1 2230 OUTSTR(4) = STOUT 2231 END IF 2232 IF ( ODAT(23,I) .GT. 0 ) THEN 2233 WRITE (STOUT,'(I5.5)') TMPRNK(MAX(1,NAPLOC-3))+1 2234 OUTSTR(5) = STOUT 2235 END IF 2236 IF ( ODAT(28,I) .GT. 0 ) THEN 2237 WRITE (STOUT,'(I5.5)') TMPRNK(MAX(1,NAPLOC-4))+1 2238 OUTSTR(6) = STOUT 2239 END IF 2240 ! 2241 ELSE Page 32 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 2242 ! 2243 IF ( UNIPTS ) THEN 2244 WRITE (STOUT,'(I5.5)') TMPRNK(II) + 1 2245 OUTSTR(2) = STOUT 2246 IF ( UPPROC ) II = II - 1 2247 END IF 2248 ! 2249 IF ( IOSTYP .EQ. 2 ) THEN 2250 ! 2251 WRITE (STOUT,'(I5.5)') TMPRNK(II) + 1 2252 IF ( ODAT( 3,I) .GT. 0 ) OUTSTR(1) = STOUT 2253 IF ( ODAT( 8,I) .GT. 0 .OR. & 2254 ( UNIPTS .AND. .NOT.UPPROC ) ) & 2255 OUTSTR(2) = STOUT 2256 IF ( ODAT(13,I) .GT. 0 ) OUTSTR(3) = STOUT 2257 IF ( ODAT(18,I) .GT. 0 ) OUTSTR(4) = STOUT 2258 IF ( ODAT(23,I) .GT. 0 ) OUTSTR(5) = STOUT 2259 IF ( ODAT(28,I) .GT. 0 ) OUTSTR(6) = STOUT 2260 ! 2261 ELSE IF ( IOSTYP .EQ. 3 ) THEN 2262 ! 2263 IF ( ODAT( 3,I).GT.0 ) THEN 2264 WRITE (STOUT,'(I5.5)') TMPRNK(II) + 1 2265 OUTSTR(1) = STOUT 2266 II = II - 1 2267 END IF 2268 IF ( ODAT(13,I).GT.0 ) THEN 2269 WRITE (STOUT,'(I5.5)') TMPRNK(II) + 1 2270 OUTSTR(3) = STOUT 2271 II = II - 1 2272 END IF 2273 IF ( ODAT(28,I).GT.0 ) THEN 2274 WRITE (STOUT,'(I5.5)') TMPRNK(II) + 1 2275 OUTSTR(6) = STOUT 2276 II = II - 1 2277 END IF 2278 WRITE (STOUT,'(I5.5)') TMPRNK(II) + 1 2279 IF ( ODAT( 8,I) .GT. 0 ) OUTSTR(2) = STOUT 2280 IF ( ODAT(18,I) .GT. 0 ) OUTSTR(4) = STOUT 2281 IF ( ODAT(23,I) .GT. 0 ) OUTSTR(5) = STOUT 2282 ! 2283 END IF 2284 ! 2285 END IF 2286 ! 2287 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 2288 WRITE (MDSS,975) MNAMES(I), IP1, IPN, OUTSTR 2289 IF ( NMPLOG .EQ. IMPROC ) & 2290 WRITE (MDSO,1975)MNAMES(I), IP1, IPN, OUTSTR 2291 ! 2292 IF ( FBCAST ) THEN 2293 TMPRNK(1) = IP1 - 1 2294 NAPBCT = 1 2295 DO J=1, NMPROC 2296 IF ( ALLPRC(J,I) .EQ. 0 ) THEN 2297 NAPBCT = NAPBCT + 1 2298 TMPRNK(NAPBCT) = J - 1 Page 33 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 2299 END IF 2300 END DO 2301 CALL MPI_GROUP_INCL ( BGROUP, NAPBCT, TMPRNK, & 2302 LGROUP, IERR_MPI ) 2303 CALL MPI_COMM_CREATE ( MPI_COMM_MWAVE, LGROUP, & 2304 MPI_COMM_BCT, IERR_MPI ) 2305 CALL MPI_GROUP_FREE ( LGROUP, IERR_MPI ) 2306 END IF 2307 ! 2308 END DO 2309 ! 2310 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) THEN 2311 WRITE (MDSS,976) 2312 IF ( UNIPTS ) WRITE (MDSS,977) NMPUPT 2313 WRITE (MDSS,*) 2314 END IF 2315 ! 2316 IF ( NMPLOG .EQ. IMPROC ) THEN 2317 WRITE (MDSO,1976) 2318 IF ( UNIPTS ) WRITE (MDSO,1977) NMPUPT 2319 WRITE (MDSO,*) 2320 END IF 2321 ! 2322 DEALLOCATE ( TMPRNK, NDPOUT ) 2323 ! 2324 ! 7.d Set MODMAP and LOADMP arrays 2325 ! 2326 DO JJ=1, NRGRP 2327 DO II=1, INGRP(JJ,0) 2328 I = INGRP(JJ,II) 2329 DO J=1, NMPROC 2330 IF ( ALLPRC(J,I) .NE. 0 ) THEN 2331 LOADMP(J,JJ) = LOADMP(J,JJ) + 1 2332 IF ( LOADMP(J,JJ) .EQ. 1 ) THEN 2333 MODMAP(J,JJ) = I 2334 ELSE 2335 MODMAP(J,JJ) = -1 2336 END IF 2337 END IF 2338 END DO 2339 END DO 2340 END DO 2341 ! 2342 ! 7.e Warnings 2343 ! 2344 IF ( NMPROC .GT. 1 ) THEN 2345 DO I=1, NRGRP 2346 IP1 = MINVAL ( LOADMP(:NCPROC,I) ) 2347 IPN = MAXVAL ( LOADMP(:NCPROC,I) ) 2348 IF ( IP1.NE.IPN .AND. IMPROC.EQ.NMPERR ) & 2349 WRITE (MDSE,1040) I, IP1, IPN 2350 END DO 2351 END IF 2352 ! 2353 DEALLOCATE ( RP1, RPN, LOADMP ) 2354 ! 2355 ! 7.f Reset NMPSCR to first processor of first rank 1 grid Page 34 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 2356 ! 2357 CALL WMSETM ( INGRP(1,1), MDSE, MDST ) 2358 NMPSCR = CROOT 2359 ! 2360 CALL MPI_BARRIER ( MPI_COMM_MWAVE, IERR_MPI ) 2361 ! 2362 ! 8. Actual initializations ----------------------------------------- / 2363 ! 2364 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) WRITE (MDSS,980) 2365 ALLOCATE ( TSYNC(2,0:NRGRD), TMAX(2,NRGRD), TOUTP(2,0:NRGRD), & 2366 TDATA(2,NRGRD), GRSTAT(NRGRD), DTRES(NRGRD) ) 2367 ! 2368 TSYNC(1,:) = -1 2369 TSYNC(2,:) = 0 2370 TMAX (1,:) = -1 2371 TMAX (2,:) = 0 2372 TOUTP(1,:) = -1 2373 TOUTP(2,:) = 0 2374 TDATA(1,:) = -1 2375 TDATA(2,:) = 0 2376 GRSTAT = 99 2377 ! 2378 ! 8.a Loop over models for per-model initialization 2379 ! 2380 DO I=1, NRGRD 2381 J = LEN_TRIM(MNAMES(I)) 2382 DO NMPSC2=1, NMPROC 2383 IF ( ALLPRC(NMPSC2,I) .EQ. 1 ) EXIT 2384 END DO 2385 IF ( MDSS.NE.MDSO .AND. NMPSC2.EQ.IMPROC ) & 2386 WRITE (MDSS,981) I, MNAMES(I)(1:J) 2387 ! 2388 CALL MPI_BARRIER (MPI_COMM_MWAVE,IERR_MPI) 2389 ! 2390 ! 8.a.1 Wave model initialization (NOTE: sets all grid pointers) 2391 ! ..... Initial output file hook up 2392 ! 2393 CALL WMSETM ( I, MDSE, MDST ) 2394 MPI_COMM_LOC = MPI_COMM_GRD 2395 IF ( MPI_COMM_LOC .EQ. MPI_COMM_NULL ) CYCLE 2396 ! 2397 CALL WMUGET ( MDSE, MDST, NDSFND, 'OUT' ) 2398 CALL WMUSET ( MDSE, MDST, NDSFND, .TRUE., DESC='Log file' ) 2399 MDS( 1,I) = NDSFND 2400 ! 2401 ! ... this one overwrites the combined setting MDS( 3,I) = MDST above 2402 ! 2403 ! CALL WMUGET ( MDSE, MDST, NDSFND, 'OUT' ) 2404 ! CALL WMUSET ( MDSE, MDST, NDSFND, .TRUE., DESC='Test output' ) 2405 ! MDS( 3,I) = NDSFND 2406 ! 2407 DO J=1, 6 2408 IF ( J.EQ.4 .OR. J.EQ.5 ) CYCLE 2409 IF ( ODAT(5*(J-1)+3,I) .GT. 0 ) THEN 2410 CALL WMUGET ( MDSE, MDST, NDSFND, 'OUT' ) 2411 CALL WMUSET ( MDSE, MDST, NDSFND, .TRUE., & 2412 DESC='Raw output file' ) Page 35 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 2413 SELECT CASE (J) 2414 CASE (1) 2415 MDS(7,I) = NDSFND 2416 CASE (2) 2417 MDS(8,I) = NDSFND 2418 CASE (3) 2419 MDS(12,I) = NDSFND 2420 CALL WMUGET ( MDSE, MDST, NDSFND, 'INP' ) 2421 CALL WMUSET ( MDSE, MDST, NDSFND, .TRUE., & 2422 DESC='Input data file' ) 2423 MDS(11,I) = NDSFND 2424 CASE (6) 2425 MDS(13,I) = NDSFND 2426 END SELECT 2427 END IF 2428 END DO 2429 ! 2430 CALL WMUGET ( MDSE, MDST, NDSFND, 'INP' ) 2431 CALL WMUSET ( MDSE, MDST, NDSFND, .TRUE., & 2432 DESC='Input data file' ) 2433 MDS(9,I) = NDSFND 2434 ! 2435 IF ( ODAT(5*(5-1)+3,I) .GT. 0 ) THEN 2436 CALL WMUGET ( MDSE, MDST, NDSFND, 'OUT', 9 ) 2437 MDS(10,I) = NDSFND 2438 DO II=0, 8 2439 CALL WMUSET ( MDSE, MDST, NDSFND+II, .TRUE., & 2440 DESC='Raw output file' ) 2441 END DO 2442 END IF 2443 ! 2444 ! ..... Model initialization 2445 ! 2446 IF ( MDSS.NE.MDSO .AND. NMPSC2.EQ.IMPROC ) WRITE (MDSS,982) 2447 2448 CALL W3INIT ( I, MNAMES(I), MDS(:,I), NTRACE(:,I), ODAT(:,I), & 2449 FLGRD(:,:,I),FLGR2(:,:,I),FLG(:,I),OT2(I)%NPTS,& 2450 OT2(I)%X, OT2(I)%Y, OT2(I)%PNAMES, IPRT(:,I), & 2451 LPRT(I), MPI_COMM_LOC ) 2452 ! 2453 ! ..... Finalize I/O file hook up 2454 ! 2455 II = LEN_TRIM(FILEXT) 2456 JJ = LEN_TRIM(FNMPRE) 2457 CALL WMUINQ ( MDSE, MDST, MDS(1,I) ) 2458 IF ( MDS(3,I) .NE. MDST ) CALL WMUINQ ( MDSE, MDST, MDS(3,I) ) 2459 ! 2460 IF ( MDS(7,I) .NE. -1 ) THEN 2461 IF ( IAPROC .EQ. NAPFLD ) THEN 2462 TNAME = FNMPRE(:JJ)//'out_grd.' // FILEXT(:II) 2463 CALL WMUSET ( MDSE,MDST, MDS(7,I), .TRUE., NAME=TNAME ) 2464 ELSE 2465 CALL WMUSET ( MDSE,MDST, MDS(7,I), .FALSE. ) 2466 MDS(7,I) = -1 2467 END IF 2468 END IF 2469 ! Page 36 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 2470 IF ( MDS(8,I) .NE. -1 ) THEN 2471 IF ( IAPROC .EQ. NAPPNT ) THEN 2472 TNAME = FNMPRE(:JJ)//'out_pnt.' // FILEXT(:II) 2473 CALL WMUSET ( MDSE,MDST, MDS(8,I), .TRUE., NAME=TNAME ) 2474 ELSE 2475 CALL WMUSET ( MDSE,MDST, MDS(8,I), .FALSE. ) 2476 MDS(8,I) = -1 2477 END IF 2478 END IF 2479 ! 2480 IF ( MDS(9,I) .NE. -1 ) THEN 2481 IF ( FLBPI ) THEN 2482 TNAME = FNMPRE(:JJ)//'nest.' // FILEXT(:II) 2483 CALL WMUSET ( MDSE, MDST, MDS(9,I), .TRUE., NAME=TNAME ) 2484 ELSE 2485 CALL WMUSET ( MDSE, MDST, MDS(9,I), .FALSE. ) 2486 MDS(9,I) = -1 2487 END IF 2488 END IF 2489 ! 2490 IF ( MDS(10,I) .NE. -1 ) THEN 2491 IF ( FLBPO .AND. IAPROC.EQ.NAPBPT ) THEN 2492 TNAME = FNMPRE(:JJ)//'nestN.' // FILEXT(:II) 2493 DO J=0, NFBPO-1 2494 WRITE (TNAME(JJ+5:JJ+5),'(I1)') J + 1 2495 CALL WMUSET ( MDSE, MDST, MDS(10,I)+J, .TRUE., & 2496 NAME=TNAME ) 2497 END DO 2498 DO J=NFBPO, 8 2499 CALL WMUSET ( MDSE,MDST, MDS(10,I)+J, .FALSE. ) 2500 END DO 2501 ELSE 2502 DO J=0, 8 2503 CALL WMUSET ( MDSE,MDST, MDS(10,I)+J, .FALSE. ) 2504 END DO 2505 MDS(10,I) = -1 2506 END IF 2507 END IF 2508 ! 2509 IF ( MDS(11,I) .NE. -1 ) THEN 2510 TNAME = FNMPRE(:JJ)//'track_i.' // FILEXT(:II) 2511 CALL WMUSET ( MDSE,MDST, MDS(11,I), .TRUE., NAME=TNAME ) 2512 END IF 2513 ! 2514 IF ( MDS(12,I) .NE. -1 ) THEN 2515 IF ( IAPROC .EQ. NAPTRK ) THEN 2516 TNAME = FNMPRE(:JJ)//'track_o.' // FILEXT(:II) 2517 CALL WMUSET ( MDSE,MDST, MDS(12,I), .TRUE., NAME=TNAME ) 2518 ELSE 2519 CALL WMUSET ( MDSE,MDST, MDS(12,I), .FALSE. ) 2520 MDS(12,I) = -1 2521 END IF 2522 END IF 2523 ! 2524 IF ( MDS(13,I) .NE. -1 ) THEN 2525 IF ( IAPROC .EQ. NAPPRT ) THEN 2526 TNAME = FNMPRE(:JJ)//'partition.' // FILEXT(:II) Page 37 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 2527 CALL WMUSET ( MDSE,MDST, MDS(13,I), .TRUE., NAME=TNAME ) 2528 ELSE 2529 CALL WMUSET ( MDSE,MDST, MDS(13,I), .FALSE. ) 2530 MDS(13,I) = -1 2531 END IF 2532 END IF 2533 ! 2534 ! 8.a.2 Data file initialization (forcing) 2535 ! 2536 IF ( MDSS.NE.MDSO .AND. NMPSC2.EQ.IMPROC ) WRITE (MDSS,983) 2537 CALL W3SETI ( I, MDSE, MDST ) 2538 ! 2539 ! ..... regular input files 2540 ! 2541 DO J=JFIRST, 4 2542 IF ( FLAGS(J) ) THEN 2543 JJ = LEN_TRIM(FNMPRE) 2544 IDINP(I,J) = IDSTR(J) 2545 CALL W3FLDO ('READ', IDINP(I,J), MDSF(I,J), MDST, MDSE2,& 2546 NX, NY, GTYPE, IERR, MNAMES(I), & 2547 FNMPRE(:JJ) ) 2548 IF ( IERR .NE. 0 ) GOTO 2080 2549 IF ( MDSS.NE.MDSO .AND. NMPSC2.EQ.IMPROC ) & 2550 WRITE (MDSS,985) IDFLDS(J) 2551 ELSE 2552 IF ( MDSS.NE.MDSO .AND. NMPSC2.EQ.IMPROC ) & 2553 WRITE (MDSS,984) IDFLDS(J) 2554 END IF 2555 END DO 2556 ! 2557 ! ..... assimilation data files 2558 ! 2559 ! version 3.07: Data assimilation part ignored for now .... 2560 ! 2561 ! ..... finalize file info data base 2562 ! 2563 DO J=JFIRST, 7 2564 IF ( MDSF(I,J) .NE. -1 ) CALL WMUINQ ( MDSE, MDST, MDSF(I,J) ) 2565 END DO 2566 ! 2567 ! ..... Adjust input flags for other than native input, 2568 ! and initialize input arrays onse set at a time as needed. 2569 ! 2570 IF ( SIZE(FLAGS) .NE. SIZE(TFLAGS) ) THEN 2571 WRITE (MDSE,'(/2A)') ' *** ERROR WMINIT: ', & 2572 'SIZE(FLAGS).NE.SIZE(TFLAGS) ***' 2573 CALL EXTCDE ( 999 ) 2574 END IF 2575 TFLAGS = FLAGS 2576 ! 2577 DO J=JFIRST, 7 2578 IF ( INPMAP(I,J) .NE. 0 ) THEN 2579 ! 2580 TFLAGS(J) = .TRUE. 2581 FLAGS = .FALSE. 2582 FLAGS(J) = .TRUE. 2583 IINIT = .FALSE. Page 38 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 2584 CALL W3DIMI ( I, MDSE, MDST ) 2585 ! 2586 IF ( J.EQ.2 ) ALLOCATE ( WADATS(I)%CA0(NSEA) , & 2587 WADATS(I)%CAI(NSEA) , & 2588 WADATS(I)%CD0(NSEA) , & 2589 WADATS(I)%CDI(NSEA) ) 2590 ! 2591 IF ( J.EQ.3 ) ALLOCATE ( WADATS(I)%UA0(NSEA) , & 2592 WADATS(I)%UAI(NSEA) , & 2593 WADATS(I)%UD0(NSEA) , & 2594 WADATS(I)%UDI(NSEA) , & 2595 WADATS(I)%AS0(NSEA) , & 2596 WADATS(I)%ASI(NSEA) ) 2597 ! 2598 END IF 2599 END DO 2600 ! 2601 FLAGS = TFLAGS 2602 CALL W3SETI ( I, MDSE, MDST ) 2603 CALL W3SETA ( I, MDSE, MDST ) 2604 ! 2605 ! 8.a.3 Status indicator and model times 2606 ! 2607 DO J=1, NOTYPE 2608 IF ( FLOUT(J) ) THEN 2609 IF ( TOUTP(1,I) .EQ. -1 ) THEN 2610 TOUTP(:,I) = TONEXT(:,J) 2611 ELSE 2612 DTTST = DSEC21 ( TOUTP(:,I), TONEXT(:,J) ) 2613 IF ( DTTST .LT. 0. ) TOUTP(:,I) = TONEXT(:,J) 2614 ENDIF 2615 END IF 2616 END DO 2617 ! 2618 GRSTAT(I) = 0 2619 TSYNC(:,I) = TIME(:) 2620 ! 2621 END DO 2622 ! 2623 CALL MPI_BARRIER (MPI_COMM_MWAVE,IERR_MPI) 2624 DO I=1, NRGRD 2625 CALL WMSETM ( I, MDSE, MDST ) 2626 CALL W3SETG ( I, MDSE, MDST ) 2627 CALL W3SETO ( I, MDSE, MDST ) 2628 IF ( FBCAST .AND. MPI_COMM_BCT.NE.MPI_COMM_NULL ) THEN 2629 CALL MPI_BCAST ( TOUTP(1,I), 2, MPI_INTEGER, 0, & 2630 MPI_COMM_BCT, IERR_MPI ) 2631 CALL MPI_BCAST ( TSYNC(1,I), 2, MPI_INTEGER, 0, & 2632 MPI_COMM_BCT, IERR_MPI ) 2633 CALL MPI_BCAST ( GRSTAT(I), 1, MPI_INTEGER, 0, & 2634 MPI_COMM_BCT, IERR_MPI ) 2635 ! 2636 ! 8.a.4 Grid sizes etc. for processors that are not used. 2637 ! 2638 CALL MPI_BCAST ( FLAGLL,1, MPI_LOGICAL, 0, & 2639 MPI_COMM_BCT, IERR_MPI ) 2640 CALL MPI_BCAST ( GTYPE, 1, MPI_INTEGER, 0, & Page 39 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 2641 MPI_COMM_BCT, IERR_MPI ) 2642 CALL MPI_BCAST ( ICLOSE,1, MPI_INTEGER, 0, & 2643 MPI_COMM_BCT, IERR_MPI ) 2644 CALL MPI_BCAST ( NX , 1, MPI_INTEGER, 0, & 2645 MPI_COMM_BCT, IERR_MPI ) 2646 CALL MPI_BCAST ( NY , 1, MPI_INTEGER, 0, & 2647 MPI_COMM_BCT, IERR_MPI ) 2648 CALL MPI_BCAST ( X0 , 1, MPI_REAL , 0, & 2649 MPI_COMM_BCT, IERR_MPI ) 2650 CALL MPI_BCAST ( SX , 1, MPI_REAL , 0, & 2651 MPI_COMM_BCT, IERR_MPI ) 2652 CALL MPI_BCAST ( Y0 , 1, MPI_REAL , 0, & 2653 MPI_COMM_BCT, IERR_MPI ) 2654 CALL MPI_BCAST ( SY , 1, MPI_REAL , 0, & 2655 MPI_COMM_BCT, IERR_MPI ) 2656 CALL MPI_BCAST ( NSEA , 1, MPI_INTEGER, 0, & 2657 MPI_COMM_BCT, IERR_MPI ) 2658 CALL MPI_BCAST ( NSEAL, 1, MPI_INTEGER, 0, & 2659 MPI_COMM_BCT, IERR_MPI ) 2660 CALL MPI_BCAST ( DTMAX, 1, MPI_REAL, 0, & 2661 MPI_COMM_BCT, IERR_MPI ) 2662 CALL MPI_BCAST ( DTCFL, 1, MPI_REAL, 0, & 2663 MPI_COMM_BCT, IERR_MPI ) 2664 CALL MPI_BCAST ( FILEXT, 10, MPI_CHARACTER, 0, & 2665 MPI_COMM_BCT, IERR_MPI ) 2666 IF ( MPI_COMM_GRD .EQ. MPI_COMM_NULL ) & 2667 CALL W3DIMX ( I, NX, NY, NSEA, MDSE, MDST ) 2668 CALL MPI_BCAST ( HQFAC, NX*NY, MPI_REAL, 0, & 2669 MPI_COMM_BCT, IERR_MPI ) 2670 CALL MPI_BCAST ( HPFAC, NX*NY, MPI_REAL, 0, & 2671 MPI_COMM_BCT, IERR_MPI ) 2672 CALL MPI_BCAST ( XGRD, NX*NY, MPI_REAL, 0, & 2673 MPI_COMM_BCT, IERR_MPI ) 2674 CALL MPI_BCAST ( YGRD, NX*NY, MPI_REAL, 0, & 2675 MPI_COMM_BCT, IERR_MPI ) 2676 IF ( MPI_COMM_GRD .EQ. MPI_COMM_NULL ) & 2677 GSU = W3GSUC( .FALSE., FLAGLL, ICLOSE, NX, NY, & 2678 XGRD, YGRD ) 2679 CALL MPI_BCAST ( DXDP, NX*NY, MPI_REAL, 0, & 2680 MPI_COMM_BCT, IERR_MPI ) 2681 CALL MPI_BCAST ( DXDQ, NX*NY, MPI_REAL, 0, & 2682 MPI_COMM_BCT, IERR_MPI ) 2683 CALL MPI_BCAST ( DYDP, NX*NY, MPI_REAL, 0, & 2684 MPI_COMM_BCT, IERR_MPI ) 2685 CALL MPI_BCAST ( DYDQ, NX*NY, MPI_REAL, 0, & 2686 MPI_COMM_BCT, IERR_MPI ) 2687 CALL MPI_BCAST ( MAPSTA, NX*NY, MPI_INTEGER, 0, & 2688 MPI_COMM_BCT, IERR_MPI ) 2689 CALL MPI_BCAST ( MAPST2, NX*NY, MPI_INTEGER, 0, & 2690 MPI_COMM_BCT, IERR_MPI ) 2691 CALL MPI_BCAST ( GRIDSHIFT, 1, MPI_DOUBLE_PRECISION, 0, & 2692 MPI_COMM_BCT, IERR_MPI ) 2693 ! 2694 CALL MPI_BCAST ( NK , 1, MPI_INTEGER, 0, & 2695 MPI_COMM_BCT, IERR_MPI ) 2696 CALL MPI_BCAST ( NTH , 1, MPI_INTEGER, 0, & 2697 MPI_COMM_BCT, IERR_MPI ) Page 40 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 2698 CALL MPI_BCAST ( XFR , 1, MPI_REAL , 0, & 2699 MPI_COMM_BCT, IERR_MPI ) 2700 CALL MPI_BCAST ( FR1 , 1, MPI_REAL , 0, & 2701 MPI_COMM_BCT, IERR_MPI ) 2702 IF ( MPI_COMM_GRD .EQ. MPI_COMM_NULL ) & 2703 CALL W3DIMS ( I, NK, NTH, MDSE, MDST ) 2704 CALL MPI_BCAST ( TH , NTH, MPI_REAL , 0, & 2705 MPI_COMM_BCT, IERR_MPI ) 2706 ! 2707 CALL MPI_BCAST ( NAPROC,1, MPI_INTEGER, 0, & 2708 MPI_COMM_BCT, IERR_MPI ) 2709 CALL MPI_BCAST ( NAPPNT,1, MPI_INTEGER, 0, & 2710 MPI_COMM_BCT, IERR_MPI ) 2711 CALL MPI_BCAST ( NBI , 1, MPI_INTEGER, 0, & 2712 MPI_COMM_BCT, IERR_MPI ) 2713 ! 2714 CALL MPI_BCAST ( FLOUT, 7, MPI_LOGICAL, 0, & 2715 MPI_COMM_BCT, IERR_MPI ) 2716 CALL MPI_BCAST ( DTOUT , 7, MPI_REAL, 0, & 2717 MPI_COMM_BCT, IERR_MPI ) 2718 CALL MPI_BCAST ( TONEXT,14, MPI_INTEGER, 0, & 2719 MPI_COMM_BCT, IERR_MPI ) 2720 CALL MPI_BCAST ( TOLAST,14, MPI_INTEGER, 0, & 2721 MPI_COMM_BCT, IERR_MPI ) 2722 ! 2723 END IF 2724 END DO 2725 CALL MPI_BARRIER (MPI_COMM_MWAVE,IERR_MPI) 2726 ! 2727 DO I=1, NRGRD 2728 IF ( ALLPRC(IMPROC,I) .EQ. 0 ) THEN 2729 CALL W3SETO ( I, MDSE, MDST ) 2730 IAPROC = -1 2731 END IF 2732 END DO 2733 ! 2734 ! 8.a.5 Test output 2735 ! 2736 ! 8.b Unified point output 2737 ! 2738 IF ( UNIPTS ) THEN 2739 ! 2740 J = LEN_TRIM(MNAMES(0)) 2741 IF ( MDSS.NE.MDSO .AND. NMPSC2.EQ.IMPROC ) THEN 2742 WRITE (MDSS,986) MNAMES(0)(1:J) 2743 WRITE (MDSS,987) 2744 END IF 2745 ! 2746 CALL W3IOGR ( 'GRID', NDSREC, 0, MNAMES(0)(1:J) ) 2747 ! 2748 END IF 2749 ! 2750 ! 8.c Input files 2751 ! 2752 DO I=1, NRINP 2753 ! 2754 IF ( .NOT. USEINP(I) ) CYCLE Page 41 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 2755 ! 2756 J = LEN_TRIM(MNAMES(-I)) 2757 IF ( MDSS.NE.MDSO .AND. NMPSC2.EQ.IMPROC ) THEN 2758 WRITE (MDSS,988) I, MNAMES(-I)(1:J) 2759 WRITE (MDSS,987) 2760 END IF 2761 ! 2762 CALL W3IOGR ( 'GRID', NDSREC, -I, MNAMES(-I)(1:J) ) 2763 CALL W3DIMI ( -I, MDSE, MDST ) 2764 ! 2765 DO J=JFIRST, 4 2766 IF ( FLAGS(J) ) THEN 2767 JJ = LEN_TRIM(FNMPRE) 2768 IDINP(-I,J) = IDSTR(J) 2769 CALL W3FLDO ('READ', IDINP(-I,J), MDSF(-I,J), MDST, & 2770 MDSE2, NX, NY, GTYPE, IERR, & 2771 MNAMES(-I), FNMPRE(:JJ) ) 2772 IF ( IERR .NE. 0 ) GOTO 2080 2773 IF ( MDSS.NE.MDSO .AND. NMPSC2.EQ.IMPROC ) & 2774 WRITE (MDSS,985) IDFLDS(J) 2775 ELSE 2776 IF ( MDSS.NE.MDSO .AND. NMPSC2.EQ.IMPROC ) & 2777 WRITE (MDSS,984) IDFLDS(J) 2778 END IF 2779 END DO 2780 ! 2781 ! Skipping assimilation input files for now. 2782 ! 2783 DO J=JFIRST, 7 2784 IF ( MDSF(-I,J) .NE. -1 ) CALL WMUINQ & 2785 ( MDSE, MDST, MDSF(-I,J) ) 2786 END DO 2787 ! 2788 END DO 2789 ! 2790 DO I=1, NRGRD 2791 DO J=JFIRST, 7 2792 IF ( INPMAP(I,J) .GT. 0 ) IDINP(I,J) = IDINP(-INPMAP(I,J),J) 2793 END DO 2794 END DO 2795 ! 2796 DEALLOCATE ( USEINP ) 2797 ! 2798 ! 8.d Inter model initialization 2799 ! 8.d.1 Spectral conversion flags and source term flags 2800 ! 2801 CALL WMRSPC 2802 ! 2803 DO I=1, NRGRD 2804 CALL W3SETG ( I, MDSE, MDST ) 2805 FLAGST = .TRUE. 2806 END DO 2807 ! 2808 ! 8.d.2 Relation to lower ranked grids 2809 ! Includes update of unit numbers, and bound. data initialization. 2810 ! 2811 ALLOCATE ( FLRBPI(NRGRD) ) Page 42 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 2812 CALL WMGLOW ( FLRBPI ) 2813 ! 2814 ! ..... At this point the grid-search-utility (GSU) object for grids 2815 ! that do not belong to this processor is no longer needed. 2816 ! 2817 DO I=1, NRGRD 2818 CALL WMSETM ( I, MDSE, MDST ) 2819 CALL W3SETG ( I, MDSE, MDST ) 2820 ! the next line (with the W3GSUD call) removed Jan 8 2013. 2821 ! ...ref: personal communication, 2822 ! ...email from Rogers to Alves, Campbell, Tolman, Chawla Dec 13 2012. 2823 ! REMOVED !/MPI IF ( MPI_COMM_GRD .EQ. MPI_COMM_NULL ) CALL W3GSUD( GSU ) 2824 END DO 2825 ! 2826 ! ..... Unit numbers 2827 ! 2828 2829 DO I=1, NRGRD 2830 ! 2831 CALL W3SETG ( I, MDSE, MDST ) 2832 CALL W3SETO ( I, MDSE, MDST ) 2833 ! 2834 IF ( BCDUMP(I) .AND. FLRBPI(I) ) THEN 2835 IF ( IMPROC .EQ. NMPERR ) WRITE (MDSE,1080) I 2836 IF ( IMPROC .EQ. NMPLOG ) WRITE (MDSO,1082) I 2837 BCDUMP(I) = .FALSE. 2838 END IF 2839 ! 2840 IF ( BCDUMP(I) .AND. NBI.EQ.0 ) THEN 2841 IF ( IMPROC .EQ. NMPERR ) WRITE (MDSE,1081) I 2842 IF ( IMPROC .EQ. NMPLOG ) WRITE (MDSO,1082) I 2843 BCDUMP(I) = .FALSE. 2844 END IF 2845 ! 2846 IF ( .NOT. FLRBPI(I) .AND. FLBPI .AND. & 2847 MPI_COMM_GRD .NE. MPI_COMM_NULL) THEN 2848 CALL WMUSET ( MDSE, MDST, NDS(9), .FALSE. ) 2849 IF ( BCDUMP(I) .AND. IAPROC.EQ.NAPBPT ) THEN 2850 J = LEN_TRIM(FILEXT) 2851 JJ = LEN_TRIM(FNMPRE) 2852 TNAME(1:5) = 'nest.' 2853 TNAME(6:5+J) = FILEXT(1:J) 2854 J = J + 5 2855 CALL WMUGET ( MDSE, MDST, NDS(9), 'OUT' ) 2856 CALL WMUSET ( MDSE, MDST, NDS(9), .TRUE., & 2857 NAME=FNMPRE(:JJ)//TNAME(1:J), & 2858 DESC='Output data file (nest dump)' ) 2859 MDS(9,I) = NDSFND 2860 ELSE 2861 NDS(9) = -1 2862 END IF 2863 END IF 2864 ! 2865 END DO 2866 ! 2867 ! ..... Data initialization 2868 ! Page 43 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 2869 DO I=1, NRGRD 2870 CALL WMSETM ( I, MDSE, MDST ) 2871 IF ( MPI_COMM_GRD .NE. MPI_COMM_NULL ) CALL WMIOBS ( I ) 2872 END DO 2873 ! 2874 DO I=1, NRGRD 2875 CALL WMSETM ( I, MDSE, MDST ) 2876 IF ( MPI_COMM_GRD .NE. MPI_COMM_NULL ) CALL WMIOBG ( I ) 2877 END DO 2878 ! 2879 DO I=1, NRGRD 2880 CALL WMSETM ( I, MDSE, MDST ) 2881 IF ( MPI_COMM_GRD .NE. MPI_COMM_NULL ) CALL WMIOBF ( I ) 2882 END DO 2883 ! 2884 ! 8.d.3 Relation to same ranked grids 2885 ! 2886 CALL WMGEQL 2887 ! 2888 ! 8.d.4 Relation to higher ranked grids 2889 ! 2890 IF ( MDSS.NE.MDSO .AND. NMPSC2.EQ.IMPROC ) & 2891 WRITE(MDSS,938)'Computing relation to higher ranked grids' 2892 CALL WMGHGH 2893 IF ( MDSS.NE.MDSO .AND. NMPSC2.EQ.IMPROC ) & 2894 WRITE(MDSS,938)'Finished computing relation to higher ranked grids' 2895 ! 2896 ! 8.d.5 Unified point output 2897 ! 2898 IF ( UNIPTS ) THEN 2899 ! 2900 OUTPTS(0)%TONEXT(1,2) = ODAT( 6,0) 2901 OUTPTS(0)%TONEXT(2,2) = ODAT( 7,0) 2902 OUTPTS(0)%DTOUT ( 2) = REAL ( ODAT( 8,0) ) 2903 OUTPTS(0)%TOLAST(1,2) = ODAT( 9,0) 2904 OUTPTS(0)%TOLAST(2,2) = ODAT(10,0) 2905 ! 2906 TOUT = OUTPTS(0)%TONEXT(:,2) 2907 TLST = OUTPTS(0)%TOLAST(:,2) 2908 ! 2909 DO 2910 DTTST = DSEC21 ( STIME , TOUT ) 2911 IF ( DTTST .LT. 0 ) THEN 2912 CALL TICK21 ( TOUT, OUTPTS(0)%DTOUT(2) ) 2913 ELSE 2914 EXIT 2915 END IF 2916 END DO 2917 ! 2918 OUTPTS(0)%TONEXT(:,2) = TOUT 2919 ! 2920 DTTST = DSEC21 ( TOUT , TLST ) 2921 IF ( DTTST .LT. 0. ) THEN 2922 UNIPTS = .FALSE. 2923 ELSE 2924 CALL WMIOPP ( OT2(0)%NPTS, OT2(0)%X, OT2(0)%Y, & 2925 OT2(0)%PNAMES ) Page 44 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 2926 END IF 2927 ! 2928 DO I=1, NRGRD 2929 CALL WMSETM ( I, MDSE, MDST ) 2930 CALL W3SETG ( I, MDSE, MDST ) 2931 CALL W3SETO ( I, MDSE, MDST ) 2932 IF ( FBCAST .AND. MPI_COMM_BCT.NE.MPI_COMM_NULL ) THEN 2933 CALL MPI_BCAST ( NOPTS, 1, MPI_INTEGER, 0, & 2934 MPI_COMM_BCT, IERR_MPI ) 2935 END IF 2936 END DO 2937 ! 2938 END IF 2939 ! 2940 ! 8.d.6 Output 2941 ! 2942 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 2943 WRITE (MDSS,938) 'Additional group information' 2944 ! 2945 IF ( MAXVAL(GRDLOW(:,0)) .GT. 0 ) THEN 2946 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 2947 WRITE (MDSS,933) 'Lower rank grid dependence' 2948 IF ( NMPLOG .EQ. IMPROC ) & 2949 WRITE (MDSO,933) 'Lower rank grid dependence' 2950 DO I=1, NRGRD 2951 WRITE (LINE(1:6),'(1X,I3,2X)') I 2952 JJJ = 6 2953 IF ( GRDLOW(I,0) .NE. 0 ) THEN 2954 DO J=1, GRDLOW(I,0) 2955 WRITE (LINE(JJJ+1:JJJ+3),'(I3)') GRDLOW(I,J) 2956 JJJ = JJJ + 3 2957 END DO 2958 ELSE IF ( FLRBPI(I) ) THEN 2959 JJJ = 21 2960 LINE(7:JJJ) = ' Data from file' 2961 ELSE 2962 JJJ = 22 2963 LINE(7:JJJ) = ' No dependencies' 2964 END IF 2965 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 2966 WRITE(MDSS,934) LINE(1:JJJ) 2967 IF ( NMPLOG .EQ. IMPROC ) WRITE(MDSO,934) LINE(1:JJJ) 2968 END DO 2969 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) WRITE (MDSS,935) 2970 IF ( NMPLOG .EQ. IMPROC ) WRITE (MDSO,935) 2971 ELSE 2972 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 2973 WRITE (MDSS,937) 'No lower rank grid dependencies' 2974 IF ( NMPLOG .EQ. IMPROC ) & 2975 WRITE (MDSO,937) 'No lower rank grid dependencies' 2976 END IF 2977 DEALLOCATE ( FLRBPI ) 2978 ! 2979 IF ( MAXVAL(GRDEQL(:,0)) .GT. 0 ) THEN 2980 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 2981 WRITE (MDSS,933) 'Same rank grid dependence' 2982 IF ( NMPLOG .EQ. IMPROC ) & Page 45 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 2983 WRITE (MDSO,933) 'Same rank grid dependence' 2984 DO I=1, NRGRD 2985 WRITE (LINE(1:6),'(1X,I3,2X)') I 2986 JJJ = 6 2987 IF ( GRDEQL(I,0) .NE. 0 ) THEN 2988 DO J=1, GRDEQL(I,0) 2989 WRITE (LINE(JJJ+1:JJJ+3),'(I3)') GRDEQL(I,J) 2990 JJJ = JJJ + 3 2991 END DO 2992 ELSE 2993 JJJ = 22 2994 LINE(7:JJJ) = ' No dependencies' 2995 END IF 2996 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 2997 WRITE(MDSS,934) LINE(1:JJJ) 2998 IF ( NMPLOG .EQ. IMPROC ) WRITE(MDSO,934) LINE(1:JJJ) 2999 END DO 3000 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) WRITE (MDSS,935) 3001 IF ( NMPLOG .EQ. IMPROC ) WRITE (MDSO,935) 3002 ELSE 3003 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 3004 WRITE (MDSS,937) 'No same rank grid dependencies' 3005 IF ( NMPLOG .EQ. IMPROC ) & 3006 WRITE (MDSO,937) 'No same rank grid dependencies' 3007 END IF 3008 ! 3009 IF ( MAXVAL(GRDHGH(:,0)) .GT. 0 ) THEN 3010 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 3011 WRITE (MDSS,933) 'Higher rank grid dependence' 3012 IF ( NMPLOG .EQ. IMPROC ) & 3013 WRITE (MDSO,933) 'Higher rank grid dependence' 3014 DO I=1, NRGRD 3015 WRITE (LINE(1:6),'(1X,I3,2X)') I 3016 JJJ = 6 3017 IF ( GRDHGH(I,0) .NE. 0 ) THEN 3018 DO J=1, GRDHGH(I,0) 3019 WRITE (LINE(JJJ+1:JJJ+3),'(I3)') GRDHGH(I,J) 3020 JJJ = JJJ + 3 3021 END DO 3022 ELSE 3023 JJJ = 22 3024 LINE(7:JJJ) = ' No dependencies' 3025 END IF 3026 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 3027 WRITE(MDSS,934) LINE(1:JJJ) 3028 IF ( NMPLOG .EQ. IMPROC ) WRITE(MDSO,934) LINE(1:JJJ) 3029 END DO 3030 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) WRITE (MDSS,935) 3031 IF ( NMPLOG .EQ. IMPROC ) WRITE (MDSO,935) 3032 ELSE 3033 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) & 3034 WRITE (MDSS,937) 'No higher rank grid dependencies' 3035 IF ( NMPLOG .EQ. IMPROC ) & 3036 WRITE (MDSO,937) 'No higher rank grid dependencies' 3037 END IF 3038 ! 3039 ! Test output of connected units (always) Page 46 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 3040 ! 3041 CALL WMUSET ( MDSE, MDST, SCRATCH, .FALSE. ) 3042 IF ( TSTOUT ) CALL WMUDMP ( MDST, 0 ) 3043 ! 3044 DEALLOCATE ( MDS, NTRACE, ODAT, FLGRD, FLGR2, FLG, INAMES, & 3045 MNAMES ) 3046 ! 3047 CALL MPI_BARRIER ( MPI_COMM_MWAVE, IERR_MPI ) 3048 ! 3049 CALL SYSTEM_CLOCK ( CLKTN, CLKINC ) 3050 IF ( CLKMAX .NE. 0 ) THEN 3051 IF ( CLKTN-CLKT0 .GE. 0 ) THEN 3052 CLKDT = CLKTN-CLKT0 3053 ELSE 3054 CLKDT = CLKTN-CLKT0 + CLKMAX 3055 END IF 3056 CLKFIN = REAL(CLKDT)/REAL(CLKINC) 3057 END IF 3058 ! 3059 IF ( MDSS.NE.MDSO .AND. NMPSCR.EQ.IMPROC ) WRITE (MDSS,998) 3060 !!!!!/MPI CALL MPI_BARRIER (MPI_COMM_MWAVE,IERR_MPI) 3061 !!!!!/MPI CALL MPI_FINALIZE ( IERR_MPI ) 3062 !!!!!/MPI stop 3063 ! 3064 RETURN 3065 ! 3066 ! Escape locations read errors : 3067 ! 3068 2000 CONTINUE 3069 IF ( IMPROC .EQ. NMPERR ) WRITE (MDSE,1000) IFNAME, IERR 3070 CALL EXTCDE ( 2000 ) 3071 RETURN 3072 ! 3073 2001 CONTINUE 3074 IF ( IMPROC .EQ. NMPERR ) WRITE (MDSE,1001) 3075 CALL EXTCDE ( 2001 ) 3076 RETURN 3077 ! 3078 2002 CONTINUE 3079 IF ( IMPROC .EQ. NMPERR ) WRITE (MDSE,1002) IERR 3080 CALL EXTCDE ( 2002 ) 3081 RETURN 3082 ! 3083 2010 CONTINUE 3084 IF ( IMPROC .EQ. NMPERR ) WRITE (MDSE,1010) IERR 3085 CALL EXTCDE ( 2010 ) 3086 RETURN 3087 ! 3088 2011 CONTINUE 3089 ! === no process number filtering for test file !!! === 3090 WRITE (MDSE,1011) IERR 3091 CALL EXTCDE ( 2011 ) 3092 RETURN 3093 ! 3094 2020 CONTINUE 3095 IF ( IMPROC .EQ. NMPERR ) WRITE (MDSE,1020) 3096 CALL EXTCDE ( 2020 ) Page 47 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 3097 RETURN 3098 ! 3099 2021 CONTINUE 3100 IF ( IMPROC .EQ. NMPERR ) WRITE (MDSE,1021) 3101 CALL EXTCDE ( 2021 ) 3102 RETURN 3103 ! 3104 2030 CONTINUE 3105 IF ( IMPROC .EQ. NMPERR ) WRITE (MDSE,1030) MNAMES(I), INAMES(I,J) 3106 CALL EXTCDE ( 2030 ) 3107 RETURN 3108 ! 3109 2031 CONTINUE 3110 IF ( IMPROC .EQ. NMPERR ) WRITE (MDSE,1031) INAMES(I,J), J 3111 CALL EXTCDE ( 2031 ) 3112 RETURN 3113 ! 3114 !2050 CONTINUE 3115 ! IF ( IMPROC .EQ. NMPERR ) WRITE (MDSE,1040) 3116 ! CALL EXTCDE ( 2050 ) 3117 ! RETURN 3118 ! 3119 2051 CONTINUE 3120 IF ( IMPROC .EQ. NMPERR ) WRITE (MDSE,1051) MN(:II) 3121 CALL EXTCDE ( 2051 ) 3122 RETURN 3123 ! 3124 2052 CONTINUE 3125 IF ( IMPROC .EQ. NMPERR ) WRITE (MDSE,1052) J 3126 CALL EXTCDE ( 2052 ) 3127 RETURN 3128 ! 3129 2053 CONTINUE 3130 IF ( IMPROC .EQ. NMPERR ) WRITE (MDSE,1053) 3131 CALL EXTCDE ( 2053 ) 3132 RETURN 3133 ! 3134 2060 CONTINUE 3135 CALL EXTCDE ( 2060 ) 3136 IF ( IMPROC .EQ. NMPERR ) WRITE (MDSE,1060) 3137 RETURN 3138 ! 3139 2080 CONTINUE 3140 CALL EXTCDE ( 2080 ) 3141 RETURN 3142 ! 3143 ! Formats 3144 ! 3145 900 FORMAT ( ' ========== STARTING MWW3 INITIALIZATION (WMINIT) =', & 3146 '============================'/) 3147 901 FORMAT ( ' WAVEWATCH III log file ', & 3148 ' version ',A/ & 3149 ' ==================================', & 3150 '==================================='/ & 3151 ' multi-grid model driver ', & 3152 'date : ',A10/50X,'time : ',A8) 3153 ! Page 48 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 3154 910 FORMAT ( ' Opening input file ',A,' (unit number',I3,')') 3155 911 FORMAT ( ' Opening output file ',A,' (unit number',I3,')') 3156 912 FORMAT (/' Comment character : ''',A,'''') 3157 ! 3158 920 FORMAT (/' Number of grids :',I3) 3159 921 FORMAT ( ' No input data grids.') 3160 922 FORMAT ( ' Input data grids :',I3) 3161 923 FORMAT ( ' Single point output file : ',A) 3162 1923 FORMAT (/' Output server type :',I3) 3163 2923 FORMAT ( ' Single point output proc : ',A) 3164 3923 FORMAT ( ' Grids share output procs : ',A) 3165 ! 3166 924 FORMAT (/' Input grid information : '/ & 3167 ' nr extension lev. cur. wind ice data'/ & 3168 ' -------------------------------------------------') 3169 925 FORMAT (1X,I3,1X,A10,4(1X,A6),3(1X,A1)) 3170 926 FORMAT ( ' -------------------------------------------------') 3171 ! 3172 927 FORMAT (/' Grid for point output : '/ & 3173 ' nr extension '/ ' ---------------') 3174 928 FORMAT (5X,A10) 3175 929 FORMAT ( ' ---------------') 3176 ! 3177 930 FORMAT (/' Wave grid information : '/ & 3178 ' nr extension lev. cur. wind ice data', & 3179 ' move1 rnk grp dmp'/ & 3180 ' -----------------------------------------------', & 3181 '---------------------') 3182 931 FORMAT (1X,I3,1X,A10,4(1X,A6),3(1X,A1),2X,A4,2I4,3X,A1) 3183 932 FORMAT ( ' -----------------------------------------------', & 3184 '---------------------'/) 3185 933 FORMAT ( ' ',A,' : '/ & 3186 ' nr grids (part of comm.)'/ & 3187 ' -----------------------------------------------', & 3188 '---------------------') 3189 934 FORMAT (A) 3190 935 FORMAT ( ' -----------------------------------------------', & 3191 '---------------------'/) 3192 936 FORMAT (/' ',A,' : '/ & 3193 ' nr Depends on '/ & 3194 ' -----------------------------------------------', & 3195 '---------------------') 3196 937 FORMAT ( ' ',A/) 3197 938 FORMAT (/' ',A/) 3198 ! 3199 940 FORMAT (/' Time interval : '/ & 3200 ' --------------------------------------------------') 3201 941 FORMAT ( ' Starting time : ',A) 3202 942 FORMAT ( ' Ending time : ',A/) 3203 943 FORMAT (/' Model settings : '/ & 3204 ' --------------------------------------------------') 3205 944 FORMAT ( ' Masking computation in nesting : ',A) 3206 945 FORMAT ( ' Masking output in nesting : ',A/) 3207 ! 3208 950 FORMAT (/' Output requests : (ALL GRIDS) '/ & 3209 ' ==================================================') 3210 951 FORMAT (/' Type',I2,' : ',A/ & Page 49 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 3211 ' -----------------------------------------') 3212 952 FORMAT ( ' From : ',A) 3213 953 FORMAT ( ' To : ',A) 3214 954 FORMAT ( ' Interval : ',A/) 3215 955 FORMAT ( ' Fields : ',A) 3216 956 FORMAT ( ' ',A) 3217 957 FORMAT ( ' Point 1 : ',2E14.6,2X,A) 3218 958 FORMAT ( ' ',I6,' : ',2E14.6,2X,A) 3219 959 FORMAT ( ' No points defined') 3220 960 FORMAT ( ' The file with ',A,' data is ',A,'.') 3221 961 FORMAT ( ' IX fls : ',3I6/ & 3222 ' IY fls : ',3I6) 3223 962 FORMAT (/' Output request for model ',A,' (nr',I3,') '/ & 3224 ' ==================================================') 3225 963 FORMAT ( ' Output disabled') 3226 ! 3227 965 FORMAT (/' Grid movement data (!/MGP, !/MGW): '/ & 3228 ' --------------------------------------------------') 3229 966 FORMAT ( ' ',A) 3230 967 FORMAT ( ' ',I6,2X,A) 3231 968 FORMAT ( ' ',I6,I11.8,I7.6,2F8.2) 3232 ! 3233 970 FORMAT(//' Assigning resources : '/ & 3234 ' --------------------------------------------------') 3235 971 FORMAT ( ' ',A) 3236 972 FORMAT ( ' Process ',I5.5,' reserved for all point output.') 3237 973 FORMAT ( ' Processes ',I5.5,' through ',I5.5,' [',I3,']', & 3238 ' reserved for output.') 3239 974 FORMAT (/ & 3240 5X,' grid comp. grd pnt trk rst bpt prt'/ & 3241 5X,' ------------------------------------------------------', & 3242 '-------------') 3243 975 FORMAT (5X,' ',A10,2X,I5.5,'-',I5.5,6(2x,A5)) 3244 976 FORMAT(5X,' -------------------------------------------------', & 3245 '------------------') 3246 977 FORMAT (5X,' Unified point output at ',I5.5) 3247 1974 FORMAT (' Resource assignement (processes) : '/ & 3248 ' grid comp. grd pnt trk rst bpt prt'/ & 3249 ' ------------------------------------------------------', & 3250 '-------------') 3251 1975 FORMAT (' ',A10,2X,I5.5,'-',I5.5,6(2x,A5)) 3252 1976 FORMAT (' ---------------------------------------------------', & 3253 '----------------') 3254 1977 FORMAT (' Unified point output at ',I5.5) 3255 ! 3256 980 FORMAT(//' Initializations :'/ & 3257 ' --------------------------------------------------') 3258 981 FORMAT ( ' Model number',I3,' [',A,']') 3259 982 FORMAT ( ' Initializing wave model ...') 3260 983 FORMAT ( ' Initializing model input ...') 3261 984 FORMAT ( ' ',A,': file not needed') 3262 985 FORMAT ( ' ',A,': file OK') 3263 986 FORMAT ( ' Unified point output [',A,']') 3264 987 FORMAT ( ' Initializing grids ...') 3265 988 FORMAT ( ' Input data grid',I3,' [',A,']') 3266 ! 3267 998 FORMAT ( ' Running the model :'/ & Page 50 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 3268 ' --------------------------------------------------'/) 3269 999 FORMAT ( ' ========== END OF MWW3 INITIALIZATION (WMINIT) ===', & 3270 '============================'/) 3271 ! 3272 1000 FORMAT (/' *** WAVEWATCH III ERROR IN WMINIT : *** '/ & 3273 ' ERROR IN OPENING INPUT FILE ',A/ & 3274 ' IOSTAT =',I5/) 3275 ! 3276 1001 FORMAT (/' *** WAVEWATCH III ERROR IN WMINIT : *** '/ & 3277 ' PREMATURE END OF INPUT FILE'/) 3278 ! 3279 1002 FORMAT (/' *** WAVEWATCH III ERROR IN WMINIT : *** '/ & 3280 ' ERROR IN READING FROM INPUT FILE'/ & 3281 ' IOSTAT =',I5/) 3282 1010 FORMAT (/' *** WAVEWATCH III ERROR IN WMINIT : *** '/ & 3283 ' ERROR IN OPENING LOG FILE'/ & 3284 ' IOSTAT =',I5/) 3285 1011 FORMAT (/' *** WAVEWATCH III ERROR IN WMINIT : *** '/ & 3286 ' ERROR IN OPENING TEST FILE'/ & 3287 ' IOSTAT =',I5/) 3288 1020 FORMAT (/' *** WAVEWATCH III ERROR IN WMINIT : *** '/ & 3289 ' ILLEGAL NUMBER OF GRIDS ( < 1 ) '/) 3290 1021 FORMAT (/' *** WAVEWATCH III ERROR IN WMINIT : *** '/ & 3291 ' ILLEGAL NUMBER OF INPUT GRIDS ( < 0 ) '/) 3292 1030 FORMAT (/' *** WAVEWATCH III ERROR IN WMINIT : *** '/ & 3293 ' INPUT GRID NAME NOT FOUND '/ & 3294 ' WAVE GRID : ',A/ & 3295 ' INPUT NAME : ',A/) 3296 1031 FORMAT (/' *** WAVEWATCH III ERROR IN WMINIT : *** '/ & 3297 ' REQUESTED INPUT TYPE NOT FOUND IN INPUT GRID '/ & 3298 ' INPUT GRID : ',A/ & 3299 ' INPUT TYPE : ',I8/) 3300 1032 FORMAT (/' *** WAVEWATCH III WARNING IN WMINIT : *** '/ & 3301 ' INPUT GRID ',A,' NOT USED '/) 3302 1040 FORMAT ( ' *** WAVEWATCH III WARNING IN W3MLTI : ***'/ & 3303 ' POSSIBLE LOAD IMBALANCE GROUP',I3,' :',2I6/) 3304 !1040 FORMAT (/' *** WAVEWATCH III ERROR IN W3MLTI : ***'/ & 3305 ! ' ILLEGAL TIME INTERVAL'/) 3306 1050 FORMAT (/' *** WAVEWATCH III WARNING IN W3MLTI : ***'/ & 3307 ' UNIFIED POINT OUTPUT BUT NO OUTPUT'/ & 3308 ' UNIFIED POINT OUTPUT DISABLED'/) 3309 1051 FORMAT (/' *** WAVEWATCH III ERROR IN W3MLTI : ***'/ & 3310 ' ILLEGAL MODEL ID [',A,']'/) 3311 1052 FORMAT (/' *** WAVEWATCH III ERROR IN W3MLTI : ***'/ & 3312 ' ILLEGAL OUTPUT TYPE',I10/) 3313 1053 FORMAT (/' *** WAVEWATCH III ERROR IN W3MLTI : ***'/ & 3314 ' OUTPUT POINTS FOR INDIVIDUAL GRIDS CANNOT BE DEFINED'/ & 3315 ' WHEN UNIFIED POINT OUTPUT IS REQUESTED'/) 3316 1060 FORMAT (/' *** WAVEWATCH III ERROR IN W3MLTI : ***'/ & 3317 ' NO MOVING GRID DATA PRESENT'/) 3318 1080 FORMAT (/' *** BOUNDARY DATA READ, WILL NOT DUMP, GRID :',I4, & 3319 ' ***') 3320 1081 FORMAT (/' *** NO BOUNDARY DATA TO DUMP, GRID :',I4,' ***') 3321 1082 FORMAT ( ' No boundary data dump for grid',I3/) 3322 ! 3323 !/ 3324 !/ End of WMINIT ----------------------------------------------------- / Page 51 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 3325 !/ 3326 END SUBROUTINE WMINIT ENTRY POINTS Name wminitmd_mp_wminit_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1000 Label 2734 2531 1001 Label 2738 2536 1002 Label 2741 2541 1010 Label 2744 2546 1011 Label 2747 2552 1020 Label 2750 2557 1021 Label 2752 2562 1030 Label 2754 2567 1031 Label 2758 2572 1032 Label 2762 750 1040 Label 2764 1811 1050 Label 2768 1147 1051 Label 2771 2582 1052 Label 2773 2587 1053 Label 2775 2592 1060 Label 2778 2598 1080 Label 2780 2297 1081 Label 2782 2303 1082 Label 2783 2298,2304 1923 Label 2624 566 1974 Label 2709 1608 1975 Label 2713 1752 1976 Label 2714 1779 1977 Label 2716 1780 2000 Label 2530 497 2001 Label 2535 500,550,656,671,685,928,942,971,10 36,1080,1103,1177,1204,1245,1250,1 299,1343,1362,1378,1438,1453 2002 Label 2540 500,550,656,671,685,928,942,971,10 36,1080,1103,1177,1204,1245,1250,1 299,1343,1362,1378,1438,1453 2010 Label 2545 517 2011 Label 2550 529 2020 Label 2556 581 2021 Label 2561 582 2030 Label 2566 738 2031 Label 2571 739 2051 Label 2581 1190 2052 Label 2586 1196 2053 Label 2591 1197 2060 Label 2596 1474 2080 Label 2601 2010,2234 Page 52 Source Listing WMINIT 2014-09-16 16:49 Symbol Table wminitmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 2923 Label 2625 569,571 3923 Label 2626 575,577 900 Label 2607 901 Label 2609 541 910 Label 2616 494 911 Label 2617 520 912 Label 2618 536 920 Label 2620 555 921 Label 2621 557 922 Label 2622 559 923 Label 2623 562,564 924 Label 2628 824,825 925 Label 2631 838,840 926 Label 2632 842,843 927 Label 2634 847,848 928 Label 2636 850,852 929 Label 2637 853,854 930 Label 2639 857,858 931 Label 2644 880,883 932 Label 2645 886,887 933 Label 2647 890,892,2409,2411,2443,2445,2473,2 475 934 Label 2651 899,900,915,916,2428,2429,2459,246 0,2489,2490 935 Label 2652 918,919,2431,2432,2462,2463,2492,2 493 936 Label 2654 937 Label 2658 2435,2437,2466,2468,2496,2498 938 Label 2659 2353,2356,2405 940 Label 2661 925 941 Label 2663 930 942 Label 2664 932 943 Label 2665 939 944 Label 2667 947,949 945 Label 2668 952,954 950 Label 2670 960 951 Label 2672 976,1199 952 Label 2674 981,1212 953 Label 2675 986,1217 954 Label 2676 1002,1233 955 Label 2677 1263,1271,1386,1394 956 Label 2678 1266,1389 957 Label 2679 1054,1317 958 Label 2680 1056,1319 959 Label 2681 1066,1329 960 Label 2682 1084,1086,1107,1109,1351,1353,1366 ,1368 961 Label 2683 1105,1364 962 Label 2685 1192 963 Label 2687 1398 965 Label 2689 1414 966 Label 2691 1415 967 Label 2692 1432 968 Label 2693 1458 970 Label 2695 1508 Page 53 Source Listing WMINIT 2014-09-16 16:49 Symbol Table wminitmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 971 Label 2697 1520,1563,1573,1582,1599 972 Label 2698 1535 973 Label 2699 1601 974 Label 2701 1607 975 Label 2705 1750 976 Label 2706 1773 977 Label 2708 1774 980 Label 2718 1826 981 Label 2720 1848 982 Label 2721 1908 983 Label 2722 1998 984 Label 2723 2015,2239 985 Label 2724 2012,2236 986 Label 2725 2204 987 Label 2726 2205,2221 988 Label 2727 2220 998 Label 2729 2521 999 Label 2731 ABS Func 1345 scalar 1345,1347 ACTION Local 402 CHAR 6 1 9 829,831,833,834,835,836,838,840,86 1,864,866,869,870,871,872,874,876, 878,880,881,883,884 ALLPRC Local 353 I(4) 4 2 1 ALC 353,1499,1502,1652,1665,1671,1758, 1792,1845,2190 AMOVE Local 391 R(4) 4 1 1 ALC 1430,1455,1459,1484 AMV Local 351 R(4) 4 2 1 PTR 351,1484 AS0 Local 2057 R(4) 4 1 1 PTR 2057 ASI Local 2058 R(4) 4 1 1 PTR 2058 BCDTMP Local 396 L(4) 4 1 1 ALC 641,686,709,811 BCDUMP Local 354 L(4) 4 1 1 ALC 354,709,878,2296,2299,2302,2305,23 11 BGROUP Local 385 I(4) 4 scalar 1610,1645,1763 CA0 Local 2048 R(4) 4 1 1 PTR 2048 CAI Local 2049 R(4) 4 1 1 PTR 2049 CD0 Local 2050 R(4) 4 1 1 PTR 2050 CDI Local 2051 R(4) 4 1 1 PTR 2051 CLKDT Local 384 I(4) 4 scalar 2514,2516,2518 CLKFIN Local 356 R(4) 4 scalar 356,2518 CLKINC Local 356 I(4) 4 scalar 356,450,2511,2518 CLKMAX Local 356 I(4) 4 scalar 356,450,2512,2516 CLKT0 Local 356 I(4) 4 scalar 356,450,2513,2514,2516 CLKTN Local 356 I(4) 4 scalar 356,2511,2513,2514,2516 COMSTR Local 399 CHAR 1 scalar 500,501,536,549,653,670,684,927,94 1,970,1009,1035,1079,1102,1176,120 3,1244,1249,1298,1342,1361,1377,14 37 CONSTANTS Module 310 310 CROOT Local 358 I(4) 4 scalar PTR 358,1623,1820 DMOVE Local 391 R(4) 4 1 1 ALC 1430,1456,1459,1485 DMV Local 351 R(4) 4 2 1 PTR 351,1485 DSEC21 Func 328 R(4) 4 scalar 328,2074,2372,2382 DTCFL Local 336 R(4) 4 scalar PTR 336,2124 DTMAX Local 336 R(4) 4 scalar PTR 336,2122 DTME21 Local 411 CHAR 23 scalar 929,930,931,932,979,981,984,986,99 1,996,997,998,999,1000,1002,1210,1 Page 54 Source Listing WMINIT 2014-09-16 16:49 Symbol Table wminitmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 212,1215,1217,1222,1227,1228,1229, 1230,1231,1233 DTOUT Local 346 R(4) 4 1 1 PTR 346,2178 DTOUT Local 2364 R(4) 4 1 7 2364,2374 DTRES Local 354 R(4) 4 1 1 ALC 354,1828 DTTST Local 390 R(4) 4 scalar 989,990,1220,1221,2074,2075,2372,2 373,2382,2383 DXDP Local 333 R(4) 4 2 1 PTR 333,2141 DXDQ Local 333 R(4) 4 2 1 PTR 333,2143 DYDP Local 333 R(4) 4 2 1 PTR 333,2145 DYDQ Local 333 R(4) 4 2 1 PTR 333,2147 ETIME Local 350 I(4) 4 1 2 350,928,931 EXTCDE Subr 327 327,618,2035,2532,2537,2542,2547,2 553,2558,2563,2568,2573,2583,2588, 2593,2597,2602 FBCAST Local 358 L(4) 4 scalar PTR 358,1624,1625,1754,2090,2394 FILEXT Local 331 CHAR 10 scalar PTR 331,1917,1924,1934,1944,1954,1972, 1978,1988,2126,2312,2315 FLAGLL Local 332 L(4) 4 scalar 332,2100,2139 FLAGS Local 340 L(4) 4 1 1 PTR 340,655,656,666,702,726,728,760,83 1,834,835,836,863,870,871,872,873, 1411,2004,2032,2037,2043,2044,2063 ,2228 FLAGS Local 739 L(4) 4 1 20 739 FLAGST Local 331 L(4) 4 1 1 PTR 331,2267 FLBPI Local 342 L(4) 4 scalar PTR 342,1943,2308 FLBPO Local 343 L(4) 4 scalar PTR 343,1953 FLCUR Local 340 L(4) 4 scalar PTR 340 FLG Local 398 L(4) 4 2 1 ALC 597,1012,1138,1245,1247,1911,2506 FLG1D Local 398 L(4) 4 1 1 ALC 599,1009,1012 FLG2D Local 398 L(4) 4 2 1 ALC 599,1010,1011 FLGHG1 Local 354 L(4) 4 scalar 354,942,943,946 FLGHG2 Local 354 L(4) 4 scalar 354,942,943,951 FLGR2 Local 397 L(4) 4 3 1 ALC 599,603,1140,1378,1384,1911,2506 FLGRD Local 396 L(4) 4 3 1 ALC 597,1008,1011,1139,1240,1251,1261, 1911,2506 FLOUT Local 342 L(4) 4 1 1 PTR 342,2070,2176 FLRBPI Local 396 L(4) 4 1 1 ALC 2273,2274,2296,2308,2420,2439 FLT Local 395 L(4) 4 scalar 1258,1262,1264,1271,1381,1385,1387 ,1394 FLWIND Local 341 L(4) 4 scalar PTR 341 FNMPRE Local 345 CHAR 80 scalar 345,458,496,497,503,507,517,522,52 9,531,612,1019,1023,1028,1279,1283 ,1288,1420,1424,1428,1526,1529,191 8,1924,1934,1944,1954,1972,1978,19 88,2005,2009,2229,2233,2313,2319 FORMAT Local 407 CHAR 12 scalar 512,513 FR1 Local 335 R(4) 4 scalar PTR 335,2162 GRANK Local 351 I(4) 4 1 1 ALC 351,642,643,780,795,801,880,883 GRDEQL Local 352 I(4) 4 2 1 ALC 352,2441,2449,2450,2451 GRDHGH Local 352 I(4) 4 2 1 ALC 352,2471,2479,2480,2481 GRDLOW Local 352 I(4) 4 2 1 ALC 352,2407,2415,2416,2417 GRGRP Local 352 I(4) 4 1 1 ALC 352,642,644,802,815,816,881,884 GRIDSHIFT Local 335 R(8) 8 scalar PTR 335,2153 GRPMAX Local 378 I(4) 4 scalar 787,793,798,803 Page 55 Source Listing WMINIT 2014-09-16 16:49 Symbol Table wminitmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References GRPMIN Local 378 I(4) 4 scalar 793,796,798,801 GRSTAT Local 354 I(4) 4 1 1 ALC 354,1828,1838,2080,2095 GSU Local 332 W3GDATMD^W3GSRUMD^T_GSU 8 scalar PTR 332,2139 GTYPE Local 331 I(4) 4 scalar PTR 331,2008,2102,2232 HPFAC Local 334 R(4) 4 2 1 PTR 334,2132 HQFAC Local 334 R(4) 4 2 1 PTR 334,2130 I Local 376 I(4) 4 scalar 621,622,623,624,625,626,627,628,65 1,654,656,683,685,686,687,688,689, 695,700,701,703,704,705,706,707,70 8,709,712,722,723,725,729,730,731, 733,734,738,739,740,746,747,749,75 0,756,757,758,764,778,779,780,781, 794,795,796,800,801,802,803,814,81 5,816,826,827,828,838,840,859,860, 865,866,878,880,881,883,884,934,93 5,971,995,996,997,998,999,1000,113 6,1137,1138,1139,1140,1141,1142,11 54,1155,1156,1159,1160,1162,1164,1 165,1166,1167,1168,1186,1187,1190, 1192,1204,1205,1207,1208,1209,1213 ,1214,1220,1223,1224,1245,1251,126 1,1290,1291,1292,1293,1296,1309,13 12,1313,1314,1316,1319,1329,1345,1 347,1362,1364,1365,1378,1384,1477, 1478,1479,1481,1543,1544,1545,1546 ,1547,1548,1549,1558,1559,1614,161 6,1617,1620,1633,1652,1656,1659,16 62,1665,1671,1678,1682,1686,1690,1 694,1698,1714,1715,1718,1719,1720, 1721,1725,1730,1735,1741,1742,1743 ,1750,1752,1758,1790,1792,1795,180 7,1808,1809,1811,1842,1843,1845,18 48,1855,1861,1871,1877,1879,1881,1 885,1887,1895,1897,1899,1910,1911, 1912,1913,1919,1920,1922,1925,1927 ,1928,1932,1935,1937,1938,1942,194 5,1947,1948,1952,1957,1961,1965,19 67,1971,1973,1976,1979,1981,1982,1 986,1989,1991,1992,1999,2006,2007, 2008,2026,2040,2046,2048,2049,2050 ,2051,2053,2054,2055,2056,2057,205 8,2064,2065,2071,2072,2074,2075,20 80,2081,2086,2087,2088,2089,2091,2 093,2095,2129,2165,2189,2190,2191, 2214,2216,2218,2220,2224,2225,2230 ,2231,2233,2246,2247,2252,2254,226 5,2266,2279,2280,2281,2291,2293,22 94,2296,2297,2298,2299,2302,2303,2 304,2305,2308,2311,2321,2331,2332, 2333,2336,2337,2338,2341,2342,2343 ,2390,2391,2392,2393,2412,2413,241 5,2416,2417,2420,2446,2447,2449,24 50,2451,2476,2477,2479,2480,2481,2 567,2572 Page 56 Source Listing WMINIT 2014-09-16 16:49 Symbol Table wminitmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References IAPROC Local 343 I(4) 4 scalar PTR 343,1923,1933,1953,1977,1987,2192, 2311 ICLOSE Local 332 I(4) 4 scalar PTR 332,2104,2139 IDFLDS Local 410 CHAR 13 1 15 427,2012,2015,2236,2239 IDINP Local 355 CHAR 3 2 1 ALC 355,718,720,2006,2007,2230,2231,22 54 IDOTYP Local 412 CHAR 30 1 7 437,976,1199 IDOUT Local 342 CHAR 20 2 200 342,1263,1266,1386,1389 IDSE Dummy 81 I(4) 4 scalar ARG,IN 479 IDSI Dummy 81 I(4) 4 scalar ARG,IN 475 IDSO Dummy 81 I(4) 4 scalar ARG,IN 476 IDSS Dummy 81 I(4) 4 scalar ARG,IN 477 IDST Dummy 81 I(4) 4 scalar ARG,IN 478 IDSTR Local 400 CHAR 3 1 7 445,2006,2230 IDTST Local 400 CHAR 3 scalar 1438,1446,1447,1453 IERR Local 376 I(4) 4 scalar 498,517,529,1010,2008,2010,2232,22 34,2531,2541,2546,2552 IERR_MPI Local 385 I(4) 4 scalar 454,455,1026,1068,1072,1286,1331,1 335,1418,1427,1467,1471,1610,1646, 1648,1649,1764,1766,1767,1822,1850 ,2085,2092,2094,2096,2101,2103,210 5,2107,2109,2111,2113,2115,2117,21 19,2121,2123,2125,2127,2131,2133,2 135,2137,2142,2144,2146,2148,2150, 2152,2154,2157,2159,2161,2163,2167 ,2170,2172,2174,2177,2179,2181,218 3,2187,2396,2509 IFI Local 382 I(4) 4 scalar 1242,1245,1247,1251,1259,1261,1263 ,1266,1382,1384,1386,1389 IFJ Local 382 I(4) 4 scalar 1260,1261,1263,1266,1383,1384,1386 ,1389 IFNAME Dummy 81 CHAR scalar ARG,IN 494,497,503,2531 IFT Local 383 I(4) 4 scalar 514,529,531 II Local 378 I(4) 4 scalar 749,750,1185,1187,1192,1204,1226,1 227,1228,1229,1230,1231,1482,1483, 1484,1485,1525,1529,1651,1652,1654 ,1664,1665,1670,1671,1706,1708,171 3,1726,1728,1731,1733,1736,1738,17 40,1789,1790,1900,1901,1917,1924,1 934,1944,1954,1972,1978,1988,2582 IIDATA Local 340 I(4) 4 scalar 340 IINIT Local 340 L(4) 4 scalar PTR 340,2045 ILOOP Local 377 I(4) 4 scalar 1018,1020,1038,1047,1062,1278,1280 ,1301,1310,1325,1419,1421,1440,145 0,1463 IMPROC Local 349 I(4) 4 scalar 349,455,456,481,493,513,516,519,53 6,538,554,615,748,824,825,837,839, 842,843,847,848,849,851,853,854,85 7,858,879,882,886,887,889,891,898, 900,914,916,918,919,925,930,932,93 9,945,960,975,980,985,994,1010,102 2,1038,1052,1062,1065,1067,1082,11 04,1147,1191,1198,1211,1216,1225,1 257,1282,1301,1315,1325,1328,1330, 1349,1363,1380,1398,1413,1423,1431 Page 57 Source Listing WMINIT 2014-09-16 16:49 Symbol Table wminitmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References ,1440,1457,1463,1466,1508,1519,152 4,1534,1562,1572,1581,1597,1607,16 08,1749,1751,1772,1778,1810,1826,1 847,1908,1998,2011,2014,2190,2203, 2219,2235,2238,2297,2298,2303,2304 ,2352,2355,2404,2408,2410,2427,242 9,2431,2432,2434,2436,2442,2444,24 58,2460,2462,2463,2465,2467,2472,2 474,2488,2490,2492,2493,2495,2497, 2521,2531,2536,2541,2546,2557,2562 ,2567,2572,2582,2587,2592,2598 INAMES Local 406 CHAR 11 2 1 ALC 639,687,703,725,729,731,733,2506,2 567,2572 INGRP Local 352 I(4) 4 2 1 ALC 352,810,812,815,816,896,904,907,90 9,1789,1790,1819 INPMAP Local 355 I(4) 4 2 1 ALC 355,718,719,730,734,738,739,740,86 5,866,2040,2254 INPUTS Local 340 RECORD 2280 1 1 ALC,TGT 340,739 INT Func 510 scalar 510 IOSTYP Local 346 I(4) 4 scalar 346,551,552,566,574,576,673,1511,1 542,1549,1555,1561,1569,1578,1580, 1589,1626,1631,1661,1676,1711,1723 IP1 Local 379 I(4) 4 scalar 1616,1617,1621,1623,1627,1628,1651 ,1652,1654,1750,1752,1755,1808,181 0,1811 IPN Local 379 I(4) 4 scalar 1617,1621,1627,1651,1750,1752,1809 ,1810,1811 IPRT Local 388 I(4) 4 2 1 ALC 598,1103,1105,1141,1362,1364,1912 IROOT Local 385 I(4) 4 scalar ITRACE Subr 327 327,489 IW Local 382 I(4) 4 scalar 510,511,512 J Local 376 I(4) 4 scalar 698,699,703,704,705,706,707,708,70 9,724,725,726,728,729,730,731,733, 734,738,739,740,759,760,764,830,83 1,862,863,864,865,866,893,894,896, 904,907,909,966,971,972,974,976,97 7,978,982,983,989,992,993,1004,101 4,1075,1090,1094,1098,1177,1181,11 96,1197,1199,1204,1205,1207,1208,1 209,1213,1214,1220,1223,1224,1236, 1274,1338,1357,1373,1627,1628,1633 ,1662,1757,1758,1760,1791,1792,179 3,1794,1795,1797,1843,1848,1869,18 70,1871,1875,1955,1956,1957,1960,1 961,1964,1965,2003,2004,2006,2007, 2012,2015,2025,2026,2039,2040,2042 ,2044,2048,2053,2069,2070,2072,207 4,2075,2202,2204,2208,2218,2220,22 24,2227,2228,2230,2231,2236,2239,2 245,2246,2247,2253,2254,2312,2315, 2316,2319,2416,2417,2450,2451,2480 ,2481,2567,2572,2587 JFIRST Local 341 I(4) 4 scalar 341,598,639,656,718,724,759,830,83 8,840,862,2003,2025,2039,2227,2245 ,2253 Page 58 Source Listing WMINIT 2014-09-16 16:49 Symbol Table wminitmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References JJ Local 379 I(4) 4 scalar 496,497,503,507,517,522,529,531,61 2,732,733,734,896,904,907,909,1019 ,1023,1028,1279,1283,1288,1420,142 4,1428,1526,1529,1788,1789,1790,17 93,1794,1795,1797,1918,1924,1934,1 944,1954,1956,1972,1978,1988,2005, 2009,2229,2233,2313,2319 JJJ Local 380 I(4) 4 scalar 895,897,899,900,902,904,906,907,90 8,909,910,911,915,916,2414,2417,24 18,2421,2422,2424,2425,2428,2429,2 448,2451,2452,2455,2456,2459,2460, 2478,2481,2482,2485,2486,2489,2490 LEN_TRIM Func 496 scalar 496,507,514,749,1019,1185,1279,142 0,1525,1526,1843,1917,1918,2005,22 02,2218,2229,2312,2313 LFILE Local 403 CHAR 8 scalar 509,517,520,522 LGROUP Local 385 I(4) 4 scalar 1645,1647,1649,1764,1765,1767 LINE Local 414 CHAR 80 scalar 894,899,900,901,904,906,907,908,90 9,910,915,916,1040,1041,1303,1304, 1442,1443,2413,2417,2422,2425,2428 ,2429,2447,2451,2456,2459,2460,247 7,2481,2486,2489,2490 LOADMP Local 388 I(4) 4 2 1 ALC 1500,1504,1793,1794,1808,1809,1815 LOG10 Func 510 scalar 510 LPRT Local 397 L(4) 4 1 1 ALC 598,1103,1106,1142,1362,1365,1913 MAPST2 Local 334 I(4) 4 2 1 PTR 334,2151 MAPSTA Local 334 I(4) 4 2 1 PTR 334,2149 MAX Func 511 scalar 511,552,674,688,689,972,1205,1616, 1617,1679,1683,1687,1695,1699 MAXVAL Func 771 scalar 771,787,810,1557,1578,1591,1809,24 07,2441,2471 MDS Local 386 I(4) 4 2 1 ALC 596,601,622,623,624,625,626,1081,1 345,1347,1861,1877,1879,1881,1885, 1887,1895,1899,1910,1919,1920,1922 ,1925,1927,1928,1932,1935,1937,193 8,1942,1945,1947,1948,1952,1957,19 61,1965,1967,1971,1973,1976,1979,1 981,1982,1986,1989,1991,1992,2321, 2506 MDSE Local 348 I(4) 4 scalar 348,479,482,607,608,610,611,616,65 4,664,665,668,701,723,750,758,761, 762,828,860,935,1147,1478,1479,148 1,1620,1811,1819,1855,1859,1860,18 72,1873,1882,1883,1892,1893,1898,1 901,1919,1920,1925,1927,1935,1937, 1945,1947,1957,1961,1965,1973,1979 ,1981,1989,1991,1999,2026,2033,204 6,2064,2065,2087,2088,2089,2129,21 65,2191,2225,2247,2266,2280,2281,2 293,2294,2297,2303,2310,2317,2318, 2332,2337,2342,2391,2392,2393,2503 ,2531,2536,2541,2546,2552,2557,256 2,2567,2572,2582,2587,2592,2598 MDSE2 Local 376 I(4) 4 scalar 482,484,549,587,588,589,590,591,59 2,653,670,684,927,941,970,1009,103 Page 59 Source Listing WMINIT 2014-09-16 16:49 Symbol Table wminitmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 5,1079,1102,1176,1203,1244,1249,12 98,1342,1361,1377,1437,2007,2232 MDSF Local 348 I(4) 4 2 1 ALC 348,598,602,764,2007,2026,2231,224 6,2247 MDSI Local 348 I(4) 4 scalar 348,475,494,497,499,500,502,549,55 0,653,656,670,671,684,685,927,928, 941,942,970,971,1009,1021,1039,104 0,1079,1080,1102,1103,1176,1177,12 03,1204,1244,1245,1249,1250,1281,1 302,1303,1342,1343,1361,1362,1377, 1378,1422,1441,1442 MDSI2 Local 377 I(4) 4 scalar 1021,1025,1035,1036,1281,1285,1298 ,1299,1422,1426,1437,1438,1452,145 3 MDSO Local 348 I(4) 4 scalar 348,476,493,517,519,520,521,524,52 8,536,541,554,748,824,825,837,840, 842,843,847,848,849,852,853,854,85 7,858,879,883,886,887,889,892,898, 900,914,916,918,919,925,930,932,93 9,945,960,975,980,985,994,1009,105 2,1065,1082,1104,1191,1198,1211,12 16,1225,1257,1315,1328,1349,1363,1 380,1398,1413,1431,1457,1508,1519, 1534,1562,1572,1581,1597,1607,1608 ,1749,1752,1772,1779,1780,1781,182 6,1847,1908,1998,2011,2014,2203,22 19,2235,2238,2298,2304,2352,2355,2 404,2408,2411,2427,2429,2431,2432, 2434,2437,2442,2445,2458,2460,2462 ,2463,2465,2468,2472,2475,2488,249 0,2492,2493,2495,2498,2521 MDSS Local 348 I(4) 4 scalar 348,477,493,494,502,519,520,521,52 4,528,530,536,554,555,557,559,562, 564,566,569,571,575,577,748,824,83 7,838,842,847,849,850,853,857,879, 880,886,889,890,898,899,914,915,91 8,925,930,932,939,945,947,949,952, 954,960,975,976,980,981,985,986,99 4,1002,1009,1052,1054,1056,1065,10 66,1082,1084,1086,1104,1105,1107,1 109,1191,1192,1198,1199,1211,1212, 1216,1217,1225,1233,1257,1263,1266 ,1271,1315,1317,1319,1328,1329,134 9,1351,1353,1363,1364,1366,1368,13 80,1386,1389,1394,1398,1413,1414,1 415,1431,1432,1457,1458,1508,1519, 1520,1527,1528,1534,1535,1562,1563 ,1572,1573,1581,1582,1597,1599,160 1,1607,1749,1750,1772,1773,1774,17 75,1826,1847,1848,1908,1998,2011,2 012,2014,2015,2203,2204,2205,2219, 2220,2221,2235,2236,2238,2239,2352 ,2353,2355,2356,2404,2405,2408,240 9,2427,2428,2431,2434,2435,2442,24 43,2458,2459,2462,2465,2466,2472,2 Page 60 Source Listing WMINIT 2014-09-16 16:49 Symbol Table wminitmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 473,2488,2489,2492,2495,2496,2521 MDST Local 348 I(4) 4 scalar 348,478,489,528,529,530,587,588,58 9,590,591,592,607,608,610,611,614, 617,623,627,654,664,665,667,701,72 3,758,761,762,828,860,935,1478,147 9,1481,1527,1528,1620,1819,1855,18 59,1860,1872,1873,1882,1883,1892,1 893,1898,1901,1919,1920,1925,1927, 1935,1937,1945,1947,1957,1961,1965 ,1973,1979,1981,1989,1991,1999,200 7,2026,2046,2064,2065,2087,2088,20 89,2129,2165,2191,2225,2231,2247,2 266,2280,2281,2293,2294,2310,2317, 2318,2332,2337,2342,2391,2392,2393 ,2503,2504 MDSUP Local 348 I(4) 4 scalar 348,1527,1528 MIN Func 511 scalar 511,552,688,689,796,1549,1559,1616 ,1617 MINVAL Func 694 scalar 694,775,1808 MN Local 404 CHAR 10 scalar 1177,1185,1187,1192,2582 MNAMES Local 406 CHAR 11 1 1 ALC 639,656,671,685,704,733,749,750,83 8,840,850,852,866,880,883,1187,152 5,1529,1750,1752,1843,1848,1910,20 08,2202,2204,2208,2218,2220,2224,2 233,2507,2567 MODMAP Local 353 I(4) 4 2 1 ALC 353,1499,1503,1795,1797 MPIPRIV1 Common 532 28 MPIPRIV2 Common 534 24 MPIPRIVC Common 537 2 MPI_2COMPLEX Param 332 I(4) 4 scalar MPI_2DOUBLE_COMPLEX Param 338 I(4) 4 scalar MPI_2DOUBLE_PRECISION Param 334 I(4) 4 scalar MPI_2INT Param 415 I(4) 4 scalar MPI_2INTEGER Param 330 I(4) 4 scalar MPI_2REAL Param 336 I(4) 4 scalar MPI_ADDRESS_KIND Param 372 I(4) 4 scalar MPI_ANY_SOURCE Param 300 I(4) 4 scalar MPI_ANY_TAG Param 302 I(4) 4 scalar MPI_APPNUM Param 269 I(4) 4 scalar MPI_ARGVS_NULL Scalar 83 CHAR 1 2 1 COM MPI_ARGV_NULL Scalar 84 CHAR 1 1 1 COM MPI_BAND Param 217 I(4) 4 scalar MPI_BARRIER Subr 1026 1026,1068,1072,1286,1331,1335,1418 ,1427,1467,1471,1822,1850,2085,218 7,2509 MPI_BCAST Subr 2091 2091,2093,2095,2100,2102,2104,2106 ,2108,2110,2112,2114,2116,2118,212 0,2122,2124,2126,2130,2132,2134,21 36,2141,2143,2145,2147,2149,2151,2 153,2156,2158,2160,2162,2166,2169, 2171,2173,2176,2178,2180,2182,2395 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 Page 61 Source Listing WMINIT 2014-09-16 16:49 Symbol Table wminitmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 2126 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 Dummy 82 I(4) 4 scalar ARG,IN 452,453 MPI_COMM_BCT Local 358 I(4) 4 scalar PTR 358,1766,2090,2092,2094,2096,2101, 2103,2105,2107,2109,2111,2113,2115 ,2117,2119,2121,2123,2125,2127,213 1,2133,2135,2137,2142,2144,2146,21 48,2150,2152,2154,2157,2159,2161,2 163,2167,2170,2172,2174,2177,2179, 2181,2183,2394,2396 MPI_COMM_CREATE Subr 1647 1647,1765 MPI_COMM_DUP_FN Subr 521 scalar MPI_COMM_GRD Local 357 I(4) 4 scalar PTR 357,1648,1856,2128,2138,2164,2309, 2333,2338,2343 MPI_COMM_GROUP Subr 1610 1610 MPI_COMM_LOC Local 380 I(4) 4 scalar 452,1856,1857,1913 MPI_COMM_MWAVE Local 357 I(4) 4 scalar 357,453,454,455,1026,1068,1072,128 6,1331,1335,1418,1427,1467,1471,16 10,1647,1765,1822,1850,2085,2187,2 509 MPI_COMM_NULL Param 239 I(4) 4 scalar 1857,2090,2128,2138,2164,2309,2333 ,2338,2343,2394 MPI_COMM_NULL_COPY_FN Subr 522 scalar MPI_COMM_NULL_DELETE_FN Subr 521 scalar MPI_COMM_RANK Subr 455 455 MPI_COMM_SELF Param 235 I(4) 4 scalar MPI_COMM_SIZE Subr 454 454 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 Page 62 Source Listing WMINIT 2014-09-16 16:49 Symbol Table wminitmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 2153 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 Page 63 Source Listing WMINIT 2014-09-16 16:49 Symbol Table wminitmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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_FREE Subr 1649 1649,1767 MPI_GROUP_INCL Subr 1645 1645,1763 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 2091,2093,2095,2102,2104,2106,2108 ,2118,2120,2149,2151,2156,2158,216 9,2171,2173,2180,2182,2395 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 2100,2176 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 Page 64 Source Listing WMINIT 2014-09-16 16:49 Symbol Table wminitmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 2110,2112,2114,2116,2122,2124,2130 ,2132,2134,2136,2141,2143,2145,214 7,2160,2162,2166,2178 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 Page 65 Source Listing WMINIT 2014-09-16 16:49 Symbol Table wminitmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 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 NAPADD Local 382 I(4) 4 scalar 1622,1634,1635,1641,1642,1645,1657 ,1659,1663,1665 NAPBCT Local 382 I(4) 4 scalar 1756,1759,1760,1763 NAPBPT Local 344 I(4) 4 scalar PTR 344,1953,2311 NAPFLD Local 344 I(4) 4 scalar PTR 344,1923 NAPLOC Local 381 I(4) 4 scalar 1621,1622,1624,1625,1679,1683,1687 ,1691,1695,1699 NAPLOG Local 343 I(4) 4 scalar PTR 343 NAPPNT Local 344 I(4) 4 scalar PTR 344,1933,2171 NAPPRT Local 345 I(4) 4 scalar PTR 345,1987 NAPRES Local 382 I(4) 4 scalar 1612,1632,1635,1636 NAPROC Local 345 I(4) 4 scalar PTR 345,2169 NAPRST Local 344 I(4) 4 scalar PTR 344 NAPTRK Local 344 I(4) 4 scalar PTR 344,1977 NBI Local 343 I(4) 4 scalar PTR 343,2173,2302 NCPROC Local 381 I(4) 4 scalar 1510,1517,1556,1557,1570,1578,1596 ,1601,1612,1616,1617,1624,1625,163 2,1657,1659,1808,1809 Page 66 Source Listing WMINIT 2014-09-16 16:49 Symbol Table wminitmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References NDPOUT Local 389 I(4) 4 1 1 ALC 1539,1540,1544,1545,1546,1548,1549 ,1556,1557,1559,1570,1578,1579,159 1,1593,1633,1659,1662,1784 NDS Local 343 I(4) 4 1 1 PTR 343,2310,2317,2318,2323 NDSE Local 345 I(4) 4 scalar PTR 345,668 NDSFND Local 379 I(4) 4 scalar 761,762,764,1859,1860,1861,1872,18 73,1877,1879,1881,1882,1883,1885,1 887,1892,1893,1895,1898,1899,1901, 2321 NDSREC Local 379 I(4) 4 scalar 607,608,614,625,626,2208,2224 NDST Local 345 I(4) 4 scalar PTR 345,667 NEXTLN Subr 327 327,549,653,670,684,927,941,970,10 35,1079,1102,1176,1203,1244,1249,1 298,1342,1361,1377,1437 NFBPO Local 343 I(4) 4 scalar PTR 343,1955,1960 NGRPP Param 342 I(4) 4 scalar 342,597,599,1260,1383 NINGRP Local 387 I(4) 4 1 1 ALC 640,789,804,810,811 NINT Func 1616 scalar 1616,1617 NK Local 335 I(4) 4 scalar PTR 335,2156,2165 NMOVE Local 376 I(4) 4 scalar 1430,1432,1435,1449,1454,1455,1456 ,1458,1459,1474,1476,1480 NMPERR Local 349 I(4) 4 scalar 349,481,615,1147,1810,2297,2303,25 31,2536,2541,2546,2557,2562,2567,2 572,2582,2587,2592,2598 NMPLOG Local 350 I(4) 4 scalar 350,516,538,825,839,843,848,851,85 4,858,882,887,891,900,916,919,1608 ,1751,1778,2298,2304,2410,2429,243 2,2436,2444,2460,2463,2467,2474,24 90,2493,2497 NMPROC Local 349 I(4) 4 scalar 349,454,510,674,676,1499,1500,1510 ,1516,1517,1611,1642,1671,1757,179 1,1806,1844 NMPSC2 Local 380 I(4) 4 scalar 1844,1845,1847,1908,1998,2011,2014 ,2203,2219,2235,2238,2352,2355 NMPSCR Local 349 I(4) 4 scalar 349,493,519,536,554,748,824,837,84 2,847,849,853,857,879,886,889,898, 914,918,925,930,932,939,945,960,97 5,980,985,994,1010,1052,1065,1082, 1104,1191,1198,1211,1216,1225,1257 ,1315,1328,1349,1363,1380,1398,141 3,1431,1457,1508,1519,1534,1562,15 72,1581,1597,1607,1749,1772,1820,1 826,2404,2408,2427,2431,2434,2442, 2458,2462,2465,2472,2488,2492,2495 ,2521 NMPTST Local 349 I(4) 4 scalar 349 NMPUPT Local 350 I(4) 4 scalar 350,674,676,1524,1535,1774,1780 NMV Local 350 I(4) 4 scalar PTR 350,1480,1482 NMVMAX Local 350 I(4) 4 scalar 350,1476 NOGE Local 347 I(4) 4 1 10 347,1251 NOGRP Param 342 I(4) 4 scalar 342,597,599,1242,1259,1382 NOPTS Local 346 I(4) 4 scalar PTR 346,2395 NOTYPE Local 347 I(4) 4 scalar 347,965,966,2069 NPOUTT Local 381 I(4) 4 scalar 1588,1591,1593,1596,1598,1601 NPTS Local 379 I(4) 4 scalar 961,1030,1033,1046,1049,1050,1051, Page 67 Source Listing WMINIT 2014-09-16 16:49 Symbol Table wminitmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 1053,1056,1066,1146,1148,1149,1150 ,1160,1161,1164,1165 NPTS Local 417 I(4) 4 scalar 1149,1155,1160,1291,1292,1293,1296 ,1309,1312,1313,1314,1316,1319,132 9,1911,2386 NRGRD Local 351 I(4) 4 scalar 351,550,555,581,587,596,597,598,59 9,621,639,640,641,642,683,694,698, 712,718,722,756,771,775,778,787,79 4,800,814,859,934,1136,1154,1159,1 186,1190,1477,1499,1539,1543,1558, 1614,1827,1828,1842,2086,2189,2252 ,2265,2273,2279,2291,2331,2336,234 1,2390,2412,2446,2476 NRGRP Local 351 I(4) 4 scalar 351,788,799,802,804,810,893,1499,1 500,1788,1807 NRINP Local 351 I(4) 4 scalar 351,550,556,559,582,583,587,598,63 9,642,651,718,732,746,756,823,826, 2214 NSEA Local 331 I(4) 4 scalar PTR 331,2048,2049,2050,2051,2053,2054, 2055,2056,2057,2058,2118,2129 NSEAL Local 335 I(4) 4 scalar PTR 335,2120 NTH Local 335 I(4) 4 scalar PTR 335,2158,2165,2166 NTRACE Local 386 I(4) 4 2 1 ALC 596,627,628,1910,2506 NTRMAX Local 489 I(4) 4 scalar PRIV 77,489,628 NX Local 331 I(4) 4 scalar PTR 331,2008,2106,2129,2130,2132,2134, 2136,2139,2141,2143,2145,2147,2149 ,2151,2232 NY Local 331 I(4) 4 scalar PTR 331,2008,2108,2129,2130,2132,2134, 2136,2139,2141,2143,2145,2147,2149 ,2151,2232 ODAT Local 386 I(4) 4 2 1 ALC 596,971,972,974,977,978,982,983,98 9,992,993,1132,1133,1137,1146,1148 ,1204,1205,1207,1208,1209,1213,121 4,1220,1223,1224,1544,1545,1546,15 47,1548,1678,1682,1686,1690,1694,1 698,1714,1715,1718,1719,1720,1721, 1725,1730,1735,1741,1742,1743,1871 ,1897,1910,2362,2363,2364,2365,236 6,2506 OT2 Local 422 RECORD 224 1 1 ALC 597,1149,1150,1151,1152,1153,1155, 1156,1160,1162,1164,1165,1166,1167 ,1168,1290,1291,1292,1293,1296,130 9,1312,1313,1314,1316,1319,1329,19 11,1912,2386,2387 OT2TPE Type 416 224 scalar 420,422 OUTPTS Local 345 RECORD 5960 1 1 ALC,TGT 345,2362,2363,2364,2365,2366,2368, 2369,2374,2380 OUTSTR Local 401 CHAR 5 1 6 1618,1680,1684,1688,1692,1696,1700 ,1707,1714,1717,1718,1719,1720,172 1,1727,1732,1737,1741,1742,1743,17 50,1752 PMPI_WTICK Func 520 R(8) 8 scalar PMPI_WTIME Func 520 R(8) 8 scalar PN Local 404 CHAR 10 scalar 1036,1044,1051,1054,1056,1299,1307 ,1314,1317,1319 Page 68 Source Listing WMINIT 2014-09-16 16:49 Symbol Table wminitmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References PNAMES Local 406 CHAR 11 1 1 ALC 1030,1051,1153,1168 PNAMES Local 419 CHAR 10 1 1 PTR 1150,1153,1156,1162,1165,1168,1290 ,1293,1314,1912,2387 PREAMB Dummy 82 CHAR scalar ARG,IN 458 PRESENT Func 458 scalar 458 PSHARE Local 395 L(4) 4 scalar 551,574,1556,1557,1569,1571,1590,1 626,1632,1656 REAL Func 510 scalar 510,989,1220,1616,1617,2364,2518 RNKMAX Local 378 I(4) 4 scalar 771,776,781,786,791 RNKMIN Local 377 I(4) 4 scalar 775,776,779 RNKTMP Local 378 I(4) 4 scalar 694,699,713,772,777,780,786,791,79 5,801 RP1 Local 392 R(4) 4 1 1 ALC 641,686,688,689,707,907,1616,1815 RPN Local 392 R(4) 4 1 1 ALC 641,686,689,708,909,1617,1815 SCRATCH Local 377 I(4) 4 scalar 610,611,1023,1025,1028,1029,1041,1 062,1069,1071,1283,1285,1288,1289, 1304,1325,1332,1334,1424,1426,1428 ,1429,1443,1463,1468,1470,2503 SIZE Func 2032 scalar 2032 STDATE Local 404 CHAR 10 scalar 539,541 STIME Local 350 I(4) 4 1 2 350,928,929,936,2372 STME21 Subr 328 328,929,931,979,984,991,1210,1215, 1222 STOUT Local 401 CHAR 5 scalar 1679,1680,1683,1684,1687,1688,1691 ,1692,1695,1696,1699,1700,1706,170 7,1713,1714,1717,1718,1719,1720,17 21,1726,1727,1731,1732,1736,1737,1 740,1741,1742,1743 STTIME Local 403 CHAR 8 scalar 540,541 SUM Func 1556 scalar 1556,1570,1593,1659 SX Local 332 R(4) 4 scalar PTR 332,2112 SY Local 332 R(4) 4 scalar PTR 332,2116 SYSTEM_CLOCK Intrin 450 450,2511 TDATA Local 353 I(4) 4 2 1 ALC 353,1828,1836,1837 TFILE Local 408 CHAR 18 scalar 513,514,529,531 TFLAGI Local 395 L(4) 4 scalar 1080,1081,1083,1343,1344,1350 TFLAGS Local 395 L(4) 4 1 20 2032,2037,2042,2063 TH Local 336 R(4) 4 1 1 PTR 336,2166 TICK21 Subr 328 328,990,1221,2374 TIME Local 338 I(4) 4 1 1 PTR 338,936,2081 TLST Local 381 I(4) 4 1 2 2369,2382 TMAX Local 353 I(4) 4 2 1 ALC 353,1827,1832,1833 TMOVE Local 388 I(4) 4 2 1 ALC 1430,1454,1458,1483 TMPGRP Local 387 I(4) 4 1 1 ALC 640,686,706,787,796,801,803,811 TMPRNK Local 387 I(4) 4 1 1 ALC 640,686,694,699,705,771,775,779,78 1,811,1611,1628,1635,1642,1645,167 9,1683,1687,1691,1695,1699,1706,17 13,1726,1731,1736,1740,1755,1760,1 763,1784 TMV Local 351 I(4) 4 3 1 PTR 351,1483 TNAME Local 413 CHAR 80 scalar 1924,1925,1934,1935,1944,1945,1954 ,1956,1958,1972,1973,1978,1979,198 8,1989,2314,2315,2319 TNAMES Local 404 CHAR 10 1 7 685,687 TOLAST Local 347 I(4) 4 2 1 PTR 347,2182 Page 69 Source Listing WMINIT 2014-09-16 16:49 Symbol Table wminitmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References TOLAST Local 2365 I(4) 4 2 14 2365,2366,2369 TONEXT Local 342 I(4) 4 2 1 PTR 342,2072,2074,2075,2180 TONEXT Local 2362 I(4) 4 2 14 2362,2363,2368,2380 TOUT Local 380 I(4) 4 1 2 2368,2372,2374,2380,2382 TOUTP Local 353 I(4) 4 2 1 ALC 353,1827,1834,1835,2071,2072,2074, 2075,2091 TSTOUT Param 528 L(4) 4 scalar 528,2504 TSYNC Local 353 I(4) 4 2 1 ALC 353,1827,1830,1831,2081,2093 TTIME Local 376 I(4) 4 1 2 977,978,979,982,983,984,987,988,99 0,991,1208,1209,1210,1213,1214,121 5,1218,1219,1221,1222,1453,1454 UA0 Local 2053 R(4) 4 1 1 PTR 2053 UAI Local 2054 R(4) 4 1 1 PTR 2054 UD0 Local 2055 R(4) 4 1 1 PTR 2055 UDI Local 2056 R(4) 4 1 1 PTR 2056 UNIPTS Local 346 L(4) 4 scalar 346,550,561,567,583,662,846,1131,1 145,1148,1197,1511,1515,1682,1705, 1716,1774,1780,2200,2360,2384 UPPROC Local 346 L(4) 4 scalar 346,551,568,1511,1516,1519,1522,15 34,1640,1669,1708,1716 USEINP Local 397 L(4) 4 1 1 ALC 642,645,740,747,827,2216,2258 W3ADATMD Module 314 314,339 W3DIMI Subr 316 316,2046,2225 W3DIMS Subr 312 312,2165 W3DIMX Subr 312 312,2129 W3FLDO Subr 319 319,2007,2231 W3FLDSMD Module 319 319 W3GDATMD Module 312 312,331,332 W3GSRUMD Module 337 337 W3GSUC Local 2139 scalar 2139 W3GSUC_R4 Func 2139 RECORD 8 scalar PRIV 2139 W3IDATMD Module 316 316,340 W3INIT Subr 322 322,1910 W3INITMD Module 322 322,359 W3IOGOMD Module 320 320 W3IOGR Subr 321 321,2208,2224 W3IOGRMD Module 321 321 W3NAUX Subr 314 314,589 W3NDAT Subr 313 313,588 W3NINP Subr 316 316,591 W3NMOD Subr 312 312,587 W3NOUT Subr 315 315,590 W3ODATMD Module 315 315,342 W3READFLGRD Subr 320 320,1009 W3SERVMD Module 327 327 W3SETA Subr 314 314,2065 W3SETG Subr 312 312,1478,2088,2266,2281,2293,2392 W3SETI Subr 316 316,654,664,701,723,758,828,860,19 99,2064 W3SETO Subr 315 315,665,2089,2191,2294,2393 W3SETW Subr 313 313,935 W3TIMEMD Module 328 328 W3WDATMD Module 313 313,338 WADATS Local 339 RECORD 16448 1 1 ALC,TGT 339,2048,2049,2050,2051,2053,2054, 2055,2056,2057,2058 Page 70 Source Listing WMINIT 2014-09-16 16:49 Symbol Table wminitmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References WMDIMD Subr 317 317,1481 WMGEQL Subr 323 323,2348 WMGHGH Subr 323 323,2354 WMGLOW Subr 323 323,2274 WMGRIDMD Module 323 323 WMINIOMD Module 324 324 WMINIT Subr 81 WMIOBF Subr 324 324,2343 WMIOBG Subr 324 324,2338 WMIOBS Subr 324 324,2333 WMIOPOMD Module 325 325 WMIOPP Subr 325 325,2386 WMMDATMD Module 317 317,348,356,357 WMNDAT Subr 317 317,592 WMRSPC Subr 323 323,2263 WMSETM Subr 317 317,1479,1620,1819,1855,2087,2280, 2332,2337,2342,2391 WMUDMP Subr 329 329,2504 WMUGET Subr 329 329,607,610,761,1527,1859,1872,188 2,1892,1898,2317 WMUINI Subr 329 329,465 WMUINQ Subr 329 329,1919,1920,2026,2246 WMUNITMD Module 329 329 WMUSET Subr 329 329,469,470,502,521,524,530,608,61 1,762,1528,1860,1873,1883,1893,190 1,1925,1927,1935,1937,1945,1947,19 57,1961,1965,1973,1979,1981,1989,1 991,2310,2318,2503 WWDATE Subr 327 327,539 WWTIME Subr 327 327,540 WWVER Param 359 CHAR 10 scalar 359,541 X Local 391 R(4) 4 1 1 ALC 1030,1049,1151,1166 X Local 418 R(4) 4 1 1 PTR 1150,1151,1156,1162,1164,1166,1290 ,1291,1312,1912,2386 X0 Local 332 R(4) 4 scalar PTR 332,2110 XFR Local 335 R(4) 4 scalar PTR 335,2160 XGRD Local 333 R(4) 4 2 1 PTR 333,2134,2140 XX Local 390 R(4) 4 scalar 1036,1049,1054,1056,1299,1312,1317 ,1319,1453,1455 XXXNO Local 402 CHAR 6 scalar 448,564,571,577,949,954 Y Local 391 R(4) 4 1 1 ALC 1030,1050,1152,1167 Y Local 418 R(4) 4 1 1 PTR 1150,1152,1156,1162,1164,1167,1290 ,1292,1313,1912,2386 Y0 Local 332 R(4) 4 scalar PTR 332,2114 YESXX Local 402 CHAR 6 scalar 447,562,569,575,947,952 YGRD Local 333 R(4) 4 2 1 PTR 333,2136,2140 YY Local 390 R(4) 4 scalar 1036,1050,1054,1056,1299,1313,1317 ,1319,1453,1456 Page 71 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 3327 !/ 3328 !/ End of module WMINITMD -------------------------------------------- / 3329 !/ 3330 END MODULE WMINITMD SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References WMINITMD Module 2 Page 72 Source Listing WMINIT 2014-09-16 16:49 Subprograms/Common Blocks wminitmd.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 WMINIT Subr 81 WMINITMD 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 no -f66 no -f77rtl Page 73 Source Listing WMINIT 2014-09-16 16:49 wminitmd.f90 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 : wminitmd.lst -o filename : none COMPILER: Intel(R) Fortran 12.1-2100