LT_get_loc Function

public elemental function LT_get_loc(my_lt, x) result(my_loc)

Get a location in the lookup table

Arguments

Type IntentOptional Attributes Name
type(LT_t), intent(in) :: my_lt
real(kind=dp), intent(in) :: x

Return Value type(LT_loc_t)


Called by

proc~~lt_get_loc~~CalledByGraph proc~lt_get_loc LT_get_loc proc~lt_get_col LT_get_col proc~lt_get_col->proc~lt_get_loc proc~lt_get_mcol LT_get_mcol proc~lt_get_mcol->proc~lt_get_loc proc~bc_data_get_2d bc_data_get_2d proc~bc_data_get_2d->proc~lt_get_col proc~read_data_get_1d read_data_get_1d proc~read_data_get_1d->proc~lt_get_col

Source Code

  elemental function LT_get_loc(my_lt, x) result(my_loc)
    type(LT_t), intent(in) :: my_lt
    real(dp), intent(in)   :: x
    type(LT_loc_t)         :: my_loc
    real(dp)               :: frac

    frac            = (x - my_lt%x_min) * my_lt%inv_dx
    my_loc%low_ix   = ceiling(frac)
    my_loc%low_frac = my_loc%low_ix - frac

    ! Check bounds
    if (my_loc%low_ix < 1) then
       my_loc%low_ix   = 1
       my_loc%low_frac = 1
    else if (my_loc%low_ix >= my_lt%n_points) then
       my_loc%low_ix   = my_lt%n_points - 1
       my_loc%low_frac = 0
    end if
  end function LT_get_loc