1MODULE fftw_interfaces 2 3 INTERFACE 4 SUBROUTINE create_plan_1d( plan, nz, i ) BIND(C,name="create_plan_1d") 5 USE iso_c_binding 6 TYPE(C_PTR) :: plan 7 INTEGER(KIND=C_INT) :: nz, i 8 END SUBROUTINE create_plan_1d 9 SUBROUTINE destroy_plan_1d( plan ) BIND(C,name="destroy_plan_1d") 10 USE iso_c_binding 11 TYPE(C_PTR) :: plan 12 END SUBROUTINE destroy_plan_1d 13 14 SUBROUTINE create_plan_2d( plan, nx, ny, i ) BIND(C,name="create_plan_2d") 15 USE iso_c_binding 16 TYPE(C_PTR) :: plan 17 INTEGER(KIND=C_INT) :: nx, ny, i 18 END SUBROUTINE create_plan_2d 19 SUBROUTINE destroy_plan_2d( plan ) BIND(C,name="destroy_plan_2d") 20 USE iso_c_binding 21 TYPE(C_PTR) :: plan 22 END SUBROUTINE destroy_plan_2d 23 24 SUBROUTINE create_plan_3d( plan, nx, ny, nz, i ) BIND(C,name="create_plan_3d") 25 USE iso_c_binding 26 TYPE(C_PTR) :: plan 27 INTEGER(KIND=C_INT) :: nx, ny, nz, i 28 END SUBROUTINE create_plan_3d 29 SUBROUTINE destroy_plan_3d( plan ) BIND(C,name="destroy_plan_3d") 30 USE iso_c_binding 31 TYPE(C_PTR) :: plan 32 END SUBROUTINE destroy_plan_3d 33 34 SUBROUTINE fft_x_stick( plan, xy, nx, ny, nz, ldx, ldy ) & 35 BIND(C,name="fft_x_stick") 36 USE iso_c_binding 37 TYPE(C_PTR) :: plan 38 INTEGER(KIND=C_INT) :: nx, ny, nz, ldx, ldy 39 COMPLEX(KIND=C_DOUBLE) :: xy 40 END SUBROUTINE fft_x_stick 41 42 SUBROUTINE fft_x_stick_single( plan, xy, nx, ny, nz, ldx, ldy ) & 43 BIND(C,name="fft_x_stick_single") 44 USE iso_c_binding 45 TYPE(C_PTR) :: plan 46 INTEGER(KIND=C_INT) :: nx, ny, nz, ldx, ldy 47 COMPLEX(KIND=C_DOUBLE) :: xy 48 END SUBROUTINE fft_x_stick_single 49 50 SUBROUTINE fft_y_stick( plan, xy, ny, ldx ) BIND(C,name="fft_y_stick") 51 USE iso_c_binding 52 TYPE(C_PTR) :: plan 53 INTEGER(KIND=C_INT) :: ny, ldx 54 COMPLEX(KIND=C_DOUBLE) :: xy 55 END SUBROUTINE fft_y_stick 56 57 SUBROUTINE fft_z_stick( plan, z, ldz, nzl ) BIND(C,name="fft_z_stick") 58 USE iso_c_binding 59 TYPE(C_PTR) :: plan 60 INTEGER(KIND=C_INT) :: ldz, nzl 61 COMPLEX(KIND=C_DOUBLE) :: z 62 END SUBROUTINE fft_z_stick 63 64 SUBROUTINE fft_z_stick_single( plan, z, ldz ) BIND(C,name="fft_z_stick_single") 65 USE iso_c_binding 66 TYPE(C_PTR) :: plan 67 INTEGER(KIND=C_INT) :: ldz 68 COMPLEX(KIND=C_DOUBLE) :: z 69 END SUBROUTINE fft_z_stick_single 70 71 SUBROUTINE fftw_inplace_drv_1d( plan, m, z, inc1, inc2 ) & 72 BIND(C,name="fftw_inplace_drv_1d") 73 USE iso_c_binding 74 TYPE(C_PTR) :: plan 75 INTEGER(KIND=C_INT) :: m, inc1, inc2 76 COMPLEX(KIND=C_DOUBLE) :: z 77 END SUBROUTINE fftw_inplace_drv_1d 78 SUBROUTINE fftw_inplace_drv_3d( plan, m, z, inc1, inc2 ) & 79 BIND(C,name="fftw_inplace_drv_3d") 80 USE iso_c_binding 81 TYPE(C_PTR) :: plan 82 INTEGER(KIND=C_INT) :: m, inc1, inc2 83 COMPLEX(KIND=C_DOUBLE) :: z 84 END SUBROUTINE fftw_inplace_drv_3d 85 END INTERFACE 86 87END MODULE fftw_interfaces 88