The 'SHOM/Ifremer' source terms based on P.A.E.M. More...
Functions/Subroutines | |
| subroutine | w3spr4 (A, CG, WN, EMEAN, FMEAN, FMEAN1, WNMEAN, AMAX, U, UDIR, ifdef W3_FLX5 |
| Calculate mean wave parameters for the use in the source term routines. More... | |
| subroutine | w3sin4 (A, CG, K, U, USTAR, DRAT, AS, USDIR, Z0, CD, TAUWX, TAUWY, TAUWNX, TAUWNY, S, D, LLWS, IX, IY, BRLAMBDA) |
| Calculate diagonal and input source term for WAM4+ approach. More... | |
| subroutine | insin4 (FLTABS) |
| Initialization for source term routine. More... | |
| subroutine | tabu_stress |
| To generate friction velocity table TAUT(TAUW,U10)=SQRT(TAU). More... | |
| subroutine | tabu_tauhf (SIGMAX) |
| Tabulation of the high-frequency wave-supported stress. More... | |
| subroutine | tabu_tauhf2 (SIGMAX) |
| Tabulation of the high-frequency wave-supported stress as a function of ustar, alpha (modified Charnock), and tail energy level. More... | |
| subroutine | calc_ustar (WINDSPEED, TAUW, USTAR, Z0, CHARN) |
| Compute friction velocity based on wind speed U10. More... | |
| subroutine | w3sds4 (A, K, CG, USTAR, USDIR, DEPTH, DAIR, SRHS, DDIAG, IX, IY, BRLAMBDA, WHITECAP, DLWMEAN) |
| Calculate whitecapping source term and diagonal term of derivative. More... | |
Variables | |
| integer, parameter | itaumax =200 |
| integer, parameter | jumax =200 |
| integer, parameter | iustar =100 |
| integer, parameter | ialpha =200 |
| integer, parameter | ilevtail =50 |
| real, dimension(:,:), allocatable | taut |
| real, dimension(:,:), allocatable | tauhft |
| real, dimension(:,:,:), allocatable | tauhft2 |
| real | delust |
| real | delalp |
| real | deltauw |
| real | delu |
| real | deltail |
| real, parameter | umax = 50. |
| real, parameter | tauwmax = 2.2361 |
| integer | dikcumul |
| integer, parameter | nkhi =100 |
| integer, parameter | fac_kd2 =1000 |
| real, parameter | fac_kd1 =1.01 |
| real, parameter | khsmax =2. |
| real, parameter | khmax =2. |
| real, parameter | kdmax =200000. |
The 'SHOM/Ifremer' source terms based on P.A.E.M.
Janssen's wind input and dissipation functions by Ardhuin et al. (2009,2010) and Filipot & Ardhuin (2010) The wind input is converted from the original WAM codes, courtesy of P.A.E.M. Janssen and J. Bidlot
| subroutine w3src4md::calc_ustar | ( | real, intent(in) | WINDSPEED, |
| real, intent(in) | TAUW, | ||
| real, intent(out) | USTAR, | ||
| real, intent(out) | Z0, | ||
| real, intent(out) | CHARN | ||
| ) |
Compute friction velocity based on wind speed U10.
Computation of u* based on Quasi-linear theory.
| [in] | WINDSPEED | 10-m wind speed – should be NEUTRAL. |
| [in] | TAUW | Wave-supported stress. |
| [out] | USTAR | Friction velocity. |
| [out] | Z0 | Air-side roughness length. |
| [out] | CHARN | Charnock. |
Definition at line 1839 of file w3src4md.F90.
References w3gdatmd::aalpha, w3gdatmd::capchnk, deltauw, delu, constants::grav, itaumax, jumax, constants::kappa, w3odatmd::ndst, constants::nu_air, w3gdatmd::sintailpar, taut, tauwmax, w3gdatmd::zz0max, and w3gdatmd::zzwnd.
Referenced by w3spr4().
| subroutine w3src4md::insin4 | ( | logical, intent(in) | FLTABS | ) |
Initialization for source term routine.
| [in] | FLTABS |
Definition at line 1012 of file w3src4md.F90.
References w3gdatmd::cumulw, w3gdatmd::dcki, dikcumul, w3gdatmd::dsip, w3gdatmd::dth, w3gdatmd::ecos, w3gdatmd::esin, w3servmd::extcde(), fac_kd1, fac_kd2, constants::grav, ialpha, w3gdatmd::iktab, ilevtail, itaumax, iustar, jumax, kdmax, khmax, khsmax, w3odatmd::ndse, w3gdatmd::ndtab, w3gdatmd::nk, w3gdatmd::nkd, nkhi, w3gdatmd::nkhs, w3gdatmd::nth, w3gdatmd::qbi, constants::rade, w3gdatmd::satindices, w3gdatmd::satweights, w3gdatmd::sig, w3gdatmd::sintailpar, w3gdatmd::ssdsabk, w3gdatmd::ssdsbck, w3gdatmd::ssdsbint, w3gdatmd::ssdsbrf1, w3gdatmd::ssdsc, w3gdatmd::ssdscos, w3gdatmd::ssdsdth, w3gdatmd::ssdshck, w3gdatmd::ssdspbk, w3servmd::strace(), tabu_stress(), tabu_tauhf(), tabu_tauhf2(), tauhft, tauhft2, taut, w3gdatmd::th, constants::tpiinv, w3gdatmd::ttauwshelter, w3dispmd::wavnu2(), and w3gdatmd::xfr.
Referenced by w3iogrmd::w3iogr().
| subroutine w3src4md::tabu_stress |
To generate friction velocity table TAUT(TAUW,U10)=SQRT(TAU).
Definition at line 1289 of file w3src4md.F90.
References w3gdatmd::aalpha, deltauw, delu, constants::grav, itaumax, jumax, constants::kappa, taut, tauwmax, umax, w3gdatmd::zz0max, and w3gdatmd::zzwnd.
Referenced by insin4().
| subroutine w3src4md::tabu_tauhf | ( | real, intent(in) | SIGMAX | ) |
Tabulation of the high-frequency wave-supported stress.
SEE REFERENCE FOR WAVE STRESS CALCULATION. FOR QUASILINEAR EFFECT SEE PETER A.E.M. JANSSEN,1990. See tech. Memo ECMWF 03 december 2003 by Bidlot & Janssen.
| [in] | SIGMAX | Maximum frequency * TPI. |
Definition at line 1426 of file w3src4md.F90.
References w3gdatmd::aalpha, w3gdatmd::bbeta, delalp, delust, w3gdatmd::fachfe, constants::grav, ialpha, iustar, constants::kappa, w3odatmd::ndst, w3servmd::strace(), tauhft, w3gdatmd::zz0max, and w3gdatmd::zzalp.
Referenced by insin4().
| subroutine w3src4md::tabu_tauhf2 | ( | real, intent(in) | SIGMAX | ) |
Tabulation of the high-frequency wave-supported stress as a function of ustar, alpha (modified Charnock), and tail energy level.
SEE REFERENCE FOR WAVE STRESS CALCULATION. FOR QUASILINEAR EFFECT SEE PETER A.E.M. JANSSEN,1990. See tech. Memo ECMWF 03 december 2003 by Bidlot & Janssen
| [in] | SIGMAX | Maximum frequency*TPI. |
Definition at line 1596 of file w3src4md.F90.
References w3gdatmd::aalpha, w3gdatmd::bbeta, delalp, deltail, delust, w3gdatmd::fachfe, file(), constants::file_endian, constants::grav, ialpha, ilevtail, iustar, constants::kappa, w3odatmd::ndse, w3odatmd::ndst, w3servmd::strace(), tauhft, tauhft2, w3gdatmd::ttauwshelter, w3gdatmd::zz0max, and w3gdatmd::zzalp.
Referenced by insin4().
| subroutine w3src4md::w3sds4 | ( | real, dimension(nspec), intent(in) | A, |
| real, dimension(nk), intent(in) | K, | ||
| real, dimension(nk), intent(in) | CG, | ||
| real, intent(in) | USTAR, | ||
| real, intent(in) | USDIR, | ||
| real, intent(in) | DEPTH, | ||
| real, intent(in) | DAIR, | ||
| real, dimension(nspec), intent(out) | SRHS, | ||
| real, dimension(nspec), intent(out) | DDIAG, | ||
| integer, intent(in), optional | IX, | ||
| integer, intent(in), optional | IY, | ||
| real, dimension(nspec), intent(out) | BRLAMBDA, | ||
| real, dimension(1:4), intent(out) | WHITECAP, | ||
| real, intent(in) | DLWMEAN | ||
| ) |
Calculate whitecapping source term and diagonal term of derivative.
This codes does either one or the other of Ardhuin et al. (JPO 2010) Filipot & Ardhuin (JGR 2012) Romero (GRL 2009) the choice depends on SDSBCHOICE
| [in] | A | Action density spectrum (1-D). |
| [in] | K | Wavenumber for entire spectrum. |
| [in] | CG | Group velocity. |
| [in] | USTAR | Friction velocity. |
| [in] | USDIR | Wind stress direction. |
| [in] | DEPTH | Water depth. |
| [in] | DAIR | Air density. |
| [out] | SRHS | |
| [out] | DDIAG | |
| [in] | IX | Grid Index. |
| [in] | IY | Grid Index. |
| [out] | BRLAMBDA | Phillips' Lambdas. |
| [out] | WHITECAP | |
| [in] | DLWMEAN |
Definition at line 2034 of file w3src4md.F90.
References w3gdatmd::aaircmin, w3gdatmd::aairgb, w3gdatmd::cumulw, w3gdatmd::dcki, w3gdatmd::dden, constants::debug_node, dikcumul, w3gdatmd::dsip, w3gdatmd::dth, constants::dwat, w3gdatmd::ec2, w3gdatmd::ecos, w3gdatmd::es2, w3gdatmd::esc, w3gdatmd::esin, fac_kd1, fac_kd2, w3odatmd::flogrd, constants::grav, w3gdatmd::igpars, w3gdatmd::iktab, khsmax, w3odatmd::ndst, w3gdatmd::ndtab, w3gdatmd::nk, w3gdatmd::nkd, w3gdatmd::nkhs, w3gdatmd::nspec, w3gdatmd::nth, w3arrymd::outmat(), constants::pi, w3arrymd::prt2ds(), w3gdatmd::qbi, constants::rade, w3gdatmd::satindices, w3gdatmd::satweights, w3gdatmd::sig, w3gdatmd::ssdsbck, w3gdatmd::ssdsbm, w3gdatmd::ssdsbr, w3gdatmd::ssdsbrf1, w3gdatmd::ssdsbrfdf, w3gdatmd::ssdsbt, w3gdatmd::ssdsc, w3gdatmd::ssdsdth, w3gdatmd::ssdsiso, w3gdatmd::ssdsp, w3servmd::strace(), constants::tpi, and w3gdatmd::xfr.
Referenced by gxexpo(), w3exnc(), w3expo(), and w3srcemd::w3srce().
| subroutine w3src4md::w3sin4 | ( | real, dimension(nspec), intent(in) | A, |
| real, dimension(nk), intent(in) | CG, | ||
| real, dimension(nspec), intent(in) | K, | ||
| real, intent(in) | U, | ||
| real, intent(in) | USTAR, | ||
| real, intent(in) | DRAT, | ||
| real, intent(in) | AS, | ||
| real, intent(in) | USDIR, | ||
| real, intent(in) | Z0, | ||
| real, intent(in) | CD, | ||
| real, intent(out) | TAUWX, | ||
| real, intent(out) | TAUWY, | ||
| real, intent(out) | TAUWNX, | ||
| real, intent(out) | TAUWNY, | ||
| real, dimension(nspec), intent(out) | S, | ||
| real, dimension(nspec), intent(out) | D, | ||
| logical, dimension(nspec), intent(out) | LLWS, | ||
| integer, intent(in) | IX, | ||
| integer, intent(in) | IY, | ||
| real, dimension(nspec), intent(in) | BRLAMBDA | ||
| ) |
Calculate diagonal and input source term for WAM4+ approach.
WAM-4 : Janssen et al.
WAM-"4.5" : gustiness effect (Cavaleri et al. )
SAT : high-frequency input reduction for balance with
saturation dissipation (Ardhuin et al., 2008)
SWELL : negative wind input (Ardhuin et al. 2008)| [in] | A | Action density spectrum (1-D). |
| [in] | CG | Group speed. |
| [in] | K | Wavenumber for entire spectrum. |
| [in] | U | Wind speed. |
| [in] | USTAR | Friction velocity. |
| [in] | DRAT | Air/water density ratio. |
| [in] | AS | Air-sea temperature difference. |
| [in] | USDIR | Wind stress direction. |
| [in] | Z0 | Air-sea roughness length. |
| [in] | CD | Wind drag coefficient. |
| [out] | TAUWX | Component of the wave-supported stress. |
| [out] | TAUWY | Component of the wave-supported stress. |
| [out] | TAUWNX | Component of the negative wave-supported stress. |
| [out] | TAUWNY | Component of the negative wave-supported stress. |
| [out] | S | Source term (1-D version). |
| [out] | D | Diagonal term of derivative. |
| [out] | LLWS | |
| [in] | IX | |
| [in] | IY | |
| [in] | BRLAMBDA |
Definition at line 426 of file w3src4md.F90.
References w3gdatmd::aalpha, w3gdatmd::bbeta, w3gdatmd::dden, w3gdatmd::dden2, delalp, deltail, delust, w3gdatmd::dth, w3gdatmd::ec2, w3gdatmd::ecos, w3gdatmd::esin, constants::fwtable, constants::grav, ialpha, w3odatmd::iaproc, ilevtail, iustar, constants::kappa, w3odatmd::ndst, w3gdatmd::nk, w3gdatmd::nspec, w3gdatmd::nth, constants::nu_air, w3arrymd::outmat(), w3arrymd::prt2ds(), w3gdatmd::sig, w3gdatmd::sig2, w3gdatmd::sintailpar, constants::sizefwtable, w3gdatmd::ssinbr, w3gdatmd::ssinthp, w3gdatmd::sswellf, w3servmd::strace(), tauhft, tauhft2, w3gdatmd::th, constants::tpi, w3gdatmd::ttauwshelter, w3gdatmd::zz0rat, w3gdatmd::zzalp, and w3gdatmd::zzwnd.
Referenced by gxexpo(), w3exnc(), w3expo(), and w3srcemd::w3srce().
| subroutine w3src4md::w3spr4 | ( | real, dimension(nth,nk), intent(in) | A, |
| real, dimension(nk), intent(in) | CG, | ||
| real, dimension(nk), intent(in) | WN, | ||
| real, intent(out) | EMEAN, | ||
| real, intent(out) | FMEAN, | ||
| real, intent(out) | FMEAN1, | ||
| real, intent(out) | WNMEAN, | ||
| real, intent(out) | AMAX, | ||
| real, intent(in) | U, | ||
| real, intent(in) | UDIR, | ||
| ifdef, | |||
| W3_FLX5 | |||
| ) |
Calculate mean wave parameters for the use in the source term routines.
| [in] | A | Action density spectrum. |
| [in] | CG | Group velocities. |
| [in] | WN | Wavenumbers. |
| [out] | EMEAN | Energy. |
| [out] | FMEAN | Mean frequency for determination of tail. |
| [out] | FMEAN1 | Mean frequency (fm0,-1) used for reflection. |
| [out] | WNMEAN | Mean wavenumber. |
| [out] | AMAX | Maximum of action spectrum. |
| [in] | U | Wind speed. |
| [in] | UDIR | Wind direction. |
| [in] | TAUA | Atm total stress. |
| [in] | TAUADIR | Atm total stress direction. |
| [in] | DAIR | Air density. |
| [in,out] | USTAR | Friction velocity. |
| [in,out] | USDIR | Wind stress direction. |
| [in] | TAUWX | Component of wave-supported stress. |
| [in] | TAUWY | Component of wave-supported stress. |
| [out] | CD | Drag coefficient at wind level ZWND. |
| [out] | Z0 | Corresponding z0. |
| [out] | CHARN | Corresponding Charnock coefficient. |
| [in] | LLWS | Wind sea true/false array for each component. |
| [out] | FMEANWS | Mean frequency of wind sea, used for tail. |
| [out] | DLWMEAN | Mean Long wave direction (L. Romero 2019). |
Definition at line 145 of file w3src4md.F90.
References w3gdatmd::aaircmin, w3gdatmd::aairgb, w3gdatmd::aalpha, calc_ustar(), w3gdatmd::dden, w3gdatmd::dth, w3gdatmd::ecos, w3gdatmd::esin, w3gdatmd::fte, w3gdatmd::ftf, constants::grav, w3odatmd::iaproc, w3odatmd::ndst, w3gdatmd::nk, w3gdatmd::nspec, w3gdatmd::nth, constants::nu_air, w3gdatmd::sig, w3gdatmd::ssdsc, w3gdatmd::sstxftf, w3gdatmd::sstxftftail, w3gdatmd::sstxftwn, w3gdatmd::sswellf, w3servmd::strace(), constants::tpiinv, w3flx5md::w3flx5(), w3gdatmd::wwnmeanp, w3gdatmd::wwnmeanptail, and w3gdatmd::zzwnd.
Referenced by wmesmfmd::fieldindex(), gxexpo(), pdlib_w3profsmd::pdlib_jacobi_gauss_seidel_block(), w3exnc(), w3expo(), and w3srcemd::w3srce().
| real w3src4md::delalp |
Definition at line 96 of file w3src4md.F90.
Referenced by tabu_tauhf(), tabu_tauhf2(), w3iogrmd::w3iogr(), and w3sin4().
| real w3src4md::deltail |
Definition at line 98 of file w3src4md.F90.
Referenced by tabu_tauhf2(), w3iogrmd::w3iogr(), and w3sin4().
| real w3src4md::deltauw |
Definition at line 96 of file w3src4md.F90.
Referenced by calc_ustar(), tabu_stress(), and w3iogrmd::w3iogr().
| real w3src4md::delu |
Definition at line 96 of file w3src4md.F90.
Referenced by calc_ustar(), tabu_stress(), and w3iogrmd::w3iogr().
| real w3src4md::delust |
Definition at line 96 of file w3src4md.F90.
Referenced by tabu_tauhf(), tabu_tauhf2(), w3iogrmd::w3iogr(), and w3sin4().
| integer w3src4md::dikcumul |
Definition at line 101 of file w3src4md.F90.
Referenced by insin4(), w3iogrmd::w3iogr(), and w3sds4().
| real, parameter w3src4md::fac_kd1 =1.01 |
Definition at line 104 of file w3src4md.F90.
| integer, parameter w3src4md::fac_kd2 =1000 |
Definition at line 103 of file w3src4md.F90.
| integer, parameter w3src4md::ialpha =200 |
Definition at line 93 of file w3src4md.F90.
Referenced by insin4(), tabu_tauhf(), tabu_tauhf2(), and w3sin4().
| integer, parameter w3src4md::ilevtail =50 |
Definition at line 93 of file w3src4md.F90.
Referenced by insin4(), tabu_tauhf2(), and w3sin4().
| integer, parameter w3src4md::itaumax =200 |
Definition at line 92 of file w3src4md.F90.
Referenced by calc_ustar(), insin4(), and tabu_stress().
| integer, parameter w3src4md::iustar =100 |
Definition at line 93 of file w3src4md.F90.
Referenced by insin4(), tabu_tauhf(), tabu_tauhf2(), and w3sin4().
| integer, parameter w3src4md::jumax =200 |
Definition at line 92 of file w3src4md.F90.
Referenced by calc_ustar(), insin4(), and tabu_stress().
| real, parameter w3src4md::kdmax =200000. |
Definition at line 105 of file w3src4md.F90.
Referenced by insin4().
| real, parameter w3src4md::khmax =2. |
Definition at line 104 of file w3src4md.F90.
Referenced by insin4().
| real, parameter w3src4md::khsmax =2. |
Definition at line 104 of file w3src4md.F90.
| integer, parameter w3src4md::nkhi =100 |
Definition at line 103 of file w3src4md.F90.
Referenced by insin4().
| real, dimension(:,:), allocatable w3src4md::tauhft |
Definition at line 95 of file w3src4md.F90.
Referenced by insin4(), tabu_tauhf(), tabu_tauhf2(), w3iogrmd::w3iogr(), and w3sin4().
| real, dimension(:,:,:), allocatable w3src4md::tauhft2 |
Definition at line 95 of file w3src4md.F90.
Referenced by insin4(), tabu_tauhf2(), w3iogrmd::w3iogr(), and w3sin4().
| real, dimension(:,:), allocatable w3src4md::taut |
Definition at line 95 of file w3src4md.F90.
Referenced by calc_ustar(), insin4(), tabu_stress(), and w3iogrmd::w3iogr().
| real, parameter w3src4md::tauwmax = 2.2361 |
Definition at line 100 of file w3src4md.F90.
Referenced by calc_ustar(), and tabu_stress().
| real, parameter w3src4md::umax = 50. |
Definition at line 99 of file w3src4md.F90.
Referenced by tabu_stress().