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)