The inverse function of getAxesFromIndices (See Section 2.4.1).
interface getIndicesFromAxes
function getIndicesFromAxesDouble(axes, iLbound, iUbound, lEdge, uEdge) result(indices)
real(double), intent(in) :: axes(:)
integer, intent(in) :: iLbound(size(axes)), iUbound(size(axes))
real(double), intent(in) :: lEdge(size(axes))
real(double), intent(in), optional :: uEdge(size(axes))
real(double) :: indices(size(axes)) ! result
end function getIndicesFromAxesDouble
function getIndicesFromAxesSingle(axes, iLbound, iUbound, lEdge, uEdge) result(indices)
real(single), intent(in) :: axes(:)
integer, intent(in) :: iLbound(size(axes)), iUbound(size(axes))
real(single), intent(in) :: lEdge(size(axes))
real(single), intent(in), optional :: uEdge(size(axes))
real(single) :: indices(size(axes)) ! result
function getIndicesFromAxesSingle
function getIndicesFromAxesEdgesDouble(axes, aryEdgesInfo) result(indices)
real(double), intent(in) :: axes(:)
type(AryEdgesInfoT), intent(in) :: aryEdgesInfo
real(double) :: indices(size(axes)) ! result
end function getIndicesFromAxesEdgesDouble
function getIndicesFromAxesEdgesSingle(axes, aryEdgesInfo) result(indices)
real(single), intent(in) :: axes(:)
type(AryEdgesInfoT), intent(in) :: aryEdgesInfo
real(single) :: indices(size(axes)) ! result
end function getIndicesFromAxesEdgesSingle
end interface
Indices, though the returned values here may be Real, mean the index for the given array, therefore for an array
ary(int(returned_i), int(returned_j))will give something significant in the Fortran code. Axes are arbitrary and give the frame, which may mean something physical.
If uEdge is not given, it is assumed that the width of axes is the same as the size of the array (= abs(iUbound-iLbound) for each axis).
The following is a few examples.
XMM-Newton SOC -- 2025-01-27