ks_src_func Function

private pure function ks_src_func(ri_crit, shearmix_rate, fri_curvature, n2, s2) result(ksrc)

Shear-source function K_src at one interface (JHL08 eq. for the source term): nonzero only where N^2 < Ri_c * S^2.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: ri_crit
real(kind=wp), intent(in) :: shearmix_rate
real(kind=wp), intent(in) :: fri_curvature
real(kind=wp), intent(in) :: n2
real(kind=wp), intent(in) :: s2

Return Value real(kind=wp)


Called by

proc~~ks_src_func~~CalledByGraph proc~ks_src_func ks_src_func proc~ks_adaptive_dt ks_adaptive_dt proc~ks_adaptive_dt->proc~ks_src_func proc~ks_find_kappa_tke ks_find_kappa_tke proc~ks_find_kappa_tke->proc~ks_src_func proc~ks_solve_column ks_solve_column proc~ks_solve_column->proc~ks_src_func proc~ks_solve_column->proc~ks_adaptive_dt proc~ks_solve_column->proc~ks_find_kappa_tke proc~kappa_shear_column_kernel kappa_shear_column_kernel proc~kappa_shear_column_kernel->proc~ks_solve_column proc~kappa_shear_vertex_kernel kappa_shear_vertex_kernel proc~kappa_shear_vertex_kernel->proc~ks_solve_column proc~kappa_shear_compute kappa_shear_compute proc~kappa_shear_compute->proc~kappa_shear_column_kernel proc~kappa_shear_compute->proc~kappa_shear_vertex_kernel proc~vmix_apply_in_stage vmix_apply_in_stage proc~vmix_apply_in_stage->proc~kappa_shear_compute proc~run_stage run_stage proc~run_stage->proc~vmix_apply_in_stage proc~run_stage_split run_stage_split proc~run_stage_split->proc~vmix_apply_in_stage

Variables

Type Visibility Attributes Name Initial
real(kind=wp), private :: dnom

Source Code

   pure function ks_src_func(ri_crit, shearmix_rate, fri_curvature, n2, s2) &
      result(ksrc)
      !! Shear-source function K_src at one interface (JHL08 eq. for the
      !! source term): nonzero only where N^2 < Ri_c * S^2.
      !$acc routine seq
      real(wp), intent(in) :: ri_crit, shearmix_rate, fri_curvature, n2, s2
      real(wp) :: ksrc
      real(wp) :: dnom

      ksrc = 0.0_wp
      if (n2 < ri_crit*s2) then
         dnom = ri_crit*s2 + fri_curvature*n2
         if (dnom /= 0.0_wp .and. s2 > 0.0_wp) then
            ksrc = 2.0_wp*shearmix_rate*sqrt(s2)*(ri_crit*s2 - n2)/dnom
         end if
      end if
   end function ks_src_func