Changeset 1682 for palm/trunk/SOURCE/cuda_fft_interfaces.f90
- Timestamp:
- Oct 7, 2015 11:56:08 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/cuda_fft_interfaces.f90
r1375 r1682 1 MODULE cuda_fft_interfaces 2 1 !> @file cuda_fft_interfaces.f90 3 2 !--------------------------------------------------------------------------------! 4 3 ! This file is part of PALM. … … 20 19 ! Current revisions: 21 20 ! ----------------- 22 ! 21 ! Code annotations made doxygen readable 23 22 ! 24 23 ! Former revisions: … … 55 54 ! Description: 56 55 ! ------------ 57 ! FORTRAN interfaces for the CUDA fft58 ! Routines for the fft along x and y (forward/backward) using the CUDA fft56 !> FORTRAN interfaces for the CUDA fft 57 !> Routines for the fft along x and y (forward/backward) using the CUDA fft 59 58 !--------------------------------------------------------------------------------! 59 MODULE cuda_fft_interfaces 60 60 61 61 62 #if defined ( __cuda_fft ) … … 63 64 USE kinds 64 65 65 INTEGER(iwp) :: CUFFT_FORWARD = -1 ! :66 INTEGER(iwp) :: CUFFT_INVERSE = 1 ! :67 INTEGER(iwp) :: CUFFT_R2C = Z'2a' ! :Real to Complex (interleaved)68 INTEGER(iwp) :: CUFFT_C2R = Z'2c' ! :Complex (interleaved) to Real69 INTEGER(iwp) :: CUFFT_C2C = Z'29' ! :Complex to Complex, interleaved70 INTEGER(iwp) :: CUFFT_D2Z = Z'6a' ! :Double to Double-Complex71 INTEGER(iwp) :: CUFFT_Z2D = Z'6c' ! :Double-Complex to Double72 INTEGER(iwp) :: CUFFT_Z2Z = Z'69' ! :Double-Complex to Double-Complex66 INTEGER(iwp) :: CUFFT_FORWARD = -1 !< 67 INTEGER(iwp) :: CUFFT_INVERSE = 1 !< 68 INTEGER(iwp) :: CUFFT_R2C = Z'2a' !< Real to Complex (interleaved) 69 INTEGER(iwp) :: CUFFT_C2R = Z'2c' !< Complex (interleaved) to Real 70 INTEGER(iwp) :: CUFFT_C2C = Z'29' !< Complex to Complex, interleaved 71 INTEGER(iwp) :: CUFFT_D2Z = Z'6a' !< Double to Double-Complex 72 INTEGER(iwp) :: CUFFT_Z2D = Z'6c' !< Double-Complex to Double 73 INTEGER(iwp) :: CUFFT_Z2Z = Z'69' !< Double-Complex to Double-Complex 73 74 74 75 PUBLIC … … 79 80 INTERFACE CUFFTPLAN1D 80 81 82 !------------------------------------------------------------------------------! 83 ! Description: 84 ! ------------ 85 !> @todo Missing subroutine description. 86 !------------------------------------------------------------------------------! 81 87 SUBROUTINE CUFFTPLAN1D( plan, nx, type, batch ) bind( C, name='cufftPlan1d' ) 82 88 83 89 USE ISO_C_BINDING 84 90 85 INTEGER(C_INT) :: plan ! :86 INTEGER(C_INT), value :: batch ! :87 INTEGER(C_INT), value :: nx ! :88 INTEGER(C_INT), value :: type ! :91 INTEGER(C_INT) :: plan !< 92 INTEGER(C_INT), value :: batch !< 93 INTEGER(C_INT), value :: nx !< 94 INTEGER(C_INT), value :: type !< 89 95 END SUBROUTINE CUFFTPLAN1D 90 96 … … 95 101 INTERFACE CUFFTDESTROY 96 102 103 !------------------------------------------------------------------------------! 104 ! Description: 105 ! ------------ 106 !> @todo Missing subroutine description. 107 !------------------------------------------------------------------------------! 97 108 SUBROUTINE CUFFTDESTROY( plan ) bind( C, name='cufftDestroy' ) 98 109 … … 108 119 INTERFACE CUFFTEXECZ2D 109 120 121 !------------------------------------------------------------------------------! 122 ! Description: 123 ! ------------ 124 !> @todo Missing subroutine description. 125 !------------------------------------------------------------------------------! 110 126 SUBROUTINE CUFFTEXECZ2D( plan, idata, odata ) bind( C, name='cufftExecZ2D' ) 111 127 … … 113 129 USE kinds 114 130 115 INTEGER(C_INT), VALUE :: plan ! :116 COMPLEX(dp), DEVICE :: idata(:,:,:) ! :117 REAL(dp), DEVICE :: odata(:,:,:) ! :131 INTEGER(C_INT), VALUE :: plan !< 132 COMPLEX(dp), DEVICE :: idata(:,:,:) !< 133 REAL(dp), DEVICE :: odata(:,:,:) !< 118 134 119 135 END SUBROUTINE CUFFTEXECZ2D … … 124 140 INTERFACE CUFFTEXECD2Z 125 141 142 !------------------------------------------------------------------------------! 143 ! Description: 144 ! ------------ 145 !> @todo Missing subroutine description. 146 !------------------------------------------------------------------------------! 126 147 SUBROUTINE CUFFTEXECD2Z( plan, idata, odata ) bind( C, name='cufftExecD2Z' ) 127 148 … … 130 151 USE kinds 131 152 132 INTEGER(C_INT), VALUE :: plan ! :133 REAL(dp), DEVICE :: idata(:,:,:) ! :134 COMPLEX(dp), DEVICE :: odata(:,:,:) ! :153 INTEGER(C_INT), VALUE :: plan !< 154 REAL(dp), DEVICE :: idata(:,:,:) !< 155 COMPLEX(dp), DEVICE :: odata(:,:,:) !< 135 156 136 157 END SUBROUTINE CUFFTEXECD2Z … … 140 161 #else 141 162 142 !143 !-- Dummy interface to avoid compiler warnings in case of no bublic objects144 !-- declared145 163 INTERFACE CUFFTdummy 146 164 165 !------------------------------------------------------------------------------! 166 ! Description: 167 ! ------------ 168 !> Dummy interface to avoid compiler warnings in case of no bublic objects 169 !> declared. 170 !------------------------------------------------------------------------------! 147 171 SUBROUTINE CUFFTdummy( dummy ) 148 172 149 173 USE kinds 150 174 151 REAL(wp) :: dummy ! :175 REAL(wp) :: dummy !< 152 176 153 177 END SUBROUTINE CUFFTdummy
Note: See TracChangeset
for help on using the changeset viewer.