This lightly commented program performs a unit test on the Data_Index Class.
program Unit_Test
use Caesar_Intrinsics_Module
use Caesar_Base_Structure_Class
use Caesar_Data_Index_Class
use Caesar_Communication_Class
implicit none
type(Communication_type) :: Comm
type(Base_Structure_type) :: Cell_Structure, Node_Structure
type(Data_Index_type) :: Nodes_of_Cells_Index
type(integer) :: NDimensions
type(logical) :: detailed_output
! Initializations.
call Initialize (Comm)
call Output (Comm)
detailed_output = NPEs < 16
! Loop over 1-D, 2-D and 3-D.
do NDimensions = 1, 3
if (this_is_IO_PE) write (6,'(/,a,i1)') 'Number of Dimensions = ', &
NDimensions
! Set up the Shell Partition Structures.
call Initialize_Shell_Partition (NDimensions, Cell_Structure, &
Node_Structure, Nodes_of_Cells_Index, &
detailed_output)
! Output Index info.
call Output (Nodes_of_Cells_Index, &
MAX(1, Length_Total(Cell_Structure)/10), &
MIN(Length_Total(Cell_Structure), Length_Total(Cell_Structure)/10+50), &
Output_OPE=detailed_output)
! Check state of data index.
VERIFY(Valid_State(Nodes_of_Cells_Index),0)
! Finalize NDimensions-dependent data structures.
call Finalize (Nodes_of_Cells_Index)
call Finalize (Node_Structure)
call Finalize (Cell_Structure)
end do
if (this_is_IO_PE) write (6,*)
! Finalize communications.
call Finalize (Comm)
end