This module calculates surface roughness length.This subroutine includes the surface roughness length formulation based on the surface sublayer scheme in Zeng and Dickinson (1998) [211]. More...
Functions/Subroutines | |
| subroutine, public | sfc_diff::sfc_diff_run (im, rvrdm1, eps, epsm1, grav, ps, t1, q1, z1, garea, wind, prsl1, prslki, prsik1, prslk1, sigmaf, vegtype, shdmax, ivegsrc, z0pert, ztpert, flag_iter, redrag, flag_lakefreeze, lakefrac, fice, u10m, v10m, sfc_z0_type, u1, v1, usfco, vsfco, use_oceanuv, wet, dry, icy, thsfc_loc, tskin_wat, tskin_lnd, tskin_ice, tsurf_wat, tsurf_lnd, tsurf_ice, z0rl_wat, z0rl_lnd, z0rl_ice, z0rl_wav, ustar_wat, ustar_lnd, ustar_ice, cm_wat, cm_lnd, cm_ice, ch_wat, ch_lnd, ch_ice, rb_wat, rb_lnd, rb_ice, stress_wat, stress_lnd, stress_ice, fm_wat, fm_lnd, fm_ice, fh_wat, fh_lnd, fh_ice, fm10_wat, fm10_lnd, fm10_ice, fh2_wat, fh2_lnd, fh2_ice, ztmax_wat, ztmax_lnd, ztmax_ice, zvfun, errmsg, errflg) |
| subroutine, public | sfc_diff::stability (z1, zvfun, gdx, tv1, thv1, wind, z0max, ztmax, tvs, grav, thsfc_loc, rb, fm, fh, fm10, fh2, cm, ch, stress, ustar) |
This module calculates surface roughness length.
This subroutine includes the surface roughness length formulation based on the surface sublayer scheme in Zeng and Dickinson (1998) [211].
\[ ln(Z_{0m}^,/Z_{0t})=(1-GVF)^2C_{zil}k(u*Z_{0g}/\nu)^{0.5} \]
where \(Z_{0m}^,\) is the effective momentum roughness length computed in the following equation for each grid, \(Z_{0t}\) is the roughness lenghth for heat, \(C_{zil}\) is a coefficient (taken as 0.8), k is the Von Karman constant (0.4), \(\nu=1.5\times10^{-5}m^{2}s^{-1}\) is the molecular viscosity, \(u*\) is the friction velocity, and \(Z_{0g}\) is the bare soil roughness length for momentum (taken as 0.01).\[ \ln(Z_{0m}^,)=(1-GVF)^{2}\ln(Z_{0g})+\left[1-(1-GVF)^{2}\right]\ln(Z_{0m}) \]
| subroutine, public sfc_diff::sfc_diff_run | ( | integer, intent(in) | im, |
| real(kind=kind_phys), intent(in) | rvrdm1, | ||
| real(kind=kind_phys), intent(in) | eps, | ||
| real(kind=kind_phys), intent(in) | epsm1, | ||
| real(kind=kind_phys), intent(in) | grav, | ||
| real(kind=kind_phys), dimension(:), intent(in) | ps, | ||
| real(kind=kind_phys), dimension(:), intent(in) | t1, | ||
| real(kind=kind_phys), dimension(:), intent(in) | q1, | ||
| real(kind=kind_phys), dimension(:), intent(in) | z1, | ||
| real(kind=kind_phys), dimension(:), intent(in) | garea, | ||
| real(kind=kind_phys), dimension(:), intent(in) | wind, | ||
| real(kind=kind_phys), dimension(:), intent(in) | prsl1, | ||
| real(kind=kind_phys), dimension(:), intent(in) | prslki, | ||
| real(kind=kind_phys), dimension(:), intent(in) | prsik1, | ||
| real(kind=kind_phys), dimension(:), intent(in) | prslk1, | ||
| real(kind=kind_phys), dimension(:), intent(in) | sigmaf, | ||
| integer, dimension(:), intent(in) | vegtype, | ||
| real(kind=kind_phys), dimension(:), intent(in) | shdmax, | ||
| integer, intent(in) | ivegsrc, | ||
| real(kind=kind_phys), dimension(:), intent(in) | z0pert, | ||
| real(kind=kind_phys), dimension(:), intent(in) | ztpert, | ||
| logical, dimension(:), intent(in) | flag_iter, | ||
| logical, intent(in) | redrag, | ||
| logical, dimension(:), intent(in) | flag_lakefreeze, | ||
| real(kind=kind_phys), dimension(:), intent(in) | lakefrac, | ||
| real(kind=kind_phys), dimension(:), intent(in) | fice, | ||
| real(kind=kind_phys), dimension(:), intent(in) | u10m, | ||
| real(kind=kind_phys), dimension(:), intent(in) | v10m, | ||
| integer, intent(in) | sfc_z0_type, | ||
| real(kind=kind_phys), dimension(:), intent(in) | u1, | ||
| real(kind=kind_phys), dimension(:), intent(in) | v1, | ||
| real(kind=kind_phys), dimension(:), intent(in) | usfco, | ||
| real(kind=kind_phys), dimension(:), intent(in) | vsfco, | ||
| logical, intent(in) | use_oceanuv, | ||
| logical, dimension(:), intent(inout) | wet, | ||
| logical, dimension(:), intent(in) | dry, | ||
| logical, dimension(:), intent(in) | icy, | ||
| logical, intent(in) | thsfc_loc, | ||
| real(kind=kind_phys), dimension(:), intent(in) | tskin_wat, | ||
| real(kind=kind_phys), dimension(:), intent(in) | tskin_lnd, | ||
| real(kind=kind_phys), dimension(:), intent(in) | tskin_ice, | ||
| real(kind=kind_phys), dimension(:), intent(in) | tsurf_wat, | ||
| real(kind=kind_phys), dimension(:), intent(in) | tsurf_lnd, | ||
| real(kind=kind_phys), dimension(:), intent(in) | tsurf_ice, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | z0rl_wat, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | z0rl_lnd, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | z0rl_ice, | ||
| real(kind=kind_phys), dimension(:), intent(in) | z0rl_wav, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | ustar_wat, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | ustar_lnd, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | ustar_ice, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | cm_wat, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | cm_lnd, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | cm_ice, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | ch_wat, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | ch_lnd, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | ch_ice, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | rb_wat, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | rb_lnd, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | rb_ice, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | stress_wat, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | stress_lnd, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | stress_ice, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | fm_wat, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | fm_lnd, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | fm_ice, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | fh_wat, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | fh_lnd, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | fh_ice, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | fm10_wat, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | fm10_lnd, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | fm10_ice, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | fh2_wat, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | fh2_lnd, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | fh2_ice, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | ztmax_wat, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | ztmax_lnd, | ||
| real(kind=kind_phys), dimension(:), intent(inout) | ztmax_ice, | ||
| real(kind=kind_phys), dimension(:), intent(out) | zvfun, | ||
| character(len=*), intent(out) | errmsg, | ||
| integer, intent(out) | errflg | ||
| ) |
Definition at line 57 of file sfc_diff.f.
| subroutine, public sfc_diff::stability | ( | real(kind=kind_phys), intent(in) | z1, |
| real(kind=kind_phys), intent(in) | zvfun, | ||
| real(kind=kind_phys), intent(in) | gdx, | ||
| real(kind=kind_phys), intent(in) | tv1, | ||
| real(kind=kind_phys), intent(in) | thv1, | ||
| real(kind=kind_phys), intent(in) | wind, | ||
| real(kind=kind_phys), intent(in) | z0max, | ||
| real(kind=kind_phys), intent(in) | ztmax, | ||
| real(kind=kind_phys), intent(in) | tvs, | ||
| real(kind=kind_phys), intent(in) | grav, | ||
| logical, intent(in) | thsfc_loc, | ||
| real(kind=kind_phys), intent(out) | rb, | ||
| real(kind=kind_phys), intent(out) | fm, | ||
| real(kind=kind_phys), intent(out) | fh, | ||
| real(kind=kind_phys), intent(out) | fm10, | ||
| real(kind=kind_phys), intent(out) | fh2, | ||
| real(kind=kind_phys), intent(out) | cm, | ||
| real(kind=kind_phys), intent(out) | ch, | ||
| real(kind=kind_phys), intent(out) | stress, | ||
| real(kind=kind_phys), intent(out) | ustar | ||
| ) |
Definition at line 463 of file sfc_diff.f.