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) ! ])