Gavin is right, COMPLEX(8) is the same as  COMPLEX*16
COMPLEX(8) is also the same as DOUBLE COMPLEX (16 bytes, (128 bits))
and fits to
REAL(8)  (8 bytes, (64 bits))
as it consists of two real 8 bytes numbers
 

Ciao
Gerhard

====================================
Dr. Gerhard H. Fecher
Institut of Inorganic and Analytical Chemistry
Johannes Gutenberg - University
55099 Mainz
________________________________________
Von: wien-bounces at zeus.theochem.tuwien.ac.at [wien-bounces at 
zeus.theochem.tuwien.ac.at]" im Auftrag von "Gavin Abo [gsabo at 
crimson.ua.edu]
Gesendet: Freitag, 24. August 2012 02:00
An: A Mailing list for WIEN2k users
Betreff: Re: [Wien] Problems in the 1st step of the SCF cycle of mBj

I believe "complex(kind=8)" is the same as "complex*16", just a different 
notation for it.

If the suggested possible fix works, an if statement in vresp.F to use the 
lines like "DWORK(:)" for fftw2/3 and "DWORK(*)" for fftpack would be needed.  
Else, probably the original fft_modules.F and vresp.F would have to be used 
with some type of changes in fftpack_helpers.f instead.

On 8/23/2012 5:24 PM, Laurence Marks wrote:

Can you change everything to complex*16 ? It makes sense to do everything with 
double precision, I would be concerned with the accuracy of complex*8 as well 
as mixing precisions.

---------------------------
Professor Laurence Marks
Department of Materials Science and Engineering
Northwestern University
www.numis.northwestern.edu<http://www.numis.northwestern.edu> 1-847-491-3996
"Research is to see what everybody else has seen, and to think what nobody else 
has thought"
Albert Szent-Gyorgi

On Aug 23, 2012 6:19 PM, "Gavin Abo" <gsabo at crimson.ua.edu<mailto:gsabo at 
crimson.ua.edu>> wrote:
The situational problem with the fftpack routine might be due to some 
inconsistency in the array usage.  Maybe Prof. Blaha can provide or confirm 
whether the fix below works properly.

Lines 392-294 in SRC_lapw0/fft_modules.F:

    real(kind=8) :: DWORK(:)
    complex(kind=8) :: CWORK(:)
    complex(kind=8) :: C(LDC1,LDC2,N3,2)

Lines 21-22 in SRC_lapw0/vresp.F:

    DOUBLE PRECISION   DWORK(:)
    COMPLEX*16               CWORK(:)

It runs without error with the following changes.

Lines 392-293 in SRC_lapw0/fft_modules.F:

    real(kind=8)         DWORK(*)
    complex(kind=8) CWORK(*)

  "complex(kind=8) C(LDC1,LDC2,N3,2)" needed too??

Lines 21-22 in SRC_lapw0/vresp.F:

    DOUBLE PRECISION   DWORK(*)
    COMPLEX*16               CWORK(*)

as the subroutine in SRC_lapw0/fftpack_helpers.f has "DWORK(*)"

On 8/23/2012 12:58 PM, Gavin Abo wrote:
I was able to reproduce the error with your files when the fftpack routine is 
used in Wien2k 12.1.  Ran a couple cycles, and the error did not appear when 
fftw3 was used instead.  So a possible solution may be to use the fftw3 library.

The fftw3 may be faster than the fftpack, so you probably want to use it 
anyway.  It should be easy to use the fftw3 on Debian. fftw3 might already be 
installed or I believe you can install it with:

apt-get install libfftw3-dev

Open the Makefile in a text editor:

vi $WIENROOT/SRC_lapw0/Makefile

Edit and save settings to use for sequential (non-mpi):

FOPT = -FR -mp1 -w -prec_div -pc80 -pad -ip -DINTEL_VML -DFFTW3 -traceback
R_LIBS = -lmkl_lapack95_lp64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core 
-openmp -lpthread -lfftw3

In $WIENROOT/SRC_lapw0:

make
cp lapw0 ..

As described in section 11.1.1 of the Wien2k 12.1 userguide, the same can be 
done with lapw2.  Instructions for using the possible faster mkl-fftw3 for 
sequential (non-mpi) instead of the above described fftw3 from a Debian 
repository is also given.

On 8/23/2012 8:06 AM, Luis Carlos Ogando Dacal wrote:
Dear Wien2k users and developers,

   I would like to report the same problem sent to the list by Dr. Eitel 
Peltzer.
   I am running WIEN2k_12.1 on a DELL Precision workstation with two QuadCore 
Xeon processors and Debian Linux. It was compiled using ifort 2011.3.174, icc 
and MKL. The compilation options were:

 O   Compiler options:        -FR -mp1 -w -prec_div -pc80 -pad -ip -DINTEL_VML 
-traceback
 L   Linker Flags:            $(FOPT) 
-L/opt/intel/composerxe-2011.3.174/mkl/lib/intel64 -pthread
 P   Preprocessor flags       '-DParallel'
 R   R_LIB (LAPACK+BLAS):     -lmkl_lapack95_lp64 -lmkl_intel_lp64 
-lmkl_intel_thread -lmkl_core -openmp -lpthread

   I have followed section 4.5.9 of the Users Guide and everything is 0K until 
the change of indxc to 28 in case.in0 and 50 in case.in0_grr. After this, the 
SCF cycle stops in the second lapw0 run with the following error message:

hup: Command not found.
 LAPW0 END
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC                Routine            Line        Source
lapw0              000000000040505E  c3fft_1_                  119  
fftpack_helpers.f
lapw0              0000000000412D5B  fftpack_mp_c3fft_         397  
fft_modules.F
lapw0              000000000047F4EC  vresp_                    106  vresp.F
lapw0              0000000000495769  xcpot3_                   147  xcpot3.F
lapw0              000000000045C064  MAIN__                   1935  lapw0.F
lapw0              0000000000403D6C  Unknown               Unknown  Unknown
libc.so.6          00002B1096C82C8D  Unknown               Unknown  Unknown
lapw0              0000000000403C69  Unknown               Unknown  Unknown

>   stop error


   I am sending the case.struct and case.in0 files as requested by Prof. Blaha. 
I have also saved the previous PBE calculation and I can send it if necessary 
(8.5 MB).
   Thanks in advance,
                          Luis Ogando




_______________________________________________
Wien mailing list
Wien at zeus.theochem.tuwien.ac.at<mailto:Wien at zeus.theochem.tuwien.ac.at>
http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien


Reply via email to