Distribution is allowed for Derived Types but can only be done at ONE level
-
TYPE bunch_of_meshes
-
REAL A1(100,100,100), A2(100,100,100)
-
!HPF$ DISTRIBUTE (BLOCK,CYCLIC,*) :: A1,A2
-
END TYPE
-
Another Example shows distribution outside TYPE definition
-
TYPE tree with each node having one hundred children
-
TYPE(tree) , POINTER, DIMENSION(100) :: children
-
!HPF$ DYNAMIC children
-
REAL value
-
END TYPE
-
TYPE(tree) actualtree
-
ALLOCATE ( actualtree%children) allocates POINTERs to children
-
!HPF$ REDISTRIBUTE t%children(BLOCK) distributes (for first time) these pointers
|