SCALE-RM
|
module Surface bulk flux More...
Functions/Subroutines | |
subroutine, public | bulkflux_setup (dx) |
subroutine | bulkflux_diagnose_scales_2d (IA, IS, IE, JA, JS, JE, SFLX_MW, SFLX_MU, SFLX_MV, SFLX_SH, SFLX_QV, SFC_DENS, SFC_TEMP, PBL, Ustar, Tstar, Qstar, Wstar, RLmo, mask) |
subroutine | bulkflux_diagnose_scales_0d (SFLX_MW, SFLX_MU, SFLX_MV, SFLX_SH, SFLX_QV, SFC_DENS, SFC_TEMP, PBL, Ustar, Tstar, Qstar, Wstar, RLmo) |
subroutine | bulkflux_diagnose_surface_2d (IA, IS, IE, JA, JS, JE, ATM_U, ATM_V, ATM_TEMP, ATM_QV, SFC_TEMP, SFC_QV, ATM_Z1, SFC_Z0M, SFC_Z0H, SFC_Z0E, U10, V10, T2, Q2, mask, FracU10, FracT2, FracQ2) |
subroutine | calc_scales_b91w01 (IL, Uabs, TH1, TH0, TV0, Q1, Q0, PBL, log_Z1ovZ0M, log_Z1ovZ0H, log_Z1ovZ0E, DP_Z1, DP_Z0M, DP_Z0H, DP_Z0E, RzM, RzH, RzE, Wstar, Ustar, Tstar, Qstar, BFLX, FracU10, FracT2, FracQ2) |
real(dp) function | fmm_unstable (Z, IL) |
Variables | |
procedure(bc), pointer, public | bulkflux => NULL() |
character(len=h_short), public | bulkflux_type = 'B91W01' |
module Surface bulk flux
name | type | default value | comment |
---|---|---|---|
BULKFLUX_TYPE | character(len=H_SHORT) | 'B91W01' ! 'U95', 'B91', and 'B91W01' | |
BULKFLUX_NK2018 | logical | .true. | > Nishizawa and Kitamura (2018) |
BULKFLUX_ITR_SA_MAX | integer | 5 | maximum iteration number for successive approximation |
BULKFLUX_ITR_NR_MAX | integer | 10 | maximum iteration number for Newton-Raphson method |
BULKFLUX_WSCF | real(RP) | empirical scaling factor of Wstar (Beljaars 1994) | |
BULKFLUX_UABS_MIN | real(RP) | 1.0E-2_RP | minimum of Uabs [m/s] |
BULKFLUX_WSTAR_MIN | real(RP) | 1.0E-4_RP | minimum of W* [m/s] |
BULKFLUX_SURFDIAG_NEUTRAL | logical | .true. | calculate surface diagnoses with neutral condition |
subroutine, public scale_bulkflux::bulkflux_setup | ( | real(rp), intent(in) | dx | ) |
Definition at line 126 of file scale_bulkflux.F90.
References bulkflux, bulkflux_type, scale_io::io_fid_conf, and scale_prc::prc_abort().
Referenced by mod_rm_driver::rm_driver().
subroutine scale_bulkflux::bulkflux_diagnose_scales_2d | ( | integer, intent(in) | IA, |
integer, intent(in) | IS, | ||
integer, intent(in) | IE, | ||
integer, intent(in) | JA, | ||
integer, intent(in) | JS, | ||
integer, intent(in) | JE, | ||
real(rp), dimension (ia,ja), intent(in) | SFLX_MW, | ||
real(rp), dimension (ia,ja), intent(in) | SFLX_MU, | ||
real(rp), dimension (ia,ja), intent(in) | SFLX_MV, | ||
real(rp), dimension (ia,ja), intent(in) | SFLX_SH, | ||
real(rp), dimension (ia,ja), intent(in) | SFLX_QV, | ||
real(rp), dimension(ia,ja), intent(in) | SFC_DENS, | ||
real(rp), dimension(ia,ja), intent(in) | SFC_TEMP, | ||
real(rp), dimension (ia,ja), intent(in) | PBL, | ||
real(rp), dimension(ia,ja), intent(out) | Ustar, | ||
real(rp), dimension(ia,ja), intent(out) | Tstar, | ||
real(rp), dimension(ia,ja), intent(out) | Qstar, | ||
real(rp), dimension(ia,ja), intent(out) | Wstar, | ||
real(rp), dimension (ia,ja), intent(out) | RLmo, | ||
logical, dimension(ia,ja), intent(in), optional | mask | ||
) |
Definition at line 197 of file scale_bulkflux.F90.
References bulkflux_diagnose_scales_0d(), scale_const::const_cpdry, scale_const::const_eps, scale_const::const_epstvap, scale_const::const_grav, and scale_const::const_karman.
subroutine scale_bulkflux::bulkflux_diagnose_scales_0d | ( | real(rp), intent(in) | SFLX_MW, |
real(rp), intent(in) | SFLX_MU, | ||
real(rp), intent(in) | SFLX_MV, | ||
real(rp), intent(in) | SFLX_SH, | ||
real(rp), intent(in) | SFLX_QV, | ||
real(rp), intent(in) | SFC_DENS, | ||
real(rp), intent(in) | SFC_TEMP, | ||
real(rp), intent(in) | PBL, | ||
real(rp), intent(out) | Ustar, | ||
real(rp), intent(out) | Tstar, | ||
real(rp), intent(out) | Qstar, | ||
real(rp), intent(out) | Wstar, | ||
real(rp), intent(out) | RLmo | ||
) |
Definition at line 261 of file scale_bulkflux.F90.
References bulkflux_type, scale_const::const_cpdry, scale_const::const_eps, scale_const::const_epstvap, scale_const::const_grav, and scale_const::const_karman.
Referenced by bulkflux_diagnose_scales_2d().
subroutine scale_bulkflux::bulkflux_diagnose_surface_2d | ( | integer, intent(in) | IA, |
integer, intent(in) | IS, | ||
integer, intent(in) | IE, | ||
integer, intent(in) | JA, | ||
integer, intent(in) | JS, | ||
integer, intent(in) | JE, | ||
real(rp), dimension (ia,ja), intent(in) | ATM_U, | ||
real(rp), dimension (ia,ja), intent(in) | ATM_V, | ||
real(rp), dimension(ia,ja), intent(in) | ATM_TEMP, | ||
real(rp), dimension (ia,ja), intent(in) | ATM_QV, | ||
real(rp), dimension(ia,ja), intent(in) | SFC_TEMP, | ||
real(rp), dimension (ia,ja), intent(in) | SFC_QV, | ||
real(rp), dimension (ia,ja), intent(in) | ATM_Z1, | ||
real(rp), dimension (ia,ja), intent(in) | SFC_Z0M, | ||
real(rp), dimension (ia,ja), intent(in) | SFC_Z0H, | ||
real(rp), dimension (ia,ja), intent(in) | SFC_Z0E, | ||
real(rp), dimension(ia,ja), intent(out) | U10, | ||
real(rp), dimension(ia,ja), intent(out) | V10, | ||
real(rp), dimension (ia,ja), intent(out) | T2, | ||
real(rp), dimension (ia,ja), intent(out) | Q2, | ||
logical, dimension (ia,ja), intent(in), optional | mask, | ||
real(rp), dimension(ia,ja), intent(in), optional | FracU10, | ||
real(rp), dimension (ia,ja), intent(in), optional | FracT2, | ||
real(rp), dimension (ia,ja), intent(in), optional | FracQ2 | ||
) |
Definition at line 319 of file scale_bulkflux.F90.
References calc_scales_b91w01(), scale_const::const_cpdry, scale_const::const_cpvap, scale_const::const_epstvap, scale_const::const_grav, scale_const::const_karman, scale_const::const_pre00, scale_const::const_rdry, and scale_const::const_rvap.
subroutine scale_bulkflux::calc_scales_b91w01 | ( | real(dp), intent(in) | IL, |
real(dp), intent(in) | Uabs, | ||
real(dp), intent(in) | TH1, | ||
real(dp), intent(in) | TH0, | ||
real(dp), intent(in) | TV0, | ||
real(rp), intent(in) | Q1, | ||
real(rp), intent(in) | Q0, | ||
real(rp), intent(in) | PBL, | ||
real(dp), intent(in) | log_Z1ovZ0M, | ||
real(dp), intent(in) | log_Z1ovZ0H, | ||
real(dp), intent(in) | log_Z1ovZ0E, | ||
real(dp), intent(in) | DP_Z1, | ||
real(dp), intent(in) | DP_Z0M, | ||
real(dp), intent(in) | DP_Z0H, | ||
real(dp), intent(in) | DP_Z0E, | ||
real(dp), intent(in) | RzM, | ||
real(dp), intent(in) | RzH, | ||
real(dp), intent(in) | RzE, | ||
real(dp), intent(inout) | Wstar, | ||
real(dp), intent(out) | Ustar, | ||
real(dp), intent(out) | Tstar, | ||
real(dp), intent(out) | Qstar, | ||
real(dp), intent(out) | BFLX, | ||
real(rp), intent(out), optional | FracU10, | ||
real(rp), intent(out), optional | FracT2, | ||
real(rp), intent(out), optional | FracQ2 | ||
) |
Definition at line 841 of file scale_bulkflux.F90.
References scale_const::const_epstvap, scale_const::const_grav, scale_const::const_karman, scale_const::const_pi, and fmm_unstable().
Referenced by bulkflux_diagnose_surface_2d().
real(dp) function scale_bulkflux::fmm_unstable | ( | real(dp), intent(in) | Z, |
real(dp), intent(in) | IL | ||
) |
Definition at line 990 of file scale_bulkflux.F90.
References scale_const::const_pi.
Referenced by calc_scales_b91w01().
procedure(bc), pointer, public scale_bulkflux::bulkflux => NULL() |
Definition at line 78 of file scale_bulkflux.F90.
Referenced by scale_atmos_phy_sf_bulk::atmos_phy_sf_bulk_flux(), bulkflux_setup(), scale_cpl_phy_sfc_fixed_temp::cpl_phy_sfc_fixed_temp(), scale_cpl_phy_sfc_skin::cpl_phy_sfc_skin(), scale_land_phy_snow_diagnos::land_phy_snow_diags(), and scale_urban_dyn_kusaka01::urban_dyn_kusaka01().
character(len=h_short), public scale_bulkflux::bulkflux_type = 'B91W01' |
Definition at line 85 of file scale_bulkflux.F90.
Referenced by mod_atmos_phy_bl_driver::atmos_phy_bl_driver_calc_tendency(), mod_atmos_phy_bl_driver::atmos_phy_bl_driver_setup(), bulkflux_diagnose_scales_0d(), and bulkflux_setup().