Go to the documentation of this file.
130 INTEGER,
PRIVATE :: ISTAT
209 SUBROUTINE w3ndat ( NDSE, NDST )
272 INTEGER,
INTENT(IN) :: NDSE, NDST
279 INTEGER,
SAVE :: IENT = 0
283 CALL strace (ient,
'W3NDAT')
289 IF (
ngrids .EQ. -1 )
THEN
298 check_alloc_status( istat )
306 wdatas(i)%FL_ALL = .false.
317 1001
FORMAT (/
' *** ERROR W3NDAT : NGRIDS NOT YET SET *** '/ &
319 ' RUN W3NMOD FIRST'/)
322 9000
FORMAT (
' TEST W3NDAT : SETTING UP FOR ',i4,
' GRIDS')
342 SUBROUTINE w3dimw ( IMOD, NDSE, NDST, F_ONLY )
438 INTEGER,
INTENT(IN) :: IMOD, NDSE, NDST
439 LOGICAL,
INTENT(IN),
OPTIONAL :: F_ONLY
444 INTEGER :: JGRID, NSEALM, NSEATM
445 INTEGER :: NSEAL_DUMMY, ISEA
450 INTEGER,
SAVE :: IENT = 0
454 CALL strace (ient,
'W3DIMW')
461 IF (
PRESENT(f_only) )
THEN
467 IF ( ngrids .EQ. -1 )
THEN
472 IF ( imod.LT.1 .OR. imod.GT.
nwdata )
THEN
473 WRITE (ndse,1002) imod,
nwdata
477 IF (
wdatas(imod)%DINIT )
THEN
483 WRITE (ndst,9000) imod
487 IF ( jgrid .NE. imod )
CALL w3setg ( imod, ndse, ndst )
496 ALLOCATE (
wdatas(imod)%VA(nspec,0:nsealm), stat=istat );
wdatas(imod)%VA = 0.
497 check_alloc_status( istat )
499 ALLOCATE (
wdatas(imod)%SHAVETOT(nseal), stat=istat )
502 IF (.not.
lsloc)
THEN
503 ALLOCATE (
wdatas(imod)%VSTOT(nspec,nseal), stat=istat )
506 ALLOCATE (
wdatas(imod)%VDTOT(nspec,nseal), stat=istat )
510 ALLOCATE (
wdatas(imod)%VAOLD(nspec,nseal), stat=istat )
513 IF (.not.
lsloc)
THEN
521 wdatas(imod)%SHAVETOT=.false.
529 ALLOCATE (
wdatas(imod)%QR5TIM0(0:nsealm), &
530 wdatas(imod)%QR5CVK0(nspec, 0:nsealm), &
531 wdatas(imod)%QC5INT0(qi5nnz, 0:nsealm), &
532 wdatas(imod)%QR5TMIX(0:nsealm), stat=istat)
533 check_alloc_status( istat )
538 wdatas(imod)%QR5TIM0 = 0.0
539 wdatas(imod)%QR5CVK0 = 0.0
540 wdatas(imod)%QC5INT0 = (0.0, 0.0)
541 wdatas(imod)%QR5TMIX = 0.0
546 WRITE(*,
'(A, I4, I12)')
'⊚ → [WW3 WDAT]: IMOD & QI5NNZ: ', imod, qi5nnz
550 IF ( nseal .NE. nsealm )
THEN
551 DO isea=nseal+1,nsealm
552 wdatas(imod)%VA(:,isea) = 0.
555 wdatas(imod)%QR5TIM0(isea) = 0.0
556 wdatas(imod)%QR5CVK0(:,isea) = 0.0
557 wdatas(imod)%QC5INT0(:,isea) = (0.0, 0.0)
558 wdatas(imod)%QR5TMIX(isea) = 0.0
565 ALLOCATE (
wdatas(imod)%WLV(nsea), &
566 wdatas(imod)%ICE(0:nsea), &
567 wdatas(imod)%RHOAIR(nsea), &
569 wdatas(imod)%ZETA_SETUP(nsea), &
571 wdatas(imod)%BERG(nsea), &
572 wdatas(imod)%ICEH(0:nsea), &
573 wdatas(imod)%ICEF(0:nsea), &
574 wdatas(imod)%ICEDMAX(nsea), &
575 wdatas(imod)%UST(0:nseatm), &
576 wdatas(imod)%USTDIR(0:nseatm), &
577 wdatas(imod)%ASF(nseatm), &
578 wdatas(imod)%FPIS(nseatm), stat=istat )
579 check_alloc_status( istat )
582 wdatas(imod)%ICE (0:nsea) = 0.
585 wdatas(imod)%ZETA_SETUP(:) = 0.
587 wdatas(imod)%BERG (:) = 0.
588 wdatas(imod)%ICEH (0:nsea) = grids(imod)%IICEHINIT
589 wdatas(imod)%ICEF (0:nsea) = 1000.
590 wdatas(imod)%ICEDMAX(:) = 1000.
591 wdatas(imod)%UST (0:nseatm) = 1.e-5
592 wdatas(imod)%USTDIR(0:nseatm) = 0.
594 wdatas(imod)%FPIS (:) = 0.
595 wdatas(imod)%DINIT = .true.
596 CALL w3setw ( imod, ndse, ndst )
605 IF ( jgrid .NE. imod )
CALL w3setg ( jgrid, ndse, ndst )
611 1001
FORMAT (/
' *** ERROR W3DIMW : GRIDS NOT INITIALIZED *** '/ &
612 ' RUN W3NMOD FIRST '/)
613 1002
FORMAT (/
' *** ERROR W3DIMW : ILLEGAL MODEL NUMBER *** '/ &
616 1003
FORMAT (/
' *** ERROR W3DIMW : ARRAY(S) ALREADY ALLOCATED *** ')
619 9000
FORMAT (
' TEST W3DIMW : MODEL ',i4,
' DIM. AT ',2i5,i7)
629 CALL w3setw ( imod, ndse, ndst )
638 9001
FORMAT (
' TEST W3DIMW : ARRAYS ALLOCATED')
639 9002
FORMAT (
' TEST W3DIMW : POINTERS RESET')
640 9003
FORMAT (
' TEST W3DIMW : DIMENSIONS STORED')
659 SUBROUTINE w3setw ( IMOD, NDSE, NDST )
725 INTEGER,
INTENT(IN) :: IMOD, NDSE, NDST
731 INTEGER,
SAVE :: IENT = 0
735 CALL strace (ient,
'W3SETW')
741 IF (
nwdata .EQ. -1 )
THEN
746 IF ( imod.LT.0 .OR. imod.GT.
nwdata )
THEN
747 WRITE (ndse,1002) imod,
nwdata
752 WRITE (ndst,9000) imod
820 1001
FORMAT (/
' *** ERROR W3SETW : GRIDS NOT INITIALIZED *** '/ &
821 ' RUN W3NMOD FIRST '/)
822 1002
FORMAT (/
' *** ERROR W3SETW : ILLEGAL MODEL NUMBER *** '/ &
827 9000
FORMAT (
' TEST W3SETW : MODEL ',i4,
' SELECTED')
real, dimension(:), pointer qr5tim0
real, dimension(:), pointer iceh
real, dimension(:), pointer fpis
logical, dimension(:), pointer shavetot
type(t_rank), dimension(:), allocatable, public rank
Provides access to some information of all threads e.g.
real, parameter dair
DAIR Density of air (kg/m3).
integer, parameter ungtype
Define data structures to set up wave model dynamic data for several models simultaneously.
subroutine set_up_nseal_nsealm(NSEALout, NSEALMout)
Setup NSEAL, NSEALM in context of PDLIB.
real, dimension(:), pointer icef
complex, dimension(:, :), pointer qc5int0
real, dimension(:), pointer wlv
type(wdata), dimension(:), allocatable, target wdatas
integer, dimension(:), pointer time
type(grid), dimension(:), allocatable, target grids
integer, public npa
number of ghost + resident nodes this partition holds
real, dimension(:,:), pointer va
integer, dimension(:), pointer trho
integer, dimension(:), pointer tlev
subroutine w3setg(IMOD, NDSE, NDST)
real, dimension(:), pointer fx_zs
real, dimension(:), pointer berg
subroutine w3ndat(NDSE, NDST)
Set up the number of grids to be used.
real, dimension(:), pointer qr5tmix
real, dimension(:,:), pointer vdtot
Has data that belong to nodes.
logical lpdlib
LPDLIB Logical for using the PDLIB library.
real, dimension(:,:), pointer vstot
integer, dimension(:), pointer tic1
Provides access to some information of all threads e.g.
subroutine w3setw(IMOD, NDSE, NDST)
Select one of the WAVEWATCH III grids / models.
real, dimension(:, :), pointer qr5cvk0
integer(kind=8), pointer qi5nnz
real, dimension(:), pointer sxy_zs
integer, public np
number of nodes, local
subroutine w3dimw(IMOD, NDSE, NDST, F_ONLY)
Initialize an individual data grid at the proper dimensions.
integer, dimension(:), pointer timeend
integer, dimension(:), pointer qi5tbeg
subroutine strace(IENT, SNAME)
real, dimension(:), pointer icedmax
real, dimension(:), pointer zeta_setup
real, dimension(:), pointer ice
integer, dimension(:), pointer time00
real, dimension(:), pointer ust
Define some much-used constants for global use (all defined as PARAMETER).
real, dimension(:), pointer fy_zs
subroutine extcde(IEXIT, UNIT, MSG, FILE, LINE, COMM)
real, dimension(:), pointer rhoair
real, dimension(:), pointer ustdir
real, dimension(:), pointer syy_zs
integer, dimension(:), pointer tic5
Parallel routines for implicit solver.
real, dimension(:,:), pointer vaold
integer, dimension(:), pointer tice
real, dimension(:), pointer sxx_zs
real, dimension(:), pointer asf