The main documentation of the Set_Coordinates_Multi_Mesh Procedure contains additional explanation of this code listing.
! define([SET_COORDINATES_ROUTINE],[
! pushdef([DIM], [$1])
! pushdef([Set_Coordinates_Multi_Mesh_DIM],
! expand(Set_Coordinates_Multi_Mesh_DIM))
! subroutine Set_Coordinates_Multi_Mesh_DIM (Mesh, Coordinates)
! ! Input variable.
! type(real,DIM,np), intent(in) :: Coordinates ! Coordinates bare naked array.
! ! Input/Output variable.
! type(Multi_Mesh_type), intent(inout) :: Mesh ! Variable to be set.
! !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! ! Verify requirements.
! VERIFY(Valid_State(Mesh),5) ! Mesh is valid.
! VERIFY(Valid_State_NP(Coordinates),5) ! Coordinates is valid.
! VERIFY($1 == Mesh%A_Dimensionality,5) ! Mesh has been set up for this call.
! VERIFY(SHAPE(Coordinates) == SHAPE(Mesh%Coordinates$1),5) ! Coordinates shape check.
! ! Set the coordinates.
! Mesh%Coordinates$1 = Coordinates
! ! Increment the version number.
! Mesh%Version = Mesh%Version + Version_Increment
! ! Verify guarantees.
! VERIFY(Valid_State(Mesh),5) ! Mesh is still valid.
! return
! end subroutine Set_Coordinates_Multi_Mesh_DIM
! popdef([DIM])
! popdef([Set_Coordinates_Multi_Mesh_DIM])
! ])
! forloop([Dim],[1],[5],[
! SET_COORDINATES_ROUTINE(Dim)
! ])