- DFTI "NOT_INPLACE" driver used for a not in place fft

git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@11815 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
ccavazzoni 2015-10-29 15:00:47 +00:00
parent 2bb4cd089c
commit b861bd3f8a
1 changed files with 7 additions and 5 deletions

View File

@ -334,15 +334,13 @@
#elif defined __DFTI #elif defined __DFTI
IF (isign < 0) THEN IF (isign < 0) THEN
dfti_status = DftiComputeForward(hand(ip)%desc, c ) dfti_status = DftiComputeForward(hand(ip)%desc, c, cout )
IF(dfti_status /= 0) & IF(dfti_status /= 0) &
CALL errore(' cft_1z ',' stopped in DftiComputeForward ', dfti_status ) CALL errore(' cft_1z ',' stopped in DftiComputeForward ', dfti_status )
cout( 1 : ldz * nsl ) = c( 1 : ldz * nsl )
ELSE IF (isign > 0) THEN ELSE IF (isign > 0) THEN
dfti_status = DftiComputeBackward(hand(ip)%desc, c ) dfti_status = DftiComputeBackward(hand(ip)%desc, c, cout )
IF(dfti_status /= 0) & IF(dfti_status /= 0) &
CALL errore(' cft_1z ',' stopped in DftiComputeBackward ', dfti_status ) CALL errore(' cft_1z ',' stopped in DftiComputeBackward ', dfti_status )
cout( 1 : ldz * nsl ) = c( 1 : ldz * nsl )
END IF END IF
#elif defined __SX6 #elif defined __SX6
@ -416,10 +414,14 @@
IF(dfti_status /= 0) & IF(dfti_status /= 0) &
CALL errore(' cft_1z ',' stopped in DFTI_INPUT_DISTANCE ', dfti_status ) CALL errore(' cft_1z ',' stopped in DFTI_INPUT_DISTANCE ', dfti_status )
dfti_status = DftiSetValue(hand( icurrent )%desc, DFTI_PLACEMENT, DFTI_INPLACE) dfti_status = DftiSetValue(hand( icurrent )%desc, DFTI_PLACEMENT, DFTI_NOT_INPLACE)
IF(dfti_status /= 0) & IF(dfti_status /= 0) &
CALL errore(' cft_1z ',' stopped in DFTI_PLACEMENT ', dfti_status ) CALL errore(' cft_1z ',' stopped in DFTI_PLACEMENT ', dfti_status )
dfti_status = DftiSetValue(hand( icurrent )%desc,DFTI_OUTPUT_DISTANCE, ldz )
IF(dfti_status /= 0) &
CALL errore(' cft_1z ',' stopped in DFTI_OUTPUT_DISTANCE ', dfti_status )
tscale = 1.0_DP/nz tscale = 1.0_DP/nz
dfti_status = DftiSetValue( hand( icurrent )%desc, DFTI_FORWARD_SCALE, tscale); dfti_status = DftiSetValue( hand( icurrent )%desc, DFTI_FORWARD_SCALE, tscale);
IF(dfti_status /= 0) & IF(dfti_status /= 0) &