Bundles routines to calculate nonlinear wave-wave interactions according to the Discrete Interaction Approximation (DIA) of Hasselmann et al. More...
Functions/Subroutines | |
| subroutine | w3snl1 (A, CG, KDMEAN, S, D) |
| Calculate nonlinear interactions and the diagonal term of its derivative. More... | |
| subroutine | insnl1 (IMOD) |
| Preprocessing for nonlinear interactions (weights). More... | |
| subroutine | w3snlgqm (A, CG, WN, DEPTH, TSTOTn, TSDERn) |
| double precision function | couple (XK1, YK1, XK2, YK2, XK3, YK3, XK4, YK4) |
| subroutine | gauleg (W_LEG, X_LEG, NPOIN) |
| subroutine | f1f1f1 (F1SF, NF1, IQ_OM1) |
| subroutine | insnlgqm |
Variables | |
| integer | nconf |
| integer, dimension(:,:,:), allocatable | k_if2 |
| integer, dimension(:,:,:), allocatable | k_if3 |
| integer, dimension(:,:,:), allocatable | k_1p2p |
| integer, dimension(:,:,:), allocatable | k_1p3m |
| integer, dimension(:,:,:), allocatable | k_1p2m |
| integer, dimension(:,:,:), allocatable | k_1p3p |
| integer, dimension(:,:,:), allocatable | k_1m2p |
| integer, dimension(:,:,:), allocatable | k_1m3m |
| integer, dimension(:,:,:), allocatable | k_1m2m |
| integer, dimension(:,:,:), allocatable | k_1m3p |
| integer, dimension(:), allocatable | f_poin |
| integer, dimension(:), allocatable | t_poin |
| integer, dimension(:), allocatable | k_if1 |
| integer, dimension(:,:), allocatable | k_1p |
| integer, dimension(:,:), allocatable | k_1m |
| integer, dimension(:,:), allocatable | idconf |
| double precision, dimension(:), allocatable | f_coef |
| double precision, dimension(:), allocatable | f_proj |
| double precision, dimension(:), allocatable | tb_sca |
| double precision, dimension(:), allocatable | tb_v14 |
| double precision, dimension(:,:,:), allocatable | tb_v24 |
| double precision, dimension(:,:,:), allocatable | tb_v34 |
| double precision, dimension(:,:,:), allocatable | tb_tpm |
| double precision, dimension(:,:,:), allocatable | tb_tmp |
| double precision, dimension(:,:,:), allocatable | tb_fac |
Bundles routines to calculate nonlinear wave-wave interactions according to the Discrete Interaction Approximation (DIA) of Hasselmann et al.
(JPO, 1985).
| double precision function w3snl1md::couple | ( | double precision, intent(in) | XK1, |
| double precision, intent(in) | YK1, | ||
| double precision, intent(in) | XK2, | ||
| double precision, intent(in) | YK2, | ||
| double precision, intent(in) | XK3, | ||
| double precision, intent(in) | YK3, | ||
| double precision, intent(in) | XK4, | ||
| double precision, intent(in) | YK4 | ||
| ) |
| subroutine w3snl1md::f1f1f1 | ( | double precision, dimension(*), intent(inout) | F1SF, |
| integer, intent(inout) | NF1, | ||
| integer, intent(in) | IQ_OM1 | ||
| ) |
| subroutine w3snl1md::gauleg | ( | double precision, dimension(npoin), intent(inout) | W_LEG, |
| double precision, dimension(npoin), intent(inout) | X_LEG, | ||
| integer, intent(in) | NPOIN | ||
| ) |
| subroutine w3snl1md::insnl1 | ( | integer, intent(in) | IMOD | ) |
Preprocessing for nonlinear interactions (weights).
| [in] | IMOD | Model number. |
Definition at line 483 of file w3snl1md.F90.
References w3adatmd::af11, w3adatmd::awg1, w3adatmd::awg2, w3adatmd::awg3, w3adatmd::awg4, w3adatmd::awg5, w3adatmd::awg6, w3adatmd::awg7, w3adatmd::awg8, w3adatmd::dal1, w3adatmd::dal2, w3adatmd::dal3, w3gdatmd::dth, w3adatmd::ic11, w3adatmd::ic12, w3adatmd::ic21, w3adatmd::ic22, w3adatmd::ic31, w3adatmd::ic32, w3adatmd::ic41, w3adatmd::ic42, w3adatmd::ic51, w3adatmd::ic52, w3adatmd::ic61, w3adatmd::ic62, w3adatmd::ic71, w3adatmd::ic72, w3adatmd::ic81, w3adatmd::ic82, w3adatmd::im11, w3adatmd::im12, w3adatmd::im13, w3adatmd::im14, w3adatmd::im21, w3adatmd::im22, w3adatmd::im23, w3adatmd::im24, w3adatmd::ip11, w3adatmd::ip12, w3adatmd::ip13, w3adatmd::ip14, w3adatmd::ip21, w3adatmd::ip22, w3adatmd::ip23, w3adatmd::ip24, w3gdatmd::lam, w3odatmd::ndse, w3odatmd::ndst, w3adatmd::nfr, w3adatmd::nfrchg, w3adatmd::nfrhgh, w3gdatmd::nk, w3gdatmd::nspec, w3adatmd::nspecx, w3adatmd::nspecy, w3gdatmd::nth, w3gdatmd::sig, w3servmd::strace(), w3adatmd::swg1, w3adatmd::swg2, w3adatmd::swg3, w3adatmd::swg4, w3adatmd::swg5, w3adatmd::swg6, w3adatmd::swg7, w3adatmd::swg8, constants::tpiinv, w3adatmd::w3dmnl(), and w3gdatmd::xfr.
Referenced by w3iogrmd::w3iogr().
| subroutine w3snl1md::insnlgqm |
Definition at line 1500 of file w3snl1md.F90.
References couple(), f1f1f1(), f_coef, f_poin, f_proj, w3gdatmd::fr1, gauleg(), w3gdatmd::gqnf1, w3gdatmd::gqnq_om2, w3gdatmd::gqnt1, w3gdatmd::gqthrcou, constants::grav, idconf, k_1m, k_1m2m, k_1m2p, k_1m3m, k_1m3p, k_1p, k_1p2m, k_1p2p, k_1p3m, k_1p3p, k_if1, k_if2, k_if3, nconf, w3gdatmd::nk, w3gdatmd::nltail, w3gdatmd::nth, t_poin, tb_fac, tb_sca, tb_tmp, tb_tpm, tb_v14, tb_v24, tb_v34, and w3gdatmd::xfr.
Referenced by w3iogrmd::w3iogr().
| subroutine w3snl1md::w3snl1 | ( | real, dimension(nspec), intent(in) | A, |
| real, dimension(nk), intent(in) | CG, | ||
| real, intent(in) | KDMEAN, | ||
| real, dimension(nspec), intent(out) | S, | ||
| real, dimension(nspec), intent(out) | D | ||
| ) |
Calculate nonlinear interactions and the diagonal term of its derivative.
| [in] | A | Action spectrum A(ISP) as a function of direction (rad) and wavenumber. |
| [in] | CG | Group velocities (dimension NK). |
| [in] | KDMEAN | Mean relative depth. |
| [out] | S | Source term. |
| [out] | D | Diagonal term of derivative. |
Definition at line 115 of file w3snl1md.F90.
References w3adatmd::af11, w3adatmd::awg1, w3adatmd::awg2, w3adatmd::awg3, w3adatmd::awg4, w3adatmd::awg5, w3adatmd::awg6, w3adatmd::awg7, w3adatmd::awg8, w3adatmd::dal1, w3adatmd::dal2, w3adatmd::dal3, w3gdatmd::fachfe, w3adatmd::ic11, w3adatmd::ic12, w3adatmd::ic21, w3adatmd::ic22, w3adatmd::ic31, w3adatmd::ic32, w3adatmd::ic41, w3adatmd::ic42, w3adatmd::ic51, w3adatmd::ic52, w3adatmd::ic61, w3adatmd::ic62, w3adatmd::ic71, w3adatmd::ic72, w3adatmd::ic81, w3adatmd::ic82, w3adatmd::im11, w3adatmd::im12, w3adatmd::im13, w3adatmd::im14, w3adatmd::im21, w3adatmd::im22, w3adatmd::im23, w3adatmd::im24, w3adatmd::ip11, w3adatmd::ip12, w3adatmd::ip13, w3adatmd::ip14, w3adatmd::ip21, w3adatmd::ip22, w3adatmd::ip23, w3adatmd::ip24, w3gdatmd::kdcon, w3gdatmd::kdmn, w3odatmd::ndst, w3adatmd::nfr, w3adatmd::nfrchg, w3adatmd::nfrhgh, w3gdatmd::nk, w3gdatmd::nspec, w3adatmd::nspecx, w3adatmd::nspecy, w3gdatmd::nth, w3arrymd::outmat(), w3arrymd::prt2ds(), w3gdatmd::sig, w3gdatmd::snlc1, w3gdatmd::snls1, w3gdatmd::snls2, w3gdatmd::snls3, w3servmd::strace(), w3adatmd::swg1, w3adatmd::swg2, w3adatmd::swg3, w3adatmd::swg4, w3adatmd::swg5, w3adatmd::swg6, w3adatmd::swg7, w3adatmd::swg8, constants::tpi, and constants::tpiinv.
Referenced by gxexpo(), w3exnc(), w3expo(), and w3srcemd::w3srce().
| subroutine w3snl1md::w3snlgqm | ( | real, dimension(nth,nk), intent(in) | A, |
| real, dimension(nk), intent(in) | CG, | ||
| real, dimension(nk), intent(in) | WN, | ||
| real, intent(in) | DEPTH, | ||
| real, dimension(nth,nk), intent(out) | TSTOTn, | ||
| real, dimension(nth,nk), intent(out) | TSDERn | ||
| ) |
Definition at line 789 of file w3snl1md.F90.
References w3gdatmd::dth, f_coef, f_poin, f_proj, w3gdatmd::fr1, w3gdatmd::gqamp, w3gdatmd::gqthrsat, idconf, k_1m, k_1m2m, k_1m2p, k_1m3m, k_1m3p, k_1p, k_1p2m, k_1p2p, k_1p3m, k_1p3p, k_if1, k_if2, k_if3, nconf, w3gdatmd::nk, w3gdatmd::nth, w3gdatmd::sig, t_poin, tb_fac, tb_sca, tb_tmp, tb_tpm, tb_v14, tb_v24, tb_v34, constants::tpi, and w3gdatmd::xfr.
Referenced by w3exnc(), w3expo(), and w3srcemd::w3srce().
| double precision, dimension(:), allocatable w3snl1md::f_coef |
Definition at line 93 of file w3snl1md.F90.
Referenced by insnlgqm(), and w3snlgqm().
| integer, dimension(:), allocatable w3snl1md::f_poin |
| double precision, dimension(:), allocatable w3snl1md::f_proj |
Definition at line 93 of file w3snl1md.F90.
Referenced by insnlgqm(), and w3snlgqm().
| integer, dimension(:,:), allocatable w3snl1md::idconf |
Definition at line 91 of file w3snl1md.F90.
Referenced by insnlgqm(), and w3snlgqm().
| integer, dimension(:,:), allocatable w3snl1md::k_1m |
Definition at line 91 of file w3snl1md.F90.
Referenced by insnlgqm(), and w3snlgqm().
| integer, dimension(:,:,:), allocatable w3snl1md::k_1m2m |
Definition at line 87 of file w3snl1md.F90.
Referenced by insnlgqm(), and w3snlgqm().
| integer, dimension(:,:,:), allocatable w3snl1md::k_1m2p |
Definition at line 87 of file w3snl1md.F90.
Referenced by insnlgqm(), and w3snlgqm().
| integer, dimension(:,:,:), allocatable w3snl1md::k_1m3m |
Definition at line 87 of file w3snl1md.F90.
Referenced by insnlgqm(), and w3snlgqm().
| integer, dimension(:,:,:), allocatable w3snl1md::k_1m3p |
Definition at line 87 of file w3snl1md.F90.
Referenced by insnlgqm(), and w3snlgqm().
| integer, dimension(:,:), allocatable w3snl1md::k_1p |
Definition at line 91 of file w3snl1md.F90.
Referenced by insnlgqm(), and w3snlgqm().
| integer, dimension(:,:,:), allocatable w3snl1md::k_1p2m |
Definition at line 87 of file w3snl1md.F90.
Referenced by insnlgqm(), and w3snlgqm().
| integer, dimension(:,:,:), allocatable w3snl1md::k_1p2p |
Definition at line 87 of file w3snl1md.F90.
Referenced by insnlgqm(), and w3snlgqm().
| integer, dimension(:,:,:), allocatable w3snl1md::k_1p3m |
Definition at line 87 of file w3snl1md.F90.
Referenced by insnlgqm(), and w3snlgqm().
| integer, dimension(:,:,:), allocatable w3snl1md::k_1p3p |
Definition at line 87 of file w3snl1md.F90.
Referenced by insnlgqm(), and w3snlgqm().
| integer, dimension(:), allocatable w3snl1md::k_if1 |
Definition at line 91 of file w3snl1md.F90.
Referenced by insnlgqm(), and w3snlgqm().
| integer, dimension (:,:,:), allocatable w3snl1md::k_if2 |
| integer, dimension (:,:,:), allocatable w3snl1md::k_if3 |
Definition at line 87 of file w3snl1md.F90.
Referenced by insnlgqm(), and w3snlgqm().
| integer w3snl1md::nconf |
Definition at line 86 of file w3snl1md.F90.
Referenced by insnlgqm(), and w3snlgqm().
| integer, dimension(:), allocatable w3snl1md::t_poin |
Definition at line 91 of file w3snl1md.F90.
Referenced by insnlgqm(), and w3snlgqm().
| double precision, dimension(:,:,:), allocatable w3snl1md::tb_fac |
Definition at line 94 of file w3snl1md.F90.
Referenced by insnlgqm(), and w3snlgqm().
| double precision, dimension(:), allocatable w3snl1md::tb_sca |
Definition at line 93 of file w3snl1md.F90.
Referenced by insnlgqm(), and w3snlgqm().
| double precision, dimension(:,:,:), allocatable w3snl1md::tb_tmp |
Definition at line 94 of file w3snl1md.F90.
Referenced by insnlgqm(), and w3snlgqm().
| double precision, dimension(:,:,:), allocatable w3snl1md::tb_tpm |
Definition at line 94 of file w3snl1md.F90.
Referenced by insnlgqm(), and w3snlgqm().
| double precision, dimension(:), allocatable w3snl1md::tb_v14 |
Definition at line 93 of file w3snl1md.F90.
Referenced by insnlgqm(), and w3snlgqm().
| double precision, dimension(:,:,:), allocatable w3snl1md::tb_v24 |
| double precision, dimension(:,:,:), allocatable w3snl1md::tb_v34 |
Definition at line 94 of file w3snl1md.F90.
Referenced by insnlgqm(), and w3snlgqm().