[Wien] WIEN2k Version 19.1
Peter Blaha
pblaha at theochem.tuwien.ac.at
Tue Jun 18 10:23:12 CEST 2019
For the next release we will prepare a script like:
check_minimal_software_requirements.sh, which will be a bash script and
thus should run everywhere, because it seems that on some systems not
even a csh is installed by default.
It will check for tcsh and either instructs the user to install a tcsh,
or set the path properly in all *_lapw scripts.
It will also check for ifort/mkl or gfortran/OpenBlas as minimal
requirements to install the sequential version of wien2k.
I do NOT intend to check for more sophisticated requirements except
maybe GNU Make, since this might also not be installed on some
"Mickey-mouse Linux" ??
On 6/15/19 7:39 PM, Gavin Abo wrote:
> *tcsh solution*
>
> If this solution is adopted, I suggest only changing the siteconfig_lapw
> script with csh to tcsh.
>
> Advantages:
>
> 1. Simple KISS solution of changing csh to tcsh
>
> 2. Developers (e.g. [1]) using csh symbolic link to tcsh do not
> introduce tcsh code into a csh script
>
> 3. WIEN2k contains a few tcsh scripts [2], which have been there since
> at least 2016 [3]. Perhaps it is better for users that an uninstall
> tcsh problem is noticed earlier [4] and not later during running of the
> the program were it might be overlooked [5,6].
>
> Disadvantages:
>
> 1. On Linux systems with only csh installed as part of the default
> installation, the install script will not work until tcsh is installed
>
> 2. The /bin/tcsh path might be different between Linux distributions
> (e.g., /usr/bin/tcsh [7]). As I think was previously mentioned,
> siteconfig script likely could be updated in the future so a user can
> enter a path and have the scripts updated with the path so that users do
> not have to do it manually similar to what siteconfig_lapw does for perl
> or rsh/ssh.
>
> *csh solution*
>
> Advantages:
>
> 1. For Linux systems with only csh installed as part of the default
> installation, siteconfig_lapw should work as it has in the past
>
> Disadvantages:
>
> 1. I think I came up with a simple solution that might work, but it may
> be less convenient for software maintenance since if the number of sed
> lines grows, then additional alias and update_makefilesN lines need to
> be made.
>
> There currently are four places in siteconfig_lapw of WIEN2k 19.1 with
> execution of update_makefiles [8].
>
> Change lines:
>
> update_makefiles
>
> to
>
> update_makefiles01
> update_makefiles02
>
> Then, breaking the 'alias update_makefiles' into two different alias
> while using a Makefile.tmp1 file seems to work:
>
> alias update_makefiles01 'sed -e "s^_FOPT_^$FOPT^" < Makefile.orig |\\
> sed -e "s^_FOPT_^$FOPT^" |\\
> sed -e "s^_FPOPT_^$FPOPT^" |\\
> sed -e "s^_OMP_SWITCH_^$OMP_SWITCH^" |\\
> sed -e "s^_LDFLAGS_^$LDFLAGS^" |\\
> sed -e "s^_DPARALLEL_^$DPARALLEL^" |\\
> sed -e "s^_R_LIBS_^$R_LIBS^" |\\
> sed -e "s^_RP_LIBS_^$RP_LIBS^" |\\
> sed -e "s^_SCALAPACKROOT_^$SCALAPACKROOT^" |\\
> sed -e "s^_SCALAPACK_LIBNAME_^$SCALAPACK_LIBNAME^" |\\
> sed -e "s^_BLACSROOT_^$BLACSROOT^" |\\
> sed -e "s^_BLACS_LIBNAME_^$BLACS_LIBNAME^" |\\
> sed -e "s^_MKL_TARGET_ARCH_^$MKL_TARGET_ARCH^" |\\
> sed -e "s^_LIBXCROOT_^$LIBXCROOT^" |\\
> sed -e "s^_LIBXC_LIBNAME_^$LIBXC_LIBNAME^" |\\
> sed -e "s^_LIBXC_LIBDNAME_^$LIBXC_LIBDNAME^" |\\
> sed -e "s^_LIBXC_FORTRAN_^$LIBXC_FORTRAN^" |\\
> sed -e "s^_FFTW_VERSION_^$FFTW_VERSION^"> Makefile.tmp1'
> alias update_makefiles02 'sed -e "s^_FFTWROOT_^$FFTWROOT^" <
> Makefile.tmp1 |\\
> sed -e "s^_FFTW_LIB_^$FFTW_LIB^" |\\
> sed -e "s^_FFTW_LIBNAME_^$FFTW_LIBNAME^" |\\
> sed -e "s^_ELPAROOT_^$ELPAROOT^" |\\
> sed -e "s^_ELPA_VERSION_^$ELPA_VERSION^" |\\
> sed -e "s^_ELPA_LIB_^$ELPA_LIB^" |\\
> sed -e "s^_ELPA_LIBNAME_^$ELPA_LIBNAME^" |\\
> sed -e "s^_FC_^$f77^" |\\
> sed -e "s^_MPF_^$MPF^" |\\
> sed -e "s^_CC_^$c77^"> Makefile'
>
> Though, Prof. Marks' solution to change "alias update_makefiles" to a
> loop might work better [9]. It would likely take more adjustment and
> testing to get that right, though.
>
> I'm thinking the code to do that would be similar to following, but I'm
> missing some code like an if statement to handle the FC and CC cases
> which are unique in that they use $f77 and $c77 for the sed replacement,
> respectively.
>
> alias update_makefiles 'cp Makefile.orig Makefile.tmp1; \\
> foreach i (FOPT FPOPT OMP_SWITCH \\
> LDFLAGS LDFLAGS DPARALLEL R_LIBS \\
> R_LIBS RP_LIBS SCALAPACKROOT SCALAPACK_LIBNAME \\
> BLACSROOT BLACS_LIBNAME MKL_TARGET_ARCH \\
> LIBXCROOT LIBXC_LIBNAME LIBXC_FORTRAN FFTW_VERSION \\
> FFTW_LIB FFTW_LIBNAME ELPAROOT ELPA_VERSION \\
> ELPA_LIB ELPA_LIBNAME FC MPF CC) \\
> sed -e "s^_$i_^$i^" Makefile.tmp1 > Makefile.tmp2 \\
> mv Makefile.tmp2 Makefile.tmp1 \\
> end; \\
> cp Makefile.tmp1 Makefile'
>
> [1]
> https://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/msg16028.html
>
> [2]
>
> username at computername:~/WIEN2k19.1$ grep -R /bin/tcsh *
> oldvec2vec:#!/bin/tcsh -f
> oldvec2vec_lapw:#!/bin/tcsh -f
> opticcopy:#!/bin/tcsh -f
> opticcopy_lapw:#!/bin/tcsh -f
> qsub-job0-sge:#!/bin/tcsh
> qsub-job0-sge:#$ -S /bin/tcsh
> qsub-job0-sge_lapw:#!/bin/tcsh
> qsub-job0-sge_lapw:#$ -S /bin/tcsh
> SRC/vec2old_lapw:#!/bin/tcsh -f
> SRC/vec2pratt_lapw:#!/bin/tcsh -f
> SRC/qsub-job0-sge_lapw:#!/bin/tcsh
> SRC/qsub-job0-sge_lapw:#$ -S /bin/tcsh
> SRC/oldvec2vec_lapw:#!/bin/tcsh -f
> SRC/opticcopy_lapw:#!/bin/tcsh -f
> SRC_structeditor/bin/xncm:#!/bin/tcsh -f
> SRC_structeditor/install:#!/bin/tcsh -f
> Binary file SRC_structeditor.tar matches
> Binary file SRC.tar matches
> SRC_vecpratt/vec2pratt_lapw:#!/bin/tcsh -f
> Binary file SRC_vecpratt.tar matches
> vec2old:#!/bin/tcsh -f
> vec2old_lapw:#!/bin/tcsh -f
> vec2pratt:#!/bin/tcsh -f
> vec2pratt_lapw:#!/bin/tcsh -f
>
> [3]
> https://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/msg14969.html
>
> [4]
> https://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/msg17845.html
>
> [5]
> https://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/msg11180.html
>
> [6]
> https://www.mail-archive.com/wien%40zeus.theochem.tuwien.ac.at/msg10649.html
>
> [7]
> https://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/msg17846.html
>
> [8]
>
> username at computername:~/WIEN2k19.1$ grep update_makefiles siteconfig_lapw
> alias update_makefiles 'sed -e "s^_FOPT_^$FOPT^" < Makefile.orig |\\
> update_makefiles
> update_makefiles
> update_makefiles
> update_makefiles
>
> [9]
> https://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/msg18732.html
>
> On 6/14/2019 1:25 AM, Peter Blaha wrote:
>> I'm aware of the basic problem.
>>
>> The point is:
>>
>> Ubuntu (any other Linux system ??) does not set this link making csh
>> and tcsh the same.
>>
>> Should we therefore change all scripts to /bin/tcsh ???
>>
>> Would there be some Linux systems where this would introduce problems
>> (with their default installations), for instance because a tcsh is NOT
>> installed by default (while a csh is) ?
>>
>> If all Linux (Mac !!! ???) systems understand /bin/tcsh, this change
>> would be fine with me.
>>
>> Any response from "Linux gurus" with experience with different Linux
>> versions (I only have Suse and Redhat) would be appreciated.
>>
>> Peter
>
> _______________________________________________
> Wien mailing list
> Wien at zeus.theochem.tuwien.ac.at
> http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien
> SEARCH the MAILING-LIST at: http://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/index.html
>
--
P.Blaha
--------------------------------------------------------------------------
Peter BLAHA, Inst.f. Materials Chemistry, TU Vienna, A-1060 Vienna
Phone: +43-1-58801-165300 FAX: +43-1-58801-165982
Email: blaha at theochem.tuwien.ac.at WIEN2k: http://www.wien2k.at
WWW: http://www.imc.tuwien.ac.at/TC_Blaha
--------------------------------------------------------------------------
More information about the Wien
mailing list