fft_obj_GetOriginalLayout Subroutine

private impure subroutine fft_obj_GetOriginalLayout(this)

Determines data layout of original array.

Type Bound

fft_obj

Arguments

Type IntentOptional Attributes Name
class(fft_obj), intent(inout) :: this

A FFT object


Called by

proc~~fft_obj_getoriginallayout~~CalledByGraph proc~fft_obj_getoriginallayout fft_obj%fft_obj_GetOriginalLayout proc~fft_obj_init fft_obj%fft_obj_Init proc~fft_obj_init->proc~fft_obj_getoriginallayout

Source Code

    impure subroutine fft_obj_GetOriginalLayout(this)
      !> Determines data layout of original array.
      implicit none
      class(fft_obj), intent(inout) :: this                                    !! A FFT object
      ! Work variables
      integer :: dir

      ! Get the global grid size
      associate (lo=>this%block%lo, hi =>this%block%hi, Ng => this%Ng)
        do dir=1,3
          ! Get number of grid points in each direction
          call this%parallel%Max(hi(dir),Ng(dir))
          call this%parallel%Max(Ng(dir)-lo(dir)+1,Ng(dir))
        end do
      end associate

      this%l_dims    = this%block%hi - this%block%lo + 1
      this%l_offsets = this%block%lo - 1

      return
    end subroutine fft_obj_GetOriginalLayout