The main documentation of the Get_Locus_Overlapped_Vector Procedure contains additional explanation of this code listing.
define([LOCUS_ROUTINE],[
pushdef([Get_MANYORONE_Locus_OV], expand(Get_$1_Locus_OV))
function Get_MANYORONE_Locus_OV (OV) result(Locus_OV)
! Input variable.
type(Overlapped_Vector_type), intent(in) :: OV ! Variable to be queried.
! Output variable.
type(character,name_length) :: Locus_OV ! Locus of OV.
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! Verify requirements.
VERIFY(Valid_State(OV),5) ! OV is valid.
! Set the value.
Locus_OV = Locus(OV%$1_Structure)
! Verify guarantees - none.
return
end function Get_MANYORONE_Locus_OV
popdef([Get_MANYORONE_Locus_OV])
])
LOCUS_ROUTINE(Many)
LOCUS_ROUTINE(One)