WAVEWATCH III  beta 0.0.1
ww3_sbs1.F90
Go to the documentation of this file.
1 
7 
8 #include "w3macros.h"
9 !/------------------------------------------------------------------- /
36 PROGRAM w3sbs1
37  !/
38  !/ +-----------------------------------+
39  !/ | WAVEWATCH-III NOAA/NCEP |
40  !/ | H. L. Tolman |
41  !/ | A. Chawla |
42  !/ | FORTRAN 90 |
43  !/ | Last update : 05-Dec-2012 |
44  !/ +-----------------------------------+
45  !/
46  !/ 04-May-2005 : Origination. ( version 3.07 )
47  !/ 11-Aug-2010 : Upgrade for operations and inclusion in svn.
48  !/ ( version 3.14.4 )
49  !/ 05-Dec-2012 : Making sleep a system call. ( version 4.11 )
50  !/
51  !/ Copyright 2010 National Weather Service (NWS),
52  !/ National Oceanic and Atmospheric Administration. All rights
53  !/ reserved. WAVEWATCH III is a trademark of the NWS.
54  !/ No unauthorized use without permission.
55  !/
56  ! 1. Purpose :
57  !
58  ! Program shell or driver to run the multi-grid wave model in
59  ! 'half-coupled' mode, that is running side-by-side with a weather
60  ! model while waiting for wind field to become available.
61  !
62  ! This version is set up for running at NCEP with a single input
63  ! wind file, and requires an additional input file.
64  ! times.inp Input file with time stamps. Add to this input file
65  ! a time stamp after the field has been properly
66  ! added to the wind.ww3 or equavalent file.
67  ! This file should have the time stamps of fields available in
68  ! the first auxiliary wind input file (grid).
69  !
70  ! Apart from management of the time stepping, this code is
71  ! identical to ww3_multi.ftn, and reads the corresponding input
72  ! file ww3_multi.inp
73  !
74  ! Note hardwired options and system dependent parts as identified
75  ! in Section 7.
76  !
77  ! 2. Method :
78  !
79  ! Calling WMWAVE in a loop as wind data become available, with
80  ! test on wind file.
81  !
82  ! In order for this to work properly, the user needs to increment
83  ! then main wind input file (wind.XXXX) as data become avalable
84  ! while this program is running. After a new field is added to
85  ! wind file, the corresponding time stamp in YYYYMMDD YYMMSS
86  ! format is concatenated to the times.inp file. As the code
87  ! reads the new time stamp (1X,I8,1Z,I6 format), a test read of
88  ! the wind file is performed until the file is readable, after
89  ! which the wave model is run until the new time stamp and the
90  ! process is repeated. The test reading of the wind file proved
91  ! essential on the NCEP IBM systems to deal with file system
92  ! latencies and buffer flushing.
93  !
94  ! 3. Parameters :
95  !
96  ! Local parameters.
97  ! ----------------------------------------------------------------
98  ! SLEEP1 I.P. Sleep time for testing times file.
99  ! SLEEP2 I.P. Sleep time for testing winds file.
100  ! ----------------------------------------------------------------
101  !
102  ! 4. Subroutines used :
103  !
104  ! Name Type Module Description
105  ! ----------------------------------------------------------------
106  ! WMINIT Subr. WMINITMD Multi-grid model initialization.
107  ! WMWAVE Subr. WMWAVEMD Multi-grid model subroutine.
108  ! WMFINL Subr. WMFINLMD Multi-grid model finalization.
109  ! EXTCDE Subr. W3SERVMD Abort program as graceful as possible.
110  ! W3SETG Subr. W3GDATMD Point to Grid data data structure.
111  ! W3SETI Subr. W3IDATMD Point to input fields data structure.
112  ! WMUGET Subr. WMUNITMD Automatic unit number assignement.
113  ! WMUSET Subr. Automatic unit number assignement.
114  !
115  ! MPI_INIT, MPI_COMM_SIZE, MPI_COMM_RANK, MPI_BARRIER,
116  ! MPI_FINALIZE
117  ! Subr. Standard MPI routines.
118  !
119  ! RDTIME Subr. W3MLT Get next wind time.
120  ! RDWIND Subr. W3MLT Test read next wind field.
121  ! ----------------------------------------------------------------
122  !
123  ! 5. Called by :
124  !
125  ! None, stand-alone program.
126  !
127  ! 6. Error messages :
128  !
129  ! 7. Remarks :
130  !
131  ! - Assumptions in this program:
132  ! 1) WNS or WND option with 3 or two data fields is set in the
133  ! decaration and initialization of the C*3 TYPE.
134  ! 2) Single wind file to be tested, this is the first aux grid
135  ! with wind defined.
136  ! 3) Needs system SLEEP command, now behind SBS switch.
137  !/ 05-Dec-2012 : Making sleep a system call. ( version 4.11 )
138 
139  !
140  ! 8. Structure :
141  !
142  ! ----------------------------------------------------------------
143  ! 0. Initialization necessary for driver
144  ! a General I/O: (implicit in wmmdatmd)
145  ! b MPI environment
146  ! c Identifying output to "screen" unit
147  ! 1. Initialization of all wave models / grids ( WMINIT )
148  ! 2. Open and prepare test files.
149  ! 3. Run the multi-grid models
150  ! a Preparations
151  ! b Catch up with starting time of model ( RDTIME )
152  ! c Catch up with test reading of file ( DWINDE )
153  ! d Run wave model ( WMWAVE )
154  ! 4. Finalization of wave model ( WMFINL )
155  ! 5. Finalization of driver
156  ! ----------------------------------------------------------------
157  !
158  ! 9. Switches :
159  !
160  ! !/MPI Including MPI routines / environment.
161  !
162  ! 10. Source code :
163  !
164  !/ ------------------------------------------------------------------- /
165  USE wminitmd, ONLY: wminit
166  USE wmwavemd, ONLY: wmwave
167  USE wmfinlmd, ONLY: wmfinl
168  USE w3servmd, ONLY: extcde
169  USE w3gdatmd, ONLY: w3setg
170  USE w3gdatmd, ONLY: ngrids, nauxgr, nx, ny, gname, filext
171  USE w3idatmd, ONLY: w3seti
172  USE w3idatmd, ONLY: flwind
173  USE wmmdatmd, ONLY: mdsf
174  USE wmunitmd, ONLY: wmuget, wmuset
175  USE w3timemd
176  !/
177  USE wmmdatmd, ONLY: mdse, mdst, mdss, nmproc, improc, nmpscr, &
178  nrgrd, stime, etime
179  !/
180  IMPLICIT NONE
181  !
182 #ifdef W3_MPI
183  include "mpif.h"
184 #endif
185  !/
186  !/ ------------------------------------------------------------------- /
187  !/ Local parameters
188  !/
189  INTEGER :: mpi_comm = -99, ierr, ndst1, ndst2 = -1,&
190  nxw = -1, nyw = -1, tnext(2), told(2), &
191  i
192 #ifdef W3_MPI
193  INTEGER :: ierr_mpi
194 #endif
195  INTEGER, PARAMETER :: sleep1 = 10 , sleep2 = 10
196  INTEGER, ALLOCATABLE :: tend(:,:)
197  REAL :: dttst
198  ! CHARACTER(LEN=3) :: TSFLD, TYPE = 'WNS'
199  CHARACTER(LEN=3) :: tsfld, TYPE = 'WND'
200  CHARACTER(LEN=13) :: tsstr
201  !/
202  !/ ------------------------------------------------------------------- /
203  ! 0. Initialization necessary for driver
204  ! 0.a General I/O: all can start with initialization in wmmdatmd
205  !
206  ! 0.b MPI environment: Here, we use MPI_COMM_WORLD
207  !
208 #ifdef W3_MPI
209  CALL mpi_init ( ierr_mpi )
210  mpi_comm = mpi_comm_world
211  CALL mpi_comm_size ( mpi_comm, nmproc, ierr_mpi )
212  CALL mpi_comm_rank ( mpi_comm, improc, ierr_mpi )
213  improc = improc + 1
214 #endif
215  !
216  ! 0.c Identifying output to "screen" unit
217  !
218  IF ( improc .EQ. nmpscr ) WRITE (*,900)
219  !
220  !/ ------------------------------------------------------------------- /
221  ! 1. Initialization of all wave models / grids
222  ! Use only one of the calls ....
223  !
224  ! ... Log and screen output, no separate test output file
225  !
226  ! CALL WMINIT ( 8, 9, 6, 6, 6, 'ww3_multi.inp', MPI_COMM )
227  !
228  ! ... Screen output disabled
229  !
230  ! CALL WMINIT ( 8, 9, 9, 6, 6, 'ww3_multi.inp', MPI_COMM )
231  !
232  ! ... Separate test output file and file preamble defined
233  !
234  ! CALL WMINIT ( 8, 9, 6, 10, 6, 'ww3_multi.inp', MPI_COMM, &
235  ! './data/' )
236  !
237  ! ... Separate test output file
238  !
239  CALL wminit ( 8, 9, 6, 10, 6, 'ww3_multi.inp', mpi_comm )
240  !
241  !/ ------------------------------------------------------------------- /
242  ! 2. Setting up test files
243  !
244  CALL wmuget ( mdse, mdst, ndst1, 'INP' )
245  CALL wmuset ( mdse, mdst, ndst1, .true., 'I/O', &
246  name='times.inp', &
247  desc='times file for sbs driver' )
248  OPEN (ndst1,file='times.inp',status='OLD',err=820,iostat=ierr)
249 #ifdef W3_T
250  WRITE (mdst,9020)
251 #endif
252  !
253  DO i=-1, -nauxgr, -1
254  CALL w3setg ( i, mdse, mdst )
255  CALL w3seti ( i, mdse, mdst )
256  IF ( flwind ) THEN
257  IF ( improc .EQ. nmpscr ) WRITE (mdss,920) filext
258  nxw = nx
259  nyw = ny
260  ndst2 = mdsf(i,3)
261  EXIT
262  END IF
263  END DO
264  !
265  IF ( nxw .EQ. -1 ) GOTO 825
266  IF ( ndst2 .EQ. -1 ) GOTO 825
267  !
268 #ifdef W3_T
269  WRITE (mdst,9021)
270  WRITE (mdst,9022) nxw, nyw, ndst2, i
271 #endif
272  !
273  !/ ------------------------------------------------------------------- /
274  ! 3. Run the wave model
275  ! 3.a Prepping, initial time stamp
276  !
277  ALLOCATE ( tend(2,nrgrd) )
278  !
279  CALL rdtime ( ndst1, tnext )
280  IF ( improc .EQ. nmpscr ) WRITE (mdss,930) tnext
281  !
282  ! 3.b Catch up with starting time as needed
283  !
284  DO
285  told = tnext
286  CALL rdtime ( ndst1, tnext )
287  dttst = dsec21( tnext , stime )
288  IF ( dttst .GT. 0. ) THEN
289  IF ( improc .EQ. nmpscr ) WRITE (mdss,930) tnext
290  ELSE IF ( dttst .EQ. 0. ) THEN
291  IF ( improc .EQ. nmpscr ) WRITE (mdss,930) tnext
292  EXIT
293  ELSE
294  backspace ndst1
295  tnext = told
296  EXIT
297  END IF
298  END DO
299  !
300  ! 3.c Test readig of initial fields
301  !
302  CALL rdwind ( ndst2, tnext, nxw, nyw, .false. )
303  !
304  ! 3.d Loop to run the model
305  !
306  DO
307  !
308  CALL rdtime ( ndst1, tnext )
309  IF ( improc .EQ. nmpscr ) WRITE (mdss,930) tnext
310  CALL rdwind ( ndst2, tnext, nxw, nyw, .true. )
311  IF ( improc .EQ. nmpscr ) WRITE (mdss,931)
312  !
313  dttst = dsec21( tnext , etime )
314  IF ( dttst .LT. 0. ) THEN
315  tnext = etime
316  dttst = 0.
317  END IF
318  !
319  DO i=1, nrgrd
320  tend(:,i) = tnext(:)
321  END DO
322  !
323 #ifdef W3_MPI
324  CALL mpi_barrier ( mpi_comm, ierr_mpi )
325 #endif
326  CALL wmwave ( tend )
327  !
328  dttst = dsec21( tnext , etime )
329  IF ( dttst .LE. 0 ) EXIT
330  !
331  END DO
332  !
333  DEALLOCATE ( tend )
334  !
335  !/ ------------------------------------------------------------------- /
336  ! 4. Finalize the wave model
337  !
338  CALL wmfinl
339  !
340  !/ ------------------------------------------------------------------- /
341  ! 5 Finalize the driver
342  !
343  IF ( improc .EQ. nmpscr ) WRITE (*,999)
344  !
345 #ifdef W3_MPI
346  CALL mpi_barrier ( mpi_comm, ierr_mpi )
347  CALL mpi_finalize ( ierr_mpi )
348 #endif
349  !
350  GO TO 888
351  !
352 820 CONTINUE
353  WRITE (mdss,1020) ierr
354  CALL extcde ( 20 )
355  !
356 825 CONTINUE
357  WRITE (mdss,1025) ndst2
358  CALL extcde ( 25 )
359  !
360 888 CONTINUE
361  !
362  ! Formats
363  !
364 900 FORMAT (/15x,' *** WAVEWATCH III Multi-grid shell *** '/ &
365  15x,'================================================='/&
366  15x,' side-by-side version'/)
367  !
368 920 FORMAT ( ' WIND DATA FILE USED IS wind.',a)
369 930 FORMAT (/' WIND DATA FOUND AT TIME : ',i8.8,1x,i6.6)
370 931 FORMAT (' ')
371  !
372 999 FORMAT (//' End of program '/ &
373  ' ========================================'/ &
374  ' WAVEWATCH III Multi-grid shell '/)
375  !
376 1020 FORMAT (/' *** WAVEWATCH-III ERROR IN W3SBS1 : '/ &
377  ' ERROR IN OPENING TIMES FILE'/ &
378  ' IOSTAT =',i5/)
379  !
380 1025 FORMAT (/' *** WAVEWATCH-III ERROR IN W3SBS1 : '/ &
381  ' WIND FILE NOT FOUND, NDST2 = ',i8/)
382  !
383 #ifdef W3_T
384 9020 FORMAT ( ' TEST W3SBS1: TIMES FILE SUCCESSFULLY OPENED')
385 9021 FORMAT ( ' TEST W3SBS1: WINDS FILE SUCCESSFULLY OPENED')
386 9022 FORMAT ( ' TEST DATA : ',2i8,2i4)
387 #endif
388  !/
389  !/ Internal subroutines RDTIME and RDWIND ---------------------------- /
390  !/
391 CONTAINS
392  !/ ------------------------------------------------------------------- /
403  SUBROUTINE rdtime ( NDS, TIME )
404  !/
405  !/ +-----------------------------------+
406  !/ | WAVEWATCH-III NOAA/NCEP |
407  !/ | H. L. Tolman |
408  !/ | FORTRAN 90 |
409  !/ | Last update : 05-Dec-2012 !
410  !/ +-----------------------------------+
411  !/
412  !/ 10-Aug-2010 : Origination. ( version 3.14.4 )
413  !/ 05-Dec-2012 : Making sleep a system call. ( version 4.11 )
414  !/
415  ! 1. Purpose :
416  !
417  ! Internal subroutine to get next time in time file, including
418  ! waiting until the file is there.
419  !
420  ! 3. Parameters :
421  !
422  ! Parameter list
423  ! ----------------------------------------------------------------
424  ! NDS Int. I Unit number for times file.
425  ! TIME I.A. O Next time in times file.
426  ! ----------------------------------------------------------------
427  !
428  ! 10. Source code :
429  !
430  !/ ------------------------------------------------------------------- /
431  !/ Parameter list
432  !/
433  INTEGER, INTENT(IN) :: NDS
434  INTEGER, INTENT(OUT) :: TIME(2)
435  !/
436  !/ ------------------------------------------------------------------- /
437  !/ Local parameters
438  !/
439 #ifdef W3_SBS
440  CHARACTER(LEN=10) :: COMMAND
441 #endif
442  !/
443  ! -------------------------------------------------------------------- /
444  ! 1. Reading loop
445  !
446  DO
447  !
448  READ (nds,910,END=110,ERR=810,IOSTAT=IERR) time
449  EXIT
450  !
451 110 CONTINUE
452  IF ( improc .EQ. nmpscr ) WRITE (mdss, 911 )
453  backspace nds
454  !
455 #ifdef W3_SBS
456  WRITE (command,'(A5,1X,I4)') 'sleep ', sleep1
457  CALL system ( command )
458 #endif
459  !
460  END DO
461  !
462  RETURN
463  !
464  ! Escape locations read errors --------------------------------------- *
465  !
466 810 CONTINUE
467  WRITE (mdss,1010) ierr
468  CALL extcde ( 10 )
469  !
470  ! Formats
471  !
472 910 FORMAT (1x,i8,1x,i6)
473  !
474 911 FORMAT (/' END OF TIMES FILE REACHED FOR WIND DATA '/ &
475  ' WAITING BEFORE CHECKING AGAIN')
476  !
477 1010 FORMAT (/' *** WAVEWATCH-III ERROR IN W3SBS1/RDTIME : '/ &
478  ' ERROR IN OPENING TIMES FILE'/ &
479  ' IOSTAT =',i5/)
480  !/
481  !/ End of RDTIME ----------------------------------------------------- /
482  !/
483  END SUBROUTINE rdtime
484  !/ ------------------------------------------------------------------- /
499  SUBROUTINE rdwind ( NDS, TIME, NX, NY, REWIND )
500  !/
501  !/ +-----------------------------------+
502  !/ | WAVEWATCH-III NOAA/NCEP |
503  !/ | H. L. Tolman |
504  !/ | FORTRAN 90 |
505  !/ | Last update : 05-Dec-2012 !
506  !/ +-----------------------------------+
507  !/
508  !/ 10-Aug-2010 : Origination. ( version 3.14.4 )
509  !/ 05-Dec-2012 : Making sleep a system call. ( version 4.11 )
510  !/
511  ! 1. Purpose :
512  !
513  ! Internal subroutine to test readnext wind fields from the data
514  ! file, including testing to see if file was read properly.
515  !
516  ! 3. Parameters :
517  !
518  ! Parameter list
519  ! ----------------------------------------------------------------
520  ! NDS Int. I Unit number for times file.
521  ! TIME I.A. I Next time in times file.
522  ! NX,NY Int. I Grid size.
523  ! REWIND Log. I Flag for wind file rewind.
524  ! ----------------------------------------------------------------
525  !
526  ! 10. Source code :
527  !
528  !/ ------------------------------------------------------------------- /
529  !/ Parameter list
530  !/
531  INTEGER, INTENT(IN) :: NDS, TIME(2), NX, NY
532  LOGICAL, INTENT(IN) :: REWIND
533  !/
534  !/ ------------------------------------------------------------------- /
535  !/ Local parameters
536  !/
537  INTEGER :: TTIME(2), IX, IY
538  INTEGER, SAVE :: NREW = 0
539  REAL :: DTTST, XXX(NX,NY)
540 #ifdef W3_SBS
541  CHARACTER(LEN=10) :: COMMAND
542 #endif
543  !
544  ! -------------------------------------------------------------------- /
545  ! 1. Loops
546  !
547  DO
548  !
549  ! ... Inner loop reading
550  !
551  DO
552  !
553  nrew = nrew + 1
554  READ (nds,END=140,ERR=140) ttime
555 #ifdef W3_T
556  WRITE (mdst,9000) ttime
557 #endif
558  !
559  nrew = nrew + 1
560  READ (nds,END=130,ERR=130) ((XXX(IX,IY),IX=1,NX),IY=1,NY)
561 #ifdef W3_T
562  WRITE (mdst,9001) 'U'
563 #endif
564  !
565  nrew = nrew + 1
566  READ (nds,END=120,ERR=120) ((XXX(IX,IY),IX=1,NX),IY=1,NY)
567 #ifdef W3_T
568  WRITE (mdst,9001) 'V'
569 #endif
570  !
571  IF ( TYPE .EQ. 'WNS' ) then
572  nrew = nrew + 1
573  READ (nds,END=110,ERR=110) ((XXX(IX,IY),IX=1,NX),IY=1,NY)
574 #ifdef W3_T
575  WRITE (mdst,9001) 'DT'
576 #endif
577  END IF
578  !
579  EXIT
580  !
581 110 CONTINUE
582  backspace nds
583  nrew = nrew - 1
584 120 CONTINUE
585  backspace nds
586  nrew = nrew - 1
587 130 CONTINUE
588  backspace nds
589  nrew = nrew - 1
590 140 CONTINUE
591  backspace nds
592  nrew = nrew - 1
593  !
594  IF ( improc .EQ. nmpscr ) WRITE (mdss,900)
595  !
596 #ifdef W3_SBS
597  WRITE (command,'(A5,1X,I4)') 'sleep ', sleep2
598  CALL system ( command )
599 #endif
600  !
601  END DO
602  !
603  ! ... Outer loop catching up
604  !
605  dttst = dsec21( time , ttime )
606  !
607  IF ( dttst .LT. 0. ) THEN
608  IF ( improc .EQ. nmpscr ) WRITE (mdss,901) ttime
609  ELSE IF ( dttst .EQ. 0. ) THEN
610  EXIT
611  ELSE
612  GOTO 800
613  END IF
614  !
615  END DO
616  !
617  ! ... Rewind all
618  !
619  IF ( rewind ) THEN
620  !
621  IF ( improc.EQ.nmpscr .AND. nrew.GT.4 ) WRITE (mdss,902) nrew
622  !
623  DO i=1, nrew
624  backspace nds
625  END DO
626  !
627  nrew = 0
628  !
629  END IF
630  !
631  RETURN
632  !
633  ! Escape locations read errors --------------------------------------- *
634  !
635 800 CONTINUE
636  WRITE (mdss,1010)
637  CALL extcde ( 10 )
638  !
639  ! Formats
640  !
641 900 FORMAT (' FILE NOT YET COMPLETE ... ')
642 901 FORMAT (' SKIPPING FILE FOR ',i8.8,i7.6)
643 902 FORMAT (' REWINDING FILE BY ',i4,' RECORDS')
644  !
645 1010 FORMAT (/' *** WAVEWATCH-III ERROR IN W3SBS1/RDWIND : '/ &
646  ' FILE READ PAST EXPECTED TIME '/)
647  !
648 #ifdef W3_T
649 9000 FORMAT ( ' TEST RDWIND: TIME READ ',i8.8,1x,i6.6)
650 9001 FORMAT ( ' FIELD READ ',a)
651 #endif
652  !/
653  !/ End of RDWIND ----------------------------------------------------- /
654  !/
655  END SUBROUTINE rdwind
656  !/
657  !/ End of W3SBS1 ----------------------------------------------------- /
658  !/
659 END PROGRAM w3sbs1
w3timemd::dsec21
real function dsec21(TIME1, TIME2)
Definition: w3timemd.F90:333
include
cmake src_list cmake include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/check_switches.cmake) check_switches("$
Definition: CMakeLists.txt:15
wmmdatmd::mdse
integer mdse
MDSE.
Definition: wmmdatmd.F90:316
wmfinlmd
Finalization of the multi-grid wave model.
Definition: wmfinlmd.F90:14
wminitmd
Initialization of the multi-grid wave model.
Definition: wminitmd.F90:18
wmwavemd::wmwave
subroutine wmwave(TEND)
Run multi-grid version of WAVEWATCH III.
Definition: wmwavemd.F90:91
wmmdatmd::stime
integer, dimension(2) stime
STIME.
Definition: wmmdatmd.F90:328
wmmdatmd::nmpscr
integer nmpscr
NMPSCR.
Definition: wmmdatmd.F90:324
rdtime
subroutine rdtime(NDS, TIME)
Internal subroutine to get next time in time file.
Definition: ww3_sbs1.F90:404
wminitmd::wminit
subroutine wminit(IDSI, IDSO, IDSS, IDST, IDSE, IFNAME, MPI_COMM, PREAMB)
Initialize multi-grid version of WAVEWATCH III.
Definition: wminitmd.F90:131
wmfinlmd::wmfinl
subroutine wmfinl
Initialize multi-grid version of WAVEWATCH III.
Definition: wmfinlmd.F90:75
wmmdatmd::mdss
integer mdss
MDSS.
Definition: wmmdatmd.F90:314
wmwavemd
Running the multi-grid version of WAVEWATCH III up to a given ending time for each grid.
Definition: wmwavemd.F90:14
w3gdatmd::gname
character(len=30), pointer gname
Definition: w3gdatmd.F90:1223
w3gdatmd::ny
integer, pointer ny
Definition: w3gdatmd.F90:1097
wmunitmd::wmuset
subroutine wmuset(NDSE, NDST, NDS, FLAG, TYPE, NAME, DESC)
Directly set information for a unit number in the data structure.
Definition: wmunitmd.F90:497
wmunitmd::wmuget
subroutine wmuget(NDSE, NDST, NDS, TYPE, NR)
Find a free unit number for a given file type.
Definition: wmunitmd.F90:667
wmmdatmd::improc
integer improc
IMPROC.
Definition: wmmdatmd.F90:322
w3gdatmd::w3setg
subroutine w3setg(IMOD, NDSE, NDST)
Definition: w3gdatmd.F90:2152
wmmdatmd::nmproc
integer nmproc
NMPROC.
Definition: wmmdatmd.F90:321
w3servmd
Definition: w3servmd.F90:3
wmmdatmd::nrgrd
integer nrgrd
NRGRD.
Definition: wmmdatmd.F90:330
rdwind
subroutine rdwind(NDS, TIME, NX, NY, REWIND)
Internal subroutine to test readnext wind fields from the data file.
Definition: ww3_sbs1.F90:500
w3sbs1
program w3sbs1
Program shell to run multi half-coupled.
Definition: ww3_sbs1.F90:36
w3idatmd::w3seti
subroutine w3seti(IMOD, NDSE, NDST)
Select one of the WAVEWATCH III grids / models.
Definition: w3idatmd.F90:819
file
file(STRINGS ${CMAKE_BINARY_DIR}/switch switch_strings) separate_arguments(switches UNIX_COMMAND $
Definition: CMakeLists.txt:3
wmmdatmd::mdst
integer mdst
MDST.
Definition: wmmdatmd.F90:315
w3idatmd::flwind
logical, pointer flwind
Definition: w3idatmd.F90:261
w3idatmd
Define data structures to set up wave model input data for several models simultaneously.
Definition: w3idatmd.F90:16
w3gdatmd
Definition: w3gdatmd.F90:16
wmmdatmd
Define data structures to set up wave model dynamic data for several models simultaneously.
Definition: wmmdatmd.F90:16
w3servmd::extcde
subroutine extcde(IEXIT, UNIT, MSG, FILE, LINE, COMM)
Definition: w3servmd.F90:736
w3gdatmd::nx
integer, pointer nx
Definition: w3gdatmd.F90:1097
w3gdatmd::ngrids
integer ngrids
Definition: w3gdatmd.F90:618
w3timemd
Definition: w3timemd.F90:3
wmmdatmd::mdsf
integer, dimension(:,:), allocatable mdsf
MDSF.
Definition: wmmdatmd.F90:352
w3gdatmd::nauxgr
integer nauxgr
Definition: w3gdatmd.F90:618
wmunitmd
Dynamic assignement of unit numbers for the multi-grid wave model.
Definition: wmunitmd.F90:18
wmmdatmd::etime
integer, dimension(2) etime
ETIME.
Definition: wmmdatmd.F90:329
w3gdatmd::filext
character(len=13), pointer filext
Definition: w3gdatmd.F90:1224