Initializes the FFT object.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(fft_obj), | intent(inout) | :: | this |
A FFT object |
||
| type(block_obj), | intent(in), | target | :: | block |
A block object |
|
| type(parallel_obj), | intent(in), | target | :: | parallel |
Parallel structure to link with |
impure subroutine fft_obj_Init(this,block,parallel) !> Initializes the FFT object. implicit none class(fft_obj), intent(inout) :: this !! A FFT object type(block_obj), intent(in), & target :: block !! A block object type(parallel_obj), intent(in), & target :: parallel !! Parallel structure to link with ! Point to the master objects this%parallel => parallel this%block => block ! Allocate buffers and displacements needed for transpose allocate(this%s_counts(this%parallel%nproc)) allocate(this%s_displs(this%parallel%nproc)) allocate(this%s_ptr (this%parallel%nproc)) allocate(this%r_counts(this%parallel%nproc)) allocate(this%r_displs(this%parallel%nproc)) allocate(this%r_ptr (this%parallel%nproc)) call this%GetOriginalLayout() call this%SetContigDirection() return end subroutine fft_obj_Init