The main documentation of the Get_Values_Collected_Array Procedure contains additional explanation of this code listing.
define([GET_VALUES_ROUTINE],[
pushdef([DIM], [$1])
pushdef([ValuesDIM], expand(Values[]DIM))
pushdef([Get_Values_Collected_Array_DIM],
expand(Get_Values_Collected_Array_DIM))
subroutine Get_Values_Collected_Array_DIM (Values, CA)
! Input variable.
type(Collected_Array_type), intent(in) :: CA ! Variable to be queried.
! Input/Output variable.
type(real,DIM,np), intent(inout) :: Values ! Values bare naked array.
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! Verify requirements.
VERIFY(Valid_State(CA),5) ! CA is valid.
VERIFY(Valid_State_NP(Values),5) ! Values is valid.
VERIFY(DIM == CA%A_Dimensionality,5) ! CA has been set up for this call.
VERIFY(SHAPE(Values) == SHAPE(CA%ValuesDIM),5) ! Values shape check.
! Set the values.
Values = CA%ValuesDIM
! Verify guarantees.
VERIFY(Valid_State(CA),5) ! CA is still valid.
VERIFY(Valid_State_NP(Values),5) ! Values is valid.
return
end subroutine Get_Values_Collected_Array_DIM
popdef([DIM])
popdef([ValuesDIM])
popdef([Get_Values_Collected_Array_DIM])
])
forloop([Dim],[1],[5],[
GET_VALUES_ROUTINE(Dim)
])