<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p><b>tcsh solution</b></p>
    <p>If this solution is adopted, I suggest only changing the
      siteconfig_lapw script with csh to tcsh.<br>
    </p>
    <p>Advantages:</p>
    <p>1. Simple KISS solution of changing csh to tcsh</p>
    <p>2. Developers (e.g. [1]) using csh symbolic link to tcsh do not
      introduce tcsh code into a csh script<br>
    </p>
    <p>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].<br>
    </p>
    <p>Disadvantages:</p>
    <p>1. On Linux systems with only csh installed as part of the
      default installation, the install script will not work until tcsh
      is installed<br>
    </p>
    <p>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.<br>
    </p>
    <p><b>csh solution</b></p>
    <p>Advantages:</p>
    <p>1. For Linux systems with only csh installed as part of the
      default installation, siteconfig_lapw should work as it has in the
      past<br>
    </p>
    <p>Disadvantages:<br>
    </p>
    <p>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.</p>
    <p>There currently are four places in siteconfig_lapw of WIEN2k 19.1
      with execution of update_makefiles [8].</p>
    <p>Change lines:</p>
    <p>update_makefiles</p>
    <p>to</p>
    update_makefiles01<br>
    update_makefiles02
    <p>Then, breaking the 'alias update_makefiles' into two different
      alias while using a Makefile.tmp1 file seems to work:<br>
    </p>
    <p>alias update_makefiles01 'sed -e "s^_FOPT_^$FOPT^" <
      Makefile.orig |\\<br>
       sed -e "s^_FOPT_^$FOPT^" |\\<br>
       sed -e "s^_FPOPT_^$FPOPT^" |\\<br>
       sed -e "s^_OMP_SWITCH_^$OMP_SWITCH^" |\\<br>
       sed -e "s^_LDFLAGS_^$LDFLAGS^" |\\<br>
       sed -e "s^_DPARALLEL_^$DPARALLEL^" |\\<br>
       sed -e "s^_R_LIBS_^$R_LIBS^" |\\<br>
       sed -e "s^_RP_LIBS_^$RP_LIBS^" |\\<br>
       sed -e "s^_SCALAPACKROOT_^$SCALAPACKROOT^" |\\<br>
       sed -e "s^_SCALAPACK_LIBNAME_^$SCALAPACK_LIBNAME^" |\\<br>
       sed -e "s^_BLACSROOT_^$BLACSROOT^" |\\<br>
       sed -e "s^_BLACS_LIBNAME_^$BLACS_LIBNAME^" |\\<br>
       sed -e "s^_MKL_TARGET_ARCH_^$MKL_TARGET_ARCH^" |\\<br>
       sed -e "s^_LIBXCROOT_^$LIBXCROOT^" |\\<br>
       sed -e "s^_LIBXC_LIBNAME_^$LIBXC_LIBNAME^" |\\<br>
       sed -e "s^_LIBXC_LIBDNAME_^$LIBXC_LIBDNAME^" |\\<br>
       sed -e "s^_LIBXC_FORTRAN_^$LIBXC_FORTRAN^" |\\<br>
       sed -e "s^_FFTW_VERSION_^$FFTW_VERSION^"> Makefile.tmp1'<br>
      alias update_makefiles02 'sed -e "s^_FFTWROOT_^$FFTWROOT^" <
      Makefile.tmp1 |\\<br>
       sed -e "s^_FFTW_LIB_^$FFTW_LIB^" |\\<br>
       sed -e "s^_FFTW_LIBNAME_^$FFTW_LIBNAME^" |\\<br>
       sed -e "s^_ELPAROOT_^$ELPAROOT^" |\\<br>
       sed -e "s^_ELPA_VERSION_^$ELPA_VERSION^" |\\<br>
       sed -e "s^_ELPA_LIB_^$ELPA_LIB^" |\\<br>
       sed -e "s^_ELPA_LIBNAME_^$ELPA_LIBNAME^" |\\<br>
       sed -e "s^_FC_^$f77^" |\\<br>
       sed -e "s^_MPF_^$MPF^" |\\<br>
       sed -e "s^_CC_^$c77^"> Makefile'<br>
    </p>
    <p>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.</p>
    <p>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.<br>
    </p>
    alias update_makefiles 'cp Makefile.orig Makefile.tmp1; \\<br>
    foreach i (FOPT FPOPT OMP_SWITCH \\<br>
    LDFLAGS LDFLAGS DPARALLEL R_LIBS \\<br>
    R_LIBS RP_LIBS SCALAPACKROOT SCALAPACK_LIBNAME \\<br>
    BLACSROOT BLACS_LIBNAME MKL_TARGET_ARCH \\<br>
    LIBXCROOT LIBXC_LIBNAME LIBXC_FORTRAN FFTW_VERSION \\ <br>
    FFTW_LIB FFTW_LIBNAME ELPAROOT ELPA_VERSION \\<br>
    ELPA_LIB ELPA_LIBNAME FC MPF CC) \\<br>
    sed -e "s^_$i_^$i^" Makefile.tmp1 > Makefile.tmp2 \\<br>
    mv Makefile.tmp2 Makefile.tmp1 \\<br>
    end; \\<br>
    cp Makefile.tmp1 Makefile'
    <p>[1]
