Skip to content

Commit 0cc8513

Browse files
authored
Merge pull request #31 from cval26/fftshift
Remove dynamic memory allocations in shift procedures
2 parents 7987d71 + 762a1ce commit 0cc8513

File tree

3 files changed

+9
-9
lines changed

3 files changed

+9
-9
lines changed

src/fftpack.f90

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ module fftpack
1818

1919
public :: dcosti, dcost
2020
public :: dct, idct
21-
21+
2222
public :: rk
2323

2424
interface
@@ -276,11 +276,11 @@ end function dct_rk
276276
interface fftshift
277277
pure module function fftshift_crk(x) result(result)
278278
complex(kind=rk), intent(in) :: x(:)
279-
complex(kind=rk), allocatable :: result(:)
279+
complex(kind=rk), dimension(size(x)) :: result
280280
end function fftshift_crk
281281
pure module function fftshift_rrk(x) result(result)
282282
real(kind=rk), intent(in) :: x(:)
283-
real(kind=rk), allocatable :: result(:)
283+
real(kind=rk), dimension(size(x)) :: result
284284
end function fftshift_rrk
285285
end interface fftshift
286286

@@ -291,11 +291,11 @@ end function fftshift_rrk
291291
interface ifftshift
292292
pure module function ifftshift_crk(x) result(result)
293293
complex(kind=rk), intent(in) :: x(:)
294-
complex(kind=rk), allocatable :: result(:)
294+
complex(kind=rk), dimension(size(x)) :: result
295295
end function ifftshift_crk
296296
pure module function ifftshift_rrk(x) result(result)
297297
real(kind=rk), intent(in) :: x(:)
298-
real(kind=rk), allocatable :: result(:)
298+
real(kind=rk), dimension(size(x)) :: result
299299
end function ifftshift_rrk
300300
end interface ifftshift
301301

src/fftpack_fftshift.f90

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
!> Shifts zero-frequency component to center of spectrum for `complex` type.
66
pure module function fftshift_crk(x) result(result)
77
complex(kind=rk), intent(in) :: x(:)
8-
complex(kind=rk), allocatable :: result(:)
8+
complex(kind=rk), dimension(size(x)) :: result
99

1010
result = cshift(x, shift=-floor(0.5_rk*size(x)))
1111

@@ -14,7 +14,7 @@ end function fftshift_crk
1414
!> Shifts zero-frequency component to center of spectrum for `real` type.
1515
pure module function fftshift_rrk(x) result(result)
1616
real(kind=rk), intent(in) :: x(:)
17-
real(kind=rk), allocatable :: result(:)
17+
real(kind=rk), dimension(size(x)) :: result
1818

1919
result = cshift(x, shift=-floor(0.5_rk*size(x)))
2020

src/fftpack_ifftshift.f90

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
!> Shifts zero-frequency component to beginning of spectrum for `complex` type.
66
pure module function ifftshift_crk(x) result(result)
77
complex(kind=rk), intent(in) :: x(:)
8-
complex(kind=rk), allocatable :: result(:)
8+
complex(kind=rk), dimension(size(x)) :: result
99

1010
result = cshift(x, shift=-ceiling(0.5_rk*size(x)))
1111

@@ -14,7 +14,7 @@ end function ifftshift_crk
1414
!> Shifts zero-frequency component to beginning of spectrum for `real` type.
1515
pure module function ifftshift_rrk(x) result(result)
1616
real(kind=rk), intent(in) :: x(:)
17-
real(kind=rk), allocatable :: result(:)
17+
real(kind=rk), dimension(size(x)) :: result
1818

1919
result = cshift(x, shift=-ceiling(0.5_rk*size(x)))
2020

0 commit comments

Comments
 (0)