phih_func Subroutine

private subroutine phih_func(z, L, phih, phih_i)

Arguments

Type IntentOptional Attributes Name
real, intent(in) :: z
real, intent(in) :: L
real, intent(out) :: phih
real, intent(out) :: phih_i

Called by

proc~~phih_func~~CalledByGraph proc~phih_func phih_func proc~kz_func Kz_func proc~kz_func->proc~phih_func proc~uemep_set_dispersion_sigma_kz uEMEP_set_dispersion_sigma_Kz proc~uemep_set_dispersion_sigma_kz->proc~kz_func proc~uemep_subgrid_deposition uEMEP_subgrid_deposition proc~uemep_subgrid_deposition->proc~uemep_set_dispersion_sigma_kz proc~uemep_subgrid_dispersion uEMEP_subgrid_dispersion proc~uemep_subgrid_dispersion->proc~uemep_set_dispersion_sigma_kz proc~uemep_subgrid_dispersion_integral uEMEP_subgrid_dispersion_integral proc~uemep_subgrid_dispersion->proc~uemep_subgrid_dispersion_integral proc~uemep_subgrid_dispersion_integral->proc~uemep_set_dispersion_sigma_kz program~uemep uEMEP program~uemep->proc~uemep_subgrid_deposition program~uemep->proc~uemep_subgrid_dispersion

Source Code

    subroutine phih_func(z,L,phih,phih_i)

        implicit none

        real, intent(in) :: z,L
        real, intent(out) :: phih,phih_i
        real a,b,q
        parameter (a=16.,b=5.,q=-0.5)
        real eps

        eps=z/L

        if (eps.ge.0) then
            phih=1.+b*eps
            phih_i=-b*eps
        else
            phih=exp(q*log((1.-a*eps)))
            phih_i=2.*log((1.+1./phih)/2.)
        endif

    end subroutine phih_func