This and the following subroutine are useful if you want to find min and max values of a column (at present restricted to REAL32 and REAL64 data types) but have reason to fear that nulls may be present. Real-valued nulls can do funny things to fortran minval() and maxval() functions.
interface minNonNullValue
subroutine minNonNullValueSingle(tab, colName, minValue, allRowsNull)
type(TableT), intent(in) :: tab
character(*), intent(in) :: colName
real(single), intent(out) :: minValue
logical(bool), intent(out) :: allRowsNull
end subroutine minNonNullValueSingle
subroutine minNonNullValueDouble(tab, colName, minValue, allRowsNull)
type(TableT), intent(in) :: tab
character(*), intent(in) :: colName
real(double), intent(out) :: minValue
logical(bool), intent(out) :: allRowsNull
end subroutine minNonNullValueDouble
end interface