Bundles routines for third order propagation scheme in single module. More...
Functions/Subroutines | |
| subroutine | w3map3 |
| Generate 'map' arrays for the ULTIMATE QUICKEST scheme. More... | |
| subroutine | w3mapt |
| Generate 'map' arrays for the ULTIMATE QUICKEST scheme to combine GSE alleviation with obstructions. More... | |
| subroutine | w3xyp3 (ISP, DTG, MAPSTA, MAPFS, VQ, VGX, VGY) |
| Propagation in phyiscal space for a given spectral component. More... | |
| subroutine | w3ktp3 (ISEA, FACTH, FACK, CTHG0, CG, WN, DW, DDDX, DDDY, CX, CY, DCXDX, DCXDY, DCYDX, DCYDY, DCDX, DCDY, VA, CFLTHMAX, CFLKMAX) |
| Propagation in spectral space. More... | |
| subroutine | w3cflxy (ISEA, DTG, MAPSTA, MAPFS, CFLXYMAX, VGX, VGY) |
| Computes the maximum CFL number for spatial advection. More... | |
Bundles routines for third order propagation scheme in single module.
| subroutine w3pro3md::w3cflxy | ( | integer, intent(in) | ISEA, |
| real, intent(in) | DTG, | ||
| integer, dimension(ny*nx), intent(in) | MAPSTA, | ||
| integer, dimension(ny*nx), intent(in) | MAPFS, | ||
| real, intent(inout) | CFLXYMAX, | ||
| real, intent(in) | VGX, | ||
| real, intent(in) | VGY | ||
| ) |
Computes the maximum CFL number for spatial advection.
Used for diagnostic purposes (Could be used to define a local time step ...).
| [in] | ISEA | Index of grid point. |
| [in] | DTG | Total time step. |
| [in] | MAPSTA | Grid point status map. |
| [in] | MAPFS | Storage map. |
| [in,out] | CFLXYMAX | Maximum CFL number for XY propagation. |
| [in] | VGX | Speed of grid. |
| [in] | VGY | Speed of grid. |
Definition at line 1971 of file w3pro3md.F90.
References w3adatmd::atrnx, w3adatmd::atrny, w3odatmd::bbpi0, w3odatmd::bbpin, w3adatmd::cg, w3gdatmd::clats, w3adatmd::cx, w3adatmd::cy, w3gdatmd::dpdx, w3gdatmd::dpdy, w3gdatmd::dqdx, w3gdatmd::dqdy, w3timemd::dsec21(), w3gdatmd::dtcfl, w3gdatmd::dth, w3gdatmd::ecos, w3gdatmd::esin, w3gdatmd::flagll, w3odatmd::flbpi, w3idatmd::flcur, w3gdatmd::flcx, w3gdatmd::flcy, w3gdatmd::gsqrt, w3odatmd::isbpi, w3adatmd::itime, w3adatmd::mapaxy, w3adatmd::mapcxy, w3gdatmd::mapsf, w3adatmd::maptrn, w3adatmd::mapx2, w3adatmd::mapy2, w3adatmd::nact, w3odatmd::nbi, w3adatmd::ncent, w3odatmd::ndse, w3odatmd::ndst, w3gdatmd::nk, w3adatmd::nmx0, w3adatmd::nmx1, w3adatmd::nmx2, w3adatmd::nmy0, w3adatmd::nmy1, w3adatmd::nmy2, w3gdatmd::nsea, w3gdatmd::nth, w3gdatmd::nx, w3gdatmd::ny, w3gdatmd::pfmove, w3gdatmd::sig, w3servmd::strace(), w3odatmd::tbpi0, w3odatmd::tbpin, w3wdatmd::time, w3gdatmd::wdcg, w3gdatmd::wdth, and w3gdatmd::xfr.
Referenced by w3wavemd::w3wave().
| subroutine w3pro3md::w3ktp3 | ( | integer, intent(in) | ISEA, |
| real, intent(in) | FACTH, | ||
| real, intent(in) | FACK, | ||
| real, intent(in) | CTHG0, | ||
| real, dimension(0:nk+1), intent(in) | CG, | ||
| real, dimension(0:nk+1), intent(in) | WN, | ||
| real, intent(in) | DW, | ||
| real, intent(in) | DDDX, | ||
| real, intent(in) | DDDY, | ||
| real, intent(in) | CX, | ||
| real, intent(in) | CY, | ||
| real, intent(in) | DCXDX, | ||
| real, intent(in) | DCXDY, | ||
| real, intent(in) | DCYDX, | ||
| real, intent(in) | DCYDY, | ||
| real, dimension(0:nk+1), intent(in) | DCDX, | ||
| real, dimension(0:nk+1), intent(in) | DCDY, | ||
| real, dimension(nspec), intent(inout) | VA, | ||
| real, intent(out) | CFLTHMAX, | ||
| real, intent(out) | CFLKMAX | ||
| ) |
Propagation in spectral space.
Third order QUICKEST scheme with ULTIMATE limiter.
As with the spatial propagation, the two spaces are considered independently, but the propagation is performed in a 2-D space. Compared to the propagation in physical space, the directions represent a closed space and are therefore comparable to the longitudinal or 'X' propagation. The wavenumber space has to be extended to allow for boundary treatment. Using a simple first order boundary treatment at both sided, two points need to be added. This implies that the spectrum needs to be extended, shifted and rotated, as is performed using MAPTH2 as set in W3MAP3.
| [in] | ISEA | Number of sea point. |
| [in] | FACTH | Factor in propagation velocity. |
| [in] | FACK | Factor in propagation velocity. |
| [in] | CTHG0 | Factor in great circle refracftion term. |
| [in] | CG | Local group velocities. |
| [in] | WN | Local wavenumbers. |
| [in] | DW | Depth. |
| [in] | DDDX | Depth gradients. |
| [in] | DDDY | Depth gradients. |
| [in] | CX | Current components. |
| [in] | CY | Current components. |
| [in] | DCXDX | Current gradients. |
| [in] | DCXDY | Current gradients. |
| [in] | DCYDX | Current gradients. |
| [in] | DCYDY | Current gradients. |
| [in] | DCDX | Phase speed gradients. |
| [in] | DCDY | Phase speed gradients. |
| [in,out] | VA | Spectrum. |
| [out] | CFLTHMAX | |
| [out] | CFLKMAX |
Definition at line 1512 of file w3pro3md.F90.
References w3gdatmd::ctmax, w3gdatmd::dmin, w3gdatmd::dsip, w3gdatmd::ec2, w3gdatmd::ecos, w3gdatmd::es2, w3gdatmd::esc, w3gdatmd::esin, w3gdatmd::fachfa, w3gdatmd::flck, w3gdatmd::flcth, w3idatmd::flcur, w3adatmd::itime, w3adatmd::mapth2, w3gdatmd::mapwn, w3adatmd::mapwn2, w3odatmd::ndse, w3odatmd::ndst, w3gdatmd::nk, w3gdatmd::nk2, w3gdatmd::nspec, w3gdatmd::nth, w3gdatmd::sig, w3servmd::strace(), constants::tpi, w3uqckmd::w3qck1(), w3uqckmd::w3qck2(), w3uno2md::w3uno2(), and w3uno2md::w3uno2r().
Referenced by w3wavemd::w3wave().
| subroutine w3pro3md::w3map3 |
Generate 'map' arrays for the ULTIMATE QUICKEST scheme.
Definition at line 140 of file w3pro3md.F90.
References w3gdatmd::gtype, w3adatmd::mapaxy, w3adatmd::mapcxy, w3gdatmd::mapsf, w3gdatmd::mapsta, w3adatmd::mapth2, w3adatmd::mapwn2, w3adatmd::mapx2, w3adatmd::mapy2, w3adatmd::nact, w3adatmd::ncent, w3odatmd::ndst, w3gdatmd::nk, w3adatmd::nmx0, w3adatmd::nmx1, w3adatmd::nmx2, w3adatmd::nmy0, w3adatmd::nmy1, w3adatmd::nmy2, w3gdatmd::nsea, w3gdatmd::nspec, w3gdatmd::nth, w3gdatmd::nx, w3gdatmd::ny, and w3servmd::strace().
Referenced by w3wavemd::w3wave().
| subroutine w3pro3md::w3mapt |
Generate 'map' arrays for the ULTIMATE QUICKEST scheme to combine GSE alleviation with obstructions.
Definition at line 525 of file w3pro3md.F90.
References w3adatmd::atrnx, w3adatmd::atrny, w3gdatmd::mapsf, w3adatmd::maptrn, w3gdatmd::nsea, w3gdatmd::nx, w3gdatmd::ny, and w3servmd::strace().
Referenced by w3wavemd::w3wave().
| subroutine w3pro3md::w3xyp3 | ( | integer, intent(in) | ISP, |
| real, intent(in) | DTG, | ||
| integer, dimension(ny*nx), intent(in) | MAPSTA, | ||
| integer, dimension(ny*nx), intent(in) | MAPFS, | ||
| real, dimension(1-ny:ny*(nx+2)), intent(inout) | VQ, | ||
| real, intent(in) | VGX, | ||
| real, intent(in) | VGY | ||
| ) |
Propagation in phyiscal space for a given spectral component.
| [in] | ISP | Number of spectral bin (IK-1)*NTH+ITH. |
| [in] | DTG | Total time step. |
| [in] | MAPSTA | Grid point status map. |
| [in] | MAPFS | Storage map. |
| [in,out] | VQ | Field to propagate. |
| [in] | VGX | Speed of grid. |
| [in] | VGY | Speed of grid. |
Definition at line 639 of file w3pro3md.F90.
References w3adatmd::atrnx, w3adatmd::atrny, w3odatmd::bbpi0, w3odatmd::bbpin, w3adatmd::cg, w3gdatmd::clats, w3adatmd::cx, w3adatmd::cy, constants::dera, w3gdatmd::dpdx, w3gdatmd::dpdy, w3gdatmd::dqdx, w3gdatmd::dqdy, w3timemd::dsec21(), w3gdatmd::dtcfl, w3gdatmd::dth, w3gdatmd::ecos, w3gdatmd::esin, w3servmd::extcde(), w3gdatmd::flagll, w3odatmd::flbpi, w3idatmd::flcur, w3gdatmd::flcx, w3gdatmd::flcy, constants::grav, w3gdatmd::gsqrt, w3odatmd::iaproc, w3gdatmd::iclose, w3gdatmd::iclose_none, w3gdatmd::iclose_smpl, w3gdatmd::iclose_trpl, w3odatmd::isbpi, w3adatmd::itime, w3adatmd::mapaxy, w3adatmd::mapcxy, w3gdatmd::mapsf, w3adatmd::maptrn, w3adatmd::mapx2, w3adatmd::mapy2, w3adatmd::nact, w3odatmd::naperr, w3odatmd::nbi, w3adatmd::ncent, w3odatmd::ndse, w3odatmd::ndst, w3gdatmd::nk, w3adatmd::nmx0, w3adatmd::nmx1, w3adatmd::nmx2, w3adatmd::nmy0, w3adatmd::nmy1, w3adatmd::nmy2, w3gdatmd::nsea, w3gdatmd::nth, w3gdatmd::nx, w3gdatmd::ny, w3gdatmd::pfmove, constants::radius, w3gdatmd::sig, w3servmd::strace(), w3odatmd::tbpi0, w3odatmd::tbpin, w3wdatmd::time, w3uqckmd::w3qck3(), w3uno2md::w3uno2s(), w3gdatmd::wdcg, w3gdatmd::wdth, and w3gdatmd::xfr.
Referenced by w3wavemd::w3wave().