43   real(RP), 
private :: atmos_phy_sf_bulk_beta = 1.0_rp 
    54     namelist / param_atmos_phy_sf_bulk / &
    55        atmos_phy_sf_bulk_beta
    61     log_info(
"ATMOS_PHY_SF_bulk_setup",*) 
'Setup'    62     log_info(
"ATMOS_PHY_SF_bulk_setup",*) 
'Bulk scheme'    66     read(
io_fid_conf,nml=param_atmos_phy_sf_bulk,iostat=ierr)
    68        log_info(
"ATMOS_PHY_SF_bulk_setup",*) 
'Not found namelist. Default used.'    69     elseif( ierr > 0 ) 
then     70        log_error(
"ATMOS_PHY_SF_bulk_setup",*) 
'Not appropriate names in namelist PARAM_ATMOS_PHY_SF_BULK. Check!'    73     log_nml(param_atmos_phy_sf_bulk)
    81        IA, IS, IE, JA, JS, JE, &
    82        ATM_W, ATM_U, ATM_V,          &
    83        ATM_TEMP, ATM_PRES, ATM_QV,   &
    84        SFC_DENS, SFC_TEMP, SFC_PRES, &
    85        SFC_Z0M, SFC_Z0H, SFC_Z0E,    &
    87        SFLX_MW, SFLX_MU, SFLX_MV,    &
    88        SFLX_SH, SFLX_LH, SFLX_QV,    &
    94        hydrometeor_lhv => atmos_hydrometeor_lhv
    96        saturation_psat_all => atmos_saturation_psat_all
   100     integer, 
intent(in) :: IA, IS, IE
   101     integer, 
intent(in) :: JA, JS, JE
   103     real(RP), 
intent(in) :: ATM_W   (ia,ja) 
   104     real(RP), 
intent(in) :: ATM_U   (ia,ja) 
   105     real(RP), 
intent(in) :: ATM_V   (ia,ja) 
   106     real(RP), 
intent(in) :: ATM_TEMP(ia,ja) 
   107     real(RP), 
intent(in) :: ATM_PRES(ia,ja) 
   108     real(RP), 
intent(in) :: ATM_QV  (ia,ja) 
   109     real(RP), 
intent(in) :: SFC_DENS(ia,ja) 
   110     real(RP), 
intent(in) :: SFC_TEMP(ia,ja) 
   111     real(RP), 
intent(in) :: SFC_PRES(ia,ja) 
   112     real(RP), 
intent(in) :: SFC_Z0M (ia,ja) 
   113     real(RP), 
intent(in) :: SFC_Z0H (ia,ja) 
   114     real(RP), 
intent(in) :: SFC_Z0E (ia,ja) 
   115     real(RP), 
intent(in) :: PBL     (ia,ja) 
   116     real(RP), 
intent(in) :: ATM_Z1  (ia,ja) 
   118     real(RP), 
intent(out) :: SFLX_MW(ia,ja) 
   119     real(RP), 
intent(out) :: SFLX_MU(ia,ja) 
   120     real(RP), 
intent(out) :: SFLX_MV(ia,ja) 
   121     real(RP), 
intent(out) :: SFLX_SH(ia,ja) 
   122     real(RP), 
intent(out) :: SFLX_LH(ia,ja) 
   123     real(RP), 
intent(out) :: SFLX_QV(ia,ja) 
   124     real(RP), 
intent(out) :: U10    (ia,ja) 
   125     real(RP), 
intent(out) :: V10    (ia,ja) 
   126     real(RP), 
intent(out) :: T2     (ia,ja) 
   127     real(RP), 
intent(out) :: Q2     (ia,ja) 
   129     real(RP) :: SFC_PSAT (ia,ja) 
   130     real(RP) :: LHV      (ia,ja)
   147     log_progress(*) 
'atmosphere / physics / surface flux / bulk'   150     call hydrometeor_lhv( ia, is, ie, ja, js, je, &
   154     call saturation_psat_all( ia, is, ie, ja, js, je, &
   172        sfc_qsat = epsvap * sfc_psat(i,j) / ( sfc_pres(i,j) - ( 1.0_rp-epsvap ) * sfc_psat(i,j) )
   174        sfc_qv = ( 1.0_rp - atmos_phy_sf_bulk_beta ) * atm_qv(i,j) + atmos_phy_sf_bulk_beta * sfc_qsat
   199        sflx_mw(i,j) = -sfc_dens(i,j) * ustar * ustar / uabs * atm_w(i,j)
   200        sflx_mu(i,j) = -sfc_dens(i,j) * ustar * ustar / uabs * atm_u(i,j)
   201        sflx_mv(i,j) = -sfc_dens(i,j) * ustar * ustar / uabs * atm_v(i,j)
   204        sflx_sh(i,j) = -sfc_dens(i,j) * ustar * tstar * cpdry
   205        sflx_lh(i,j) = -sfc_dens(i,j) * ustar * qstar * lhv(i,j)
   208        sflx_qv(i,j) = sflx_lh(i,j) / lhv(i,j)
   216        u10(i,j) = atm_u(i,j) * log( 10.0_rp / sfc_z0m(i,j) ) / log( atm_z1(i,j) / sfc_z0m(i,j) )
   217        v10(i,j) = atm_v(i,j) * log( 10.0_rp / sfc_z0m(i,j) ) / log( atm_z1(i,j) / sfc_z0m(i,j) )
   218        t2(i,j) = sfc_temp(i,j) + ( atm_temp(i,j) - sfc_temp(i,j) ) &
   219                                 * ( log(      2.0_rp / sfc_z0m(i,j) ) * log(      2.0_rp / sfc_z0h(i,j) ) ) &
   220                                 / ( log( atm_z1(i,j) / sfc_z0m(i,j) ) * log( atm_z1(i,j) / sfc_z0h(i,j) ) )
   221        q2(i,j) = sfc_qv        + ( atm_qv(i,j) - sfc_qv        ) &
   222                                 * ( log(      2.0_rp / sfc_z0m(i,j) ) * log(      2.0_rp / sfc_z0e(i,j) ) ) &
   223                                 / ( log( atm_z1(i,j) / sfc_z0m(i,j) ) * log( atm_z1(i,j) / sfc_z0e(i,j) ) )
 real(rp), public const_cpdry
specific heat (dry air,constant pressure) [J/kg/K] 
module atmosphere / saturation 
integer, public io_fid_conf
Config file ID. 
subroutine, public atmos_phy_sf_bulk_flux(IA, IS, IE, JA, JS, JE, ATM_W, ATM_U, ATM_V, ATM_TEMP, ATM_PRES, ATM_QV, SFC_DENS, SFC_TEMP, SFC_PRES, SFC_Z0M, SFC_Z0H, SFC_Z0E, PBL, ATM_Z1, SFLX_MW, SFLX_MU, SFLX_MV, SFLX_SH, SFLX_LH, SFLX_QV, U10, V10, T2, Q2)
Calculate surface flux. 
module atmosphere / hydrometeor 
procedure(bc), pointer, public bulkflux
module atmosphere / physics / surface / bulk 
subroutine, public atmos_phy_sf_bulk_setup
Setup. 
real(rp), public const_epsvap
Rdry / Rvap. 
subroutine, public prc_abort
Abort Process.