Grid_moveParticles(real(INOUT) :: dataBuf(:,:), integer(IN) :: propCount integer(INOUT) :: localCount, integer(IN) :: maxCount, integer(IN) :: index_list(:), integer(IN) :: indexCount, logical(IN) :: regrid)
This routine deals with moving data associated with quantities such as particles or rays, which do not have a fixed association with a specific point of the domain all through the time evolution. As they change their association from block to block, this routine moves them to the correct block and processor. Depending upon whether the movement is due to regridding or not, this routine calls appropriate function to move the data as needed.
dataBuf : the data structure containing the data of interest It is two dimensional real array, the first dimension represents properties associated with the data structure, and second dimension is index to individual elements in the datastructure. propCount : number of properties for this datastructure localCount : While coming in it contains the current number of elements in the data structure mapped to this processor. After all the data structure movement, the number might change, and the new value is put back into it maxCount : This is parameter determined at runtime, and is the maximum count of elements that a simulation expects to have. All the arrays are allocated based on this number index_list : the list of indices of the data structure indexCount : the count of indices of the data structure regrid : if true then regridding just happened and blocks have changed