I.1.24 Set_Coordinates_Multi_Mesh Procedure

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



Michael L. Hall