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)