[DFTB-Plus-User] Cannot Compile dftb-plus!

Ben Hourahine benjamin.hourahine at strath.ac.uk
Sat Dec 19 10:51:08 CET 2009


Hello gerardo,

I think the compiler behaviour changed between versions for  erfc
depending on its optimization and debugging options. You can get the
code to recognise erfc as an external by modifying Makefile.user to
include the line

CPPOPT = -DDEBUG=$(DEBUG) -DEXTERNALERFC

and in the case of gfortran then link with the additional
library -lgfortran

Cheers

Ben

gaguilar at inescporto.pt wrote:
> Hi!
> I have another issue,
>
> 6 months ago, in Fedora 11, I have compiled dftb+ without problems (I
> cannot remember the version of g95 but I guess is 4.3.4). Now with gcc
> 4.4.2, in other machine, but still Fedora 11, I get an error related
> with unrecognizing erfc at linking time.
> I guess that this erfc is not the intrinsic one, right? so, i have
> played with -fno-underscoring a little bit but still the same results,
> anyone can help me?
> If erfc is the intrinsic one, then I have an error of gcc.
> Libraries Lapack, atlas and blas as well as libgfortran are at the
> same place "/usr/lib/atlas/"
>
>
> cheers,
>
> gerardo
>
> Quoting Ben Hourahine <benjamin.hourahine at strath.ac.uk>:
>
>   
>> Hello,
>>
>> which fortran compiler do you have installed? The options try
>> to use ifort by default, but cannot find this.
>>
>> To compile DFTB+ you need:
>> 1) A fortran compiler - ifort, gfortran or g95 are all common choices
>> 2) The lapack and blas libraries - mkl or from www.netlib.org are again
>>    the usual choices for many people.
>>
>> Regards
>>
>> Ben
>>
>> Duo SONG wrote:
>>     
>>> Dear all dftb-plus users,
>>>
>>> How are you? I am a new user on dftb-plus. When compling dftb-plus, I
>>> came across a problem. The dftb-plus cannot be complied successfully.
>>> The error report, which appears after invoking make, is following (Those
>>> above the red-marked error are exactly the same as the howto says):
>>>
>>> make[1]: Entering directory `/para3/dsong/dftb+_1.0.1_src/
>>> prg_dftb/_obj_i686-linux-ifort'
>>> echo "" > _dependencies
>>> for dep in
>>> /para3/dsong/dftb+_1.0.1_src/prg_dftb/../lib_common/Makefile.dep
>>> /para3/dsong/dftb+_1.0.1_src/prg_dftb/../lib_dftb/Makefile.dep
>>> /para3/dsong/dftb+_1.0.1_src/prg_dftb/../lib_geoopt/Makefile.dep
>>> /para3/dsong/dftb+_1.0.1_src/prg_dftb/../lib_io/Makefile.dep
>>> /para3/dsong/dftb+_1.0.1_src/prg_dftb/../lib_math/Makefile.dep
>>> /para3/dsong/dftb+_1.0.1_src/prg_dftb/../lib_md/Makefile.dep
>>> /para3/dsong/dftb+_1.0.1_src/prg_dftb/../lib_mixer/Makefile.dep
>>> /para3/dsong/dftb+_1.0.1_src/prg_dftb/../lib_type/Makefile.dep
>>> /para3/dsong/dftb+_1.0.1_src/prg_dftb/../includes/Makefile.dep
>>> /para3/dsong/dftb+_1.0.1_src/prg_dftb/../ext_xmlf90/Makefile.dep
>>> /para3/dsong/dftb+_1.0.1_src/prg_dftb/Makefile.dep
>>> /para3/dsong/dftb+_1.0.1_src/prg_dftb/../lib_math/Makefile.local; do cpp
>>> -traditional -DDEBUG=0 $dep >> _dependencies; done
>>> make[1]: Leaving directory
>>> `/para3/dsong/dftb+_1.0.1_src/prg_dftb/_obj_i686-linux-ifort'
>>> make[1]: Entering directory
>>> `/para3/dsong/dftb+_1.0.1_src/prg_dftb/_obj_i686-linux-ifort'
>>> cpp -traditional -DDEBUG=0
>>> -I/para3/dsong/dftb+_1.0.1_src/prg_dftb/../lib_common/
>>> -I/para3/dsong/dftb+_1.0.1_src/prg_dftb/../includes
>>> /para3/dsong/dftb+_1.0.1_src/prg_dftb/../lib_common/allocate.F90 |
>>> /para3/dsong/dftb+_1.0.1_src/prg_dftb/../utils/fpp/fpp.sh nocntln >
>>> allocate.f90
>>> ifort -O2 -xW -ip -o allocate.o -c allocate.f90
>>> *make[1]: ifort: Command not found*
>>> make[1]: *** [allocate.o] Error 127
>>> rm allocate.f90
>>> make[1]: Leaving directory
>>> `/para3/dsong/dftb+_1.0.1_src/prg_dftb/_obj_i686-linux-ifort'
>>> *make: *** [_obj_i686-linux-ifort] Error 2*
>>>
>>> Here is what I have done to complie dftb-plus:
>>>
>>> Firstly, I unpacked the package "dftb-plus_1.0.1_src". After finding
>>> that make.i686-linux-ifort exists in the sysmakes, I copied
>>> Makefile.user.template to Makefile.user.
>>> I modified it as following:
>>>
>>> ## Set alternative path for the autotest directory
>>> #PRGDFTB_TESTDIR = $(ROOT)/../autotest
>>>
>>> ## Set alternative file containing the name of the tests to run
>>> #PRGDFTB_TESTFILE = $(PRGDFTB_TESTDIR)/tests
>>>
>>> ## Change directory, where the _obj* directory for the object files is
>>> created
>>> #OBJDIR_PARENT =
>>>
>>> ## Change suffix after '_obj' for the object directory name
>>> #OBJDIR_SUFFIX = _i686-linux-ifort
>>>
>>> ## Set directory, where binary should be copied when issuing 'make install'
>>> #INSTALLDIR = .
>>>
>>>
>>> ## Uncomment to keep intermediate files in OBJDIR (for debug only!)
>>> #.PRECIOUS: %.f90 %.F %.f %.c
>>>
>>> Then I entered prg_dftb and typed "make distclean" and "rm -rf
>>> ./_obj_i686-linux-ifort" shows. Finally, I typed "make", the error
>>> report presented above appears.
>>>
>>> Is there anything wrong I did to compile dftb-plus? And how can I
>>> compile it successfully? This email may be a liitle long. Thank you very
>>> much for your time reading it and thank you very much for your great
>>> help! I am grateful for any answer to it!
>>>
>>> Best wishes!
>>>
>>> Yours sincerely,
>>> Duo Song
>>>
>>>
>>> --
>>> SONG Duo
>>> Undergraduate Student
>>>
>>> Department of Materials Science and Engineering
>>> University of Science and Technology of China
>>>
>>>       
>> --
>>      Dr. B. Hourahine, SUPA, Department of Physics,
>>    University of Strathclyde, John Anderson Building,
>>           107 Rottenrow, Glasgow G4 0NG, UK.
>>     +44 141 548 2325, benjamin.hourahine at strath.ac.uk
>>    The University of Strathclyde is a charitable body,
>> registered in Scotland, with registration number SC015263
>>
>> _______________________________________________
>> DFTB-Plus-User mailing list
>> DFTB-Plus-User at dftb-plus.info
>> http://www.dftb-plus.info/mailman/listinfo/dftb-plus-user
>>
>>     
>
>
>
> ----------------------------------------------------------------
> This message was sent using IMP, the Internet Messaging Program.
> _______________________________________________
> DFTB-Plus-User mailing list
> DFTB-Plus-User at dftb-plus.info
> http://www.dftb-plus.info/mailman/listinfo/dftb-plus-user
>   


-- 
     Dr. B. Hourahine, SUPA, Department of Physics,
   University of Strathclyde, John Anderson Building,
          107 Rottenrow, Glasgow G4 0NG, UK.
    +44 141 548 2325, benjamin.hourahine at strath.ac.uk
   The University of Strathclyde is a charitable body,
registered in Scotland, with registration number SC015263




More information about the DFTB-Plus-User mailing list