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