<a class="moz-txt-link-freetext" href="https://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/msg16028.html">https://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/msg16028.html</a><br>
    </p>
    <p>[2]</p>
    <p><a class="moz-txt-link-abbreviated" href="mailto:username@computername:~/WIEN2k19.1$">username@computername:~/WIEN2k19.1$</a> grep -R /bin/tcsh *<br>
      oldvec2vec:#!/bin/tcsh -f<br>
      oldvec2vec_lapw:#!/bin/tcsh -f<br>
      opticcopy:#!/bin/tcsh -f<br>
      opticcopy_lapw:#!/bin/tcsh -f<br>
      qsub-job0-sge:#!/bin/tcsh<br>
      qsub-job0-sge:#$ -S /bin/tcsh<br>
      qsub-job0-sge_lapw:#!/bin/tcsh<br>
      qsub-job0-sge_lapw:#$ -S /bin/tcsh<br>
      SRC/vec2old_lapw:#!/bin/tcsh -f<br>
      SRC/vec2pratt_lapw:#!/bin/tcsh -f<br>
      SRC/qsub-job0-sge_lapw:#!/bin/tcsh<br>
      SRC/qsub-job0-sge_lapw:#$ -S /bin/tcsh<br>
      SRC/oldvec2vec_lapw:#!/bin/tcsh -f<br>
      SRC/opticcopy_lapw:#!/bin/tcsh -f<br>
      SRC_structeditor/bin/xncm:#!/bin/tcsh -f<br>
      SRC_structeditor/install:#!/bin/tcsh -f<br>
      Binary file SRC_structeditor.tar matches<br>
      Binary file SRC.tar matches<br>
      SRC_vecpratt/vec2pratt_lapw:#!/bin/tcsh -f<br>
      Binary file SRC_vecpratt.tar matches<br>
      vec2old:#!/bin/tcsh -f<br>
      vec2old_lapw:#!/bin/tcsh -f<br>
      vec2pratt:#!/bin/tcsh -f<br>
      vec2pratt_lapw:#!/bin/tcsh -f</p>
    <p>[3]
<a class="moz-txt-link-freetext" href="https://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/msg14969.html">https://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/msg14969.html</a></p>
    <p>[4]
<a class="moz-txt-link-freetext" href="https://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/msg17845.html">https://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/msg17845.html</a></p>
    <p>[5]
<a class="moz-txt-link-freetext" href="https://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/msg11180.html">https://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/msg11180.html</a></p>
    <p>[6]
<a class="moz-txt-link-freetext" href="https://www.mail-archive.com/wien%40zeus.theochem.tuwien.ac.at/msg10649.html">https://www.mail-archive.com/wien%40zeus.theochem.tuwien.ac.at/msg10649.html</a></p>
    <p>[7]
<a class="moz-txt-link-freetext" href="https://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/msg17846.html">https://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/msg17846.html</a></p>
    <p>[8] <br>
    </p>
    <p><a class="moz-txt-link-abbreviated" href="mailto:username@computername:~/WIEN2k19.1$">username@computername:~/WIEN2k19.1$</a> grep update_makefiles
      siteconfig_lapw<br>
      alias update_makefiles 'sed -e "s^_FOPT_^$FOPT^" <
      Makefile.orig |\\<br>
               update_makefiles<br>
            update_makefiles<br>
              update_makefiles<br>
              update_makefiles</p>
    <p>[9]
<a class="moz-txt-link-freetext" href="https://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/msg18732.html">https://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/msg18732.html</a><br>
    </p>
    <div class="moz-cite-prefix">On 6/14/2019 1:25 AM, Peter Blaha
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:55cdfe1c-9e36-2a00-7f15-af3bb16da5c3@theochem.tuwien.ac.at">I'm
      aware of the basic problem.
      <br>
      <br>
      The point is:
      <br>
      <br>
      Ubuntu (any other Linux system ??) does not set this link making
      csh and tcsh the same.
      <br>
      <br>
      Should we therefore change all scripts to /bin/tcsh   ???
      <br>
      <br>
      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) ?
      <br>
      <br>
      If all Linux (Mac !!! ???) systems understand /bin/tcsh, this
      change would be fine with me.
      <br>
      <br>
      Any response from "Linux gurus" with experience with different
      Linux versions (I only have Suse and Redhat) would be appreciated.
      <br>
      <br>
      Peter
      <br>
    </blockquote>
  </body>
</html>