diff --git a/CPV/Doc/INPUT_CP.html b/CPV/Doc/INPUT_CP.html index cdef26458d..adc5e51370 100644 --- a/CPV/Doc/INPUT_CP.html +++ b/CPV/Doc/INPUT_CP.html @@ -46,7 +46,7 @@

Input File Description

Program: - cp.x / CP / Quantum Espresso (version: svn) + cp.x / CP / Quantum Espresso (version: 6.4)

@@ -586,7 +586,8 @@

TABLE OF CONTENTS

-'small': memory-saving tricks are implemented. Currently:
+'small': NO LONGER IMPLEMENTED SINCE v.6.3
+         memory-saving tricks are implemented. Currently:
          - the G-vectors are sorted only locally, not globally
          - they are not collected and written to file
          For large systems, the memory and time gain is sizable
@@ -3938,7 +3939,7 @@ 

Description of items:

- This file has been created by helpdoc utility on Tue Oct 23 15:42:16 CEST 2018. + This file has been created by helpdoc utility on Fri Mar 01 17:56:47 CET 2019. diff --git a/CPV/Doc/INPUT_CP.txt b/CPV/Doc/INPUT_CP.txt index 8e78b67d36..c37cb9196e 100644 --- a/CPV/Doc/INPUT_CP.txt +++ b/CPV/Doc/INPUT_CP.txt @@ -3,7 +3,7 @@ ------------------------------------------------------------------------ INPUT FILE DESCRIPTION -Program: cp.x / CP / Quantum Espresso (version: svn) +Program: cp.x / CP / Quantum Espresso (version: 6.4) ------------------------------------------------------------------------ @@ -311,7 +311,8 @@ NAMELIST: &CONTROL Type: CHARACTER Default: 'default' - Description: 'small': memory-saving tricks are implemented. Currently: + Description: 'small': NO LONGER IMPLEMENTED SINCE v.6.3 + memory-saving tricks are implemented. Currently: - the G-vectors are sorted only locally, not globally - they are not collected and written to file For large systems, the memory and time gain is sizable @@ -2490,4 +2491,4 @@ CARD: AUTOPILOT ===END OF CARD========================================================== -This file has been created by helpdoc utility on Tue Oct 23 15:42:16 CEST 2018 +This file has been created by helpdoc utility on Fri Mar 01 17:56:47 CET 2019 diff --git a/CPV/Doc/INPUT_CPPP.html b/CPV/Doc/INPUT_CPPP.html index 11f44456fe..b9903d0d6e 100644 --- a/CPV/Doc/INPUT_CPPP.html +++ b/CPV/Doc/INPUT_CPPP.html @@ -46,7 +46,7 @@

Input File Description

Program: - cppp.x / CP / Quantum Espresso (version: svn) + cppp.x / CP / Quantum Espresso (version: 6.4)

@@ -406,7 +406,7 @@

TABLE OF CONTENTS

- This file has been created by helpdoc utility on Fri Jun 22 17:11:00 CEST 2018. + This file has been created by helpdoc utility on Fri Mar 01 17:56:48 CET 2019. diff --git a/CPV/Doc/INPUT_CPPP.txt b/CPV/Doc/INPUT_CPPP.txt index edf8d3b87a..cc5ca306bc 100644 --- a/CPV/Doc/INPUT_CPPP.txt +++ b/CPV/Doc/INPUT_CPPP.txt @@ -3,7 +3,7 @@ ------------------------------------------------------------------------ INPUT FILE DESCRIPTION -Program: cppp.x / CP / Quantum Espresso (version: svn) +Program: cppp.x / CP / Quantum Espresso (version: 6.4) ------------------------------------------------------------------------ @@ -225,4 +225,4 @@ NAMELIST: &INPUTPP ===END OF NAMELIST====================================================== -This file has been created by helpdoc utility on Fri Jun 22 17:10:59 CEST 2018 +This file has been created by helpdoc utility on Fri Mar 01 17:56:48 CET 2019 diff --git a/CPV/Doc/Makefile b/CPV/Doc/Makefile index b44c40588f..15c0141c71 100644 --- a/CPV/Doc/Makefile +++ b/CPV/Doc/Makefile @@ -1,4 +1,4 @@ -VERSION = svn +VERSION = git HELPDOC = ../../dev-tools/helpdoc -version $(VERSION) LATEX = pdflatex LATEX2HTML = latex2html diff --git a/CPV/Doc/user_guide.pdf b/CPV/Doc/user_guide.pdf index 4f45b5f14a..e156b277c6 100644 Binary files a/CPV/Doc/user_guide.pdf and b/CPV/Doc/user_guide.pdf differ diff --git a/CPV/Doc/user_guide.tex b/CPV/Doc/user_guide.tex index 93c54ffe49..90ce24a2a8 100644 --- a/CPV/Doc/user_guide.tex +++ b/CPV/Doc/user_guide.tex @@ -1,5 +1,5 @@ \documentclass[12pt,a4paper]{article} -\def\version{6.3} +\def\version{6.4} \def\qe{{\sc Quantum ESPRESSO}} \usepackage{html} @@ -124,16 +124,18 @@ \section{Compilation} As a final check that compilation was successful, you may want to run some or all of the tests -and examples. Please see the general User's Guide for their setup. Automated tests for \cpx\ are in directory -\texttt{tests/} and can be run via the -script \texttt{check\_cp.x.j} +and examples. +Automated tests for \cpx\ are in directory +\texttt{test-suite/} and can be run via the +\texttt{Makefile} found there. +Please see the general User's Guide for their setup. You may take the tests and examples distributed with \CP\ as templates for writing your own input -files. Input files for tests are contained -in \texttt{tests/} subdirectory with file type -\texttt{*.in1}, \texttt{*.in2}, ... . Input file for examples -are produced if you run the examples in the +files. Input files for tests are contained in +subdirectories \texttt{test-suite/cp\_*} with file type +\texttt{*.in1}, \texttt{*.in2}, ... . Input files for examples +are produced, if you run the examples, in the \texttt{results/} subdirectories, with names ending with \texttt{.in}. diff --git a/Doc/Makefile b/Doc/Makefile index a38063c477..7745f465c3 100644 --- a/Doc/Makefile +++ b/Doc/Makefile @@ -21,43 +21,51 @@ clean: - rm -f INPUT_*.html INPUT_*.txt INPUT_*.xml qe-input-ref.html developer_man: developer_man.pdf - rm -rf developer_man/ - latex2html \ + - rm -rf developer_man/ + - latex2html \ -t "Developer's Manual for Quantum-ESPRESSO" \ -html_version 3.2,math \ -toc_depth 3 -split 3 -toc_stars -show_section_numbers \ -local_icons -image_type png \ developer_man.tex - cd developer_man; \ - for file in *.html; do \ - cp $$file /tmp/$$file; \ - cat /tmp/$$file | sed 's/HREF="http/NAME="http/g' | sed 's/mathend000#//g' - > $$file; \ - rm -f /tmp/$$file; \ - done - @echo "" - @echo "***" - @echo "*** Developer's Manual created in developers_manual/developers_manual.html" - @echo "***" - @echo "" + if test -d developer_man; then \ + cd developer_man; \ + for file in *.html; do \ + cp $$file /tmp/$$file; \ + cat /tmp/$$file | sed 's/HREF="http/NAME="http/g' | sed 's/mathend000#//g' - > $$file; \ + rm -f /tmp/$$file; \ + done; \ + fi + @if test -d developer_man; then \ + echo ""; \ + echo "***"; \ + echo "*** Developer's Manual created in developers_manual/developers_manual.html"; \ + echo "***"; \ + echo ""; \ + fi user_guide: user_guide.pdf - rm -rf user_guide/ - latex2html \ + - rm -rf user_guide/ + - latex2html \ -t "User's Guide for Quantum-ESPRESSO" \ -html_version 3.2,math \ -toc_depth 5 -split 5 -toc_stars -show_section_numbers \ -local_icons -image_type png \ user_guide.tex - cd user_guide; \ - for file in *.html; do \ - cp $$file /tmp/$$file; \ - cat /tmp/$$file | sed 's/HREF="http/NAME="http/g' | sed 's/mathend000#//g' - > $$file; \ - rm -f /tmp/$$file; \ - done - @echo "" - @echo "***" - @echo "*** User's Guide created in user_guide/user_guide.html" - @echo "***" - @echo "" + if test -d user_guide; then \ + cd user_guide; \ + for file in *.html; do \ + cp $$file /tmp/$$file; \ + cat /tmp/$$file | sed 's/HREF="http/NAME="http/g' | sed 's/mathend000#//g' - > $$file; \ + rm -f /tmp/$$file; \ + done; \ + fi + @if test -d user_guide; then \ + echo ""; \ + echo "***"; \ + echo "*** User's Guide created in user_guide/user_guide.html"; \ + echo "***"; \ + echo ""; \ + fi brillouin_zones: brillouin_zones.pdf diff --git a/Doc/release-notes b/Doc/release-notes index aa42774bc7..d893a6bf63 100644 --- a/Doc/release-notes +++ b/Doc/release-notes @@ -1,13 +1,10 @@ New in version 6.4: - * Experimental and specific for gamma_only case: specifing nscdm the SCDM localization is performed - only for iterations multiples of nscdm, in the intermediate iterations the localized orbitals are - derived with parallel transport from the last SCDM localization. - * Added experimental version of SCDM localization with many K_POINTS. The calculation using SCDM - is set as in the gamma-only case just specifing localization_thr to any value greater than 0 in - the system namelist. - * It is now possible to limit the number of xml step elements printed out for relaxation or - molecular dynamics simulation setting the envinroment variable MAX_XML_STEPS, useful in case - of very long trajectories to avoid issues due to too large file size. + * Experimental version of SCDM localization with k-points, activated like for + k=0 by specifying in &system namelist a value > 0 for "localization_thr". + * It is now possible to limit the number of xml step elements printed out + for relaxation or molecular dynamics simulation, by setting the environment + variable MAX_XML_STEPS. Useful in case of very long trajectories to avoid + issues due to too large file size. * EPW works with ultrasoft pseudopotentials (F. Giustino, S. Poncé, R. Margine) * New code hp.x to compute Hubbard parameters using density-functional perturbation theory (experimental stage) (I. Timrov, N. Marzari, and M. Cococcioni, @@ -19,7 +16,7 @@ New in version 6.4: and M. Cococcioni, in preparation) * XDM now works also for USPP and norm-conserving PP -Problems fixed in development version (+ = in qe-6.3-backports as well) : +Problems fixed in version 6.4 (+ = in qe-6.3-backports as well) : + index not correctly initialized in LSDA phonon with core corrections + GTH pseudopotentials in analytical form wrongly computed in some cases + projwfc.x not working with new xml format in noncolinear/spinorbit case @@ -40,7 +37,7 @@ Problems fixed in development version (+ = in qe-6.3-backports as well) : pseudopotentials was not working. + bad format in upf%comment when writing the PP_INFO section of UPF v2 PPs -Incompatible changes in development version: +Incompatible changes in version 6.4 version: * Charge density in the LSDA case is stored as (up+down, up-down) and no longer as (up,down). Output data format is unchanged to (up+down, up-down) * Non-symmorphic operations are always allowed and the FFT grid is made @@ -56,7 +53,7 @@ Incompatible changes in development version: variables of turbo_lanczos.x and turbo_davidson.x. Instead, they are read from the XML file produced by pw.x. The variable real_space_debug was removed. -Known problems in development version: +Known problems in version 6.4: * Frequent "dexx is negative" errors with hybrid functionals New in 6.3 version: diff --git a/Doc/user_guide.pdf b/Doc/user_guide.pdf index 8204e63560..6b5adaec59 100644 Binary files a/Doc/user_guide.pdf and b/Doc/user_guide.pdf differ diff --git a/EPW/Makefile b/EPW/Makefile index d81f15a28d..63e59e31b3 100644 --- a/EPW/Makefile +++ b/EPW/Makefile @@ -21,7 +21,6 @@ release: rm -rf examples/*/epw/out/* examples/*/epw/tmp/* \ examples/*/phonons/out/* examples/*/phonons/tmp/* \ examples/*/phonons/save/* ; \ - rm -rf .svn */.svn */*/*.svn */*/*/*.svn */*/*/*/*.svn cd .. ; tar cfz EPW/EPW-release.tgz EPW-release ; \ rm -rf EPW-release ; cd EPW diff --git a/FFTXlib/Makefile b/FFTXlib/Makefile index 5b35d23db5..e4532d313c 100644 --- a/FFTXlib/Makefile +++ b/FFTXlib/Makefile @@ -49,12 +49,4 @@ TEST0: test0.o libqefft.a clean : - /bin/rm -f *.o *.a *.d *.i *~ *_tmp.f90 *.mod *.L -# .PHONY forces execution of a rule irrespective of the presence of an -# updated file with the same name of the rule. In this way, the script -# that generates version.f90 always runs, updating the version if you -# execute "svn update". The update_version script takes care of not -# changing the file if the svn version did not change - -.PHONY: all clean - include make.depend diff --git a/GUI/Makefile b/GUI/Makefile index 0979e253b0..dbcdcc79da 100644 --- a/GUI/Makefile +++ b/GUI/Makefile @@ -3,8 +3,13 @@ sinclude ../make.inc # do nothing by default !!! default: +clean: + - if test -d PWgui ; then ( cd PWgui; $(MAKE) clean ) ; fi + - if test -d QE-modes ; then ( cd QE-modes; $(MAKE) clean ) ; fi + veryclean: - if test -d Guib ; then ( cd Guib; $(MAKE) veryclean ) ; fi - if test -d PWgui ; then ( cd PWgui; $(MAKE) distclean ) ; fi - if test -d QE-modes ; then ( cd QE-modes; $(MAKE) veryclean ) ; fi +distclean: veryclean diff --git a/GUI/PWgui/INSTALL b/GUI/PWgui/INSTALL index b8192b762c..66883f54cf 100644 --- a/GUI/PWgui/INSTALL +++ b/GUI/PWgui/INSTALL @@ -12,7 +12,7 @@ The PWgui package comes in two flavors: (ii) SOURCE PACKAGE -N.B.: for the usage of SVN version of PWgui see file INSTALL.svn +N.B.: for the usage of repository version of PWgui see file INSTALL.repository ________________________________________________________________________ diff --git a/GUI/PWgui/INSTALL.repository b/GUI/PWgui/INSTALL.repository new file mode 100644 index 0000000000..7b43bca815 --- /dev/null +++ b/GUI/PWgui/INSTALL.repository @@ -0,0 +1,25 @@ + + ============================================================================== + * * * INSTALLATION instructions for PWgui as obtained * * * + * * * from the QE repository * * * + ============================================================================== + +This INSTALL.repository file is located in GUI/PWgui/ directory. To +make the PWgui functional do the following: + +Either: + * from the QE root directory call: make gui +Or: + * or from the this directory (i.e. GUI/PWgui) call: make init + + * to run the PWgui program, type from this directory: ./pwgui + +BEWARE: + +To run the "pwgui" you will need the required Tcl-related software. +See the INSTALL file, for the software-requirements of the PWgui +source-package. + + +-- +Anton Kokalj (tone.kokalj@ijs.si), Fri Mar 01 2019 diff --git a/GUI/PWgui/INSTALL.svn b/GUI/PWgui/INSTALL.svn deleted file mode 100644 index aec23a09bf..0000000000 --- a/GUI/PWgui/INSTALL.svn +++ /dev/null @@ -1,28 +0,0 @@ - - ============================================================================== - * * * INSTALLATION instructions for PWgui as obtained * * * - * * * from the QE SVN repository * * * - ============================================================================== - -This INSTALL.svn file is located in GUI/PWgui/ directory. To "install" -the PWgui do the following: - - (i) from GUI/PWgui/ directory call: make svninit - ^^^^^^^^^^^^ - (ii) define the PWGUI environmental variable (optional for versions >= 4.0), - - (iii) add $PWGUI to your path, and - - (iv) to launch the PWgui program, type: pwgui - -BEWARE: - -To run the "pwgui" you will need the required Tcl-related software. -See the INSTALL file, for the software-requirements of the PWgui -source-package. - - - - --- -Anton Kokalj (tone.kokalj@ijs.si), Wed Jun 08 2011 diff --git a/GUI/PWgui/Makefile b/GUI/PWgui/Makefile index f69d4fae9d..17c1e4925b 100644 --- a/GUI/PWgui/Makefile +++ b/GUI/PWgui/Makefile @@ -68,6 +68,7 @@ clean: -rm -f *~ */*~ */*/*~ -rm -f *.tgz -rm -f *.tar + -cd doc/pwdocs; $(MAKE) clean veryclean: $(MAKE) clean @@ -79,7 +80,7 @@ distclean: veryclean -cd lib/; rm -f * cd $(PWGUI_VFS); $(MAKE) distclean -svninit: +init: -cd doc/pwdocs; $(MAKE) -if test ! -d lib; then mkdir lib; fi -cd lib/; rm -f Guib-*; diff --git a/GUI/PWgui/VERSION b/GUI/PWgui/VERSION index c064af48ab..c596943a9f 100644 --- a/GUI/PWgui/VERSION +++ b/GUI/PWgui/VERSION @@ -1 +1 @@ -svn +6.4 diff --git a/GUI/PWgui/doc/pwdocs/Makefile b/GUI/PWgui/doc/pwdocs/Makefile index 56c0b9b538..9127c9b33d 100644 --- a/GUI/PWgui/doc/pwdocs/Makefile +++ b/GUI/PWgui/doc/pwdocs/Makefile @@ -19,7 +19,7 @@ all: input_html make_user_guide links: - ( cd $(TOPDIR); $(MAKE) doc ) + - ( cd $(TOPDIR); $(MAKE) doc ) for file in $(LINK_FILES); do \ if test ! -f $$file; then ln -sf $(QE_DOC_DIR)/$$file . ; fi; \ done @@ -44,19 +44,15 @@ make_user_guide: links rm -rf user_guide/ cp -a $(QE_DOC_DIR)/user_guide . cd user_guide/; \ - for file in *.png; do \ - convert $$file $${file%.png}.gif; \ - rm -f $$file; \ - done; \ for file in *.html; do \ cp $$file /tmp/$$file; \ - cat /tmp/$$file | sed 's/\.png/\.gif/g' - | sed 's/ / /g' - > $$file; \ + cat /tmp/$$file | sed 's/ / /g' - > $$file; \ rm -f /tmp/$$file; \ done clean: clean_links - -rm -f INPUT_*.html *~ + -rm -f INPUT_*.html INPUT_*.txt *~ -rm -f *.tex *.aux *.log *.out *.toc *.gif *.pdf *.png -rm -rf user_guide/ diff --git a/GUI/PWgui/images/pwgui-logo.gif b/GUI/PWgui/images/pwgui-logo.gif index 560cfa1281..6cfd5fd58d 100644 Binary files a/GUI/PWgui/images/pwgui-logo.gif and b/GUI/PWgui/images/pwgui-logo.gif differ diff --git a/GUI/PWgui/images/pwgui-logo.xcf.bz2 b/GUI/PWgui/images/pwgui-logo.xcf.bz2 index 95b076a691..8d40d81432 100644 Binary files a/GUI/PWgui/images/pwgui-logo.xcf.bz2 and b/GUI/PWgui/images/pwgui-logo.xcf.bz2 differ diff --git a/GUI/PWgui/make.usage b/GUI/PWgui/make.usage index f1898c0e56..37a70480e5 100644 --- a/GUI/PWgui/make.usage +++ b/GUI/PWgui/make.usage @@ -8,9 +8,9 @@ If you donwloaded any of the *.tgz package, you do not need to call "make". See INSTALL file instead. -* SVN-related target: +* Repository-related target: - svninit ... initialize the PWgui after it was SVN-downloaded + init ... initialize the PWgui after it was downloaded from repository * Distribution-related targets: diff --git a/GUI/PWgui/modules/dos/dos-event.tcl b/GUI/PWgui/modules/dos/dos-event.tcl new file mode 100644 index 0000000000..f5111cb168 --- /dev/null +++ b/GUI/PWgui/modules/dos/dos-event.tcl @@ -0,0 +1,13 @@ +tracevar bz_sum w { + switch -glob -- [varvalue bz_sum] { + *tetrahedra* { + widget ngauss disable + widget degauss disable + } + default { + widget ngauss enable + widget degauss enable + } + } +} +varset bz_sum -value {} diff --git a/GUI/PWgui/modules/dos/dos-help.tcl b/GUI/PWgui/modules/dos/dos-help.tcl index 8dcb590ee3..84658c8bd8 100644 --- a/GUI/PWgui/modules/dos/dos-help.tcl +++ b/GUI/PWgui/modules/dos/dos-help.tcl @@ -45,6 +45,58 @@ directory containing the input data, i.e. the same as in pw.x } +# ------------------------------------------------------------------------ +help bz_sum -helpfmt helpdoc -helptext { + + +} + + # ------------------------------------------------------------------------ help ngauss -helpfmt helpdoc -helptext {
@@ -877,6 +875,32 @@ with offset determined by k1,k2,k3. } +# ------------------------------------------------------------------------ +help read_dns_bare -helpfmt helpdoc -helptext { + + +} + + # ------------------------------------------------------------------------ help start_irr -helpfmt helpdoc -helptext { @@ -1800,6 +1817,28 @@ In QE =< 5.0.2 it defaulted to nqx1=nqx2=nqx3=1. } +# ------------------------------------------------------------------------ +help localization_thr -helpfmt helpdoc -helptext { + + +} + + # ------------------------------------------------------------------------ help lda_plus_u -helpfmt helpdoc -helptext { @@ -1925,7 +1964,7 @@ help Hubbard_beta -helpfmt helpdoc -helptext {
 Hubbard_beta(i) is the perturbation (on atom i, in eV)
 used to compute J0 with the linear-response method of
-Cococcioni and de Gironcoli, "PRB 71, 35105 (2005)"
+Cococcioni and de Gironcoli, "PRB 71, 035105 (2005)"
 (only for "lda_plus_u_kind"=0). See also
 "PRB 84, 115108 (2011)".
          
@@ -2121,6 +2160,25 @@ For noncollinear calculations only. } +# ------------------------------------------------------------------------ +help lforcet -helpfmt helpdoc -helptext { + + +} + + # ------------------------------------------------------------------------ help constrained_magnetization -helpfmt helpdoc -helptext { @@ -2521,7 +2606,8 @@ help vdw_corr -helpfmt helpdoc -helptext {
  •  Default: 'none'

  •  See: -london_s6, london_rcut, london_c6, london_rvdw, ts_vdw_econv_thr, ts_vdw_isolated, xdm_a1, xdm_a2 +london_s6, london_rcut, london_c6, london_rvdw, +dftd3_version, dftd3_threebody, ts_vdw_econv_thr, ts_vdw_isolated, xdm_a1, xdm_a2

  •  Description:
  • @@ -2532,17 +2618,25 @@ Type of Van der Waals correction. Allowed values:
    'grimme-d2', 'Grimme-D2', 'DFT-D', 'dft-d' :
    -Semiempirical Grimme's DFT-D2.
    -Optional variables: "london_s6", "london_rcut", "london_c6", "london_rvdw",
    +Semiempirical Grimme's DFT-D2. Optional variables:
    +"london_s6", "london_rcut", "london_c6", "london_rvdw"
     S. Grimme, J. Comp. Chem. 27, 1787 (2006), "doi:10.1002/jcc.20495"
     V. Barone et al., J. Comp. Chem. 30, 934 (2009), "doi:10.1002/jcc.21112"
                 
    +
    'grimme-d3', 'Grimme-D3', 'DFT-D3', 'dft-d3' :
    +
    +Semiempirical Grimme's DFT-D3. Optional variables:
    +"dftd3_version", "dftd3_threebody"
    +S. Grimme et al, J. Chem. Phys 132, 154104 (2010), "doi:10.1002/jcc.20495"
    +            
    +
    +
    'TS', 'ts', 'ts-vdw', 'ts-vdW', 'tkatchenko-scheffler' :
     Tkatchenko-Scheffler dispersion corrections with first-principle derived
    -C6 coefficients (implemented in CP only).
    +C6 coefficients.
     Optional variables: "ts_vdw_econv_thr", "ts_vdw_isolated"
     See A. Tkatchenko and M. Scheffler, "PRL 102, 073005 (2009)".
                 
    @@ -2659,6 +2753,50 @@ cutoff radius (a.u.) for dispersion interactions } +# ------------------------------------------------------------------------ +help dftd3_version -helpfmt helpdoc -helptext { + + +} + + +# ------------------------------------------------------------------------ +help dftd3_threebody -helpfmt helpdoc -helptext { + + +} + + # ------------------------------------------------------------------------ help ts_vdw_econv_thr -helpfmt helpdoc -helptext { @@ -3521,11 +3658,32 @@ help tqr -helpfmt helpdoc -helptext {
  •  Description:
  • -If .true., use the real-space algorithm for augmentation
    -charges in ultrasoft pseudopotentials.
    -Must faster execution of ultrasoft-related calculations,
    -but numerically less accurate than the default algorithm.
    -Use with care and after testing!
    +If .true., use a real-space algorithm for augmentation
    +charges of ultrasoft pseudopotentials and PAWsets.
    +Faster but numerically less accurate than the default
    +G-space algorithm. Use with care and after testing!
    +         
    + + +} + + +# ------------------------------------------------------------------------ +help real_space -helpfmt helpdoc -helptext { + @@ -4287,6 +4445,11 @@ Select which of the cell parameters should be moved:
    +
    'ibrav' :
    +
     all axis and angles are moved, but the lattice but be representable with the initial ibrav choice
    +            
    +
    +
    'x' :
     only the x component of axis 1 (v1_x) is moved
                 
    @@ -4341,6 +4504,21 @@ Select which of the cell parameters should be moved:
     as above, keeping the area in xy plane fixed
                 
    +
    +
    'epitaxial_ab' :
    +
     fix axis 1 and 2 while allowing axis 3 to move
    +            
    +
    +
    +
    'epitaxial_ac' :
    +
     fix axis 1 and 3 while allowing axis 2 to move
    +            
    +
    +
    +
    'epitaxial_bc' :
    +
     fix axis 2 and 3 while allowing axis 1 to move
    +            
    +
     BEWARE: if axis are not orthogonal, some of these options do not
             work (symmetry is broken). If you are not happy with them,
    diff --git a/GUI/PWgui/modules/pw/pw.tcl b/GUI/PWgui/modules/pw/pw.tcl
    index de1f7179da..11e83c6d55 100644
    --- a/GUI/PWgui/modules/pw/pw.tcl
    +++ b/GUI/PWgui/modules/pw/pw.tcl
    @@ -16,239 +16,239 @@ module PW -title "PWSCF GUI: module PW.x" -script {
         ########################################################################
     
         page controlPage -name "Control" {
    -	namelist control -name "CONTROL" {
    -	    optional {
    -		#-default  "'PWSCF sample input'"
    -		var title -label "Job Title (title):" -validate string
    -
    -		var calculation {
    -		    -label     "Type of calculation (calculation):"
    -		    -widget    radiobox
    -		    -textvalue {
    -			"Self-Consistent-Field  "
    -			"Non-selfconsistent calculation  "
    -			"Band structure calculation  "
    -			"Ionic relaxation  "
    -			"Ionic relaxation with Variable-Cell  "
    -			"Molecular dynamics  "
    -			"Molecular dynamics with Variable-Cell  "
    -		    }
    -		    -value {
    -			'scf'
    -			'nscf'
    -			'bands'
    -			'relax'
    -			'vc-relax'
    -			'md'
    -			'vc-md'
    -		    }
    -		    -default "Self-Consistent-Field  "
    -		}
    -		
    -		var max_seconds {
    -		    -label    "Maximum CPU time \[in seconds\] (max_seconds):"
    -		    -validate posint
    -		}
    -
    -		var restart_mode {
    -		    -label    "Restart mode (restart_mode):"
    -		    -widget   optionmenu
    -		    -textvalue {
    -			"from scratch  "
    -			"from previous interrupted run  "
    -		    }
    -		    -value {
    -			'from_scratch'
    -			'restart'
    -		    }
    -		}
    -
    -		var wf_collect {
    -		    -label     "Make a single restart file (wf_collect):"
    -		    -widget    radiobox
    -		    -textvalue { Yes No }	      
    -		    -value     { .true. .false. }
    -		}
    -
    -		separator -label "--- Directories/Files/Stdout ---"
    -		
    -		var outdir {
    -		    -label     "Temporary directory (outdir):"
    -		    -widget    entrydirselectquote
    -		    -validate  string
    -		}
    -
    -		var wfcdir {
    -		    -label     "Temp. directory for files generated by each CPU (wfcdir):"
    -		    -widget    entrydirselectquote
    -		    -validate  string
    -		}
    -
    -		var pseudo_dir \
    -		    -label    "Directory containing pseudopotential files (pseudo_dir:)" \
    -		    -widget   [list entrybutton "Directory ..." "::pwscf::pwSelectPseudoDir $this"] \
    -		    -validate  string
    -
    -		var prefix -label "Prefix for I/O filenames (prefix):" -validate  string
    -
    -		var lkpoint_dir {
    -		    -label "Store each k-point in its own subdirectory (lkpoint_dir):"
    -		    -widget    radiobox
    -		    -textvalue { Yes No }	      
    -		    -value     { .true. .false. }
    -		}
    -
    -		var disk_io {
    -		    -label    "Disk Input/Output (disk_io):"
    -		    -textvalue {
    -			high default low minimal none
    -		    }
    -		    -value {
    -			'high' 'default' 'low' 'none'
    -		    }
    -		    -widget optionmenu
    -		}
    -
    -		var verbosity {
    -		    -label     "Verbosity of output (verbosity):"
    -		    -widget    optionmenu
    -		    -textvalue {
    -			high
    -			default
    -			low
    -			minimal
    -		    }
    -		    -value {
    -			'high'
    -			'default'
    -			'low'
    -			'minimal'
    -		    }
    -		}
    -
    -		var iprint {
    -		    -label   "Interval (in SCF iterations) for printing band energies (iprint):"
    -		    -widget   spinint
    -		    -validate nonnegint
    -		}
    -
    -		separator -label "--- Ionic Minimization ---"
    -
    -		#-text     "threshold on total energy for ionic minimization"
    -		var etot_conv_thr {
    -		    -label    "Convergence energy threshold \[in Ry\] (etot_conv_thr):"
    -		    -validate fortranposreal
    -		}
    -
    -		#-text     "Convergence threshold on forces for ionic minimization"
    -		var forc_conv_thr {
    -		    -label    "Convergence force threshold \[in Ry/Bohr\] (forc_conv_thr):"
    -		    -validate fortranposreal
    -		}
    -
    -		separator -label "--- Miscellaneous control parameters ---"
    -		
    -		var nstep {
    -		    -label    "Number of ionic steps (nstep):"
    -		    -widget   spinint
    -		    -validate posint
    -		}
    -
    -		var tstress {
    -		    -label    "Calculate stress (tstress):"
    -		    -widget   radiobox
    -		    -textvalue { Yes No }	      
    -		    -value     { .true. .false. }
    -		}
    -
    -		var tprnfor {
    -		    -label     "Calculate forces (tprnfor):"
    -		    -variable  tprnfor
    -		    -widget    radiobox
    -		    -textvalue { Yes No }	      
    -		    -value     { .true. .false. }
    -		}
    -		
    -		var dt {
    -		    -label     "Molecular-Dynamics time step (dt):"
    -		    -validate  fortranposreal
    -		}
    -
    -		separator -label "--- Electric field options ---"
    -		
    -		var tefield {
    -		    -label     "Add a sawlike potential to bare ionic potential (tefield):"
    -		    -widget    radiobox
    -		    -textvalue { Yes No }	      
    -		    -value     { .true. .false. }
    -		}
    -
    -		var dipfield {
    -		    -label     "Add a dipole correction to bare ionic potential (dipfield):"
    -		    -widget    radiobox
    -		    -textvalue { Yes No }	      
    -		    -value     { .true. .false. }
    -		}
    -
    -		var lelfield {
    -		    -label     "Add a homogeneous finite electric field (lelfield):"
    -		    -widget    radiobox
    -		    -textvalue { Yes No }	      
    -		    -value     { .true. .false. }
    -		}
    -		
    -		var nberrycyc {
    -		    -label "Num. of iterations for lelfield [see help] (nberrycyc):"
    -		    -validate posint
    -		}
    -
    -		separator -label "--- Miscellaneous options ---"
    -		
    -		var lorbm {
    -		    -label     "Perform orbital magnetization calculation (lorbm):"
    -		    -widget    radiobox
    -		    -textvalue { Yes No }	      
    -		    -value     { .true. .false. }
    -		}
    -
    -		var lfcpopt {
    -		    -label "Perform a constant bias potential calculation with ESM method (lfcpopt):"
    -		    -widget    radiobox
    -		    -textvalue { Yes No }	      
    -		    -value     { .true. .false. }
    -		}
    -
    -		var gate {
    -		    -label "Perform charged cell calculation using counter charged plate (gate):"
    -		    -widget    radiobox
    -		    -textvalue { Yes No }	      
    -		    -value     { .true. .false. }
    -		}
    -
    -		separator -label "--- Berry phase ---"
    -
    -		var lberry {
    -		    -label     "Calculate Berry phase (lberry):"
    -		    -widget    radiobox
    -		    -textvalue { Yes No }	      
    -		    -value     { .true. .false. }
    -		}
    -		var gdir   {
    -		    -label    "Direction of the k-point strings (gdir):"
    -		    -widget   optionmenu
    -		    -textvalue {
    -			"along 1st reciprocal vector"
    -			"along 2nd reciprocal vector"
    -			"along 3rd reciprocal vector"
    -		    }
    -		    -value { 1 2 3 }		
    -		}
    -		var nppstr {
    -		    -label "Num. of k-points along each symmetry-reduced string (nppstr):"
    -		    -validate posint
    -		}
    -	    }
    -	}
    +        namelist control -name "CONTROL" {
    +            optional {
    +                #-default  "'PWSCF sample input'"
    +                var title -label "Job Title (title):" -validate string
    +
    +                var calculation {
    +                    -label     "Type of calculation (calculation):"
    +                    -widget    radiobox
    +                    -textvalue {
    +                        "Self-Consistent-Field  "
    +                        "Non-selfconsistent calculation  "
    +                        "Band structure calculation  "
    +                        "Ionic relaxation  "
    +                        "Ionic relaxation with Variable-Cell  "
    +                        "Molecular dynamics  "
    +                        "Molecular dynamics with Variable-Cell  "
    +                    }
    +                    -value {
    +                        'scf'
    +                        'nscf'
    +                        'bands'
    +                        'relax'
    +                        'vc-relax'
    +                        'md'
    +                        'vc-md'
    +                    }
    +                    -default "Self-Consistent-Field  "
    +                }
    +                
    +                var max_seconds {
    +                    -label    "Maximum CPU time \[in seconds\] (max_seconds):"
    +                    -validate posint
    +                }
    +
    +                var restart_mode {
    +                    -label    "Restart mode (restart_mode):"
    +                    -widget   optionmenu
    +                    -textvalue {
    +                        "from scratch  "
    +                        "from previous interrupted run  "
    +                    }
    +                    -value {
    +                        'from_scratch'
    +                        'restart'
    +                    }
    +                }
    +
    +                var wf_collect {
    +                    -label     "Make a single restart file (wf_collect):"
    +                    -widget    radiobox
    +                    -textvalue { Yes No }             
    +                    -value     { .true. .false. }
    +                }
    +
    +                separator -label "--- Directories/Files/Stdout ---"
    +                
    +                var outdir {
    +                    -label     "Temporary directory (outdir):"
    +                    -widget    entrydirselectquote
    +                    -validate  string
    +                }
    +
    +                var wfcdir {
    +                    -label     "Temp. directory for files generated by each CPU (wfcdir):"
    +                    -widget    entrydirselectquote
    +                    -validate  string
    +                }
    +
    +                var pseudo_dir \
    +                    -label    "Directory containing pseudopotential files (pseudo_dir:)" \
    +                    -widget   [list entrybutton "Directory ..." "::pwscf::pwSelectPseudoDir $this"] \
    +                    -validate  string
    +
    +                var prefix -label "Prefix for I/O filenames (prefix):" -validate  string
    +
    +                var lkpoint_dir {
    +                    -label "Store each k-point in its own subdirectory (lkpoint_dir):"
    +                    -widget    radiobox
    +                    -textvalue { Yes No }             
    +                    -value     { .true. .false. }
    +                }
    +
    +                var disk_io {
    +                    -label    "Disk Input/Output (disk_io):"
    +                    -textvalue {
    +                        high default low minimal none
    +                    }
    +                    -value {
    +                        'high' 'default' 'low' 'none'
    +                    }
    +                    -widget optionmenu
    +                }
    +
    +                var verbosity {
    +                    -label     "Verbosity of output (verbosity):"
    +                    -widget    optionmenu
    +                    -textvalue {
    +                        high
    +                        default
    +                        low
    +                        minimal
    +                    }
    +                    -value {
    +                        'high'
    +                        'default'
    +                        'low'
    +                        'minimal'
    +                    }
    +                }
    +
    +                var iprint {
    +                    -label   "Interval (in SCF iterations) for printing band energies (iprint):"
    +                    -widget   spinint
    +                    -validate nonnegint
    +                }
    +
    +                separator -label "--- Ionic Minimization ---"
    +
    +                #-text     "threshold on total energy for ionic minimization"
    +                var etot_conv_thr {
    +                    -label    "Convergence energy threshold \[in Ry\] (etot_conv_thr):"
    +                    -validate fortranposreal
    +                }
    +
    +                #-text     "Convergence threshold on forces for ionic minimization"
    +                var forc_conv_thr {
    +                    -label    "Convergence force threshold \[in Ry/Bohr\] (forc_conv_thr):"
    +                    -validate fortranposreal
    +                }
    +
    +                separator -label "--- Miscellaneous control parameters ---"
    +                
    +                var nstep {
    +                    -label    "Number of ionic steps (nstep):"
    +                    -widget   spinint
    +                    -validate posint
    +                }
    +
    +                var tstress {
    +                    -label    "Calculate stress (tstress):"
    +                    -widget   radiobox
    +                    -textvalue { Yes No }             
    +                    -value     { .true. .false. }
    +                }
    +
    +                var tprnfor {
    +                    -label     "Calculate forces (tprnfor):"
    +                    -variable  tprnfor
    +                    -widget    radiobox
    +                    -textvalue { Yes No }             
    +                    -value     { .true. .false. }
    +                }
    +                
    +                var dt {
    +                    -label     "Molecular-Dynamics time step (dt):"
    +                    -validate  fortranposreal
    +                }
    +
    +                separator -label "--- Electric field options ---"
    +                
    +                var tefield {
    +                    -label     "Add a sawlike potential to bare ionic potential (tefield):"
    +                    -widget    radiobox
    +                    -textvalue { Yes No }             
    +                    -value     { .true. .false. }
    +                }
    +
    +                var dipfield {
    +                    -label     "Add a dipole correction to bare ionic potential (dipfield):"
    +                    -widget    radiobox
    +                    -textvalue { Yes No }             
    +                    -value     { .true. .false. }
    +                }
    +
    +                var lelfield {
    +                    -label     "Add a homogeneous finite electric field (lelfield):"
    +                    -widget    radiobox
    +                    -textvalue { Yes No }             
    +                    -value     { .true. .false. }
    +                }
    +                
    +                var nberrycyc {
    +                    -label "Num. of iterations for lelfield [see help] (nberrycyc):"
    +                    -validate posint
    +                }
    +
    +                separator -label "--- Miscellaneous options ---"
    +                
    +                var lorbm {
    +                    -label     "Perform orbital magnetization calculation (lorbm):"
    +                    -widget    radiobox
    +                    -textvalue { Yes No }             
    +                    -value     { .true. .false. }
    +                }
    +
    +                var lfcpopt {
    +                    -label "Perform a constant bias potential calculation with ESM method (lfcpopt):"
    +                    -widget    radiobox
    +                    -textvalue { Yes No }             
    +                    -value     { .true. .false. }
    +                }
    +
    +                var gate {
    +                    -label "Perform charged cell calculation using counter charged plate (gate):"
    +                    -widget    radiobox
    +                    -textvalue { Yes No }             
    +                    -value     { .true. .false. }
    +                }
    +
    +                separator -label "--- Berry phase ---"
    +
    +                var lberry {
    +                    -label     "Calculate Berry phase (lberry):"
    +                    -widget    radiobox
    +                    -textvalue { Yes No }             
    +                    -value     { .true. .false. }
    +                }
    +                var gdir   {
    +                    -label    "Direction of the k-point strings (gdir):"
    +                    -widget   optionmenu
    +                    -textvalue {
    +                        "along 1st reciprocal vector"
    +                        "along 2nd reciprocal vector"
    +                        "along 3rd reciprocal vector"
    +                    }
    +                    -value { 1 2 3 }            
    +                }
    +                var nppstr {
    +                    -label "Num. of k-points along each symmetry-reduced string (nppstr):"
    +                    -validate posint
    +                }
    +            }
    +        }
         }
         
     
    @@ -260,691 +260,731 @@ module PW -title "PWSCF GUI: module PW.x" -script {
     
         page systemPage -name "System" {
     
    -	# ----------------------------------------------------
    -	# REQUIRED variables
    -	# ----------------------------------------------------
    -
    -	namelist system -name "SYSTEM" {	    
    -	    required {
    -		#
    -		# WARNING: if you change the strings among the possible
    -		#          ibrav values, then search the "tracevar ibrav"
    -		#          section in the file pwscf-special.tcl and change
    -		#          there the strings to match EXACTLY with the 
    -		#          ones defined here !!!
    -		#	    
    -		var ibrav {
    -		    -label     "Braivas lattice index (ibrav):"
    -		    -fmt       %d
    -		    -widget    combobox
    -		    -textvalue {
    -			"Free lattice"
    -			"Cubic P (sc)"
    -			"Cubic F (fcc)"
    -			"Cubic I (bcc)"
    -			"Hexagonal and Trigonal P"
    -			"Trigonal R, 3fold axis c"
    -			"Trigonal R, 3fold axis <111>"
    -			"Tetragonal P (st)"
    -			"Tetragonal I (bct)"
    -			"Orthorhombic P"
    -			"Orthorhombic base-centered(bco)"
    -			"Orthorhombic face-centered"
    -			"Orthorhombic body-centered"
    -			"Monoclinic P, unique axis c"
    -			"Monoclinic P, unique axis b"
    -			"Monoclinic base-centered"
    -			"Triclinic P"
    -		    }
    -		    -value {0 1 2 3 4 5 -5 6 7 8 9 10 11 12 -12 13 14}
    -		}
    -
    -		group lattice_spec -name "Lattice specification:" -decor normal {
    -		    auxilvar how_lattice {
    -			-label     "How to specify lattice:"
    -			-value     {celldm abc}
    -			-textvalue {"by celldm()" "by A,B,C,cosAB,cosAC,cosBC"}
    -			-widget    radiobox
    -		    }
    -		    
    -		    dimension celldm {
    -			-label "Crystallographic constants (celldm)"
    -			-validate  fortranreal
    -			-start 1
    -			-end   6
    -		    }
    -		    
    -		    group abc {
    -			packwidgets left
    -			var A -label "A:" -validate fortranposreal
    -			var B -label "B:" -validate fortranposreal
    -			var C -label "C:" -validate fortranposreal
    -		    }
    -		    group cosABC {
    -			packwidgets left
    -			var cosAB -label "cosAB:" -validate fortranreal		    
    -			var cosAC -label "cosAC:" -validate fortranreal
    -			var cosBC -label "cosBC:" -validate fortranreal		    
    -		    }
    -		}
    -
    -		var nat {
    -		    -label    "Number of atoms in the unit cell (nat):"
    -		    -fmt       %d
    -		    -default   1
    -		    -widget    spinint
    -		    -validate  posint
    -		}
    -		
    -		var ntyp {
    -		    -label    "Number of types of atoms in the unit cell (ntyp):"
    -		    -fmt      %d
    -		    -default  1
    -		    -widget   spinint  
    -		    -validate posint
    -		}		
    -		
    -		var ecutwfc {
    -		    -label    "Kinetic energy cutoff for WAVEFUNCTION \[in Ry\] (ecutwfc):"
    -		    -validate fortranposreal
    -		}
    -
    -		var ecutrho {
    -		    -label    "Kinetic energy cutoff for DENSITY \[in Ry\] (ecutrho):"
    -		    -validate fortranposreal
    -		}
    -	    }
    -
    -	    # ----------------------------------------------------
    -	    # OPTIONAL variables
    -	    # ----------------------------------------------------
    -
    -	    optional {		
    -		var nbnd {
    -		    -label    "Number of electronic states (nbnd):"
    -		    -widget   spinint
    -		    -validate posint
    -		    -fmt      %d
    -		}
    -
    -		var tot_charge {
    -		    -label    "Total system charge (tot_charge):"
    -		    -validate fortranreal
    -		    -fmt      %f
    -		}
    -
    -		dimension starting_charge {
    -		    -label "Starting charge (starting_charge):"
    -		    -text  "Starting charge for atomic species"
    -		    -validate  fortranreal
    -		    -start 1 -end 1
    -		}
    -		
    -		var input_dft -label    "Exchange-correlation functional (input_dft):"
    -
    -		separator -label "--- Symmetry ---"
    -
    -		group symmetry_group -decor normal {
    -		    var nosym {
    -			-label     "Do not use the symmetry (nosym):"
    -			-widget    radiobox
    -			-textvalue { Yes No }	      
    -			-value     { .true. .false. }
    -		    }
    -		    
    -		    var nosym_evc {
    -			-label     "Do not use the symmetry except for the k-points (nosym_evc):"
    -			-widget    radiobox
    -			-textvalue { Yes No }	      
    -			-value     { .true. .false. }
    -		    }
    -		    
    -		    var noinv { 
    -			-label     "Disable time reversal symmetry in k-point generation (noinv):"
    -			-widget    radiobox
    -			-textvalue { Yes No }	      
    -			-value     { .true. .false. }
    -		    }
    -
    -		    var no_t_rev { 
    -			-label     "Disable the symmetry operations that require time reversal (no_t_rev):"
    -			-widget    radiobox
    -			-textvalue { Yes No }	      
    -			-value     { .true. .false. }
    -		    }
    -
    -		    var force_symmorphic { 
    -			-label     "Force the symmetry group to be symmorphic (force_symmorphic):"
    -			-widget    radiobox
    -			-textvalue { Yes No }	      
    -			-value     { .true. .false. }
    -		    }
    -
    -		    var use_all_frac { 
    -			-label     "Use all symmetry operations with fractionary translations (use_all_frac):"
    -			-widget    radiobox
    -			-textvalue { Yes No }	      
    -			-value     { .true. .false. }
    -		    }
    -		}
    -
    -		separator -label "--- Occupations ---"
    -
    -		var occupations {
    -		    -label    "Occupation of states (occupations):"
    -		    -widget   optionmenu
    -		    -textvalue {
    -			smearing tetrahedra tetrahedra_lin tetrahedra_opt fixed "read from input"
    -		    }
    -		    -value {
    -			'smearing' 'tetrahedra' 'tetrahedra_lin' 'tetrahedra_opt' 'fixed' 'from_input'
    -		    }
    -		}
    -
    -		var one_atom_occupations {
    -		    -text  "For isolated atoms only (nat=1)"
    -		    -label "Order the wavefunctions as the atomic starting wavefunctions (one_atom_occupations):"
    -		    -widget    radiobox
    -		    -textvalue { Yes No }	      
    -		    -value     { .true. .false. }
    -		}
    -
    -		var starting_spin_angle {
    -		    -text  "For spin-orbit case when domag=.TRUE."
    -		    -label "Multiply the initial radial wavefunctions by spin-angle functions (starting_spin_angle):"
    -		    -widget    radiobox
    -		    -textvalue { Yes No }	      
    -		    -value     { .true. .false. }
    -		}
    -
    -		var degauss {
    -		    -label    "Gaussian spreading for BZ integration \[in Ry\] (degauss):"
    -		    -validate fortrannonnegreal
    -		}
    -
    -		var smearing {
    -		    -label    "Type of spreading/smearing (smearing):"
    -		    -textvalue {
    -			"ordinary Gaussian spreading  "
    -			"first order interpolation in Methfessel-Paxton spreading  "
    -			"Marzari-Vanderbilt cold smearing  "
    -			"Fermi-Dirac smearing  "
    -		    }
    -		    -value  {
    -			'gaussian'
    -			'methfessel-paxton'
    -			'marzari-vanderbilt'
    -			'fermi-dirac'
    -		    }
    -		    -widget optionmenu
    -		}
    -
    -		separator -label "--- Spin polarization ---"
    -
    -		group spinpol_group -decor normal {
    -		    var nspin {
    -			-label     "Perform spin-polarized calculation (nspin):"
    -			-textvalue {No Yes}
    -			-value     {1  2}
    -			-widget    radiobox
    -		    }
    -		    
    -		    group spin_polarization -decor none {
    -		    
    -			dimension starting_magnetization {
    -			    -label "Starting magnetization (starting_magnetization):"
    -			    -text  "Specify starting magnetization (between -1 and 1) for each \"magnetic\" species"
    -			    -validate  fortranreal
    -			    -start 1 -end 1
    -			}
    -			
    -			var tot_magnetization {
    -			    -label     "Total magnetization (N el. up-down) (tot_magnetization):"
    -			    -validate  posint
    -			    -widget    spinint
    -			}
    -		    }		
    -		}
    -
    -		separator -label "--- Noncolinear calculation ---"
    -
    -		group noncolin_topgroup -decor normal {
    -		    
    -		    var noncolin {
    -			-label     "Perform noncolinear calculation (noncolin):"
    -			-textvalue {No Yes}
    -			-value     {.false. .true.}
    -			-widget    radiobox
    -		    }		
    -
    -		    group noncolin_group {
    -			dimension angle1 {
    -			    -label "Starting magnetization direction (angle1) :"
    -			    -text  "Specify starting magnetization direction for each \"magnetic\" species"
    -			    -validate  fortranreal
    -			    -start 1 -end 1
    -			}
    -			
    -			dimension angle2 {
    -			    -label "Starting magnetization direction (angle2):"
    -			    -text  "Specify starting magnetization direction for each \"magnetic\" species"
    -			    -validate  fortranreal
    -			    -start 1 -end 1
    -			}
    -			
    -			var lspinorb {
    -			    -label     "Allow the use of a pseudopotential with spin-orbit (lspinorb):"
    -			    -textvalue {No Yes}
    -			    -value     {.false.  .true.}
    -			    -widget    radiobox
    -			}
    -		    }
    -		}
    -
    -		separator -label "--- Constrained/Fixed magnetization ---"
    -
    -		group constrained_magnetization_group -decor normal {
    -		    
    -		    var constrained_magnetization {
    -			-label     "Constrained magnetic calculation (constrained_magnetization):"
    -			-textvalue {
    -			    "no constrain  " 
    -			    "constrain TOTAL magnetization  "
    -			    "constrain ATOMIC magnetization  "
    -			    "constrain magnetization to \"ATOMIC DIRECTION\"  "
    -			    "constrain the direction of total magnetization  "
    -			}
    -			-value     {'none' 'total' 'atomic' {'atomic direction'} {'total direction'}}
    -			-widget    optionmenu
    -		    }
    -		    
    -		    dimension fixed_magnetization {
    -			-label "Fixed total magnetization"
    -			-start 1 -end 3
    -			-validate fortranreal
    -		    }
    -		    
    -		    #		    dimension B_field {
    -		    #			-label "Add a fixed magnetic field (B_field):"
    -		    #			-start 1 -end 3
    -		    #			-validate fortranreal
    -		    #		    }
    -		    
    -		    var lambda {
    -			-label "Lamda parameter for constrained magnetization (lambda):"
    -			-validate fortranreal
    -		    }
    -		    
    -		    var report {
    -			-label "Interval (in iterations) for printing atomic magnetic moments (report):"
    -			-validate posint
    -		    }
    -		}
    -
    -		separator -label "--- Hartree Fock & Hybrid Functionals ---"
    -
    -		group HF_group -decor normal {
    -		    var ecutfock {
    -			-label    "Kinetic energy cutoff for exact exchange operator \[in Ry\] (ecutfock):"
    -			-validate fortranposreal
    -		    }
    -		    
    -		    var exx_fraction {
    -			-label "Fraction of EXX for hybrid functional calculations (exx_fraction):"
    -			-validate fortranreal
    -		    }
    -		    
    -		    var exxdiv_treatment {
    -			-label "Approach for treating Coulomb potential divergencies at small q vectors (exxdiv_treatment):"
    -			-widget optionmenu
    -			-value {
    -			    'gygi-baldereschi'
    -			    'vcut_spherical'
    -			    'vcut_ws'
    -			    'none'
    -			}
    -			-textvalue {
    -			    gygi-baldereschi
    -			    vcut_spherical
    -			    vcut_ws
    -			    none
    -			}
    -		    }
    -
    -		    var x_gamma_extrapolation {
    -			-label "Extrapolate the G=0 term of the potential for EXX (x_gamma_extrapolation):"
    -			-textvalue {No Yes}
    -			-value     {.false.  .true.}
    -			-widget    radiobox
    -		    }
    -		    var ecutvcut {
    -			-label "Reciprocal space cutoff for exxdiv_treatment (ecutvcut):"
    -			-validate fortranreal
    -		    }
    -		    
    -		    var screening_parameter {
    -			-label "Screening_parameter for HSE like hybrid functionals (screening_parameter):"
    -			-validate fortranreal
    -		    }
    -
    -		    group nqx123 {		    
    -			packwidgets left
    -			var nqx1 -label "nqx1:" -validate fortranposreal
    -			var nqx2 -label "nqx2:" -validate fortranposreal
    -			var nqx3 -label "n1x3:" -validate fortranposreal		    
    -		    }
    -		}
    -		
    -		separator -label "--- LDA + U parameters ---"
    -
    -		group lda_plus_u_group -decor normal {
    -		
    -		    var lda_plus_u {
    -			-label     "Perform LDA + U calculation (lda_plus_u):"
    -			-textvalue {No Yes}
    -			-value     {.false.  .true.}
    -			-widget    radiobox
    -		    }
    -		    
    -		    group hubbard -decor none {
    -			var lda_plus_u_kind {
    -			    -label     "type of LDA + U calculation (lda_plus_u_kind):"
    -			    -textvalue {
    -				"simplified version of Cococcioni and de Gironcoli" 
    -				"rotationally invariant scheme of Liechtenstein et al."
    -			    }
    -			    -value     {0 1}
    -			    -widget    radiobox
    -			}
    -			
    -			dimension Hubbard_U {
    -			    -label     "Hubbarb U (Hubbard_U):"
    -			    -validate  fortranreal
    -			    -start 1 -end 1
    -			}
    -			
    -			dimension Hubbard_J0 {
    -			    -label     "Hubbarb J0 (Hubbard_J0):"
    -			    -validate  fortranreal
    -			    -start 1 -end 1
    -			}
    -			
    -			dimension Hubbard_alpha {
    -			    -label     "Hubbard alpha (Hubbard_alpha):"
    -			    -validate  fortranreal
    -			    -start 1 -end 1
    -			}
    -			
    -			dimension Hubbard_beta {
    -			    -label     "Hubbard beta (Hubbard_beta):"
    -			    -validate  fortranreal
    -			    -start 1 -end 1
    -			}
    -			
    -			# can't input Hubbard_J and starting_ns_eigenvalue
    -			
    -			var U_projection_type {
    -			    -label  "Type of projector on localized orbital (U_projector_type):"
    -			    -widget optionmenu
    -			    -textvalue {
    -				"use atomic wfc's (as they are) to build the projector  "
    -				"use Lowdin orthogonalized atomic wfc's  "
    -				"use Lowdin normalization of atomic wfc  "
    -				"use the information from file \"prefix\".atwfc  "
    -				"use the pseudopotential projectors "
    -			    }
    -			    -value {
    -				'atomic'
    -				'ortho-atomic'
    -				'norm-atomic'
    -				'file'
    -				'pseudo'
    -			    }
    -			}		
    -		    }
    -		}
    -
    -		separator -label "--- Variable cell parameters ---"
    -
    -		group vc_md -decor normal {		    
    -		    var ecfixed {
    -			-label     "ecfixed:"
    -			-validate  fortranreal
    -		    }
    -		    var qcutz {
    -			-label     "qcutz:"
    -			-validate  fortranreal
    -		    }
    -		    var q2sigma {
    -			-label     "q2sigma:"
    -			-validate  fortranreal
    -		    }
    -		}	
    -		
    -		separator -label "--- Saw-like potential parameters ---"
    -
    -		group tefield_group -decor normal {
    -		    var edir {
    -			-label    "Direction of electric field (edir)"
    -			-widget   optionmenu
    -			-textvalue {
    -			    "along 1st reciprocal vector"
    -			    "along 2nd reciprocal vector"
    -			    "along 3rd reciprocal vector"
    -			}
    -			-value { 1 2 3 }
    -		    }
    -		    
    -		    var emaxpos {
    -			-text     "Position of maximum of sawlike potential within the unit cell"
    -			-label    "Position of maximum (emaxpos):"
    -			-validate fortranreal
    -		    }
    -
    -		    var eopreg {
    -			-text     "Part of the unit cell where the sawlike potential decreases"
    -			-label    "Where the sawlike potential decreases (eopreg):"
    -			-validate fortranreal
    -		    }
    -
    -		    var eamp -label "Amplitude of the electric field \[in a.u.\] (eamp):"
    -		}
    -
    -		separator -label "--- Low-dimensional calculation ---"
    -
    -		var assume_isolated {
    -		    -label "Type of correction for isolated systems (assume_isolated):"
    -		    -widget    radiobox
    -		    -textvalue {
    -			"Makov-Payne "
    -			"Martyna-Tuckerman "
    -			"Effective Screening Medium "
    +        # ----------------------------------------------------
    +        # REQUIRED variables
    +        # ----------------------------------------------------
    +
    +        namelist system -name "SYSTEM" {            
    +            required {
    +                #
    +                # WARNING: if you change the strings among the possible
    +                #          ibrav values, then search the "tracevar ibrav"
    +                #          section in the file pwscf-special.tcl and change
    +                #          there the strings to match EXACTLY with the 
    +                #          ones defined here !!!
    +                #           
    +                var ibrav {
    +                    -label     "Braivas lattice index (ibrav):"
    +                    -fmt       %d
    +                    -widget    combobox
    +                    -textvalue {
    +                        "Free lattice"
    +                        "Cubic P (sc)"
    +                        "Cubic F (fcc)"
    +                        "Cubic I (bcc)"
    +                        "Hexagonal and Trigonal P"
    +                        "Trigonal R, 3fold axis c"
    +                        "Trigonal R, 3fold axis <111>"
    +                        "Tetragonal P (st)"
    +                        "Tetragonal I (bct)"
    +                        "Orthorhombic P"
    +                        "Orthorhombic base-centered(bco)"
    +                        "Orthorhombic face-centered"
    +                        "Orthorhombic body-centered"
    +                        "Monoclinic P, unique axis c"
    +                        "Monoclinic P, unique axis b"
    +                        "Monoclinic base-centered"
    +                        "Triclinic P"
    +                    }
    +                    -value {0 1 2 3 4 5 -5 6 7 8 9 10 11 12 -12 13 14}
    +                }
    +
    +                group lattice_spec -name "Lattice specification:" -decor normal {
    +                    auxilvar how_lattice {
    +                        -label     "How to specify lattice:"
    +                        -value     {celldm abc}
    +                        -textvalue {"by celldm()" "by A,B,C,cosAB,cosAC,cosBC"}
    +                        -widget    radiobox
    +                    }
    +                    
    +                    dimension celldm {
    +                        -label "Crystallographic constants (celldm)"
    +                        -validate  fortranreal
    +                        -start 1
    +                        -end   6
    +                    }
    +                    
    +                    group abc {
    +                        packwidgets left
    +                        var A -label "A:" -validate fortranposreal
    +                        var B -label "B:" -validate fortranposreal
    +                        var C -label "C:" -validate fortranposreal
    +                    }
    +                    group cosABC {
    +                        packwidgets left
    +                        var cosAB -label "cosAB:" -validate fortranreal             
    +                        var cosAC -label "cosAC:" -validate fortranreal
    +                        var cosBC -label "cosBC:" -validate fortranreal             
    +                    }
    +                }
    +
    +                var nat {
    +                    -label    "Number of atoms in the unit cell (nat):"
    +                    -fmt       %d
    +                    -default   1
    +                    -widget    spinint
    +                    -validate  posint
    +                }
    +                
    +                var ntyp {
    +                    -label    "Number of types of atoms in the unit cell (ntyp):"
    +                    -fmt      %d
    +                    -default  1
    +                    -widget   spinint  
    +                    -validate posint
    +                }               
    +                
    +                var ecutwfc {
    +                    -label    "Kinetic energy cutoff for WAVEFUNCTION \[in Ry\] (ecutwfc):"
    +                    -validate fortranposreal
    +                }
    +
    +                var ecutrho {
    +                    -label    "Kinetic energy cutoff for DENSITY \[in Ry\] (ecutrho):"
    +                    -validate fortranposreal
    +                }
    +            }
    +
    +            # ----------------------------------------------------
    +            # OPTIONAL variables
    +            # ----------------------------------------------------
    +
    +            optional {          
    +                var nbnd {
    +                    -label    "Number of electronic states (nbnd):"
    +                    -widget   spinint
    +                    -validate posint
    +                    -fmt      %d
    +                }
    +
    +                var tot_charge {
    +                    -label    "Total system charge (tot_charge):"
    +                    -validate fortranreal
    +                    -fmt      %f
    +                }
    +
    +                dimension starting_charge {
    +                    -label "Starting charge (starting_charge):"
    +                    -text  "Starting charge for atomic species"
    +                    -validate  fortranreal
    +                    -start 1 -end 1
    +                }
    +                
    +                var input_dft -label    "Exchange-correlation functional (input_dft):"
    +
    +                separator -label "--- Symmetry ---"
    +
    +                group symmetry_group -decor normal {
    +                    var nosym {
    +                        -label     "Do not use the symmetry (nosym):"
    +                        -widget    radiobox
    +                        -textvalue { Yes No }         
    +                        -value     { .true. .false. }
    +                    }
    +                    
    +                    var nosym_evc {
    +                        -label     "Do not use the symmetry except for the k-points (nosym_evc):"
    +                        -widget    radiobox
    +                        -textvalue { Yes No }         
    +                        -value     { .true. .false. }
    +                    }
    +                    
    +                    var noinv { 
    +                        -label     "Disable time reversal symmetry in k-point generation (noinv):"
    +                        -widget    radiobox
    +                        -textvalue { Yes No }         
    +                        -value     { .true. .false. }
    +                    }
    +
    +                    var no_t_rev { 
    +                        -label     "Disable the symmetry operations that require time reversal (no_t_rev):"
    +                        -widget    radiobox
    +                        -textvalue { Yes No }         
    +                        -value     { .true. .false. }
    +                    }
    +
    +                    var force_symmorphic { 
    +                        -label     "Force the symmetry group to be symmorphic (force_symmorphic):"
    +                        -widget    radiobox
    +                        -textvalue { Yes No }         
    +                        -value     { .true. .false. }
    +                    }
    +
    +                    var use_all_frac { 
    +                        -label     "Use all symmetry operations with fractionary translations (use_all_frac):"
    +                        -widget    radiobox
    +                        -textvalue { Yes No }         
    +                        -value     { .true. .false. }
    +                    }
    +                }
    +
    +                separator -label "--- Occupations ---"
    +
    +                var occupations {
    +                    -label    "Occupation of states (occupations):"
    +                    -widget   optionmenu
    +                    -textvalue {
    +                        smearing tetrahedra tetrahedra_lin tetrahedra_opt fixed "read from input"
    +                    }
    +                    -value {
    +                        'smearing' 'tetrahedra' 'tetrahedra_lin' 'tetrahedra_opt' 'fixed' 'from_input'
    +                    }
    +                }
    +
    +                var one_atom_occupations {
    +                    -text  "For isolated atoms only (nat=1)"
    +                    -label "Order the wavefunctions as the atomic starting wavefunctions (one_atom_occupations):"
    +                    -widget    radiobox
    +                    -textvalue { Yes No }             
    +                    -value     { .true. .false. }
    +                }
    +
    +                var starting_spin_angle {
    +                    -text  "For spin-orbit case when domag=.TRUE."
    +                    -label "Multiply the initial radial wavefunctions by spin-angle functions (starting_spin_angle):"
    +                    -widget    radiobox
    +                    -textvalue { Yes No }             
    +                    -value     { .true. .false. }
    +                }
    +
    +                var degauss {
    +                    -label    "Gaussian spreading for BZ integration \[in Ry\] (degauss):"
    +                    -validate fortrannonnegreal
    +                }
    +
    +                var smearing {
    +                    -label    "Type of spreading/smearing (smearing):"
    +                    -textvalue {
    +                        "ordinary Gaussian spreading  "
    +                        "first order interpolation in Methfessel-Paxton spreading  "
    +                        "Marzari-Vanderbilt cold smearing  "
    +                        "Fermi-Dirac smearing  "
    +                    }
    +                    -value  {
    +                        'gaussian'
    +                        'methfessel-paxton'
    +                        'marzari-vanderbilt'
    +                        'fermi-dirac'
    +                    }
    +                    -widget optionmenu
    +                }
    +
    +                separator -label "--- Spin polarization ---"
    +
    +                group spinpol_group -decor normal {
    +                    var nspin {
    +                        -label     "Perform spin-polarized calculation (nspin):"
    +                        -textvalue {No Yes}
    +                        -value     {1  2}
    +                        -widget    radiobox
    +                    }
    +                    
    +                    group spin_polarization -decor none {
    +                    
    +                        dimension starting_magnetization {
    +                            -label "Starting magnetization (starting_magnetization):"
    +                            -text  "Specify starting magnetization (between -1 and 1) for each \"magnetic\" species"
    +                            -validate  fortranreal
    +                            -start 1 -end 1
    +                        }
    +                        
    +                        var tot_magnetization {
    +                            -label     "Total magnetization (N el. up-down) (tot_magnetization):"
    +                            -validate  posint
    +                            -widget    spinint
    +                        }
    +                    }           
    +                }
    +
    +                separator -label "--- Noncolinear calculation ---"
    +
    +                group noncolin_topgroup -decor normal {
    +                    
    +                    var noncolin {
    +                        -label     "Perform noncolinear calculation (noncolin):"
    +                        -textvalue {No Yes}
    +                        -value     {.false. .true.}
    +                        -widget    radiobox
    +                    }           
    +
    +                    group noncolin_group {
    +                        dimension angle1 {
    +                            -label "Starting magnetization direction (angle1) :"
    +                            -text  "Specify starting magnetization direction for each \"magnetic\" species"
    +                            -validate  fortranreal
    +                            -start 1 -end 1
    +                        }
    +                        
    +                        dimension angle2 {
    +                            -label "Starting magnetization direction (angle2):"
    +                            -text  "Specify starting magnetization direction for each \"magnetic\" species"
    +                            -validate  fortranreal
    +                            -start 1 -end 1
    +                        }
    +
    +                        var lforcet {
    +                            -label "Use existing collinear density read from file (lforcet):"
    +                            -widget    radiobox
    +                            -textvalue { Yes No }              
    +                            -value     { .true. .false. }
    +                        }
    +                        
    +                        var lspinorb {
    +                            -label     "Allow the use of a pseudopotential with spin-orbit (lspinorb):"
    +                            -textvalue {No Yes}
    +                            -value     {.false.  .true.}
    +                            -widget    radiobox
    +                        }
    +                    }
    +                }
    +
    +                separator -label "--- Constrained/Fixed magnetization ---"
    +
    +                group constrained_magnetization_group -decor normal {
    +                    
    +                    var constrained_magnetization {
    +                        -label     "Constrained magnetic calculation (constrained_magnetization):"
    +                        -textvalue {
    +                            "no constrain  " 
    +                            "constrain TOTAL magnetization  "
    +                            "constrain ATOMIC magnetization  "
    +                            "constrain magnetization to \"ATOMIC DIRECTION\"  "
    +                            "constrain the direction of total magnetization  "
    +                        }
    +                        -value     {'none' 'total' 'atomic' {'atomic direction'} {'total direction'}}
    +                        -widget    optionmenu
    +                    }
    +                    
    +                    dimension fixed_magnetization {
    +                        -label "Fixed total magnetization"
    +                        -start 1 -end 3
    +                        -validate fortranreal
    +                    }
    +                    
    +                    #               dimension B_field {
    +                    #                   -label "Add a fixed magnetic field (B_field):"
    +                    #                   -start 1 -end 3
    +                    #                   -validate fortranreal
    +                    #               }
    +                    
    +                    var lambda {
    +                        -label "Lamda parameter for constrained magnetization (lambda):"
    +                        -validate fortranreal
    +                    }
    +                    
    +                    var report {
    +                        -label "Interval (in iterations) for printing atomic magnetic moments (report):"
    +                        -validate posint
    +                    }
    +                }
    +
    +                separator -label "--- Hartree Fock & Hybrid Functionals ---"
    +
    +                group HF_group -decor normal {
    +                    var ecutfock {
    +                        -label    "Kinetic energy cutoff for exact exchange operator \[in Ry\] (ecutfock):"
    +                        -validate fortranposreal
    +                    }
    +                    
    +                    var exx_fraction {
    +                        -label "Fraction of EXX for hybrid functional calculations (exx_fraction):"
    +                        -validate fortranreal
    +                    }
    +                    
    +                    var exxdiv_treatment {
    +                        -label "Approach for treating Coulomb potential divergencies at small q vectors (exxdiv_treatment):"
    +                        -widget optionmenu
    +                        -value {
    +                            'gygi-baldereschi'
    +                            'vcut_spherical'
    +                            'vcut_ws'
    +                            'none'
    +                        }
    +                        -textvalue {
    +                            gygi-baldereschi
    +                            vcut_spherical
    +                            vcut_ws
    +                            none
    +                        }
    +                    }
    +
    +                    var x_gamma_extrapolation {
    +                        -label "Extrapolate the G=0 term of the potential for EXX (x_gamma_extrapolation):"
    +                        -textvalue {No Yes}
    +                        -value     {.false.  .true.}
    +                        -widget    radiobox
    +                    }
    +                    var ecutvcut {
    +                        -label "Reciprocal space cutoff for exxdiv_treatment (ecutvcut):"
    +                        -validate fortranreal
    +                    }
    +                    
    +                    var screening_parameter {
    +                        -label "Screening_parameter for HSE like hybrid functionals (screening_parameter):"
    +                        -validate fortranreal
    +                    }
    +
    +                    var localization_thr {
    +                        -label "Exchange localization overlap threshold (localization_thr)"
    +                        -validate fortranreal
    +                    }
    +
    +                    group nqx123 {                  
    +                        packwidgets left
    +                        var nqx1 -label "nqx1:" -validate fortranposreal
    +                        var nqx2 -label "nqx2:" -validate fortranposreal
    +                        var nqx3 -label "n1x3:" -validate fortranposreal                    
    +                    }
    +                }
    +                
    +                separator -label "--- LDA + U parameters ---"
    +
    +                group lda_plus_u_group -decor normal {
    +                
    +                    var lda_plus_u {
    +                        -label     "Perform LDA + U calculation (lda_plus_u):"
    +                        -textvalue {No Yes}
    +                        -value     {.false.  .true.}
    +                        -widget    radiobox
    +                    }
    +                    
    +                    group hubbard -decor none {
    +                        var lda_plus_u_kind {
    +                            -label     "type of LDA + U calculation (lda_plus_u_kind):"
    +                            -textvalue {
    +                                "simplified version of Cococcioni and de Gironcoli" 
    +                                "rotationally invariant scheme of Liechtenstein et al."
    +                            }
    +                            -value     {0 1}
    +                            -widget    radiobox
    +                        }
    +                        
    +                        dimension Hubbard_U {
    +                            -label     "Hubbarb U (Hubbard_U):"
    +                            -validate  fortranreal
    +                            -start 1 -end 1
    +                        }
    +                        
    +                        dimension Hubbard_J0 {
    +                            -label     "Hubbarb J0 (Hubbard_J0):"
    +                            -validate  fortranreal
    +                            -start 1 -end 1
    +                        }
    +                        
    +                        dimension Hubbard_alpha {
    +                            -label     "Hubbard alpha (Hubbard_alpha):"
    +                            -validate  fortranreal
    +                            -start 1 -end 1
    +                        }
    +                        
    +                        dimension Hubbard_beta {
    +                            -label     "Hubbard beta (Hubbard_beta):"
    +                            -validate  fortranreal
    +                            -start 1 -end 1
    +                        }
    +                        
    +                        # can't input Hubbard_J and starting_ns_eigenvalue
    +                        
    +                        var U_projection_type {
    +                            -label  "Type of projector on localized orbital (U_projector_type):"
    +                            -widget optionmenu
    +                            -textvalue {
    +                                "use atomic wfc's (as they are) to build the projector  "
    +                                "use Lowdin orthogonalized atomic wfc's  "
    +                                "use Lowdin normalization of atomic wfc  "
    +                                "use the information from file \"prefix\".atwfc  "
    +                                "use the pseudopotential projectors "
    +                            }
    +                            -value {
    +                                'atomic'
    +                                'ortho-atomic'
    +                                'norm-atomic'
    +                                'file'
    +                                'pseudo'
    +                            }
    +                        }               
    +                    }
    +                }
    +
    +                separator -label "--- Variable cell parameters ---"
    +
    +                group vc_md -decor normal {                 
    +                    var ecfixed {
    +                        -label     "ecfixed:"
    +                        -validate  fortranreal
    +                    }
    +                    var qcutz {
    +                        -label     "qcutz:"
    +                        -validate  fortranreal
    +                    }
    +                    var q2sigma {
    +                        -label     "q2sigma:"
    +                        -validate  fortranreal
    +                    }
    +                }       
    +                
    +                separator -label "--- Saw-like potential parameters ---"
    +
    +                group tefield_group -decor normal {
    +                    var edir {
    +                        -label    "Direction of electric field (edir)"
    +                        -widget   optionmenu
    +                        -textvalue {
    +                            "along 1st reciprocal vector"
    +                            "along 2nd reciprocal vector"
    +                            "along 3rd reciprocal vector"
    +                        }
    +                        -value { 1 2 3 }
    +                    }
    +                    
    +                    var emaxpos {
    +                        -text     "Position of maximum of sawlike potential within the unit cell"
    +                        -label    "Position of maximum (emaxpos):"
    +                        -validate fortranreal
    +                    }
    +
    +                    var eopreg {
    +                        -text     "Part of the unit cell where the sawlike potential decreases"
    +                        -label    "Where the sawlike potential decreases (eopreg):"
    +                        -validate fortranreal
    +                    }
    +
    +                    var eamp -label "Amplitude of the electric field \[in a.u.\] (eamp):"
    +                }
    +
    +                separator -label "--- Low-dimensional calculation ---"
    +
    +                var assume_isolated {
    +                    -label "Type of correction for isolated systems (assume_isolated):"
    +                    -widget    radiobox
    +                    -textvalue {
    +                        "Makov-Payne "
    +                        "Martyna-Tuckerman "
    +                        "Effective Screening Medium "
                             "No correction "
    -		    }
    -		    -value {'makov-payne' 'martyna-tuckerman' 'esm' 'none'}
    -		}	
    -
    -		separator -label "--- Effective screening medium ---"
    -		
    -		group ESM -decor normal {
    -		    var esm_bc {
    -			-label "Boundary conditions for ESM (esm_bc):"
    -			-widget    radiobox
    -			-textvalue {
    -			    "vacuum-slab-vacuum (open boundary conditions) "
    -			    "metal-slab-metal (dual electrode configuration) "
    -			    "vacuum-slab-metal "
    -			    "regular periodic calculation (no ESM) "
    -			}
    -			-value {'bc1' 'bc2' 'bc3' 'pbc'}
    -		    }	
    -		    var esm_w {
    -			-label    "Position offset [in a.u.] of the start of the ESM region (esm_w):"
    -			-validate fortranreal
    -		    }
    -		    var esm_efield {
    -			-label    "Magnitude of the applied electric field [Ryd/a.u.] (esm_efield):"
    -			-validate fortranreal
    -		    }
    -		    var esm_nfit {
    -			-label    "Number of z-grid points for the polynomial fit @ cell edge (esm_nfit):"
    -			-validate posint
    -		    }
    -
    -		    var fcp_mu {
    -			-label "Target Fermi energy \[in Ry\] for constant bias \"lfcpopt\" calculation (fcp_mu):"
    -			-validate fortranreal
    -		    }
    -		}
    -
    -		separator -label "--- Semi-empirical van der Waals (aka DFT-D) ---"
    -
    -		group vdW -decor normal {
    -
    -		    var vdw_corr {
    -			-label "Type of Van der Waals correction (vdw_corr):"
    -			-textvalue {Grimme-D2   Tkatchenko-Scheffler  XDM  None}
    -			-value     {'grimme-d2' 'ts-vdw' 'xdm' ''}
    -			-widget    optionmenu
    -		    }  
    -
    -		    group dftdG {
    -			var london_s6 -label "Global scaling parameter for DFT-D (london_s6):" -validate fortranposreal
    -			var london_rcut -label "Cutoff radius for dispersion interactions \[in a.u.\] (london_rcut):" -validate fortranposreal
    -			dimension london_c6 -label "Atomic C6 coefficient for DFT-D (london_c6):" -start 1 -end 1 -validate fortranposreal
    -			dimension london_rvdw -label "Atomic vdW radius for DFT-D (london_rvdw):" -start 1 -end 1 -validate fortranposreal			
    -		    }
    -
    -		    group tsG {
    -			var ts_vdw_econv_thr {
    -			    -label "Convergence threshold of the vdW energy (ts_vdw_econv_thr):"
    -			    -validate fortranreal
    -			}
    -
    -			var ts_vdw_isolated {
    -			    -label "Compute the Tkatchenko-Scheffler vdW energy for an isolated system (ts_vdw_isolated):"
    -			    -widget    radiobox
    -			    -textvalue { Yes No }	      
    -			    -value     { .true. .false. }
    -			}
    -		    }
    -		    
    -		    group xdmG {
    -			var xdm_a1 -label "Damping function parameter a1 (xdm_a1):" -validate fortranreal
    -			var xdm_a2 -label "Damping function parameter a1 (xdm_a2):" -validate fortranreal
    -		    }
    -		    
    -		    group vdw_obsolete -name "Obsolete vdW variables:" -decor normal {
    -			
    -			var london {
    -			    -label "Compute the semi-empirical dispersion term \[aka DFT-D\] (london):"
    -			    -textvalue {Yes No}
    -			    -value     {.true. .false.}
    -			    -widget    radiobox
    -			}  
    -			
    -			var xdm {
    -			    -label "Compute the XDM-type dispersion term (xdm):"
    -			    -textvalue {Yes No}
    -			    -value     {.true. .false.}
    -			    -widget    radiobox
    -			}  
    -		    }
    -		}
    -
    -		separator -label "--- Space group: crystal type structure specs ---"
    -
    -		group spaceGroup -decor normal {
    -		    var space_group {
    -			-label "Crystal space group number (space_group):"
    -			-validate nonnegint
    -		    }
    -
    -		    var origin_choice {
    -			-label "Which choice of origin to use (origin_choice):"
    -			-widget radiobox
    -			-value  {1 2}
    -			-textvalue {"first choice"  "second choice"}
    -		    }
    -		    
    -		    group for_monoclinc -name "For monoclinic lattice:" -decor normal {
    -			var uniqueb {
    -			    -label "Set the axis b as unique (uniqueb):"
    -			    -textvalue {Yes No}
    -			    -value     {.true. .false.}
    -			    -widget    radiobox
    -			}
    -		    }
    -		    
    -		    group for_rhombohedral -name "For rhombohedral lattice:" -decor normal {
    -			var rhombohedral {
    -			    -label "Specify the coordinates with respect to rhombohedral axes (rhombohedral):"
    -			    -textvalue {Yes No}
    -			    -value     {.true. .false.}
    -			    -widget    radiobox
    -			}
    -		    }
    -		}		    
    -
    -		separator -label "--- Charged plate (gate) options ---"
    -		
    -		group gate_group -decor normal {
    -		    var zgate {
    -			-label "Z position of the charged plate (zgate):"
    -			-validate fortranposreal
    -		    }
    -
    -		    var relaxz {
    -			-label "Allow the system to relax towards the charged plate (relaxz):"
    -			-widget    radiobox
    -			-textvalue { Yes No }	      
    -			-value     { .true. .false. }
    -		    }
    -
    -		    var block {
    -			-label "Add a potential barrier to the total potential (block):"
    -			-widget    radiobox
    -			-textvalue { Yes No }	      
    -			-value     { .true. .false. }
    -		    }
    -		    
    -		    var block_1 {
    -			-label "Lower end of the potential barrier (block_1):"
    -			-validate fortranposreal
    -		    }
    -		    
    -		    var block_2 {
    -			-label "Upper end of the potential barrier (block_2):"
    -			-validate fortranposreal
    -		    }
    -		    
    -		    var block_height {
    -			-label "Height of the potential barrier \[in Ry\] (block_height):"
    -			-validate fortranreal
    -		    }		    
    -		}
    -		
    -		separator -label "--- FFT meshes ---"
    -
    -		group fft_mesh_group -decor normal {
    -		    group nrx {
    -			separator -label "--- hard grid for charge density ---"
    -			packwidgets left
    -			var nr1 -label "nr1:" -validate posint -widget spinint
    -			var nr2 -label "nr2:" -validate posint -widget spinint
    -			var nr3 -label "nr3:" -validate posint -widget spinint
    -		    }
    -
    -		    group nrxs {
    -			separator -label "--- soft grid for wavefunction ---"
    -			packwidgets left
    -			var nr1s -label "nr1s:" -validate posint -widget spinint
    -			var nr2s -label "nr2s:" -validate posint -widget spinint
    -			var nr3s -label "nr3s:" -validate posint -widget spinint
    -		    }
    -		}
    -	    }
    -	}
    +                    }
    +                    -value {'makov-payne' 'martyna-tuckerman' 'esm' 'none'}
    +                }       
    +
    +                separator -label "--- Effective screening medium ---"
    +                
    +                group ESM -decor normal {
    +                    var esm_bc {
    +                        -label "Boundary conditions for ESM (esm_bc):"
    +                        -widget    radiobox
    +                        -textvalue {
    +                            "vacuum-slab-vacuum (open boundary conditions) "
    +                            "metal-slab-metal (dual electrode configuration) "
    +                            "vacuum-slab-metal "
    +                            "regular periodic calculation (no ESM) "
    +                        }
    +                        -value {'bc1' 'bc2' 'bc3' 'pbc'}
    +                    }   
    +                    var esm_w {
    +                        -label    "Position offset [in a.u.] of the start of the ESM region (esm_w):"
    +                        -validate fortranreal
    +                    }
    +                    var esm_efield {
    +                        -label    "Magnitude of the applied electric field [Ryd/a.u.] (esm_efield):"
    +                        -validate fortranreal
    +                    }
    +                    var esm_nfit {
    +                        -label    "Number of z-grid points for the polynomial fit @ cell edge (esm_nfit):"
    +                        -validate posint
    +                    }
    +
    +                    var fcp_mu {
    +                        -label "Target Fermi energy \[in Ry\] for constant bias \"lfcpopt\" calculation (fcp_mu):"
    +                        -validate fortranreal
    +                    }
    +                }
    +
    +                separator -label "--- Semi-empirical van der Waals (aka DFT-D) ---"
    +
    +                group vdW -decor normal {
    +
    +                    var vdw_corr {
    +                        -label "Type of Van der Waals correction (vdw_corr):"
    +                        -textvalue {Grimme-D2  Grimme-D3  Tkatchenko-Scheffler  XDM  None}
    +                        -value     {'grimme-d2' 'grimme-d3' 'ts-vdw' 'xdm' ''}
    +                        -widget    optionmenu
    +                    }  
    +
    +                    group dftdG {
    +                        var london_s6 -label "Global scaling parameter for DFT-D (london_s6):" -validate fortranposreal
    +                        var london_rcut -label "Cutoff radius for dispersion interactions \[in a.u.\] (london_rcut):" -validate fortranposreal
    +                        dimension london_c6 -label "Atomic C6 coefficient for DFT-D (london_c6):" -start 1 -end 1 -validate fortranposreal
    +                        dimension london_rvdw -label "Atomic vdW radius for DFT-D (london_rvdw):" -start 1 -end 1 -validate fortranposreal                      
    +                    }
    +
    +                    group dftd3G {
    +                        var dftd3_version {
    +                            -label "Version of Grimme DFT-D3 (dftd3_version):"
    +                            -widget optionmenu
    +                            -textvalue {
    +                                "Grimme-D3 (zero damping)"
    +                                "Grimme-D3 (BJ damping)"
    +                                "Grimme-D3M (zero damping)"
    +                                "Grimme-D3M (BJ damping)"
    +                                "original Grimme-D2 parametrization"
    +                            }
    +                            -value {
    +                                3
    +                                4
    +                                5
    +                                6
    +                                2
    +                            }
    +                        }
    +
    +                        var dftd3_threebody {
    +                            -label "Use three-body terms in Grimme-D3 (dftd3_threebody):"
    +                            -widget    radiobox
    +                            -textvalue { Yes No }              
    +                            -value     { .true. .false. }
    +                        }
    +                    }
    +                    
    +                    group tsG {
    +                        var ts_vdw_econv_thr {
    +                            -label "Convergence threshold of the vdW energy (ts_vdw_econv_thr):"
    +                            -validate fortranreal
    +                        }
    +
    +                        var ts_vdw_isolated {
    +                            -label "Compute the Tkatchenko-Scheffler vdW energy for an isolated system (ts_vdw_isolated):"
    +                            -widget    radiobox
    +                            -textvalue { Yes No }             
    +                            -value     { .true. .false. }
    +                        }
    +                    }
    +                    
    +                    group xdmG {
    +                        var xdm_a1 -label "Damping function parameter a1 (xdm_a1):" -validate fortranreal
    +                        var xdm_a2 -label "Damping function parameter a1 (xdm_a2):" -validate fortranreal
    +                    }
    +                    
    +                    group vdw_obsolete -name "Obsolete vdW variables:" -decor normal {
    +                        
    +                        var london {
    +                            -label "Compute the semi-empirical dispersion term \[aka DFT-D\] (london):"
    +                            -textvalue {Yes No}
    +                            -value     {.true. .false.}
    +                            -widget    radiobox
    +                        }  
    +                        
    +                        var xdm {
    +                            -label "Compute the XDM-type dispersion term (xdm):"
    +                            -textvalue {Yes No}
    +                            -value     {.true. .false.}
    +                            -widget    radiobox
    +                        }  
    +                    }
    +                }
    +
    +                separator -label "--- Space group: crystal type structure specs ---"
    +
    +                group spaceGroup -decor normal {
    +                    var space_group {
    +                        -label "Crystal space group number (space_group):"
    +                        -validate nonnegint
    +                    }
    +
    +                    var origin_choice {
    +                        -label "Which choice of origin to use (origin_choice):"
    +                        -widget radiobox
    +                        -value  {1 2}
    +                        -textvalue {"first choice"  "second choice"}
    +                    }
    +                    
    +                    group for_monoclinc -name "For monoclinic lattice:" -decor normal {
    +                        var uniqueb {
    +                            -label "Set the axis b as unique (uniqueb):"
    +                            -textvalue {Yes No}
    +                            -value     {.true. .false.}
    +                            -widget    radiobox
    +                        }
    +                    }
    +                    
    +                    group for_rhombohedral -name "For rhombohedral lattice:" -decor normal {
    +                        var rhombohedral {
    +                            -label "Specify the coordinates with respect to rhombohedral axes (rhombohedral):"
    +                            -textvalue {Yes No}
    +                            -value     {.true. .false.}
    +                            -widget    radiobox
    +                        }
    +                    }
    +                }                   
    +
    +                separator -label "--- Charged plate (gate) options ---"
    +                
    +                group gate_group -decor normal {
    +                    var zgate {
    +                        -label "Z position of the charged plate (zgate):"
    +                        -validate fortranposreal
    +                    }
    +
    +                    var relaxz {
    +                        -label "Allow the system to relax towards the charged plate (relaxz):"
    +                        -widget    radiobox
    +                        -textvalue { Yes No }         
    +                        -value     { .true. .false. }
    +                    }
    +
    +                    var block {
    +                        -label "Add a potential barrier to the total potential (block):"
    +                        -widget    radiobox
    +                        -textvalue { Yes No }         
    +                        -value     { .true. .false. }
    +                    }
    +                    
    +                    var block_1 {
    +                        -label "Lower end of the potential barrier (block_1):"
    +                        -validate fortranposreal
    +                    }
    +                    
    +                    var block_2 {
    +                        -label "Upper end of the potential barrier (block_2):"
    +                        -validate fortranposreal
    +                    }
    +                    
    +                    var block_height {
    +                        -label "Height of the potential barrier \[in Ry\] (block_height):"
    +                        -validate fortranreal
    +                    }               
    +                }
    +                
    +                separator -label "--- FFT meshes ---"
    +
    +                group fft_mesh_group -decor normal {
    +                    group nrx {
    +                        separator -label "--- hard grid for charge density ---"
    +                        packwidgets left
    +                        var nr1 -label "nr1:" -validate posint -widget spinint
    +                        var nr2 -label "nr2:" -validate posint -widget spinint
    +                        var nr3 -label "nr3:" -validate posint -widget spinint
    +                    }
    +
    +                    group nrxs {
    +                        separator -label "--- soft grid for wavefunction ---"
    +                        packwidgets left
    +                        var nr1s -label "nr1s:" -validate posint -widget spinint
    +                        var nr2s -label "nr2s:" -validate posint -widget spinint
    +                        var nr3s -label "nr3s:" -validate posint -widget spinint
    +                    }
    +                }
    +            }
    +        }
         }
     
         ########################################################################
    @@ -954,197 +994,204 @@ module PW -title "PWSCF GUI: module PW.x" -script {
         ########################################################################
     
         page electronsPage -name "Electrons" {
    -	namelist electrons -name "ELECTRONS" {
    -	    optional {
    -		var electron_maxstep {
    -		    -label     "Max. \# of iterations in SCF step (electron_maxstep):"
    -		    -widget    spinint
    -		    -validate  posint
    -		    -fmt       %d
    -		}
    -
    -		var scf_must_converge {
    -		    -label     "Stop MD or ionic relaxation if SCF fails to converge (scf_must_converge):"
    -		    -widget    radiobox
    -		    -textvalue { Yes No }	      
    -		    -value     { .true. .false. }
    -		}
    -		
    -		var conv_thr {
    -		    -label     "Convergence threshold for selfconsistency (conv_thr):"
    -		    -validate  fortranposreal
    -		}
    -
    -		var startingpot {
    -		    -label    "Type of starting potential (startingpot):"
    -		    -widget   optionmenu
    -		    -textvalue {
    -			"from atomic charge superposition  "
    -			{from existing potential "prefix".pot file  }
    -		    }
    -		    -value {'atomic' 'file'}
    -		}
    -
    -		var startingwfc {
    -		    -label    "Type of starting wavefunctions (startingwfc):"
    -		    -widget   optionmenu
    -		    -textvalue {
    -			"from superposition of atomic orbitals  "
    -			"from  + superimposed \"randomization\"  "
    -			"from random wavefunctions  "
    -			"from existing wavefunction file  "
    -		    }
    -		    -value {'atomic' 'atomic+random' 'random' 'file'}
    -		}
    -
    -		separator -label "--- Adaptive convergence setup for EXX ---"
    -		
    -		group adaptive_thr_group -decor normal {
    -		    var adaptive_thr {
    -			-label     "Use adaptive convergence threshold for EXX (adaptive_thr):"
    -			-widget    radiobox
    -			-textvalue { Yes No }	      
    -			-value     { .true. .false. }
    -		    }
    -		    
    -		    group adaptive_thr_setup -decor none {
    -			var conv_thr_init  {
    -			    -label     "Convergence threshold used for the first scf cycle (conv_thr_init):"
    -			    -validate  fortranposreal
    -			}		    
    -			var conv_thr_multi {
    -			    -label     "Convergence threshold factor for the rest of scf cycles (conv_thr_multi):"
    -			    -validate  fortranposreal
    -			}
    -		    }
    -		}
    -
    -		separator -label "--- SCF mixing ---"
    -
    -		group scf_mixing -decor normal {
    -
    -		    var mixing_mode {
    -			-label     "Mixing mode (mixing_mode):"
    -			-textvalue {
    -			    "charge density Broyden mixing  "
    -			    "charge density Broyden mixing with simple Thomas-Fermi (TF) screening  "
    -			    "charge density Broyden mixing with local-density-dependent TF screening  "
    -			}
    -			-value {
    -			    'plain' 
    -			    'TF'    
    -			    'local-TF'
    -			}
    -			-widget optionmenu
    -		    }
    -		    
    -		    var mixing_beta {
    -			-label    "Mixing factor for self-consistency (mixing_beta):"
    -			-validate  fortranposreal
    -		    }
    -
    -		    var mixing_ndim {
    -			-label    "Number of iterations used in mixing scheme (mixing_ndim):"
    -			-widget   spinint
    -			-validate posint
    -			-fmt      %d
    -		    }
    -
    -		    var mixing_fixed_ns {
    -			-text     "For LDA+U only: ns = atomic density appearing in the Hubbard term"
    -			-label    "Number of iterations with fixed ns (mixing_fixed_ns):" 
    -			-widget   spinint
    -			-validate posint
    -			-fmt      %d
    -		    }
    -		}
    -		separator -label "--- Diagonalization ---"
    -
    -		group diag_group -decor normal {
    -		    var diagonalization {
    -			-label    "Type of diagonalization (diagonalization):"
    -			-textvalue {
    -			    "Davidson with overlap matrix  "
    -			    "Conjugate-gradient band-by-band "
    -			}
    -			-value {
    -			    'david'
    -			    'cg'
    -			}
    -			-widget optionmenu
    -		    }
    -		    
    -		    var diago_thr_init {
    -			-label "Convergence threshold for 1st iterative diagonalization (diago_thr_init):"
    -			-validate fortranreal
    -		    }
    -		    
    -		    var diago_full_acc {
    -			-label "Diagonalize empty states as precise as occupied states (diago_full_acc):"
    -			-widget    radiobox
    -			-textvalue { Yes No }	      
    -			-value     { .true. .false. }
    -		    }
    -
    -		    separator -label "--- Conjugate-Gradient diagonalization ---"
    -		    
    -		    var diago_cg_maxiter {
    -			-label    "Max. \# of iterations (diago_cg_maxiter):"
    -			-widget   spinint
    -			-validate posint
    -			-fmt      %d
    -		    }
    -		    
    -		    separator -label "--- Davidson diagonalization ---"
    -		    
    -		    var diago_david_ndim {
    -			-label    "Dimension of workspace (diago_david_ndim):"
    -			-widget   spinint
    -			-validate posint
    -			-fmt      %d
    -		    }
    -		}
    -
    -		separator -label "--- Finite electric field calculation ---"
    -		
    -		group elfield_group -decor normal {
    -		    var efield {
    -			-label    "The intensity of the electric field (efield):"
    -			-validate fortranreal
    -		    }
    -		    
    -		    dimension efield_cart {
    -			-label    "Finite electric field in cartesian axis (efield_cart):"
    -			-validate fortranreal
    -			-start    1
    -			-end      3
    -		    }
    -
    -		    var efield_phase {
    -			-label "Efield_phase (efield_phase):"
    -			-widget optionmenu
    -			-value { 'read' 'write' 'none' }
    -		    }
    -		}
    -		
    -		separator -label "--- Ultrasoft pseudopotentials ---"
    -		
    -		var tqr {
    -		    -label "Use  real-space algorithm for augmentation charges (tqr):"
    -		    -widget    radiobox
    -		    -textvalue { Yes No }	      
    -		    -value     { .true. .false. }		
    -		}
    -
    -		separator -label "--- Obsolete variables ---"
    -
    -		var ortho_para {
    -		    -text     "OBSOLETE: use command-line option \" -ndiag XX\" instead"
    -		    -label    "(ortho_para):"
    -		    -validate integer
    -		}
    -	    }    
    -	}
    +        namelist electrons -name "ELECTRONS" {
    +            optional {
    +                var electron_maxstep {
    +                    -label     "Max. \# of iterations in SCF step (electron_maxstep):"
    +                    -widget    spinint
    +                    -validate  posint
    +                    -fmt       %d
    +                }
    +
    +                var scf_must_converge {
    +                    -label     "Stop MD or ionic relaxation if SCF fails to converge (scf_must_converge):"
    +                    -widget    radiobox
    +                    -textvalue { Yes No }             
    +                    -value     { .true. .false. }
    +                }
    +                
    +                var conv_thr {
    +                    -label     "Convergence threshold for selfconsistency (conv_thr):"
    +                    -validate  fortranposreal
    +                }
    +
    +                var startingpot {
    +                    -label    "Type of starting potential (startingpot):"
    +                    -widget   optionmenu
    +                    -textvalue {
    +                        "from atomic charge superposition  "
    +                        {from existing potential "prefix".pot file  }
    +                    }
    +                    -value {'atomic' 'file'}
    +                }
    +
    +                var startingwfc {
    +                    -label    "Type of starting wavefunctions (startingwfc):"
    +                    -widget   optionmenu
    +                    -textvalue {
    +                        "from superposition of atomic orbitals  "
    +                        "from  + superimposed \"randomization\"  "
    +                        "from random wavefunctions  "
    +                        "from existing wavefunction file  "
    +                    }
    +                    -value {'atomic' 'atomic+random' 'random' 'file'}
    +                }
    +
    +                separator -label "--- Adaptive convergence setup for EXX ---"
    +                
    +                group adaptive_thr_group -decor normal {
    +                    var adaptive_thr {
    +                        -label     "Use adaptive convergence threshold for EXX (adaptive_thr):"
    +                        -widget    radiobox
    +                        -textvalue { Yes No }         
    +                        -value     { .true. .false. }
    +                    }
    +                    
    +                    group adaptive_thr_setup -decor none {
    +                        var conv_thr_init  {
    +                            -label     "Convergence threshold used for the first scf cycle (conv_thr_init):"
    +                            -validate  fortranposreal
    +                        }                   
    +                        var conv_thr_multi {
    +                            -label     "Convergence threshold factor for the rest of scf cycles (conv_thr_multi):"
    +                            -validate  fortranposreal
    +                        }
    +                    }
    +                }
    +
    +                separator -label "--- SCF mixing ---"
    +
    +                group scf_mixing -decor normal {
    +
    +                    var mixing_mode {
    +                        -label     "Mixing mode (mixing_mode):"
    +                        -textvalue {
    +                            "charge density Broyden mixing  "
    +                            "charge density Broyden mixing with simple Thomas-Fermi (TF) screening  "
    +                            "charge density Broyden mixing with local-density-dependent TF screening  "
    +                        }
    +                        -value {
    +                            'plain' 
    +                            'TF'    
    +                            'local-TF'
    +                        }
    +                        -widget optionmenu
    +                    }
    +                    
    +                    var mixing_beta {
    +                        -label    "Mixing factor for self-consistency (mixing_beta):"
    +                        -validate  fortranposreal
    +                    }
    +
    +                    var mixing_ndim {
    +                        -label    "Number of iterations used in mixing scheme (mixing_ndim):"
    +                        -widget   spinint
    +                        -validate posint
    +                        -fmt      %d
    +                    }
    +
    +                    var mixing_fixed_ns {
    +                        -text     "For LDA+U only: ns = atomic density appearing in the Hubbard term"
    +                        -label    "Number of iterations with fixed ns (mixing_fixed_ns):" 
    +                        -widget   spinint
    +                        -validate posint
    +                        -fmt      %d
    +                    }
    +                }
    +                separator -label "--- Diagonalization ---"
    +
    +                group diag_group -decor normal {
    +                    var diagonalization {
    +                        -label    "Type of diagonalization (diagonalization):"
    +                        -textvalue {
    +                            "Davidson with overlap matrix  "
    +                            "Conjugate-gradient band-by-band "
    +                        }
    +                        -value {
    +                            'david'
    +                            'cg'
    +                        }
    +                        -widget optionmenu
    +                    }
    +                    
    +                    var diago_thr_init {
    +                        -label "Convergence threshold for 1st iterative diagonalization (diago_thr_init):"
    +                        -validate fortranreal
    +                    }
    +                    
    +                    var diago_full_acc {
    +                        -label "Diagonalize empty states as precise as occupied states (diago_full_acc):"
    +                        -widget    radiobox
    +                        -textvalue { Yes No }         
    +                        -value     { .true. .false. }
    +                    }
    +
    +                    separator -label "--- Conjugate-Gradient diagonalization ---"
    +                    
    +                    var diago_cg_maxiter {
    +                        -label    "Max. \# of iterations (diago_cg_maxiter):"
    +                        -widget   spinint
    +                        -validate posint
    +                        -fmt      %d
    +                    }
    +                    
    +                    separator -label "--- Davidson diagonalization ---"
    +                    
    +                    var diago_david_ndim {
    +                        -label    "Dimension of workspace (diago_david_ndim):"
    +                        -widget   spinint
    +                        -validate posint
    +                        -fmt      %d
    +                    }
    +                }
    +
    +                separator -label "--- Finite electric field calculation ---"
    +                
    +                group elfield_group -decor normal {
    +                    var efield {
    +                        -label    "The intensity of the electric field (efield):"
    +                        -validate fortranreal
    +                    }
    +                    
    +                    dimension efield_cart {
    +                        -label    "Finite electric field in cartesian axis (efield_cart):"
    +                        -validate fortranreal
    +                        -start    1
    +                        -end      3
    +                    }
    +
    +                    var efield_phase {
    +                        -label "Efield_phase (efield_phase):"
    +                        -widget optionmenu
    +                        -value { 'read' 'write' 'none' }
    +                    }
    +                }
    +                
    +                separator -label "--- Real space algorithms ---"
    +                
    +                var tqr {
    +                    -label "Use real-space algorithm for augmentation charges (tqr):"
    +                    -widget    radiobox
    +                    -textvalue { Yes No }             
    +                    -value     { .true. .false. }               
    +                }
    +
    +                var real_space {
    +                    -label "Exploit real-space localization (real_space):"
    +                    -widget    radiobox
    +                    -textvalue { Yes No }              
    +                    -value     { .true. .false. }
    +                }
    +               
    +                separator -label "--- Obsolete variables ---"
    +
    +                var ortho_para {
    +                    -text     "OBSOLETE: use command-line option \" -ndiag XX\" instead"
    +                    -label    "(ortho_para):"
    +                    -validate integer
    +                }
    +            }    
    +        }
         }
     
         ########################################################################
    @@ -1153,172 +1200,172 @@ module PW -title "PWSCF GUI: module PW.x" -script {
         ##                                                                    ##
         ########################################################################
     
    -    page ionsPage -name "Ions" {	
    -	namelist ions -name "IONS" {
    -	    optional {
    -		# this should be modified as it is CASE dependent		
    -		var ion_dynamics {
    -		    -label "Type of ionic dynamics (ion_dynamics):"
    -		    -widget   optionmenu
    -		    -textvalue {
    -			"BFGS quasi-newton method for structural optimization  "
    -			"damped dynamics (quick-min Verlet) for structural optimization  "
    -			"Verlet algorithm for molecular dynamics  "
    -			"over-damped Langevin dynamics  "
    -			"over-damped Langevin with Smart Monte Carlo "
    +    page ionsPage -name "Ions" {        
    +        namelist ions -name "IONS" {
    +            optional {
    +                # this should be modified as it is CASE dependent               
    +                var ion_dynamics {
    +                    -label "Type of ionic dynamics (ion_dynamics):"
    +                    -widget   optionmenu
    +                    -textvalue {
    +                        "BFGS quasi-newton method for structural optimization  "
    +                        "damped dynamics (quick-min Verlet) for structural optimization  "
    +                        "Verlet algorithm for molecular dynamics  "
    +                        "over-damped Langevin dynamics  "
    +                        "over-damped Langevin with Smart Monte Carlo "
                             "Beeman algorithm for variable cell damped dynamics  "
    -			"Beeman algorithm for variable cell MD  "
    -		    }
    -		    -value {
    -			'bfgs' 
    -			'damp' 
    -			'verlet'
    -			'langevin'
    +                        "Beeman algorithm for variable cell MD  "
    +                    }
    +                    -value {
    +                        'bfgs' 
    +                        'damp' 
    +                        'verlet'
    +                        'langevin'
                             'langevin-smc'
    -			'damp'
    -			'beeman'
    -		    }
    -		}
    -
    -		var ion_positions {
    -		    -label "Which ion positions to use when restarting (ion_positions):"
    -		    -widget radiobox
    -		    -textvalue { 
    -			"from restart file"
    -			"from standard input"			
    -		    }
    -		    -value { 'default' 'from_input' }
    -		}
    +                        'damp'
    +                        'beeman'
    +                    }
    +                }
    +
    +                var ion_positions {
    +                    -label "Which ion positions to use when restarting (ion_positions):"
    +                    -widget radiobox
    +                    -textvalue { 
    +                        "from restart file"
    +                        "from standard input"                   
    +                    }
    +                    -value { 'default' 'from_input' }
    +                }
                     
    -		var pot_extrapolation {
    -		    -text "Extrapolation for the potential"
    -		    -label "Type of extrapolation (pot_extrapolation):"
    -		    -textvalue {
    -			"no extrapolation  "
    -			"extrapolate the potential as a sum of atomic-like orbitals  "
    -			"extrapolate potential with first-order  formula  "
    -			"extrapolate potential with second-order formula  "
    -		    }
    -		    -value {
    -			'none' 'atomic' 'first_order' 'second_order'
    -		    }
    -		    -widget optionmenu
    -		}
    +                var pot_extrapolation {
    +                    -text "Extrapolation for the potential"
    +                    -label "Type of extrapolation (pot_extrapolation):"
    +                    -textvalue {
    +                        "no extrapolation  "
    +                        "extrapolate the potential as a sum of atomic-like orbitals  "
    +                        "extrapolate potential with first-order  formula  "
    +                        "extrapolate potential with second-order formula  "
    +                    }
    +                    -value {
    +                        'none' 'atomic' 'first_order' 'second_order'
    +                    }
    +                    -widget optionmenu
    +                }
                     
    -		var wfc_extrapolation {
    -		    -text "Extrapolation for the wavefunctions"
    -		    -label "Type of extrapolation (wfc_extrapolation):"
    -		    -textvalue {
    -			"no extrapolation  "
    -			"extrapolate wave-functions with first-order  formula  "
    -			"extrapolate wave-functions with second-order formula  "
    -		    }
    -		    -value {
    -			'none' 'first_order' 'second_order'
    -		    }
    -		    -widget optionmenu
    -		}                
    -
    -		var remove_rigid_rot {
    -		    -label "Remove the total torque from internal forces (remove_rigid_rot):"
    -		    -widget    radiobox
    -		    -textvalue { Yes No }	      
    -		    -value     { .true. .false. }		
    -		}
    -
    -		separator -label "--- Molecular Dynamics ---"
    -
    -		group md -decor normal {
    -		    var ion_temperature {
    -			-label    "Temperature of ions (ion_temperature):"
    -			-widget   optionmenu
    -			-textvalue {
    -			    "velocity rescaling via tempw&tolp  "
    -			    "velocity rescaling via tempw&nraise  "
    -			    "velocity rescaling via delta_t  "
    -			    "reduce ionic temperature via delta_t&nraise  "
    -			    "\"soft\" Berendsen velocity rescaling via tempw&nraise  "
    -			    "use Andersen thermostat via tempw&nraise  "
    -			    "initialize to temperature \"tempw\" and leave uncontrolled "
    -			    "not controlled  "
    -			}
    -			-value {
    -			    'rescaling'
    -			    'rescale-v'
    -			    'rescale-T'
    -			    'reduce-T'
    -			    'berendsen'
    -			    'andersen'
    -			    'initial'
    -			    'not_controlled'
    -			}
    -		    }
    -		    
    -		    var tempw {
    -			-label    "Starting temperature in MD runs (tempw):"
    -			-validate  fortrannonnegreal
    -		    }
    -		    
    -		    var tolp {
    -			-label    "Tolerance for velocity rescaling (tolp):"
    -			-validate fortranreal
    -		    }
    +                var wfc_extrapolation {
    +                    -text "Extrapolation for the wavefunctions"
    +                    -label "Type of extrapolation (wfc_extrapolation):"
    +                    -textvalue {
    +                        "no extrapolation  "
    +                        "extrapolate wave-functions with first-order  formula  "
    +                        "extrapolate wave-functions with second-order formula  "
    +                    }
    +                    -value {
    +                        'none' 'first_order' 'second_order'
    +                    }
    +                    -widget optionmenu
    +                }                
    +
    +                var remove_rigid_rot {
    +                    -label "Remove the total torque from internal forces (remove_rigid_rot):"
    +                    -widget    radiobox
    +                    -textvalue { Yes No }             
    +                    -value     { .true. .false. }               
    +                }
    +
    +                separator -label "--- Molecular Dynamics ---"
    +
    +                group md -decor normal {
    +                    var ion_temperature {
    +                        -label    "Temperature of ions (ion_temperature):"
    +                        -widget   optionmenu
    +                        -textvalue {
    +                            "velocity rescaling via tempw&tolp  "
    +                            "velocity rescaling via tempw&nraise  "
    +                            "velocity rescaling via delta_t  "
    +                            "reduce ionic temperature via delta_t&nraise  "
    +                            "\"soft\" Berendsen velocity rescaling via tempw&nraise  "
    +                            "use Andersen thermostat via tempw&nraise  "
    +                            "initialize to temperature \"tempw\" and leave uncontrolled "
    +                            "not controlled  "
    +                        }
    +                        -value {
    +                            'rescaling'
    +                            'rescale-v'
    +                            'rescale-T'
    +                            'reduce-T'
    +                            'berendsen'
    +                            'andersen'
    +                            'initial'
    +                            'not_controlled'
    +                        }
    +                    }
    +                    
    +                    var tempw {
    +                        -label    "Starting temperature in MD runs (tempw):"
    +                        -validate  fortrannonnegreal
    +                    }
    +                    
    +                    var tolp {
    +                        -label    "Tolerance for velocity rescaling (tolp):"
    +                        -validate fortranreal
    +                    }
                         
                         var delta_t {
    -			-label    "Temperature rescaling (delta_t):"
    -			-validate fortranreal
    -		    }
    +                        -label    "Temperature rescaling (delta_t):"
    +                        -validate fortranreal
    +                    }
                         
                         var nraise {
    -			-label    "Rescaling interval (nraise):"
    -			-validate integer
    -		    }
    -
    -		    var refold_pos {
    -			-label "Refolded ions at each step into the supercell (refold_pos):"
    -			-widget    radiobox
    -			-textvalue { Yes No }	      
    -			-value     { .true. .false. }
    -		    }
    -		}
    -
    -		separator -label "--- BFGS Structural Optimization ---"
    -
    -		group bfgs -decor normal {
    -		    var upscale {
    -			-label   "Maximum reduction factor for conv_thr during optimization (upscale):"
    -			-validate  fortranposreal
    -		    }
    -
    -		    var bfgs_ndim {
    -			-label "Number of old forces and displacements used in the Pulay mixing (bfgs_ndim):"
    -			-widget   spinint
    -			-validate posint
    -		    }
    -
    -		    var trust_radius_max {
    -			-label "Maximum ionic displacement in the structural relaxation (trust_radius_max):"
    -			-validate fortranposreal
    -		    }
    -
    -		    var trust_radius_min {
    -			-label "Minimum ionic displacement in the structural relaxation (trust_radius_min):"
    -			-validate fortranposreal
    -		    }
    -
    -		    var trust_radius_ini {
    -			-label "Initial ionic displacement in the structural relaxation (trust_radius_ini):"
    -			-validate fortranposreal
    -		    }
    -		    
    -		    group w1_w2 -name "Parameters used in line search based on the Wolfe conditions:" -decor normal {
    -			packwidgets left
    -			var w_1 -label "w_1:" -validate fortranreal			
    -			var w_2 -label "w_2:" -validate fortranreal			
    -		    }
    -		}		                
    -	    }
    -	}
    +                        -label    "Rescaling interval (nraise):"
    +                        -validate integer
    +                    }
    +
    +                    var refold_pos {
    +                        -label "Refolded ions at each step into the supercell (refold_pos):"
    +                        -widget    radiobox
    +                        -textvalue { Yes No }         
    +                        -value     { .true. .false. }
    +                    }
    +                }
    +
    +                separator -label "--- BFGS Structural Optimization ---"
    +
    +                group bfgs -decor normal {
    +                    var upscale {
    +                        -label   "Maximum reduction factor for conv_thr during optimization (upscale):"
    +                        -validate  fortranposreal
    +                    }
    +
    +                    var bfgs_ndim {
    +                        -label "Number of old forces and displacements used in the Pulay mixing (bfgs_ndim):"
    +                        -widget   spinint
    +                        -validate posint
    +                    }
    +
    +                    var trust_radius_max {
    +                        -label "Maximum ionic displacement in the structural relaxation (trust_radius_max):"
    +                        -validate fortranposreal
    +                    }
    +
    +                    var trust_radius_min {
    +                        -label "Minimum ionic displacement in the structural relaxation (trust_radius_min):"
    +                        -validate fortranposreal
    +                    }
    +
    +                    var trust_radius_ini {
    +                        -label "Initial ionic displacement in the structural relaxation (trust_radius_ini):"
    +                        -validate fortranposreal
    +                    }
    +                    
    +                    group w1_w2 -name "Parameters used in line search based on the Wolfe conditions:" -decor normal {
    +                        packwidgets left
    +                        var w_1 -label "w_1:" -validate fortranreal                     
    +                        var w_2 -label "w_2:" -validate fortranreal                     
    +                    }
    +                }                               
    +            }
    +        }
         }
     
     
    @@ -1330,72 +1377,72 @@ module PW -title "PWSCF GUI: module PW.x" -script {
     
         page variableCellPage -name "Variable Cell" {
     
    -	namelist cell -name "CELL" {
    -	    var cell_dynamics {
    -		-label "Type of dynamics for the cell (cell_dynamics):"
    -		-textvalue {
    -		    "None  "
    -		    "Damped (Beeman) dynamics of the Parrinello-Raman extended lagrangian  "
    -		    "Damped (Beeman) dynamics of the new Wentzcovitch extended lagrangian  "
    -		    "BFGS quasi-newton algorithm (ion_dynamics must be 'bfgs' too)  "
    -		    "(Beeman) dynamics of the Parrinello-Raman extended lagrangian  "
    -		    "(Beeman) dynamics of the new Wentzcovitch extended lagrangian  "
    -		}	    
    -		-value {
    -		    'none'
    -		    'damp-pr'
    -		    'damp-w'
    -		    'bfgs'
    -		    'pr'
    -		    'w'
    -		}
    -		-widget optionmenu
    -	    }
    -	    
    -	    var press {
    -		-label    "Target pressure \[in KBar\] in a variable-cell MD (press):"
    -		-validate  fortranreal
    -	    }
    -	    
    -	    var wmass {
    -		-label    "Ficticious cell mass for variable-cell MD (wmass):"
    -		-validate  fortranreal
    -
    -	    }
    -	    
    -	    var press_conv_thr {
    -		-label     "Convergence pressure threshold \[in KBar\] (press_conv_thr):"
    -		-validate  fortranposreal
    -	    }
    -	    
    -	    var cell_factor {
    -		-text     "This variable is used in the construction of the pseudopotential tables. It should exceed the maximum linear contraction of the cell during a simulation"
    -		-label    "Cell factor (cell_factor):"
    -		-validate  fortranreal
    -	    }
    -
    -	    var cell_dofree {
    -		-label "Which of the cell parameters should be moved (cell_dofree):"
    -		-textvalue {
    -		    "all    = all axis and angles are propagated"
    -		    "x      = only the x axis is moved"
    -		    "y      = only the y axis is moved"
    -		    "z      = only the z axis is moved"
    -		    "xy     = only the x and y axis are moved, angles are unchanged"
    -		    "xz     = only the x and z axis are moved, angles are unchanged"
    -		    "yz     = only the y and z axis are moved, angles are unchanged"
    -		    "xyz    = x, y and z axis are moved, angles are unchanged"
    -		    "shape  = all axis and angles, keeping the volume fixed"
    -		    "volume = the volume changes, keeping all angles fixed"
    -		    "2Dxy   = only x and y components are allowed to change"
    -		    "2Dshape = as above, keeping the area in xy plane fixed"
    -		}	    
    -		-value {
    -		    'all' 'x' 'y' 'z' 'xy' 'xz' 'yz' 'xyz' 'shape'  'volume' '2Dxy' '2Dshape'
    -		}
    -		-widget optionmenu
    -	    }
    -	}
    +        namelist cell -name "CELL" {
    +            var cell_dynamics {
    +                -label "Type of dynamics for the cell (cell_dynamics):"
    +                -textvalue {
    +                    "None  "
    +                    "Damped (Beeman) dynamics of the Parrinello-Raman extended lagrangian  "
    +                    "Damped (Beeman) dynamics of the new Wentzcovitch extended lagrangian  "
    +                    "BFGS quasi-newton algorithm (ion_dynamics must be 'bfgs' too)  "
    +                    "(Beeman) dynamics of the Parrinello-Raman extended lagrangian  "
    +                    "(Beeman) dynamics of the new Wentzcovitch extended lagrangian  "
    +                }           
    +                -value {
    +                    'none'
    +                    'damp-pr'
    +                    'damp-w'
    +                    'bfgs'
    +                    'pr'
    +                    'w'
    +                }
    +                -widget optionmenu
    +            }
    +            
    +            var press {
    +                -label    "Target pressure \[in KBar\] in a variable-cell MD (press):"
    +                -validate  fortranreal
    +            }
    +            
    +            var wmass {
    +                -label    "Ficticious cell mass for variable-cell MD (wmass):"
    +                -validate  fortranreal
    +
    +            }
    +            
    +            var press_conv_thr {
    +                -label     "Convergence pressure threshold \[in KBar\] (press_conv_thr):"
    +                -validate  fortranposreal
    +            }
    +            
    +            var cell_factor {
    +                -text     "This variable is used in the construction of the pseudopotential tables. It should exceed the maximum linear contraction of the cell during a simulation"
    +                -label    "Cell factor (cell_factor):"
    +                -validate  fortranreal
    +            }
    +
    +            var cell_dofree {
    +                -label "Which of the cell parameters should be moved (cell_dofree):"
    +                -textvalue {
    +                    "all    = all axis and angles are propagated"
    +                    "x      = only the x axis is moved"
    +                    "y      = only the y axis is moved"
    +                    "z      = only the z axis is moved"
    +                    "xy     = only the x and y axis are moved, angles are unchanged"
    +                    "xz     = only the x and z axis are moved, angles are unchanged"
    +                    "yz     = only the y and z axis are moved, angles are unchanged"
    +                    "xyz    = x, y and z axis are moved, angles are unchanged"
    +                    "shape  = all axis and angles, keeping the volume fixed"
    +                    "volume = the volume changes, keeping all angles fixed"
    +                    "2Dxy   = only x and y components are allowed to change"
    +                    "2Dshape = as above, keeping the area in xy plane fixed"
    +                }           
    +                -value {
    +                    'all' 'x' 'y' 'z' 'xy' 'xz' 'yz' 'xyz' 'shape'  'volume' '2Dxy' '2Dshape'
    +                }
    +                -widget optionmenu
    +            }
    +        }
         }
     
     
    @@ -1407,83 +1454,83 @@ module PW -title "PWSCF GUI: module PW.x" -script {
     
         page latticeAtomdataPage -name "Lattice & Atoms" {
     
    -	#
    -	# CELL_PARAMETERS
    -	#
    -	group cards__CELL_PARAMETERS -name "Card: CELL_PARAMETERS" -decor normal {
    -	    line lattice_type_line -decor none {
    -		keyword cell_parameters CELL_PARAMETERS
    -		var CELL_PARAMETERS_flags {
    -		    -label    "Cell parameter's unit:" 
    -		    -value    {alat bohr angstrom}
    -		    -textvalue {Alat Bohr Angstrom}
    -		    -widget   radiobox
    -		}
    -	    }
    -	    table lattice {
    -		-caption  "Lattice Basis Vectors:"
    -		-head     {X-Component Y-Component Z-Component}
    -		-validate {fortranreal fortranreal fortranreal}
    -		-cols     3
    -		-rows     3
    -		-outfmt   {"  %14.9f" %14.9f %14.9f}
    -	    }	
    -	}
    -
    -	#
    -	# ATOMIC_SPECIES
    -	#
    -	group atomic_species_group -name "Card: ATOMIC_SPECIES" -decor normal {
    -	    keyword atomic_species_key ATOMIC_SPECIES\n
    -	    table atomic_species \
    -		-caption  "Atomic types:" \
    -		-head     {Atomic-label Atomic-Mass Pseudopotential-file} \
    -		-cols     3 \
    -		-rows     1 \
    -		-outfmt   {"  %3s" %10.5f " %s"} \
    -		-validate {whatever fortranreal whatever} \
    -		-widgets  [list entry entry [list entrybutton "Pseudopotential ..." [list ::pwscf::pwSelectPseudopotential $this atomic_species]]]	    
    -	}
    -
    -	#
    -	# ATOMIC_POSITIONS
    -	#
    -
    -	group atomic_positions_group -name "Card: ATOMIC_POSITIONS" -decor normal {
    -	    line atom_coor_unit -decor none {
    -		keyword atomic_positions ATOMIC_POSITIONS
    -		var ATOMIC_POSITIONS_flags {
    -		    -label    "Atomic coordinate length unit:" 
    -		    -textvalue {
    -			"Cartesian in ALAT (i.e. in length units of celldm(1))  "
    -			"Cartesian in BOHR  "
    -			"Cartesian in ANGSTROMS  "
    -			"Internal crystal coordinates  "
    -			"Internal crystal coordinates of inequivalent atoms "
    -		    }
    -		    -value {alat bohr angstrom crystal crystal_sg}	    
    -		    -widget radiobox
    -		    -default "Cartesian in ALAT (i.e. in length units of celldm(1))  "
    -		}
    -	    }
    -	    
    -	    table atomic_coordinates {
    -		-caption   "Atomic coordinates:"
    -		-head      {Atomic-label X-Coordinate Y-Coordinate Z-Coordinate if_pos(1) if_pos(2) if_pos(3)}
    -		-validate  {string fortranreal fortranreal fortranreal binary binary binary}
    -		-cols      7
    -		-rows      1
    -		-outfmt    {"  %3s" "  %14.9f" %14.9f %14.9f "  %2d" %2d %2d}
    -		-widgets   {entry entry entry entry checkbutton}
    -		-onvalues  1
    -		-offvalues 0
    -		-optionalcols 4
    -	    }
    -	    # -optcols   {4 5 6}
    -
    -	    loaddata atomic_coordinates ::pwscf::pwLoadAtomCoor \
    -		"Load atomic coordinates from file ..."    
    -	}
    +        #
    +        # CELL_PARAMETERS
    +        #
    +        group cards__CELL_PARAMETERS -name "Card: CELL_PARAMETERS" -decor normal {
    +            line lattice_type_line -decor none {
    +                keyword cell_parameters CELL_PARAMETERS
    +                var CELL_PARAMETERS_flags {
    +                    -label    "Cell parameter's unit:" 
    +                    -value    {alat bohr angstrom}
    +                    -textvalue {Alat Bohr Angstrom}
    +                    -widget   radiobox
    +                }
    +            }
    +            table lattice {
    +                -caption  "Lattice Basis Vectors:"
    +                -head     {X-Component Y-Component Z-Component}
    +                -validate {fortranreal fortranreal fortranreal}
    +                -cols     3
    +                -rows     3
    +                -outfmt   {"  %14.9f" %14.9f %14.9f}
    +            }   
    +        }
    +
    +        #
    +        # ATOMIC_SPECIES
    +        #
    +        group atomic_species_group -name "Card: ATOMIC_SPECIES" -decor normal {
    +            keyword atomic_species_key ATOMIC_SPECIES\n
    +            table atomic_species \
    +                -caption  "Atomic types:" \
    +                -head     {Atomic-label Atomic-Mass Pseudopotential-file} \
    +                -cols     3 \
    +                -rows     1 \
    +                -outfmt   {"  %3s" %10.5f " %s"} \
    +                -validate {whatever fortranreal whatever} \
    +                -widgets  [list entry entry [list entrybutton "Pseudopotential ..." [list ::pwscf::pwSelectPseudopotential $this atomic_species]]]          
    +        }
    +
    +        #
    +        # ATOMIC_POSITIONS
    +        #
    +
    +        group atomic_positions_group -name "Card: ATOMIC_POSITIONS" -decor normal {
    +            line atom_coor_unit -decor none {
    +                keyword atomic_positions ATOMIC_POSITIONS
    +                var ATOMIC_POSITIONS_flags {
    +                    -label    "Atomic coordinate length unit:" 
    +                    -textvalue {
    +                        "Cartesian in ALAT (i.e. in length units of celldm(1))  "
    +                        "Cartesian in BOHR  "
    +                        "Cartesian in ANGSTROMS  "
    +                        "Internal crystal coordinates  "
    +                        "Internal crystal coordinates of inequivalent atoms "
    +                    }
    +                    -value {alat bohr angstrom crystal crystal_sg}          
    +                    -widget radiobox
    +                    -default "Cartesian in ALAT (i.e. in length units of celldm(1))  "
    +                }
    +            }
    +            
    +            table atomic_coordinates {
    +                -caption   "Atomic coordinates:"
    +                -head      {Atomic-label X-Coordinate Y-Coordinate Z-Coordinate if_pos(1) if_pos(2) if_pos(3)}
    +                -validate  {string fortranreal fortranreal fortranreal binary binary binary}
    +                -cols      7
    +                -rows      1
    +                -outfmt    {"  %3s" "  %14.9f" %14.9f %14.9f "  %2d" %2d %2d}
    +                -widgets   {entry entry entry entry checkbutton}
    +                -onvalues  1
    +                -offvalues 0
    +                -optionalcols 4
    +            }
    +            # -optcols   {4 5 6}
    +
    +            loaddata atomic_coordinates ::pwscf::pwLoadAtomCoor \
    +                "Load atomic coordinates from file ..."    
    +        }
         }
     
     
    @@ -1494,66 +1541,66 @@ module PW -title "PWSCF GUI: module PW.x" -script {
         ########################################################################
     
         page kpointsPage -name "K-points" {
    -	#
    -	# K_POINTS
    -	#
    -	group k_points_group -name "Card: K_POINTS" -decor normal {
    -	    line kpoint_type_line -decor none {
    -		keyword k_points K_POINTS
    -		var K_POINTS_flags {
    -		    -label    "K-points type:" 
    -		    -textvalue {
    -			"Manual specification in 2pi/a units  "
    -			"Manual specification in CRYSTAL units  "
    -			"Automatic generation  "
    -			"Gamma point only  "
    -			"Manual \"2pi/a\" specification for band structure plot "
    -			"Manual \"crystal\" specification for band structure plot "
    -			"Manual \"2pi/a\" specification for band structure contour plot "
    -			"Manual \"crystal\" specification for band structure contour plot "
    -		    }
    -		    -value {
    -			tpiba crystal automatic gamma tpiba_b crystal_b tpiba_c crystal_c
    -		    }
    -		    -widget radiobox
    -		    -default "Manual specification in 2pi/a units  "
    -		}
    -	    }
    -	    
    -	    line nks_line -decor none {
    -		var nks -label "Number of K-points:" -widget spinint -validate posint -default 1
    -	    }
    -
    -	    # if nks=0 then enter the mesh and shifts
    -	    group kmesh_shift_group -name "k-points mesh + shift" -decor normal {
    -		line kmesh_line -decor none {
    -		    group kmesh -name Kmesh {
    -			packwidgets left
    -			var nk1 -label "nk1:"  -widget spinint  -validate posint  -outfmt "  %d "  -default 1
    -			var nk2 -label "nk2:"  -widget spinint  -validate posint  -outfmt "%d "  -default 1
    -			var nk3 -label "nk3:"  -widget spinint  -validate posint  -outfmt "%d "  -default 1
    -		    }
    -		    group kshift -name Kshift {
    -			packwidgets left
    -			var sk1 -label "sk1:"  -widget spinint  -validate binary  -outfmt "  %d "  -default 1
    -			var sk2 -label "sk2:"  -widget spinint  -validate binary  -outfmt "%d "  -default 1
    -			var sk3 -label "sk3:"  -widget spinint  -validate binary  -outfmt "%d "  -default 1
    -		    }
    -		}
    -	    }
    -
    -	    # elseif nks>0 enetr kpoint coordinates
    -	    table kpoints {
    -		-caption  "Enter the coordinates of the K-points below:"
    -		-head     {KX-Coordinate KY-Coordinate KZ-Coordinate Weight}
    -		-cols     4
    -		-rows     0
    -		-validate {fortranreal fortranreal fortranreal fortranreal}
    -		-outfmt   {%14.9f %14.9f %14.9f "  %14.9f"}
    -	    }
    -	    loaddata kpoints ::pwscf::pwLoadKPoints \
    -		"Load K-point coordinates from file ..."	
    -	}
    +        #
    +        # K_POINTS
    +        #
    +        group k_points_group -name "Card: K_POINTS" -decor normal {
    +            line kpoint_type_line -decor none {
    +                keyword k_points K_POINTS
    +                var K_POINTS_flags {
    +                    -label    "K-points type:" 
    +                    -textvalue {
    +                        "Manual specification in 2pi/a units  "
    +                        "Manual specification in CRYSTAL units  "
    +                        "Automatic generation  "
    +                        "Gamma point only  "
    +                        "Manual \"2pi/a\" specification for band structure plot "
    +                        "Manual \"crystal\" specification for band structure plot "
    +                        "Manual \"2pi/a\" specification for band structure contour plot "
    +                        "Manual \"crystal\" specification for band structure contour plot "
    +                    }
    +                    -value {
    +                        tpiba crystal automatic gamma tpiba_b crystal_b tpiba_c crystal_c
    +                    }
    +                    -widget radiobox
    +                    -default "Manual specification in 2pi/a units  "
    +                }
    +            }
    +            
    +            line nks_line -decor none {
    +                var nks -label "Number of K-points:" -widget spinint -validate posint -default 1
    +            }
    +
    +            # if nks=0 then enter the mesh and shifts
    +            group kmesh_shift_group -name "k-points mesh + shift" -decor normal {
    +                line kmesh_line -decor none {
    +                    group kmesh -name Kmesh {
    +                        packwidgets left
    +                        var nk1 -label "nk1:"  -widget spinint  -validate posint  -outfmt "  %d "  -default 1
    +                        var nk2 -label "nk2:"  -widget spinint  -validate posint  -outfmt "%d "  -default 1
    +                        var nk3 -label "nk3:"  -widget spinint  -validate posint  -outfmt "%d "  -default 1
    +                    }
    +                    group kshift -name Kshift {
    +                        packwidgets left
    +                        var sk1 -label "sk1:"  -widget spinint  -validate binary  -outfmt "  %d "  -default 1
    +                        var sk2 -label "sk2:"  -widget spinint  -validate binary  -outfmt "%d "  -default 1
    +                        var sk3 -label "sk3:"  -widget spinint  -validate binary  -outfmt "%d "  -default 1
    +                    }
    +                }
    +            }
    +
    +            # elseif nks>0 enetr kpoint coordinates
    +            table kpoints {
    +                -caption  "Enter the coordinates of the K-points below:"
    +                -head     {KX-Coordinate KY-Coordinate KZ-Coordinate Weight}
    +                -cols     4
    +                -rows     0
    +                -validate {fortranreal fortranreal fortranreal fortranreal}
    +                -outfmt   {%14.9f %14.9f %14.9f "  %14.9f"}
    +            }
    +            loaddata kpoints ::pwscf::pwLoadKPoints \
    +                "Load K-point coordinates from file ..."        
    +        }
         }
     
         ########################################################################
    @@ -1563,89 +1610,89 @@ module PW -title "PWSCF GUI: module PW.x" -script {
         ########################################################################
         page otherPage -name "Other Cards" {
     
    -	# CARD: CONSTRAINTS
    -	
    -	group constraints_group -name "Card: CONSTRAINTS" -decor normal {
    -
    -	    auxilvar constraints_enable {
    -		-label     "Use constraints:"
    -		-value     {Yes No}
    -		-widget    radiobox
    -		-default   No
    -	    }
    -
    -	    group constraints_card -decor none {
    -
    -		keyword constraints_key CONSTRAINTS\n
    -
    -		line constraints_line1 -decor none {
    -		    var nconstr {
    -			-label    "Number of constraints:"		    
    -			-validate posint
    -			-widget   spinint
    -			-default  1
    -			-outfmt   "  %d "
    -		    }
    -		    var constr_tol {
    -			-label    "Tolerance for keeping the constraints satisfied:"
    -			-validate fortranposreal
    -		    }
    -		}
    -
    -		table constraints_table {
    -		    -caption  "Enter constraints data:\n    constraint-type   constr(1,.)   constr(2,.)   ...   { constr_target(.) }\n\n(see Help for the format of \"constraint-specification\")"
    -		    -head     {constraint-type constraint-specifications ... ... ... ...}
    -		    -validate {string fortranreal}
    -		    -cols     6
    -		    -rows     1
    -		    -optionalcols 3
    -		    -widgets  {{optionmenu {'type_coord' 'atom_coord' 'distance' 'planar_angle' 'torsional_angle' 'bennett_proj'}} entry}
    -		    -outfmt   {"  %s  " %S}
    -		    -infmt    {%d %S}
    -		}
    -	    }
    -	}    
    -
    -	# CARD: OCCUPATIONS
    -	
    -	group occupations_card -name "Card: OCCUPATIONS" -decor normal {	    
    -	    keyword occupations_key OCCUPATIONS\n
    -	    text occupations_table \
    -		-caption "Syntax for NON-spin polarized case:\n     u(1)  ....   ....   ....  u(10)\n     u(11) .... u(nbnd)\n\nSyntax for spin-polarized case:\n     u(1)  ....   ....   ....  u(10)\n     u(11) .... u(nbnd)\n     d(1)   ....  ....   ....  d(10)\n     d(11) .... d(nbnd)" \
    -		-label   "Specify occupation of each state (from 1 to nbnd) such that 10 occupations are written per line:" \
    -		-readvar ::pwscf::pwscf($this,OCCUPATIONS)
    -	}
    -
    -	#
    -	# ATOMIC_FORCES
    -	#
    -
    -	group atomic_forces_group -name "Card: ATOMIC_FORCES" -decor normal {
    -
    -	    auxilvar specify_atomic_forces {
    -		-label     "Specify atomic forces:"
    -		-widget    radiobox
    -		-textvalue { Yes No }	      
    -		-value     { .true. .false. }
    -	    }
    -
    -	    group atomic_forces_specs -decor none {
    -		keyword atomic_forces_key ATOMIC_FORCES\n
    -
    -		table atomic_forces {
    -		    -caption   "Atomic forces:"
    -		    -head      {Atomic-label Fx-component Fy-component Fz-component}
    -		    -validate  {string fortranreal fortranreal fortranreal}
    -		    -cols      4
    -		    -rows      1
    -		    -outfmt    {"  %3s" "  %14.9f" %14.9f %14.9f}
    -		    -widgets   {entry entry entry entry}
    -		}
    -		
    -		loaddata atomic_forces ::pwscf::pwLoadAtomicForces \
    -		    "Load atomic forces from file ..."    
    -	    }
    -	}
    +        # CARD: CONSTRAINTS
    +        
    +        group constraints_group -name "Card: CONSTRAINTS" -decor normal {
    +
    +            auxilvar constraints_enable {
    +                -label     "Use constraints:"
    +                -value     {Yes No}
    +                -widget    radiobox
    +                -default   No
    +            }
    +
    +            group constraints_card -decor none {
    +
    +                keyword constraints_key CONSTRAINTS\n
    +
    +                line constraints_line1 -decor none {
    +                    var nconstr {
    +                        -label    "Number of constraints:"                  
    +                        -validate posint
    +                        -widget   spinint
    +                        -default  1
    +                        -outfmt   "  %d "
    +                    }
    +                    var constr_tol {
    +                        -label    "Tolerance for keeping the constraints satisfied:"
    +                        -validate fortranposreal
    +                    }
    +                }
    +
    +                table constraints_table {
    +                    -caption  "Enter constraints data:\n    constraint-type   constr(1,.)   constr(2,.)   ...   { constr_target(.) }\n\n(see Help for the format of \"constraint-specification\")"
    +                    -head     {constraint-type constraint-specifications ... ... ... ...}
    +                    -validate {string fortranreal}
    +                    -cols     6
    +                    -rows     1
    +                    -optionalcols 3
    +                    -widgets  {{optionmenu {'type_coord' 'atom_coord' 'distance' 'planar_angle' 'torsional_angle' 'bennett_proj'}} entry}
    +                    -outfmt   {"  %s  " %S}
    +                    -infmt    {%d %S}
    +                }
    +            }
    +        }    
    +
    +        # CARD: OCCUPATIONS
    +        
    +        group occupations_card -name "Card: OCCUPATIONS" -decor normal {            
    +            keyword occupations_key OCCUPATIONS\n
    +            text occupations_table \
    +                -caption "Syntax for NON-spin polarized case:\n     u(1)  ....   ....   ....  u(10)\n     u(11) .... u(nbnd)\n\nSyntax for spin-polarized case:\n     u(1)  ....   ....   ....  u(10)\n     u(11) .... u(nbnd)\n     d(1)   ....  ....   ....  d(10)\n     d(11) .... d(nbnd)" \
    +                -label   "Specify occupation of each state (from 1 to nbnd) such that 10 occupations are written per line:" \
    +                -readvar ::pwscf::pwscf($this,OCCUPATIONS)
    +        }
    +
    +        #
    +        # ATOMIC_FORCES
    +        #
    +
    +        group atomic_forces_group -name "Card: ATOMIC_FORCES" -decor normal {
    +
    +            auxilvar specify_atomic_forces {
    +                -label     "Specify atomic forces:"
    +                -widget    radiobox
    +                -textvalue { Yes No }         
    +                -value     { .true. .false. }
    +            }
    +
    +            group atomic_forces_specs -decor none {
    +                keyword atomic_forces_key ATOMIC_FORCES\n
    +
    +                table atomic_forces {
    +                    -caption   "Atomic forces:"
    +                    -head      {Atomic-label Fx-component Fy-component Fz-component}
    +                    -validate  {string fortranreal fortranreal fortranreal}
    +                    -cols      4
    +                    -rows      1
    +                    -outfmt    {"  %3s" "  %14.9f" %14.9f %14.9f}
    +                    -widgets   {entry entry entry entry}
    +                }
    +                
    +                loaddata atomic_forces ::pwscf::pwLoadAtomicForces \
    +                    "Load atomic forces from file ..."    
    +            }
    +        }
         }
         
     
    diff --git a/GUI/PWgui/pwgui b/GUI/PWgui/pwgui
    index 9893065276..35f9df5e8c 100755
    --- a/GUI/PWgui/pwgui
    +++ b/GUI/PWgui/pwgui
    @@ -5,10 +5,9 @@
     # ----------------------------------------------------------------------
     #  Anton Kokalj
     #  Jozef Stefan Institute, Ljubljana, Slovenia
    -#  INFM DEMOCRITOS National Simulation Center, Trieste, Italy
     #  Email: Tone.Kokalj@ijs.si
     # ======================================================================
    -#  Copyright (c) 2003--2004 Anton Kokalj
    +#  Copyright (c) 2003--2019 Anton Kokalj
     # ======================================================================
     #
     #
    diff --git a/GUI/PWgui/pwgui.tcl b/GUI/PWgui/pwgui.tcl
    index 4f1263c671..e77f652a1e 100644
    --- a/GUI/PWgui/pwgui.tcl
    +++ b/GUI/PWgui/pwgui.tcl
    @@ -4,10 +4,9 @@
     # ----------------------------------------------------------------------
     #  Anton Kokalj
     #  Jozef Stefan Institute, Ljubljana, Slovenia
    -#  INFM DEMOCRITOS National Simulation Center, Trieste, Italy
     #  Email: Tone.Kokalj@ijs.si
     # ======================================================================
    -#  Copyright (c) 2003--2004 Anton Kokalj
    +#  Copyright (c) 2003--2019 Anton Kokalj
     # ======================================================================
     #
     #
    @@ -34,11 +33,10 @@ if { [info exists env(PWGUI)] } {
     	# we arrive here, if we are using SVN version of code
     	if { [file isdirectory [file join $env(PWGUI) .. Guib]] } {
     	    puts "   "
    -	    puts "   It seems you are using SVN version of PWgui/Quantum-Espresso."
    +	    puts "   It seems you are using a repository QE version of PWgui."
     	    puts "   "
    -	    puts "   For the SVN version you need to do the following:"
    -	    puts "      * cd into GUI/PWgui directory, and"
    -	    puts "      * execute: make svninit"
    +	    puts "   You need to initialize PWgui first."
    +	    puts "   Use \"make gui\" from the QE root directory."
     	    puts "   "
     	    exit
     	}
    diff --git a/GUI/PWgui/src/pwscf.itcl b/GUI/PWgui/src/pwscf.itcl
    index adfc0ad0b7..42875a8684 100644
    --- a/GUI/PWgui/src/pwscf.itcl
    +++ b/GUI/PWgui/src/pwscf.itcl
    @@ -108,10 +108,12 @@ $gui addModule module ld "LD1.X" [file join $env(PWGUI) modules atomic atomic.tc
     # ------------------------------------------------------------------------
     # help Files
     # ------------------------------------------------------------------------
    -#$gui addHelp help usersguide "User's Guide for Quantum-ESPRESSO" [file join $env(PWGUI) doc pwdocs users-guide users-guide.html]
    -$gui addHelp help usersguide "User's Guide for Quantum-ESPRESSO" [file join $env(PWGUI) doc pwdocs user_guide user_guide.html] word
     
    -$gui addHelp separator
    +set user_guide_html [file join $env(PWGUI) doc pwdocs user_guide user_guide.html]
    +if { [file exists $user_guide_html] } {
    +    $gui addHelp help usersguide "User's Guide for Quantum-ESPRESSO" $user_guide_html word
    +    $gui addHelp separator
    +}
     
     $gui addHelp help pw           "PW.X Input Syntax"  [file join $env(PWGUI) doc pwdocs INPUT_PW.html] none
     $gui addHelp help neb       "NEB.DAT Input Syntax"  [file join $env(PWGUI) doc pwdocs INPUT_NEB.html] none
    diff --git a/GUI/QE-modes/Doc/Makefile b/GUI/QE-modes/Doc/Makefile
    index 5ae19f171d..61c9419644 100644
    --- a/GUI/QE-modes/Doc/Makefile
    +++ b/GUI/QE-modes/Doc/Makefile
    @@ -1,7 +1,7 @@
     LATEX      = pdflatex
     LATEX2HTML = latex2html
     
    -VERSION = svn
    +VERSION = 6.4
     
     PDFS = user_guide.pdf
     AUXS = $(PDFS:.pdf=.aux)
    diff --git a/GUI/QE-modes/Doc/user_guide.pdf b/GUI/QE-modes/Doc/user_guide.pdf
    new file mode 100644
    index 0000000000..b8d481fde0
    Binary files /dev/null and b/GUI/QE-modes/Doc/user_guide.pdf differ
    diff --git a/GUI/QE-modes/Doc/user_guide.tex b/GUI/QE-modes/Doc/user_guide.tex
    index a501d8ed72..7d42388175 100644
    --- a/GUI/QE-modes/Doc/user_guide.tex
    +++ b/GUI/QE-modes/Doc/user_guide.tex
    @@ -1,6 +1,6 @@
     \documentclass[12pt,a4paper]{article}
     
    -\def\version{6.2}
    +\def\version{6.4}
     
     \def\qe{{\sc Quantum ESPRESSO}}
     \sloppy
    diff --git a/GUI/QE-modes/Makefile b/GUI/QE-modes/Makefile
    index cdfd90ef06..1dcc8a8255 100644
    --- a/GUI/QE-modes/Makefile
    +++ b/GUI/QE-modes/Makefile
    @@ -1,5 +1,5 @@
     TOPDIR   = $(shell cd ../..; pwd)
    -VERSION  = svn
    +VERSION  = 6.4
     GEN_MODE = $(TOPDIR)/dev-tools/gen-emacs-mode
     LATEX    = pdflatex
     
    @@ -98,7 +98,6 @@ doc:
     	cd Doc; $(MAKE)
     
     clean:
    -	- rm -f qe-modes/$(ELISP_FILES)	
     	- cd Doc; $(MAKE) clean
     
     veryclean: clean
    diff --git a/GUI/QE-modes/qe-modes/cp-mode.el b/GUI/QE-modes/qe-modes/cp-mode.el
    new file mode 100644
    index 0000000000..067bf3c958
    --- /dev/null
    +++ b/GUI/QE-modes/qe-modes/cp-mode.el
    @@ -0,0 +1,237 @@
    +;; cp-mode.el
    +;;
    +;; Copyright (C) 2016 Quantum ESPRESSO group
    +;; This file is distributed under the terms of the
    +;; GNU General Public License. See the file `License'
    +;; in the root directory of the present distribution,
    +;; or http://www.gnu.org/copyleft/gpl.txt .
    +;;
    +;; Author: Anton Kokalj (tone.kokalj at ijs.si)
    +;;
    +;; Acknowledgments:
    +;;
    +;; The implementation of qe-modes package was made possible by several
    +;; useful and helpful resources that are gratefully acknowledged, in
    +;; particular: "Mode Tutorial" of Scott Andrew Borton
    +;; (https://www.emacswiki.org/emacs/ModeTutorial, for indentation
    +;; code), "Derived Mode" and "Sample Mode" pages
    +;; (https://www.emacswiki.org/emacs/DerivedMode,
    +;; https://www.emacswiki.org/emacs/SampleMode) as well as the very
    +;; useful resources of Xah Lee
    +;; (http://ergoemacs.org/emacs/elisp_syntax_coloring.html).  Last but
    +;; not the least Sebastijan Peljhan is acknowledged for his work on
    +;; `xsf-mode' that inspired the idea of writing the qe-modes.
    +
    +
    +;; This file is not part of GNU Emacs.
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; This program is free software; you can redistribute it and/or modify
    +;; it under the terms of the GNU General Public License as published by
    +;; the Free Software Foundation; either version 2, or (at your option)
    +;; any later version.
    +;;
    +;; This lisp script is distributed in the hope that it will be useful,
    +;; but WITHOUT ANY WARRANTY; without even the implied warranty of
    +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    +;;
    +;; Permission is granted to distribute copies of this lisp script
    +;; provided the copyright notice and this permission are preserved in
    +;; all copies.
    +;;
    +;; You should have received a copy of the GNU General Public License
    +;; along with this program; if not, you can either send email to this
    +;; program's maintainer or write to: The Free Software Foundation,
    +;; Inc.; 675 Massachusetts Avenue; Cambridge, MA 02139, USA.
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +;; send bug reports to the author (tone.kokalj at ijs.si)
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +
    +;;; Commentary:
    +
    +;; This is the `cp-mode', a major mode for composing the Quantum ESPRESSO
    +;; QE-cp.x input files. For the installation and usage, see the
    +;; user_guide.pdf in the Doc/ subdirectory of the original package
    +;; (quick installation instructions are also available in the README
    +;; file of the original package).
    +
    +;;; Code:
    +
    +(require 'font-lock)
    +(require 'regexp-opt)
    +
    +(defvar cp-mode-hook nil)
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; basic variables
    +
    +;; cp's supercards (if any)
    +(defvar cp-open-supercards   (list ))
    +(defvar cp-closed-supercards (list ))
    +  
    +;; cp's namelists
    +(defvar cp-namelists (list "&CELL" "&CONTROL" "&ELECTRONS" "&IONS" "&PRESS_AI" "&SYSTEM" "&WANNIER" ))
    +(defvar qe-end-namelist (list "&END" "/"))
    +
    +;; cp's variables
    +(defvar cp-vars (list "A" "abisur" "abivol" "adapt" "ampre" "amprp" "assume_isolated" "B" "C" "calculation" "calwf" "cell_damping" "cell_dofree" "cell_dynamics" "cell_factor" "cell_parameters" "cell_temperature" "cell_velocities" "celldm" "conv_thr" "cosAB" "cosAC" "cosBC" "degauss" "disk_io" "dt" "dthr" "ecfixed" "ecutrho" "ecutwfc" "efield" "efx0" "efx1" "efy0" "efy1" "efz0" "efz1" "ekin_conv_thr" "ekincw" "electron_damping" "electron_dynamics" "electron_maxstep" "electron_temperature" "electron_velocities" "emass" "emass_cutoff" "epol" "etot_conv_thr" "exx_dis_cutoff" "exx_fraction" "exx_me_rcut_pair" "exx_me_rcut_self" "exx_neigh" "exx_poisson_eps" "exx_ps_rcut_pair" "exx_ps_rcut_self" "fnhscl" "fnosee" "fnoseh" "fnosep" "forc_conv_thr" "grease" "greash" "greasp" "Hubbard_U" "ibrav" "iesr" "input_dft" "ion_damping" "ion_dynamics" "ion_nstepe" "ion_positions" "ion_radius" "ion_temperature" "ion_velocities" "iprint" "isave" "lambda_cold" "lda_plus_u" "london_rcut" "london_s6" "max_seconds" "maxiter" "maxwfdt" "memory" "n_inner" "nat" "nbnd" "ndega" "ndr" "ndw" "nhgrp" "nhpcl" "nhptyp" "ninter_cold_restart" "nit" "niter_cg_restart" "nr1" "nr1b" "nr1s" "nr2" "nr2b" "nr2s" "nr3" "nr3b" "nr3s" "nsd" "nspin" "nstep" "nsteps" "ntyp" "nwf" "occupations" "ortho_eps" "ortho_max" "ortho_para" "orthogonalization" "outdir" "P_ext" "P_fin" "P_in" "passop" "prefix" "press" "pseudo_dir" "pvar" "q2sigma" "qcutz" "remove_rigid_rot" "restart_mode" "rho_thr" "saverho" "smearing" "startingwfc" "Surf_t" "sw_len" "tabps" "tcg" "tefield" "temph" "tempw" "title" "tolp" "tolw" "tot_charge" "tot_magnetization" "tprnfor" "tranp" "ts_vdw" "ts_vdw_econv_thr" "ts_vdw_isolated" "tstress" "vdw_corr" "verbosity" "wf_efield" "wf_friction" "wf_q" "wf_switch" "wfdt" "wffort" "wfsd" "wmass" "writev" ))
    +
    +;; cp's cards & keywords
    +(defvar cp-cards (list "ATOMIC_FORCES" "ATOMIC_POSITIONS" "ATOMIC_SPECIES" "ATOMIC_VELOCITIES" "AUTOPILOT" "CELL_PARAMETERS" "CONSTRAINTS" "OCCUPATIONS" "PLOT_WANNIER" "REF_CELL_PARAMETERS" ))
    +
    +;; cp's flags
    +(defvar cp-flags (list "a.u" "alat" "angstrom" "bohr" "crystal" ))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; derived variables
    +  
    +(defvar cp-open-supercards-regexp   (regexp-opt cp-open-supercards   'symbols)) ; may not exists
    +(defvar cp-closed-supercards-regexp (regexp-opt cp-closed-supercards 'symbols)) ; may not exists
    +
    +(defvar cp-cards-regexp (regexp-opt
    +			    (append cp-cards cp-open-supercards) 'symbols))
    +(defvar cp-flags-regexp (regexp-opt cp-flags 'symbols))
    +
    +(defvar cp-namelist-face (cons (regexp-opt (append cp-namelists qe-end-namelist) 'symbols) font-lock-function-name-face))
    +(defvar cp-variable-face (cons (regexp-opt cp-vars 'symbols) font-lock-variable-name-face))
    +
    +;; logical values as constants
    +(defvar qe-logic-face (cons (regexp-opt (list ".t." ".true." ".f." ".false.")) font-lock-constant-face))
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; regexp for indentation
    +(defvar cp-decr-indent-fold-t-re (concat "^[ \t]*" (regexp-opt qe-end-namelist t)))
    +(defvar cp-decr-indent-re        (concat "^[ \t]*" (regexp-opt
    +						       (append cp-cards cp-open-supercards cp-closed-supercards) t)))
    +;;
    +(defvar cp-deindent-fold-t-re    (concat "^[ \t]*" (regexp-opt qe-end-namelist t)))
    +;;
    +(defvar cp-indent-fold-t-re      (concat "^[ \t]*" (regexp-opt cp-namelists t)))
    +(defvar cp-indent-re             (concat "^[ \t]*" (regexp-opt cp-cards     t)))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; supercards, cards and flags are case sensitive -- here are the corresponding matchers
    +
    +(defun cp-closed-supercards-matcher (limit)
    +  (let ((case-fold-search nil))
    +    (re-search-forward cp-closed-supercards-regexp limit 'no-error)))
    +
    +(defun cp-cards-matcher (limit)
    +  (let ((case-fold-search nil))
    +    (re-search-forward cp-cards-regexp limit 'no-error)))
    +
    +(defun cp-flags-matcher (limit)
    +  (let ((case-fold-search nil))
    +    (re-search-forward cp-flags-regexp limit 'no-error)))
    +
    +
    +(font-lock-add-keywords 'cp-mode (list
    +				     cp-namelist-face 
    +				     cp-variable-face
    +				     qe-logic-face
    +				     '("," . font-lock-builtin-face)
    +				     '("(" . font-lock-builtin-face)
    +				     '(")" . font-lock-builtin-face)
    +				     ))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; register the keywords
    +
    +(font-lock-add-keywords 'cp-mode '(
    +				      (cp-closed-supercards-matcher 1 font-lock-preprocessor-face t)
    +				      (cp-cards-matcher 1 font-lock-keyword-face t)
    +				      (cp-flags-matcher 1 font-lock-type-face    t)
    +				      ))
    +
    +;;(defvar cp-keywords '(cp-namelist-face cp-variable-face))
    +(defvar cp-keywords '(((list "") . font-lock-constant-face)))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; define the sytnax of strings
    +
    +(defvar cp-mode-syntax-table
    +  (let ((table (make-syntax-table)))
    +    (modify-syntax-entry ?\' "\"'"  table)
    +    (modify-syntax-entry ?\" "\"\"" table)
    +    table)
    +  "Syntax table in use in `cp-mode' buffers.")
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; code for auto-indenting
    +
    +(defvar qe-indent 3)
    +(defun cp-indent-line ()
    +  "Indent current line according to cp input syntax."
    +  (interactive)
    +  (beginning-of-line)
    +  (if (bobp)
    +      (indent-line-to 0)		   ; First line indented to column 0
    +    (let ((not-indented t) cur-indent)
    +      (if (or (looking-at cp-decr-indent-fold-t-re)
    +	      (let ((case-fold-search nil)) (looking-at cp-decr-indent-re))) ; If the line we are looking at is the end of a block, then decrease the indentation
    +	  (progn
    +	    (save-excursion
    +	      (forward-line -1)
    +	      (setq cur-indent (- (current-indentation) qe-indent)))
    +	    (if (< cur-indent 0) ; We can't indent past the left margin
    +		(setq cur-indent 0)))
    +	(save-excursion
    +	  (while  not-indented ; Iterate backwards until we find an indentation hint
    +	    (forward-line -1)
    +	    (if (looking-at cp-deindent-fold-t-re) ; This hint indicates that we need to indent at the level of the "/" token
    +		(progn
    +		  (setq cur-indent (current-indentation))
    +		  (setq not-indented nil))
    +	      (if (or (looking-at cp-indent-fold-t-re)
    +		      (let ((case-fold-search nil)) (looking-at cp-indent-re))) ; This hint indicates that we need to indent an extra level
    +		  (progn
    +		    (setq cur-indent (+ (current-indentation) qe-indent)) ; Do the actual indenting
    +		    (setq not-indented nil))
    +		(if (bobp)
    +		    (setq not-indented nil)))))))
    +      (if cur-indent
    +	  (indent-line-to cur-indent)
    +	(indent-line-to 0))))) ; If we didn't see an indentation hint, then allow no indentation
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; define the cp-mode as derived-mode
    +
    +(define-derived-mode cp-mode prog-mode 
    +  "QE-cp.x"  
    +  "Major mode for editing Qunatum-ESPRESSO input files (QE-cp.x mode)"  
    +  (setq font-lock-defaults '((cp-keywords) nil t))
    +  (set (make-local-variable 'indent-line-function) 'cp-indent-line)
    +  
    +  ;; define the syntax of comments
    +  (setq comment-start "!")
    +  (setq comment-end "")
    +  (modify-syntax-entry ?!  "< b" cp-mode-syntax-table)
    +  (modify-syntax-entry ?\n "> b" cp-mode-syntax-table)
    +  (modify-syntax-entry ?=  " " cp-mode-syntax-table) ;; treat "=" non symbol constituent
    +  ;; end
    +  )
    +
    +;; free memory
    +
    +(setq cp-namelists nil)
    +(setq cp-vars nil)
    +(setq cp-cards nil)
    +(setq cp-flags nil)
    +(setq cp-open-supercards   nil)
    +(setq cp-closed-supercards nil)
    +
    +
    +(require 'qe-funcs)
    +
    +(provide 'cp-mode)
    +
    diff --git a/GUI/QE-modes/qe-modes/cp-mode.elc b/GUI/QE-modes/qe-modes/cp-mode.elc
    new file mode 100644
    index 0000000000..6cb171e37e
    Binary files /dev/null and b/GUI/QE-modes/qe-modes/cp-mode.elc differ
    diff --git a/GUI/QE-modes/qe-modes/ld1-mode.el b/GUI/QE-modes/qe-modes/ld1-mode.el
    new file mode 100644
    index 0000000000..d88b0b7a0c
    --- /dev/null
    +++ b/GUI/QE-modes/qe-modes/ld1-mode.el
    @@ -0,0 +1,237 @@
    +;; ld1-mode.el
    +;;
    +;; Copyright (C) 2016 Quantum ESPRESSO group
    +;; This file is distributed under the terms of the
    +;; GNU General Public License. See the file `License'
    +;; in the root directory of the present distribution,
    +;; or http://www.gnu.org/copyleft/gpl.txt .
    +;;
    +;; Author: Anton Kokalj (tone.kokalj at ijs.si)
    +;;
    +;; Acknowledgments:
    +;;
    +;; The implementation of qe-modes package was made possible by several
    +;; useful and helpful resources that are gratefully acknowledged, in
    +;; particular: "Mode Tutorial" of Scott Andrew Borton
    +;; (https://www.emacswiki.org/emacs/ModeTutorial, for indentation
    +;; code), "Derived Mode" and "Sample Mode" pages
    +;; (https://www.emacswiki.org/emacs/DerivedMode,
    +;; https://www.emacswiki.org/emacs/SampleMode) as well as the very
    +;; useful resources of Xah Lee
    +;; (http://ergoemacs.org/emacs/elisp_syntax_coloring.html).  Last but
    +;; not the least Sebastijan Peljhan is acknowledged for his work on
    +;; `xsf-mode' that inspired the idea of writing the qe-modes.
    +
    +
    +;; This file is not part of GNU Emacs.
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; This program is free software; you can redistribute it and/or modify
    +;; it under the terms of the GNU General Public License as published by
    +;; the Free Software Foundation; either version 2, or (at your option)
    +;; any later version.
    +;;
    +;; This lisp script is distributed in the hope that it will be useful,
    +;; but WITHOUT ANY WARRANTY; without even the implied warranty of
    +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    +;;
    +;; Permission is granted to distribute copies of this lisp script
    +;; provided the copyright notice and this permission are preserved in
    +;; all copies.
    +;;
    +;; You should have received a copy of the GNU General Public License
    +;; along with this program; if not, you can either send email to this
    +;; program's maintainer or write to: The Free Software Foundation,
    +;; Inc.; 675 Massachusetts Avenue; Cambridge, MA 02139, USA.
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +;; send bug reports to the author (tone.kokalj at ijs.si)
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +
    +;;; Commentary:
    +
    +;; This is the `ld1-mode', a major mode for composing the Quantum ESPRESSO
    +;; QE-ld1.x (atomic) input files. For the installation and usage, see the
    +;; user_guide.pdf in the Doc/ subdirectory of the original package
    +;; (quick installation instructions are also available in the README
    +;; file of the original package).
    +
    +;;; Code:
    +
    +(require 'font-lock)
    +(require 'regexp-opt)
    +
    +(defvar ld1-mode-hook nil)
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; basic variables
    +
    +;; ld1's supercards (if any)
    +(defvar ld1-open-supercards   (list ))
    +(defvar ld1-closed-supercards (list ))
    +  
    +;; ld1's namelists
    +(defvar ld1-namelists (list "&INPUT" "&INPUTP" "&TEST" ))
    +(defvar qe-end-namelist (list "&END" "/"))
    +
    +;; ld1's variables
    +(defvar ld1-vars (list "atom" "author" "beta" "cau_fact" "config" "configts" "decut" "deld" "dft" "dx" "ecutmax" "ecutmin" "emaxld" "eminld" "file_beta" "file_charge" "file_chi" "file_core" "file_pseudo" "file_pseudopw" "file_qvan" "file_recon" "file_screen" "file_wfcaegen" "file_wfcncgen" "file_wfcusgen" "frozen_core" "isic" "iswitch" "latt" "lgipaw_reconstruction" "lloc" "lpaw" "lsave_wfc" "lsd" "lsdts" "lsmall" "max_out_wfc" "nconf" "new_core_ps" "nlcc" "nld" "noscf" "prefix" "pseudotype" "rcloc" "rcore" "rcutv" "rel" "rel_dist" "relpert" "rho0" "rlderiv" "rm" "rmatch_augfun" "rmatch_augfun_nc" "rmax" "rpwe" "rytoev_fact" "title" "tm" "tr2" "use_paw_as_gipaw" "vdw" "verbosity" "which_augfun" "write_coulomb" "xmin" "zed" "zval" ))
    +
    +;; ld1's cards & keywords
    +(defvar ld1-cards (list "__NO-CARDS" ))
    +
    +;; ld1's flags
    +(defvar ld1-flags (list ))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; derived variables
    +  
    +(defvar ld1-open-supercards-regexp   (regexp-opt ld1-open-supercards   'symbols)) ; may not exists
    +(defvar ld1-closed-supercards-regexp (regexp-opt ld1-closed-supercards 'symbols)) ; may not exists
    +
    +(defvar ld1-cards-regexp (regexp-opt
    +			    (append ld1-cards ld1-open-supercards) 'symbols))
    +(defvar ld1-flags-regexp (regexp-opt ld1-flags 'symbols))
    +
    +(defvar ld1-namelist-face (cons (regexp-opt (append ld1-namelists qe-end-namelist) 'symbols) font-lock-function-name-face))
    +(defvar ld1-variable-face (cons (regexp-opt ld1-vars 'symbols) font-lock-variable-name-face))
    +
    +;; logical values as constants
    +(defvar qe-logic-face (cons (regexp-opt (list ".t." ".true." ".f." ".false.")) font-lock-constant-face))
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; regexp for indentation
    +(defvar ld1-decr-indent-fold-t-re (concat "^[ \t]*" (regexp-opt qe-end-namelist t)))
    +(defvar ld1-decr-indent-re        (concat "^[ \t]*" (regexp-opt
    +						       (append ld1-cards ld1-open-supercards ld1-closed-supercards) t)))
    +;;
    +(defvar ld1-deindent-fold-t-re    (concat "^[ \t]*" (regexp-opt qe-end-namelist t)))
    +;;
    +(defvar ld1-indent-fold-t-re      (concat "^[ \t]*" (regexp-opt ld1-namelists t)))
    +(defvar ld1-indent-re             (concat "^[ \t]*" (regexp-opt ld1-cards     t)))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; supercards, cards and flags are case sensitive -- here are the corresponding matchers
    +
    +(defun ld1-closed-supercards-matcher (limit)
    +  (let ((case-fold-search nil))
    +    (re-search-forward ld1-closed-supercards-regexp limit 'no-error)))
    +
    +(defun ld1-cards-matcher (limit)
    +  (let ((case-fold-search nil))
    +    (re-search-forward ld1-cards-regexp limit 'no-error)))
    +
    +(defun ld1-flags-matcher (limit)
    +  (let ((case-fold-search nil))
    +    (re-search-forward ld1-flags-regexp limit 'no-error)))
    +
    +
    +(font-lock-add-keywords 'ld1-mode (list
    +				     ld1-namelist-face 
    +				     ld1-variable-face
    +				     qe-logic-face
    +				     '("," . font-lock-builtin-face)
    +				     '("(" . font-lock-builtin-face)
    +				     '(")" . font-lock-builtin-face)
    +				     ))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; register the keywords
    +
    +(font-lock-add-keywords 'ld1-mode '(
    +				      (ld1-closed-supercards-matcher 1 font-lock-preprocessor-face t)
    +				      (ld1-cards-matcher 1 font-lock-keyword-face t)
    +				      (ld1-flags-matcher 1 font-lock-type-face    t)
    +				      ))
    +
    +;;(defvar ld1-keywords '(ld1-namelist-face ld1-variable-face))
    +(defvar ld1-keywords '(((list "") . font-lock-constant-face)))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; define the sytnax of strings
    +
    +(defvar ld1-mode-syntax-table
    +  (let ((table (make-syntax-table)))
    +    (modify-syntax-entry ?\' "\"'"  table)
    +    (modify-syntax-entry ?\" "\"\"" table)
    +    table)
    +  "Syntax table in use in `ld1-mode' buffers.")
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; code for auto-indenting
    +
    +(defvar qe-indent 3)
    +(defun ld1-indent-line ()
    +  "Indent current line according to ld1 input syntax."
    +  (interactive)
    +  (beginning-of-line)
    +  (if (bobp)
    +      (indent-line-to 0)		   ; First line indented to column 0
    +    (let ((not-indented t) cur-indent)
    +      (if (or (looking-at ld1-decr-indent-fold-t-re)
    +	      (let ((case-fold-search nil)) (looking-at ld1-decr-indent-re))) ; If the line we are looking at is the end of a block, then decrease the indentation
    +	  (progn
    +	    (save-excursion
    +	      (forward-line -1)
    +	      (setq cur-indent (- (current-indentation) qe-indent)))
    +	    (if (< cur-indent 0) ; We can't indent past the left margin
    +		(setq cur-indent 0)))
    +	(save-excursion
    +	  (while  not-indented ; Iterate backwards until we find an indentation hint
    +	    (forward-line -1)
    +	    (if (looking-at ld1-deindent-fold-t-re) ; This hint indicates that we need to indent at the level of the "/" token
    +		(progn
    +		  (setq cur-indent (current-indentation))
    +		  (setq not-indented nil))
    +	      (if (or (looking-at ld1-indent-fold-t-re)
    +		      (let ((case-fold-search nil)) (looking-at ld1-indent-re))) ; This hint indicates that we need to indent an extra level
    +		  (progn
    +		    (setq cur-indent (+ (current-indentation) qe-indent)) ; Do the actual indenting
    +		    (setq not-indented nil))
    +		(if (bobp)
    +		    (setq not-indented nil)))))))
    +      (if cur-indent
    +	  (indent-line-to cur-indent)
    +	(indent-line-to 0))))) ; If we didn't see an indentation hint, then allow no indentation
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; define the ld1-mode as derived-mode
    +
    +(define-derived-mode ld1-mode prog-mode 
    +  "QE-ld1.x (atomic)"  
    +  "Major mode for editing Qunatum-ESPRESSO input files (QE-ld1.x (atomic) mode)"  
    +  (setq font-lock-defaults '((ld1-keywords) nil t))
    +  (set (make-local-variable 'indent-line-function) 'ld1-indent-line)
    +  
    +  ;; define the syntax of comments
    +  (setq comment-start "!")
    +  (setq comment-end "")
    +  (modify-syntax-entry ?!  "< b" ld1-mode-syntax-table)
    +  (modify-syntax-entry ?\n "> b" ld1-mode-syntax-table)
    +  (modify-syntax-entry ?=  " " ld1-mode-syntax-table) ;; treat "=" non symbol constituent
    +  ;; end
    +  )
    +
    +;; free memory
    +
    +(setq ld1-namelists nil)
    +(setq ld1-vars nil)
    +(setq ld1-cards nil)
    +(setq ld1-flags nil)
    +(setq ld1-open-supercards   nil)
    +(setq ld1-closed-supercards nil)
    +
    +
    +(require 'qe-funcs)
    +
    +(provide 'ld1-mode)
    +
    diff --git a/GUI/QE-modes/qe-modes/ld1-mode.elc b/GUI/QE-modes/qe-modes/ld1-mode.elc
    new file mode 100644
    index 0000000000..d8500eb53e
    Binary files /dev/null and b/GUI/QE-modes/qe-modes/ld1-mode.elc differ
    diff --git a/GUI/QE-modes/qe-modes/neb-mode.el b/GUI/QE-modes/qe-modes/neb-mode.el
    new file mode 100644
    index 0000000000..4f7ddab76a
    --- /dev/null
    +++ b/GUI/QE-modes/qe-modes/neb-mode.el
    @@ -0,0 +1,237 @@
    +;; neb-mode.el
    +;;
    +;; Copyright (C) 2016 Quantum ESPRESSO group
    +;; This file is distributed under the terms of the
    +;; GNU General Public License. See the file `License'
    +;; in the root directory of the present distribution,
    +;; or http://www.gnu.org/copyleft/gpl.txt .
    +;;
    +;; Author: Anton Kokalj (tone.kokalj at ijs.si)
    +;;
    +;; Acknowledgments:
    +;;
    +;; The implementation of qe-modes package was made possible by several
    +;; useful and helpful resources that are gratefully acknowledged, in
    +;; particular: "Mode Tutorial" of Scott Andrew Borton
    +;; (https://www.emacswiki.org/emacs/ModeTutorial, for indentation
    +;; code), "Derived Mode" and "Sample Mode" pages
    +;; (https://www.emacswiki.org/emacs/DerivedMode,
    +;; https://www.emacswiki.org/emacs/SampleMode) as well as the very
    +;; useful resources of Xah Lee
    +;; (http://ergoemacs.org/emacs/elisp_syntax_coloring.html).  Last but
    +;; not the least Sebastijan Peljhan is acknowledged for his work on
    +;; `xsf-mode' that inspired the idea of writing the qe-modes.
    +
    +
    +;; This file is not part of GNU Emacs.
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; This program is free software; you can redistribute it and/or modify
    +;; it under the terms of the GNU General Public License as published by
    +;; the Free Software Foundation; either version 2, or (at your option)
    +;; any later version.
    +;;
    +;; This lisp script is distributed in the hope that it will be useful,
    +;; but WITHOUT ANY WARRANTY; without even the implied warranty of
    +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    +;;
    +;; Permission is granted to distribute copies of this lisp script
    +;; provided the copyright notice and this permission are preserved in
    +;; all copies.
    +;;
    +;; You should have received a copy of the GNU General Public License
    +;; along with this program; if not, you can either send email to this
    +;; program's maintainer or write to: The Free Software Foundation,
    +;; Inc.; 675 Massachusetts Avenue; Cambridge, MA 02139, USA.
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +;; send bug reports to the author (tone.kokalj at ijs.si)
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +
    +;;; Commentary:
    +
    +;; This is the `neb-mode', a major mode for composing the Quantum ESPRESSO
    +;; QE-neb.x input files. For the installation and usage, see the
    +;; user_guide.pdf in the Doc/ subdirectory of the original package
    +;; (quick installation instructions are also available in the README
    +;; file of the original package).
    +
    +;;; Code:
    +
    +(require 'font-lock)
    +(require 'regexp-opt)
    +
    +(defvar neb-mode-hook nil)
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; basic variables
    +
    +;; neb's supercards (if any)
    +(defvar neb-open-supercards   (list "FIRST_IMAGE" "INTERMEDIATE_IMAGE" "LAST_IMAGE" ))
    +(defvar neb-closed-supercards (list "BEGIN" "BEGIN_ENGINE_INPUT" "BEGIN_PATH_INPUT" "BEGIN_POSITIONS" "END" "END_ENGINE_INPUT" "END_PATH_INPUT" "END_POSITIONS" ))
    +  
    +;; neb's namelists
    +(defvar neb-namelists (list "&CELL" "&CONTROL" "&ELECTRONS" "&IONS" "&PATH" "&SYSTEM" ))
    +(defvar qe-end-namelist (list "&END" "/"))
    +
    +;; neb's variables
    +(defvar neb-vars (list "A" "adaptive_thr" "angle1" "angle2" "assume_isolated" "B" "bfgs_ndim" "block" "block_1" "block_2" "block_height" "C" "calculation" "cell_dofree" "cell_dynamics" "cell_factor" "celldm" "CI_scheme" "constrained_magnetization" "conv_thr" "conv_thr_init" "conv_thr_multi" "cosAB" "cosAC" "cosBC" "degauss" "delta_t" "dftd3_threebody" "dftd3_version" "diago_cg_maxiter" "diago_david_ndim" "diago_full_acc" "diago_thr_init" "diagonalization" "dipfield" "disk_io" "ds" "dt" "eamp" "ecfixed" "ecutfock" "ecutrho" "ecutvcut" "ecutwfc" "edir" "efield" "efield_cart" "efield_phase" "electron_maxstep" "emaxpos" "eopreg" "esm_bc" "esm_efield" "esm_nfit" "esm_w" "etot_conv_thr" "exx_fraction" "exxdiv_treatment" "fcp_mu" "fcp_tot_charge_first" "fcp_tot_charge_last" "first_last_opt" "fixed_magnetization" "forc_conv_thr" "force_symmorphic" "gate" "gdir" "Hubbard_alpha" "Hubbard_beta" "Hubbard_J" "Hubbard_J0" "Hubbard_U" "ibrav" "input_dft" "ion_dynamics" "ion_positions" "ion_temperature" "iprint" "k_max" "k_min" "lambda" "lberry" "lda_plus_u" "lda_plus_u_kind" "lelfield" "lfcpopt" "lforcet" "lkpoint_dir" "localization_thr" "london" "london_c6" "london_rcut" "london_rvdw" "london_s6" "lorbm" "lspinorb" "max_seconds" "minimum_image" "mixing_beta" "mixing_fixed_ns" "mixing_mode" "mixing_ndim" "nat" "nberrycyc" "nbnd" "no_t_rev" "noinv" "noncolin" "nosym" "nosym_evc" "nppstr" "nqx1" "nqx2" "nqx3" "nr1" "nr1s" "nr2" "nr2s" "nr3" "nr3s" "nraise" "nspin" "nstep" "nstep_path" "ntyp" "num_of_images" "occupations" "one_atom_occupations" "opt_scheme" "origin_choice" "ortho_para" "outdir" "path_thr" "pot_extrapolation" "prefix" "press" "press_conv_thr" "pseudo_dir" "q2sigma" "qcutz" "real_space" "refold_pos" "relaxz" "remove_rigid_rot" "report" "restart_mode" "rhombohedral" "scf_must_converge" "screening_parameter" "smearing" "space_group" "starting_charge" "starting_magnetization" "starting_ns_eigenvalue" "starting_spin_angle" "startingpot" "startingwfc" "string_method" "tefield" "temp_req" "tempw" "title" "tolp" "tot_charge" "tot_magnetization" "tprnfor" "tqr" "trust_radius_ini" "trust_radius_max" "trust_radius_min" "ts_vdw_econv_thr" "ts_vdw_isolated" "tstress" "U_projection_type" "uniqueb" "upscale" "use_all_frac" "use_freezing" "use_masses" "vdw_corr" "verbosity" "w_1" "w_2" "wf_collect" "wfc_extrapolation" "wfcdir" "wmass" "x_gamma_extrapolation" "xdm" "xdm_a1" "xdm_a2" "zgate" ))
    +
    +;; neb's cards & keywords
    +(defvar neb-cards (list "ATOMIC_FORCES" "ATOMIC_POSITIONS" "ATOMIC_SPECIES" "CELL_PARAMETERS" "CLIMBING_IMAGES" "CONSTRAINTS" "K_POINTS" "OCCUPATIONS" ))
    +
    +;; neb's flags
    +(defvar neb-flags (list "alat" "angstrom" "automatic" "bohr" "crystal" "crystal_b" "crystal_c" "crystal_sg" "gamma" "tpiba" "tpiba_b" "tpiba_c" ))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; derived variables
    +  
    +(defvar neb-open-supercards-regexp   (regexp-opt neb-open-supercards   'symbols)) ; may not exists
    +(defvar neb-closed-supercards-regexp (regexp-opt neb-closed-supercards 'symbols)) ; may not exists
    +
    +(defvar neb-cards-regexp (regexp-opt
    +			    (append neb-cards neb-open-supercards) 'symbols))
    +(defvar neb-flags-regexp (regexp-opt neb-flags 'symbols))
    +
    +(defvar neb-namelist-face (cons (regexp-opt (append neb-namelists qe-end-namelist) 'symbols) font-lock-function-name-face))
    +(defvar neb-variable-face (cons (regexp-opt neb-vars 'symbols) font-lock-variable-name-face))
    +
    +;; logical values as constants
    +(defvar qe-logic-face (cons (regexp-opt (list ".t." ".true." ".f." ".false.")) font-lock-constant-face))
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; regexp for indentation
    +(defvar neb-decr-indent-fold-t-re (concat "^[ \t]*" (regexp-opt qe-end-namelist t)))
    +(defvar neb-decr-indent-re        (concat "^[ \t]*" (regexp-opt
    +						       (append neb-cards neb-open-supercards neb-closed-supercards) t)))
    +;;
    +(defvar neb-deindent-fold-t-re    (concat "^[ \t]*" (regexp-opt qe-end-namelist t)))
    +;;
    +(defvar neb-indent-fold-t-re      (concat "^[ \t]*" (regexp-opt neb-namelists t)))
    +(defvar neb-indent-re             (concat "^[ \t]*" (regexp-opt neb-cards     t)))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; supercards, cards and flags are case sensitive -- here are the corresponding matchers
    +
    +(defun neb-closed-supercards-matcher (limit)
    +  (let ((case-fold-search nil))
    +    (re-search-forward neb-closed-supercards-regexp limit 'no-error)))
    +
    +(defun neb-cards-matcher (limit)
    +  (let ((case-fold-search nil))
    +    (re-search-forward neb-cards-regexp limit 'no-error)))
    +
    +(defun neb-flags-matcher (limit)
    +  (let ((case-fold-search nil))
    +    (re-search-forward neb-flags-regexp limit 'no-error)))
    +
    +
    +(font-lock-add-keywords 'neb-mode (list
    +				     neb-namelist-face 
    +				     neb-variable-face
    +				     qe-logic-face
    +				     '("," . font-lock-builtin-face)
    +				     '("(" . font-lock-builtin-face)
    +				     '(")" . font-lock-builtin-face)
    +				     ))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; register the keywords
    +
    +(font-lock-add-keywords 'neb-mode '(
    +				      (neb-closed-supercards-matcher 1 font-lock-preprocessor-face t)
    +				      (neb-cards-matcher 1 font-lock-keyword-face t)
    +				      (neb-flags-matcher 1 font-lock-type-face    t)
    +				      ))
    +
    +;;(defvar neb-keywords '(neb-namelist-face neb-variable-face))
    +(defvar neb-keywords '(((list "") . font-lock-constant-face)))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; define the sytnax of strings
    +
    +(defvar neb-mode-syntax-table
    +  (let ((table (make-syntax-table)))
    +    (modify-syntax-entry ?\' "\"'"  table)
    +    (modify-syntax-entry ?\" "\"\"" table)
    +    table)
    +  "Syntax table in use in `neb-mode' buffers.")
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; code for auto-indenting
    +
    +(defvar qe-indent 3)
    +(defun neb-indent-line ()
    +  "Indent current line according to neb input syntax."
    +  (interactive)
    +  (beginning-of-line)
    +  (if (bobp)
    +      (indent-line-to 0)		   ; First line indented to column 0
    +    (let ((not-indented t) cur-indent)
    +      (if (or (looking-at neb-decr-indent-fold-t-re)
    +	      (let ((case-fold-search nil)) (looking-at neb-decr-indent-re))) ; If the line we are looking at is the end of a block, then decrease the indentation
    +	  (progn
    +	    (save-excursion
    +	      (forward-line -1)
    +	      (setq cur-indent (- (current-indentation) qe-indent)))
    +	    (if (< cur-indent 0) ; We can't indent past the left margin
    +		(setq cur-indent 0)))
    +	(save-excursion
    +	  (while  not-indented ; Iterate backwards until we find an indentation hint
    +	    (forward-line -1)
    +	    (if (looking-at neb-deindent-fold-t-re) ; This hint indicates that we need to indent at the level of the "/" token
    +		(progn
    +		  (setq cur-indent (current-indentation))
    +		  (setq not-indented nil))
    +	      (if (or (looking-at neb-indent-fold-t-re)
    +		      (let ((case-fold-search nil)) (looking-at neb-indent-re))) ; This hint indicates that we need to indent an extra level
    +		  (progn
    +		    (setq cur-indent (+ (current-indentation) qe-indent)) ; Do the actual indenting
    +		    (setq not-indented nil))
    +		(if (bobp)
    +		    (setq not-indented nil)))))))
    +      (if cur-indent
    +	  (indent-line-to cur-indent)
    +	(indent-line-to 0))))) ; If we didn't see an indentation hint, then allow no indentation
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; define the neb-mode as derived-mode
    +
    +(define-derived-mode neb-mode prog-mode 
    +  "QE-neb.x"  
    +  "Major mode for editing Qunatum-ESPRESSO input files (QE-neb.x mode)"  
    +  (setq font-lock-defaults '((neb-keywords) nil t))
    +  (set (make-local-variable 'indent-line-function) 'neb-indent-line)
    +  
    +  ;; define the syntax of comments
    +  (setq comment-start "!")
    +  (setq comment-end "")
    +  (modify-syntax-entry ?!  "< b" neb-mode-syntax-table)
    +  (modify-syntax-entry ?\n "> b" neb-mode-syntax-table)
    +  (modify-syntax-entry ?=  " " neb-mode-syntax-table) ;; treat "=" non symbol constituent
    +  ;; end
    +  )
    +
    +;; free memory
    +
    +(setq neb-namelists nil)
    +(setq neb-vars nil)
    +(setq neb-cards nil)
    +(setq neb-flags nil)
    +(setq neb-open-supercards   nil)
    +(setq neb-closed-supercards nil)
    +
    +
    +(require 'qe-funcs)
    +
    +(provide 'neb-mode)
    +
    diff --git a/GUI/QE-modes/qe-modes/neb-mode.elc b/GUI/QE-modes/qe-modes/neb-mode.elc
    new file mode 100644
    index 0000000000..a214a21d0b
    Binary files /dev/null and b/GUI/QE-modes/qe-modes/neb-mode.elc differ
    diff --git a/GUI/QE-modes/qe-modes/ph-mode.el b/GUI/QE-modes/qe-modes/ph-mode.el
    new file mode 100644
    index 0000000000..b813a6f58e
    --- /dev/null
    +++ b/GUI/QE-modes/qe-modes/ph-mode.el
    @@ -0,0 +1,237 @@
    +;; ph-mode.el
    +;;
    +;; Copyright (C) 2016 Quantum ESPRESSO group
    +;; This file is distributed under the terms of the
    +;; GNU General Public License. See the file `License'
    +;; in the root directory of the present distribution,
    +;; or http://www.gnu.org/copyleft/gpl.txt .
    +;;
    +;; Author: Anton Kokalj (tone.kokalj at ijs.si)
    +;;
    +;; Acknowledgments:
    +;;
    +;; The implementation of qe-modes package was made possible by several
    +;; useful and helpful resources that are gratefully acknowledged, in
    +;; particular: "Mode Tutorial" of Scott Andrew Borton
    +;; (https://www.emacswiki.org/emacs/ModeTutorial, for indentation
    +;; code), "Derived Mode" and "Sample Mode" pages
    +;; (https://www.emacswiki.org/emacs/DerivedMode,
    +;; https://www.emacswiki.org/emacs/SampleMode) as well as the very
    +;; useful resources of Xah Lee
    +;; (http://ergoemacs.org/emacs/elisp_syntax_coloring.html).  Last but
    +;; not the least Sebastijan Peljhan is acknowledged for his work on
    +;; `xsf-mode' that inspired the idea of writing the qe-modes.
    +
    +
    +;; This file is not part of GNU Emacs.
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; This program is free software; you can redistribute it and/or modify
    +;; it under the terms of the GNU General Public License as published by
    +;; the Free Software Foundation; either version 2, or (at your option)
    +;; any later version.
    +;;
    +;; This lisp script is distributed in the hope that it will be useful,
    +;; but WITHOUT ANY WARRANTY; without even the implied warranty of
    +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    +;;
    +;; Permission is granted to distribute copies of this lisp script
    +;; provided the copyright notice and this permission are preserved in
    +;; all copies.
    +;;
    +;; You should have received a copy of the GNU General Public License
    +;; along with this program; if not, you can either send email to this
    +;; program's maintainer or write to: The Free Software Foundation,
    +;; Inc.; 675 Massachusetts Avenue; Cambridge, MA 02139, USA.
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +;; send bug reports to the author (tone.kokalj at ijs.si)
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +
    +;;; Commentary:
    +
    +;; This is the `ph-mode', a major mode for composing the Quantum ESPRESSO
    +;; QE-ph.x input files. For the installation and usage, see the
    +;; user_guide.pdf in the Doc/ subdirectory of the original package
    +;; (quick installation instructions are also available in the README
    +;; file of the original package).
    +
    +;;; Code:
    +
    +(require 'font-lock)
    +(require 'regexp-opt)
    +
    +(defvar ph-mode-hook nil)
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; basic variables
    +
    +;; ph's supercards (if any)
    +(defvar ph-open-supercards   (list ))
    +(defvar ph-closed-supercards (list ))
    +  
    +;; ph's namelists
    +(defvar ph-namelists (list "&INPUTPH" ))
    +(defvar qe-end-namelist (list "&END" "/"))
    +
    +;; ph's variables
    +(defvar ph-vars (list "alpha_mix" "amass" "asr" "dek" "drho_star" "dvscf_star" "electron_phonon" "elop" "epsil" "eth_ns" "eth_rps" "fildrho" "fildvscf" "fildyn" "fpol" "k1" "k2" "k3" "last_irr" "last_q" "ldiag" "ldisp" "lnoloc" "low_directory_check" "lqdir" "lraman" "lrpa" "lshift_q" "max_seconds" "modenum" "nat_todo" "niter_ph" "nk1" "nk2" "nk3" "nmix_ph" "nogg" "nq1" "nq2" "nq3" "only_init" "outdir" "prefix" "q2d" "q_in_band_form" "qplot" "read_dns_bare" "recover" "reduce_io" "search_sym" "start_irr" "start_q" "tr2_ph" "trans" "verbosity" "zeu" "zue" ))
    +
    +;; ph's cards & keywords
    +(defvar ph-cards (list "__NO-CARDS" ))
    +
    +;; ph's flags
    +(defvar ph-flags (list ))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; derived variables
    +  
    +(defvar ph-open-supercards-regexp   (regexp-opt ph-open-supercards   'symbols)) ; may not exists
    +(defvar ph-closed-supercards-regexp (regexp-opt ph-closed-supercards 'symbols)) ; may not exists
    +
    +(defvar ph-cards-regexp (regexp-opt
    +			    (append ph-cards ph-open-supercards) 'symbols))
    +(defvar ph-flags-regexp (regexp-opt ph-flags 'symbols))
    +
    +(defvar ph-namelist-face (cons (regexp-opt (append ph-namelists qe-end-namelist) 'symbols) font-lock-function-name-face))
    +(defvar ph-variable-face (cons (regexp-opt ph-vars 'symbols) font-lock-variable-name-face))
    +
    +;; logical values as constants
    +(defvar qe-logic-face (cons (regexp-opt (list ".t." ".true." ".f." ".false.")) font-lock-constant-face))
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; regexp for indentation
    +(defvar ph-decr-indent-fold-t-re (concat "^[ \t]*" (regexp-opt qe-end-namelist t)))
    +(defvar ph-decr-indent-re        (concat "^[ \t]*" (regexp-opt
    +						       (append ph-cards ph-open-supercards ph-closed-supercards) t)))
    +;;
    +(defvar ph-deindent-fold-t-re    (concat "^[ \t]*" (regexp-opt qe-end-namelist t)))
    +;;
    +(defvar ph-indent-fold-t-re      (concat "^[ \t]*" (regexp-opt ph-namelists t)))
    +(defvar ph-indent-re             (concat "^[ \t]*" (regexp-opt ph-cards     t)))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; supercards, cards and flags are case sensitive -- here are the corresponding matchers
    +
    +(defun ph-closed-supercards-matcher (limit)
    +  (let ((case-fold-search nil))
    +    (re-search-forward ph-closed-supercards-regexp limit 'no-error)))
    +
    +(defun ph-cards-matcher (limit)
    +  (let ((case-fold-search nil))
    +    (re-search-forward ph-cards-regexp limit 'no-error)))
    +
    +(defun ph-flags-matcher (limit)
    +  (let ((case-fold-search nil))
    +    (re-search-forward ph-flags-regexp limit 'no-error)))
    +
    +
    +(font-lock-add-keywords 'ph-mode (list
    +				     ph-namelist-face 
    +				     ph-variable-face
    +				     qe-logic-face
    +				     '("," . font-lock-builtin-face)
    +				     '("(" . font-lock-builtin-face)
    +				     '(")" . font-lock-builtin-face)
    +				     ))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; register the keywords
    +
    +(font-lock-add-keywords 'ph-mode '(
    +				      (ph-closed-supercards-matcher 1 font-lock-preprocessor-face t)
    +				      (ph-cards-matcher 1 font-lock-keyword-face t)
    +				      (ph-flags-matcher 1 font-lock-type-face    t)
    +				      ))
    +
    +;;(defvar ph-keywords '(ph-namelist-face ph-variable-face))
    +(defvar ph-keywords '(((list "") . font-lock-constant-face)))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; define the sytnax of strings
    +
    +(defvar ph-mode-syntax-table
    +  (let ((table (make-syntax-table)))
    +    (modify-syntax-entry ?\' "\"'"  table)
    +    (modify-syntax-entry ?\" "\"\"" table)
    +    table)
    +  "Syntax table in use in `ph-mode' buffers.")
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; code for auto-indenting
    +
    +(defvar qe-indent 3)
    +(defun ph-indent-line ()
    +  "Indent current line according to ph input syntax."
    +  (interactive)
    +  (beginning-of-line)
    +  (if (bobp)
    +      (indent-line-to 0)		   ; First line indented to column 0
    +    (let ((not-indented t) cur-indent)
    +      (if (or (looking-at ph-decr-indent-fold-t-re)
    +	      (let ((case-fold-search nil)) (looking-at ph-decr-indent-re))) ; If the line we are looking at is the end of a block, then decrease the indentation
    +	  (progn
    +	    (save-excursion
    +	      (forward-line -1)
    +	      (setq cur-indent (- (current-indentation) qe-indent)))
    +	    (if (< cur-indent 0) ; We can't indent past the left margin
    +		(setq cur-indent 0)))
    +	(save-excursion
    +	  (while  not-indented ; Iterate backwards until we find an indentation hint
    +	    (forward-line -1)
    +	    (if (looking-at ph-deindent-fold-t-re) ; This hint indicates that we need to indent at the level of the "/" token
    +		(progn
    +		  (setq cur-indent (current-indentation))
    +		  (setq not-indented nil))
    +	      (if (or (looking-at ph-indent-fold-t-re)
    +		      (let ((case-fold-search nil)) (looking-at ph-indent-re))) ; This hint indicates that we need to indent an extra level
    +		  (progn
    +		    (setq cur-indent (+ (current-indentation) qe-indent)) ; Do the actual indenting
    +		    (setq not-indented nil))
    +		(if (bobp)
    +		    (setq not-indented nil)))))))
    +      (if cur-indent
    +	  (indent-line-to cur-indent)
    +	(indent-line-to 0))))) ; If we didn't see an indentation hint, then allow no indentation
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; define the ph-mode as derived-mode
    +
    +(define-derived-mode ph-mode prog-mode 
    +  "QE-ph.x"  
    +  "Major mode for editing Qunatum-ESPRESSO input files (QE-ph.x mode)"  
    +  (setq font-lock-defaults '((ph-keywords) nil t))
    +  (set (make-local-variable 'indent-line-function) 'ph-indent-line)
    +  
    +  ;; define the syntax of comments
    +  (setq comment-start "!")
    +  (setq comment-end "")
    +  (modify-syntax-entry ?!  "< b" ph-mode-syntax-table)
    +  (modify-syntax-entry ?\n "> b" ph-mode-syntax-table)
    +  (modify-syntax-entry ?=  " " ph-mode-syntax-table) ;; treat "=" non symbol constituent
    +  ;; end
    +  )
    +
    +;; free memory
    +
    +(setq ph-namelists nil)
    +(setq ph-vars nil)
    +(setq ph-cards nil)
    +(setq ph-flags nil)
    +(setq ph-open-supercards   nil)
    +(setq ph-closed-supercards nil)
    +
    +
    +(require 'qe-funcs)
    +
    +(provide 'ph-mode)
    +
    diff --git a/GUI/QE-modes/qe-modes/ph-mode.elc b/GUI/QE-modes/qe-modes/ph-mode.elc
    new file mode 100644
    index 0000000000..215a7c008f
    Binary files /dev/null and b/GUI/QE-modes/qe-modes/ph-mode.elc differ
    diff --git a/GUI/QE-modes/qe-modes/pp-mode.el b/GUI/QE-modes/qe-modes/pp-mode.el
    new file mode 100644
    index 0000000000..aa4972e29e
    --- /dev/null
    +++ b/GUI/QE-modes/qe-modes/pp-mode.el
    @@ -0,0 +1,237 @@
    +;; pp-mode.el
    +;;
    +;; Copyright (C) 2016 Quantum ESPRESSO group
    +;; This file is distributed under the terms of the
    +;; GNU General Public License. See the file `License'
    +;; in the root directory of the present distribution,
    +;; or http://www.gnu.org/copyleft/gpl.txt .
    +;;
    +;; Author: Anton Kokalj (tone.kokalj at ijs.si)
    +;;
    +;; Acknowledgments:
    +;;
    +;; The implementation of qe-modes package was made possible by several
    +;; useful and helpful resources that are gratefully acknowledged, in
    +;; particular: "Mode Tutorial" of Scott Andrew Borton
    +;; (https://www.emacswiki.org/emacs/ModeTutorial, for indentation
    +;; code), "Derived Mode" and "Sample Mode" pages
    +;; (https://www.emacswiki.org/emacs/DerivedMode,
    +;; https://www.emacswiki.org/emacs/SampleMode) as well as the very
    +;; useful resources of Xah Lee
    +;; (http://ergoemacs.org/emacs/elisp_syntax_coloring.html).  Last but
    +;; not the least Sebastijan Peljhan is acknowledged for his work on
    +;; `xsf-mode' that inspired the idea of writing the qe-modes.
    +
    +
    +;; This file is not part of GNU Emacs.
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; This program is free software; you can redistribute it and/or modify
    +;; it under the terms of the GNU General Public License as published by
    +;; the Free Software Foundation; either version 2, or (at your option)
    +;; any later version.
    +;;
    +;; This lisp script is distributed in the hope that it will be useful,
    +;; but WITHOUT ANY WARRANTY; without even the implied warranty of
    +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    +;;
    +;; Permission is granted to distribute copies of this lisp script
    +;; provided the copyright notice and this permission are preserved in
    +;; all copies.
    +;;
    +;; You should have received a copy of the GNU General Public License
    +;; along with this program; if not, you can either send email to this
    +;; program's maintainer or write to: The Free Software Foundation,
    +;; Inc.; 675 Massachusetts Avenue; Cambridge, MA 02139, USA.
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +;; send bug reports to the author (tone.kokalj at ijs.si)
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +
    +;;; Commentary:
    +
    +;; This is the `pp-mode', a major mode for composing the Quantum ESPRESSO
    +;; QE-pp.x input files. For the installation and usage, see the
    +;; user_guide.pdf in the Doc/ subdirectory of the original package
    +;; (quick installation instructions are also available in the README
    +;; file of the original package).
    +
    +;;; Code:
    +
    +(require 'font-lock)
    +(require 'regexp-opt)
    +
    +(defvar pp-mode-hook nil)
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; basic variables
    +
    +;; pp's supercards (if any)
    +(defvar pp-open-supercards   (list ))
    +(defvar pp-closed-supercards (list ))
    +  
    +;; pp's namelists
    +(defvar pp-namelists (list "&INPUTPP" "&PLOT" ))
    +(defvar qe-end-namelist (list "&END" "/"))
    +
    +;; pp's variables
    +(defvar pp-vars (list "degauss_ldos" "delta_e" "e1" "e2" "e3" "emax" "emin" "fileout" "filepp" "filplot" "iflag" "interpolation" "kband" "kpoint" "lsign" "nfile" "nx" "ny" "nz" "outdir" "output_format" "plot_num" "prefix" "radius" "sample_bias" "spin_component" "weight" "x0" ))
    +
    +;; pp's cards & keywords
    +(defvar pp-cards (list "__NO-CARDS" ))
    +
    +;; pp's flags
    +(defvar pp-flags (list ))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; derived variables
    +  
    +(defvar pp-open-supercards-regexp   (regexp-opt pp-open-supercards   'symbols)) ; may not exists
    +(defvar pp-closed-supercards-regexp (regexp-opt pp-closed-supercards 'symbols)) ; may not exists
    +
    +(defvar pp-cards-regexp (regexp-opt
    +			    (append pp-cards pp-open-supercards) 'symbols))
    +(defvar pp-flags-regexp (regexp-opt pp-flags 'symbols))
    +
    +(defvar pp-namelist-face (cons (regexp-opt (append pp-namelists qe-end-namelist) 'symbols) font-lock-function-name-face))
    +(defvar pp-variable-face (cons (regexp-opt pp-vars 'symbols) font-lock-variable-name-face))
    +
    +;; logical values as constants
    +(defvar qe-logic-face (cons (regexp-opt (list ".t." ".true." ".f." ".false.")) font-lock-constant-face))
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; regexp for indentation
    +(defvar pp-decr-indent-fold-t-re (concat "^[ \t]*" (regexp-opt qe-end-namelist t)))
    +(defvar pp-decr-indent-re        (concat "^[ \t]*" (regexp-opt
    +						       (append pp-cards pp-open-supercards pp-closed-supercards) t)))
    +;;
    +(defvar pp-deindent-fold-t-re    (concat "^[ \t]*" (regexp-opt qe-end-namelist t)))
    +;;
    +(defvar pp-indent-fold-t-re      (concat "^[ \t]*" (regexp-opt pp-namelists t)))
    +(defvar pp-indent-re             (concat "^[ \t]*" (regexp-opt pp-cards     t)))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; supercards, cards and flags are case sensitive -- here are the corresponding matchers
    +
    +(defun pp-closed-supercards-matcher (limit)
    +  (let ((case-fold-search nil))
    +    (re-search-forward pp-closed-supercards-regexp limit 'no-error)))
    +
    +(defun pp-cards-matcher (limit)
    +  (let ((case-fold-search nil))
    +    (re-search-forward pp-cards-regexp limit 'no-error)))
    +
    +(defun pp-flags-matcher (limit)
    +  (let ((case-fold-search nil))
    +    (re-search-forward pp-flags-regexp limit 'no-error)))
    +
    +
    +(font-lock-add-keywords 'pp-mode (list
    +				     pp-namelist-face 
    +				     pp-variable-face
    +				     qe-logic-face
    +				     '("," . font-lock-builtin-face)
    +				     '("(" . font-lock-builtin-face)
    +				     '(")" . font-lock-builtin-face)
    +				     ))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; register the keywords
    +
    +(font-lock-add-keywords 'pp-mode '(
    +				      (pp-closed-supercards-matcher 1 font-lock-preprocessor-face t)
    +				      (pp-cards-matcher 1 font-lock-keyword-face t)
    +				      (pp-flags-matcher 1 font-lock-type-face    t)
    +				      ))
    +
    +;;(defvar pp-keywords '(pp-namelist-face pp-variable-face))
    +(defvar pp-keywords '(((list "") . font-lock-constant-face)))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; define the sytnax of strings
    +
    +(defvar pp-mode-syntax-table
    +  (let ((table (make-syntax-table)))
    +    (modify-syntax-entry ?\' "\"'"  table)
    +    (modify-syntax-entry ?\" "\"\"" table)
    +    table)
    +  "Syntax table in use in `pp-mode' buffers.")
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; code for auto-indenting
    +
    +(defvar qe-indent 3)
    +(defun pp-indent-line ()
    +  "Indent current line according to pp input syntax."
    +  (interactive)
    +  (beginning-of-line)
    +  (if (bobp)
    +      (indent-line-to 0)		   ; First line indented to column 0
    +    (let ((not-indented t) cur-indent)
    +      (if (or (looking-at pp-decr-indent-fold-t-re)
    +	      (let ((case-fold-search nil)) (looking-at pp-decr-indent-re))) ; If the line we are looking at is the end of a block, then decrease the indentation
    +	  (progn
    +	    (save-excursion
    +	      (forward-line -1)
    +	      (setq cur-indent (- (current-indentation) qe-indent)))
    +	    (if (< cur-indent 0) ; We can't indent past the left margin
    +		(setq cur-indent 0)))
    +	(save-excursion
    +	  (while  not-indented ; Iterate backwards until we find an indentation hint
    +	    (forward-line -1)
    +	    (if (looking-at pp-deindent-fold-t-re) ; This hint indicates that we need to indent at the level of the "/" token
    +		(progn
    +		  (setq cur-indent (current-indentation))
    +		  (setq not-indented nil))
    +	      (if (or (looking-at pp-indent-fold-t-re)
    +		      (let ((case-fold-search nil)) (looking-at pp-indent-re))) ; This hint indicates that we need to indent an extra level
    +		  (progn
    +		    (setq cur-indent (+ (current-indentation) qe-indent)) ; Do the actual indenting
    +		    (setq not-indented nil))
    +		(if (bobp)
    +		    (setq not-indented nil)))))))
    +      (if cur-indent
    +	  (indent-line-to cur-indent)
    +	(indent-line-to 0))))) ; If we didn't see an indentation hint, then allow no indentation
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; define the pp-mode as derived-mode
    +
    +(define-derived-mode pp-mode prog-mode 
    +  "QE-pp.x"  
    +  "Major mode for editing Qunatum-ESPRESSO input files (QE-pp.x mode)"  
    +  (setq font-lock-defaults '((pp-keywords) nil t))
    +  (set (make-local-variable 'indent-line-function) 'pp-indent-line)
    +  
    +  ;; define the syntax of comments
    +  (setq comment-start "!")
    +  (setq comment-end "")
    +  (modify-syntax-entry ?!  "< b" pp-mode-syntax-table)
    +  (modify-syntax-entry ?\n "> b" pp-mode-syntax-table)
    +  (modify-syntax-entry ?=  " " pp-mode-syntax-table) ;; treat "=" non symbol constituent
    +  ;; end
    +  )
    +
    +;; free memory
    +
    +(setq pp-namelists nil)
    +(setq pp-vars nil)
    +(setq pp-cards nil)
    +(setq pp-flags nil)
    +(setq pp-open-supercards   nil)
    +(setq pp-closed-supercards nil)
    +
    +
    +(require 'qe-funcs)
    +
    +(provide 'pp-mode)
    +
    diff --git a/GUI/QE-modes/qe-modes/pp-mode.elc b/GUI/QE-modes/qe-modes/pp-mode.elc
    new file mode 100644
    index 0000000000..15048eb535
    Binary files /dev/null and b/GUI/QE-modes/qe-modes/pp-mode.elc differ
    diff --git a/GUI/QE-modes/qe-modes/pw-mode.el b/GUI/QE-modes/qe-modes/pw-mode.el
    new file mode 100644
    index 0000000000..ce43b72a1d
    --- /dev/null
    +++ b/GUI/QE-modes/qe-modes/pw-mode.el
    @@ -0,0 +1,237 @@
    +;; pw-mode.el
    +;;
    +;; Copyright (C) 2016 Quantum ESPRESSO group
    +;; This file is distributed under the terms of the
    +;; GNU General Public License. See the file `License'
    +;; in the root directory of the present distribution,
    +;; or http://www.gnu.org/copyleft/gpl.txt .
    +;;
    +;; Author: Anton Kokalj (tone.kokalj at ijs.si)
    +;;
    +;; Acknowledgments:
    +;;
    +;; The implementation of qe-modes package was made possible by several
    +;; useful and helpful resources that are gratefully acknowledged, in
    +;; particular: "Mode Tutorial" of Scott Andrew Borton
    +;; (https://www.emacswiki.org/emacs/ModeTutorial, for indentation
    +;; code), "Derived Mode" and "Sample Mode" pages
    +;; (https://www.emacswiki.org/emacs/DerivedMode,
    +;; https://www.emacswiki.org/emacs/SampleMode) as well as the very
    +;; useful resources of Xah Lee
    +;; (http://ergoemacs.org/emacs/elisp_syntax_coloring.html).  Last but
    +;; not the least Sebastijan Peljhan is acknowledged for his work on
    +;; `xsf-mode' that inspired the idea of writing the qe-modes.
    +
    +
    +;; This file is not part of GNU Emacs.
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; This program is free software; you can redistribute it and/or modify
    +;; it under the terms of the GNU General Public License as published by
    +;; the Free Software Foundation; either version 2, or (at your option)
    +;; any later version.
    +;;
    +;; This lisp script is distributed in the hope that it will be useful,
    +;; but WITHOUT ANY WARRANTY; without even the implied warranty of
    +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    +;;
    +;; Permission is granted to distribute copies of this lisp script
    +;; provided the copyright notice and this permission are preserved in
    +;; all copies.
    +;;
    +;; You should have received a copy of the GNU General Public License
    +;; along with this program; if not, you can either send email to this
    +;; program's maintainer or write to: The Free Software Foundation,
    +;; Inc.; 675 Massachusetts Avenue; Cambridge, MA 02139, USA.
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +;; send bug reports to the author (tone.kokalj at ijs.si)
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +
    +;;; Commentary:
    +
    +;; This is the `pw-mode', a major mode for composing the Quantum ESPRESSO
    +;; QE-pw.x input files. For the installation and usage, see the
    +;; user_guide.pdf in the Doc/ subdirectory of the original package
    +;; (quick installation instructions are also available in the README
    +;; file of the original package).
    +
    +;;; Code:
    +
    +(require 'font-lock)
    +(require 'regexp-opt)
    +
    +(defvar pw-mode-hook nil)
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; basic variables
    +
    +;; pw's supercards (if any)
    +(defvar pw-open-supercards   (list ))
    +(defvar pw-closed-supercards (list ))
    +  
    +;; pw's namelists
    +(defvar pw-namelists (list "&CELL" "&CONTROL" "&ELECTRONS" "&IONS" "&SYSTEM" ))
    +(defvar qe-end-namelist (list "&END" "/"))
    +
    +;; pw's variables
    +(defvar pw-vars (list "A" "adaptive_thr" "angle1" "angle2" "assume_isolated" "B" "bfgs_ndim" "block" "block_1" "block_2" "block_height" "C" "calculation" "cell_dofree" "cell_dynamics" "cell_factor" "celldm" "constrained_magnetization" "conv_thr" "conv_thr_init" "conv_thr_multi" "cosAB" "cosAC" "cosBC" "degauss" "delta_t" "dftd3_threebody" "dftd3_version" "diago_cg_maxiter" "diago_david_ndim" "diago_full_acc" "diago_thr_init" "diagonalization" "dipfield" "disk_io" "dt" "eamp" "ecfixed" "ecutfock" "ecutrho" "ecutvcut" "ecutwfc" "edir" "efield" "efield_cart" "efield_phase" "electron_maxstep" "emaxpos" "eopreg" "esm_bc" "esm_efield" "esm_nfit" "esm_w" "etot_conv_thr" "exx_fraction" "exxdiv_treatment" "fcp_mu" "fixed_magnetization" "forc_conv_thr" "force_symmorphic" "gate" "gdir" "Hubbard_alpha" "Hubbard_beta" "Hubbard_J" "Hubbard_J0" "Hubbard_U" "ibrav" "input_dft" "ion_dynamics" "ion_positions" "ion_temperature" "iprint" "lambda" "lberry" "lda_plus_u" "lda_plus_u_kind" "lelfield" "lfcpopt" "lforcet" "lkpoint_dir" "localization_thr" "london" "london_c6" "london_rcut" "london_rvdw" "london_s6" "lorbm" "lspinorb" "max_seconds" "mixing_beta" "mixing_fixed_ns" "mixing_mode" "mixing_ndim" "nat" "nberrycyc" "nbnd" "no_t_rev" "noinv" "noncolin" "nosym" "nosym_evc" "nppstr" "nqx1" "nqx2" "nqx3" "nr1" "nr1s" "nr2" "nr2s" "nr3" "nr3s" "nraise" "nspin" "nstep" "ntyp" "occupations" "one_atom_occupations" "origin_choice" "ortho_para" "outdir" "pot_extrapolation" "prefix" "press" "press_conv_thr" "pseudo_dir" "q2sigma" "qcutz" "real_space" "refold_pos" "relaxz" "remove_rigid_rot" "report" "restart_mode" "rhombohedral" "scf_must_converge" "screening_parameter" "smearing" "space_group" "starting_charge" "starting_magnetization" "starting_ns_eigenvalue" "starting_spin_angle" "startingpot" "startingwfc" "tefield" "tempw" "title" "tolp" "tot_charge" "tot_magnetization" "tprnfor" "tqr" "trust_radius_ini" "trust_radius_max" "trust_radius_min" "ts_vdw_econv_thr" "ts_vdw_isolated" "tstress" "U_projection_type" "uniqueb" "upscale" "use_all_frac" "vdw_corr" "verbosity" "w_1" "w_2" "wf_collect" "wfc_extrapolation" "wfcdir" "wmass" "x_gamma_extrapolation" "xdm" "xdm_a1" "xdm_a2" "zgate" ))
    +
    +;; pw's cards & keywords
    +(defvar pw-cards (list "ATOMIC_FORCES" "ATOMIC_POSITIONS" "ATOMIC_SPECIES" "CELL_PARAMETERS" "CONSTRAINTS" "K_POINTS" "OCCUPATIONS" ))
    +
    +;; pw's flags
    +(defvar pw-flags (list "alat" "angstrom" "automatic" "bohr" "crystal" "crystal_b" "crystal_c" "crystal_sg" "gamma" "tpiba" "tpiba_b" "tpiba_c" ))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; derived variables
    +  
    +(defvar pw-open-supercards-regexp   (regexp-opt pw-open-supercards   'symbols)) ; may not exists
    +(defvar pw-closed-supercards-regexp (regexp-opt pw-closed-supercards 'symbols)) ; may not exists
    +
    +(defvar pw-cards-regexp (regexp-opt
    +			    (append pw-cards pw-open-supercards) 'symbols))
    +(defvar pw-flags-regexp (regexp-opt pw-flags 'symbols))
    +
    +(defvar pw-namelist-face (cons (regexp-opt (append pw-namelists qe-end-namelist) 'symbols) font-lock-function-name-face))
    +(defvar pw-variable-face (cons (regexp-opt pw-vars 'symbols) font-lock-variable-name-face))
    +
    +;; logical values as constants
    +(defvar qe-logic-face (cons (regexp-opt (list ".t." ".true." ".f." ".false.")) font-lock-constant-face))
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; regexp for indentation
    +(defvar pw-decr-indent-fold-t-re (concat "^[ \t]*" (regexp-opt qe-end-namelist t)))
    +(defvar pw-decr-indent-re        (concat "^[ \t]*" (regexp-opt
    +						       (append pw-cards pw-open-supercards pw-closed-supercards) t)))
    +;;
    +(defvar pw-deindent-fold-t-re    (concat "^[ \t]*" (regexp-opt qe-end-namelist t)))
    +;;
    +(defvar pw-indent-fold-t-re      (concat "^[ \t]*" (regexp-opt pw-namelists t)))
    +(defvar pw-indent-re             (concat "^[ \t]*" (regexp-opt pw-cards     t)))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; supercards, cards and flags are case sensitive -- here are the corresponding matchers
    +
    +(defun pw-closed-supercards-matcher (limit)
    +  (let ((case-fold-search nil))
    +    (re-search-forward pw-closed-supercards-regexp limit 'no-error)))
    +
    +(defun pw-cards-matcher (limit)
    +  (let ((case-fold-search nil))
    +    (re-search-forward pw-cards-regexp limit 'no-error)))
    +
    +(defun pw-flags-matcher (limit)
    +  (let ((case-fold-search nil))
    +    (re-search-forward pw-flags-regexp limit 'no-error)))
    +
    +
    +(font-lock-add-keywords 'pw-mode (list
    +				     pw-namelist-face 
    +				     pw-variable-face
    +				     qe-logic-face
    +				     '("," . font-lock-builtin-face)
    +				     '("(" . font-lock-builtin-face)
    +				     '(")" . font-lock-builtin-face)
    +				     ))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; register the keywords
    +
    +(font-lock-add-keywords 'pw-mode '(
    +				      (pw-closed-supercards-matcher 1 font-lock-preprocessor-face t)
    +				      (pw-cards-matcher 1 font-lock-keyword-face t)
    +				      (pw-flags-matcher 1 font-lock-type-face    t)
    +				      ))
    +
    +;;(defvar pw-keywords '(pw-namelist-face pw-variable-face))
    +(defvar pw-keywords '(((list "") . font-lock-constant-face)))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; define the sytnax of strings
    +
    +(defvar pw-mode-syntax-table
    +  (let ((table (make-syntax-table)))
    +    (modify-syntax-entry ?\' "\"'"  table)
    +    (modify-syntax-entry ?\" "\"\"" table)
    +    table)
    +  "Syntax table in use in `pw-mode' buffers.")
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; code for auto-indenting
    +
    +(defvar qe-indent 3)
    +(defun pw-indent-line ()
    +  "Indent current line according to pw input syntax."
    +  (interactive)
    +  (beginning-of-line)
    +  (if (bobp)
    +      (indent-line-to 0)		   ; First line indented to column 0
    +    (let ((not-indented t) cur-indent)
    +      (if (or (looking-at pw-decr-indent-fold-t-re)
    +	      (let ((case-fold-search nil)) (looking-at pw-decr-indent-re))) ; If the line we are looking at is the end of a block, then decrease the indentation
    +	  (progn
    +	    (save-excursion
    +	      (forward-line -1)
    +	      (setq cur-indent (- (current-indentation) qe-indent)))
    +	    (if (< cur-indent 0) ; We can't indent past the left margin
    +		(setq cur-indent 0)))
    +	(save-excursion
    +	  (while  not-indented ; Iterate backwards until we find an indentation hint
    +	    (forward-line -1)
    +	    (if (looking-at pw-deindent-fold-t-re) ; This hint indicates that we need to indent at the level of the "/" token
    +		(progn
    +		  (setq cur-indent (current-indentation))
    +		  (setq not-indented nil))
    +	      (if (or (looking-at pw-indent-fold-t-re)
    +		      (let ((case-fold-search nil)) (looking-at pw-indent-re))) ; This hint indicates that we need to indent an extra level
    +		  (progn
    +		    (setq cur-indent (+ (current-indentation) qe-indent)) ; Do the actual indenting
    +		    (setq not-indented nil))
    +		(if (bobp)
    +		    (setq not-indented nil)))))))
    +      (if cur-indent
    +	  (indent-line-to cur-indent)
    +	(indent-line-to 0))))) ; If we didn't see an indentation hint, then allow no indentation
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; define the pw-mode as derived-mode
    +
    +(define-derived-mode pw-mode prog-mode 
    +  "QE-pw.x"  
    +  "Major mode for editing Qunatum-ESPRESSO input files (QE-pw.x mode)"  
    +  (setq font-lock-defaults '((pw-keywords) nil t))
    +  (set (make-local-variable 'indent-line-function) 'pw-indent-line)
    +  
    +  ;; define the syntax of comments
    +  (setq comment-start "!")
    +  (setq comment-end "")
    +  (modify-syntax-entry ?!  "< b" pw-mode-syntax-table)
    +  (modify-syntax-entry ?\n "> b" pw-mode-syntax-table)
    +  (modify-syntax-entry ?=  " " pw-mode-syntax-table) ;; treat "=" non symbol constituent
    +  ;; end
    +  )
    +
    +;; free memory
    +
    +(setq pw-namelists nil)
    +(setq pw-vars nil)
    +(setq pw-cards nil)
    +(setq pw-flags nil)
    +(setq pw-open-supercards   nil)
    +(setq pw-closed-supercards nil)
    +
    +
    +(require 'qe-funcs)
    +
    +(provide 'pw-mode)
    +
    diff --git a/GUI/QE-modes/qe-modes/pw-mode.elc b/GUI/QE-modes/qe-modes/pw-mode.elc
    new file mode 100644
    index 0000000000..2adf5dc33f
    Binary files /dev/null and b/GUI/QE-modes/qe-modes/pw-mode.elc differ
    diff --git a/GUI/QE-modes/qe-modes/qe-funcs.el b/GUI/QE-modes/qe-modes/qe-funcs.el
    new file mode 100644
    index 0000000000..e1032ab792
    --- /dev/null
    +++ b/GUI/QE-modes/qe-modes/qe-funcs.el
    @@ -0,0 +1,7230 @@
    +;; qe-funcs.el
    +;;
    +;; Copyright (C) 2016 Quantum ESPRESSO group
    +;; This file is distributed under the terms of the
    +;; GNU General Public License. See the file `License'
    +;; in the root directory of the present distribution,
    +;; or http://www.gnu.org/copyleft/gpl.txt .
    +;;
    +;; Author: Anton Kokalj (tone.kokalj at ijs.si)
    +;;
    +;; Acknowledgments:
    +;;
    +;; The implementation of qe-modes package was made possible by several
    +;; useful and helpful resources that are gratefully acknowledged, in
    +;; particular: "Mode Tutorial" of Scott Andrew Borton
    +;; (https://www.emacswiki.org/emacs/ModeTutorial, for indentation
    +;; code), "Derived Mode" and "Sample Mode" pages
    +;; (https://www.emacswiki.org/emacs/DerivedMode,
    +;; https://www.emacswiki.org/emacs/SampleMode) as well as the very
    +;; useful resources of Xah Lee
    +;; (http://ergoemacs.org/emacs/elisp_syntax_coloring.html).  Last but
    +;; not the least Sebastijan Peljhan is acknowledged for his work on
    +;; `xsf-mode' that inspired the idea of writing the qe-modes.
    +
    +
    +;; This file is not part of GNU Emacs.
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; This program is free software; you can redistribute it and/or modify
    +;; it under the terms of the GNU General Public License as published by
    +;; the Free Software Foundation; either version 2, or (at your option)
    +;; any later version.
    +;;
    +;; This lisp script is distributed in the hope that it will be useful,
    +;; but WITHOUT ANY WARRANTY; without even the implied warranty of
    +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    +;;
    +;; Permission is granted to distribute copies of this lisp script
    +;; provided the copyright notice and this permission are preserved in
    +;; all copies.
    +;;
    +;; You should have received a copy of the GNU General Public License
    +;; along with this program; if not, you can either send email to this
    +;; program's maintainer or write to: The Free Software Foundation,
    +;; Inc.; 675 Massachusetts Avenue; Cambridge, MA 02139, USA.
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +;; send bug reports to the author (tone.kokalj at ijs.si)
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +
    +;;; Commentary:
    +
    +;; This is the `qe-funcs.el', which defines the functions for various
    +;; Quantum ESPRESSO (QE) major modes. For example, functions for
    +;; inserting the input templates, and functions for the insertion of
    +;; each namelist, variable, and card. These functions follow the
    +;; following naming convention:
    +;;
    +;; M-x prog-insert-template
    +;; M-x prog-NAMELIST
    +;; M-x prog-CARD
    +;; M-X prog-variable,
    +;;
    +;; where:
    +;;
    +;; * "prog" is the lowercase name of respective program without the
    +;;   .x suffix (i.e. it is the lowercase variant of the PROG in the
    +;;   respective INPUT_PROG.html filename)
    +;;
    +;; * "NAMELIST" is the uppercase name for a given Fortran namelist
    +;;
    +;; * "CARD" is the uppercase name for a given card
    +;;
    +;; * "variable" is the lowercase name for a given namelist variable
    +;;
    +;; Note that in the above commands the spelling of namelist and card
    +;; names are intentionally made uppercase as to differentiate them from
    +;; the names of QE variables which are intentionally made lowercase.
    +
    +;;; Code:
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; utility functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun pw-insert-template ()
    +  (interactive)
    +  (insert "&CONTROL 
    +   calculation = 'relax'
    +/
    +
    +&SYSTEM
    +   ! ibrav:  0 = free lattice,   1 = PC,   2 = FCC,   3 = BCC,
    +   !         4 = hex or trigonal P,
    +   !         5 = trigonal R (axis c),   -5 = trigonal R (axis <111>),
    +   !         6 = tetragonal P,   7 = tetragonal I,
    +   !         8 = orthorombic P,   9 = orthorombic base-C,   -9 = as 9 (alter description),
    +   !         10 = orthorombic FC,   11 = orthorombic body-C,
    +   !         12 = monoclinic P (axis c),   -12 = monoclinic P (axis b),
    +   !         13 = monoclinic base-C,   14 = triclinic
    +   ibrav     = 0
    +   celldm(1) = 1
    +   nat       = 1
    +   ntyp      = 1
    +   ecutwfc   = 30.0
    +/
    +
    +&ELECTRONS
    +   conv_thr = 1d-7
    +/
    +
    +&IONS
    +/
    +
    +CELL_PARAMETERS { alat | bohr | angstrom } 
    +   1.00   0.00   0.00
    +   0.00   1.00   0.00
    +   0.00   0.00   1.00
    +
    +ATOMIC_SPECIES
    +   atomLabel   atomMass   atomPseudoPotential
    +
    +ATOMIC_POSITIONS { alat | bohr | angstrom | crystal | crystal_sg } 
    +   atomLabel   0.00   0.00   0.00
    +
    +K_POINTS { tpiba | automatic | crystal | gamma | tpiba_b | crystal_b | tpiba_c | crystal_c } 
    +   ...insert-if-not-gamma...
    +"))
    +
    +
    +(defun projwfc-insert-template ()
    +  (interactive)
    +  (insert "&PROJWFC
    +   ! ngauss:
    +   !     0  = Simple Gaussian (default)
    +   !     1  = Methfessel-Paxton of order 1
    +   !    -1  = Marzari-Vanderbilt \"cold smearing\"
    +   !    -99 = Fermi-Dirac function
    +   
    +   ngauss  = 0 ,
    +   degauss = 0.007 , ! in Ry
    +   DeltaE  = 0.02 ,  ! in eV
    +   
    +   prefix  = 'prefix' ,
    +   outdir  = 'dir' ,
    +   filpdos = 'prefix' ,
    +/
    +"))
    +
    +
    +(defun dos-insert-template ()
    +  (interactive)
    +  (insert "&DOS
    +   ! ngauss:
    +   !     0  = Simple Gaussian (default)
    +   !     1  = Methfessel-Paxton of order 1
    +   !    -1  = Marzari-Vanderbilt \"cold smearing\"
    +   !    -99 = Fermi-Dirac function
    +
    +   ngauss  = 0 ,
    +   degauss = 0.007 ,
    +   DeltaE  = 0.02 ,
    +
    +   prefix = 'prefix' ,
    +   outdir = 'dir' ,
    +   fildos = 'prefix' ,
    +/
    +"))
    +
    +
    +(defun bands-insert-template ()
    +  (interactive)
    +  (insert "&BANDS
    +   prefix  = 'prefix' ,
    +   outdir  = 'dir' ,
    +   filband = 'file' ,
    +   
    +   plot_2d    = .true. ,
    +   lsym       = .false. ,
    +   no_overlap = .true. ,
    +/
    +"))
    +
    +
    +(defun pp-insert-template ()
    +  (interactive)
    +  (insert "&INPUTPP
    +   ! plot_num:
    +   !    0  = electron (pseudo-)charge density
    +   !    1  = total potential V_bare + V_H + V_xc
    +   !    2  = local ionic potential V_bare
    +   !    3  = local density of states at E_fermi
    +   !    4  = local density of electronic entropy
    +   !    5  = STM images
    +   !    6  = rho(up) - rho(down)
    +   !    7  = |psi|^2
    +   !    8  = ELF
    +   !    9  = rho(scf) - superposition of atomic densities
    +   !    10 = ILDOS
    +   !    11 = electrostatic potential (V_bare + V_H)
    +   !    12 = sawtooth electric field potential (if present)
    +   !    13 = noncollinear magnetization.
    +   !    17 = PAW all-electron valence charge density
    +   !    18 = XC field (noncollinear case)
    +   !    19 = reduced density gradient 
    +   !    20 = rho * second-eigenvalue-electron-density-Hessian-matrix
    +   !    21 = PAW all-electron charge density (valence+core).      
    +   plot_num = 0
    +   outdir   = '...'
    +   plot_num = 0
    +/
    +
    +&PLOT
    +   nfile     = 1 
    +   weight(1) = 1.0
    +
    +   iflag         = 3 
    +   output_format = 5
    +
    +   fileout = '...' 
    +/
    +"))
    +
    +
    +(defun ld1-insert-template ()
    +  (interactive)
    +  (insert "&INPUT
    +   title =''
    +   
    +   !! either zed or atom
    +   zed   =   ! atomic number
    +   !atom =   ! atomic symbol
    +   
    +   rel = 1   ! allowed values: 0, 1, 2
    +
    +   config  = '',
    +   iswitch =    ! allowed values: 1, 2, 3, 4
    +   dft     = 'PBE'
    +/
    +
    +&INPUTP
    +   lpaw = 
    +   pseudotype =    ! allowed values: 1, 2, 3
    +   file_pseudopw = ''
    +   author = '',
    +   
    +   lloc  = 
    +   rcloc =
    +   which_augfun =     ! allowed values: 'PSQ'; for PAW: 'BESSEL', 'GAUSS' , 'BG'
    +   rmatch_augfun_nc = ! .true. | .false.
    +   nlcc =             ! .true. | .false.
    +   new_core_ps =      ! .true. | .false.
    +   rcore = 
    +   tm =               ! .true. | .false.
    + /
    +nwfs  
    + nls(1)    nns(1)    lls(1)  	ocs(1)     ener(1)     rcut(1)     rcutus(1)  	 [ jjs(1) ]
    + nls(2)    nns(2)    lls(2)  	ocs(2)     ener(2)     rcut(2)     rcutus(2)  	 [ jjs(2) ]
    + . . .
    + nls(nwfs) nns(nwfs) lls(nwfs)  ocs(nwfs)  ener(nwfs)  rcut(nwfs)  rcutus(nwfs)	 [ jjs(nwfs) ]
    +"))
    +
    +
    +(defun neb-insert-template ()
    +  (interactive)
    +  (insert "BEGIN
    +BEGIN_PATH_INPUT
    +&PATH
    +   string_method  = 'neb'
    +   nstep_path     = 100
    +   num_of_images  = 10 
    +   opt_scheme     = 'broyden'
    +   CI_scheme      = 'auto'
    +   path_thr       = 0.05
    +   k_max          = 0.1
    +   k_min          = 0.1
    +   first_last_opt = .false.
    +   minimum_image  = .false.
    +   use_freezing   = .true.
    +   use_masses     = .false.
    +/
    +END_PATH_INPUT
    +
    +BEGIN_ENGINE_INPUT
    +&CONTROL 
    +/
    +
    +&SYSTEM
    +   ibrav     = 0
    +   celldm(1) = 
    +   nat       = 
    +   ntyp      = 
    +   ecutwfc   = 
    +/
    +
    +&ELECTRONS
    +   conv_thr = 1d-7
    +/
    +
    +&IONS
    +/
    +
    +CELL_PARAMETERS { alat | bohr | angstrom } 
    +   1.00   0.00   0.00
    +   0.00   1.00   0.00
    +   0.00   0.00   1.00
    +
    +ATOMIC_SPECIES
    +   atomLabel   atomMass   atomPseudoPotential
    +
    +K_POINTS { tpiba | automatic | crystal | gamma | tpiba_b | crystal_b | tpiba_c | crystal_c } 
    +   ...insert-if-not-gamma...
    +
    +   
    +BEGIN_POSITIONS
    +FIRST_IMAGE
    +ATOMIC_POSITIONS { alat | bohr | angstrom | crystal | crystal_sg } 
    +   atomLabel   0.00   0.00   0.00   1 1 1
    +   ...
    +   
    +INTERMEDIATE_IMAGE
    +ATOMIC_POSITIONS { alat | bohr | angstrom | crystal | crystal_sg } 
    +   atomLabel   0.00   0.00   0.00
    +   ...
    +   
    +LAST_IMAGE
    +ATOMIC_POSITIONS { alat | bohr | angstrom | crystal | crystal_sg } 
    +   atomLabel   0.00   0.00   0.00
    +   ...   
    +END_POSITIONS   
    +END_ENGINE_INPUT
    +END
    +"))
    +
    +
    +(defun ph-insert-template ()
    +  (interactive)
    +  (insert "title-line that is reprinted on output
    +
    +&INPUTPH
    +   !recover = .true. | .false. 
    +
    +   !amass(1) = , amass(2) = ...
    +   
    +   outdir    = ''
    +   prefix    = ''
    +   fildyn    =  ''
    +   
    +   tr2_ph    = 1d-16
    +   alpha_mix(1) = 0.5
    +   
    +   !nat_todo =
    +   
    +   !trans  = .true. | .false.
    +   !epsil  = .true. | .false.
    +   !lrpa   = .true. | .false.
    +   !lnoloc = .true. | .false.
    +   !lraman = .true. | .false.
    +
    +   !ldisp = .true. | .false.
    +
    +   !nogg  = .true. | .false.
    +   !asr   = .true. | .false.
    +/
    +q-point(s)-specs
    +nat_todo-list-of-atoms 
    +
    +"))
    +
    +
    +(defun dynmat-insert-template ()
    +  (interactive)
    +  (insert "&INPUT
    +   fildyn = ''
    +   filout = ''
    +   filmol = ''
    +   filxsf = ''
    +   ! fileig = ''
    +
    +   ! q(1) = , q(2) = , q(3) =
    +   ! amass(1) = , amass(2) = ...
    +   
    +   !! asr options: 'no' | 'simple' | 'crystal' | 'one-dim' | 'zero-dim' | 
    +   ! asr = 'no'
    +   
    +   !! for asr = 'one-dim'
    +   ! axis =
    +   
    +   ! lperm =
    +   ! lplasma =   
    +/
    +
    +"))
    +
    +
    +
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; pw- namelists functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun pw-CELL ()
    +  (interactive)
    +  (insert "&CELL")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +(defun pw-CONTROL ()
    +  (interactive)
    +  (insert "&CONTROL")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +(defun pw-ELECTRONS ()
    +  (interactive)
    +  (insert "&ELECTRONS")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +(defun pw-IONS ()
    +  (interactive)
    +  (insert "&IONS")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +(defun pw-SYSTEM ()
    +  (interactive)
    +  (insert "&SYSTEM")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; pw- namelist's variables functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun pw-a ()
    +  (interactive)
    +  (let ((value (read-string "Value of A: ")))
    +    (insert "A = " value))
    +  )
    +
    +
    +(defun pw-adaptive_thr ()
    +  (interactive)
    +  (let ((value (read-string "Value of adaptive_thr: ")))
    +    (insert "adaptive_thr = " value))
    +  )
    +
    +
    +(defun pw-angle1 ()
    +  (interactive)
    +  (let ((value (read-string "Value of angle1: ")))
    +    (insert "angle1 = " value))
    +  )
    +
    +
    +(defun pw-angle2 ()
    +  (interactive)
    +  (let ((value (read-string "Value of angle2: ")))
    +    (insert "angle2 = " value))
    +  )
    +
    +
    +(defun pw-assume_isolated ()
    +  (interactive)
    +  (let ((value (read-string "Value of assume_isolated: ")))
    +    (insert "assume_isolated = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-b ()
    +  (interactive)
    +  (let ((value (read-string "Value of B: ")))
    +    (insert "B = " value))
    +  )
    +
    +
    +(defun pw-bfgs_ndim ()
    +  (interactive)
    +  (let ((value (read-string "Value of bfgs_ndim: ")))
    +    (insert "bfgs_ndim = " value))
    +  )
    +
    +
    +(defun pw-block ()
    +  (interactive)
    +  (let ((value (read-string "Value of block: ")))
    +    (insert "block = " value))
    +  )
    +
    +
    +(defun pw-block_1 ()
    +  (interactive)
    +  (let ((value (read-string "Value of block_1: ")))
    +    (insert "block_1 = " value))
    +  )
    +
    +
    +(defun pw-block_2 ()
    +  (interactive)
    +  (let ((value (read-string "Value of block_2: ")))
    +    (insert "block_2 = " value))
    +  )
    +
    +
    +(defun pw-block_height ()
    +  (interactive)
    +  (let ((value (read-string "Value of block_height: ")))
    +    (insert "block_height = " value))
    +  )
    +
    +
    +(defun pw-c ()
    +  (interactive)
    +  (let ((value (read-string "Value of C: ")))
    +    (insert "C = " value))
    +  )
    +
    +
    +(defun pw-calculation ()
    +  (interactive)
    +  (let ((value (read-string "Value of calculation: ")))
    +    (insert "calculation = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-cell_dofree ()
    +  (interactive)
    +  (let ((value (read-string "Value of cell_dofree: ")))
    +    (insert "cell_dofree = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-cell_dynamics ()
    +  (interactive)
    +  (let ((value (read-string "Value of cell_dynamics: ")))
    +    (insert "cell_dynamics = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-cell_factor ()
    +  (interactive)
    +  (let ((value (read-string "Value of cell_factor: ")))
    +    (insert "cell_factor = " value))
    +  )
    +
    +
    +(defun pw-celldm ()
    +  (interactive)
    +  (let ((value (read-string "Value of celldm: ")))
    +    (insert "celldm = " value))
    +  )
    +
    +
    +(defun pw-constrained_magnetization ()
    +  (interactive)
    +  (let ((value (read-string "Value of constrained_magnetization: ")))
    +    (insert "constrained_magnetization = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-conv_thr ()
    +  (interactive)
    +  (let ((value (read-string "Value of conv_thr: ")))
    +    (insert "conv_thr = " value))
    +  )
    +
    +
    +(defun pw-conv_thr_init ()
    +  (interactive)
    +  (let ((value (read-string "Value of conv_thr_init: ")))
    +    (insert "conv_thr_init = " value))
    +  )
    +
    +
    +(defun pw-conv_thr_multi ()
    +  (interactive)
    +  (let ((value (read-string "Value of conv_thr_multi: ")))
    +    (insert "conv_thr_multi = " value))
    +  )
    +
    +
    +(defun pw-cosab ()
    +  (interactive)
    +  (let ((value (read-string "Value of cosAB: ")))
    +    (insert "cosAB = " value))
    +  )
    +
    +
    +(defun pw-cosac ()
    +  (interactive)
    +  (let ((value (read-string "Value of cosAC: ")))
    +    (insert "cosAC = " value))
    +  )
    +
    +
    +(defun pw-cosbc ()
    +  (interactive)
    +  (let ((value (read-string "Value of cosBC: ")))
    +    (insert "cosBC = " value))
    +  )
    +
    +
    +(defun pw-degauss ()
    +  (interactive)
    +  (let ((value (read-string "Value of degauss: ")))
    +    (insert "degauss = " value))
    +  )
    +
    +
    +(defun pw-delta_t ()
    +  (interactive)
    +  (let ((value (read-string "Value of delta_t: ")))
    +    (insert "delta_t = " value))
    +  )
    +
    +
    +(defun pw-dftd3_threebody ()
    +  (interactive)
    +  (let ((value (read-string "Value of dftd3_threebody: ")))
    +    (insert "dftd3_threebody = " value))
    +  )
    +
    +
    +(defun pw-dftd3_version ()
    +  (interactive)
    +  (let ((value (read-string "Value of dftd3_version: ")))
    +    (insert "dftd3_version = " value))
    +  )
    +
    +
    +(defun pw-diago_cg_maxiter ()
    +  (interactive)
    +  (let ((value (read-string "Value of diago_cg_maxiter: ")))
    +    (insert "diago_cg_maxiter = " value))
    +  )
    +
    +
    +(defun pw-diago_david_ndim ()
    +  (interactive)
    +  (let ((value (read-string "Value of diago_david_ndim: ")))
    +    (insert "diago_david_ndim = " value))
    +  )
    +
    +
    +(defun pw-diago_full_acc ()
    +  (interactive)
    +  (let ((value (read-string "Value of diago_full_acc: ")))
    +    (insert "diago_full_acc = " value))
    +  )
    +
    +
    +(defun pw-diago_thr_init ()
    +  (interactive)
    +  (let ((value (read-string "Value of diago_thr_init: ")))
    +    (insert "diago_thr_init = " value))
    +  )
    +
    +
    +(defun pw-diagonalization ()
    +  (interactive)
    +  (let ((value (read-string "Value of diagonalization: ")))
    +    (insert "diagonalization = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-dipfield ()
    +  (interactive)
    +  (let ((value (read-string "Value of dipfield: ")))
    +    (insert "dipfield = " value))
    +  )
    +
    +
    +(defun pw-disk_io ()
    +  (interactive)
    +  (let ((value (read-string "Value of disk_io: ")))
    +    (insert "disk_io = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-dt ()
    +  (interactive)
    +  (let ((value (read-string "Value of dt: ")))
    +    (insert "dt = " value))
    +  )
    +
    +
    +(defun pw-eamp ()
    +  (interactive)
    +  (let ((value (read-string "Value of eamp: ")))
    +    (insert "eamp = " value))
    +  )
    +
    +
    +(defun pw-ecfixed ()
    +  (interactive)
    +  (let ((value (read-string "Value of ecfixed: ")))
    +    (insert "ecfixed = " value))
    +  )
    +
    +
    +(defun pw-ecutfock ()
    +  (interactive)
    +  (let ((value (read-string "Value of ecutfock: ")))
    +    (insert "ecutfock = " value))
    +  )
    +
    +
    +(defun pw-ecutrho ()
    +  (interactive)
    +  (let ((value (read-string "Value of ecutrho: ")))
    +    (insert "ecutrho = " value))
    +  )
    +
    +
    +(defun pw-ecutvcut ()
    +  (interactive)
    +  (let ((value (read-string "Value of ecutvcut: ")))
    +    (insert "ecutvcut = " value))
    +  )
    +
    +
    +(defun pw-ecutwfc ()
    +  (interactive)
    +  (let ((value (read-string "Value of ecutwfc: ")))
    +    (insert "ecutwfc = " value))
    +  )
    +
    +
    +(defun pw-edir ()
    +  (interactive)
    +  (let ((value (read-string "Value of edir: ")))
    +    (insert "edir = " value))
    +  )
    +
    +
    +(defun pw-efield ()
    +  (interactive)
    +  (let ((value (read-string "Value of efield: ")))
    +    (insert "efield = " value))
    +  )
    +
    +
    +(defun pw-efield_cart ()
    +  (interactive)
    +  (let ((value (read-string "Value of efield_cart: ")))
    +    (insert "efield_cart = " value))
    +  )
    +
    +
    +(defun pw-efield_phase ()
    +  (interactive)
    +  (let ((value (read-string "Value of efield_phase: ")))
    +    (insert "efield_phase = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-electron_maxstep ()
    +  (interactive)
    +  (let ((value (read-string "Value of electron_maxstep: ")))
    +    (insert "electron_maxstep = " value))
    +  )
    +
    +
    +(defun pw-emaxpos ()
    +  (interactive)
    +  (let ((value (read-string "Value of emaxpos: ")))
    +    (insert "emaxpos = " value))
    +  )
    +
    +
    +(defun pw-eopreg ()
    +  (interactive)
    +  (let ((value (read-string "Value of eopreg: ")))
    +    (insert "eopreg = " value))
    +  )
    +
    +
    +(defun pw-esm_bc ()
    +  (interactive)
    +  (let ((value (read-string "Value of esm_bc: ")))
    +    (insert "esm_bc = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-esm_efield ()
    +  (interactive)
    +  (let ((value (read-string "Value of esm_efield: ")))
    +    (insert "esm_efield = " value))
    +  )
    +
    +
    +(defun pw-esm_nfit ()
    +  (interactive)
    +  (let ((value (read-string "Value of esm_nfit: ")))
    +    (insert "esm_nfit = " value))
    +  )
    +
    +
    +(defun pw-esm_w ()
    +  (interactive)
    +  (let ((value (read-string "Value of esm_w: ")))
    +    (insert "esm_w = " value))
    +  )
    +
    +
    +(defun pw-etot_conv_thr ()
    +  (interactive)
    +  (let ((value (read-string "Value of etot_conv_thr: ")))
    +    (insert "etot_conv_thr = " value))
    +  )
    +
    +
    +(defun pw-exx_fraction ()
    +  (interactive)
    +  (let ((value (read-string "Value of exx_fraction: ")))
    +    (insert "exx_fraction = " value))
    +  )
    +
    +
    +(defun pw-exxdiv_treatment ()
    +  (interactive)
    +  (let ((value (read-string "Value of exxdiv_treatment: ")))
    +    (insert "exxdiv_treatment = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-fcp_mu ()
    +  (interactive)
    +  (let ((value (read-string "Value of fcp_mu: ")))
    +    (insert "fcp_mu = " value))
    +  )
    +
    +
    +(defun pw-fixed_magnetization ()
    +  (interactive)
    +  (let ((value (read-string "Value of fixed_magnetization: ")))
    +    (insert "fixed_magnetization = " value))
    +  )
    +
    +
    +(defun pw-forc_conv_thr ()
    +  (interactive)
    +  (let ((value (read-string "Value of forc_conv_thr: ")))
    +    (insert "forc_conv_thr = " value))
    +  )
    +
    +
    +(defun pw-force_symmorphic ()
    +  (interactive)
    +  (let ((value (read-string "Value of force_symmorphic: ")))
    +    (insert "force_symmorphic = " value))
    +  )
    +
    +
    +(defun pw-gate ()
    +  (interactive)
    +  (let ((value (read-string "Value of gate: ")))
    +    (insert "gate = " value))
    +  )
    +
    +
    +(defun pw-gdir ()
    +  (interactive)
    +  (let ((value (read-string "Value of gdir: ")))
    +    (insert "gdir = " value))
    +  )
    +
    +
    +(defun pw-hubbard_alpha ()
    +  (interactive)
    +  (let ((value (read-string "Value of Hubbard_alpha: ")))
    +    (insert "Hubbard_alpha = " value))
    +  )
    +
    +
    +(defun pw-hubbard_beta ()
    +  (interactive)
    +  (let ((value (read-string "Value of Hubbard_beta: ")))
    +    (insert "Hubbard_beta = " value))
    +  )
    +
    +
    +(defun pw-hubbard_j ()
    +  (interactive)
    +  (let ((value (read-string "Value of Hubbard_J: ")))
    +    (insert "Hubbard_J = " value))
    +  )
    +
    +
    +(defun pw-hubbard_j0 ()
    +  (interactive)
    +  (let ((value (read-string "Value of Hubbard_J0: ")))
    +    (insert "Hubbard_J0 = " value))
    +  )
    +
    +
    +(defun pw-hubbard_u ()
    +  (interactive)
    +  (let ((value (read-string "Value of Hubbard_U: ")))
    +    (insert "Hubbard_U = " value))
    +  )
    +
    +
    +(defun pw-ibrav ()
    +  (interactive)
    +  (let ((value (read-string "Value of ibrav: ")))
    +    (insert "ibrav = " value))
    +  )
    +
    +
    +(defun pw-input_dft ()
    +  (interactive)
    +  (let ((value (read-string "Value of input_dft: ")))
    +    (insert "input_dft = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-ion_dynamics ()
    +  (interactive)
    +  (let ((value (read-string "Value of ion_dynamics: ")))
    +    (insert "ion_dynamics = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-ion_positions ()
    +  (interactive)
    +  (let ((value (read-string "Value of ion_positions: ")))
    +    (insert "ion_positions = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-ion_temperature ()
    +  (interactive)
    +  (let ((value (read-string "Value of ion_temperature: ")))
    +    (insert "ion_temperature = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-iprint ()
    +  (interactive)
    +  (let ((value (read-string "Value of iprint: ")))
    +    (insert "iprint = " value))
    +  )
    +
    +
    +(defun pw-lambda ()
    +  (interactive)
    +  (let ((value (read-string "Value of lambda: ")))
    +    (insert "lambda = " value))
    +  )
    +
    +
    +(defun pw-lberry ()
    +  (interactive)
    +  (let ((value (read-string "Value of lberry: ")))
    +    (insert "lberry = " value))
    +  )
    +
    +
    +(defun pw-lda_plus_u ()
    +  (interactive)
    +  (let ((value (read-string "Value of lda_plus_u: ")))
    +    (insert "lda_plus_u = " value))
    +  )
    +
    +
    +(defun pw-lda_plus_u_kind ()
    +  (interactive)
    +  (let ((value (read-string "Value of lda_plus_u_kind: ")))
    +    (insert "lda_plus_u_kind = " value))
    +  )
    +
    +
    +(defun pw-lelfield ()
    +  (interactive)
    +  (let ((value (read-string "Value of lelfield: ")))
    +    (insert "lelfield = " value))
    +  )
    +
    +
    +(defun pw-lfcpopt ()
    +  (interactive)
    +  (let ((value (read-string "Value of lfcpopt: ")))
    +    (insert "lfcpopt = " value))
    +  )
    +
    +
    +(defun pw-lforcet ()
    +  (interactive)
    +  (let ((value (read-string "Value of lforcet: ")))
    +    (insert "lforcet = " value))
    +  )
    +
    +
    +(defun pw-lkpoint_dir ()
    +  (interactive)
    +  (let ((value (read-string "Value of lkpoint_dir: ")))
    +    (insert "lkpoint_dir = " value))
    +  )
    +
    +
    +(defun pw-localization_thr ()
    +  (interactive)
    +  (let ((value (read-string "Value of localization_thr: ")))
    +    (insert "localization_thr = " value))
    +  )
    +
    +
    +(defun pw-london ()
    +  (interactive)
    +  (let ((value (read-string "Value of london: ")))
    +    (insert "london = " value))
    +  )
    +
    +
    +(defun pw-london_c6 ()
    +  (interactive)
    +  (let ((value (read-string "Value of london_c6: ")))
    +    (insert "london_c6 = " value))
    +  )
    +
    +
    +(defun pw-london_rcut ()
    +  (interactive)
    +  (let ((value (read-string "Value of london_rcut: ")))
    +    (insert "london_rcut = " value))
    +  )
    +
    +
    +(defun pw-london_rvdw ()
    +  (interactive)
    +  (let ((value (read-string "Value of london_rvdw: ")))
    +    (insert "london_rvdw = " value))
    +  )
    +
    +
    +(defun pw-london_s6 ()
    +  (interactive)
    +  (let ((value (read-string "Value of london_s6: ")))
    +    (insert "london_s6 = " value))
    +  )
    +
    +
    +(defun pw-lorbm ()
    +  (interactive)
    +  (let ((value (read-string "Value of lorbm: ")))
    +    (insert "lorbm = " value))
    +  )
    +
    +
    +(defun pw-lspinorb ()
    +  (interactive)
    +  (let ((value (read-string "Value of lspinorb: ")))
    +    (insert "lspinorb = " value))
    +  )
    +
    +
    +(defun pw-max_seconds ()
    +  (interactive)
    +  (let ((value (read-string "Value of max_seconds: ")))
    +    (insert "max_seconds = " value))
    +  )
    +
    +
    +(defun pw-mixing_beta ()
    +  (interactive)
    +  (let ((value (read-string "Value of mixing_beta: ")))
    +    (insert "mixing_beta = " value))
    +  )
    +
    +
    +(defun pw-mixing_fixed_ns ()
    +  (interactive)
    +  (let ((value (read-string "Value of mixing_fixed_ns: ")))
    +    (insert "mixing_fixed_ns = " value))
    +  )
    +
    +
    +(defun pw-mixing_mode ()
    +  (interactive)
    +  (let ((value (read-string "Value of mixing_mode: ")))
    +    (insert "mixing_mode = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-mixing_ndim ()
    +  (interactive)
    +  (let ((value (read-string "Value of mixing_ndim: ")))
    +    (insert "mixing_ndim = " value))
    +  )
    +
    +
    +(defun pw-nat ()
    +  (interactive)
    +  (let ((value (read-string "Value of nat: ")))
    +    (insert "nat = " value))
    +  )
    +
    +
    +(defun pw-nberrycyc ()
    +  (interactive)
    +  (let ((value (read-string "Value of nberrycyc: ")))
    +    (insert "nberrycyc = " value))
    +  )
    +
    +
    +(defun pw-nbnd ()
    +  (interactive)
    +  (let ((value (read-string "Value of nbnd: ")))
    +    (insert "nbnd = " value))
    +  )
    +
    +
    +(defun pw-no_t_rev ()
    +  (interactive)
    +  (let ((value (read-string "Value of no_t_rev: ")))
    +    (insert "no_t_rev = " value))
    +  )
    +
    +
    +(defun pw-noinv ()
    +  (interactive)
    +  (let ((value (read-string "Value of noinv: ")))
    +    (insert "noinv = " value))
    +  )
    +
    +
    +(defun pw-noncolin ()
    +  (interactive)
    +  (let ((value (read-string "Value of noncolin: ")))
    +    (insert "noncolin = " value))
    +  )
    +
    +
    +(defun pw-nosym ()
    +  (interactive)
    +  (let ((value (read-string "Value of nosym: ")))
    +    (insert "nosym = " value))
    +  )
    +
    +
    +(defun pw-nosym_evc ()
    +  (interactive)
    +  (let ((value (read-string "Value of nosym_evc: ")))
    +    (insert "nosym_evc = " value))
    +  )
    +
    +
    +(defun pw-nppstr ()
    +  (interactive)
    +  (let ((value (read-string "Value of nppstr: ")))
    +    (insert "nppstr = " value))
    +  )
    +
    +
    +(defun pw-nqx1 ()
    +  (interactive)
    +  (let ((value (read-string "Value of nqx1: ")))
    +    (insert "nqx1 = " value))
    +  )
    +
    +
    +(defun pw-nqx2 ()
    +  (interactive)
    +  (let ((value (read-string "Value of nqx2: ")))
    +    (insert "nqx2 = " value))
    +  )
    +
    +
    +(defun pw-nqx3 ()
    +  (interactive)
    +  (let ((value (read-string "Value of nqx3: ")))
    +    (insert "nqx3 = " value))
    +  )
    +
    +
    +(defun pw-nr1 ()
    +  (interactive)
    +  (let ((value (read-string "Value of nr1: ")))
    +    (insert "nr1 = " value))
    +  )
    +
    +
    +(defun pw-nr1s ()
    +  (interactive)
    +  (let ((value (read-string "Value of nr1s: ")))
    +    (insert "nr1s = " value))
    +  )
    +
    +
    +(defun pw-nr2 ()
    +  (interactive)
    +  (let ((value (read-string "Value of nr2: ")))
    +    (insert "nr2 = " value))
    +  )
    +
    +
    +(defun pw-nr2s ()
    +  (interactive)
    +  (let ((value (read-string "Value of nr2s: ")))
    +    (insert "nr2s = " value))
    +  )
    +
    +
    +(defun pw-nr3 ()
    +  (interactive)
    +  (let ((value (read-string "Value of nr3: ")))
    +    (insert "nr3 = " value))
    +  )
    +
    +
    +(defun pw-nr3s ()
    +  (interactive)
    +  (let ((value (read-string "Value of nr3s: ")))
    +    (insert "nr3s = " value))
    +  )
    +
    +
    +(defun pw-nraise ()
    +  (interactive)
    +  (let ((value (read-string "Value of nraise: ")))
    +    (insert "nraise = " value))
    +  )
    +
    +
    +(defun pw-nspin ()
    +  (interactive)
    +  (let ((value (read-string "Value of nspin: ")))
    +    (insert "nspin = " value))
    +  )
    +
    +
    +(defun pw-nstep ()
    +  (interactive)
    +  (let ((value (read-string "Value of nstep: ")))
    +    (insert "nstep = " value))
    +  )
    +
    +
    +(defun pw-ntyp ()
    +  (interactive)
    +  (let ((value (read-string "Value of ntyp: ")))
    +    (insert "ntyp = " value))
    +  )
    +
    +
    +(defun pw-occupations ()
    +  (interactive)
    +  (let ((value (read-string "Value of occupations: ")))
    +    (insert "occupations = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-one_atom_occupations ()
    +  (interactive)
    +  (let ((value (read-string "Value of one_atom_occupations: ")))
    +    (insert "one_atom_occupations = " value))
    +  )
    +
    +
    +(defun pw-origin_choice ()
    +  (interactive)
    +  (let ((value (read-string "Value of origin_choice: ")))
    +    (insert "origin_choice = " value))
    +  )
    +
    +
    +(defun pw-ortho_para ()
    +  (interactive)
    +  (let ((value (read-string "Value of ortho_para: ")))
    +    (insert "ortho_para = " value))
    +  )
    +
    +
    +(defun pw-outdir ()
    +  (interactive)
    +  (let ((value (read-directory-name "Value of outdir: ")))
    +    (insert "outdir = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-pot_extrapolation ()
    +  (interactive)
    +  (let ((value (read-string "Value of pot_extrapolation: ")))
    +    (insert "pot_extrapolation = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-prefix ()
    +  (interactive)
    +  (let ((value (read-string "Value of prefix: ")))
    +    (insert "prefix = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-press ()
    +  (interactive)
    +  (let ((value (read-string "Value of press: ")))
    +    (insert "press = " value))
    +  )
    +
    +
    +(defun pw-press_conv_thr ()
    +  (interactive)
    +  (let ((value (read-string "Value of press_conv_thr: ")))
    +    (insert "press_conv_thr = " value))
    +  )
    +
    +
    +(defun pw-pseudo_dir ()
    +  (interactive)
    +  (let ((value (read-directory-name "Value of pseudo_dir: ")))
    +    (insert "pseudo_dir = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-q2sigma ()
    +  (interactive)
    +  (let ((value (read-string "Value of q2sigma: ")))
    +    (insert "q2sigma = " value))
    +  )
    +
    +
    +(defun pw-qcutz ()
    +  (interactive)
    +  (let ((value (read-string "Value of qcutz: ")))
    +    (insert "qcutz = " value))
    +  )
    +
    +
    +(defun pw-real_space ()
    +  (interactive)
    +  (let ((value (read-string "Value of real_space: ")))
    +    (insert "real_space = " value))
    +  )
    +
    +
    +(defun pw-refold_pos ()
    +  (interactive)
    +  (let ((value (read-string "Value of refold_pos: ")))
    +    (insert "refold_pos = " value))
    +  )
    +
    +
    +(defun pw-relaxz ()
    +  (interactive)
    +  (let ((value (read-string "Value of relaxz: ")))
    +    (insert "relaxz = " value))
    +  )
    +
    +
    +(defun pw-remove_rigid_rot ()
    +  (interactive)
    +  (let ((value (read-string "Value of remove_rigid_rot: ")))
    +    (insert "remove_rigid_rot = " value))
    +  )
    +
    +
    +(defun pw-report ()
    +  (interactive)
    +  (let ((value (read-string "Value of report: ")))
    +    (insert "report = " value))
    +  )
    +
    +
    +(defun pw-restart_mode ()
    +  (interactive)
    +  (let ((value (read-string "Value of restart_mode: ")))
    +    (insert "restart_mode = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-rhombohedral ()
    +  (interactive)
    +  (let ((value (read-string "Value of rhombohedral: ")))
    +    (insert "rhombohedral = " value))
    +  )
    +
    +
    +(defun pw-scf_must_converge ()
    +  (interactive)
    +  (let ((value (read-string "Value of scf_must_converge: ")))
    +    (insert "scf_must_converge = " value))
    +  )
    +
    +
    +(defun pw-screening_parameter ()
    +  (interactive)
    +  (let ((value (read-string "Value of screening_parameter: ")))
    +    (insert "screening_parameter = " value))
    +  )
    +
    +
    +(defun pw-smearing ()
    +  (interactive)
    +  (let ((value (read-string "Value of smearing: ")))
    +    (insert "smearing = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-space_group ()
    +  (interactive)
    +  (let ((value (read-string "Value of space_group: ")))
    +    (insert "space_group = " value))
    +  )
    +
    +
    +(defun pw-starting_charge ()
    +  (interactive)
    +  (let ((value (read-string "Value of starting_charge: ")))
    +    (insert "starting_charge = " value))
    +  )
    +
    +
    +(defun pw-starting_magnetization ()
    +  (interactive)
    +  (let ((value (read-string "Value of starting_magnetization: ")))
    +    (insert "starting_magnetization = " value))
    +  )
    +
    +
    +(defun pw-starting_ns_eigenvalue ()
    +  (interactive)
    +  (let ((value (read-string "Value of starting_ns_eigenvalue: ")))
    +    (insert "starting_ns_eigenvalue = " value))
    +  )
    +
    +
    +(defun pw-starting_spin_angle ()
    +  (interactive)
    +  (let ((value (read-string "Value of starting_spin_angle: ")))
    +    (insert "starting_spin_angle = " value))
    +  )
    +
    +
    +(defun pw-startingpot ()
    +  (interactive)
    +  (let ((value (read-string "Value of startingpot: ")))
    +    (insert "startingpot = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-startingwfc ()
    +  (interactive)
    +  (let ((value (read-string "Value of startingwfc: ")))
    +    (insert "startingwfc = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-tefield ()
    +  (interactive)
    +  (let ((value (read-string "Value of tefield: ")))
    +    (insert "tefield = " value))
    +  )
    +
    +
    +(defun pw-tempw ()
    +  (interactive)
    +  (let ((value (read-string "Value of tempw: ")))
    +    (insert "tempw = " value))
    +  )
    +
    +
    +(defun pw-title ()
    +  (interactive)
    +  (let ((value (read-string "Value of title: ")))
    +    (insert "title = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-tolp ()
    +  (interactive)
    +  (let ((value (read-string "Value of tolp: ")))
    +    (insert "tolp = " value))
    +  )
    +
    +
    +(defun pw-tot_charge ()
    +  (interactive)
    +  (let ((value (read-string "Value of tot_charge: ")))
    +    (insert "tot_charge = " value))
    +  )
    +
    +
    +(defun pw-tot_magnetization ()
    +  (interactive)
    +  (let ((value (read-string "Value of tot_magnetization: ")))
    +    (insert "tot_magnetization = " value))
    +  )
    +
    +
    +(defun pw-tprnfor ()
    +  (interactive)
    +  (let ((value (read-string "Value of tprnfor: ")))
    +    (insert "tprnfor = " value))
    +  )
    +
    +
    +(defun pw-tqr ()
    +  (interactive)
    +  (let ((value (read-string "Value of tqr: ")))
    +    (insert "tqr = " value))
    +  )
    +
    +
    +(defun pw-trust_radius_ini ()
    +  (interactive)
    +  (let ((value (read-string "Value of trust_radius_ini: ")))
    +    (insert "trust_radius_ini = " value))
    +  )
    +
    +
    +(defun pw-trust_radius_max ()
    +  (interactive)
    +  (let ((value (read-string "Value of trust_radius_max: ")))
    +    (insert "trust_radius_max = " value))
    +  )
    +
    +
    +(defun pw-trust_radius_min ()
    +  (interactive)
    +  (let ((value (read-string "Value of trust_radius_min: ")))
    +    (insert "trust_radius_min = " value))
    +  )
    +
    +
    +(defun pw-ts_vdw_econv_thr ()
    +  (interactive)
    +  (let ((value (read-string "Value of ts_vdw_econv_thr: ")))
    +    (insert "ts_vdw_econv_thr = " value))
    +  )
    +
    +
    +(defun pw-ts_vdw_isolated ()
    +  (interactive)
    +  (let ((value (read-string "Value of ts_vdw_isolated: ")))
    +    (insert "ts_vdw_isolated = " value))
    +  )
    +
    +
    +(defun pw-tstress ()
    +  (interactive)
    +  (let ((value (read-string "Value of tstress: ")))
    +    (insert "tstress = " value))
    +  )
    +
    +
    +(defun pw-u_projection_type ()
    +  (interactive)
    +  (let ((value (read-string "Value of U_projection_type: ")))
    +    (insert "U_projection_type = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-uniqueb ()
    +  (interactive)
    +  (let ((value (read-string "Value of uniqueb: ")))
    +    (insert "uniqueb = " value))
    +  )
    +
    +
    +(defun pw-upscale ()
    +  (interactive)
    +  (let ((value (read-string "Value of upscale: ")))
    +    (insert "upscale = " value))
    +  )
    +
    +
    +(defun pw-use_all_frac ()
    +  (interactive)
    +  (let ((value (read-string "Value of use_all_frac: ")))
    +    (insert "use_all_frac = " value))
    +  )
    +
    +
    +(defun pw-vdw_corr ()
    +  (interactive)
    +  (let ((value (read-string "Value of vdw_corr: ")))
    +    (insert "vdw_corr = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-verbosity ()
    +  (interactive)
    +  (let ((value (read-string "Value of verbosity: ")))
    +    (insert "verbosity = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-w_1 ()
    +  (interactive)
    +  (let ((value (read-string "Value of w_1: ")))
    +    (insert "w_1 = " value))
    +  )
    +
    +
    +(defun pw-w_2 ()
    +  (interactive)
    +  (let ((value (read-string "Value of w_2: ")))
    +    (insert "w_2 = " value))
    +  )
    +
    +
    +(defun pw-wf_collect ()
    +  (interactive)
    +  (let ((value (read-string "Value of wf_collect: ")))
    +    (insert "wf_collect = " value))
    +  )
    +
    +
    +(defun pw-wfc_extrapolation ()
    +  (interactive)
    +  (let ((value (read-string "Value of wfc_extrapolation: ")))
    +    (insert "wfc_extrapolation = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-wfcdir ()
    +  (interactive)
    +  (let ((value (read-directory-name "Value of wfcdir: ")))
    +    (insert "wfcdir = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pw-wmass ()
    +  (interactive)
    +  (let ((value (read-string "Value of wmass: ")))
    +    (insert "wmass = " value))
    +  )
    +
    +
    +(defun pw-x_gamma_extrapolation ()
    +  (interactive)
    +  (let ((value (read-string "Value of x_gamma_extrapolation: ")))
    +    (insert "x_gamma_extrapolation = " value))
    +  )
    +
    +
    +(defun pw-xdm ()
    +  (interactive)
    +  (let ((value (read-string "Value of xdm: ")))
    +    (insert "xdm = " value))
    +  )
    +
    +
    +(defun pw-xdm_a1 ()
    +  (interactive)
    +  (let ((value (read-string "Value of xdm_a1: ")))
    +    (insert "xdm_a1 = " value))
    +  )
    +
    +
    +(defun pw-xdm_a2 ()
    +  (interactive)
    +  (let ((value (read-string "Value of xdm_a2: ")))
    +    (insert "xdm_a2 = " value))
    +  )
    +
    +
    +(defun pw-zgate ()
    +  (interactive)
    +  (let ((value (read-string "Value of zgate: ")))
    +    (insert "zgate = " value))
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; pw- cards functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun pw-ATOMIC_FORCES ()
    + (interactive)
    + (insert "ATOMIC_FORCES")
    + (newline 1)
    + )
    +
    +
    +(defun pw-ATOMIC_POSITIONS ()
    +  (interactive)
    +  (let ((flag (read-string "Flags: { alat | bohr | angstrom | crystal | crystal_sg } ")))
    +    (insert "ATOMIC_POSITIONS " flag))
    +  (newline 1)
    +  )
    +
    +
    +(defun pw-ATOMIC_SPECIES ()
    + (interactive)
    + (insert "ATOMIC_SPECIES")
    + (newline 1)
    + )
    +
    +
    +(defun pw-CELL_PARAMETERS ()
    +  (interactive)
    +  (let ((flag (read-string "Flags: { alat | bohr | angstrom } ")))
    +    (insert "CELL_PARAMETERS " flag))
    +  (newline 1)
    +  )
    +
    +
    +(defun pw-CONSTRAINTS ()
    + (interactive)
    + (insert "CONSTRAINTS")
    + (newline 1)
    + )
    +
    +
    +(defun pw-K_POINTS ()
    +  (interactive)
    +  (let ((flag (read-string "Flags: { tpiba | automatic | crystal | gamma | tpiba_b | crystal_b | tpiba_c | crystal_c } ")))
    +    (insert "K_POINTS " flag))
    +  (newline 1)
    +  )
    +
    +
    +(defun pw-OCCUPATIONS ()
    + (interactive)
    + (insert "OCCUPATIONS")
    + (newline 1)
    + )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; cppp- namelists functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun cppp-INPUTPP ()
    +  (interactive)
    +  (insert "&INPUTPP")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; cppp- namelist's variables functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun cppp-atomic_number ()
    +  (interactive)
    +  (let ((value (read-string "Value of atomic_number: ")))
    +    (insert "atomic_number = " value))
    +  )
    +
    +
    +(defun cppp-charge_density ()
    +  (interactive)
    +  (let ((value (read-string "Value of charge_density: ")))
    +    (insert "charge_density = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cppp-fileout ()
    +  (interactive)
    +  (let ((value (read-file-name "Value of fileout: ")))
    +    (insert "fileout = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cppp-lbinary ()
    +  (interactive)
    +  (let ((value (read-string "Value of lbinary: ")))
    +    (insert "lbinary = " value))
    +  )
    +
    +
    +(defun cppp-lcharge ()
    +  (interactive)
    +  (let ((value (read-string "Value of lcharge: ")))
    +    (insert "lcharge = " value))
    +  )
    +
    +
    +(defun cppp-ldynamics ()
    +  (interactive)
    +  (let ((value (read-string "Value of ldynamics: ")))
    +    (insert "ldynamics = " value))
    +  )
    +
    +
    +(defun cppp-lforces ()
    +  (interactive)
    +  (let ((value (read-string "Value of lforces: ")))
    +    (insert "lforces = " value))
    +  )
    +
    +
    +(defun cppp-lpdb ()
    +  (interactive)
    +  (let ((value (read-string "Value of lpdb: ")))
    +    (insert "lpdb = " value))
    +  )
    +
    +
    +(defun cppp-lrotation ()
    +  (interactive)
    +  (let ((value (read-string "Value of lrotation: ")))
    +    (insert "lrotation = " value))
    +  )
    +
    +
    +(defun cppp-ndr ()
    +  (interactive)
    +  (let ((value (read-string "Value of ndr: ")))
    +    (insert "ndr = " value))
    +  )
    +
    +
    +(defun cppp-nframes ()
    +  (interactive)
    +  (let ((value (read-string "Value of nframes: ")))
    +    (insert "nframes = " value))
    +  )
    +
    +
    +(defun cppp-np1 ()
    +  (interactive)
    +  (let ((value (read-string "Value of np1: ")))
    +    (insert "np1 = " value))
    +  )
    +
    +
    +(defun cppp-np2 ()
    +  (interactive)
    +  (let ((value (read-string "Value of np2: ")))
    +    (insert "np2 = " value))
    +  )
    +
    +
    +(defun cppp-np3 ()
    +  (interactive)
    +  (let ((value (read-string "Value of np3: ")))
    +    (insert "np3 = " value))
    +  )
    +
    +
    +(defun cppp-ns1 ()
    +  (interactive)
    +  (let ((value (read-string "Value of ns1: ")))
    +    (insert "ns1 = " value))
    +  )
    +
    +
    +(defun cppp-ns2 ()
    +  (interactive)
    +  (let ((value (read-string "Value of ns2: ")))
    +    (insert "ns2 = " value))
    +  )
    +
    +
    +(defun cppp-ns3 ()
    +  (interactive)
    +  (let ((value (read-string "Value of ns3: ")))
    +    (insert "ns3 = " value))
    +  )
    +
    +
    +(defun cppp-outdir ()
    +  (interactive)
    +  (let ((value (read-directory-name "Value of outdir: ")))
    +    (insert "outdir = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cppp-output ()
    +  (interactive)
    +  (let ((value (read-string "Value of output: ")))
    +    (insert "output = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cppp-prefix ()
    +  (interactive)
    +  (let ((value (read-string "Value of prefix: ")))
    +    (insert "prefix = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cppp-state ()
    +  (interactive)
    +  (let ((value (read-string "Value of state: ")))
    +    (insert "state = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; cp- namelists functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun cp-CELL ()
    +  (interactive)
    +  (insert "&CELL")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +(defun cp-CONTROL ()
    +  (interactive)
    +  (insert "&CONTROL")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +(defun cp-ELECTRONS ()
    +  (interactive)
    +  (insert "&ELECTRONS")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +(defun cp-IONS ()
    +  (interactive)
    +  (insert "&IONS")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +(defun cp-PRESS_AI ()
    +  (interactive)
    +  (insert "&PRESS_AI")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +(defun cp-SYSTEM ()
    +  (interactive)
    +  (insert "&SYSTEM")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +(defun cp-WANNIER ()
    +  (interactive)
    +  (insert "&WANNIER")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; cp- namelist's variables functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun cp-a ()
    +  (interactive)
    +  (let ((value (read-string "Value of A: ")))
    +    (insert "A = " value))
    +  )
    +
    +
    +(defun cp-abisur ()
    +  (interactive)
    +  (let ((value (read-string "Value of abisur: ")))
    +    (insert "abisur = " value))
    +  )
    +
    +
    +(defun cp-abivol ()
    +  (interactive)
    +  (let ((value (read-string "Value of abivol: ")))
    +    (insert "abivol = " value))
    +  )
    +
    +
    +(defun cp-adapt ()
    +  (interactive)
    +  (let ((value (read-string "Value of adapt: ")))
    +    (insert "adapt = " value))
    +  )
    +
    +
    +(defun cp-ampre ()
    +  (interactive)
    +  (let ((value (read-string "Value of ampre: ")))
    +    (insert "ampre = " value))
    +  )
    +
    +
    +(defun cp-amprp ()
    +  (interactive)
    +  (let ((value (read-string "Value of amprp: ")))
    +    (insert "amprp = " value))
    +  )
    +
    +
    +(defun cp-assume_isolated ()
    +  (interactive)
    +  (let ((value (read-string "Value of assume_isolated: ")))
    +    (insert "assume_isolated = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-b ()
    +  (interactive)
    +  (let ((value (read-string "Value of B: ")))
    +    (insert "B = " value))
    +  )
    +
    +
    +(defun cp-c ()
    +  (interactive)
    +  (let ((value (read-string "Value of C: ")))
    +    (insert "C = " value))
    +  )
    +
    +
    +(defun cp-calculation ()
    +  (interactive)
    +  (let ((value (read-string "Value of calculation: ")))
    +    (insert "calculation = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-calwf ()
    +  (interactive)
    +  (let ((value (read-string "Value of calwf: ")))
    +    (insert "calwf = " value))
    +  )
    +
    +
    +(defun cp-cell_damping ()
    +  (interactive)
    +  (let ((value (read-string "Value of cell_damping: ")))
    +    (insert "cell_damping = " value))
    +  )
    +
    +
    +(defun cp-cell_dofree ()
    +  (interactive)
    +  (let ((value (read-string "Value of cell_dofree: ")))
    +    (insert "cell_dofree = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-cell_dynamics ()
    +  (interactive)
    +  (let ((value (read-string "Value of cell_dynamics: ")))
    +    (insert "cell_dynamics = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-cell_factor ()
    +  (interactive)
    +  (let ((value (read-string "Value of cell_factor: ")))
    +    (insert "cell_factor = " value))
    +  )
    +
    +
    +(defun cp-cell_parameters ()
    +  (interactive)
    +  (let ((value (read-string "Value of cell_parameters: ")))
    +    (insert "cell_parameters = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-cell_temperature ()
    +  (interactive)
    +  (let ((value (read-string "Value of cell_temperature: ")))
    +    (insert "cell_temperature = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-cell_velocities ()
    +  (interactive)
    +  (let ((value (read-string "Value of cell_velocities: ")))
    +    (insert "cell_velocities = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-celldm ()
    +  (interactive)
    +  (let ((value (read-string "Value of celldm: ")))
    +    (insert "celldm = " value))
    +  )
    +
    +
    +(defun cp-conv_thr ()
    +  (interactive)
    +  (let ((value (read-string "Value of conv_thr: ")))
    +    (insert "conv_thr = " value))
    +  )
    +
    +
    +(defun cp-cosab ()
    +  (interactive)
    +  (let ((value (read-string "Value of cosAB: ")))
    +    (insert "cosAB = " value))
    +  )
    +
    +
    +(defun cp-cosac ()
    +  (interactive)
    +  (let ((value (read-string "Value of cosAC: ")))
    +    (insert "cosAC = " value))
    +  )
    +
    +
    +(defun cp-cosbc ()
    +  (interactive)
    +  (let ((value (read-string "Value of cosBC: ")))
    +    (insert "cosBC = " value))
    +  )
    +
    +
    +(defun cp-degauss ()
    +  (interactive)
    +  (let ((value (read-string "Value of degauss: ")))
    +    (insert "degauss = " value))
    +  )
    +
    +
    +(defun cp-disk_io ()
    +  (interactive)
    +  (let ((value (read-string "Value of disk_io: ")))
    +    (insert "disk_io = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-dt ()
    +  (interactive)
    +  (let ((value (read-string "Value of dt: ")))
    +    (insert "dt = " value))
    +  )
    +
    +
    +(defun cp-dthr ()
    +  (interactive)
    +  (let ((value (read-string "Value of dthr: ")))
    +    (insert "dthr = " value))
    +  )
    +
    +
    +(defun cp-ecfixed ()
    +  (interactive)
    +  (let ((value (read-string "Value of ecfixed: ")))
    +    (insert "ecfixed = " value))
    +  )
    +
    +
    +(defun cp-ecutrho ()
    +  (interactive)
    +  (let ((value (read-string "Value of ecutrho: ")))
    +    (insert "ecutrho = " value))
    +  )
    +
    +
    +(defun cp-ecutwfc ()
    +  (interactive)
    +  (let ((value (read-string "Value of ecutwfc: ")))
    +    (insert "ecutwfc = " value))
    +  )
    +
    +
    +(defun cp-efield ()
    +  (interactive)
    +  (let ((value (read-string "Value of efield: ")))
    +    (insert "efield = " value))
    +  )
    +
    +
    +(defun cp-efx0 ()
    +  (interactive)
    +  (let ((value (read-string "Value of efx0: ")))
    +    (insert "efx0 = " value))
    +  )
    +
    +
    +(defun cp-efx1 ()
    +  (interactive)
    +  (let ((value (read-string "Value of efx1: ")))
    +    (insert "efx1 = " value))
    +  )
    +
    +
    +(defun cp-efy0 ()
    +  (interactive)
    +  (let ((value (read-string "Value of efy0: ")))
    +    (insert "efy0 = " value))
    +  )
    +
    +
    +(defun cp-efy1 ()
    +  (interactive)
    +  (let ((value (read-string "Value of efy1: ")))
    +    (insert "efy1 = " value))
    +  )
    +
    +
    +(defun cp-efz0 ()
    +  (interactive)
    +  (let ((value (read-string "Value of efz0: ")))
    +    (insert "efz0 = " value))
    +  )
    +
    +
    +(defun cp-efz1 ()
    +  (interactive)
    +  (let ((value (read-string "Value of efz1: ")))
    +    (insert "efz1 = " value))
    +  )
    +
    +
    +(defun cp-ekin_conv_thr ()
    +  (interactive)
    +  (let ((value (read-string "Value of ekin_conv_thr: ")))
    +    (insert "ekin_conv_thr = " value))
    +  )
    +
    +
    +(defun cp-ekincw ()
    +  (interactive)
    +  (let ((value (read-string "Value of ekincw: ")))
    +    (insert "ekincw = " value))
    +  )
    +
    +
    +(defun cp-electron_damping ()
    +  (interactive)
    +  (let ((value (read-string "Value of electron_damping: ")))
    +    (insert "electron_damping = " value))
    +  )
    +
    +
    +(defun cp-electron_dynamics ()
    +  (interactive)
    +  (let ((value (read-string "Value of electron_dynamics: ")))
    +    (insert "electron_dynamics = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-electron_maxstep ()
    +  (interactive)
    +  (let ((value (read-string "Value of electron_maxstep: ")))
    +    (insert "electron_maxstep = " value))
    +  )
    +
    +
    +(defun cp-electron_temperature ()
    +  (interactive)
    +  (let ((value (read-string "Value of electron_temperature: ")))
    +    (insert "electron_temperature = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-electron_velocities ()
    +  (interactive)
    +  (let ((value (read-string "Value of electron_velocities: ")))
    +    (insert "electron_velocities = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-emass ()
    +  (interactive)
    +  (let ((value (read-string "Value of emass: ")))
    +    (insert "emass = " value))
    +  )
    +
    +
    +(defun cp-emass_cutoff ()
    +  (interactive)
    +  (let ((value (read-string "Value of emass_cutoff: ")))
    +    (insert "emass_cutoff = " value))
    +  )
    +
    +
    +(defun cp-epol ()
    +  (interactive)
    +  (let ((value (read-string "Value of epol: ")))
    +    (insert "epol = " value))
    +  )
    +
    +
    +(defun cp-etot_conv_thr ()
    +  (interactive)
    +  (let ((value (read-string "Value of etot_conv_thr: ")))
    +    (insert "etot_conv_thr = " value))
    +  )
    +
    +
    +(defun cp-exx_dis_cutoff ()
    +  (interactive)
    +  (let ((value (read-string "Value of exx_dis_cutoff: ")))
    +    (insert "exx_dis_cutoff = " value))
    +  )
    +
    +
    +(defun cp-exx_fraction ()
    +  (interactive)
    +  (let ((value (read-string "Value of exx_fraction: ")))
    +    (insert "exx_fraction = " value))
    +  )
    +
    +
    +(defun cp-exx_me_rcut_pair ()
    +  (interactive)
    +  (let ((value (read-string "Value of exx_me_rcut_pair: ")))
    +    (insert "exx_me_rcut_pair = " value))
    +  )
    +
    +
    +(defun cp-exx_me_rcut_self ()
    +  (interactive)
    +  (let ((value (read-string "Value of exx_me_rcut_self: ")))
    +    (insert "exx_me_rcut_self = " value))
    +  )
    +
    +
    +(defun cp-exx_neigh ()
    +  (interactive)
    +  (let ((value (read-string "Value of exx_neigh: ")))
    +    (insert "exx_neigh = " value))
    +  )
    +
    +
    +(defun cp-exx_poisson_eps ()
    +  (interactive)
    +  (let ((value (read-string "Value of exx_poisson_eps: ")))
    +    (insert "exx_poisson_eps = " value))
    +  )
    +
    +
    +(defun cp-exx_ps_rcut_pair ()
    +  (interactive)
    +  (let ((value (read-string "Value of exx_ps_rcut_pair: ")))
    +    (insert "exx_ps_rcut_pair = " value))
    +  )
    +
    +
    +(defun cp-exx_ps_rcut_self ()
    +  (interactive)
    +  (let ((value (read-string "Value of exx_ps_rcut_self: ")))
    +    (insert "exx_ps_rcut_self = " value))
    +  )
    +
    +
    +(defun cp-fnhscl ()
    +  (interactive)
    +  (let ((value (read-string "Value of fnhscl: ")))
    +    (insert "fnhscl = " value))
    +  )
    +
    +
    +(defun cp-fnosee ()
    +  (interactive)
    +  (let ((value (read-string "Value of fnosee: ")))
    +    (insert "fnosee = " value))
    +  )
    +
    +
    +(defun cp-fnoseh ()
    +  (interactive)
    +  (let ((value (read-string "Value of fnoseh: ")))
    +    (insert "fnoseh = " value))
    +  )
    +
    +
    +(defun cp-fnosep ()
    +  (interactive)
    +  (let ((value (read-string "Value of fnosep: ")))
    +    (insert "fnosep = " value))
    +  )
    +
    +
    +(defun cp-forc_conv_thr ()
    +  (interactive)
    +  (let ((value (read-string "Value of forc_conv_thr: ")))
    +    (insert "forc_conv_thr = " value))
    +  )
    +
    +
    +(defun cp-grease ()
    +  (interactive)
    +  (let ((value (read-string "Value of grease: ")))
    +    (insert "grease = " value))
    +  )
    +
    +
    +(defun cp-greash ()
    +  (interactive)
    +  (let ((value (read-string "Value of greash: ")))
    +    (insert "greash = " value))
    +  )
    +
    +
    +(defun cp-greasp ()
    +  (interactive)
    +  (let ((value (read-string "Value of greasp: ")))
    +    (insert "greasp = " value))
    +  )
    +
    +
    +(defun cp-hubbard_u ()
    +  (interactive)
    +  (let ((value (read-string "Value of Hubbard_U: ")))
    +    (insert "Hubbard_U = " value))
    +  )
    +
    +
    +(defun cp-ibrav ()
    +  (interactive)
    +  (let ((value (read-string "Value of ibrav: ")))
    +    (insert "ibrav = " value))
    +  )
    +
    +
    +(defun cp-iesr ()
    +  (interactive)
    +  (let ((value (read-string "Value of iesr: ")))
    +    (insert "iesr = " value))
    +  )
    +
    +
    +(defun cp-input_dft ()
    +  (interactive)
    +  (let ((value (read-string "Value of input_dft: ")))
    +    (insert "input_dft = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-ion_damping ()
    +  (interactive)
    +  (let ((value (read-string "Value of ion_damping: ")))
    +    (insert "ion_damping = " value))
    +  )
    +
    +
    +(defun cp-ion_dynamics ()
    +  (interactive)
    +  (let ((value (read-string "Value of ion_dynamics: ")))
    +    (insert "ion_dynamics = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-ion_nstepe ()
    +  (interactive)
    +  (let ((value (read-string "Value of ion_nstepe: ")))
    +    (insert "ion_nstepe = " value))
    +  )
    +
    +
    +(defun cp-ion_positions ()
    +  (interactive)
    +  (let ((value (read-string "Value of ion_positions: ")))
    +    (insert "ion_positions = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-ion_radius ()
    +  (interactive)
    +  (let ((value (read-string "Value of ion_radius: ")))
    +    (insert "ion_radius = " value))
    +  )
    +
    +
    +(defun cp-ion_temperature ()
    +  (interactive)
    +  (let ((value (read-string "Value of ion_temperature: ")))
    +    (insert "ion_temperature = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-ion_velocities ()
    +  (interactive)
    +  (let ((value (read-string "Value of ion_velocities: ")))
    +    (insert "ion_velocities = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-iprint ()
    +  (interactive)
    +  (let ((value (read-string "Value of iprint: ")))
    +    (insert "iprint = " value))
    +  )
    +
    +
    +(defun cp-isave ()
    +  (interactive)
    +  (let ((value (read-string "Value of isave: ")))
    +    (insert "isave = " value))
    +  )
    +
    +
    +(defun cp-lambda_cold ()
    +  (interactive)
    +  (let ((value (read-string "Value of lambda_cold: ")))
    +    (insert "lambda_cold = " value))
    +  )
    +
    +
    +(defun cp-lda_plus_u ()
    +  (interactive)
    +  (let ((value (read-string "Value of lda_plus_u: ")))
    +    (insert "lda_plus_u = " value))
    +  )
    +
    +
    +(defun cp-london_rcut ()
    +  (interactive)
    +  (let ((value (read-string "Value of london_rcut: ")))
    +    (insert "london_rcut = " value))
    +  )
    +
    +
    +(defun cp-london_s6 ()
    +  (interactive)
    +  (let ((value (read-string "Value of london_s6: ")))
    +    (insert "london_s6 = " value))
    +  )
    +
    +
    +(defun cp-max_seconds ()
    +  (interactive)
    +  (let ((value (read-string "Value of max_seconds: ")))
    +    (insert "max_seconds = " value))
    +  )
    +
    +
    +(defun cp-maxiter ()
    +  (interactive)
    +  (let ((value (read-string "Value of maxiter: ")))
    +    (insert "maxiter = " value))
    +  )
    +
    +
    +(defun cp-maxwfdt ()
    +  (interactive)
    +  (let ((value (read-string "Value of maxwfdt: ")))
    +    (insert "maxwfdt = " value))
    +  )
    +
    +
    +(defun cp-memory ()
    +  (interactive)
    +  (let ((value (read-string "Value of memory: ")))
    +    (insert "memory = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-n_inner ()
    +  (interactive)
    +  (let ((value (read-string "Value of n_inner: ")))
    +    (insert "n_inner = " value))
    +  )
    +
    +
    +(defun cp-nat ()
    +  (interactive)
    +  (let ((value (read-string "Value of nat: ")))
    +    (insert "nat = " value))
    +  )
    +
    +
    +(defun cp-nbnd ()
    +  (interactive)
    +  (let ((value (read-string "Value of nbnd: ")))
    +    (insert "nbnd = " value))
    +  )
    +
    +
    +(defun cp-ndega ()
    +  (interactive)
    +  (let ((value (read-string "Value of ndega: ")))
    +    (insert "ndega = " value))
    +  )
    +
    +
    +(defun cp-ndr ()
    +  (interactive)
    +  (let ((value (read-string "Value of ndr: ")))
    +    (insert "ndr = " value))
    +  )
    +
    +
    +(defun cp-ndw ()
    +  (interactive)
    +  (let ((value (read-string "Value of ndw: ")))
    +    (insert "ndw = " value))
    +  )
    +
    +
    +(defun cp-nhgrp ()
    +  (interactive)
    +  (let ((value (read-string "Value of nhgrp: ")))
    +    (insert "nhgrp = " value))
    +  )
    +
    +
    +(defun cp-nhpcl ()
    +  (interactive)
    +  (let ((value (read-string "Value of nhpcl: ")))
    +    (insert "nhpcl = " value))
    +  )
    +
    +
    +(defun cp-nhptyp ()
    +  (interactive)
    +  (let ((value (read-string "Value of nhptyp: ")))
    +    (insert "nhptyp = " value))
    +  )
    +
    +
    +(defun cp-ninter_cold_restart ()
    +  (interactive)
    +  (let ((value (read-string "Value of ninter_cold_restart: ")))
    +    (insert "ninter_cold_restart = " value))
    +  )
    +
    +
    +(defun cp-nit ()
    +  (interactive)
    +  (let ((value (read-string "Value of nit: ")))
    +    (insert "nit = " value))
    +  )
    +
    +
    +(defun cp-niter_cg_restart ()
    +  (interactive)
    +  (let ((value (read-string "Value of niter_cg_restart: ")))
    +    (insert "niter_cg_restart = " value))
    +  )
    +
    +
    +(defun cp-nr1 ()
    +  (interactive)
    +  (let ((value (read-string "Value of nr1: ")))
    +    (insert "nr1 = " value))
    +  )
    +
    +
    +(defun cp-nr1b ()
    +  (interactive)
    +  (let ((value (read-string "Value of nr1b: ")))
    +    (insert "nr1b = " value))
    +  )
    +
    +
    +(defun cp-nr1s ()
    +  (interactive)
    +  (let ((value (read-string "Value of nr1s: ")))
    +    (insert "nr1s = " value))
    +  )
    +
    +
    +(defun cp-nr2 ()
    +  (interactive)
    +  (let ((value (read-string "Value of nr2: ")))
    +    (insert "nr2 = " value))
    +  )
    +
    +
    +(defun cp-nr2b ()
    +  (interactive)
    +  (let ((value (read-string "Value of nr2b: ")))
    +    (insert "nr2b = " value))
    +  )
    +
    +
    +(defun cp-nr2s ()
    +  (interactive)
    +  (let ((value (read-string "Value of nr2s: ")))
    +    (insert "nr2s = " value))
    +  )
    +
    +
    +(defun cp-nr3 ()
    +  (interactive)
    +  (let ((value (read-string "Value of nr3: ")))
    +    (insert "nr3 = " value))
    +  )
    +
    +
    +(defun cp-nr3b ()
    +  (interactive)
    +  (let ((value (read-string "Value of nr3b: ")))
    +    (insert "nr3b = " value))
    +  )
    +
    +
    +(defun cp-nr3s ()
    +  (interactive)
    +  (let ((value (read-string "Value of nr3s: ")))
    +    (insert "nr3s = " value))
    +  )
    +
    +
    +(defun cp-nsd ()
    +  (interactive)
    +  (let ((value (read-string "Value of nsd: ")))
    +    (insert "nsd = " value))
    +  )
    +
    +
    +(defun cp-nspin ()
    +  (interactive)
    +  (let ((value (read-string "Value of nspin: ")))
    +    (insert "nspin = " value))
    +  )
    +
    +
    +(defun cp-nstep ()
    +  (interactive)
    +  (let ((value (read-string "Value of nstep: ")))
    +    (insert "nstep = " value))
    +  )
    +
    +
    +(defun cp-nsteps ()
    +  (interactive)
    +  (let ((value (read-string "Value of nsteps: ")))
    +    (insert "nsteps = " value))
    +  )
    +
    +
    +(defun cp-ntyp ()
    +  (interactive)
    +  (let ((value (read-string "Value of ntyp: ")))
    +    (insert "ntyp = " value))
    +  )
    +
    +
    +(defun cp-nwf ()
    +  (interactive)
    +  (let ((value (read-string "Value of nwf: ")))
    +    (insert "nwf = " value))
    +  )
    +
    +
    +(defun cp-occupations ()
    +  (interactive)
    +  (let ((value (read-string "Value of occupations: ")))
    +    (insert "occupations = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-ortho_eps ()
    +  (interactive)
    +  (let ((value (read-string "Value of ortho_eps: ")))
    +    (insert "ortho_eps = " value))
    +  )
    +
    +
    +(defun cp-ortho_max ()
    +  (interactive)
    +  (let ((value (read-string "Value of ortho_max: ")))
    +    (insert "ortho_max = " value))
    +  )
    +
    +
    +(defun cp-ortho_para ()
    +  (interactive)
    +  (let ((value (read-string "Value of ortho_para: ")))
    +    (insert "ortho_para = " value))
    +  )
    +
    +
    +(defun cp-orthogonalization ()
    +  (interactive)
    +  (let ((value (read-string "Value of orthogonalization: ")))
    +    (insert "orthogonalization = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-outdir ()
    +  (interactive)
    +  (let ((value (read-directory-name "Value of outdir: ")))
    +    (insert "outdir = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-p_ext ()
    +  (interactive)
    +  (let ((value (read-string "Value of P_ext: ")))
    +    (insert "P_ext = " value))
    +  )
    +
    +
    +(defun cp-p_fin ()
    +  (interactive)
    +  (let ((value (read-string "Value of P_fin: ")))
    +    (insert "P_fin = " value))
    +  )
    +
    +
    +(defun cp-p_in ()
    +  (interactive)
    +  (let ((value (read-string "Value of P_in: ")))
    +    (insert "P_in = " value))
    +  )
    +
    +
    +(defun cp-passop ()
    +  (interactive)
    +  (let ((value (read-string "Value of passop: ")))
    +    (insert "passop = " value))
    +  )
    +
    +
    +(defun cp-prefix ()
    +  (interactive)
    +  (let ((value (read-string "Value of prefix: ")))
    +    (insert "prefix = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-press ()
    +  (interactive)
    +  (let ((value (read-string "Value of press: ")))
    +    (insert "press = " value))
    +  )
    +
    +
    +(defun cp-pseudo_dir ()
    +  (interactive)
    +  (let ((value (read-directory-name "Value of pseudo_dir: ")))
    +    (insert "pseudo_dir = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-pvar ()
    +  (interactive)
    +  (let ((value (read-string "Value of pvar: ")))
    +    (insert "pvar = " value))
    +  )
    +
    +
    +(defun cp-q2sigma ()
    +  (interactive)
    +  (let ((value (read-string "Value of q2sigma: ")))
    +    (insert "q2sigma = " value))
    +  )
    +
    +
    +(defun cp-qcutz ()
    +  (interactive)
    +  (let ((value (read-string "Value of qcutz: ")))
    +    (insert "qcutz = " value))
    +  )
    +
    +
    +(defun cp-remove_rigid_rot ()
    +  (interactive)
    +  (let ((value (read-string "Value of remove_rigid_rot: ")))
    +    (insert "remove_rigid_rot = " value))
    +  )
    +
    +
    +(defun cp-restart_mode ()
    +  (interactive)
    +  (let ((value (read-string "Value of restart_mode: ")))
    +    (insert "restart_mode = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-rho_thr ()
    +  (interactive)
    +  (let ((value (read-string "Value of rho_thr: ")))
    +    (insert "rho_thr = " value))
    +  )
    +
    +
    +(defun cp-saverho ()
    +  (interactive)
    +  (let ((value (read-string "Value of saverho: ")))
    +    (insert "saverho = " value))
    +  )
    +
    +
    +(defun cp-smearing ()
    +  (interactive)
    +  (let ((value (read-string "Value of smearing: ")))
    +    (insert "smearing = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-startingwfc ()
    +  (interactive)
    +  (let ((value (read-string "Value of startingwfc: ")))
    +    (insert "startingwfc = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-surf_t ()
    +  (interactive)
    +  (let ((value (read-string "Value of Surf_t: ")))
    +    (insert "Surf_t = " value))
    +  )
    +
    +
    +(defun cp-sw_len ()
    +  (interactive)
    +  (let ((value (read-string "Value of sw_len: ")))
    +    (insert "sw_len = " value))
    +  )
    +
    +
    +(defun cp-tabps ()
    +  (interactive)
    +  (let ((value (read-string "Value of tabps: ")))
    +    (insert "tabps = " value))
    +  )
    +
    +
    +(defun cp-tcg ()
    +  (interactive)
    +  (let ((value (read-string "Value of tcg: ")))
    +    (insert "tcg = " value))
    +  )
    +
    +
    +(defun cp-tefield ()
    +  (interactive)
    +  (let ((value (read-string "Value of tefield: ")))
    +    (insert "tefield = " value))
    +  )
    +
    +
    +(defun cp-temph ()
    +  (interactive)
    +  (let ((value (read-string "Value of temph: ")))
    +    (insert "temph = " value))
    +  )
    +
    +
    +(defun cp-tempw ()
    +  (interactive)
    +  (let ((value (read-string "Value of tempw: ")))
    +    (insert "tempw = " value))
    +  )
    +
    +
    +(defun cp-title ()
    +  (interactive)
    +  (let ((value (read-string "Value of title: ")))
    +    (insert "title = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-tolp ()
    +  (interactive)
    +  (let ((value (read-string "Value of tolp: ")))
    +    (insert "tolp = " value))
    +  )
    +
    +
    +(defun cp-tolw ()
    +  (interactive)
    +  (let ((value (read-string "Value of tolw: ")))
    +    (insert "tolw = " value))
    +  )
    +
    +
    +(defun cp-tot_charge ()
    +  (interactive)
    +  (let ((value (read-string "Value of tot_charge: ")))
    +    (insert "tot_charge = " value))
    +  )
    +
    +
    +(defun cp-tot_magnetization ()
    +  (interactive)
    +  (let ((value (read-string "Value of tot_magnetization: ")))
    +    (insert "tot_magnetization = " value))
    +  )
    +
    +
    +(defun cp-tprnfor ()
    +  (interactive)
    +  (let ((value (read-string "Value of tprnfor: ")))
    +    (insert "tprnfor = " value))
    +  )
    +
    +
    +(defun cp-tranp ()
    +  (interactive)
    +  (let ((value (read-string "Value of tranp: ")))
    +    (insert "tranp = " value))
    +  )
    +
    +
    +(defun cp-ts_vdw ()
    +  (interactive)
    +  (let ((value (read-string "Value of ts_vdw: ")))
    +    (insert "ts_vdw = " value))
    +  )
    +
    +
    +(defun cp-ts_vdw_econv_thr ()
    +  (interactive)
    +  (let ((value (read-string "Value of ts_vdw_econv_thr: ")))
    +    (insert "ts_vdw_econv_thr = " value))
    +  )
    +
    +
    +(defun cp-ts_vdw_isolated ()
    +  (interactive)
    +  (let ((value (read-string "Value of ts_vdw_isolated: ")))
    +    (insert "ts_vdw_isolated = " value))
    +  )
    +
    +
    +(defun cp-tstress ()
    +  (interactive)
    +  (let ((value (read-string "Value of tstress: ")))
    +    (insert "tstress = " value))
    +  )
    +
    +
    +(defun cp-vdw_corr ()
    +  (interactive)
    +  (let ((value (read-string "Value of vdw_corr: ")))
    +    (insert "vdw_corr = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-verbosity ()
    +  (interactive)
    +  (let ((value (read-string "Value of verbosity: ")))
    +    (insert "verbosity = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun cp-wf_efield ()
    +  (interactive)
    +  (let ((value (read-string "Value of wf_efield: ")))
    +    (insert "wf_efield = " value))
    +  )
    +
    +
    +(defun cp-wf_friction ()
    +  (interactive)
    +  (let ((value (read-string "Value of wf_friction: ")))
    +    (insert "wf_friction = " value))
    +  )
    +
    +
    +(defun cp-wf_q ()
    +  (interactive)
    +  (let ((value (read-string "Value of wf_q: ")))
    +    (insert "wf_q = " value))
    +  )
    +
    +
    +(defun cp-wf_switch ()
    +  (interactive)
    +  (let ((value (read-string "Value of wf_switch: ")))
    +    (insert "wf_switch = " value))
    +  )
    +
    +
    +(defun cp-wfdt ()
    +  (interactive)
    +  (let ((value (read-string "Value of wfdt: ")))
    +    (insert "wfdt = " value))
    +  )
    +
    +
    +(defun cp-wffort ()
    +  (interactive)
    +  (let ((value (read-string "Value of wffort: ")))
    +    (insert "wffort = " value))
    +  )
    +
    +
    +(defun cp-wfsd ()
    +  (interactive)
    +  (let ((value (read-string "Value of wfsd: ")))
    +    (insert "wfsd = " value))
    +  )
    +
    +
    +(defun cp-wmass ()
    +  (interactive)
    +  (let ((value (read-string "Value of wmass: ")))
    +    (insert "wmass = " value))
    +  )
    +
    +
    +(defun cp-writev ()
    +  (interactive)
    +  (let ((value (read-string "Value of writev: ")))
    +    (insert "writev = " value))
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; cp- cards functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun cp-ATOMIC_FORCES ()
    + (interactive)
    + (insert "ATOMIC_FORCES")
    + (newline 1)
    + )
    +
    +
    +(defun cp-ATOMIC_POSITIONS ()
    +  (interactive)
    +  (let ((flag (read-string "Flags: { alat | bohr | angstrom | crystal } ")))
    +    (insert "ATOMIC_POSITIONS " flag))
    +  (newline 1)
    +  )
    +
    +
    +(defun cp-ATOMIC_SPECIES ()
    + (interactive)
    + (insert "ATOMIC_SPECIES")
    + (newline 1)
    + )
    +
    +
    +(defun cp-ATOMIC_VELOCITIES ()
    +  (interactive)
    +  (let ((flag (read-string "Flags: { a.u } ")))
    +    (insert "ATOMIC_VELOCITIES " flag))
    +  (newline 1)
    +  )
    +
    +
    +(defun cp-AUTOPILOT ()
    + (interactive)
    + (insert "AUTOPILOT")
    + (newline 1)
    + )
    +
    +
    +(defun cp-CELL_PARAMETERS ()
    +  (interactive)
    +  (let ((flag (read-string "Flags: { bohr | angstrom | alat } ")))
    +    (insert "CELL_PARAMETERS " flag))
    +  (newline 1)
    +  )
    +
    +
    +(defun cp-CONSTRAINTS ()
    + (interactive)
    + (insert "CONSTRAINTS")
    + (newline 1)
    + )
    +
    +
    +(defun cp-OCCUPATIONS ()
    + (interactive)
    + (insert "OCCUPATIONS")
    + (newline 1)
    + )
    +
    +
    +(defun cp-PLOT_WANNIER ()
    + (interactive)
    + (insert "PLOT_WANNIER")
    + (newline 1)
    + )
    +
    +
    +(defun cp-REF_CELL_PARAMETERS ()
    +  (interactive)
    +  (let ((flag (read-string "Flags: { bohr | angstrom } ")))
    +    (insert "REF_CELL_PARAMETERS " flag))
    +  (newline 1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; ppacf- namelists functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun ppacf-PPACF ()
    +  (interactive)
    +  (insert "&PPACF")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; ppacf- namelist's variables functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun ppacf-code_num ()
    +  (interactive)
    +  (let ((value (read-string "Value of code_num: ")))
    +    (insert "code_num = " value))
    +  )
    +
    +
    +(defun ppacf-lfock ()
    +  (interactive)
    +  (let ((value (read-string "Value of lfock: ")))
    +    (insert "lfock = " value))
    +  )
    +
    +
    +(defun ppacf-lplot ()
    +  (interactive)
    +  (let ((value (read-string "Value of lplot: ")))
    +    (insert "lplot = " value))
    +  )
    +
    +
    +(defun ppacf-ltks ()
    +  (interactive)
    +  (let ((value (read-string "Value of ltks: ")))
    +    (insert "ltks = " value))
    +  )
    +
    +
    +(defun ppacf-n_lambda ()
    +  (interactive)
    +  (let ((value (read-string "Value of n_lambda: ")))
    +    (insert "n_lambda = " value))
    +  )
    +
    +
    +(defun ppacf-outdir ()
    +  (interactive)
    +  (let ((value (read-directory-name "Value of outdir: ")))
    +    (insert "outdir = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ppacf-prefix ()
    +  (interactive)
    +  (let ((value (read-string "Value of prefix: ")))
    +    (insert "prefix = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ppacf-pseudo_dir ()
    +  (interactive)
    +  (let ((value (read-directory-name "Value of pseudo_dir: ")))
    +    (insert "pseudo_dir = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ppacf-use_ace ()
    +  (interactive)
    +  (let ((value (read-string "Value of use_ace: ")))
    +    (insert "use_ace = " value))
    +  )
    +
    +
    +(defun ppacf-vdw_table_name ()
    +  (interactive)
    +  (let ((value (read-string "Value of vdw_table_name: ")))
    +    (insert "vdw_table_name = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; importexport_binary- namelists functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun importexport_binary-INPUTPP ()
    +  (interactive)
    +  (insert "&INPUTPP")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; importexport_binary- namelist's variables functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun importexport_binary-direction ()
    +  (interactive)
    +  (let ((value (read-string "Value of direction: ")))
    +    (insert "direction = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun importexport_binary-newoutdir ()
    +  (interactive)
    +  (let ((value (read-directory-name "Value of newoutdir: ")))
    +    (insert "newoutdir = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun importexport_binary-outdir ()
    +  (interactive)
    +  (let ((value (read-directory-name "Value of outdir: ")))
    +    (insert "outdir = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun importexport_binary-prefix ()
    +  (interactive)
    +  (let ((value (read-string "Value of prefix: ")))
    +    (insert "prefix = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; projwfc- namelists functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun projwfc-PROJWFC ()
    +  (interactive)
    +  (insert "&PROJWFC")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; projwfc- namelist's variables functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun projwfc-degauss ()
    +  (interactive)
    +  (let ((value (read-string "Value of degauss: ")))
    +    (insert "degauss = " value))
    +  )
    +
    +
    +(defun projwfc-deltae ()
    +  (interactive)
    +  (let ((value (read-string "Value of DeltaE: ")))
    +    (insert "DeltaE = " value))
    +  )
    +
    +
    +(defun projwfc-emax ()
    +  (interactive)
    +  (let ((value (read-string "Value of Emax: ")))
    +    (insert "Emax = " value))
    +  )
    +
    +
    +(defun projwfc-emin ()
    +  (interactive)
    +  (let ((value (read-string "Value of Emin: ")))
    +    (insert "Emin = " value))
    +  )
    +
    +
    +(defun projwfc-filpdos ()
    +  (interactive)
    +  (let ((value (read-string "Value of filpdos: ")))
    +    (insert "filpdos = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun projwfc-filproj ()
    +  (interactive)
    +  (let ((value (read-string "Value of filproj: ")))
    +    (insert "filproj = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun projwfc-irmax ()
    +  (interactive)
    +  (let ((value (read-string "Value of irmax: ")))
    +    (insert "irmax = " value))
    +  )
    +
    +
    +(defun projwfc-irmin ()
    +  (interactive)
    +  (let ((value (read-string "Value of irmin: ")))
    +    (insert "irmin = " value))
    +  )
    +
    +
    +(defun projwfc-kresolveddos ()
    +  (interactive)
    +  (let ((value (read-string "Value of kresolveddos: ")))
    +    (insert "kresolveddos = " value))
    +  )
    +
    +
    +(defun projwfc-lbinary_data ()
    +  (interactive)
    +  (let ((value (read-string "Value of lbinary_data: ")))
    +    (insert "lbinary_data = " value))
    +  )
    +
    +
    +(defun projwfc-lsym ()
    +  (interactive)
    +  (let ((value (read-string "Value of lsym: ")))
    +    (insert "lsym = " value))
    +  )
    +
    +
    +(defun projwfc-lwrite_overlaps ()
    +  (interactive)
    +  (let ((value (read-string "Value of lwrite_overlaps: ")))
    +    (insert "lwrite_overlaps = " value))
    +  )
    +
    +
    +(defun projwfc-n_proj_boxes ()
    +  (interactive)
    +  (let ((value (read-string "Value of n_proj_boxes: ")))
    +    (insert "n_proj_boxes = " value))
    +  )
    +
    +
    +(defun projwfc-ngauss ()
    +  (interactive)
    +  (let ((value (read-string "Value of ngauss: ")))
    +    (insert "ngauss = " value))
    +  )
    +
    +
    +(defun projwfc-outdir ()
    +  (interactive)
    +  (let ((value (read-directory-name "Value of outdir: ")))
    +    (insert "outdir = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun projwfc-pawproj ()
    +  (interactive)
    +  (let ((value (read-string "Value of pawproj: ")))
    +    (insert "pawproj = " value))
    +  )
    +
    +
    +(defun projwfc-plotboxes ()
    +  (interactive)
    +  (let ((value (read-string "Value of plotboxes: ")))
    +    (insert "plotboxes = " value))
    +  )
    +
    +
    +(defun projwfc-prefix ()
    +  (interactive)
    +  (let ((value (read-string "Value of prefix: ")))
    +    (insert "prefix = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun projwfc-tdosinboxes ()
    +  (interactive)
    +  (let ((value (read-string "Value of tdosinboxes: ")))
    +    (insert "tdosinboxes = " value))
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; dos- namelists functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun dos-DOS ()
    +  (interactive)
    +  (insert "&DOS")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; dos- namelist's variables functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun dos-bz_sum ()
    +  (interactive)
    +  (let ((value (read-string "Value of bz_sum: ")))
    +    (insert "bz_sum = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun dos-degauss ()
    +  (interactive)
    +  (let ((value (read-string "Value of degauss: ")))
    +    (insert "degauss = " value))
    +  )
    +
    +
    +(defun dos-deltae ()
    +  (interactive)
    +  (let ((value (read-string "Value of DeltaE: ")))
    +    (insert "DeltaE = " value))
    +  )
    +
    +
    +(defun dos-emax ()
    +  (interactive)
    +  (let ((value (read-string "Value of Emax: ")))
    +    (insert "Emax = " value))
    +  )
    +
    +
    +(defun dos-emin ()
    +  (interactive)
    +  (let ((value (read-string "Value of Emin: ")))
    +    (insert "Emin = " value))
    +  )
    +
    +
    +(defun dos-fildos ()
    +  (interactive)
    +  (let ((value (read-string "Value of fildos: ")))
    +    (insert "fildos = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun dos-ngauss ()
    +  (interactive)
    +  (let ((value (read-string "Value of ngauss: ")))
    +    (insert "ngauss = " value))
    +  )
    +
    +
    +(defun dos-outdir ()
    +  (interactive)
    +  (let ((value (read-directory-name "Value of outdir: ")))
    +    (insert "outdir = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun dos-prefix ()
    +  (interactive)
    +  (let ((value (read-string "Value of prefix: ")))
    +    (insert "prefix = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; bands- namelists functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun bands-BANDS ()
    +  (interactive)
    +  (insert "&BANDS")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; bands- namelist's variables functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun bands-filband ()
    +  (interactive)
    +  (let ((value (read-string "Value of filband: ")))
    +    (insert "filband = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun bands-filp ()
    +  (interactive)
    +  (let ((value (read-string "Value of filp: ")))
    +    (insert "filp = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun bands-firstk ()
    +  (interactive)
    +  (let ((value (read-string "Value of firstk: ")))
    +    (insert "firstk = " value))
    +  )
    +
    +
    +(defun bands-lastk ()
    +  (interactive)
    +  (let ((value (read-string "Value of lastk: ")))
    +    (insert "lastk = " value))
    +  )
    +
    +
    +(defun bands-lp ()
    +  (interactive)
    +  (let ((value (read-string "Value of lp: ")))
    +    (insert "lp = " value))
    +  )
    +
    +
    +(defun bands-lsigma ()
    +  (interactive)
    +  (let ((value (read-string "Value of lsigma: ")))
    +    (insert "lsigma = " value))
    +  )
    +
    +
    +(defun bands-lsym ()
    +  (interactive)
    +  (let ((value (read-string "Value of lsym: ")))
    +    (insert "lsym = " value))
    +  )
    +
    +
    +(defun bands-no_overlap ()
    +  (interactive)
    +  (let ((value (read-string "Value of no_overlap: ")))
    +    (insert "no_overlap = " value))
    +  )
    +
    +
    +(defun bands-outdir ()
    +  (interactive)
    +  (let ((value (read-directory-name "Value of outdir: ")))
    +    (insert "outdir = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun bands-plot_2d ()
    +  (interactive)
    +  (let ((value (read-string "Value of plot_2d: ")))
    +    (insert "plot_2d = " value))
    +  )
    +
    +
    +(defun bands-prefix ()
    +  (interactive)
    +  (let ((value (read-string "Value of prefix: ")))
    +    (insert "prefix = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun bands-spin_component ()
    +  (interactive)
    +  (let ((value (read-string "Value of spin_component: ")))
    +    (insert "spin_component = " value))
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; pw2gw- namelists functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun pw2gw-INPUTPP ()
    +  (interactive)
    +  (insert "&INPUTPP")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; pw2gw- namelist's variables functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun pw2gw-deltae ()
    +  (interactive)
    +  (let ((value (read-string "Value of DeltaE: ")))
    +    (insert "DeltaE = " value))
    +  )
    +
    +
    +(defun pw2gw-emax ()
    +  (interactive)
    +  (let ((value (read-string "Value of Emax: ")))
    +    (insert "Emax = " value))
    +  )
    +
    +
    +(defun pw2gw-emin ()
    +  (interactive)
    +  (let ((value (read-string "Value of Emin: ")))
    +    (insert "Emin = " value))
    +  )
    +
    +
    +(defun pw2gw-outdir ()
    +  (interactive)
    +  (let ((value (read-string "Value of outdir: ")))
    +    (insert "outdir = " value))
    +  )
    +
    +
    +(defun pw2gw-prefix ()
    +  (interactive)
    +  (let ((value (read-string "Value of prefix: ")))
    +    (insert "prefix = " value))
    +  )
    +
    +
    +(defun pw2gw-qplda ()
    +  (interactive)
    +  (let ((value (read-string "Value of qplda: ")))
    +    (insert "qplda = " value))
    +  )
    +
    +
    +(defun pw2gw-vkb ()
    +  (interactive)
    +  (let ((value (read-string "Value of vkb: ")))
    +    (insert "vkb = " value))
    +  )
    +
    +
    +(defun pw2gw-vxcdiag ()
    +  (interactive)
    +  (let ((value (read-string "Value of vxcdiag: ")))
    +    (insert "vxcdiag = " value))
    +  )
    +
    +
    +(defun pw2gw-what ()
    +  (interactive)
    +  (let ((value (read-string "Value of what: ")))
    +    (insert "what = " value))
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; pw2bgw- namelists functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun pw2bgw-INPUT_PW2BGW ()
    +  (interactive)
    +  (insert "&INPUT_PW2BGW")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; pw2bgw- namelist's variables functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun pw2bgw-outdir ()
    +  (interactive)
    +  (let ((value (read-string "Value of outdir: ")))
    +    (insert "outdir = " value))
    +  )
    +
    +
    +(defun pw2bgw-prefix ()
    +  (interactive)
    +  (let ((value (read-string "Value of prefix: ")))
    +    (insert "prefix = " value))
    +  )
    +
    +
    +(defun pw2bgw-real_or_complex ()
    +  (interactive)
    +  (let ((value (read-string "Value of real_or_complex: ")))
    +    (insert "real_or_complex = " value))
    +  )
    +
    +
    +(defun pw2bgw-rhog_file ()
    +  (interactive)
    +  (let ((value (read-string "Value of rhog_file: ")))
    +    (insert "rhog_file = " value))
    +  )
    +
    +
    +(defun pw2bgw-rhog_flag ()
    +  (interactive)
    +  (let ((value (read-string "Value of rhog_flag: ")))
    +    (insert "rhog_flag = " value))
    +  )
    +
    +
    +(defun pw2bgw-rhog_nvmax ()
    +  (interactive)
    +  (let ((value (read-string "Value of rhog_nvmax: ")))
    +    (insert "rhog_nvmax = " value))
    +  )
    +
    +
    +(defun pw2bgw-rhog_nvmin ()
    +  (interactive)
    +  (let ((value (read-string "Value of rhog_nvmin: ")))
    +    (insert "rhog_nvmin = " value))
    +  )
    +
    +
    +(defun pw2bgw-symm_type ()
    +  (interactive)
    +  (let ((value (read-string "Value of symm_type: ")))
    +    (insert "symm_type = " value))
    +  )
    +
    +
    +(defun pw2bgw-vkbg_file ()
    +  (interactive)
    +  (let ((value (read-string "Value of vkbg_file: ")))
    +    (insert "vkbg_file = " value))
    +  )
    +
    +
    +(defun pw2bgw-vkbg_flag ()
    +  (interactive)
    +  (let ((value (read-string "Value of vkbg_flag: ")))
    +    (insert "vkbg_flag = " value))
    +  )
    +
    +
    +(defun pw2bgw-vscg_file ()
    +  (interactive)
    +  (let ((value (read-string "Value of vscg_file: ")))
    +    (insert "vscg_file = " value))
    +  )
    +
    +
    +(defun pw2bgw-vscg_flag ()
    +  (interactive)
    +  (let ((value (read-string "Value of vscg_flag: ")))
    +    (insert "vscg_flag = " value))
    +  )
    +
    +
    +(defun pw2bgw-vxc0_file ()
    +  (interactive)
    +  (let ((value (read-string "Value of vxc0_file: ")))
    +    (insert "vxc0_file = " value))
    +  )
    +
    +
    +(defun pw2bgw-vxc0_flag ()
    +  (interactive)
    +  (let ((value (read-string "Value of vxc0_flag: ")))
    +    (insert "vxc0_flag = " value))
    +  )
    +
    +
    +(defun pw2bgw-vxc_diag_nmax ()
    +  (interactive)
    +  (let ((value (read-string "Value of vxc_diag_nmax: ")))
    +    (insert "vxc_diag_nmax = " value))
    +  )
    +
    +
    +(defun pw2bgw-vxc_diag_nmin ()
    +  (interactive)
    +  (let ((value (read-string "Value of vxc_diag_nmin: ")))
    +    (insert "vxc_diag_nmin = " value))
    +  )
    +
    +
    +(defun pw2bgw-vxc_file ()
    +  (interactive)
    +  (let ((value (read-string "Value of vxc_file: ")))
    +    (insert "vxc_file = " value))
    +  )
    +
    +
    +(defun pw2bgw-vxc_flag ()
    +  (interactive)
    +  (let ((value (read-string "Value of vxc_flag: ")))
    +    (insert "vxc_flag = " value))
    +  )
    +
    +
    +(defun pw2bgw-vxc_integral ()
    +  (interactive)
    +  (let ((value (read-string "Value of vxc_integral: ")))
    +    (insert "vxc_integral = " value))
    +  )
    +
    +
    +(defun pw2bgw-vxc_offdiag_nmax ()
    +  (interactive)
    +  (let ((value (read-string "Value of vxc_offdiag_nmax: ")))
    +    (insert "vxc_offdiag_nmax = " value))
    +  )
    +
    +
    +(defun pw2bgw-vxc_offdiag_nmin ()
    +  (interactive)
    +  (let ((value (read-string "Value of vxc_offdiag_nmin: ")))
    +    (insert "vxc_offdiag_nmin = " value))
    +  )
    +
    +
    +(defun pw2bgw-vxc_zero_rho_core ()
    +  (interactive)
    +  (let ((value (read-string "Value of vxc_zero_rho_core: ")))
    +    (insert "vxc_zero_rho_core = " value))
    +  )
    +
    +
    +(defun pw2bgw-vxcg_file ()
    +  (interactive)
    +  (let ((value (read-string "Value of vxcg_file: ")))
    +    (insert "vxcg_file = " value))
    +  )
    +
    +
    +(defun pw2bgw-vxcg_flag ()
    +  (interactive)
    +  (let ((value (read-string "Value of vxcg_flag: ")))
    +    (insert "vxcg_flag = " value))
    +  )
    +
    +
    +(defun pw2bgw-wfng_dk1 ()
    +  (interactive)
    +  (let ((value (read-string "Value of wfng_dk1: ")))
    +    (insert "wfng_dk1 = " value))
    +  )
    +
    +
    +(defun pw2bgw-wfng_dk2 ()
    +  (interactive)
    +  (let ((value (read-string "Value of wfng_dk2: ")))
    +    (insert "wfng_dk2 = " value))
    +  )
    +
    +
    +(defun pw2bgw-wfng_dk3 ()
    +  (interactive)
    +  (let ((value (read-string "Value of wfng_dk3: ")))
    +    (insert "wfng_dk3 = " value))
    +  )
    +
    +
    +(defun pw2bgw-wfng_file ()
    +  (interactive)
    +  (let ((value (read-string "Value of wfng_file: ")))
    +    (insert "wfng_file = " value))
    +  )
    +
    +
    +(defun pw2bgw-wfng_flag ()
    +  (interactive)
    +  (let ((value (read-string "Value of wfng_flag: ")))
    +    (insert "wfng_flag = " value))
    +  )
    +
    +
    +(defun pw2bgw-wfng_kgrid ()
    +  (interactive)
    +  (let ((value (read-string "Value of wfng_kgrid: ")))
    +    (insert "wfng_kgrid = " value))
    +  )
    +
    +
    +(defun pw2bgw-wfng_nk1 ()
    +  (interactive)
    +  (let ((value (read-string "Value of wfng_nk1: ")))
    +    (insert "wfng_nk1 = " value))
    +  )
    +
    +
    +(defun pw2bgw-wfng_nk2 ()
    +  (interactive)
    +  (let ((value (read-string "Value of wfng_nk2: ")))
    +    (insert "wfng_nk2 = " value))
    +  )
    +
    +
    +(defun pw2bgw-wfng_nk3 ()
    +  (interactive)
    +  (let ((value (read-string "Value of wfng_nk3: ")))
    +    (insert "wfng_nk3 = " value))
    +  )
    +
    +
    +(defun pw2bgw-wfng_nvmax ()
    +  (interactive)
    +  (let ((value (read-string "Value of wfng_nvmax: ")))
    +    (insert "wfng_nvmax = " value))
    +  )
    +
    +
    +(defun pw2bgw-wfng_nvmin ()
    +  (interactive)
    +  (let ((value (read-string "Value of wfng_nvmin: ")))
    +    (insert "wfng_nvmin = " value))
    +  )
    +
    +
    +(defun pw2bgw-wfng_occupation ()
    +  (interactive)
    +  (let ((value (read-string "Value of wfng_occupation: ")))
    +    (insert "wfng_occupation = " value))
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; molecularpdos- namelists functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun molecularpdos-INPUTMOPDOS ()
    +  (interactive)
    +  (insert "&INPUTMOPDOS")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; molecularpdos- namelist's variables functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun molecularpdos-degauss ()
    +  (interactive)
    +  (let ((value (read-string "Value of degauss: ")))
    +    (insert "degauss = " value))
    +  )
    +
    +
    +(defun molecularpdos-deltae ()
    +  (interactive)
    +  (let ((value (read-string "Value of DeltaE: ")))
    +    (insert "DeltaE = " value))
    +  )
    +
    +
    +(defun molecularpdos-emax ()
    +  (interactive)
    +  (let ((value (read-string "Value of Emax: ")))
    +    (insert "Emax = " value))
    +  )
    +
    +
    +(defun molecularpdos-emin ()
    +  (interactive)
    +  (let ((value (read-string "Value of Emin: ")))
    +    (insert "Emin = " value))
    +  )
    +
    +
    +(defun molecularpdos-fileout ()
    +  (interactive)
    +  (let ((value (read-file-name "Value of fileout: ")))
    +    (insert "fileout = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun molecularpdos-i_atmwfc_beg_full ()
    +  (interactive)
    +  (let ((value (read-string "Value of i_atmwfc_beg_full: ")))
    +    (insert "i_atmwfc_beg_full = " value))
    +  )
    +
    +
    +(defun molecularpdos-i_atmwfc_beg_part ()
    +  (interactive)
    +  (let ((value (read-string "Value of i_atmwfc_beg_part: ")))
    +    (insert "i_atmwfc_beg_part = " value))
    +  )
    +
    +
    +(defun molecularpdos-i_atmwfc_end_full ()
    +  (interactive)
    +  (let ((value (read-string "Value of i_atmwfc_end_full: ")))
    +    (insert "i_atmwfc_end_full = " value))
    +  )
    +
    +
    +(defun molecularpdos-i_atmwfc_end_part ()
    +  (interactive)
    +  (let ((value (read-string "Value of i_atmwfc_end_part: ")))
    +    (insert "i_atmwfc_end_part = " value))
    +  )
    +
    +
    +(defun molecularpdos-i_bnd_beg_full ()
    +  (interactive)
    +  (let ((value (read-string "Value of i_bnd_beg_full: ")))
    +    (insert "i_bnd_beg_full = " value))
    +  )
    +
    +
    +(defun molecularpdos-i_bnd_beg_part ()
    +  (interactive)
    +  (let ((value (read-string "Value of i_bnd_beg_part: ")))
    +    (insert "i_bnd_beg_part = " value))
    +  )
    +
    +
    +(defun molecularpdos-i_bnd_end_full ()
    +  (interactive)
    +  (let ((value (read-string "Value of i_bnd_end_full: ")))
    +    (insert "i_bnd_end_full = " value))
    +  )
    +
    +
    +(defun molecularpdos-i_bnd_end_part ()
    +  (interactive)
    +  (let ((value (read-string "Value of i_bnd_end_part: ")))
    +    (insert "i_bnd_end_part = " value))
    +  )
    +
    +
    +(defun molecularpdos-kresolveddos ()
    +  (interactive)
    +  (let ((value (read-string "Value of kresolveddos: ")))
    +    (insert "kresolveddos = " value))
    +  )
    +
    +
    +(defun molecularpdos-ngauss ()
    +  (interactive)
    +  (let ((value (read-string "Value of ngauss: ")))
    +    (insert "ngauss = " value))
    +  )
    +
    +
    +(defun molecularpdos-xmlfile_full ()
    +  (interactive)
    +  (let ((value (read-string "Value of xmlfile_full: ")))
    +    (insert "xmlfile_full = " value))
    +  )
    +
    +
    +(defun molecularpdos-xmlfile_part ()
    +  (interactive)
    +  (let ((value (read-string "Value of xmlfile_part: ")))
    +    (insert "xmlfile_part = " value))
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; pw_export- namelists functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun pw_export-INPUTPP ()
    +  (interactive)
    +  (insert "&INPUTPP")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; pw_export- namelist's variables functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun pw_export-ascii ()
    +  (interactive)
    +  (let ((value (read-string "Value of ascii: ")))
    +    (insert "ascii = " value))
    +  )
    +
    +
    +(defun pw_export-outdir ()
    +  (interactive)
    +  (let ((value (read-string "Value of outdir: ")))
    +    (insert "outdir = " value))
    +  )
    +
    +
    +(defun pw_export-pp_file ()
    +  (interactive)
    +  (let ((value (read-string "Value of pp_file: ")))
    +    (insert "pp_file = " value))
    +  )
    +
    +
    +(defun pw_export-prefix ()
    +  (interactive)
    +  (let ((value (read-string "Value of prefix: ")))
    +    (insert "prefix = " value))
    +  )
    +
    +
    +(defun pw_export-pseudo_dir ()
    +  (interactive)
    +  (let ((value (read-string "Value of pseudo_dir: ")))
    +    (insert "pseudo_dir = " value))
    +  )
    +
    +
    +(defun pw_export-psfile ()
    +  (interactive)
    +  (let ((value (read-string "Value of psfile: ")))
    +    (insert "psfile = " value))
    +  )
    +
    +
    +(defun pw_export-single_file ()
    +  (interactive)
    +  (let ((value (read-string "Value of single_file: ")))
    +    (insert "single_file = " value))
    +  )
    +
    +
    +(defun pw_export-uspp_spsi ()
    +  (interactive)
    +  (let ((value (read-string "Value of uspp_spsi: ")))
    +    (insert "uspp_spsi = " value))
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; bgw2pw- namelists functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun bgw2pw-INPUT_BGW2PW ()
    +  (interactive)
    +  (insert "&INPUT_BGW2PW")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; bgw2pw- namelist's variables functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun bgw2pw-outdir ()
    +  (interactive)
    +  (let ((value (read-string "Value of outdir: ")))
    +    (insert "outdir = " value))
    +  )
    +
    +
    +(defun bgw2pw-prefix ()
    +  (interactive)
    +  (let ((value (read-string "Value of prefix: ")))
    +    (insert "prefix = " value))
    +  )
    +
    +
    +(defun bgw2pw-real_or_complex ()
    +  (interactive)
    +  (let ((value (read-string "Value of real_or_complex: ")))
    +    (insert "real_or_complex = " value))
    +  )
    +
    +
    +(defun bgw2pw-rhog_file ()
    +  (interactive)
    +  (let ((value (read-string "Value of rhog_file: ")))
    +    (insert "rhog_file = " value))
    +  )
    +
    +
    +(defun bgw2pw-rhog_flag ()
    +  (interactive)
    +  (let ((value (read-string "Value of rhog_flag: ")))
    +    (insert "rhog_flag = " value))
    +  )
    +
    +
    +(defun bgw2pw-wfng_file ()
    +  (interactive)
    +  (let ((value (read-string "Value of wfng_file: ")))
    +    (insert "wfng_file = " value))
    +  )
    +
    +
    +(defun bgw2pw-wfng_flag ()
    +  (interactive)
    +  (let ((value (read-string "Value of wfng_flag: ")))
    +    (insert "wfng_flag = " value))
    +  )
    +
    +
    +(defun bgw2pw-wfng_nband ()
    +  (interactive)
    +  (let ((value (read-string "Value of wfng_nband: ")))
    +    (insert "wfng_nband = " value))
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; pp- namelists functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun pp-INPUTPP ()
    +  (interactive)
    +  (insert "&INPUTPP")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +(defun pp-PLOT ()
    +  (interactive)
    +  (insert "&PLOT")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; pp- namelist's variables functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun pp-degauss_ldos ()
    +  (interactive)
    +  (let ((value (read-string "Value of degauss_ldos: ")))
    +    (insert "degauss_ldos = " value))
    +  )
    +
    +
    +(defun pp-delta_e ()
    +  (interactive)
    +  (let ((value (read-string "Value of delta_e: ")))
    +    (insert "delta_e = " value))
    +  )
    +
    +
    +(defun pp-e1 ()
    +  (interactive)
    +  (let ((value (read-string "Value of e1: ")))
    +    (insert "e1 = " value))
    +  )
    +
    +
    +(defun pp-e2 ()
    +  (interactive)
    +  (let ((value (read-string "Value of e2: ")))
    +    (insert "e2 = " value))
    +  )
    +
    +
    +(defun pp-e3 ()
    +  (interactive)
    +  (let ((value (read-string "Value of e3: ")))
    +    (insert "e3 = " value))
    +  )
    +
    +
    +(defun pp-emax ()
    +  (interactive)
    +  (let ((value (read-string "Value of emax: ")))
    +    (insert "emax = " value))
    +  )
    +
    +
    +(defun pp-emin ()
    +  (interactive)
    +  (let ((value (read-string "Value of emin: ")))
    +    (insert "emin = " value))
    +  )
    +
    +
    +(defun pp-fileout ()
    +  (interactive)
    +  (let ((value (read-file-name "Value of fileout: ")))
    +    (insert "fileout = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pp-filepp ()
    +  (interactive)
    +  (let ((value (read-file-name "Value of filepp: ")))
    +    (insert "filepp = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pp-filplot ()
    +  (interactive)
    +  (let ((value (read-string "Value of filplot: ")))
    +    (insert "filplot = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pp-iflag ()
    +  (interactive)
    +  (let ((value (read-string "Value of iflag: ")))
    +    (insert "iflag = " value))
    +  )
    +
    +
    +(defun pp-interpolation ()
    +  (interactive)
    +  (let ((value (read-string "Value of interpolation: ")))
    +    (insert "interpolation = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pp-kband ()
    +  (interactive)
    +  (let ((value (read-string "Value of kband: ")))
    +    (insert "kband = " value))
    +  )
    +
    +
    +(defun pp-kpoint ()
    +  (interactive)
    +  (let ((value (read-string "Value of kpoint: ")))
    +    (insert "kpoint = " value))
    +  )
    +
    +
    +(defun pp-lsign ()
    +  (interactive)
    +  (let ((value (read-string "Value of lsign: ")))
    +    (insert "lsign = " value))
    +  )
    +
    +
    +(defun pp-nfile ()
    +  (interactive)
    +  (let ((value (read-string "Value of nfile: ")))
    +    (insert "nfile = " value))
    +  )
    +
    +
    +(defun pp-nx ()
    +  (interactive)
    +  (let ((value (read-string "Value of nx: ")))
    +    (insert "nx = " value))
    +  )
    +
    +
    +(defun pp-ny ()
    +  (interactive)
    +  (let ((value (read-string "Value of ny: ")))
    +    (insert "ny = " value))
    +  )
    +
    +
    +(defun pp-nz ()
    +  (interactive)
    +  (let ((value (read-string "Value of nz: ")))
    +    (insert "nz = " value))
    +  )
    +
    +
    +(defun pp-outdir ()
    +  (interactive)
    +  (let ((value (read-directory-name "Value of outdir: ")))
    +    (insert "outdir = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pp-output_format ()
    +  (interactive)
    +  (let ((value (read-string "Value of output_format: ")))
    +    (insert "output_format = " value))
    +  )
    +
    +
    +(defun pp-plot_num ()
    +  (interactive)
    +  (let ((value (read-string "Value of plot_num: ")))
    +    (insert "plot_num = " value))
    +  )
    +
    +
    +(defun pp-prefix ()
    +  (interactive)
    +  (let ((value (read-string "Value of prefix: ")))
    +    (insert "prefix = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pp-radius ()
    +  (interactive)
    +  (let ((value (read-string "Value of radius: ")))
    +    (insert "radius = " value))
    +  )
    +
    +
    +(defun pp-sample_bias ()
    +  (interactive)
    +  (let ((value (read-string "Value of sample_bias: ")))
    +    (insert "sample_bias = " value))
    +  )
    +
    +
    +(defun pp-spin_component ()
    +  (interactive)
    +  (let ((value (read-string "Value of spin_component: ")))
    +    (insert "spin_component = " value))
    +  )
    +
    +
    +(defun pp-weight ()
    +  (interactive)
    +  (let ((value (read-string "Value of weight: ")))
    +    (insert "weight = " value))
    +  )
    +
    +
    +(defun pp-x0 ()
    +  (interactive)
    +  (let ((value (read-string "Value of x0: ")))
    +    (insert "x0 = " value))
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; hp- namelists functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun hp-INPUTHP ()
    +  (interactive)
    +  (insert "&INPUTHP")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; hp- namelist's variables functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun hp-alpha_mix ()
    +  (interactive)
    +  (let ((value (read-string "Value of alpha_mix: ")))
    +    (insert "alpha_mix = " value))
    +  )
    +
    +
    +(defun hp-compute_hp ()
    +  (interactive)
    +  (let ((value (read-string "Value of compute_hp: ")))
    +    (insert "compute_hp = " value))
    +  )
    +
    +
    +(defun hp-conv_thr_chi ()
    +  (interactive)
    +  (let ((value (read-string "Value of conv_thr_chi: ")))
    +    (insert "conv_thr_chi = " value))
    +  )
    +
    +
    +(defun hp-determine_num_pert_only ()
    +  (interactive)
    +  (let ((value (read-string "Value of determine_num_pert_only: ")))
    +    (insert "determine_num_pert_only = " value))
    +  )
    +
    +
    +(defun hp-docc_thr ()
    +  (interactive)
    +  (let ((value (read-string "Value of docc_thr: ")))
    +    (insert "docc_thr = " value))
    +  )
    +
    +
    +(defun hp-equiv_type ()
    +  (interactive)
    +  (let ((value (read-string "Value of equiv_type: ")))
    +    (insert "equiv_type = " value))
    +  )
    +
    +
    +(defun hp-ethr_nscf ()
    +  (interactive)
    +  (let ((value (read-string "Value of ethr_nscf: ")))
    +    (insert "ethr_nscf = " value))
    +  )
    +
    +
    +(defun hp-find_atpert ()
    +  (interactive)
    +  (let ((value (read-string "Value of find_atpert: ")))
    +    (insert "find_atpert = " value))
    +  )
    +
    +
    +(defun hp-iverbosity ()
    +  (interactive)
    +  (let ((value (read-string "Value of iverbosity: ")))
    +    (insert "iverbosity = " value))
    +  )
    +
    +
    +(defun hp-last_q ()
    +  (interactive)
    +  (let ((value (read-string "Value of last_q: ")))
    +    (insert "last_q = " value))
    +  )
    +
    +
    +(defun hp-max_seconds ()
    +  (interactive)
    +  (let ((value (read-string "Value of max_seconds: ")))
    +    (insert "max_seconds = " value))
    +  )
    +
    +
    +(defun hp-niter_max ()
    +  (interactive)
    +  (let ((value (read-string "Value of niter_max: ")))
    +    (insert "niter_max = " value))
    +  )
    +
    +
    +(defun hp-nmix ()
    +  (interactive)
    +  (let ((value (read-string "Value of nmix: ")))
    +    (insert "nmix = " value))
    +  )
    +
    +
    +(defun hp-nq1 ()
    +  (interactive)
    +  (let ((value (read-string "Value of nq1: ")))
    +    (insert "nq1 = " value))
    +  )
    +
    +
    +(defun hp-nq2 ()
    +  (interactive)
    +  (let ((value (read-string "Value of nq2: ")))
    +    (insert "nq2 = " value))
    +  )
    +
    +
    +(defun hp-nq3 ()
    +  (interactive)
    +  (let ((value (read-string "Value of nq3: ")))
    +    (insert "nq3 = " value))
    +  )
    +
    +
    +(defun hp-outdir ()
    +  (interactive)
    +  (let ((value (read-directory-name "Value of outdir: ")))
    +    (insert "outdir = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun hp-perturb_only_atom ()
    +  (interactive)
    +  (let ((value (read-string "Value of perturb_only_atom: ")))
    +    (insert "perturb_only_atom = " value))
    +  )
    +
    +
    +(defun hp-prefix ()
    +  (interactive)
    +  (let ((value (read-string "Value of prefix: ")))
    +    (insert "prefix = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun hp-skip_equivalence_q ()
    +  (interactive)
    +  (let ((value (read-string "Value of skip_equivalence_q: ")))
    +    (insert "skip_equivalence_q = " value))
    +  )
    +
    +
    +(defun hp-skip_type ()
    +  (interactive)
    +  (let ((value (read-string "Value of skip_type: ")))
    +    (insert "skip_type = " value))
    +  )
    +
    +
    +(defun hp-start_q ()
    +  (interactive)
    +  (let ((value (read-string "Value of start_q: ")))
    +    (insert "start_q = " value))
    +  )
    +
    +
    +(defun hp-sum_pertq ()
    +  (interactive)
    +  (let ((value (read-string "Value of sum_pertq: ")))
    +    (insert "sum_pertq = " value))
    +  )
    +
    +
    +(defun hp-thresh_init ()
    +  (interactive)
    +  (let ((value (read-string "Value of thresh_init: ")))
    +    (insert "thresh_init = " value))
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; ld1- namelists functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun ld1-INPUT ()
    +  (interactive)
    +  (insert "&INPUT")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +(defun ld1-INPUTP ()
    +  (interactive)
    +  (insert "&INPUTP")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +(defun ld1-TEST ()
    +  (interactive)
    +  (insert "&TEST")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; ld1- namelist's variables functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun ld1-atom ()
    +  (interactive)
    +  (let ((value (read-string "Value of atom: ")))
    +    (insert "atom = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ld1-author ()
    +  (interactive)
    +  (let ((value (read-string "Value of author: ")))
    +    (insert "author = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ld1-beta ()
    +  (interactive)
    +  (let ((value (read-string "Value of beta: ")))
    +    (insert "beta = " value))
    +  )
    +
    +
    +(defun ld1-cau_fact ()
    +  (interactive)
    +  (let ((value (read-string "Value of cau_fact: ")))
    +    (insert "cau_fact = " value))
    +  )
    +
    +
    +(defun ld1-config ()
    +  (interactive)
    +  (let ((value (read-string "Value of config: ")))
    +    (insert "config = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ld1-configts ()
    +  (interactive)
    +  (let ((value (read-string "Value of configts: ")))
    +    (insert "configts = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ld1-decut ()
    +  (interactive)
    +  (let ((value (read-string "Value of decut: ")))
    +    (insert "decut = " value))
    +  )
    +
    +
    +(defun ld1-deld ()
    +  (interactive)
    +  (let ((value (read-string "Value of deld: ")))
    +    (insert "deld = " value))
    +  )
    +
    +
    +(defun ld1-dft ()
    +  (interactive)
    +  (let ((value (read-string "Value of dft: ")))
    +    (insert "dft = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ld1-dx ()
    +  (interactive)
    +  (let ((value (read-string "Value of dx: ")))
    +    (insert "dx = " value))
    +  )
    +
    +
    +(defun ld1-ecutmax ()
    +  (interactive)
    +  (let ((value (read-string "Value of ecutmax: ")))
    +    (insert "ecutmax = " value))
    +  )
    +
    +
    +(defun ld1-ecutmin ()
    +  (interactive)
    +  (let ((value (read-string "Value of ecutmin: ")))
    +    (insert "ecutmin = " value))
    +  )
    +
    +
    +(defun ld1-emaxld ()
    +  (interactive)
    +  (let ((value (read-string "Value of emaxld: ")))
    +    (insert "emaxld = " value))
    +  )
    +
    +
    +(defun ld1-eminld ()
    +  (interactive)
    +  (let ((value (read-string "Value of eminld: ")))
    +    (insert "eminld = " value))
    +  )
    +
    +
    +(defun ld1-file_beta ()
    +  (interactive)
    +  (let ((value (read-file-name "Value of file_beta: ")))
    +    (insert "file_beta = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ld1-file_charge ()
    +  (interactive)
    +  (let ((value (read-file-name "Value of file_charge: ")))
    +    (insert "file_charge = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ld1-file_chi ()
    +  (interactive)
    +  (let ((value (read-file-name "Value of file_chi: ")))
    +    (insert "file_chi = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ld1-file_core ()
    +  (interactive)
    +  (let ((value (read-file-name "Value of file_core: ")))
    +    (insert "file_core = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ld1-file_pseudo ()
    +  (interactive)
    +  (let ((value (read-file-name "Value of file_pseudo: ")))
    +    (insert "file_pseudo = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ld1-file_pseudopw ()
    +  (interactive)
    +  (let ((value (read-file-name "Value of file_pseudopw: ")))
    +    (insert "file_pseudopw = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ld1-file_qvan ()
    +  (interactive)
    +  (let ((value (read-file-name "Value of file_qvan: ")))
    +    (insert "file_qvan = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ld1-file_recon ()
    +  (interactive)
    +  (let ((value (read-file-name "Value of file_recon: ")))
    +    (insert "file_recon = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ld1-file_screen ()
    +  (interactive)
    +  (let ((value (read-file-name "Value of file_screen: ")))
    +    (insert "file_screen = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ld1-file_wfcaegen ()
    +  (interactive)
    +  (let ((value (read-file-name "Value of file_wfcaegen: ")))
    +    (insert "file_wfcaegen = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ld1-file_wfcncgen ()
    +  (interactive)
    +  (let ((value (read-file-name "Value of file_wfcncgen: ")))
    +    (insert "file_wfcncgen = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ld1-file_wfcusgen ()
    +  (interactive)
    +  (let ((value (read-file-name "Value of file_wfcusgen: ")))
    +    (insert "file_wfcusgen = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ld1-frozen_core ()
    +  (interactive)
    +  (let ((value (read-string "Value of frozen_core: ")))
    +    (insert "frozen_core = " value))
    +  )
    +
    +
    +(defun ld1-isic ()
    +  (interactive)
    +  (let ((value (read-string "Value of isic: ")))
    +    (insert "isic = " value))
    +  )
    +
    +
    +(defun ld1-iswitch ()
    +  (interactive)
    +  (let ((value (read-string "Value of iswitch: ")))
    +    (insert "iswitch = " value))
    +  )
    +
    +
    +(defun ld1-latt ()
    +  (interactive)
    +  (let ((value (read-string "Value of latt: ")))
    +    (insert "latt = " value))
    +  )
    +
    +
    +(defun ld1-lgipaw_reconstruction ()
    +  (interactive)
    +  (let ((value (read-string "Value of lgipaw_reconstruction: ")))
    +    (insert "lgipaw_reconstruction = " value))
    +  )
    +
    +
    +(defun ld1-lloc ()
    +  (interactive)
    +  (let ((value (read-string "Value of lloc: ")))
    +    (insert "lloc = " value))
    +  )
    +
    +
    +(defun ld1-lpaw ()
    +  (interactive)
    +  (let ((value (read-string "Value of lpaw: ")))
    +    (insert "lpaw = " value))
    +  )
    +
    +
    +(defun ld1-lsave_wfc ()
    +  (interactive)
    +  (let ((value (read-string "Value of lsave_wfc: ")))
    +    (insert "lsave_wfc = " value))
    +  )
    +
    +
    +(defun ld1-lsd ()
    +  (interactive)
    +  (let ((value (read-string "Value of lsd: ")))
    +    (insert "lsd = " value))
    +  )
    +
    +
    +(defun ld1-lsdts ()
    +  (interactive)
    +  (let ((value (read-string "Value of lsdts: ")))
    +    (insert "lsdts = " value))
    +  )
    +
    +
    +(defun ld1-lsmall ()
    +  (interactive)
    +  (let ((value (read-string "Value of lsmall: ")))
    +    (insert "lsmall = " value))
    +  )
    +
    +
    +(defun ld1-max_out_wfc ()
    +  (interactive)
    +  (let ((value (read-string "Value of max_out_wfc: ")))
    +    (insert "max_out_wfc = " value))
    +  )
    +
    +
    +(defun ld1-nconf ()
    +  (interactive)
    +  (let ((value (read-string "Value of nconf: ")))
    +    (insert "nconf = " value))
    +  )
    +
    +
    +(defun ld1-new_core_ps ()
    +  (interactive)
    +  (let ((value (read-string "Value of new_core_ps: ")))
    +    (insert "new_core_ps = " value))
    +  )
    +
    +
    +(defun ld1-nlcc ()
    +  (interactive)
    +  (let ((value (read-string "Value of nlcc: ")))
    +    (insert "nlcc = " value))
    +  )
    +
    +
    +(defun ld1-nld ()
    +  (interactive)
    +  (let ((value (read-string "Value of nld: ")))
    +    (insert "nld = " value))
    +  )
    +
    +
    +(defun ld1-noscf ()
    +  (interactive)
    +  (let ((value (read-string "Value of noscf: ")))
    +    (insert "noscf = " value))
    +  )
    +
    +
    +(defun ld1-prefix ()
    +  (interactive)
    +  (let ((value (read-string "Value of prefix: ")))
    +    (insert "prefix = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ld1-pseudotype ()
    +  (interactive)
    +  (let ((value (read-string "Value of pseudotype: ")))
    +    (insert "pseudotype = " value))
    +  )
    +
    +
    +(defun ld1-rcloc ()
    +  (interactive)
    +  (let ((value (read-string "Value of rcloc: ")))
    +    (insert "rcloc = " value))
    +  )
    +
    +
    +(defun ld1-rcore ()
    +  (interactive)
    +  (let ((value (read-string "Value of rcore: ")))
    +    (insert "rcore = " value))
    +  )
    +
    +
    +(defun ld1-rcutv ()
    +  (interactive)
    +  (let ((value (read-string "Value of rcutv: ")))
    +    (insert "rcutv = " value))
    +  )
    +
    +
    +(defun ld1-rel ()
    +  (interactive)
    +  (let ((value (read-string "Value of rel: ")))
    +    (insert "rel = " value))
    +  )
    +
    +
    +(defun ld1-rel_dist ()
    +  (interactive)
    +  (let ((value (read-string "Value of rel_dist: ")))
    +    (insert "rel_dist = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ld1-relpert ()
    +  (interactive)
    +  (let ((value (read-string "Value of relpert: ")))
    +    (insert "relpert = " value))
    +  )
    +
    +
    +(defun ld1-rho0 ()
    +  (interactive)
    +  (let ((value (read-string "Value of rho0: ")))
    +    (insert "rho0 = " value))
    +  )
    +
    +
    +(defun ld1-rlderiv ()
    +  (interactive)
    +  (let ((value (read-string "Value of rlderiv: ")))
    +    (insert "rlderiv = " value))
    +  )
    +
    +
    +(defun ld1-rm ()
    +  (interactive)
    +  (let ((value (read-string "Value of rm: ")))
    +    (insert "rm = " value))
    +  )
    +
    +
    +(defun ld1-rmatch_augfun ()
    +  (interactive)
    +  (let ((value (read-string "Value of rmatch_augfun: ")))
    +    (insert "rmatch_augfun = " value))
    +  )
    +
    +
    +(defun ld1-rmatch_augfun_nc ()
    +  (interactive)
    +  (let ((value (read-string "Value of rmatch_augfun_nc: ")))
    +    (insert "rmatch_augfun_nc = " value))
    +  )
    +
    +
    +(defun ld1-rmax ()
    +  (interactive)
    +  (let ((value (read-string "Value of rmax: ")))
    +    (insert "rmax = " value))
    +  )
    +
    +
    +(defun ld1-rpwe ()
    +  (interactive)
    +  (let ((value (read-string "Value of rpwe: ")))
    +    (insert "rpwe = " value))
    +  )
    +
    +
    +(defun ld1-rytoev_fact ()
    +  (interactive)
    +  (let ((value (read-string "Value of rytoev_fact: ")))
    +    (insert "rytoev_fact = " value))
    +  )
    +
    +
    +(defun ld1-title ()
    +  (interactive)
    +  (let ((value (read-string "Value of title: ")))
    +    (insert "title = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ld1-tm ()
    +  (interactive)
    +  (let ((value (read-string "Value of tm: ")))
    +    (insert "tm = " value))
    +  )
    +
    +
    +(defun ld1-tr2 ()
    +  (interactive)
    +  (let ((value (read-string "Value of tr2: ")))
    +    (insert "tr2 = " value))
    +  )
    +
    +
    +(defun ld1-use_paw_as_gipaw ()
    +  (interactive)
    +  (let ((value (read-string "Value of use_paw_as_gipaw: ")))
    +    (insert "use_paw_as_gipaw = " value))
    +  )
    +
    +
    +(defun ld1-vdw ()
    +  (interactive)
    +  (let ((value (read-string "Value of vdw: ")))
    +    (insert "vdw = " value))
    +  )
    +
    +
    +(defun ld1-verbosity ()
    +  (interactive)
    +  (let ((value (read-string "Value of verbosity: ")))
    +    (insert "verbosity = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ld1-which_augfun ()
    +  (interactive)
    +  (let ((value (read-string "Value of which_augfun: ")))
    +    (insert "which_augfun = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ld1-write_coulomb ()
    +  (interactive)
    +  (let ((value (read-string "Value of write_coulomb: ")))
    +    (insert "write_coulomb = " value))
    +  )
    +
    +
    +(defun ld1-xmin ()
    +  (interactive)
    +  (let ((value (read-string "Value of xmin: ")))
    +    (insert "xmin = " value))
    +  )
    +
    +
    +(defun ld1-zed ()
    +  (interactive)
    +  (let ((value (read-string "Value of zed: ")))
    +    (insert "zed = " value))
    +  )
    +
    +
    +(defun ld1-zval ()
    +  (interactive)
    +  (let ((value (read-string "Value of zval: ")))
    +    (insert "zval = " value))
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; neb- namelists functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun neb-PATH ()
    +  (interactive)
    +  (insert "&PATH")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; neb- namelist's variables functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun neb-ci_scheme ()
    +  (interactive)
    +  (let ((value (read-string "Value of CI_scheme: ")))
    +    (insert "CI_scheme = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun neb-ds ()
    +  (interactive)
    +  (let ((value (read-string "Value of ds: ")))
    +    (insert "ds = " value))
    +  )
    +
    +
    +(defun neb-fcp_mu ()
    +  (interactive)
    +  (let ((value (read-string "Value of fcp_mu: ")))
    +    (insert "fcp_mu = " value))
    +  )
    +
    +
    +(defun neb-fcp_tot_charge_first ()
    +  (interactive)
    +  (let ((value (read-string "Value of fcp_tot_charge_first: ")))
    +    (insert "fcp_tot_charge_first = " value))
    +  )
    +
    +
    +(defun neb-fcp_tot_charge_last ()
    +  (interactive)
    +  (let ((value (read-string "Value of fcp_tot_charge_last: ")))
    +    (insert "fcp_tot_charge_last = " value))
    +  )
    +
    +
    +(defun neb-first_last_opt ()
    +  (interactive)
    +  (let ((value (read-string "Value of first_last_opt: ")))
    +    (insert "first_last_opt = " value))
    +  )
    +
    +
    +(defun neb-k_max ()
    +  (interactive)
    +  (let ((value (read-string "Value of k_max: ")))
    +    (insert "k_max = " value))
    +  )
    +
    +
    +(defun neb-k_min ()
    +  (interactive)
    +  (let ((value (read-string "Value of k_min: ")))
    +    (insert "k_min = " value))
    +  )
    +
    +
    +(defun neb-lfcpopt ()
    +  (interactive)
    +  (let ((value (read-string "Value of lfcpopt: ")))
    +    (insert "lfcpopt = " value))
    +  )
    +
    +
    +(defun neb-minimum_image ()
    +  (interactive)
    +  (let ((value (read-string "Value of minimum_image: ")))
    +    (insert "minimum_image = " value))
    +  )
    +
    +
    +(defun neb-nstep_path ()
    +  (interactive)
    +  (let ((value (read-string "Value of nstep_path: ")))
    +    (insert "nstep_path = " value))
    +  )
    +
    +
    +(defun neb-num_of_images ()
    +  (interactive)
    +  (let ((value (read-string "Value of num_of_images: ")))
    +    (insert "num_of_images = " value))
    +  )
    +
    +
    +(defun neb-opt_scheme ()
    +  (interactive)
    +  (let ((value (read-string "Value of opt_scheme: ")))
    +    (insert "opt_scheme = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun neb-path_thr ()
    +  (interactive)
    +  (let ((value (read-string "Value of path_thr: ")))
    +    (insert "path_thr = " value))
    +  )
    +
    +
    +(defun neb-restart_mode ()
    +  (interactive)
    +  (let ((value (read-string "Value of restart_mode: ")))
    +    (insert "restart_mode = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun neb-string_method ()
    +  (interactive)
    +  (let ((value (read-string "Value of string_method: ")))
    +    (insert "string_method = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun neb-temp_req ()
    +  (interactive)
    +  (let ((value (read-string "Value of temp_req: ")))
    +    (insert "temp_req = " value))
    +  )
    +
    +
    +(defun neb-use_freezing ()
    +  (interactive)
    +  (let ((value (read-string "Value of use_freezing: ")))
    +    (insert "use_freezing = " value))
    +  )
    +
    +
    +(defun neb-use_masses ()
    +  (interactive)
    +  (let ((value (read-string "Value of use_masses: ")))
    +    (insert "use_masses = " value))
    +  )
    +
    +
    +	   
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; neb- supercards functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun neb-BEGIN ()
    +  (interactive)
    +  (insert "BEGIN")
    +  (newline 2)
    +  (insert "END")
    +  (forward-line -1)
    +  )
    +
    +
    +(defun neb-BEGIN_ENGINE_INPUT ()
    +  (interactive)
    +  (insert "BEGIN_ENGINE_INPUT")
    +  (newline 2)
    +  (insert "END_ENGINE_INPUT")
    +  (forward-line -1)
    +  )
    +
    +
    +(defun neb-BEGIN_PATH_INPUT ()
    +  (interactive)
    +  (insert "BEGIN_PATH_INPUT")
    +  (newline 2)
    +  (insert "END_PATH_INPUT")
    +  (forward-line -1)
    +  )
    +
    +
    +(defun neb-BEGIN_POSITIONS ()
    +  (interactive)
    +  (insert "BEGIN_POSITIONS")
    +  (newline 2)
    +  (insert "END_POSITIONS")
    +  (forward-line -1)
    +  )
    +
    +
    +(defun neb-FIRST_IMAGE ()
    +  (interactive)
    +  (insert "FIRST_IMAGE")
    +  (newline 1)
    +  )
    +
    +
    +(defun neb-INTERMEDIATE_IMAGE ()
    +  (interactive)
    +  (insert "INTERMEDIATE_IMAGE")
    +  (newline 1)
    +  )
    +
    +
    +(defun neb-LAST_IMAGE ()
    +  (interactive)
    +  (insert "LAST_IMAGE")
    +  (newline 1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; neb- cards functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun neb-ATOMIC_POSITIONS ()
    +  (interactive)
    +  (let ((flag (read-string "Flags: { alat | bohr | angstrom | crystal | crystal_sg } ")))
    +    (insert "ATOMIC_POSITIONS " flag))
    +  (newline 1)
    +  )
    +
    +
    +(defun neb-CLIMBING_IMAGES ()
    + (interactive)
    + (insert "CLIMBING_IMAGES")
    + (newline 1)
    + )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; ph- namelists functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun ph-INPUTPH ()
    +  (interactive)
    +  (insert "&INPUTPH")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; ph- namelist's variables functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun ph-alpha_mix ()
    +  (interactive)
    +  (let ((value (read-string "Value of alpha_mix: ")))
    +    (insert "alpha_mix = " value))
    +  )
    +
    +
    +(defun ph-amass ()
    +  (interactive)
    +  (let ((value (read-string "Value of amass: ")))
    +    (insert "amass = " value))
    +  )
    +
    +
    +(defun ph-asr ()
    +  (interactive)
    +  (let ((value (read-string "Value of asr: ")))
    +    (insert "asr = " value))
    +  )
    +
    +
    +(defun ph-dek ()
    +  (interactive)
    +  (let ((value (read-string "Value of dek: ")))
    +    (insert "dek = " value))
    +  )
    +
    +
    +(defun ph-drho_star ()
    +  (interactive)
    +  (let ((value (read-string "Value of drho_star: ")))
    +    (insert "drho_star = " value))
    +  )
    +
    +
    +(defun ph-dvscf_star ()
    +  (interactive)
    +  (let ((value (read-string "Value of dvscf_star: ")))
    +    (insert "dvscf_star = " value))
    +  )
    +
    +
    +(defun ph-electron_phonon ()
    +  (interactive)
    +  (let ((value (read-string "Value of electron_phonon: ")))
    +    (insert "electron_phonon = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ph-elop ()
    +  (interactive)
    +  (let ((value (read-string "Value of elop: ")))
    +    (insert "elop = " value))
    +  )
    +
    +
    +(defun ph-epsil ()
    +  (interactive)
    +  (let ((value (read-string "Value of epsil: ")))
    +    (insert "epsil = " value))
    +  )
    +
    +
    +(defun ph-eth_ns ()
    +  (interactive)
    +  (let ((value (read-string "Value of eth_ns: ")))
    +    (insert "eth_ns = " value))
    +  )
    +
    +
    +(defun ph-eth_rps ()
    +  (interactive)
    +  (let ((value (read-string "Value of eth_rps: ")))
    +    (insert "eth_rps = " value))
    +  )
    +
    +
    +(defun ph-fildrho ()
    +  (interactive)
    +  (let ((value (read-string "Value of fildrho: ")))
    +    (insert "fildrho = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ph-fildvscf ()
    +  (interactive)
    +  (let ((value (read-string "Value of fildvscf: ")))
    +    (insert "fildvscf = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ph-fildyn ()
    +  (interactive)
    +  (let ((value (read-string "Value of fildyn: ")))
    +    (insert "fildyn = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ph-fpol ()
    +  (interactive)
    +  (let ((value (read-string "Value of fpol: ")))
    +    (insert "fpol = " value))
    +  )
    +
    +
    +(defun ph-k1 ()
    +  (interactive)
    +  (let ((value (read-string "Value of k1: ")))
    +    (insert "k1 = " value))
    +  )
    +
    +
    +(defun ph-k2 ()
    +  (interactive)
    +  (let ((value (read-string "Value of k2: ")))
    +    (insert "k2 = " value))
    +  )
    +
    +
    +(defun ph-k3 ()
    +  (interactive)
    +  (let ((value (read-string "Value of k3: ")))
    +    (insert "k3 = " value))
    +  )
    +
    +
    +(defun ph-last_irr ()
    +  (interactive)
    +  (let ((value (read-string "Value of last_irr: ")))
    +    (insert "last_irr = " value))
    +  )
    +
    +
    +(defun ph-last_q ()
    +  (interactive)
    +  (let ((value (read-string "Value of last_q: ")))
    +    (insert "last_q = " value))
    +  )
    +
    +
    +(defun ph-ldiag ()
    +  (interactive)
    +  (let ((value (read-string "Value of ldiag: ")))
    +    (insert "ldiag = " value))
    +  )
    +
    +
    +(defun ph-ldisp ()
    +  (interactive)
    +  (let ((value (read-string "Value of ldisp: ")))
    +    (insert "ldisp = " value))
    +  )
    +
    +
    +(defun ph-lnoloc ()
    +  (interactive)
    +  (let ((value (read-string "Value of lnoloc: ")))
    +    (insert "lnoloc = " value))
    +  )
    +
    +
    +(defun ph-low_directory_check ()
    +  (interactive)
    +  (let ((value (read-string "Value of low_directory_check: ")))
    +    (insert "low_directory_check = " value))
    +  )
    +
    +
    +(defun ph-lqdir ()
    +  (interactive)
    +  (let ((value (read-string "Value of lqdir: ")))
    +    (insert "lqdir = " value))
    +  )
    +
    +
    +(defun ph-lraman ()
    +  (interactive)
    +  (let ((value (read-string "Value of lraman: ")))
    +    (insert "lraman = " value))
    +  )
    +
    +
    +(defun ph-lrpa ()
    +  (interactive)
    +  (let ((value (read-string "Value of lrpa: ")))
    +    (insert "lrpa = " value))
    +  )
    +
    +
    +(defun ph-lshift_q ()
    +  (interactive)
    +  (let ((value (read-string "Value of lshift_q: ")))
    +    (insert "lshift_q = " value))
    +  )
    +
    +
    +(defun ph-max_seconds ()
    +  (interactive)
    +  (let ((value (read-string "Value of max_seconds: ")))
    +    (insert "max_seconds = " value))
    +  )
    +
    +
    +(defun ph-modenum ()
    +  (interactive)
    +  (let ((value (read-string "Value of modenum: ")))
    +    (insert "modenum = " value))
    +  )
    +
    +
    +(defun ph-nat_todo ()
    +  (interactive)
    +  (let ((value (read-string "Value of nat_todo: ")))
    +    (insert "nat_todo = " value))
    +  )
    +
    +
    +(defun ph-niter_ph ()
    +  (interactive)
    +  (let ((value (read-string "Value of niter_ph: ")))
    +    (insert "niter_ph = " value))
    +  )
    +
    +
    +(defun ph-nk1 ()
    +  (interactive)
    +  (let ((value (read-string "Value of nk1: ")))
    +    (insert "nk1 = " value))
    +  )
    +
    +
    +(defun ph-nk2 ()
    +  (interactive)
    +  (let ((value (read-string "Value of nk2: ")))
    +    (insert "nk2 = " value))
    +  )
    +
    +
    +(defun ph-nk3 ()
    +  (interactive)
    +  (let ((value (read-string "Value of nk3: ")))
    +    (insert "nk3 = " value))
    +  )
    +
    +
    +(defun ph-nmix_ph ()
    +  (interactive)
    +  (let ((value (read-string "Value of nmix_ph: ")))
    +    (insert "nmix_ph = " value))
    +  )
    +
    +
    +(defun ph-nogg ()
    +  (interactive)
    +  (let ((value (read-string "Value of nogg: ")))
    +    (insert "nogg = " value))
    +  )
    +
    +
    +(defun ph-nq1 ()
    +  (interactive)
    +  (let ((value (read-string "Value of nq1: ")))
    +    (insert "nq1 = " value))
    +  )
    +
    +
    +(defun ph-nq2 ()
    +  (interactive)
    +  (let ((value (read-string "Value of nq2: ")))
    +    (insert "nq2 = " value))
    +  )
    +
    +
    +(defun ph-nq3 ()
    +  (interactive)
    +  (let ((value (read-string "Value of nq3: ")))
    +    (insert "nq3 = " value))
    +  )
    +
    +
    +(defun ph-only_init ()
    +  (interactive)
    +  (let ((value (read-string "Value of only_init: ")))
    +    (insert "only_init = " value))
    +  )
    +
    +
    +(defun ph-outdir ()
    +  (interactive)
    +  (let ((value (read-directory-name "Value of outdir: ")))
    +    (insert "outdir = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ph-prefix ()
    +  (interactive)
    +  (let ((value (read-string "Value of prefix: ")))
    +    (insert "prefix = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ph-q2d ()
    +  (interactive)
    +  (let ((value (read-string "Value of q2d: ")))
    +    (insert "q2d = " value))
    +  )
    +
    +
    +(defun ph-q_in_band_form ()
    +  (interactive)
    +  (let ((value (read-string "Value of q_in_band_form: ")))
    +    (insert "q_in_band_form = " value))
    +  )
    +
    +
    +(defun ph-qplot ()
    +  (interactive)
    +  (let ((value (read-string "Value of qplot: ")))
    +    (insert "qplot = " value))
    +  )
    +
    +
    +(defun ph-read_dns_bare ()
    +  (interactive)
    +  (let ((value (read-string "Value of read_dns_bare: ")))
    +    (insert "read_dns_bare = " value))
    +  )
    +
    +
    +(defun ph-recover ()
    +  (interactive)
    +  (let ((value (read-string "Value of recover: ")))
    +    (insert "recover = " value))
    +  )
    +
    +
    +(defun ph-reduce_io ()
    +  (interactive)
    +  (let ((value (read-string "Value of reduce_io: ")))
    +    (insert "reduce_io = " value))
    +  )
    +
    +
    +(defun ph-search_sym ()
    +  (interactive)
    +  (let ((value (read-string "Value of search_sym: ")))
    +    (insert "search_sym = " value))
    +  )
    +
    +
    +(defun ph-start_irr ()
    +  (interactive)
    +  (let ((value (read-string "Value of start_irr: ")))
    +    (insert "start_irr = " value))
    +  )
    +
    +
    +(defun ph-start_q ()
    +  (interactive)
    +  (let ((value (read-string "Value of start_q: ")))
    +    (insert "start_q = " value))
    +  )
    +
    +
    +(defun ph-tr2_ph ()
    +  (interactive)
    +  (let ((value (read-string "Value of tr2_ph: ")))
    +    (insert "tr2_ph = " value))
    +  )
    +
    +
    +(defun ph-trans ()
    +  (interactive)
    +  (let ((value (read-string "Value of trans: ")))
    +    (insert "trans = " value))
    +  )
    +
    +
    +(defun ph-verbosity ()
    +  (interactive)
    +  (let ((value (read-string "Value of verbosity: ")))
    +    (insert "verbosity = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun ph-zeu ()
    +  (interactive)
    +  (let ((value (read-string "Value of zeu: ")))
    +    (insert "zeu = " value))
    +  )
    +
    +
    +(defun ph-zue ()
    +  (interactive)
    +  (let ((value (read-string "Value of zue: ")))
    +    (insert "zue = " value))
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; dynmat- namelists functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun dynmat-INPUT ()
    +  (interactive)
    +  (insert "&INPUT")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; dynmat- namelist's variables functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun dynmat-amass ()
    +  (interactive)
    +  (let ((value (read-string "Value of amass: ")))
    +    (insert "amass = " value))
    +  )
    +
    +
    +(defun dynmat-asr ()
    +  (interactive)
    +  (let ((value (read-string "Value of asr: ")))
    +    (insert "asr = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun dynmat-axis ()
    +  (interactive)
    +  (let ((value (read-string "Value of axis: ")))
    +    (insert "axis = " value))
    +  )
    +
    +
    +(defun dynmat-fildyn ()
    +  (interactive)
    +  (let ((value (read-string "Value of fildyn: ")))
    +    (insert "fildyn = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun dynmat-fileig ()
    +  (interactive)
    +  (let ((value (read-file-name "Value of fileig: ")))
    +    (insert "fileig = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun dynmat-filmol ()
    +  (interactive)
    +  (let ((value (read-string "Value of filmol: ")))
    +    (insert "filmol = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun dynmat-filout ()
    +  (interactive)
    +  (let ((value (read-string "Value of filout: ")))
    +    (insert "filout = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun dynmat-filxsf ()
    +  (interactive)
    +  (let ((value (read-string "Value of filxsf: ")))
    +    (insert "filxsf = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun dynmat-loto_2d ()
    +  (interactive)
    +  (let ((value (read-string "Value of loto_2d: ")))
    +    (insert "loto_2d = " value))
    +  )
    +
    +
    +(defun dynmat-lperm ()
    +  (interactive)
    +  (let ((value (read-string "Value of lperm: ")))
    +    (insert "lperm = " value))
    +  )
    +
    +
    +(defun dynmat-lplasma ()
    +  (interactive)
    +  (let ((value (read-string "Value of lplasma: ")))
    +    (insert "lplasma = " value))
    +  )
    +
    +
    +(defun dynmat-q ()
    +  (interactive)
    +  (let ((value (read-string "Value of q: ")))
    +    (insert "q = " value))
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; pwcond- namelists functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun pwcond-INPUTCOND ()
    +  (interactive)
    +  (insert "&INPUTCOND")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; pwcond- namelist's variables functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun pwcond-band_file ()
    +  (interactive)
    +  (let ((value (read-file-name "Value of band_file: ")))
    +    (insert "band_file = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pwcond-bdl ()
    +  (interactive)
    +  (let ((value (read-string "Value of bdl: ")))
    +    (insert "bdl = " value))
    +  )
    +
    +
    +(defun pwcond-bdr ()
    +  (interactive)
    +  (let ((value (read-string "Value of bdr: ")))
    +    (insert "bdr = " value))
    +  )
    +
    +
    +(defun pwcond-bds ()
    +  (interactive)
    +  (let ((value (read-string "Value of bds: ")))
    +    (insert "bds = " value))
    +  )
    +
    +
    +(defun pwcond-denergy ()
    +  (interactive)
    +  (let ((value (read-string "Value of denergy: ")))
    +    (insert "denergy = " value))
    +  )
    +
    +
    +(defun pwcond-ecut2d ()
    +  (interactive)
    +  (let ((value (read-string "Value of ecut2d: ")))
    +    (insert "ecut2d = " value))
    +  )
    +
    +
    +(defun pwcond-energy0 ()
    +  (interactive)
    +  (let ((value (read-string "Value of energy0: ")))
    +    (insert "energy0 = " value))
    +  )
    +
    +
    +(defun pwcond-epsproj ()
    +  (interactive)
    +  (let ((value (read-string "Value of epsproj: ")))
    +    (insert "epsproj = " value))
    +  )
    +
    +
    +(defun pwcond-ewind ()
    +  (interactive)
    +  (let ((value (read-string "Value of ewind: ")))
    +    (insert "ewind = " value))
    +  )
    +
    +
    +(defun pwcond-fil_loc ()
    +  (interactive)
    +  (let ((value (read-string "Value of fil_loc: ")))
    +    (insert "fil_loc = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pwcond-ikind ()
    +  (interactive)
    +  (let ((value (read-string "Value of ikind: ")))
    +    (insert "ikind = " value))
    +  )
    +
    +
    +(defun pwcond-iofspin ()
    +  (interactive)
    +  (let ((value (read-string "Value of iofspin: ")))
    +    (insert "iofspin = " value))
    +  )
    +
    +
    +(defun pwcond-last_e ()
    +  (interactive)
    +  (let ((value (read-string "Value of last_e: ")))
    +    (insert "last_e = " value))
    +  )
    +
    +
    +(defun pwcond-last_k ()
    +  (interactive)
    +  (let ((value (read-string "Value of last_k: ")))
    +    (insert "last_k = " value))
    +  )
    +
    +
    +(defun pwcond-llocal ()
    +  (interactive)
    +  (let ((value (read-string "Value of llocal: ")))
    +    (insert "llocal = " value))
    +  )
    +
    +
    +(defun pwcond-loop_ek ()
    +  (interactive)
    +  (let ((value (read-string "Value of loop_ek: ")))
    +    (insert "loop_ek = " value))
    +  )
    +
    +
    +(defun pwcond-lread_cond ()
    +  (interactive)
    +  (let ((value (read-string "Value of lread_cond: ")))
    +    (insert "lread_cond = " value))
    +  )
    +
    +
    +(defun pwcond-lread_loc ()
    +  (interactive)
    +  (let ((value (read-string "Value of lread_loc: ")))
    +    (insert "lread_loc = " value))
    +  )
    +
    +
    +(defun pwcond-lwrite_cond ()
    +  (interactive)
    +  (let ((value (read-string "Value of lwrite_cond: ")))
    +    (insert "lwrite_cond = " value))
    +  )
    +
    +
    +(defun pwcond-lwrite_loc ()
    +  (interactive)
    +  (let ((value (read-string "Value of lwrite_loc: ")))
    +    (insert "lwrite_loc = " value))
    +  )
    +
    +
    +(defun pwcond-max_seconds ()
    +  (interactive)
    +  (let ((value (read-string "Value of max_seconds: ")))
    +    (insert "max_seconds = " value))
    +  )
    +
    +
    +(defun pwcond-nenergy ()
    +  (interactive)
    +  (let ((value (read-string "Value of nenergy: ")))
    +    (insert "nenergy = " value))
    +  )
    +
    +
    +(defun pwcond-nz1 ()
    +  (interactive)
    +  (let ((value (read-string "Value of nz1: ")))
    +    (insert "nz1 = " value))
    +  )
    +
    +
    +(defun pwcond-orbj_fin ()
    +  (interactive)
    +  (let ((value (read-string "Value of orbj_fin: ")))
    +    (insert "orbj_fin = " value))
    +  )
    +
    +
    +(defun pwcond-orbj_in ()
    +  (interactive)
    +  (let ((value (read-string "Value of orbj_in: ")))
    +    (insert "orbj_in = " value))
    +  )
    +
    +
    +(defun pwcond-outdir ()
    +  (interactive)
    +  (let ((value (read-directory-name "Value of outdir: ")))
    +    (insert "outdir = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pwcond-prefixl ()
    +  (interactive)
    +  (let ((value (read-string "Value of prefixl: ")))
    +    (insert "prefixl = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pwcond-prefixr ()
    +  (interactive)
    +  (let ((value (read-string "Value of prefixr: ")))
    +    (insert "prefixr = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pwcond-prefixs ()
    +  (interactive)
    +  (let ((value (read-string "Value of prefixs: ")))
    +    (insert "prefixs = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pwcond-prefixt ()
    +  (interactive)
    +  (let ((value (read-string "Value of prefixt: ")))
    +    (insert "prefixt = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pwcond-recover ()
    +  (interactive)
    +  (let ((value (read-string "Value of recover: ")))
    +    (insert "recover = " value))
    +  )
    +
    +
    +(defun pwcond-save_file ()
    +  (interactive)
    +  (let ((value (read-file-name "Value of save_file: ")))
    +    (insert "save_file = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pwcond-start_e ()
    +  (interactive)
    +  (let ((value (read-string "Value of start_e: ")))
    +    (insert "start_e = " value))
    +  )
    +
    +
    +(defun pwcond-start_k ()
    +  (interactive)
    +  (let ((value (read-string "Value of start_k: ")))
    +    (insert "start_k = " value))
    +  )
    +
    +
    +(defun pwcond-tk_plot ()
    +  (interactive)
    +  (let ((value (read-string "Value of tk_plot: ")))
    +    (insert "tk_plot = " value))
    +  )
    +
    +
    +(defun pwcond-tran_file ()
    +  (interactive)
    +  (let ((value (read-file-name "Value of tran_file: ")))
    +    (insert "tran_file = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun pwcond-tran_prefix ()
    +  (interactive)
    +  (let ((value (read-string "Value of tran_prefix: ")))
    +    (insert "tran_prefix = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; lanczos- namelists functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun lanczos-LR_CONTROL ()
    +  (interactive)
    +  (insert "&LR_CONTROL")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +(defun lanczos-LR_INPUT ()
    +  (interactive)
    +  (insert "&LR_INPUT")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +(defun lanczos-LR_POST ()
    +  (interactive)
    +  (insert "&LR_POST")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; lanczos- namelist's variables functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun lanczos-beta_gamma_z_prefix ()
    +  (interactive)
    +  (let ((value (read-string "Value of beta_gamma_z_prefix: ")))
    +    (insert "beta_gamma_z_prefix = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun lanczos-charge_response ()
    +  (interactive)
    +  (let ((value (read-string "Value of charge_response: ")))
    +    (insert "charge_response = " value))
    +  )
    +
    +
    +(defun lanczos-d0psi_rs ()
    +  (interactive)
    +  (let ((value (read-string "Value of d0psi_rs: ")))
    +    (insert "d0psi_rs = " value))
    +  )
    +
    +
    +(defun lanczos-disk_io ()
    +  (interactive)
    +  (let ((value (read-string "Value of disk_io: ")))
    +    (insert "disk_io = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun lanczos-epsil ()
    +  (interactive)
    +  (let ((value (read-string "Value of epsil: ")))
    +    (insert "epsil = " value))
    +  )
    +
    +
    +(defun lanczos-ipol ()
    +  (interactive)
    +  (let ((value (read-string "Value of ipol: ")))
    +    (insert "ipol = " value))
    +  )
    +
    +
    +(defun lanczos-itermax ()
    +  (interactive)
    +  (let ((value (read-string "Value of itermax: ")))
    +    (insert "itermax = " value))
    +  )
    +
    +
    +(defun lanczos-lr_verbosity ()
    +  (interactive)
    +  (let ((value (read-string "Value of lr_verbosity: ")))
    +    (insert "lr_verbosity = " value))
    +  )
    +
    +
    +(defun lanczos-lrpa ()
    +  (interactive)
    +  (let ((value (read-string "Value of lrpa: ")))
    +    (insert "lrpa = " value))
    +  )
    +
    +
    +(defun lanczos-lshift_d0psi ()
    +  (interactive)
    +  (let ((value (read-string "Value of lshift_d0psi: ")))
    +    (insert "lshift_d0psi = " value))
    +  )
    +
    +
    +(defun lanczos-ltammd ()
    +  (interactive)
    +  (let ((value (read-string "Value of ltammd: ")))
    +    (insert "ltammd = " value))
    +  )
    +
    +
    +(defun lanczos-n_ipol ()
    +  (interactive)
    +  (let ((value (read-string "Value of n_ipol: ")))
    +    (insert "n_ipol = " value))
    +  )
    +
    +
    +(defun lanczos-no_hxc ()
    +  (interactive)
    +  (let ((value (read-string "Value of no_hxc: ")))
    +    (insert "no_hxc = " value))
    +  )
    +
    +
    +(defun lanczos-omeg ()
    +  (interactive)
    +  (let ((value (read-string "Value of omeg: ")))
    +    (insert "omeg = " value))
    +  )
    +
    +
    +(defun lanczos-outdir ()
    +  (interactive)
    +  (let ((value (read-directory-name "Value of outdir: ")))
    +    (insert "outdir = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun lanczos-plot_type ()
    +  (interactive)
    +  (let ((value (read-string "Value of plot_type: ")))
    +    (insert "plot_type = " value))
    +  )
    +
    +
    +(defun lanczos-prefix ()
    +  (interactive)
    +  (let ((value (read-string "Value of prefix: ")))
    +    (insert "prefix = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun lanczos-pseudo_hermitian ()
    +  (interactive)
    +  (let ((value (read-string "Value of pseudo_hermitian: ")))
    +    (insert "pseudo_hermitian = " value))
    +  )
    +
    +
    +(defun lanczos-restart ()
    +  (interactive)
    +  (let ((value (read-string "Value of restart: ")))
    +    (insert "restart = " value))
    +  )
    +
    +
    +(defun lanczos-restart_step ()
    +  (interactive)
    +  (let ((value (read-string "Value of restart_step: ")))
    +    (insert "restart_step = " value))
    +  )
    +
    +
    +(defun lanczos-title ()
    +  (interactive)
    +  (let ((value (read-string "Value of title: ")))
    +    (insert "title = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun lanczos-w_t_npol ()
    +  (interactive)
    +  (let ((value (read-string "Value of w_T_npol: ")))
    +    (insert "w_T_npol = " value))
    +  )
    +
    +
    +(defun lanczos-wfcdir ()
    +  (interactive)
    +  (let ((value (read-directory-name "Value of wfcdir: ")))
    +    (insert "wfcdir = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; davidson- namelists functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun davidson-LR_DAV ()
    +  (interactive)
    +  (insert "&LR_DAV")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +(defun davidson-LR_INPUT ()
    +  (interactive)
    +  (insert "&LR_INPUT")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; davidson- namelist's variables functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun davidson-broadening ()
    +  (interactive)
    +  (let ((value (read-string "Value of broadening: ")))
    +    (insert "broadening = " value))
    +  )
    +
    +
    +(defun davidson-d0psi_rs ()
    +  (interactive)
    +  (let ((value (read-string "Value of d0psi_rs: ")))
    +    (insert "d0psi_rs = " value))
    +  )
    +
    +
    +(defun davidson-disk_io ()
    +  (interactive)
    +  (let ((value (read-string "Value of disk_io: ")))
    +    (insert "disk_io = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun davidson-finish ()
    +  (interactive)
    +  (let ((value (read-string "Value of finish: ")))
    +    (insert "finish = " value))
    +  )
    +
    +
    +(defun davidson-if_dft_spectrum ()
    +  (interactive)
    +  (let ((value (read-string "Value of if_dft_spectrum: ")))
    +    (insert "if_dft_spectrum = " value))
    +  )
    +
    +
    +(defun davidson-if_random_init ()
    +  (interactive)
    +  (let ((value (read-string "Value of if_random_init: ")))
    +    (insert "if_random_init = " value))
    +  )
    +
    +
    +(defun davidson-lplot_drho ()
    +  (interactive)
    +  (let ((value (read-string "Value of lplot_drho: ")))
    +    (insert "lplot_drho = " value))
    +  )
    +
    +
    +(defun davidson-lr_verbosity ()
    +  (interactive)
    +  (let ((value (read-string "Value of lr_verbosity: ")))
    +    (insert "lr_verbosity = " value))
    +  )
    +
    +
    +(defun davidson-lshift_d0psi ()
    +  (interactive)
    +  (let ((value (read-string "Value of lshift_d0psi: ")))
    +    (insert "lshift_d0psi = " value))
    +  )
    +
    +
    +(defun davidson-ltammd ()
    +  (interactive)
    +  (let ((value (read-string "Value of ltammd: ")))
    +    (insert "ltammd = " value))
    +  )
    +
    +
    +(defun davidson-max_iter ()
    +  (interactive)
    +  (let ((value (read-string "Value of max_iter: ")))
    +    (insert "max_iter = " value))
    +  )
    +
    +
    +(defun davidson-max_seconds ()
    +  (interactive)
    +  (let ((value (read-string "Value of max_seconds: ")))
    +    (insert "max_seconds = " value))
    +  )
    +
    +
    +(defun davidson-no_hxc ()
    +  (interactive)
    +  (let ((value (read-string "Value of no_hxc: ")))
    +    (insert "no_hxc = " value))
    +  )
    +
    +
    +(defun davidson-num_basis_max ()
    +  (interactive)
    +  (let ((value (read-string "Value of num_basis_max: ")))
    +    (insert "num_basis_max = " value))
    +  )
    +
    +
    +(defun davidson-num_eign ()
    +  (interactive)
    +  (let ((value (read-string "Value of num_eign: ")))
    +    (insert "num_eign = " value))
    +  )
    +
    +
    +(defun davidson-num_init ()
    +  (interactive)
    +  (let ((value (read-string "Value of num_init: ")))
    +    (insert "num_init = " value))
    +  )
    +
    +
    +(defun davidson-outdir ()
    +  (interactive)
    +  (let ((value (read-directory-name "Value of outdir: ")))
    +    (insert "outdir = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun davidson-p_nbnd_occ ()
    +  (interactive)
    +  (let ((value (read-string "Value of p_nbnd_occ: ")))
    +    (insert "p_nbnd_occ = " value))
    +  )
    +
    +
    +(defun davidson-p_nbnd_virt ()
    +  (interactive)
    +  (let ((value (read-string "Value of p_nbnd_virt: ")))
    +    (insert "p_nbnd_virt = " value))
    +  )
    +
    +
    +(defun davidson-poor_of_ram ()
    +  (interactive)
    +  (let ((value (read-string "Value of poor_of_ram: ")))
    +    (insert "poor_of_ram = " value))
    +  )
    +
    +
    +(defun davidson-poor_of_ram2 ()
    +  (interactive)
    +  (let ((value (read-string "Value of poor_of_ram2: ")))
    +    (insert "poor_of_ram2 = " value))
    +  )
    +
    +
    +(defun davidson-precondition ()
    +  (interactive)
    +  (let ((value (read-string "Value of precondition: ")))
    +    (insert "precondition = " value))
    +  )
    +
    +
    +(defun davidson-prefix ()
    +  (interactive)
    +  (let ((value (read-string "Value of prefix: ")))
    +    (insert "prefix = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun davidson-pseudo_hermitian ()
    +  (interactive)
    +  (let ((value (read-string "Value of pseudo_hermitian: ")))
    +    (insert "pseudo_hermitian = " value))
    +  )
    +
    +
    +(defun davidson-reference ()
    +  (interactive)
    +  (let ((value (read-string "Value of reference: ")))
    +    (insert "reference = " value))
    +  )
    +
    +
    +(defun davidson-residue_conv_thr ()
    +  (interactive)
    +  (let ((value (read-string "Value of residue_conv_thr: ")))
    +    (insert "residue_conv_thr = " value))
    +  )
    +
    +
    +(defun davidson-restart ()
    +  (interactive)
    +  (let ((value (read-string "Value of restart: ")))
    +    (insert "restart = " value))
    +  )
    +
    +
    +(defun davidson-single_pole ()
    +  (interactive)
    +  (let ((value (read-string "Value of single_pole: ")))
    +    (insert "single_pole = " value))
    +  )
    +
    +
    +(defun davidson-start ()
    +  (interactive)
    +  (let ((value (read-string "Value of start: ")))
    +    (insert "start = " value))
    +  )
    +
    +
    +(defun davidson-step ()
    +  (interactive)
    +  (let ((value (read-string "Value of step: ")))
    +    (insert "step = " value))
    +  )
    +
    +
    +(defun davidson-wfcdir ()
    +  (interactive)
    +  (let ((value (read-directory-name "Value of wfcdir: ")))
    +    (insert "wfcdir = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; spectrum- namelists functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun spectrum-LR_INPUT ()
    +  (interactive)
    +  (insert "&LR_INPUT")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; spectrum- namelist's variables functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun spectrum-eels ()
    +  (interactive)
    +  (let ((value (read-string "Value of eels: ")))
    +    (insert "eels = " value))
    +  )
    +
    +
    +(defun spectrum-eign_file ()
    +  (interactive)
    +  (let ((value (read-file-name "Value of eign_file: ")))
    +    (insert "eign_file = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun spectrum-end ()
    +  (interactive)
    +  (let ((value (read-string "Value of end: ")))
    +    (insert "end = " value))
    +  )
    +
    +
    +(defun spectrum-epsil ()
    +  (interactive)
    +  (let ((value (read-string "Value of epsil: ")))
    +    (insert "epsil = " value))
    +  )
    +
    +
    +(defun spectrum-extrapolation ()
    +  (interactive)
    +  (let ((value (read-string "Value of extrapolation: ")))
    +    (insert "extrapolation = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun spectrum-increment ()
    +  (interactive)
    +  (let ((value (read-string "Value of increment: ")))
    +    (insert "increment = " value))
    +  )
    +
    +
    +(defun spectrum-ipol ()
    +  (interactive)
    +  (let ((value (read-string "Value of ipol: ")))
    +    (insert "ipol = " value))
    +  )
    +
    +
    +(defun spectrum-itermax ()
    +  (interactive)
    +  (let ((value (read-string "Value of itermax: ")))
    +    (insert "itermax = " value))
    +  )
    +
    +
    +(defun spectrum-itermax0 ()
    +  (interactive)
    +  (let ((value (read-string "Value of itermax0: ")))
    +    (insert "itermax0 = " value))
    +  )
    +
    +
    +(defun spectrum-outdir ()
    +  (interactive)
    +  (let ((value (read-directory-name "Value of outdir: ")))
    +    (insert "outdir = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun spectrum-prefix ()
    +  (interactive)
    +  (let ((value (read-string "Value of prefix: ")))
    +    (insert "prefix = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun spectrum-start ()
    +  (interactive)
    +  (let ((value (read-string "Value of start: ")))
    +    (insert "start = " value))
    +  )
    +
    +
    +(defun spectrum-td ()
    +  (interactive)
    +  (let ((value (read-string "Value of td: ")))
    +    (insert "td = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun spectrum-units ()
    +  (interactive)
    +  (let ((value (read-string "Value of units: ")))
    +    (insert "units = " value))
    +  )
    +
    +
    +(defun spectrum-verbosity ()
    +  (interactive)
    +  (let ((value (read-string "Value of verbosity: ")))
    +    (insert "verbosity = " value))
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; eels- namelists functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun eels-LR_CONTROL ()
    +  (interactive)
    +  (insert "&LR_CONTROL")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +(defun eels-LR_INPUT ()
    +  (interactive)
    +  (insert "&LR_INPUT")
    +  (newline 2)
    +  (insert "/")
    +  (forward-line -1)
    +  )
    +
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; eels- namelist's variables functions ...
    +;;
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +(defun eels-approximation ()
    +  (interactive)
    +  (let ((value (read-string "Value of approximation: ")))
    +    (insert "approximation = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun eels-disk_io ()
    +  (interactive)
    +  (let ((value (read-string "Value of disk_io: ")))
    +    (insert "disk_io = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun eels-itermax ()
    +  (interactive)
    +  (let ((value (read-string "Value of itermax: ")))
    +    (insert "itermax = " value))
    +  )
    +
    +
    +(defun eels-lr_verbosity ()
    +  (interactive)
    +  (let ((value (read-string "Value of lr_verbosity: ")))
    +    (insert "lr_verbosity = " value))
    +  )
    +
    +
    +(defun eels-outdir ()
    +  (interactive)
    +  (let ((value (read-directory-name "Value of outdir: ")))
    +    (insert "outdir = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun eels-prefix ()
    +  (interactive)
    +  (let ((value (read-string "Value of prefix: ")))
    +    (insert "prefix = '" value "'"))
    +  (backward-char 1)
    +  )
    +
    +
    +(defun eels-pseudo_hermitian ()
    +  (interactive)
    +  (let ((value (read-string "Value of pseudo_hermitian: ")))
    +    (insert "pseudo_hermitian = " value))
    +  )
    +
    +
    +(defun eels-qi ()
    +  (interactive)
    +  (let ((value (read-string "Value of qi: ")))
    +    (insert "qi = " value))
    +  )
    +
    +
    +(defun eels-restart ()
    +  (interactive)
    +  (let ((value (read-string "Value of restart: ")))
    +    (insert "restart = " value))
    +  )
    +
    +
    +(defun eels-restart_step ()
    +  (interactive)
    +  (let ((value (read-string "Value of restart_step: ")))
    +    (insert "restart_step = " value))
    +  )
    +
    +
    +
    +
    +
    +(provide 'qe-funcs)
    +
    +
    +
    diff --git a/GUI/QE-modes/qe-modes/qe-funcs.elc b/GUI/QE-modes/qe-modes/qe-funcs.elc
    new file mode 100644
    index 0000000000..d218f49c5a
    Binary files /dev/null and b/GUI/QE-modes/qe-modes/qe-funcs.elc differ
    diff --git a/GUI/QE-modes/qe-modes/qe-mode.el b/GUI/QE-modes/qe-modes/qe-mode.el
    new file mode 100644
    index 0000000000..5b02598860
    --- /dev/null
    +++ b/GUI/QE-modes/qe-modes/qe-mode.el
    @@ -0,0 +1,237 @@
    +;; qe-mode.el
    +;;
    +;; Copyright (C) 2016 Quantum ESPRESSO group
    +;; This file is distributed under the terms of the
    +;; GNU General Public License. See the file `License'
    +;; in the root directory of the present distribution,
    +;; or http://www.gnu.org/copyleft/gpl.txt .
    +;;
    +;; Author: Anton Kokalj (tone.kokalj at ijs.si)
    +;;
    +;; Acknowledgments:
    +;;
    +;; The implementation of qe-modes package was made possible by several
    +;; useful and helpful resources that are gratefully acknowledged, in
    +;; particular: "Mode Tutorial" of Scott Andrew Borton
    +;; (https://www.emacswiki.org/emacs/ModeTutorial, for indentation
    +;; code), "Derived Mode" and "Sample Mode" pages
    +;; (https://www.emacswiki.org/emacs/DerivedMode,
    +;; https://www.emacswiki.org/emacs/SampleMode) as well as the very
    +;; useful resources of Xah Lee
    +;; (http://ergoemacs.org/emacs/elisp_syntax_coloring.html).  Last but
    +;; not the least Sebastijan Peljhan is acknowledged for his work on
    +;; `xsf-mode' that inspired the idea of writing the qe-modes.
    +
    +
    +;; This file is not part of GNU Emacs.
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; This program is free software; you can redistribute it and/or modify
    +;; it under the terms of the GNU General Public License as published by
    +;; the Free Software Foundation; either version 2, or (at your option)
    +;; any later version.
    +;;
    +;; This lisp script is distributed in the hope that it will be useful,
    +;; but WITHOUT ANY WARRANTY; without even the implied warranty of
    +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    +;;
    +;; Permission is granted to distribute copies of this lisp script
    +;; provided the copyright notice and this permission are preserved in
    +;; all copies.
    +;;
    +;; You should have received a copy of the GNU General Public License
    +;; along with this program; if not, you can either send email to this
    +;; program's maintainer or write to: The Free Software Foundation,
    +;; Inc.; 675 Massachusetts Avenue; Cambridge, MA 02139, USA.
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +;; send bug reports to the author (tone.kokalj at ijs.si)
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +
    +;;; Commentary:
    +
    +;; This is the `qe-mode', a major mode for composing the Quantum ESPRESSO
    +;; QE-generic input files. For the installation and usage, see the
    +;; user_guide.pdf in the Doc/ subdirectory of the original package
    +;; (quick installation instructions are also available in the README
    +;; file of the original package).
    +
    +;;; Code:
    +
    +(require 'font-lock)
    +(require 'regexp-opt)
    +
    +(defvar qe-mode-hook nil)
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; basic variables
    +
    +;; qe's supercards (if any)
    +(defvar qe-open-supercards   (list "FIRST_IMAGE" "INTERMEDIATE_IMAGE" "LAST_IMAGE" ))
    +(defvar qe-closed-supercards (list "BEGIN" "BEGIN_ENGINE_INPUT" "BEGIN_PATH_INPUT" "BEGIN_POSITIONS" "END" "END_ENGINE_INPUT" "END_PATH_INPUT" "END_POSITIONS" ))
    +  
    +;; qe's namelists
    +(defvar qe-namelists (list "&BANDS" "&CELL" "&CONTROL" "&DOS" "&ELECTRONS" "&INPUT" "&INPUT_BGW2PW" "&INPUT_PW2BGW" "&INPUTCOND" "&INPUTHP" "&INPUTMOPDOS" "&INPUTP" "&INPUTPH" "&INPUTPP" "&IONS" "&lr_control" "&lr_dav" "&lr_input" "&lr_post" "&PATH" "&PLOT" "&PPACF" "&PRESS_AI" "&PROJWFC" "&SYSTEM" "&TEST" "&WANNIER" ))
    +(defvar qe-end-namelist (list "&END" "/"))
    +
    +;; qe's variables
    +(defvar qe-vars (list "A" "abisur" "abivol" "adapt" "adaptive_thr" "alpha_mix" "amass" "ampre" "amprp" "angle1" "angle2" "approximation" "ascii" "asr" "assume_isolated" "atom" "atomic_number" "author" "axis" "B" "band_file" "bdl" "bdr" "bds" "beta" "beta_gamma_z_prefix" "bfgs_ndim" "block" "block_1" "block_2" "block_height" "broadening" "bz_sum" "C" "calculation" "calwf" "cau_fact" "cell_damping" "cell_dofree" "cell_dynamics" "cell_factor" "cell_parameters" "cell_temperature" "cell_velocities" "celldm" "charge_density" "charge_response" "CI_scheme" "code_num" "compute_hp" "config" "configts" "constrained_magnetization" "conv_thr" "conv_thr_chi" "conv_thr_init" "conv_thr_multi" "cosAB" "cosAC" "cosBC" "d0psi_rs" "decut" "degauss" "degauss_ldos" "dek" "deld" "delta_e" "delta_t" "DeltaE" "denergy" "determine_num_pert_only" "dft" "dftd3_threebody" "dftd3_version" "diago_cg_maxiter" "diago_david_ndim" "diago_full_acc" "diago_thr_init" "diagonalization" "dipfield" "direction" "disk_io" "docc_thr" "drho_star" "ds" "dt" "dthr" "dvscf_star" "dx" "e1" "e2" "e3" "eamp" "ecfixed" "ecut2d" "ecutfock" "ecutmax" "ecutmin" "ecutrho" "ecutvcut" "ecutwfc" "edir" "eels" "efield" "efield_cart" "efield_phase" "efx0" "efx1" "efy0" "efy1" "efz0" "efz1" "eign_file" "ekin_conv_thr" "ekincw" "electron_damping" "electron_dynamics" "electron_maxstep" "electron_phonon" "electron_temperature" "electron_velocities" "elop" "emass" "emass_cutoff" "emax" "emaxld" "emaxpos" "emin" "eminld" "end" "energy0" "eopreg" "epol" "epsil" "epsproj" "equiv_type" "esm_bc" "esm_efield" "esm_nfit" "esm_w" "eth_ns" "eth_rps" "ethr_nscf" "etot_conv_thr" "ewind" "extrapolation" "exx_dis_cutoff" "exx_fraction" "exx_me_rcut_pair" "exx_me_rcut_self" "exx_neigh" "exx_poisson_eps" "exx_ps_rcut_pair" "exx_ps_rcut_self" "exxdiv_treatment" "fcp_mu" "fcp_tot_charge_first" "fcp_tot_charge_last" "fil_loc" "filband" "fildos" "fildrho" "fildvscf" "fildyn" "file_beta" "file_charge" "file_chi" "file_core" "file_pseudo" "file_pseudopw" "file_qvan" "file_recon" "file_screen" "file_wfcaegen" "file_wfcncgen" "file_wfcusgen" "fileig" "fileout" "filepp" "filmol" "filout" "filp" "filpdos" "filplot" "filproj" "filxsf" "find_atpert" "finish" "first_last_opt" "firstk" "fixed_magnetization" "fnhscl" "fnosee" "fnoseh" "fnosep" "forc_conv_thr" "force_symmorphic" "fpol" "frozen_core" "gate" "gdir" "grease" "greash" "greasp" "Hubbard_alpha" "Hubbard_beta" "Hubbard_J" "Hubbard_J0" "Hubbard_U" "i_atmwfc_beg_full" "i_atmwfc_beg_part" "i_atmwfc_end_full" "i_atmwfc_end_part" "i_bnd_beg_full" "i_bnd_beg_part" "i_bnd_end_full" "i_bnd_end_part" "ibrav" "iesr" "if_dft_spectrum" "if_random_init" "iflag" "ikind" "increment" "input_dft" "interpolation" "iofspin" "ion_damping" "ion_dynamics" "ion_nstepe" "ion_positions" "ion_radius" "ion_temperature" "ion_velocities" "ipol" "iprint" "irmax" "irmin" "isave" "isic" "iswitch" "itermax" "itermax0" "iverbosity" "k1" "k2" "k3" "k_max" "k_min" "kband" "kpoint" "kresolveddos" "lambda" "lambda_cold" "last_e" "last_irr" "last_k" "last_q" "lastk" "latt" "lberry" "lbinary" "lbinary_data" "lcharge" "lda_plus_u" "lda_plus_u_kind" "ldiag" "ldisp" "ldynamics" "lelfield" "lfcpopt" "lfock" "lforces" "lforcet" "lgipaw_reconstruction" "lkpoint_dir" "lloc" "llocal" "lnoloc" "localization_thr" "london" "london_c6" "london_rcut" "london_rvdw" "london_s6" "loop_ek" "lorbm" "loto_2d" "low_directory_check" "lp" "lpaw" "lpdb" "lperm" "lplasma" "lplot" "lplot_drho" "lqdir" "lr_verbosity" "lraman" "lread_cond" "lread_loc" "lrotation" "lrpa" "lsave_wfc" "lsd" "lsdts" "lshift_d0psi" "lshift_q" "lsigma" "lsign" "lsmall" "lspinorb" "lsym" "ltammd" "ltks" "lwrite_cond" "lwrite_loc" "lwrite_overlaps" "max_iter" "max_out_wfc" "max_seconds" "maxiter" "maxwfdt" "memory" "minimum_image" "mixing_beta" "mixing_fixed_ns" "mixing_mode" "mixing_ndim" "modenum" "n_inner" "n_ipol" "n_lambda" "n_proj_boxes" "nat" "nat_todo" "nberrycyc" "nbnd" "nconf" "ndega" "ndr" "ndw" "nenergy" "new_core_ps" "newoutdir" "nfile" "nframes" "ngauss" "nhgrp" "nhpcl" "nhptyp" "ninter_cold_restart" "nit" "niter_cg_restart" "niter_max" "niter_ph" "nk1" "nk2" "nk3" "nlcc" "nld" "nmix" "nmix_ph" "no_hxc" "no_overlap" "no_t_rev" "nogg" "noinv" "noncolin" "noscf" "nosym" "nosym_evc" "np1" "np2" "np3" "nppstr" "nq1" "nq2" "nq3" "nqx1" "nqx2" "nqx3" "nr1" "nr1b" "nr1s" "nr2" "nr2b" "nr2s" "nr3" "nr3b" "nr3s" "nraise" "ns1" "ns2" "ns3" "nsd" "nspin" "nstep" "nstep_path" "nsteps" "ntyp" "num_basis_max" "num_eign" "num_init" "num_of_images" "nwf" "nx" "ny" "nz" "nz1" "occupations" "omeg" "one_atom_occupations" "only_init" "opt_scheme" "orbj_fin" "orbj_in" "origin_choice" "ortho_eps" "ortho_max" "ortho_para" "orthogonalization" "outdir" "output" "output_format" "P_ext" "P_fin" "P_in" "p_nbnd_occ" "p_nbnd_virt" "passop" "path_thr" "pawproj" "perturb_only_atom" "plot_2d" "plot_num" "plot_type" "plotboxes" "poor_of_ram" "poor_of_ram2" "pot_extrapolation" "pp_file" "precondition" "prefix" "prefixl" "prefixr" "prefixs" "prefixt" "press" "press_conv_thr" "pseudo_dir" "pseudo_hermitian" "pseudotype" "psfile" "pvar" "q" "q2d" "q2sigma" "q_in_band_form" "qcutz" "qi" "qplda" "qplot" "radius" "rcloc" "rcore" "rcutv" "read_dns_bare" "real_or_complex" "real_space" "recover" "reduce_io" "reference" "refold_pos" "rel" "rel_dist" "relaxz" "relpert" "remove_rigid_rot" "report" "residue_conv_thr" "restart" "restart_mode" "restart_step" "rho0" "rho_thr" "rhog_file" "rhog_flag" "rhog_nvmax" "rhog_nvmin" "rhombohedral" "rlderiv" "rm" "rmatch_augfun" "rmatch_augfun_nc" "rmax" "rpwe" "rytoev_fact" "sample_bias" "save_file" "saverho" "scf_must_converge" "screening_parameter" "search_sym" "single_file" "single_pole" "skip_equivalence_q" "skip_type" "smearing" "space_group" "spin_component" "start" "start_e" "start_irr" "start_k" "start_q" "starting_charge" "starting_magnetization" "starting_ns_eigenvalue" "starting_spin_angle" "startingpot" "startingwfc" "state" "step" "string_method" "sum_pertq" "Surf_t" "sw_len" "symm_type" "tabps" "tcg" "td" "tdosinboxes" "tefield" "temp_req" "temph" "tempw" "thresh_init" "title" "tk_plot" "tm" "tolp" "tolw" "tot_charge" "tot_magnetization" "tprnfor" "tqr" "tr2" "tr2_ph" "tran_file" "tran_prefix" "tranp" "trans" "trust_radius_ini" "trust_radius_max" "trust_radius_min" "ts_vdw" "ts_vdw_econv_thr" "ts_vdw_isolated" "tstress" "U_projection_type" "uniqueb" "units" "upscale" "use_ace" "use_all_frac" "use_freezing" "use_masses" "use_paw_as_gipaw" "uspp_spsi" "vdw" "vdw_corr" "vdw_table_name" "verbosity" "vkb" "vkbg_file" "vkbg_flag" "vscg_file" "vscg_flag" "vxc0_file" "vxc0_flag" "vxc_diag_nmax" "vxc_diag_nmin" "vxc_file" "vxc_flag" "vxc_integral" "vxc_offdiag_nmax" "vxc_offdiag_nmin" "vxc_zero_rho_core" "vxcdiag" "vxcg_file" "vxcg_flag" "w_1" "w_2" "w_T_npol" "weight" "wf_collect" "wf_efield" "wf_friction" "wf_q" "wf_switch" "wfc_extrapolation" "wfcdir" "wfdt" "wffort" "wfng_dk1" "wfng_dk2" "wfng_dk3" "wfng_file" "wfng_flag" "wfng_kgrid" "wfng_nband" "wfng_nk1" "wfng_nk2" "wfng_nk3" "wfng_nvmax" "wfng_nvmin" "wfng_occupation" "wfsd" "what" "which_augfun" "wmass" "write_coulomb" "writev" "x0" "x_gamma_extrapolation" "xdm" "xdm_a1" "xdm_a2" "xmin" "xmlfile_full" "xmlfile_part" "zed" "zeu" "zgate" "zue" "zval" ))
    +
    +;; qe's cards & keywords
    +(defvar qe-cards (list "ATOMIC_FORCES" "ATOMIC_POSITIONS" "ATOMIC_SPECIES" "ATOMIC_VELOCITIES" "AUTOPILOT" "CELL_PARAMETERS" "CLIMBING_IMAGES" "CONSTRAINTS" "K_POINTS" "OCCUPATIONS" "PLOT_WANNIER" "REF_CELL_PARAMETERS" ))
    +
    +;; qe's flags
    +(defvar qe-flags (list "a.u" "alat" "angstrom" "automatic" "bohr" "crystal" "crystal_b" "crystal_c" "crystal_sg" "gamma" "tpiba" "tpiba_b" "tpiba_c" ))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; derived variables
    +  
    +(defvar qe-open-supercards-regexp   (regexp-opt qe-open-supercards   'symbols)) ; may not exists
    +(defvar qe-closed-supercards-regexp (regexp-opt qe-closed-supercards 'symbols)) ; may not exists
    +
    +(defvar qe-cards-regexp (regexp-opt
    +			    (append qe-cards qe-open-supercards) 'symbols))
    +(defvar qe-flags-regexp (regexp-opt qe-flags 'symbols))
    +
    +(defvar qe-namelist-face (cons (regexp-opt (append qe-namelists qe-end-namelist) 'symbols) font-lock-function-name-face))
    +(defvar qe-variable-face (cons (regexp-opt qe-vars 'symbols) font-lock-variable-name-face))
    +
    +;; logical values as constants
    +(defvar qe-logic-face (cons (regexp-opt (list ".t." ".true." ".f." ".false.")) font-lock-constant-face))
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; regexp for indentation
    +(defvar qe-decr-indent-fold-t-re (concat "^[ \t]*" (regexp-opt qe-end-namelist t)))
    +(defvar qe-decr-indent-re        (concat "^[ \t]*" (regexp-opt
    +						       (append qe-cards qe-open-supercards qe-closed-supercards) t)))
    +;;
    +(defvar qe-deindent-fold-t-re    (concat "^[ \t]*" (regexp-opt qe-end-namelist t)))
    +;;
    +(defvar qe-indent-fold-t-re      (concat "^[ \t]*" (regexp-opt qe-namelists t)))
    +(defvar qe-indent-re             (concat "^[ \t]*" (regexp-opt qe-cards     t)))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; supercards, cards and flags are case sensitive -- here are the corresponding matchers
    +
    +(defun qe-closed-supercards-matcher (limit)
    +  (let ((case-fold-search nil))
    +    (re-search-forward qe-closed-supercards-regexp limit 'no-error)))
    +
    +(defun qe-cards-matcher (limit)
    +  (let ((case-fold-search nil))
    +    (re-search-forward qe-cards-regexp limit 'no-error)))
    +
    +(defun qe-flags-matcher (limit)
    +  (let ((case-fold-search nil))
    +    (re-search-forward qe-flags-regexp limit 'no-error)))
    +
    +
    +(font-lock-add-keywords 'qe-mode (list
    +				     qe-namelist-face 
    +				     qe-variable-face
    +				     qe-logic-face
    +				     '("," . font-lock-builtin-face)
    +				     '("(" . font-lock-builtin-face)
    +				     '(")" . font-lock-builtin-face)
    +				     ))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; register the keywords
    +
    +(font-lock-add-keywords 'qe-mode '(
    +				      (qe-closed-supercards-matcher 1 font-lock-preprocessor-face t)
    +				      (qe-cards-matcher 1 font-lock-keyword-face t)
    +				      (qe-flags-matcher 1 font-lock-type-face    t)
    +				      ))
    +
    +;;(defvar qe-keywords '(qe-namelist-face qe-variable-face))
    +(defvar qe-keywords '(((list "") . font-lock-constant-face)))
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; define the sytnax of strings
    +
    +(defvar qe-mode-syntax-table
    +  (let ((table (make-syntax-table)))
    +    (modify-syntax-entry ?\' "\"'"  table)
    +    (modify-syntax-entry ?\" "\"\"" table)
    +    table)
    +  "Syntax table in use in `qe-mode' buffers.")
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; code for auto-indenting
    +
    +(defvar qe-indent 3)
    +(defun qe-indent-line ()
    +  "Indent current line according to qe input syntax."
    +  (interactive)
    +  (beginning-of-line)
    +  (if (bobp)
    +      (indent-line-to 0)		   ; First line indented to column 0
    +    (let ((not-indented t) cur-indent)
    +      (if (or (looking-at qe-decr-indent-fold-t-re)
    +	      (let ((case-fold-search nil)) (looking-at qe-decr-indent-re))) ; If the line we are looking at is the end of a block, then decrease the indentation
    +	  (progn
    +	    (save-excursion
    +	      (forward-line -1)
    +	      (setq cur-indent (- (current-indentation) qe-indent)))
    +	    (if (< cur-indent 0) ; We can't indent past the left margin
    +		(setq cur-indent 0)))
    +	(save-excursion
    +	  (while  not-indented ; Iterate backwards until we find an indentation hint
    +	    (forward-line -1)
    +	    (if (looking-at qe-deindent-fold-t-re) ; This hint indicates that we need to indent at the level of the "/" token
    +		(progn
    +		  (setq cur-indent (current-indentation))
    +		  (setq not-indented nil))
    +	      (if (or (looking-at qe-indent-fold-t-re)
    +		      (let ((case-fold-search nil)) (looking-at qe-indent-re))) ; This hint indicates that we need to indent an extra level
    +		  (progn
    +		    (setq cur-indent (+ (current-indentation) qe-indent)) ; Do the actual indenting
    +		    (setq not-indented nil))
    +		(if (bobp)
    +		    (setq not-indented nil)))))))
    +      (if cur-indent
    +	  (indent-line-to cur-indent)
    +	(indent-line-to 0))))) ; If we didn't see an indentation hint, then allow no indentation
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; define the qe-mode as derived-mode
    +
    +(define-derived-mode qe-mode prog-mode 
    +  "QE-generic"  
    +  "Major mode for editing Qunatum-ESPRESSO input files (QE-generic mode)"  
    +  (setq font-lock-defaults '((qe-keywords) nil t))
    +  (set (make-local-variable 'indent-line-function) 'qe-indent-line)
    +  
    +  ;; define the syntax of comments
    +  (setq comment-start "!")
    +  (setq comment-end "")
    +  (modify-syntax-entry ?!  "< b" qe-mode-syntax-table)
    +  (modify-syntax-entry ?\n "> b" qe-mode-syntax-table)
    +  (modify-syntax-entry ?=  " " qe-mode-syntax-table) ;; treat "=" non symbol constituent
    +  ;; end
    +  )
    +
    +;; free memory
    +
    +(setq qe-namelists nil)
    +(setq qe-vars nil)
    +(setq qe-cards nil)
    +(setq qe-flags nil)
    +(setq qe-open-supercards   nil)
    +(setq qe-closed-supercards nil)
    +
    +
    +(require 'qe-funcs)
    +
    +(provide 'qe-mode)
    +
    diff --git a/GUI/QE-modes/qe-modes/qe-mode.elc b/GUI/QE-modes/qe-modes/qe-mode.elc
    new file mode 100644
    index 0000000000..43ae0897c1
    Binary files /dev/null and b/GUI/QE-modes/qe-modes/qe-mode.elc differ
    diff --git a/GUI/QE-modes/qe-modes/qe-modes.el b/GUI/QE-modes/qe-modes/qe-modes.el
    new file mode 100644
    index 0000000000..f2c77c102d
    --- /dev/null
    +++ b/GUI/QE-modes/qe-modes/qe-modes.el
    @@ -0,0 +1,99 @@
    +;; qe-modes.el
    +;;
    +;; Copyright (C) 2016 Quantum ESPRESSO group
    +;; This file is distributed under the terms of the
    +;; GNU General Public License. See the file `License'
    +;; in the root directory of the present distribution,
    +;; or http://www.gnu.org/copyleft/gpl.txt .
    +;;
    +;; Author: Anton Kokalj (tone.kokalj at ijs.si)
    +;;
    +;; Acknowledgments:
    +;;
    +;; The implementation of qe-modes package was made possible by several
    +;; useful and helpful resources that are gratefully acknowledged, in
    +;; particular: "Mode Tutorial" of Scott Andrew Borton
    +;; (https://www.emacswiki.org/emacs/ModeTutorial, for indentation
    +;; code), "Derived Mode" and "Sample Mode" pages
    +;; (https://www.emacswiki.org/emacs/DerivedMode,
    +;; https://www.emacswiki.org/emacs/SampleMode) as well as the very
    +;; useful resources of Xah Lee
    +;; (http://ergoemacs.org/emacs/elisp_syntax_coloring.html).  Last but
    +;; not the least Sebastijan Peljhan is acknowledged for his work on
    +;; `xsf-mode' that inspired the idea of writing the qe-modes.
    +
    +
    +;; This file is not part of GNU Emacs.
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;; This program is free software; you can redistribute it and/or modify
    +;; it under the terms of the GNU General Public License as published by
    +;; the Free Software Foundation; either version 2, or (at your option)
    +;; any later version.
    +;;
    +;; This lisp script is distributed in the hope that it will be useful,
    +;; but WITHOUT ANY WARRANTY; without even the implied warranty of
    +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    +;;
    +;; Permission is granted to distribute copies of this lisp script
    +;; provided the copyright notice and this permission are preserved in
    +;; all copies.
    +;;
    +;; You should have received a copy of the GNU General Public License
    +;; along with this program; if not, you can either send email to this
    +;; program's maintainer or write to: The Free Software Foundation,
    +;; Inc.; 675 Massachusetts Avenue; Cambridge, MA 02139, USA.
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +;; send bug reports to the author (tone.kokalj at ijs.si)
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +
    +
    +;;; Commentary:
    +
    +;; This is the master `qe-modes.el' file, which loads various Quantum
    +;; ESPRESSO major modes. Add the following into your user-init-file
    +;; (e.g. ~/.emacs):
    +;;
    +;;    (add-to-list 'load-path "/directory/of/your/qe-modes/")
    +;;    (require 'qe-modes)
    +
    +;;; Code:
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; load generic Quantum ESPRESSO mode: it knows all QE namelists, cards, etc.
    +;;
    +(autoload 'qe-mode' "qe-mode.elc"
    +  "Major mode for editing Quantum ESPRESSO input files" t)
    +
    +
    +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    +;;
    +;; load specific modes: each knows only its own namelists, cards, etc.
    +;;
    +
    +(autoload 'pw-mode' "pw-mode.elc"
    +  "Major mode for editing Quantum ESPRESSO pw.x input files" t)
    +
    +(autoload 'cp-mode' "cp-mode.elc"
    +  "Major mode for editing Quantum ESPRESSO cp.x input files" t)
    +
    +(autoload 'pp-mode' "pp-mode.elc"
    +  "Major mode for editing Quantum ESPRESSO pp.x input files" t)
    +
    +(autoload 'ld1-mode' "ld1-mode.elc"
    +  "Major mode for editing Quantum ESPRESSO ld1.x input files" t)
    +
    +(autoload 'neb-mode' "neb-mode.elc"
    +  "Major mode for editing Quantum ESPRESSO neb.x input files" t)
    +
    +(autoload 'ph-mode' "ph-mode.elc"
    +  "Major mode for editing Quantum ESPRESSO ph.x input files" t)
    +
    +
    +
    +(provide 'qe-modes)
    +
    diff --git a/GUI/QE-modes/qe-modes/qe-modes.elc b/GUI/QE-modes/qe-modes/qe-modes.elc
    new file mode 100644
    index 0000000000..676aff4a10
    Binary files /dev/null and b/GUI/QE-modes/qe-modes/qe-modes.elc differ
    diff --git a/HP/Doc/INPUT_HP.html b/HP/Doc/INPUT_HP.html
    index faf4663c92..5fc7067424 100644
    --- a/HP/Doc/INPUT_HP.html
    +++ b/HP/Doc/INPUT_HP.html
    @@ -46,7 +46,7 @@
     
     

    Input File Description

    Program: - hp.x / PWscf / Quantum Espresso (version: git) + hp.x / PWscf / Quantum Espresso (version: 6.4)

    @@ -55,15 +55,15 @@

    TABLE OF CONTENTS

    -

    INTRODUCTION

    -

    &INPUTHP

    +

    INTRODUCTION

    +

    &INPUTHP

    -prefix | outdir | iverbosity | max_seconds | nq1 | nq2 | nq3 | skip_equivalence_q | determine_num_pert_only | find_atpert | docc_thr | skip_type | equiv_type | perturb_only_atom | start_q | last_q | sum_pertq | compute_hp | conv_thr_chi | thresh_init | ethr_nscf | niter_max | alpha_mix(i) | nmix +prefix | outdir | iverbosity | max_seconds | nq1 | nq2 | nq3 | skip_equivalence_q | determine_num_pert_only | find_atpert | docc_thr | skip_type | equiv_type | perturb_only_atom | start_q | last_q | sum_pertq | compute_hp | conv_thr_chi | thresh_init | ethr_nscf | niter_max | alpha_mix(i) | nmix
    -

    INTRODUCTION

    +

    INTRODUCTION

     Input data format: { } = optional, [ ] = it depends, # = comment
     
    @@ -75,11 +75,11 @@ 

    TABLE OF CONTENTS

    /
    - +

    Namelist: &INPUTHP

    - +
    @@ -95,7 +95,7 @@

    TABLE OF CONTENTS

    prefix CHARACTER
    - +
    @@ -114,7 +114,7 @@

    TABLE OF CONTENTS

    outdir CHARACTER
    - +
    @@ -136,7 +136,7 @@

    TABLE OF CONTENTS

    iverbosity INTEGER
    - +
    @@ -154,7 +154,7 @@

    TABLE OF CONTENTS

    max_seconds REAL
    +nq1, nq2, nq3 @@ -168,7 +168,7 @@

    TABLE OF CONTENTS

    -nq1, nq2, nq3 INTEGER
    - +
    @@ -187,7 +187,7 @@

    TABLE OF CONTENTS

    skip_equivalence_q LOGICAL
    - +
    @@ -208,7 +208,7 @@

    TABLE OF CONTENTS

    determine_num_pert_only LOGICAL
    - +
    @@ -235,7 +235,7 @@

    TABLE OF CONTENTS

    find_atpert INTEGER
    - +
    @@ -252,7 +252,7 @@

    TABLE OF CONTENTS

    docc_thr REAL
    - +
    @@ -278,7 +278,7 @@

    TABLE OF CONTENTS

    skip_type LOGICAL
    - +
    @@ -301,7 +301,7 @@

    TABLE OF CONTENTS

    equiv_type INTEGER
    - +
    @@ -324,7 +324,7 @@

    TABLE OF CONTENTS

    perturb_only_atom LOGICAL
    - +
    @@ -347,7 +347,7 @@

    TABLE OF CONTENTS

    start_q INTEGER
    - +
    @@ -370,7 +370,7 @@

    TABLE OF CONTENTS

    last_q INTEGER
    - +
    @@ -394,7 +394,7 @@

    TABLE OF CONTENTS

    sum_pertq LOGICAL
    - +
    @@ -421,7 +421,7 @@

    TABLE OF CONTENTS

    compute_hp LOGICAL
    - +
    @@ -438,7 +438,7 @@

    TABLE OF CONTENTS

    conv_thr_chi REAL
    - +
    @@ -457,7 +457,7 @@

    TABLE OF CONTENTS

    thresh_init REAL
    - +
    @@ -475,7 +475,7 @@

    TABLE OF CONTENTS

    ethr_nscf REAL
    - +
    @@ -491,7 +491,7 @@

    TABLE OF CONTENTS

    niter_max INTEGER
    - +
    @@ -508,7 +508,7 @@

    TABLE OF CONTENTS

    alpha_mix(i) REAL
    - +
    @@ -530,7 +530,7 @@

    TABLE OF CONTENTS

    nmix INTEGER
    - This file has been created by helpdoc utility on Fri Sep 07 12:30:30 CEST 2018. + This file has been created by helpdoc utility on Fri Mar 01 17:56:48 CET 2019. diff --git a/HP/Doc/INPUT_HP.txt b/HP/Doc/INPUT_HP.txt index 76e439cdb3..43ccc45ed6 100644 --- a/HP/Doc/INPUT_HP.txt +++ b/HP/Doc/INPUT_HP.txt @@ -3,7 +3,7 @@ ------------------------------------------------------------------------ INPUT FILE DESCRIPTION -Program: hp.x / PWscf / Quantum Espresso (version: git) +Program: hp.x / PWscf / Quantum Espresso (version: 6.4) ------------------------------------------------------------------------ @@ -284,4 +284,4 @@ NAMELIST: &INPUTHP ===END OF NAMELIST====================================================== -This file has been created by helpdoc utility on Fri Sep 07 12:30:30 CEST 2018 +This file has been created by helpdoc utility on Fri Mar 01 17:56:48 CET 2019 diff --git a/KS_Solvers/CG/Makefile b/KS_Solvers/CG/Makefile index 1859d73ff9..0f736040fd 100644 --- a/KS_Solvers/CG/Makefile +++ b/KS_Solvers/CG/Makefile @@ -22,12 +22,4 @@ libcg.a: $(CG) clean : - /bin/rm -f *.o *.a *.d *.i *~ *_tmp.f90 *.mod *.L *.x -# .PHONY forces execution of a rule irrespective of the presence of an -# updated file with the same name of the rule. In this way, the script -# that generates version.f90 always runs, updating the version if you -# execute "svn update". The update_version script takes care of not -# changing the file if the svn version did not change - -.PHONY: all clean - include make.depend diff --git a/KS_Solvers/Davidson/Makefile b/KS_Solvers/Davidson/Makefile index 73ace639b5..4c72e2ec80 100644 --- a/KS_Solvers/Davidson/Makefile +++ b/KS_Solvers/Davidson/Makefile @@ -20,12 +20,4 @@ libdavid.a: $(DAVID) clean : - /bin/rm -f *.o *.a *.d *.i *~ *_tmp.f90 *.mod *.L *.x -# .PHONY forces execution of a rule irrespective of the presence of an -# updated file with the same name of the rule. In this way, the script -# that generates version.f90 always runs, updating the version if you -# execute "svn update". The update_version script takes care of not -# changing the file if the svn version did not change - -.PHONY: all clean - include make.depend diff --git a/KS_Solvers/Davidson_RCI/Makefile b/KS_Solvers/Davidson_RCI/Makefile index 787b93b037..e594e2d4c7 100644 --- a/KS_Solvers/Davidson_RCI/Makefile +++ b/KS_Solvers/Davidson_RCI/Makefile @@ -18,12 +18,4 @@ libdavid_rci.a: $(DAVID_RCI) clean : - /bin/rm -f *.o *.a *.d *.i *~ *_tmp.f90 *.mod *.L *.x -# .PHONY forces execution of a rule irrespective of the presence of an -# updated file with the same name of the rule. In this way, the script -# that generates version.f90 always runs, updating the version if you -# execute "svn update". The update_version script takes care of not -# changing the file if the svn version did not change - -.PHONY: all clean - include make.depend diff --git a/KS_Solvers/PPCG/Makefile b/KS_Solvers/PPCG/Makefile index d1109d3ad2..7665fe1418 100644 --- a/KS_Solvers/PPCG/Makefile +++ b/KS_Solvers/PPCG/Makefile @@ -20,12 +20,4 @@ libppcg.a: $(PPCG) clean : - /bin/rm -f *.o *.a *.d *.i *~ *_tmp.f90 *.mod *.L *.x -# .PHONY forces execution of a rule irrespective of the presence of an -# updated file with the same name of the rule. In this way, the script -# that generates version.f90 always runs, updating the version if you -# execute "svn update". The update_version script takes care of not -# changing the file if the svn version did not change - -.PHONY: all clean - include make.depend diff --git a/Makefile b/Makefile index 0522f5872a..ebbd52b777 100644 --- a/Makefile +++ b/Makefile @@ -146,8 +146,21 @@ travis : pwall epw ( cd test-suite ; make run-travis || exit 1 ) ; fi gui : - @echo 'Check "GUI/README" how to access the Graphical User Interface' -#@echo 'Check "PWgui-X.Y/README" how to access the Graphical User Interface' + @if test -d GUI/PWgui ; then \ + cd GUI/PWgui ; \ + $(MAKE) TLDEPS= init; \ + echo ; \ + echo " PWgui has been built in ./GUI/PWgui/. You may try it either as: "; \ + echo " ./GUI/PWgui/pwgui" ; \ + echo " or"; \ + echo " cd ./GUI/PWgui";\ + echo " ./pwgui" ; \ + echo ; \ + else \ + echo ; \ + echo " Sorry, gui works only for git sources !!!" ; \ + echo ; \ + fi examples : ( cd install ; $(MAKE) -f plugins_makefile $@ || exit 1 ) @@ -308,7 +321,7 @@ clean : CPV LAXlib FFTXlib UtilXlib Modules PP PW EPW KS_Solvers \ NEB ACFDT COUPLE GWW XSpectra PWCOND dft-d3 \ atomic clib LR_Modules pwtools upftools \ - dev-tools extlibs Environ TDDFPT PHonon HP GWW \ + dev-tools extlibs Environ TDDFPT PHonon HP GWW Doc GUI \ ; do \ if test -d $$dir ; then \ ( cd $$dir ; \ @@ -324,8 +337,7 @@ veryclean : clean - @(cd install ; $(MAKE) -f plugins_makefile veryclean) - @(cd install ; $(MAKE) -f extlibs_makefile veryclean) - rm -rf install/patch-plumed - - cd install ; rm -f config.log configure.msg config.status \ - CPV/version.h ChangeLog* intel.pcl */intel.pcl + - cd install ; rm -f config.log configure.msg config.status - rm -rf include/configure.h install/make_wannier90.inc - cd install ; rm -fr autom4te.cache - cd install; ./clean.sh ; cd - @@ -352,11 +364,11 @@ tar : tar-gui : @if test -d GUI/PWgui ; then \ cd GUI/PWgui ; \ - $(MAKE) TLDEPS= clean svninit pwgui-source; \ + $(MAKE) TLDEPS= clean init pwgui-source; \ mv PWgui-*.tgz ../.. ; \ else \ echo ; \ - echo " Sorry, tar-gui works only for svn sources !!!" ; \ + echo " Sorry, tar-gui works only for git sources !!!" ; \ echo ; \ fi @@ -367,7 +379,7 @@ tar-qe-modes : mv QE-modes-*.tar.gz ../.. ; \ else \ echo ; \ - echo " Sorry, tar-qe-modes works only for svn sources !!!" ; \ + echo " Sorry, tar-qe-modes works only for git sources !!!" ; \ echo ; \ fi @@ -378,10 +390,10 @@ tar-qe-modes : # "latex2html" and "convert" (from Image-Magick) are needed. doc : if test -d Doc ; then \ - ( cd Doc ; $(MAKE) TLDEPS= all ) ; fi + ( cd Doc ; $(MAKE) VERSION=6.4 TLDEPS= all ) ; fi for dir in */Doc; do \ ( if test -f $$dir/Makefile ; then \ - ( cd $$dir; $(MAKE) TLDEPS= all ) ; fi ) ; done + ( cd $$dir; $(MAKE) VERSION=6.4 TLDEPS= all ) ; fi ) ; done doc_clean : if test -d Doc ; then \ diff --git a/Modules/funct.f90 b/Modules/funct.f90 index 12fb01ad1b..6e686ee578 100644 --- a/Modules/funct.f90 +++ b/Modules/funct.f90 @@ -194,10 +194,18 @@ module funct ! "cx13" consistent exchange igcx =27 ! "x3lp" X3LYP (Becke88*0.542 + ! Perdew-Wang91*0.167) igcx =28 - ! "cx0" vdW-DF-cx+HF/4 (cx13-0) igcx =29 reserved PH - ! "r860" rPW86+HF/4 (rw86-0) igcx =30 reserved PH - ! "br0" vdW-DF2-b86r+HF/4 (b86r-0) igcx =38 reserved PH - ! "c090" vdW-DF-c09+HF/4 (c09-0) igcx =40 reserved PH + ! "cx0" vdW-DF-cx+HF/4 (cx13-0) igcx =29 + ! "r860" rPW86+HF/4 (rw86-0) igcx =30 (for DF0) + ! "cx0p" vdW-DF-cx+HF/5 (cx13-0p) igcx =31 + ! "ahcx" vdW-DF-cx based not yet in use igcx =32 reserved PH + ! "ahf2" vdW-DF2 based not yet in use igcx =33 reserved PH + ! "ahpb" PBE based not yet in use igcx =34 reserved PH + ! "ahps" PBE-sol based not in use igcx =35 reserved PH + ! "cx14" Exporations igcx =36 reserved PH + ! "cx15" Exporations igcx =37 reserved PH + ! "br0" vdW-DF2-b86r+HF/4 (b86r-0) igcx =38 + ! "cx16" Exporations igcx =39 reserved PH + ! "c090" vdW-DF-c09+HF/4 (c09-0) igcx =40 ! "b86x" B86b exchange * 0.75 igcx =41 ! "b88x" B88 exchange * 0.50 igcx =42 ! @@ -277,6 +285,8 @@ module funct ! vdW-DF-cx K. Berland and P. Hyldgaard, PRB 89, 035412 (2014) ! vdW-DF-cx0 K. Berland, Y. Jiao, J.-H. Lee, T. Rangel, J. B. Neaton and P. Hyldgaard, ! J. Chem. Phys. 146, 234106 (2017) + ! vdW-DF-cx0p Y. Jiao, E. Schröder and P. Hyldgaard, + ! J. Chem. Phys. 148, 194115 (2018) ! vdW-DF-obk8 Klimes et al, J. Phys. Cond. Matter, 22, 022201 (2010) ! vdW-DF-ob86 Klimes et al, Phys. Rev. B, 83, 195131 (2011) ! c09x V. R. Cooper, Phys. Rev. B 81, 161104(R) (2010) @@ -345,8 +355,8 @@ module funct 'xxxx', 'PB0X', 'B3LP','PSX', 'WCX', 'HSE', 'RW86', 'PBE', & 'xxxx', 'C09X', 'SOX', 'xxxx', 'Q2DX', 'GAUP', 'PW86', 'B86B', & 'OBK8', 'OB86', 'EVX', 'B86R', 'CX13', 'X3LP', & - 'CX0', 'R860', 'xxxx', 'xxxx', 'xxxx', & - 'xxxx', 'xxxx', 'xxxx', 'xxxx', 'BR0', 'xxxx', 'C090', & + 'CX0', 'R860', 'CX0P', 'AHCX', 'AHF2', & + 'AHPB', 'AHPS', 'CX14', 'CX15', 'BR0', 'CX16', 'C090', & 'B86X', 'B88X'/ data gradc / 'NOGC', 'P86', 'GGC', 'BLYP', 'PBC', 'HCTH', 'NONE',& @@ -563,6 +573,10 @@ subroutine set_dft_from_name( dft_ ) ! Special case vdW-DF-CX0 dft_defined = set_dft_values(6,4,29,0,1,0) + else if ('VDW-DF-CX0P' .EQ. TRIM(dftout) ) then + ! Special case vdW-DF-CX0P + dft_defined = set_dft_values(6,4,31,0,1,0) + else if ('VDW-DF2-0' .EQ. TRIM(dftout) ) then ! Special case vdW-DF2-0 dft_defined = set_dft_values(6,4,30,0,2,0) @@ -760,6 +774,8 @@ subroutine set_auxiliary_flags islda = (iexch> 0) .and. (icorr > 0) .and. .not. isgradient ! PBE0/DF0 IF ( iexch==6 .or. igcx ==8 ) exx_fraction = 0.25_DP + ! CX0P + IF ( iexch==6 .AND. igcx ==31 ) exx_fraction = 0.20_DP ! B86BPBEX IF ( iexch==6 .and. igcx ==41 ) exx_fraction = 0.25_DP ! BHANDHLYP @@ -1161,6 +1177,8 @@ function get_dft_short ( ) shortname = 'VDW-DF-CX' else if (iexch==6.and.icorr==4.and.igcx==29.and.igcc==0) then shortname = 'VDW-DF-CX0' + else if (iexch==6.and.icorr==4.and.igcx==31.and.igcc==0) then + shortname = 'VDW-DF-CX0P' else if (iexch==1.and.icorr==4.and.igcx==16.and.igcc==0) then shortname = 'VDW-DF-C09' else if (iexch==1.and.icorr==4.and.igcx==24.and.igcc==0) then @@ -1693,7 +1711,7 @@ subroutine gcxc (rho, grho, sx, sc, v1x, v2x, v1c, v2c) v1x = v1x + real(0.235*0.709) * v1x__ v2x = v2x + real(0.235*0.709) * v2x__ end if - elseif (igcx == 29) then ! 'cx0' + elseif (igcx == 29 .or. igcx == 31) then ! 'cx0'or `cx0p' call cx13 (rho, grho, sx, v1x, v2x) if (exx_started) then sx = (1.0_DP - exx_fraction) * sx @@ -2113,7 +2131,7 @@ subroutine gcx_spin (rhoup, rhodw, grhoup2, grhodw2, & v2xdw = 0.709_DP * v2xdw end if - elseif (igcx == 29) then ! 'cx0 for vdw-df-cx0' etc + elseif (igcx == 29 .or. igcx == 31) then ! 'cx0 for vdw-df-cx0' or `cx0p for vdW-DF-cx0p' if (rhoup > small .and. sqrt (abs (grhoup2) ) > small) then call cx13 (2.0_DP * rhoup, 4.0_DP * grhoup2, sxup, v1xup, v2xup) else diff --git a/Modules/qexsd.f90 b/Modules/qexsd.f90 index 5309613612..07f68c8130 100644 --- a/Modules/qexsd.f90 +++ b/Modules/qexsd.f90 @@ -43,7 +43,7 @@ MODULE qexsd_module ! definitions for the fmt ! CHARACTER(5), PARAMETER :: fmt_name = "QEXSD" - CHARACTER(5), PARAMETER :: fmt_version = "19.02.07" + CHARACTER(5), PARAMETER :: fmt_version = "19.03.04" ! ! some default for kinds ! @@ -161,7 +161,7 @@ SUBROUTINE qexsd_openschema( filename , prog) CALL xml_NewElement (XF=qexsd_xf, NAME = "qes:espresso") CALL xml_addAttribute(XF=qexsd_xf, NAME = "xsi:schemaLocation", & VALUE = "http://www.quantum-espresso.org/ns/qes/qes-1.0 "//& - "http://www.quantum-espresso.org/ns/qes/qes_190207.xsd" ) + "http://www.quantum-espresso.org/ns/qes/qes_190304.xsd" ) CALL xml_addAttribute(XF=qexsd_xf, NAME="Units", VALUE="Hartree atomic units") CALL xml_addComment(XF = qexsd_xf, & COMMENT = "If not explicitely indicated, all quantities are expressed in Hartree atomic units" ) diff --git a/Modules/tsvdw.f90 b/Modules/tsvdw.f90 index efcbeee7b7..62a4af134f 100644 --- a/Modules/tsvdw.f90 +++ b/Modules/tsvdw.f90 @@ -549,7 +549,7 @@ SUBROUTINE tsvdw_initialize() ! ! Populate reference free atom quantities... ! - CALL GetVdWParam(atm(is),C6AAfree(is),dpfree(is),R0free(is)) + CALL GetVdWParam(upf(is)%psd,C6AAfree(is),dpfree(is),R0free(is)) ! WRITE(stdout,'(5X,"The free atom static dipole polarizability is ",F13.6," bohr^3.")') dpfree(is) WRITE(stdout,'(5X,"The free atom homonuclear C6 coefficient is ",F13.6," Hartree bohr^6.")') C6AAfree(is) @@ -2444,7 +2444,7 @@ SUBROUTINE GetVdWParam(atom,C6,alpha,R0) ! ! I/O variables ! - CHARACTER(LEN=3) :: atom + CHARACTER(LEN=2) :: atom REAL(DP) :: C6,alpha,R0 ! SELECT CASE (atom) diff --git a/Modules/version.f90 b/Modules/version.f90 index dc1f7d61fa..4553bff703 100644 --- a/Modules/version.f90 +++ b/Modules/version.f90 @@ -12,7 +12,7 @@ MODULE global_version ! SAVE ! - CHARACTER (LEN=6) :: version_number = '6.4rc' + CHARACTER (LEN=6) :: version_number = '6.4' CHARACTER (LEN=12) :: svn_revision = 'unknown' ! END MODULE global_version diff --git a/NEB/Doc/INPUT_NEB.html b/NEB/Doc/INPUT_NEB.html index 4fce5d44c1..cb9f55ced9 100644 --- a/NEB/Doc/INPUT_NEB.html +++ b/NEB/Doc/INPUT_NEB.html @@ -46,7 +46,7 @@

    Input File Description

    Program: - neb.x / NEB / Quantum Espresso (version: svn) + neb.x / NEB / Quantum Espresso (version: 6.4)

    @@ -711,7 +711,7 @@

    Description of items:

    - This file has been created by helpdoc utility on Fri Jun 22 17:11:02 CEST 2018. + This file has been created by helpdoc utility on Fri Mar 01 17:56:50 CET 2019. diff --git a/NEB/Doc/INPUT_NEB.txt b/NEB/Doc/INPUT_NEB.txt index d421940376..3d317c7d60 100644 --- a/NEB/Doc/INPUT_NEB.txt +++ b/NEB/Doc/INPUT_NEB.txt @@ -3,7 +3,7 @@ ------------------------------------------------------------------------ INPUT FILE DESCRIPTION -Program: neb.x / NEB / Quantum Espresso (version: svn) +Program: neb.x / NEB / Quantum Espresso (version: 6.4) ------------------------------------------------------------------------ @@ -470,4 +470,4 @@ Structure of the NEB-only input data (file neb.dat): ### END OF SUPERCARD : BEGIN/END ###################################### -This file has been created by helpdoc utility on Fri Jun 22 17:11:02 CEST 2018 +This file has been created by helpdoc utility on Fri Mar 01 17:56:50 CET 2019 diff --git a/NEB/Doc/Makefile b/NEB/Doc/Makefile index a9f34518f4..656cf3424a 100644 --- a/NEB/Doc/Makefile +++ b/NEB/Doc/Makefile @@ -1,4 +1,4 @@ -VERSION = svn +VERSION = git HELPDOC = ../../dev-tools/helpdoc -version $(VERSION) LATEX = pdflatex LATEX2HTML = latex2html @@ -10,7 +10,7 @@ OUTS = $(PDFS:.pdf=.out) TOCS = $(PDFS:.pdf=.toc) doc: all -all: pdf html defs +all: defs pdf html pdf: $(PDFS) html: user_guide @@ -26,7 +26,7 @@ clean: - rm -rf ../../Doc/INPUT_NEB.* user_guide: user_guide.pdf - rm -rf user_guide/ + - rm -rf user_guide/ latex2html \ -t "User's Guide for The Quantum ESPRESSO Nudged Elastic Band" \ -html_version 3.2,math \ diff --git a/PHonon/Doc/INPUT_DYNMAT.html b/PHonon/Doc/INPUT_DYNMAT.html index a0d3808afb..4f4f3e224a 100644 --- a/PHonon/Doc/INPUT_DYNMAT.html +++ b/PHonon/Doc/INPUT_DYNMAT.html @@ -46,7 +46,7 @@

    Input File Description

    Program: - dynmat.x / PWscf / Quantum Espresso (version: svn) + dynmat.x / PWscf / Quantum Espresso (version: 6.4)

    @@ -337,7 +337,7 @@

    TABLE OF CONTENTS

    - This file has been created by helpdoc utility on Fri Jun 22 17:11:33 CEST 2018. + This file has been created by helpdoc utility on Fri Mar 01 17:57:19 CET 2019. diff --git a/PHonon/Doc/INPUT_DYNMAT.txt b/PHonon/Doc/INPUT_DYNMAT.txt index ceb7c05c19..712a547ae7 100644 --- a/PHonon/Doc/INPUT_DYNMAT.txt +++ b/PHonon/Doc/INPUT_DYNMAT.txt @@ -3,7 +3,7 @@ ------------------------------------------------------------------------ INPUT FILE DESCRIPTION -Program: dynmat.x / PWscf / Quantum Espresso (version: svn) +Program: dynmat.x / PWscf / Quantum Espresso (version: 6.4) ------------------------------------------------------------------------ @@ -176,4 +176,4 @@ NAMELIST: &INPUT ===END OF NAMELIST====================================================== -This file has been created by helpdoc utility on Fri Jun 22 17:11:33 CEST 2018 +This file has been created by helpdoc utility on Fri Mar 01 17:57:19 CET 2019 diff --git a/PHonon/Doc/INPUT_PH.html b/PHonon/Doc/INPUT_PH.html index 00b148f704..4b83daf26e 100644 --- a/PHonon/Doc/INPUT_PH.html +++ b/PHonon/Doc/INPUT_PH.html @@ -46,7 +46,7 @@

    Input File Description

    Program: - ph.x / PWscf / Quantum Espresso (version: svn) + ph.x / PWscf / Quantum Espresso (version: 6.4)

    @@ -59,17 +59,17 @@

    TABLE OF CONTENTS

    Line-of-input: title_line

    &INPUTPH

    -amass | outdir | prefix | niter_ph | tr2_ph | alpha_mix(niter) | nmix_ph | verbosity | reduce_io | max_seconds | fildyn | fildrho | fildvscf | epsil | lrpa | lnoloc | trans | lraman | eth_rps | eth_ns | dek | recover | low_directory_check | only_init | qplot | q2d | q_in_band_form | electron_phonon | lshift_q | zeu | zue | elop | fpol | ldisp | nogg | asr | ldiag | lqdir | search_sym | nq1 | nq2 | nq3 | nk1 | nk2 | nk3 | k1 | k2 | k3 | start_irr | last_irr | nat_todo | modenum | start_q | last_q | dvscf_star | drho_star +amass | outdir | prefix | niter_ph | tr2_ph | alpha_mix(niter) | nmix_ph | verbosity | reduce_io | max_seconds | fildyn | fildrho | fildvscf | epsil | lrpa | lnoloc | trans | lraman | eth_rps | eth_ns | dek | recover | low_directory_check | only_init | qplot | q2d | q_in_band_form | electron_phonon | lshift_q | zeu | zue | elop | fpol | ldisp | nogg | asr | ldiag | lqdir | search_sym | nq1 | nq2 | nq3 | nk1 | nk2 | nk3 | k1 | k2 | k3 | read_dns_bare | start_irr | last_irr | nat_todo | modenum | start_q | last_q | dvscf_star | drho_star
    -

    Line-of-input: xq(1) xq(2) xq(3) +

    Line-of-input: xq(1) xq(2) xq(3)

    -

    qPointsSpecs

    +

    qPointsSpecs

    -nqs | xq1 | xq2 | xq3 | nq +nqs | xq1 | xq2 | xq3 | nq
    -

    Line-of-input: atom(1) atom(2) ... atom(nat_todo) +

    Line-of-input: atom(1) atom(2) ... atom(nat_todo)

    -

    ADDITIONAL INFORMATION

    +

    ADDITIONAL INFORMATION

    @@ -862,11 +862,34 @@

    Description of items:

    with offset determined by k1,k2,k3.
    +
    [Back to Top]
    + + + + + + + + + + +
    read_dns_bareLOGICAL
    Default: .false. +
    +If .true. the PH code tries to read three files in the DFPT+U
    +calculation: dns_orth, dns_bare, d2ns_bare.
    +dns_orth and dns_bare are the first-order variations of
    +the occupation matrix, while d2ns_bare is the second-order
    +variation of the occupation matrix. These matrices are
    +computed only once during the DFPT+U calculation. However,
    +their calculation (especially of d2ns_bare) is computationally
    +expensive, this is why they are written to file and then can be
    +read (e.g. for restart) in order to save time.
    +         
    [Back to Top]

    Specification of irreducible representation

    - +
    @@ -891,7 +914,7 @@

    Description of items:

    start_irr INTEGER
    [Back to Top]
    - +
    @@ -916,7 +939,7 @@

    Description of items:

    last_irr INTEGER
    [Back to Top]
    - +
    @@ -941,7 +964,7 @@

    Description of items:

    nat_todo INTEGER
    [Back to Top]
    - +
    @@ -967,7 +990,7 @@

    Description of items:

    modenum INTEGER

    q-point specification

    - +
    @@ -992,7 +1015,7 @@

    Description of items:

    start_q INTEGER
    - +
    @@ -1017,7 +1040,7 @@

    Description of items:

    last_q INTEGER
    - +
    @@ -1062,7 +1085,7 @@

    Description of items:

    dvscf_star STRUCTURE
    - +
    @@ -1099,7 +1122,7 @@

    Description of items:

    drho_star STRUCTURE
    IF ldisp != .true. and qplot != .true. :
    - +
    @@ -1107,13 +1130,13 @@

    Description of items:

    Line of input

    Syntax:

    - xq(1) xq(2) xq(3) + xq(1) xq(2) xq(3)   

    Description of items:

    - +
    @@ -1134,32 +1157,32 @@

    Description of items:

    ELSEIF qplot == .true. :
    xq(1) xq(2) xq(3)

    Specification of q points when qplot == .true.

    - +

    Card: qPointsSpecs

    Syntax:

    -nqs  
    +nqs  
    - - - - + + + + - - - - + + + + - - - - + + + +
     xq1(1)  xq2(1)  xq3(1)  nq(1)  xq1(1)  xq2(1)  xq3(1)  nq(1) 
     xq1(2)  xq2(2)  xq3(2)  nq(2)  xq1(2)  xq2(2)  xq3(2)  nq(2) 
     . . .
     xq1(nqs)  xq2(nqs)  xq3(nqs)  nq(nqs)  xq1(nqs)  xq2(nqs)  xq3(nqs)  nq(nqs) 
    @@ -1167,7 +1190,7 @@

    Syntax:

    Description of items:

    - +
    @@ -1180,7 +1203,7 @@

    Description of items:

    nqs INTEGER
    @@ -1194,7 +1217,7 @@

    Description of items:

    -xq1, xq2, xq3 +xq1, xq2, xq3 REAL
    - +
    nqnq INTEGER
    @@ -1211,7 +1234,7 @@ 

    Description of items:

    IF nat_todo was specified :
    - +
    @@ -1219,13 +1242,13 @@

    Description of items:

    Line of input

    Syntax:

    - atom(1) atom(2) ... atom(nat_todo) + atom(1) atom(2) ... atom(nat_todo)   

    Description of items:

    - +
    @@ -1244,7 +1267,7 @@

    Description of items:

    atom(1) atom(2) ... atom(nat_todo)
    -

    ADDITIONAL INFORMATION

    +

    ADDITIONAL INFORMATION

     NB: The program ph.x writes on the tmp_dir/_ph0/{prefix}.phsave directory
     a file for each representation of each q point. This file is called
    @@ -1302,7 +1325,7 @@ 

    Description of items:

    - This file has been created by helpdoc utility on Fri Jun 22 17:11:33 CEST 2018. + This file has been created by helpdoc utility on Fri Mar 01 17:57:19 CET 2019. diff --git a/PHonon/Doc/INPUT_PH.txt b/PHonon/Doc/INPUT_PH.txt index e3fc613bb0..2ad307316c 100644 --- a/PHonon/Doc/INPUT_PH.txt +++ b/PHonon/Doc/INPUT_PH.txt @@ -3,7 +3,7 @@ ------------------------------------------------------------------------ INPUT FILE DESCRIPTION -Program: ph.x / PWscf / Quantum Espresso (version: svn) +Program: ph.x / PWscf / Quantum Espresso (version: 6.4) ------------------------------------------------------------------------ @@ -489,6 +489,22 @@ NAMELIST: &INPUTPH with offset determined by k1,k2,k3. +-------------------------------------------------------------------- + +-------------------------------------------------------------------- + Variable: read_dns_bare + + Type: LOGICAL + Default: .false. + Description: If .true. the PH code tries to read three files in the DFPT+U + calculation: dns_orth, dns_bare, d2ns_bare. + dns_orth and dns_bare are the first-order variations of + the occupation matrix, while d2ns_bare is the second-order + variation of the occupation matrix. These matrices are + computed only once during the DFPT+U calculation. However, + their calculation (especially of d2ns_bare) is computationally + expensive, this is why they are written to file and then can be + read (e.g. for restart) in order to save time. + +-------------------------------------------------------------------- + ///--- SPECIFICATION OF IRREDUCIBLE REPRESENTATION @@ -816,4 +832,4 @@ ________________________________________________________________________ information. -This file has been created by helpdoc utility on Fri Jun 22 17:11:33 CEST 2018 +This file has been created by helpdoc utility on Fri Mar 01 17:57:19 CET 2019 diff --git a/PHonon/Doc/Makefile b/PHonon/Doc/Makefile index 2ad84840bb..fbd6fee483 100644 --- a/PHonon/Doc/Makefile +++ b/PHonon/Doc/Makefile @@ -1,4 +1,4 @@ -VERSION = svn +VERSION = git HELPDOC = ../../dev-tools/helpdoc -version $(VERSION) LATEX = pdflatex @@ -12,7 +12,7 @@ TOCS = $(PDFS:.pdf=.toc) doc: all -all: pdf html defs +all: defs pdf html pdf: $(PDFS) html: user_guide developer_man @@ -28,7 +28,7 @@ clean: - rm -rf ../../Doc/INPUT_PH.* user_guide: user_guide.pdf - rm -rf user_guide/ + - rm -rf user_guide/ latex2html \ -t "User's Guide for the PHonon package" \ -html_version 3.2,math \ diff --git a/PHonon/Doc/developer_man.pdf b/PHonon/Doc/developer_man.pdf index fa35009d3c..ce1f6edc47 100644 Binary files a/PHonon/Doc/developer_man.pdf and b/PHonon/Doc/developer_man.pdf differ diff --git a/PHonon/Doc/user_guide.pdf b/PHonon/Doc/user_guide.pdf index 21f814475f..1ee5067a0d 100644 Binary files a/PHonon/Doc/user_guide.pdf and b/PHonon/Doc/user_guide.pdf differ diff --git a/PHonon/Doc/user_guide.tex b/PHonon/Doc/user_guide.tex index 859163d4e6..250e90317f 100644 --- a/PHonon/Doc/user_guide.tex +++ b/PHonon/Doc/user_guide.tex @@ -1,5 +1,5 @@ \documentclass[12pt,a4paper]{article} -\def\version{6.3} +\def\version{6.4} \def\qe{{\sc Quantum ESPRESSO}} \usepackage{html} diff --git a/PP/Doc/Makefile b/PP/Doc/Makefile index 747d851f6c..ae6d7a70b9 100644 --- a/PP/Doc/Makefile +++ b/PP/Doc/Makefile @@ -1,4 +1,4 @@ -VERSION = svn +VERSION = git HELPDOC = ../../dev-tools/helpdoc -version $(VERSION) LATEX = pdflatex LATEX2HTML = latex2html @@ -23,7 +23,7 @@ XMLS = $(HTMLS:.html=.xml) TXTS = $(HTMLS:.html=.txt) doc: all -all: pdf defs html +all: defs pdf html pdf: $(PDFS) html: user_guide @@ -77,7 +77,7 @@ link_on_main_doc: ln -fs ../PP/Doc/INPUT_molecularpdos.txt .) user_guide: user_guide.pdf - rm -rf user_guide/ + - rm -rf user_guide/ latex2html \ -t "User's Guide for the PP package" \ -html_version 3.2,math \ diff --git a/PP/Doc/user_guide.pdf b/PP/Doc/user_guide.pdf index 4335c2b454..cdabccb192 100644 Binary files a/PP/Doc/user_guide.pdf and b/PP/Doc/user_guide.pdf differ diff --git a/PP/Doc/user_guide.tex b/PP/Doc/user_guide.tex index 986af02c86..09a5bdd72c 100644 --- a/PP/Doc/user_guide.tex +++ b/PP/Doc/user_guide.tex @@ -1,5 +1,5 @@ \documentclass[12pt,a4paper]{article} -\def\version{6.3} +\def\version{6.4} \def\qe{{\sc Quantum ESPRESSO}} \usepackage{html} diff --git a/PP/examples/WAN90_example/reference/diamond.lib.win b/PP/examples/WAN90_example/reference/diamond.lib.win index ff52efe688..418f791ba2 100644 --- a/PP/examples/WAN90_example/reference/diamond.lib.win +++ b/PP/examples/WAN90_example/reference/diamond.lib.win @@ -2,8 +2,8 @@ num_wann = 4 num_iter = 20 begin atoms_frac -C -0.12500 -0.1250 -0.125000 -C 0.12500 0.1250 0.125000 +C -0.2500 -0.250 -0.25000 +C 0.00000 0.0000 0.000000 end atoms_frac begin projections diff --git a/PP/examples/WAN90_example/reference/diamond.nscf.in b/PP/examples/WAN90_example/reference/diamond.nscf.in deleted file mode 100644 index 052ebd7285..0000000000 --- a/PP/examples/WAN90_example/reference/diamond.nscf.in +++ /dev/null @@ -1,84 +0,0 @@ - &control - calculation='nscf' - pseudo_dir='/home/arash/PW-pseudo', - outdir='/home/arash/tmp', - prefix='di' - / - &system - ibrav= 2, celldm(1) =6.1, nat= 2, ntyp= 1, - ecutwfc =40.0, nbnd = 4, - / - &electrons - conv_thr = 1.0d-11 - / -ATOMIC_SPECIES - C 12.0 C.pz-vbc.UPF -ATOMIC_POSITIONS {crystal} -C -0.125 -0.125 -0.125 -C 0.125 0.125 0.125 -K_POINTS {crystal} - 64 -0.0000 0.0000 0.0000 0.0156250 -0.0000 0.2500 0.0000 0.0156250 -0.0000 0.5000 0.0000 0.0156250 -0.0000 0.7500 0.0000 0.0156250 -0.2500 0.0000 0.0000 0.0156250 -0.2500 0.2500 0.0000 0.0156250 -0.2500 0.5000 0.0000 0.0156250 -0.2500 0.7500 0.0000 0.0156250 -0.5000 0.0000 0.0000 0.0156250 -0.5000 0.2500 0.0000 0.0156250 -0.5000 0.5000 0.0000 0.0156250 -0.5000 0.7500 0.0000 0.0156250 -0.7500 0.0000 0.0000 0.0156250 -0.7500 0.2500 0.0000 0.0156250 -0.7500 0.5000 0.0000 0.0156250 -0.7500 0.7500 0.0000 0.0156250 -0.0000 0.0000 0.2500 0.0156250 -0.0000 0.2500 0.2500 0.0156250 -0.0000 0.5000 0.2500 0.0156250 -0.0000 0.7500 0.2500 0.0156250 -0.2500 0.0000 0.2500 0.0156250 -0.2500 0.2500 0.2500 0.0156250 -0.2500 0.5000 0.2500 0.0156250 -0.2500 0.7500 0.2500 0.0156250 -0.5000 0.0000 0.2500 0.0156250 -0.5000 0.2500 0.2500 0.0156250 -0.5000 0.5000 0.2500 0.0156250 -0.5000 0.7500 0.2500 0.0156250 -0.7500 0.0000 0.2500 0.0156250 -0.7500 0.2500 0.2500 0.0156250 -0.7500 0.5000 0.2500 0.0156250 -0.7500 0.7500 0.2500 0.0156250 -0.0000 0.0000 0.5000 0.0156250 -0.0000 0.2500 0.5000 0.0156250 -0.0000 0.5000 0.5000 0.0156250 -0.0000 0.7500 0.5000 0.0156250 -0.2500 0.0000 0.5000 0.0156250 -0.2500 0.2500 0.5000 0.0156250 -0.2500 0.5000 0.5000 0.0156250 -0.2500 0.7500 0.5000 0.0156250 -0.5000 0.0000 0.5000 0.0156250 -0.5000 0.2500 0.5000 0.0156250 -0.5000 0.5000 0.5000 0.0156250 -0.5000 0.7500 0.5000 0.0156250 -0.7500 0.0000 0.5000 0.0156250 -0.7500 0.2500 0.5000 0.0156250 -0.7500 0.5000 0.5000 0.0156250 -0.7500 0.7500 0.5000 0.0156250 -0.0000 0.0000 0.7500 0.0156250 -0.0000 0.2500 0.7500 0.0156250 -0.0000 0.5000 0.7500 0.0156250 -0.0000 0.7500 0.7500 0.0156250 -0.2500 0.0000 0.7500 0.0156250 -0.2500 0.2500 0.7500 0.0156250 -0.2500 0.5000 0.7500 0.0156250 -0.2500 0.7500 0.7500 0.0156250 -0.5000 0.0000 0.7500 0.0156250 -0.5000 0.2500 0.7500 0.0156250 -0.5000 0.5000 0.7500 0.0156250 -0.5000 0.7500 0.7500 0.0156250 -0.7500 0.0000 0.7500 0.0156250 -0.7500 0.2500 0.7500 0.0156250 -0.7500 0.5000 0.7500 0.0156250 -0.7500 0.7500 0.7500 0.0156250 diff --git a/PP/examples/WAN90_example/reference/diamond.nscf.out b/PP/examples/WAN90_example/reference/diamond.nscf.out index 766c9288de..ceacc17191 100644 --- a/PP/examples/WAN90_example/reference/diamond.nscf.out +++ b/PP/examples/WAN90_example/reference/diamond.nscf.out @@ -1,76 +1,88 @@ - Program PWSCF v.3.1.1 starts ... - Today is 9Oct2006 at 15:37: 6 + Program PWSCF v.6.4rc starts on 1Mar2019 at 15:58:49 - Parallel version (MPI) + This program is part of the open-source Quantum ESPRESSO suite + for quantum simulation of materials; please cite + "P. Giannozzi et al., J. Phys.:Condens. Matter 21 395502 (2009); + "P. Giannozzi et al., J. Phys.:Condens. Matter 29 465901 (2017); + URL http://www.quantum-espresso.org", + in publications or presentations arising from this work. More details at + http://www.quantum-espresso.org/quote - Number of processors in use: 2 - R & G space division: proc/pool = 2 + Parallel version (MPI), running on 1 processors - Ultrasoft (Vanderbilt) Pseudopotentials + MPI processes distributed on 1 nodes + Waiting for input... + Reading input from standard input - Current dimensions of program pwscf are: + Current dimensions of program PWSCF are: + Max number of different atomic species (ntypx) = 10 + Max number of k-points (npk) = 40000 + Max angular momentum in pseudopotentials (lmaxx) = 3 - ntypx = 10 npk = 40000 lmax = 3 - nchix = 6 ndmx = 2000 nbrx = 14 nqfx = 8 - - looking for the optimal diagonalization algorithm ... + Atomic positions and unit cell read from directory: + /home/giannozz/q-e-mio/tempdir/di.save/ + + Subspace diagonalization in iterative solution of the eigenvalue problem: a serial algorithm will be used - - Planes per process (thick) : nr3 = 18 npp = 9 ncplane = 324 - Proc/ planes cols G planes cols G columns G - Pool (dense grid) (smooth grid) (wavefct grid) - 1 9 99 957 9 99 957 42 230 - 2 9 100 960 9 100 960 43 229 - 0 18 199 1917 18 199 1917 85 459 + G-vector sticks info + -------------------- + sticks: dense smooth PW G-vecs: dense smooth PW + Sum 199 199 85 1917 1917 459 bravais-lattice index = 2 - lattice parameter (a_0) = 6.1000 a.u. + lattice parameter (alat) = 6.1000 a.u. unit-cell volume = 56.7452 (a.u.)^3 number of atoms/cell = 2 number of atomic types = 1 + number of electrons = 8.00 + number of Kohn-Sham states= 4 kinetic-energy cutoff = 40.0000 Ry charge density cutoff = 160.0000 Ry - convergence threshold = 1.0E-11 - beta = 0.7000 - number of iterations used = 8 plain mixing - Exchange-correlation = SLA PZ NOGX NOGC (1100) + Exchange-correlation = SLA PZ NOGX NOGC ( 1 1 0 0 0 0) + celldm(1)= 6.100000 celldm(2)= 0.000000 celldm(3)= 0.000000 celldm(4)= 0.000000 celldm(5)= 0.000000 celldm(6)= 0.000000 - crystal axes: (cart. coord. in units of a_0) - a(1) = ( -0.500000 0.000000 0.500000 ) - a(2) = ( 0.000000 0.500000 0.500000 ) - a(3) = ( -0.500000 0.500000 0.000000 ) + crystal axes: (cart. coord. in units of alat) + a(1) = ( -0.500000 0.000000 0.500000 ) + a(2) = ( 0.000000 0.500000 0.500000 ) + a(3) = ( -0.500000 0.500000 0.000000 ) - reciprocal axes: (cart. coord. in units 2 pi/a_0) + reciprocal axes: (cart. coord. in units 2 pi/alat) b(1) = ( -1.000000 -1.000000 1.000000 ) b(2) = ( 1.000000 1.000000 1.000000 ) b(3) = ( -1.000000 1.000000 -1.000000 ) - PSEUDO 1 is C zval = 4.0 lmax= 0 lloc= 0 - (in numerical form: 269 grid points, xmin = 0.00, dx = 0.0000) + PseudoPot. # 1 for C read from file: + /home/giannozz/q-e-mio/pseudo/C.pz-vbc.UPF + MD5 check sum: b3df27665907f6396c9b9f9dac2a9cb5 + Pseudo is Norm-conserving, Zval = 4.0 + Generated by new atomic code, or converted to UPF format + Using radial grid of 269 points, 1 beta functions with: + l(1) = 0 atomic species valence mass pseudopotential C 4.00 12.00000 C ( 1.00) - 48 Sym.Ops. (with inversion) + 48 Sym. Ops., with inversion, found (24 have fractional translation) + Cartesian axes - site n. atom positions (a_0 units) - 1 C tau( 1) = ( 0.1250000 -0.1250000 -0.1250000 ) - 2 C tau( 2) = ( -0.1250000 0.1250000 0.1250000 ) + site n. atom positions (alat units) + 1 C tau( 1) = ( 0.2500000 -0.2500000 -0.2500000 ) + 2 C tau( 2) = ( 0.0000000 0.0000000 0.0000000 ) - number of k points= 64 - cart. coord. in units 2pi/a_0 + number of k points= 64 + cart. coord. in units 2pi/alat k( 1) = ( 0.0000000 0.0000000 0.0000000), wk = 0.0312500 k( 2) = ( 0.2500000 0.2500000 0.2500000), wk = 0.0312500 k( 3) = ( 0.5000000 0.5000000 0.5000000), wk = 0.0312500 @@ -136,320 +148,326 @@ k( 63) = ( -1.0000000 0.5000000 0.5000000), wk = 0.0312500 k( 64) = ( -0.7500000 0.7500000 0.7500000), wk = 0.0312500 - G cutoff = 150.8064 ( 1917 G-vectors) FFT grid: ( 18, 18, 18) + Dense grid: 1917 G-vectors FFT dimensions: ( 20, 20, 20) - nbndx = 16 nbnd = 4 natomwfc = 8 npwx = 133 - nelec = 8.00 nkb = 2 ngl = 52 + Estimated max dynamical RAM per process > 0.95 MB The potential is recalculated from file : - di.save/charge-density.xml - - Starting wfc are atomic + /home/giannozz/q-e-mio/tempdir/di.save/charge-density - total cpu time spent up to now is 0.25 secs + Starting wfcs are 8 randomized atomic wfcs Band Structure Calculation Davidson diagonalization with overlap - ethr = 1.25E-13, avg # of iterations = 11.2 - total cpu time spent up to now is 1.78 secs + ethr = 1.25E-13, avg # of iterations = 11.5 + + total cpu time spent up to now is 1.3 secs End of band structure calculation - k = 0.0000 0.0000 0.0000 band energies (ev): + k = 0.0000 0.0000 0.0000 ( 259 PWs) bands (ev): - -6.4387 19.3980 19.3980 19.3980 + -6.4386 19.3977 19.3977 19.3977 - k = 0.2500 0.2500 0.2500 band energies (ev): + k = 0.2500 0.2500 0.2500 ( 247 PWs) bands (ev): - -4.3800 11.1722 17.0933 17.0933 + -4.3800 11.1721 17.0930 17.0930 - k = 0.5000 0.5000 0.5000 band energies (ev): + k = 0.5000 0.5000 0.5000 ( 242 PWs) bands (ev): - 1.3328 2.0781 15.8056 15.8056 + 1.3328 2.0781 15.8054 15.8054 - k = 0.7500 0.7500 0.7500 band energies (ev): + k = 0.7500 0.7500 0.7500 ( 247 PWs) bands (ev): - -4.3800 11.1722 17.0933 17.0933 + -4.3800 11.1721 17.0930 17.0930 - k =-0.2500-0.2500 0.2500 band energies (ev): + k =-0.2500-0.2500 0.2500 ( 247 PWs) bands (ev): - -4.3800 11.1722 17.0933 17.0933 + -4.3800 11.1721 17.0930 17.0930 - k = 0.0000 0.0000 0.5000 band energies (ev): + k = 0.0000 0.0000 0.5000 ( 234 PWs) bands (ev): - -3.6839 13.8639 13.8639 14.5739 + -3.6839 13.8637 13.8637 14.5737 - k = 0.2500 0.2500 0.7500 band energies (ev): + k = 0.2500 0.2500 0.7500 ( 242 PWs) bands (ev): - 0.9925 6.0964 10.9236 12.9161 + 0.9924 6.0963 10.9234 12.9159 - k = 0.5000 0.5000 1.0000 band energies (ev): + k = 0.5000 0.5000 1.0000 ( 248 PWs) bands (ev): - -1.0019 8.9712 9.4601 15.4030 + -1.0019 8.9711 9.4600 15.4028 - k =-0.5000-0.5000 0.5000 band energies (ev): + k =-0.5000-0.5000 0.5000 ( 242 PWs) bands (ev): - 1.3328 2.0781 15.8056 15.8056 + 1.3328 2.0781 15.8054 15.8054 - k =-0.2500-0.2500 0.7500 band energies (ev): + k =-0.2500-0.2500 0.7500 ( 242 PWs) bands (ev): - 0.9925 6.0964 10.9236 12.9161 + 0.9924 6.0963 10.9234 12.9159 - k = 0.0000 0.0000 1.0000 band energies (ev): + k = 0.0000 0.0000 1.0000 ( 230 PWs) bands (ev): - 4.2492 4.2492 11.0421 11.0421 + 4.2491 4.2491 11.0419 11.0419 - k = 0.2500 0.2500 1.2500 band energies (ev): + k = 0.2500 0.2500 1.2500 ( 242 PWs) bands (ev): - 0.9925 6.0964 10.9236 12.9161 + 0.9924 6.0963 10.9234 12.9159 - k =-0.7500-0.7500 0.7500 band energies (ev): + k =-0.7500-0.7500 0.7500 ( 247 PWs) bands (ev): - -4.3800 11.1722 17.0933 17.0933 + -4.3800 11.1721 17.0930 17.0930 - k =-0.5000-0.5000 1.0000 band energies (ev): + k =-0.5000-0.5000 1.0000 ( 248 PWs) bands (ev): - -1.0019 8.9712 9.4601 15.4030 + -1.0019 8.9711 9.4600 15.4028 - k =-0.2500-0.2500 1.2500 band energies (ev): + k =-0.2500-0.2500 1.2500 ( 242 PWs) bands (ev): - 0.9925 6.0964 10.9236 12.9161 + 0.9924 6.0963 10.9234 12.9159 - k = 0.0000 0.0000 1.5000 band energies (ev): + k = 0.0000 0.0000 1.5000 ( 234 PWs) bands (ev): - -3.6839 13.8639 13.8639 14.5739 + -3.6839 13.8637 13.8637 14.5737 - k =-0.2500 0.2500-0.2500 band energies (ev): + k =-0.2500 0.2500-0.2500 ( 247 PWs) bands (ev): - -4.3800 11.1722 17.0933 17.0933 + -4.3800 11.1721 17.0930 17.0930 - k = 0.0000 0.5000 0.0000 band energies (ev): + k = 0.0000 0.5000 0.0000 ( 234 PWs) bands (ev): - -3.6839 13.8639 13.8639 14.5739 + -3.6839 13.8637 13.8637 14.5737 - k = 0.2500 0.7500 0.2500 band energies (ev): + k = 0.2500 0.7500 0.2500 ( 242 PWs) bands (ev): - 0.9925 6.0964 10.9236 12.9161 + 0.9924 6.0963 10.9234 12.9159 - k = 0.5000 1.0000 0.5000 band energies (ev): + k = 0.5000 1.0000 0.5000 ( 248 PWs) bands (ev): - -1.0019 8.9712 9.4601 15.4030 + -1.0019 8.9711 9.4600 15.4028 - k =-0.5000 0.0000 0.0000 band energies (ev): + k =-0.5000 0.0000 0.0000 ( 234 PWs) bands (ev): - -3.6839 13.8639 13.8639 14.5739 + -3.6839 13.8637 13.8637 14.5737 - k =-0.2500 0.2500 0.2500 band energies (ev): + k =-0.2500 0.2500 0.2500 ( 247 PWs) bands (ev): - -4.3800 11.1722 17.0933 17.0933 + -4.3800 11.1721 17.0930 17.0930 - k = 0.0000 0.5000 0.5000 band energies (ev): + k = 0.0000 0.5000 0.5000 ( 248 PWs) bands (ev): - -1.0019 8.9712 9.4601 15.4030 + -1.0019 8.9711 9.4600 15.4028 - k = 0.2500 0.7500 0.7500 band energies (ev): + k = 0.2500 0.7500 0.7500 ( 242 PWs) bands (ev): - 0.9925 6.0964 10.9236 12.9161 + 0.9924 6.0963 10.9234 12.9159 - k =-0.7500-0.2500 0.2500 band energies (ev): + k =-0.7500-0.2500 0.2500 ( 242 PWs) bands (ev): - 0.9925 6.0964 10.9236 12.9161 + 0.9924 6.0963 10.9234 12.9159 - k =-0.5000 0.0000 0.5000 band energies (ev): + k =-0.5000 0.0000 0.5000 ( 248 PWs) bands (ev): - -1.0019 8.9712 9.4601 15.4030 + -1.0019 8.9711 9.4600 15.4028 - k =-0.2500 0.2500 0.7500 band energies (ev): + k =-0.2500 0.2500 0.7500 ( 242 PWs) bands (ev): - 0.9925 6.0964 10.9236 12.9161 + 0.9924 6.0963 10.9234 12.9159 - k = 0.0000 0.5000 1.0000 band energies (ev): + k = 0.0000 0.5000 1.0000 ( 252 PWs) bands (ev): - 5.7054 5.7054 7.9453 7.9453 + 5.7054 5.7054 7.9452 7.9452 - k =-1.0000-0.5000 0.5000 band energies (ev): + k =-1.0000-0.5000 0.5000 ( 248 PWs) bands (ev): - -1.0019 8.9712 9.4601 15.4030 + -1.0019 8.9711 9.4600 15.4028 - k =-0.7500-0.2500 0.7500 band energies (ev): + k =-0.7500-0.2500 0.7500 ( 242 PWs) bands (ev): - 0.9925 6.0964 10.9236 12.9161 + 0.9924 6.0963 10.9234 12.9159 - k =-0.5000 0.0000 1.0000 band energies (ev): + k =-0.5000 0.0000 1.0000 ( 252 PWs) bands (ev): - 5.7054 5.7054 7.9453 7.9453 + 5.7054 5.7054 7.9452 7.9452 - k =-0.2500 0.2500 1.2500 band energies (ev): + k =-0.2500 0.2500 1.2500 ( 242 PWs) bands (ev): - 0.9925 6.0964 10.9236 12.9161 + 0.9924 6.0963 10.9234 12.9159 - k =-0.5000 0.5000-0.5000 band energies (ev): + k =-0.5000 0.5000-0.5000 ( 242 PWs) bands (ev): - 1.3328 2.0781 15.8056 15.8056 + 1.3328 2.0781 15.8054 15.8054 - k =-0.2500 0.7500-0.2500 band energies (ev): + k =-0.2500 0.7500-0.2500 ( 242 PWs) bands (ev): - 0.9925 6.0964 10.9236 12.9161 + 0.9924 6.0963 10.9234 12.9159 - k = 0.0000 1.0000 0.0000 band energies (ev): + k = 0.0000 1.0000 0.0000 ( 230 PWs) bands (ev): - 4.2492 4.2492 11.0421 11.0421 + 4.2491 4.2491 11.0419 11.0419 - k = 0.2500 1.2500 0.2500 band energies (ev): + k = 0.2500 1.2500 0.2500 ( 242 PWs) bands (ev): - 0.9925 6.0964 10.9236 12.9161 + 0.9924 6.0963 10.9234 12.9159 - k =-0.7500 0.2500-0.2500 band energies (ev): + k =-0.7500 0.2500-0.2500 ( 242 PWs) bands (ev): - 0.9925 6.0964 10.9236 12.9161 + 0.9924 6.0963 10.9234 12.9159 - k =-0.5000 0.5000 0.0000 band energies (ev): + k =-0.5000 0.5000 0.0000 ( 248 PWs) bands (ev): - -1.0019 8.9712 9.4601 15.4030 + -1.0019 8.9711 9.4600 15.4028 - k =-0.2500 0.7500 0.2500 band energies (ev): + k =-0.2500 0.7500 0.2500 ( 242 PWs) bands (ev): - 0.9925 6.0964 10.9236 12.9161 + 0.9924 6.0963 10.9234 12.9159 - k = 0.0000 1.0000 0.5000 band energies (ev): + k = 0.0000 1.0000 0.5000 ( 252 PWs) bands (ev): - 5.7054 5.7054 7.9453 7.9453 + 5.7054 5.7054 7.9452 7.9452 - k =-1.0000 0.0000 0.0000 band energies (ev): + k =-1.0000 0.0000 0.0000 ( 230 PWs) bands (ev): - 4.2492 4.2492 11.0421 11.0421 + 4.2491 4.2491 11.0419 11.0419 - k =-0.7500 0.2500 0.2500 band energies (ev): + k =-0.7500 0.2500 0.2500 ( 242 PWs) bands (ev): - 0.9925 6.0964 10.9236 12.9161 + 0.9924 6.0963 10.9234 12.9159 - k =-0.5000 0.5000 0.5000 band energies (ev): + k =-0.5000 0.5000 0.5000 ( 242 PWs) bands (ev): - 1.3328 2.0781 15.8056 15.8056 + 1.3328 2.0781 15.8054 15.8054 - k =-0.2500 0.7500 0.7500 band energies (ev): + k =-0.2500 0.7500 0.7500 ( 242 PWs) bands (ev): - 0.9925 6.0964 10.9236 12.9161 + 0.9924 6.0963 10.9234 12.9159 - k =-1.2500-0.2500 0.2500 band energies (ev): + k =-1.2500-0.2500 0.2500 ( 242 PWs) bands (ev): - 0.9925 6.0964 10.9236 12.9161 + 0.9924 6.0963 10.9234 12.9159 - k =-1.0000 0.0000 0.5000 band energies (ev): + k =-1.0000 0.0000 0.5000 ( 252 PWs) bands (ev): - 5.7054 5.7054 7.9453 7.9453 + 5.7054 5.7054 7.9452 7.9452 - k =-0.7500 0.2500 0.7500 band energies (ev): + k =-0.7500 0.2500 0.7500 ( 242 PWs) bands (ev): - 0.9925 6.0964 10.9236 12.9161 + 0.9924 6.0963 10.9234 12.9159 - k =-0.5000 0.5000 1.0000 band energies (ev): + k =-0.5000 0.5000 1.0000 ( 248 PWs) bands (ev): - -1.0019 8.9712 9.4601 15.4030 + -1.0019 8.9711 9.4600 15.4028 - k =-0.7500 0.7500-0.7500 band energies (ev): + k =-0.7500 0.7500-0.7500 ( 247 PWs) bands (ev): - -4.3800 11.1722 17.0933 17.0933 + -4.3800 11.1721 17.0930 17.0930 - k =-0.5000 1.0000-0.5000 band energies (ev): + k =-0.5000 1.0000-0.5000 ( 248 PWs) bands (ev): - -1.0019 8.9712 9.4601 15.4030 + -1.0019 8.9711 9.4600 15.4028 - k =-0.2500 1.2500-0.2500 band energies (ev): + k =-0.2500 1.2500-0.2500 ( 242 PWs) bands (ev): - 0.9925 6.0964 10.9236 12.9161 + 0.9924 6.0963 10.9234 12.9159 - k = 0.0000 1.5000 0.0000 band energies (ev): + k = 0.0000 1.5000 0.0000 ( 234 PWs) bands (ev): - -3.6839 13.8639 13.8639 14.5739 + -3.6839 13.8637 13.8637 14.5737 - k =-1.0000 0.5000-0.5000 band energies (ev): + k =-1.0000 0.5000-0.5000 ( 248 PWs) bands (ev): - -1.0019 8.9712 9.4601 15.4030 + -1.0019 8.9711 9.4600 15.4028 - k =-0.7500 0.7500-0.2500 band energies (ev): + k =-0.7500 0.7500-0.2500 ( 242 PWs) bands (ev): - 0.9925 6.0964 10.9236 12.9161 + 0.9924 6.0963 10.9234 12.9159 - k =-0.5000 1.0000 0.0000 band energies (ev): + k =-0.5000 1.0000 0.0000 ( 252 PWs) bands (ev): - 5.7054 5.7054 7.9453 7.9453 + 5.7054 5.7054 7.9452 7.9452 - k =-0.2500 1.2500 0.2500 band energies (ev): + k =-0.2500 1.2500 0.2500 ( 242 PWs) bands (ev): - 0.9925 6.0964 10.9236 12.9161 + 0.9924 6.0963 10.9234 12.9159 - k =-1.2500 0.2500-0.2500 band energies (ev): + k =-1.2500 0.2500-0.2500 ( 242 PWs) bands (ev): - 0.9925 6.0964 10.9236 12.9161 + 0.9924 6.0963 10.9234 12.9159 - k =-1.0000 0.5000 0.0000 band energies (ev): + k =-1.0000 0.5000 0.0000 ( 252 PWs) bands (ev): - 5.7054 5.7054 7.9453 7.9453 + 5.7054 5.7054 7.9452 7.9452 - k =-0.7500 0.7500 0.2500 band energies (ev): + k =-0.7500 0.7500 0.2500 ( 242 PWs) bands (ev): - 0.9925 6.0964 10.9236 12.9161 + 0.9924 6.0963 10.9234 12.9159 - k =-0.5000 1.0000 0.5000 band energies (ev): + k =-0.5000 1.0000 0.5000 ( 248 PWs) bands (ev): - -1.0019 8.9712 9.4601 15.4030 + -1.0019 8.9711 9.4600 15.4028 - k =-1.5000 0.0000 0.0000 band energies (ev): + k =-1.5000 0.0000 0.0000 ( 234 PWs) bands (ev): - -3.6839 13.8639 13.8639 14.5739 + -3.6839 13.8637 13.8637 14.5737 - k =-1.2500 0.2500 0.2500 band energies (ev): + k =-1.2500 0.2500 0.2500 ( 242 PWs) bands (ev): - 0.9925 6.0964 10.9236 12.9161 + 0.9924 6.0963 10.9234 12.9159 - k =-1.0000 0.5000 0.5000 band energies (ev): + k =-1.0000 0.5000 0.5000 ( 248 PWs) bands (ev): - -1.0019 8.9712 9.4601 15.4030 + -1.0019 8.9711 9.4600 15.4028 - k =-0.7500 0.7500 0.7500 band energies (ev): + k =-0.7500 0.7500 0.7500 ( 247 PWs) bands (ev): - -4.3800 11.1722 17.0933 17.0933 + -4.3800 11.1721 17.0930 17.0930 - Writing output data file di.save - - PWSCF : 1.92s CPU time + highest occupied level (ev): 19.3977 - init_run : 0.24s CPU - electrons : 1.53s CPU - - electrons : 1.53s CPU - c_bands : 1.53s CPU - sum_band : 0.06s CPU - v_of_rho : 0.00s CPU - - c_bands : 1.53s CPU - init_us_2 : 0.01s CPU ( 192 calls, 0.000 s avg) - cegterg : 1.53s CPU ( 64 calls, 0.024 s avg) - - sum_band : 0.06s CPU - - wfcrot : 0.22s CPU ( 64 calls, 0.003 s avg) - cegterg : 1.53s CPU ( 64 calls, 0.024 s avg) - h_psi : 1.33s CPU ( 846 calls, 0.002 s avg) - g_psi : 0.03s CPU ( 718 calls, 0.000 s avg) - cdiaghg : 0.14s CPU ( 782 calls, 0.000 s avg) - update : 0.02s CPU ( 718 calls, 0.000 s avg) - last : 0.01s CPU ( 256 calls, 0.000 s avg) - - h_psi : 1.33s CPU ( 846 calls, 0.002 s avg) - init : 0.01s CPU ( 846 calls, 0.000 s avg) - firstfft : 0.58s CPU ( 3547 calls, 0.000 s avg) - secondfft : 0.62s CPU ( 3547 calls, 0.000 s avg) - add_vuspsi : 0.00s CPU ( 846 calls, 0.000 s avg) + Writing output data file di.save/ + init_run : 0.02s CPU 0.02s WALL ( 1 calls) + electrons : 1.17s CPU 1.20s WALL ( 1 calls) + + Called by init_run: + wfcinit : 0.00s CPU 0.00s WALL ( 1 calls) + potinit : 0.00s CPU 0.00s WALL ( 1 calls) + hinit0 : 0.02s CPU 0.02s WALL ( 1 calls) + + Called by electrons: + c_bands : 1.17s CPU 1.20s WALL ( 1 calls) + v_of_rho : 0.00s CPU 0.00s WALL ( 1 calls) + + Called by c_bands: + init_us_2 : 0.00s CPU 0.00s WALL ( 64 calls) + cegterg : 1.02s CPU 1.03s WALL ( 64 calls) + + Called by sum_band: + + Called by *egterg: + h_psi : 0.94s CPU 0.97s WALL ( 866 calls) + g_psi : 0.04s CPU 0.03s WALL ( 738 calls) + cdiaghg : 0.06s CPU 0.07s WALL ( 802 calls) + + Called by h_psi: + h_psi:pot : 0.92s CPU 0.96s WALL ( 866 calls) + h_psi:calbec : 0.02s CPU 0.01s WALL ( 866 calls) + vloc_psi : 0.88s CPU 0.93s WALL ( 866 calls) + add_vuspsi : 0.01s CPU 0.01s WALL ( 866 calls) + General routines - ccalbec : 0.06s CPU ( 846 calls, 0.000 s avg) - cft3 : 0.01s CPU ( 3 calls, 0.003 s avg) - cft3s : 1.21s CPU ( 7350 calls, 0.000 s avg) - davcio : 0.01s CPU ( 256 calls, 0.000 s avg) + calbec : 0.02s CPU 0.01s WALL ( 866 calls) + fft : 0.00s CPU 0.00s WALL ( 3 calls) + fftw : 0.78s CPU 0.84s WALL ( 7172 calls) + davcio : 0.00s CPU 0.01s WALL ( 128 calls) Parallel routines - reduce : 0.20s CPU ( 3266 calls, 0.000 s avg) - fft_scatter : 0.40s CPU ( 7353 calls, 0.000 s avg) + + PWSCF : 1.31s CPU 1.36s WALL + + + This run was terminated on: 15:58:51 1Mar2019 + +=------------------------------------------------------------------------------= + JOB DONE. +=------------------------------------------------------------------------------= diff --git a/PP/examples/WAN90_example/reference/diamond.pw2wan.lib.in b/PP/examples/WAN90_example/reference/diamond.pw2wan.lib.in deleted file mode 100644 index 530ce4e4f8..0000000000 --- a/PP/examples/WAN90_example/reference/diamond.pw2wan.lib.in +++ /dev/null @@ -1,10 +0,0 @@ -&inputpp - outdir = '/home/arash/tmp/' - prefix = 'di' - seedname = 'diamond.lib' - spin_component = 'none' - write_mmn = .true. - write_amn = .true. - write_unk = .false. - wan_mode = 'library' -/ diff --git a/PP/examples/WAN90_example/reference/diamond.pw2wan.sa.in b/PP/examples/WAN90_example/reference/diamond.pw2wan.sa.in deleted file mode 100644 index 4c52f0ed24..0000000000 --- a/PP/examples/WAN90_example/reference/diamond.pw2wan.sa.in +++ /dev/null @@ -1,10 +0,0 @@ -&inputpp - outdir = '/home/arash/tmp/' - prefix = 'di' - seedname = 'diamond.sa' - spin_component = 'none' - write_mmn = .true. - write_amn = .true. - write_unk = .false. - wan_mode = 'standalone' -/ diff --git a/PP/examples/WAN90_example/reference/diamond.pw2wan.sa.out b/PP/examples/WAN90_example/reference/diamond.pw2wan.sa.out index cd319bba8c..0dfc7633eb 100644 --- a/PP/examples/WAN90_example/reference/diamond.pw2wan.sa.out +++ b/PP/examples/WAN90_example/reference/diamond.pw2wan.sa.out @@ -1,25 +1,36 @@ - Program POST-PROC v.3.1.1 starts ... - Today is 9Oct2006 at 15:37: 9 + Program PW2WANNIER v.6.4rc starts on 1Mar2019 at 15:58:51 - Parallel version (MPI) + This program is part of the open-source Quantum ESPRESSO suite + for quantum simulation of materials; please cite + "P. Giannozzi et al., J. Phys.:Condens. Matter 21 395502 (2009); + "P. Giannozzi et al., J. Phys.:Condens. Matter 29 465901 (2017); + URL http://www.quantum-espresso.org", + in publications or presentations arising from this work. More details at + http://www.quantum-espresso.org/quote - Number of processors in use: 2 - R & G space division: proc/pool = 2 + Parallel version (MPI), running on 1 processors + + MPI processes distributed on 1 nodes Reading nscf_save data - Planes per process (thick) : nr3 = 18 npp = 9 ncplane = 324 + Reading data from directory: + /home/giannozz/q-e-mio/tempdir/di.save/ + Message from routine pw_readschema_file: + failed retrieving input info from xml file, please check it + + IMPORTANT: XC functional enforced from input : + Exchange-correlation = PZ ( 1 1 0 0 0 0) + Any further DFT definition will be discarded + Please, verify this is what you really want + - Proc/ planes cols G planes cols G columns G - Pool (dense grid) (smooth grid) (wavefct grid) - 1 9 99 957 9 99 957 42 230 - 2 9 100 960 9 100 960 43 229 - 0 18 199 1917 18 199 1917 85 459 + G-vector sticks info + -------------------- + sticks: dense smooth PW G-vecs: dense smooth PW + Sum 199 199 85 1917 1917 459 - - nbndx = 4 nbnd = 4 natomwfc = 8 npwx = 133 - nelec = 8.00 nkb = 2 ngl = 52 Spin CASE ( default = unpolarized ) @@ -50,153 +61,40 @@ Opening pp-files - --------------- - *** Compute A - --------------- - - AMN - iknum = 64 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 - 21 - 22 - 23 - 24 - 25 - 26 - 27 - 28 - 29 - 30 - 31 - 32 - 33 - 34 - 35 - 36 - 37 - 38 - 39 - 40 - 41 - 42 - 43 - 44 - 45 - 46 - 47 - 48 - 49 - 50 - 51 - 52 - 53 - 54 - 55 - 56 - 57 - 58 - 59 - 60 - 61 - 62 - 63 - 64 + -------------------------- + *** Compute A projections + -------------------------- + AMN: iknum = 64 + 1 2 3 4 5 6 7 8 9 10 + 11 12 13 14 15 16 17 18 19 20 + 21 22 23 24 25 26 27 28 29 30 + 31 32 33 34 35 36 37 38 39 40 + 41 42 43 44 45 46 47 48 49 50 + 51 52 53 54 55 56 57 58 59 60 + 61 62 63 64 + AMN calculated --------------- *** Compute M --------------- + MMN: iknum = 64 + 1 2 3 4 5 6 7 8 9 10 + 11 12 13 14 15 16 17 18 19 20 + 21 22 23 24 25 26 27 28 29 30 + 31 32 33 34 35 36 37 38 39 40 + 41 42 43 44 45 46 47 48 49 50 + 51 52 53 54 55 56 57 58 59 60 + 61 62 63 64 -MMN - iknum = 64 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 - 21 - 22 - 23 - 24 - 25 - 26 - 27 - 28 - 29 - 30 - 31 - 32 - 33 - 34 - 35 - 36 - 37 - 38 - 39 - 40 - 41 - 42 - 43 - 44 - 45 - 46 - 47 - 48 - 49 - 50 - 51 - 52 - 53 - 54 - 55 - 56 - 57 - 58 - 59 - 60 - 61 - 62 - 63 - 64 - MMN calculated + ----------------------------------- + *** Orbital terms are not computed + ----------------------------------- + ---------------- *** Write bands ---------------- @@ -206,7 +104,25 @@ MMN *** Plot info is not printed ----------------------------- + ----------------------------- + *** Parity info is not printed + ----------------------------- + ------------ *** Stop pp ------------ + + init_pw2wan : 0.10s CPU 0.11s WALL ( 1 calls) + compute_amn : 2.55s CPU 2.55s WALL ( 1 calls) + compute_mmn : 0.25s CPU 0.27s WALL ( 1 calls) + + PW2WANNIER : 2.91s CPU 2.94s WALL + + + This run was terminated on: 15:58:54 1Mar2019 + +=------------------------------------------------------------------------------= + JOB DONE. +=------------------------------------------------------------------------------= + diff --git a/PP/examples/WAN90_example/reference/diamond.sa.eig b/PP/examples/WAN90_example/reference/diamond.sa.eig index 9585665f04..6e6f46942d 100644 --- a/PP/examples/WAN90_example/reference/diamond.sa.eig +++ b/PP/examples/WAN90_example/reference/diamond.sa.eig @@ -1,256 +1,256 @@ - 1 1 -6.438652252327 - 2 1 19.397969790637 - 3 1 19.397969790637 - 4 1 19.397969790637 - 1 2 -4.380016396969 - 2 2 11.172207556971 - 3 2 17.093266450345 - 4 2 17.093266450345 - 1 3 1.332848442002 - 2 3 2.078125696460 - 3 3 15.805580035570 - 4 3 15.805580035570 - 1 4 -4.380016396968 - 2 4 11.172207556971 - 3 4 17.093266450345 - 4 4 17.093266450345 - 1 5 -4.380016396969 - 2 5 11.172207556971 - 3 5 17.093266450345 - 4 5 17.093266450345 - 1 6 -3.683932502208 - 2 6 13.863868679720 - 3 6 13.863868679720 - 4 6 14.573879775104 - 1 7 0.992452023097 - 2 7 6.096400025548 - 3 7 10.923568079329 - 4 7 12.916098085933 - 1 8 -1.001903579304 - 2 8 8.971237876729 - 3 8 9.460135452653 - 4 8 15.403020804067 - 1 9 1.332848442001 - 2 9 2.078125696460 - 3 9 15.805580035570 - 4 9 15.805580035570 - 1 10 0.992452023097 - 2 10 6.096400025547 - 3 10 10.923568079329 - 4 10 12.916098085933 - 1 11 4.249159419138 - 2 11 4.249159419138 - 3 11 11.042056535307 - 4 11 11.042056535307 - 1 12 0.992452023097 - 2 12 6.096400025547 - 3 12 10.923568079329 - 4 12 12.916098085933 - 1 13 -4.380016396968 - 2 13 11.172207556971 - 3 13 17.093266450345 - 4 13 17.093266450345 - 1 14 -1.001903579304 - 2 14 8.971237876729 - 3 14 9.460135452653 - 4 14 15.403020804066 - 1 15 0.992452023097 - 2 15 6.096400025547 - 3 15 10.923568079329 - 4 15 12.916098085933 - 1 16 -3.683932502208 - 2 16 13.863868679720 - 3 16 13.863868679720 - 4 16 14.573879775104 - 1 17 -4.380016396968 - 2 17 11.172207556971 - 3 17 17.093266450345 - 4 17 17.093266450345 - 1 18 -3.683932502208 - 2 18 13.863868679720 - 3 18 13.863868679720 - 4 18 14.573879775104 - 1 19 0.992452023097 - 2 19 6.096400025547 - 3 19 10.923568079329 - 4 19 12.916098085933 - 1 20 -1.001903579304 - 2 20 8.971237876729 - 3 20 9.460135452653 - 4 20 15.403020804067 - 1 21 -3.683932502208 - 2 21 13.863868679720 - 3 21 13.863868679720 - 4 21 14.573879775104 - 1 22 -4.380016396968 - 2 22 11.172207556971 - 3 22 17.093266450345 - 4 22 17.093266450345 - 1 23 -1.001903579304 - 2 23 8.971237876729 - 3 23 9.460135452653 - 4 23 15.403020804066 - 1 24 0.992452023097 - 2 24 6.096400025547 - 3 24 10.923568079329 - 4 24 12.916098085933 - 1 25 0.992452023097 - 2 25 6.096400025547 - 3 25 10.923568079329 - 4 25 12.916098085933 - 1 26 -1.001903579304 - 2 26 8.971237876729 - 3 26 9.460135452653 - 4 26 15.403020804066 - 1 27 0.992452023097 - 2 27 6.096400025547 - 3 27 10.923568079329 - 4 27 12.916098085933 - 1 28 5.705448619229 - 2 28 5.705448619229 - 3 28 7.945291355847 - 4 28 7.945291355847 - 1 29 -1.001903579304 - 2 29 8.971237876729 - 3 29 9.460135452653 - 4 29 15.403020804066 - 1 30 0.992452023097 - 2 30 6.096400025548 - 3 30 10.923568079329 - 4 30 12.916098085933 - 1 31 5.705448619229 - 2 31 5.705448619229 - 3 31 7.945291355847 - 4 31 7.945291355847 - 1 32 0.992452023097 - 2 32 6.096400025547 - 3 32 10.923568079329 - 4 32 12.916098085933 - 1 33 1.332848442002 - 2 33 2.078125696459 - 3 33 15.805580035570 - 4 33 15.805580035570 - 1 34 0.992452023097 - 2 34 6.096400025547 - 3 34 10.923568079329 - 4 34 12.916098085933 - 1 35 4.249159419138 - 2 35 4.249159419138 - 3 35 11.042056535307 - 4 35 11.042056535307 - 1 36 0.992452023097 - 2 36 6.096400025547 - 3 36 10.923568079329 - 4 36 12.916098085933 - 1 37 0.992452023097 - 2 37 6.096400025547 - 3 37 10.923568079329 - 4 37 12.916098085933 - 1 38 -1.001903579304 - 2 38 8.971237876729 - 3 38 9.460135452653 - 4 38 15.403020804067 - 1 39 0.992452023097 - 2 39 6.096400025547 - 3 39 10.923568079329 - 4 39 12.916098085933 - 1 40 5.705448619229 - 2 40 5.705448619229 - 3 40 7.945291355847 - 4 40 7.945291355847 - 1 41 4.249159419138 - 2 41 4.249159419138 - 3 41 11.042056535307 - 4 41 11.042056535307 - 1 42 0.992452023097 - 2 42 6.096400025547 - 3 42 10.923568079329 - 4 42 12.916098085933 - 1 43 1.332848442001 - 2 43 2.078125696460 - 3 43 15.805580035570 - 4 43 15.805580035570 - 1 44 0.992452023097 - 2 44 6.096400025547 - 3 44 10.923568079329 - 4 44 12.916098085933 - 1 45 0.992452023097 - 2 45 6.096400025547 - 3 45 10.923568079329 - 4 45 12.916098085933 - 1 46 5.705448619229 - 2 46 5.705448619229 - 3 46 7.945291355847 - 4 46 7.945291355847 - 1 47 0.992452023097 - 2 47 6.096400025548 - 3 47 10.923568079329 - 4 47 12.916098085933 - 1 48 -1.001903579304 - 2 48 8.971237876729 - 3 48 9.460135452653 - 4 48 15.403020804066 - 1 49 -4.380016396968 - 2 49 11.172207556971 - 3 49 17.093266450345 - 4 49 17.093266450345 - 1 50 -1.001903579304 - 2 50 8.971237876729 - 3 50 9.460135452653 - 4 50 15.403020804067 - 1 51 0.992452023097 - 2 51 6.096400025548 - 3 51 10.923568079329 - 4 51 12.916098085933 - 1 52 -3.683932502208 - 2 52 13.863868679720 - 3 52 13.863868679720 - 4 52 14.573879775104 - 1 53 -1.001903579304 - 2 53 8.971237876729 - 3 53 9.460135452653 - 4 53 15.403020804066 - 1 54 0.992452023097 - 2 54 6.096400025548 - 3 54 10.923568079329 - 4 54 12.916098085933 - 1 55 5.705448619229 - 2 55 5.705448619229 - 3 55 7.945291355847 - 4 55 7.945291355847 - 1 56 0.992452023097 - 2 56 6.096400025547 - 3 56 10.923568079329 - 4 56 12.916098085933 - 1 57 0.992452023097 - 2 57 6.096400025547 - 3 57 10.923568079329 - 4 57 12.916098085933 - 1 58 5.705448619229 - 2 58 5.705448619229 - 3 58 7.945291355847 - 4 58 7.945291355847 - 1 59 0.992452023097 - 2 59 6.096400025547 - 3 59 10.923568079329 - 4 59 12.916098085933 - 1 60 -1.001903579304 - 2 60 8.971237876729 - 3 60 9.460135452653 - 4 60 15.403020804066 - 1 61 -3.683932502208 - 2 61 13.863868679720 - 3 61 13.863868679720 - 4 61 14.573879775104 - 1 62 0.992452023097 - 2 62 6.096400025547 - 3 62 10.923568079329 - 4 62 12.916098085933 - 1 63 -1.001903579304 - 2 63 8.971237876729 - 3 63 9.460135452653 - 4 63 15.403020804066 - 1 64 -4.380016396968 - 2 64 11.172207556971 - 3 64 17.093266450345 - 4 64 17.093266450345 + 1 1 -6.438583264411 + 2 1 19.397710424653 + 3 1 19.397710424653 + 4 1 19.397710424653 + 1 2 -4.379970435035 + 2 2 11.172069433429 + 3 2 17.093036981117 + 4 2 17.093036981117 + 1 3 1.332842640814 + 2 3 2.078083226485 + 3 3 15.805365703112 + 4 3 15.805365703112 + 1 4 -4.379970435035 + 2 4 11.172069433429 + 3 4 17.093036981117 + 4 4 17.093036981117 + 1 5 -4.379970435035 + 2 5 11.172069433429 + 3 5 17.093036981117 + 4 5 17.093036981117 + 1 6 -3.683892994972 + 2 6 13.863681772822 + 3 6 13.863681772822 + 4 6 14.573708048973 + 1 7 0.992440267735 + 2 7 6.096322710463 + 3 7 10.923430710291 + 4 7 12.915919837506 + 1 8 -1.001894845988 + 2 8 8.971130516365 + 3 8 9.460011916381 + 4 8 15.402810608905 + 1 9 1.332842640814 + 2 9 2.078083226485 + 3 9 15.805365703112 + 4 9 15.805365703112 + 1 10 0.992440267735 + 2 10 6.096322710463 + 3 10 10.923430710291 + 4 10 12.915919837507 + 1 11 4.249112296946 + 2 11 4.249112296946 + 3 11 11.041900654573 + 4 11 11.041900654573 + 1 12 0.992440267735 + 2 12 6.096322710463 + 3 12 10.923430710291 + 4 12 12.915919837506 + 1 13 -4.379970435035 + 2 13 11.172069433429 + 3 13 17.093036981117 + 4 13 17.093036981117 + 1 14 -1.001894845988 + 2 14 8.971130516365 + 3 14 9.460011916381 + 4 14 15.402810608906 + 1 15 0.992440267735 + 2 15 6.096322710463 + 3 15 10.923430710291 + 4 15 12.915919837506 + 1 16 -3.683892994972 + 2 16 13.863681772822 + 3 16 13.863681772822 + 4 16 14.573708048973 + 1 17 -4.379970435035 + 2 17 11.172069433429 + 3 17 17.093036981117 + 4 17 17.093036981117 + 1 18 -3.683892994972 + 2 18 13.863681772822 + 3 18 13.863681772822 + 4 18 14.573708048973 + 1 19 0.992440267735 + 2 19 6.096322710463 + 3 19 10.923430710291 + 4 19 12.915919837506 + 1 20 -1.001894845988 + 2 20 8.971130516365 + 3 20 9.460011916381 + 4 20 15.402810608905 + 1 21 -3.683892994972 + 2 21 13.863681772822 + 3 21 13.863681772822 + 4 21 14.573708048972 + 1 22 -4.379970435035 + 2 22 11.172069433429 + 3 22 17.093036981117 + 4 22 17.093036981117 + 1 23 -1.001894845988 + 2 23 8.971130516365 + 3 23 9.460011916381 + 4 23 15.402810608905 + 1 24 0.992440267735 + 2 24 6.096322710463 + 3 24 10.923430710291 + 4 24 12.915919837506 + 1 25 0.992440267735 + 2 25 6.096322710463 + 3 25 10.923430710291 + 4 25 12.915919837506 + 1 26 -1.001894845988 + 2 26 8.971130516365 + 3 26 9.460011916381 + 4 26 15.402810608905 + 1 27 0.992440267735 + 2 27 6.096322710463 + 3 27 10.923430710291 + 4 27 12.915919837506 + 1 28 5.705390011134 + 2 28 5.705390011134 + 3 28 7.945174132517 + 4 28 7.945174132517 + 1 29 -1.001894845988 + 2 29 8.971130516365 + 3 29 9.460011916381 + 4 29 15.402810608905 + 1 30 0.992440267735 + 2 30 6.096322710463 + 3 30 10.923430710291 + 4 30 12.915919837506 + 1 31 5.705390011134 + 2 31 5.705390011134 + 3 31 7.945174132517 + 4 31 7.945174132517 + 1 32 0.992440267735 + 2 32 6.096322710463 + 3 32 10.923430710291 + 4 32 12.915919837506 + 1 33 1.332842640814 + 2 33 2.078083226485 + 3 33 15.805365703112 + 4 33 15.805365703112 + 1 34 0.992440267735 + 2 34 6.096322710463 + 3 34 10.923430710291 + 4 34 12.915919837506 + 1 35 4.249112296946 + 2 35 4.249112296946 + 3 35 11.041900654573 + 4 35 11.041900654573 + 1 36 0.992440267735 + 2 36 6.096322710463 + 3 36 10.923430710291 + 4 36 12.915919837506 + 1 37 0.992440267735 + 2 37 6.096322710463 + 3 37 10.923430710291 + 4 37 12.915919837506 + 1 38 -1.001894845988 + 2 38 8.971130516365 + 3 38 9.460011916381 + 4 38 15.402810608906 + 1 39 0.992440267735 + 2 39 6.096322710463 + 3 39 10.923430710291 + 4 39 12.915919837506 + 1 40 5.705390011134 + 2 40 5.705390011134 + 3 40 7.945174132517 + 4 40 7.945174132517 + 1 41 4.249112296946 + 2 41 4.249112296946 + 3 41 11.041900654573 + 4 41 11.041900654573 + 1 42 0.992440267735 + 2 42 6.096322710463 + 3 42 10.923430710291 + 4 42 12.915919837506 + 1 43 1.332842640814 + 2 43 2.078083226485 + 3 43 15.805365703113 + 4 43 15.805365703113 + 1 44 0.992440267735 + 2 44 6.096322710463 + 3 44 10.923430710291 + 4 44 12.915919837506 + 1 45 0.992440267735 + 2 45 6.096322710463 + 3 45 10.923430710291 + 4 45 12.915919837506 + 1 46 5.705390011134 + 2 46 5.705390011134 + 3 46 7.945174132517 + 4 46 7.945174132517 + 1 47 0.992440267735 + 2 47 6.096322710463 + 3 47 10.923430710291 + 4 47 12.915919837506 + 1 48 -1.001894845989 + 2 48 8.971130516365 + 3 48 9.460011916381 + 4 48 15.402810608905 + 1 49 -4.379970435035 + 2 49 11.172069433429 + 3 49 17.093036981117 + 4 49 17.093036981118 + 1 50 -1.001894845988 + 2 50 8.971130516365 + 3 50 9.460011916381 + 4 50 15.402810608905 + 1 51 0.992440267735 + 2 51 6.096322710463 + 3 51 10.923430710291 + 4 51 12.915919837506 + 1 52 -3.683892994972 + 2 52 13.863681772822 + 3 52 13.863681772822 + 4 52 14.573708048973 + 1 53 -1.001894845988 + 2 53 8.971130516365 + 3 53 9.460011916381 + 4 53 15.402810608905 + 1 54 0.992440267735 + 2 54 6.096322710463 + 3 54 10.923430710291 + 4 54 12.915919837506 + 1 55 5.705390011134 + 2 55 5.705390011134 + 3 55 7.945174132517 + 4 55 7.945174132517 + 1 56 0.992440267735 + 2 56 6.096322710463 + 3 56 10.923430710291 + 4 56 12.915919837506 + 1 57 0.992440267735 + 2 57 6.096322710463 + 3 57 10.923430710291 + 4 57 12.915919837506 + 1 58 5.705390011134 + 2 58 5.705390011134 + 3 58 7.945174132517 + 4 58 7.945174132517 + 1 59 0.992440267735 + 2 59 6.096322710463 + 3 59 10.923430710291 + 4 59 12.915919837506 + 1 60 -1.001894845988 + 2 60 8.971130516365 + 3 60 9.460011916381 + 4 60 15.402810608906 + 1 61 -3.683892994972 + 2 61 13.863681772822 + 3 61 13.863681772822 + 4 61 14.573708048973 + 1 62 0.992440267735 + 2 62 6.096322710463 + 3 62 10.923430710291 + 4 62 12.915919837506 + 1 63 -1.001894845988 + 2 63 8.971130516365 + 3 63 9.460011916381 + 4 63 15.402810608905 + 1 64 -4.379970435035 + 2 64 11.172069433429 + 3 64 17.093036981117 + 4 64 17.093036981117 diff --git a/PP/examples/WAN90_example/reference/diamond.sa.nnkp b/PP/examples/WAN90_example/reference/diamond.sa.nnkp index f71910036c..3015474a46 100644 --- a/PP/examples/WAN90_example/reference/diamond.sa.nnkp +++ b/PP/examples/WAN90_example/reference/diamond.sa.nnkp @@ -1,4 +1,4 @@ -File written on 9Oct2006 at 15:37:08 +File written on 1Mar2019 at 15:58:51 calc_only_A : F @@ -85,13 +85,13 @@ end kpoints begin projections 4 0.00000 0.00000 0.00000 0 1 1 - 0.000 0.000 1.000 1.000 0.000 0.000 1.00 + 0.0000000 0.0000000 1.0000000 1.0000000 0.0000000 0.0000000 1.00 0.00000 0.00000 0.50000 0 1 1 - 0.000 0.000 1.000 1.000 0.000 0.000 1.00 + 0.0000000 0.0000000 1.0000000 1.0000000 0.0000000 0.0000000 1.00 0.00000 0.50000 0.00000 0 1 1 - 0.000 0.000 1.000 1.000 0.000 0.000 1.00 + 0.0000000 0.0000000 1.0000000 1.0000000 0.0000000 0.0000000 1.00 0.50000 0.00000 0.00000 0 1 1 - 0.000 0.000 1.000 1.000 0.000 0.000 1.00 + 0.0000000 0.0000000 1.0000000 1.0000000 0.0000000 0.0000000 1.00 end projections begin nnkpts diff --git a/PP/examples/WAN90_example/reference/diamond.sa.win b/PP/examples/WAN90_example/reference/diamond.sa.win index ff52efe688..418f791ba2 100644 --- a/PP/examples/WAN90_example/reference/diamond.sa.win +++ b/PP/examples/WAN90_example/reference/diamond.sa.win @@ -2,8 +2,8 @@ num_wann = 4 num_iter = 20 begin atoms_frac -C -0.12500 -0.1250 -0.125000 -C 0.12500 0.1250 0.125000 +C -0.2500 -0.250 -0.25000 +C 0.00000 0.0000 0.000000 end atoms_frac begin projections diff --git a/PP/examples/WAN90_example/reference/diamond.sa.wout b/PP/examples/WAN90_example/reference/diamond.sa.wout index 1e3817728e..3189739b6e 100644 --- a/PP/examples/WAN90_example/reference/diamond.sa.wout +++ b/PP/examples/WAN90_example/reference/diamond.sa.wout @@ -9,24 +9,33 @@ | Generalized Wannier Functions code | | http://www.wannier.org | | | - | Authors: | - | Arash A. Mostofi (MIT) | - | Jonathan R. Yates (LBNL and UC Berkeley) | | | + | Wannier90 Developer Group: | + | Giovanni Pizzi (EPFL) | + | Valerio Vitale (Cambridge) | + | David Vanderbilt (Rutgers University) | + | Nicola Marzari (EPFL) | + | Ivo Souza (Universidad del Pais Vasco) | + | Arash A. Mostofi (Imperial College London) | + | Jonathan R. Yates (University of Oxford) | | | - | Please cite | + | For the full list of Wannier90 3.x authors, | + | please check the code documentation and the | + | README on the GitHub page of the code | | | - | [ref] A. A. Mostofi, J. R. Yates, | - | N. Marzari, I. Souza and D. Vanderbilt, | - | http://www.wannier.org/ | | | - | in any publications arising from the use of | - | this code. | + | Please cite | | | + | [ref] "An updated version of Wannier90: | + | A Tool for Obtaining Maximally Localised | + | Wannier Functions", A. A. Mostofi, | + | J. R. Yates, G. Pizzi, Y. S. Lee, | + | I. Souza, D. Vanderbilt and N. Marzari, | + | Comput. Phys. Commun. 185, 2309 (2014) | + | http://dx.doi.org/10.1016/j.cpc.2014.05.003| | | - | Wannier90 is based on routines written by | - | Nicola Marzari, Ivo Souza and David Vanderbilt. | - | For the method please cite | + | in any publications arising from the use of | + | this code. For the method please cite | | | | [ref] "Maximally Localized Generalised Wannier | | Functions for Composite Energy Bands" | @@ -39,10 +48,11 @@ | Phys. Rev. B 65 035109 (2001) | | | | | - | Copyright (c) 1997-2006 J. Yates, A. Mostofi, | - | N. Marzari, I. Souza, D. Vanderbilt | + | Copyright (c) 1996-2019 | + | The Wannier90 Developer Group and | + | individual contributors | | | - | Release: 1.0.1 17th May 2006 | + | Release: 3.0.0 27th February 2019 | | | | This program is free software; you can | | redistribute it and/or modify it under the terms | @@ -62,9 +72,18 @@ | 675 Mass Ave, Cambridge, MA 02139, USA. | | | +---------------------------------------------------+ - | Execution started on 9Oct2006 at 15:37:14 | + | Execution started on 1Mar2019 at 15:58:54 | +---------------------------------------------------+ + ****************************************************************************** + * -> Using CODATA 2006 constant values * + * (http://physics.nist.gov/cuu/Constants/index.html) * + * -> Using Bohr value from CODATA * + ****************************************************************************** + + + Running in serial (with serial executable) + ------ SYSTEM ------ @@ -84,10 +103,9 @@ *----------------------------------------------------------------------------* | Site Fractional Coordinate Cartesian Coordinate (Ang) | +----------------------------------------------------------------------------+ - | C 1 -0.12500 -0.12500 -0.12500 | 0.40350 -0.40350 -0.40350 | - | C 2 0.12500 0.12500 0.12500 | -0.40350 0.40350 0.40350 | + | C 1 -0.25000 -0.25000 -0.25000 | 0.80700 -0.80700 -0.80700 | + | C 2 0.00000 0.00000 0.00000 | 0.00000 0.00000 0.00000 | *----------------------------------------------------------------------------* - ------------ K-POINT GRID ------------ @@ -97,21 +115,30 @@ *---------------------------------- MAIN ------------------------------------* | Number of Wannier Functions : 4 | + | Number of Objective Wannier Functions : 4 | | Number of input Bloch states : 4 | | Output verbosity (1=low, 5=high) : 1 | + | Timing Level (1=low, 5=high) : 1 | + | Optimisation (0=memory, 3=speed) : 3 | | Length Unit : Ang | | Post-processing setup (write *.nnkp) : F | + | Using Gamma-only branch of algorithms : F | *----------------------------------------------------------------------------* *------------------------------- WANNIERISE ---------------------------------* | Total number of iterations : 20 | | Number of CG steps before reset : 5 | | Trial step length for line search : 2.000 | + | Convergence tolerence : 0.100E-09 | + | Convergence window : -1 | | Iterations between writing output : 1 | | Iterations between backing up to disk : 100 | | Write r^2_nm to file : F | + | Write xyz WF centres to file : F | + | Write on-site energies <0n|H|0n> to file : F | | Use guiding centre to control phases : F | + | Use phases for initial projections : F | *----------------------------------------------------------------------------* - Time to read parameters 0.004 (sec) + Time to read parameters 0.008 (sec) *---------------------------------- K-MESH ----------------------------------* +----------------------------------------------------------------------------+ @@ -131,6 +158,30 @@ | 10 2.528546 32 | | 11 2.752732 12 | | 12 2.878876 48 | + | 13 2.919713 30 | + | 14 3.077648 24 | + | 15 3.190973 24 | + | 16 3.227864 24 | + | 17 3.371394 8 | + | 18 3.475154 48 | + | 19 3.509058 24 | + | 20 3.641522 48 | + | 21 3.737790 72 | + | 22 3.892951 6 | + | 23 3.983147 24 | + | 24 4.012762 48 | + | 25 4.129098 36 | + | 26 4.214243 56 | + | 27 4.242245 24 | + | 28 4.352451 24 | + | 29 4.433309 72 | + | 30 4.459935 48 | + | 31 4.564889 24 | + | 32 4.642048 48 | + | 33 4.767871 24 | + | 34 4.841796 72 | + | 35 4.866188 30 | + | 36 4.962558 72 | +----------------------------------------------------------------------------+ | The b-vectors are chosen automatically | | The following shells are used: 1 | @@ -164,13 +215,21 @@ | 4 -0.486619 0.486619 0.486619 | +----------------------------------------------------------------------------+ + Time to get kmesh 0.108 (sec) + *============================================================================* + | MEMORY ESTIMATE | + | Maximum RAM allocated during each phase of the calculation | + *============================================================================* + | Wannierise: 0.42 Mb | + | plot_wannier: 0.42 Mb | + *----------------------------------------------------------------------------* + Starting a new Wannier90 calculation ... - Time to get kmesh 0.048 (sec) - Reading overlaps from diamond.sa.mmn : Created on 9Oct2006 at 15:37:12 + Reading overlaps from diamond.sa.mmn : Created on 1Mar2019 at 15:58:54 - Reading projections from diamond.sa.amn : Created on 9Oct2006 at 15:37:10 + Reading projections from diamond.sa.amn : Created on 1Mar2019 at 15:58:51 Time to read overlaps 0.012 (sec) @@ -184,261 +243,264 @@ ------------------------------------------------------------------------------ Initial State - WF centre and spread 1 ( 0.000000, 0.000000, 0.000000 ) 0.58061390 - WF centre and spread 2 ( -0.806995, 0.806995, 0.000000 ) 0.58061390 - WF centre and spread 3 ( 0.000000, 0.806995, 0.806995 ) 0.58061390 - WF centre and spread 4 ( -0.806995, 0.000000, 0.806995 ) 0.58061390 - Sum of centres and spreads ( -1.613990, 1.613990, 1.613990 ) 2.32245560 - - 0 0.232E+01 0.0000000000 2.3224556019 0.07 <-- CONV - O_D= 0.0000000 O_OD= 0.3678346 O_TOT= 2.3224556 <-- SPRD + WF centre and spread 1 ( -0.000151, 0.000151, 0.000151 ) 4.43516037 + WF centre and spread 2 ( -0.549699, 0.549699, -0.292073 ) 1.31831922 + WF centre and spread 3 ( 0.292073, 0.549699, 0.549699 ) 1.31831922 + WF centre and spread 4 ( -0.549699, -0.292073, 0.549699 ) 1.31831920 + Sum of centres and spreads ( -0.807475, 0.807475, 0.807475 ) 8.39011801 + + 0 0.839E+01 0.0000000000 8.3901180085 0.00 <-- CONV + O_D= 3.6651277 O_OD= 2.7703720 O_TOT= 8.3901180 <-- SPRD ------------------------------------------------------------------------------ Cycle: 1 - WF centre and spread 1 ( 0.000000, 0.000000, 0.000000 ) 0.58023486 - WF centre and spread 2 ( -0.806995, 0.806995, 0.000000 ) 0.58023486 - WF centre and spread 3 ( 0.000000, 0.806995, 0.806995 ) 0.58023486 - WF centre and spread 4 ( -0.806995, 0.000000, 0.806995 ) 0.58023486 - Sum of centres and spreads ( -1.613990, 1.613990, 1.613990 ) 2.32093943 - - 1 -0.152E-02 0.0234565935 2.3209394335 0.07 <-- CONV - O_D= 0.0000000 O_OD= 0.3663184 O_TOT= 2.3209394 <-- SPRD - Delta: O_D= -0.2661842E-23 O_OD= -0.1516168E-02 O_TOT= -0.1516168E-02 <-- DLTA + WF centre and spread 1 ( 0.204804, -0.204804, -0.204804 ) 3.53879720 + WF centre and spread 2 ( -0.505450, 0.505450, -0.286677 ) 1.72955947 + WF centre and spread 3 ( 0.286677, 0.505450, 0.505450 ) 1.72955951 + WF centre and spread 4 ( -0.505450, -0.286677, 0.505450 ) 1.72955950 + Sum of centres and spreads ( -0.519420, 0.519420, 0.519420 ) 8.72747568 + + 1 0.337E+00 1.6286961478 8.7274756849 0.00 <-- CONV + O_D= 3.0622729 O_OD= 3.7105845 O_TOT= 8.7274757 <-- SPRD + Delta: O_D= -0.6028547E+00 O_OD= 0.9402124E+00 O_TOT= 0.3373577E+00 <-- DLTA ------------------------------------------------------------------------------ Cycle: 2 - WF centre and spread 1 ( 0.000000, 0.000000, 0.000000 ) 0.58022673 - WF centre and spread 2 ( -0.806995, 0.806995, 0.000000 ) 0.58022673 - WF centre and spread 3 ( 0.000000, 0.806995, 0.806995 ) 0.58022673 - WF centre and spread 4 ( -0.806995, 0.000000, 0.806995 ) 0.58022673 - Sum of centres and spreads ( -1.613990, 1.613990, 1.613990 ) 2.32090693 - - 2 -0.325E-04 0.0039154226 2.3209069320 0.08 <-- CONV - O_D= 0.0000000 O_OD= 0.3662859 O_TOT= 2.3209069 <-- SPRD - Delta: O_D= -0.2285730E-23 O_OD= -0.3250145E-04 O_TOT= -0.3250145E-04 <-- DLTA + WF centre and spread 1 ( 0.125259, -0.125259, -0.125259 ) 2.97567424 + WF centre and spread 2 ( -0.511659, 0.511659, -0.286835 ) 1.69367428 + WF centre and spread 3 ( 0.286835, 0.511659, 0.511659 ) 1.69367432 + WF centre and spread 4 ( -0.511659, -0.286835, 0.511659 ) 1.69367432 + Sum of centres and spreads ( -0.611223, 0.611223, 0.611223 ) 8.05669715 + + 2 -0.671E+00 3.5878922625 8.0566971521 0.01 <-- CONV + O_D= 2.4113429 O_OD= 3.6907359 O_TOT= 8.0566972 <-- SPRD + Delta: O_D= -0.6509300E+00 O_OD= -0.1984857E-01 O_TOT= -0.6707785E+00 <-- DLTA ------------------------------------------------------------------------------ Cycle: 3 - WF centre and spread 1 ( 0.000000, 0.000000, 0.000000 ) 0.58022658 - WF centre and spread 2 ( -0.806995, 0.806995, 0.000000 ) 0.58022658 - WF centre and spread 3 ( 0.000000, 0.806995, 0.806995 ) 0.58022658 - WF centre and spread 4 ( -0.806995, 0.000000, 0.806995 ) 0.58022658 - Sum of centres and spreads ( -1.613990, 1.613990, 1.613990 ) 2.32090632 - - 3 -0.614E-06 0.0005711221 2.3209063179 0.09 <-- CONV - O_D= 0.0000000 O_OD= 0.3662853 O_TOT= 2.3209063 <-- SPRD - Delta: O_D= -0.1071897E-23 O_OD= -0.6141199E-06 O_TOT= -0.6141199E-06 <-- DLTA + WF centre and spread 1 ( 0.058760, -0.058760, -0.058760 ) 1.86375989 + WF centre and spread 2 ( -0.551302, 0.551302, -0.299938 ) 1.64801302 + WF centre and spread 3 ( 0.299938, 0.551303, 0.551302 ) 1.64801304 + WF centre and spread 4 ( -0.551302, -0.299938, 0.551302 ) 1.64801303 + Sum of centres and spreads ( -0.743908, 0.743908, 0.743908 ) 6.80779898 + + 3 -0.125E+01 1.5992894598 6.8077989832 0.01 <-- CONV + O_D= 1.3647697 O_OD= 3.4884109 O_TOT= 6.8077990 <-- SPRD + Delta: O_D= -0.1046573E+01 O_OD= -0.2023250E+00 O_TOT= -0.1248898E+01 <-- DLTA ------------------------------------------------------------------------------ Cycle: 4 - WF centre and spread 1 ( 0.000000, 0.000000, 0.000000 ) 0.58022658 - WF centre and spread 2 ( -0.806995, 0.806995, 0.000000 ) 0.58022658 - WF centre and spread 3 ( 0.000000, 0.806995, 0.806995 ) 0.58022658 - WF centre and spread 4 ( -0.806995, 0.000000, 0.806995 ) 0.58022658 - Sum of centres and spreads ( -1.613990, 1.613990, 1.613990 ) 2.32090632 - - 4 -0.792E-10 0.0000061002 2.3209063178 0.09 <-- CONV - O_D= 0.0000000 O_OD= 0.3662853 O_TOT= 2.3209063 <-- SPRD - Delta: O_D= 0.1638306E-24 O_OD= -0.7916606E-10 O_TOT= -0.7916601E-10 <-- DLTA + WF centre and spread 1 ( 0.063754, -0.063754, -0.063754 ) 1.74767413 + WF centre and spread 2 ( -0.543366, 0.543366, -0.275971 ) 1.49058354 + WF centre and spread 3 ( 0.275971, 0.543366, 0.543366 ) 1.49058354 + WF centre and spread 4 ( -0.543366, -0.275971, 0.543366 ) 1.49058354 + Sum of centres and spreads ( -0.747007, 0.747007, 0.747007 ) 6.21942474 + + 4 -0.588E+00 0.7347832611 6.2194247416 0.02 <-- CONV + O_D= 1.0866932 O_OD= 3.1781132 O_TOT= 6.2194247 <-- SPRD + Delta: O_D= -0.2780765E+00 O_OD= -0.3102977E+00 O_TOT= -0.5883742E+00 <-- DLTA ------------------------------------------------------------------------------ Cycle: 5 - WF centre and spread 1 ( 0.000000, 0.000000, 0.000000 ) 0.58022658 - WF centre and spread 2 ( -0.806995, 0.806995, 0.000000 ) 0.58022658 - WF centre and spread 3 ( 0.000000, 0.806995, 0.806995 ) 0.58022658 - WF centre and spread 4 ( -0.806995, 0.000000, 0.806995 ) 0.58022658 - Sum of centres and spreads ( -1.613990, 1.613990, 1.613990 ) 2.32090632 - - 5 0.000E+00 0.0000004301 2.3209063178 0.10 <-- CONV - O_D= 0.0000000 O_OD= 0.3662853 O_TOT= 2.3209063 <-- SPRD - Delta: O_D= 0.0000000E+00 O_OD= 0.0000000E+00 O_TOT= 0.0000000E+00 <-- DLTA + WF centre and spread 1 ( 0.085402, -0.085402, -0.085402 ) 1.87107143 + WF centre and spread 2 ( -0.520567, 0.520567, -0.269210 ) 1.33949225 + WF centre and spread 3 ( 0.269210, 0.520567, 0.520567 ) 1.33949225 + WF centre and spread 4 ( -0.520567, -0.269210, 0.520567 ) 1.33949224 + Sum of centres and spreads ( -0.686523, 0.686523, 0.686523 ) 5.88954818 + + 5 -0.330E+00 0.4298895898 5.8895481776 0.02 <-- CONV + O_D= 0.9387607 O_OD= 2.9961692 O_TOT= 5.8895482 <-- SPRD + Delta: O_D= -0.1479325E+00 O_OD= -0.1819440E+00 O_TOT= -0.3298766E+00 <-- DLTA ------------------------------------------------------------------------------ Cycle: 6 - WF centre and spread 1 ( 0.000000, 0.000000, 0.000000 ) 0.58022658 - WF centre and spread 2 ( -0.806995, 0.806995, 0.000000 ) 0.58022658 - WF centre and spread 3 ( 0.000000, 0.806995, 0.806995 ) 0.58022658 - WF centre and spread 4 ( -0.806995, 0.000000, 0.806995 ) 0.58022658 - Sum of centres and spreads ( -1.613990, 1.613990, 1.613990 ) 2.32090632 - - 6 0.000E+00 0.0000004196 2.3209063178 0.10 <-- CONV - O_D= 0.0000000 O_OD= 0.3662853 O_TOT= 2.3209063 <-- SPRD - Delta: O_D= 0.0000000E+00 O_OD= 0.0000000E+00 O_TOT= 0.0000000E+00 <-- DLTA + WF centre and spread 1 ( 0.130427, -0.130427, -0.130427 ) 1.83680888 + WF centre and spread 2 ( -0.496691, 0.496691, -0.273805 ) 1.31361327 + WF centre and spread 3 ( 0.273805, 0.496691, 0.496691 ) 1.31361326 + WF centre and spread 4 ( -0.496691, -0.273805, 0.496691 ) 1.31361327 + Sum of centres and spreads ( -0.589149, 0.589149, 0.589149 ) 5.77764868 + + 6 -0.112E+00 0.3614540976 5.7776486794 0.03 <-- CONV + O_D= 0.8890137 O_OD= 2.9340167 O_TOT= 5.7776487 <-- SPRD + Delta: O_D= -0.4974698E-01 O_OD= -0.6215252E-01 O_TOT= -0.1118995E+00 <-- DLTA ------------------------------------------------------------------------------ Cycle: 7 - WF centre and spread 1 ( 0.000000, 0.000000, 0.000000 ) 0.58022658 - WF centre and spread 2 ( -0.806995, 0.806995, 0.000000 ) 0.58022658 - WF centre and spread 3 ( 0.000000, 0.806995, 0.806995 ) 0.58022658 - WF centre and spread 4 ( -0.806995, 0.000000, 0.806995 ) 0.58022658 - Sum of centres and spreads ( -1.613990, 1.613990, 1.613990 ) 2.32090632 - - 7 -0.342E-13 0.0000003999 2.3209063178 0.11 <-- CONV - O_D= 0.0000000 O_OD= 0.3662853 O_TOT= 2.3209063 <-- SPRD - Delta: O_D= -0.2269263E-24 O_OD= -0.3413936E-13 O_TOT= -0.3419487E-13 <-- DLTA + WF centre and spread 1 ( 0.162783, -0.162783, -0.162783 ) 1.85304365 + WF centre and spread 2 ( -0.475537, 0.475537, -0.273770 ) 1.27321074 + WF centre and spread 3 ( 0.273770, 0.475537, 0.475537 ) 1.27321072 + WF centre and spread 4 ( -0.475537, -0.273770, 0.475537 ) 1.27321072 + Sum of centres and spreads ( -0.514520, 0.514520, 0.514520 ) 5.67267583 + + 7 -0.105E+00 0.4639479956 5.6726758321 0.03 <-- CONV + O_D= 0.8385598 O_OD= 2.8794977 O_TOT= 5.6726758 <-- SPRD + Delta: O_D= -0.5045390E-01 O_OD= -0.5451895E-01 O_TOT= -0.1049728E+00 <-- DLTA ------------------------------------------------------------------------------ Cycle: 8 - WF centre and spread 1 ( 0.000000, 0.000000, 0.000000 ) 0.58022658 - WF centre and spread 2 ( -0.806995, 0.806995, 0.000000 ) 0.58022658 - WF centre and spread 3 ( 0.000000, 0.806995, 0.806995 ) 0.58022658 - WF centre and spread 4 ( -0.806995, 0.000000, 0.806995 ) 0.58022658 - Sum of centres and spreads ( -1.613990, 1.613990, 1.613990 ) 2.32090632 - - 8 0.000E+00 0.0000003815 2.3209063178 0.11 <-- CONV - O_D= 0.0000000 O_OD= 0.3662853 O_TOT= 2.3209063 <-- SPRD - Delta: O_D= 0.0000000E+00 O_OD= 0.0000000E+00 O_TOT= 0.0000000E+00 <-- DLTA + WF centre and spread 1 ( 0.136909, -0.136909, -0.136909 ) 1.71825077 + WF centre and spread 2 ( -0.482533, 0.482533, -0.267977 ) 1.24182755 + WF centre and spread 3 ( 0.267977, 0.482533, 0.482533 ) 1.24182754 + WF centre and spread 4 ( -0.482533, -0.267977, 0.482533 ) 1.24182755 + Sum of centres and spreads ( -0.560181, 0.560181, 0.560181 ) 5.44373340 + + 8 -0.229E+00 0.5502964520 5.4437334035 0.04 <-- CONV + O_D= 0.6962162 O_OD= 2.7928989 O_TOT= 5.4437334 <-- SPRD + Delta: O_D= -0.1423435E+00 O_OD= -0.8659888E-01 O_TOT= -0.2289424E+00 <-- DLTA ------------------------------------------------------------------------------ Cycle: 9 - WF centre and spread 1 ( 0.000000, 0.000000, 0.000000 ) 0.58022658 - WF centre and spread 2 ( -0.806995, 0.806995, 0.000000 ) 0.58022658 - WF centre and spread 3 ( 0.000000, 0.806995, 0.806995 ) 0.58022658 - WF centre and spread 4 ( -0.806995, 0.000000, 0.806995 ) 0.58022658 - Sum of centres and spreads ( -1.613990, 1.613990, 1.613990 ) 2.32090632 - - 9 -0.236E-12 0.0000003644 2.3209063178 0.12 <-- CONV - O_D= 0.0000000 O_OD= 0.3662853 O_TOT= 2.3209063 <-- SPRD - Delta: O_D= -0.5124537E-24 O_OD= -0.2364775E-12 O_TOT= -0.2362555E-12 <-- DLTA + WF centre and spread 1 ( 0.174401, -0.174401, -0.174401 ) 1.49970435 + WF centre and spread 2 ( -0.473319, 0.473319, -0.286759 ) 1.23997873 + WF centre and spread 3 ( 0.286759, 0.473319, 0.473319 ) 1.23997871 + WF centre and spread 4 ( -0.473319, -0.286759, 0.473319 ) 1.23997872 + Sum of centres and spreads ( -0.485478, 0.485478, 0.485478 ) 5.21964051 + + 9 -0.224E+00 0.3181948033 5.2196405116 0.04 <-- CONV + O_D= 0.5790535 O_OD= 2.6859687 O_TOT= 5.2196405 <-- SPRD + Delta: O_D= -0.1171627E+00 O_OD= -0.1069302E+00 O_TOT= -0.2240929E+00 <-- DLTA ------------------------------------------------------------------------------ Cycle: 10 - WF centre and spread 1 ( 0.000000, 0.000000, 0.000000 ) 0.58022658 - WF centre and spread 2 ( -0.806995, 0.806995, 0.000000 ) 0.58022658 - WF centre and spread 3 ( 0.000000, 0.806995, 0.806995 ) 0.58022658 - WF centre and spread 4 ( -0.806995, 0.000000, 0.806995 ) 0.58022658 - Sum of centres and spreads ( -1.613990, 1.613990, 1.613990 ) 2.32090632 - - 10 0.000E+00 0.0000002034 2.3209063178 0.12 <-- CONV - O_D= 0.0000000 O_OD= 0.3662853 O_TOT= 2.3209063 <-- SPRD - Delta: O_D= 0.0000000E+00 O_OD= 0.0000000E+00 O_TOT= 0.0000000E+00 <-- DLTA + WF centre and spread 1 ( 0.309907, -0.309907, -0.309907 ) 1.49162691 + WF centre and spread 2 ( -0.431164, 0.431164, -0.341246 ) 1.19158999 + WF centre and spread 3 ( 0.341246, 0.431164, 0.431164 ) 1.19159000 + WF centre and spread 4 ( -0.431164, -0.341246, 0.431164 ) 1.19159001 + Sum of centres and spreads ( -0.211176, 0.211176, 0.211176 ) 5.06639692 + + 10 -0.153E+00 0.2587277742 5.0663969183 0.04 <-- CONV + O_D= 0.5259375 O_OD= 2.5858411 O_TOT= 5.0663969 <-- SPRD + Delta: O_D= -0.5311601E-01 O_OD= -0.1001276E+00 O_TOT= -0.1532436E+00 <-- DLTA ------------------------------------------------------------------------------ Cycle: 11 - WF centre and spread 1 ( 0.000000, 0.000000, 0.000000 ) 0.58022658 - WF centre and spread 2 ( -0.806995, 0.806995, 0.000000 ) 0.58022658 - WF centre and spread 3 ( 0.000000, 0.806995, 0.806995 ) 0.58022658 - WF centre and spread 4 ( -0.806995, 0.000000, 0.806995 ) 0.58022658 - Sum of centres and spreads ( -1.613990, 1.613990, 1.613990 ) 2.32090632 - - 11 -0.333E-13 0.0000001918 2.3209063178 0.13 <-- CONV - O_D= 0.0000000 O_OD= 0.3662853 O_TOT= 2.3209063 <-- SPRD - Delta: O_D= 0.1278015E-25 O_OD= -0.3336220E-13 O_TOT= -0.3330669E-13 <-- DLTA + WF centre and spread 1 ( 0.288267, -0.288267, -0.288267 ) 1.24350909 + WF centre and spread 2 ( -0.437700, 0.437700, -0.340626 ) 1.17075909 + WF centre and spread 3 ( 0.340626, 0.437700, 0.437700 ) 1.17075907 + WF centre and spread 4 ( -0.437700, -0.340626, 0.437700 ) 1.17075909 + Sum of centres and spreads ( -0.246506, 0.246506, 0.246506 ) 4.75578634 + + 11 -0.311E+00 0.5334748389 4.7557863416 0.05 <-- CONV + O_D= 0.3021356 O_OD= 2.4990324 O_TOT= 4.7557863 <-- SPRD + Delta: O_D= -0.2238019E+00 O_OD= -0.8680871E-01 O_TOT= -0.3106106E+00 <-- DLTA ------------------------------------------------------------------------------ Cycle: 12 - WF centre and spread 1 ( 0.000000, 0.000000, 0.000000 ) 0.58022658 - WF centre and spread 2 ( -0.806995, 0.806995, 0.000000 ) 0.58022658 - WF centre and spread 3 ( 0.000000, 0.806995, 0.806995 ) 0.58022658 - WF centre and spread 4 ( -0.806995, 0.000000, 0.806995 ) 0.58022658 - Sum of centres and spreads ( -1.613990, 1.613990, 1.613990 ) 2.32090632 - - 12 -0.173E-13 0.0000001556 2.3209063178 0.14 <-- CONV - O_D= 0.0000000 O_OD= 0.3662853 O_TOT= 2.3209063 <-- SPRD - Delta: O_D= -0.1414977E-25 O_OD= -0.1759703E-13 O_TOT= -0.1731948E-13 <-- DLTA + WF centre and spread 1 ( 0.318047, -0.318047, -0.318047 ) 1.21055499 + WF centre and spread 2 ( -0.427877, 0.427876, -0.343608 ) 1.13786031 + WF centre and spread 3 ( 0.343608, 0.427877, 0.427877 ) 1.13786025 + WF centre and spread 4 ( -0.427877, -0.343608, 0.427877 ) 1.13786007 + Sum of centres and spreads ( -0.194098, 0.194098, 0.194098 ) 4.62413563 + + 12 -0.132E+00 0.2435771163 4.6241356312 0.05 <-- CONV + O_D= 0.2890406 O_OD= 2.3804767 O_TOT= 4.6241356 <-- SPRD + Delta: O_D= -0.1309505E-01 O_OD= -0.1185557E+00 O_TOT= -0.1316507E+00 <-- DLTA ------------------------------------------------------------------------------ Cycle: 13 - WF centre and spread 1 ( 0.000000, 0.000000, 0.000000 ) 0.58022658 - WF centre and spread 2 ( -0.806995, 0.806995, 0.000000 ) 0.58022658 - WF centre and spread 3 ( 0.000000, 0.806995, 0.806995 ) 0.58022658 - WF centre and spread 4 ( -0.806995, 0.000000, 0.806995 ) 0.58022658 - Sum of centres and spreads ( -1.613990, 1.613990, 1.613990 ) 2.32090632 - - 13 0.000E+00 0.0000001314 2.3209063178 0.14 <-- CONV - O_D= 0.0000000 O_OD= 0.3662853 O_TOT= 2.3209063 <-- SPRD - Delta: O_D= 0.0000000E+00 O_OD= 0.0000000E+00 O_TOT= 0.0000000E+00 <-- DLTA + WF centre and spread 1 ( 0.338205, -0.338205, -0.338205 ) 1.25135596 + WF centre and spread 2 ( -0.429362, 0.429362, -0.352371 ) 1.10363125 + WF centre and spread 3 ( 0.352371, 0.429362, 0.429362 ) 1.10363121 + WF centre and spread 4 ( -0.429362, -0.352371, 0.429362 ) 1.10363119 + Sum of centres and spreads ( -0.168148, 0.168148, 0.168148 ) 4.56224960 + + 13 -0.619E-01 0.2029485499 4.5622496006 0.06 <-- CONV + O_D= 0.2400217 O_OD= 2.3676095 O_TOT= 4.5622496 <-- SPRD + Delta: O_D= -0.4901885E-01 O_OD= -0.1286718E-01 O_TOT= -0.6188603E-01 <-- DLTA ------------------------------------------------------------------------------ Cycle: 14 - WF centre and spread 1 ( 0.000000, 0.000000, 0.000000 ) 0.58022658 - WF centre and spread 2 ( -0.806995, 0.806995, 0.000000 ) 0.58022658 - WF centre and spread 3 ( 0.000000, 0.806995, 0.806995 ) 0.58022658 - WF centre and spread 4 ( -0.806995, 0.000000, 0.806995 ) 0.58022658 - Sum of centres and spreads ( -1.613990, 1.613990, 1.613990 ) 2.32090632 - - 14 0.000E+00 0.0000001286 2.3209063178 0.14 <-- CONV - O_D= 0.0000000 O_OD= 0.3662853 O_TOT= 2.3209063 <-- SPRD - Delta: O_D= 0.0000000E+00 O_OD= 0.0000000E+00 O_TOT= 0.0000000E+00 <-- DLTA + WF centre and spread 1 ( 0.380912, -0.380912, -0.380912 ) 1.24630085 + WF centre and spread 2 ( -0.414140, 0.414140, -0.379223 ) 1.07849486 + WF centre and spread 3 ( 0.379223, 0.414140, 0.414140 ) 1.07849480 + WF centre and spread 4 ( -0.414140, -0.379223, 0.414140 ) 1.07849467 + Sum of centres and spreads ( -0.068145, 0.068145, 0.068145 ) 4.48178517 + + 14 -0.805E-01 0.1643815809 4.4817851693 0.06 <-- CONV + O_D= 0.2021295 O_OD= 2.3250373 O_TOT= 4.4817852 <-- SPRD + Delta: O_D= -0.3789220E-01 O_OD= -0.4257223E-01 O_TOT= -0.8046443E-01 <-- DLTA ------------------------------------------------------------------------------ Cycle: 15 - WF centre and spread 1 ( 0.000000, 0.000000, 0.000000 ) 0.58022658 - WF centre and spread 2 ( -0.806995, 0.806995, 0.000000 ) 0.58022658 - WF centre and spread 3 ( 0.000000, 0.806995, 0.806995 ) 0.58022658 - WF centre and spread 4 ( -0.806995, 0.000000, 0.806995 ) 0.58022658 - Sum of centres and spreads ( -1.613990, 1.613990, 1.613990 ) 2.32090632 - - 15 0.000E+00 0.0000001233 2.3209063178 0.15 <-- CONV - O_D= 0.0000000 O_OD= 0.3662853 O_TOT= 2.3209063 <-- SPRD - Delta: O_D= 0.0000000E+00 O_OD= 0.0000000E+00 O_TOT= 0.0000000E+00 <-- DLTA + WF centre and spread 1 ( 0.406611, -0.406611, -0.406611 ) 1.24055171 + WF centre and spread 2 ( -0.411705, 0.411705, -0.389129 ) 1.06476068 + WF centre and spread 3 ( 0.389129, 0.411705, 0.411705 ) 1.06476065 + WF centre and spread 4 ( -0.411705, -0.389129, 0.411705 ) 1.06475678 + Sum of centres and spreads ( -0.027670, 0.027670, 0.027670 ) 4.43482981 + + 15 -0.470E-01 0.2011151169 4.4348298079 0.07 <-- CONV + O_D= 0.2040303 O_OD= 2.2761812 O_TOT= 4.4348298 <-- SPRD + Delta: O_D= 0.1900721E-02 O_OD= -0.4885608E-01 O_TOT= -0.4695536E-01 <-- DLTA ------------------------------------------------------------------------------ Cycle: 16 - WF centre and spread 1 ( 0.000000, 0.000000, 0.000000 ) 0.58022658 - WF centre and spread 2 ( -0.806995, 0.806995, 0.000000 ) 0.58022658 - WF centre and spread 3 ( 0.000000, 0.806995, 0.806995 ) 0.58022658 - WF centre and spread 4 ( -0.806995, 0.000000, 0.806995 ) 0.58022658 - Sum of centres and spreads ( -1.613990, 1.613990, 1.613990 ) 2.32090632 - - 16 -0.235E-13 0.0000001158 2.3209063178 0.16 <-- CONV - O_D= 0.0000000 O_OD= 0.3662853 O_TOT= 2.3209063 <-- SPRD - Delta: O_D= -0.2696537E-25 O_OD= -0.2353673E-13 O_TOT= -0.2353673E-13 <-- DLTA + WF centre and spread 1 ( 0.414371, -0.414372, -0.414371 ) 1.22426072 + WF centre and spread 2 ( -0.413663, 0.413662, -0.390877 ) 1.06262005 + WF centre and spread 3 ( 0.390877, 0.413662, 0.413662 ) 1.06264009 + WF centre and spread 4 ( -0.413685, -0.390867, 0.413685 ) 1.06187777 + Sum of centres and spreads ( -0.022100, 0.022084, 0.022099 ) 4.41139863 + + 16 -0.234E-01 0.1230443506 4.4113986307 0.07 <-- CONV + O_D= 0.2024957 O_OD= 2.2542846 O_TOT= 4.4113986 <-- SPRD + Delta: O_D= -0.1534555E-02 O_OD= -0.2189662E-01 O_TOT= -0.2343118E-01 <-- DLTA ------------------------------------------------------------------------------ Cycle: 17 - WF centre and spread 1 ( 0.000000, 0.000000, 0.000000 ) 0.58022658 - WF centre and spread 2 ( -0.806995, 0.806995, 0.000000 ) 0.58022658 - WF centre and spread 3 ( 0.000000, 0.806995, 0.806995 ) 0.58022658 - WF centre and spread 4 ( -0.806995, 0.000000, 0.806995 ) 0.58022658 - Sum of centres and spreads ( -1.613990, 1.613990, 1.613990 ) 2.32090632 - - 17 -0.311E-14 0.0000000702 2.3209063178 0.16 <-- CONV - O_D= 0.0000000 O_OD= 0.3662853 O_TOT= 2.3209063 <-- SPRD - Delta: O_D= 0.4067529E-26 O_OD= -0.3108624E-14 O_TOT= -0.3108624E-14 <-- DLTA + WF centre and spread 1 ( 0.414436, -0.414446, -0.414436 ) 1.22242845 + WF centre and spread 2 ( -0.411868, 0.411883, -0.391923 ) 1.06127217 + WF centre and spread 3 ( 0.391923, 0.411883, 0.411868 ) 1.06128336 + WF centre and spread 4 ( -0.411866, -0.391930, 0.411867 ) 1.06087259 + Sum of centres and spreads ( -0.017375, 0.017391, 0.017375 ) 4.40585657 + + 17 -0.554E-02 0.1921501541 4.4058565729 0.08 <-- CONV + O_D= 0.1978022 O_OD= 2.2534361 O_TOT= 4.4058566 <-- SPRD + Delta: O_D= -0.4693543E-02 O_OD= -0.8485151E-03 O_TOT= -0.5542058E-02 <-- DLTA ------------------------------------------------------------------------------ Cycle: 18 - WF centre and spread 1 ( 0.000000, 0.000000, 0.000000 ) 0.58022658 - WF centre and spread 2 ( -0.806995, 0.806995, 0.000000 ) 0.58022658 - WF centre and spread 3 ( 0.000000, 0.806995, 0.806995 ) 0.58022658 - WF centre and spread 4 ( -0.806995, 0.000000, 0.806995 ) 0.58022658 - Sum of centres and spreads ( -1.613990, 1.613990, 1.613990 ) 2.32090632 - - 18 0.133E-14 0.0000000623 2.3209063178 0.17 <-- CONV - O_D= 0.0000000 O_OD= 0.3662853 O_TOT= 2.3209063 <-- SPRD - Delta: O_D= 0.8779410E-27 O_OD= 0.1276756E-14 O_TOT= 0.1332268E-14 <-- DLTA + WF centre and spread 1 ( 0.414710, -0.414765, -0.414712 ) 1.21372786 + WF centre and spread 2 ( -0.404122, 0.404196, -0.396562 ) 1.06068076 + WF centre and spread 3 ( 0.396561, 0.404199, 0.404127 ) 1.06067460 + WF centre and spread 4 ( -0.404022, -0.396605, 0.404024 ) 1.06091035 + Sum of centres and spreads ( 0.003127, -0.002975, -0.003123 ) 4.39599357 + + 18 -0.986E-02 0.1521433736 4.3959935728 0.08 <-- CONV + O_D= 0.1895808 O_OD= 2.2517944 O_TOT= 4.3959936 <-- SPRD + Delta: O_D= -0.8221356E-02 O_OD= -0.1641644E-02 O_TOT= -0.9863000E-02 <-- DLTA ------------------------------------------------------------------------------ Cycle: 19 - WF centre and spread 1 ( 0.000000, 0.000000, 0.000000 ) 0.58022658 - WF centre and spread 2 ( -0.806995, 0.806995, 0.000000 ) 0.58022658 - WF centre and spread 3 ( 0.000000, 0.806995, 0.806995 ) 0.58022658 - WF centre and spread 4 ( -0.806995, 0.000000, 0.806995 ) 0.58022658 - Sum of centres and spreads ( -1.613990, 1.613990, 1.613990 ) 2.32090632 - - 19 0.000E+00 0.0000000574 2.3209063178 0.17 <-- CONV - O_D= 0.0000000 O_OD= 0.3662853 O_TOT= 2.3209063 <-- SPRD - Delta: O_D= 0.0000000E+00 O_OD= 0.0000000E+00 O_TOT= 0.0000000E+00 <-- DLTA + WF centre and spread 1 ( 0.414733, -0.414930, -0.414738 ) 1.17757009 + WF centre and spread 2 ( -0.408536, 0.408225, -0.398238 ) 1.06828191 + WF centre and spread 3 ( 0.398235, 0.408202, 0.408503 ) 1.06850438 + WF centre and spread 4 ( -0.409031, -0.398097, 0.409022 ) 1.06933375 + Sum of centres and spreads ( -0.004598, 0.003399, 0.004549 ) 4.38369014 + + 19 -0.123E-01 0.0818448235 4.3836901361 0.09 <-- CONV + O_D= 0.1854015 O_OD= 2.2436703 O_TOT= 4.3836901 <-- SPRD + Delta: O_D= -0.4179282E-02 O_OD= -0.8124155E-02 O_TOT= -0.1230344E-01 <-- DLTA ------------------------------------------------------------------------------ Cycle: 20 - WF centre and spread 1 ( 0.000000, 0.000000, 0.000000 ) 0.58022658 - WF centre and spread 2 ( -0.806995, 0.806995, 0.000000 ) 0.58022658 - WF centre and spread 3 ( 0.000000, 0.806995, 0.806995 ) 0.58022658 - WF centre and spread 4 ( -0.806995, 0.000000, 0.806995 ) 0.58022658 - Sum of centres and spreads ( -1.613990, 1.613990, 1.613990 ) 2.32090632 - - 20 0.000E+00 0.0000000562 2.3209063178 0.18 <-- CONV - O_D= 0.0000000 O_OD= 0.3662853 O_TOT= 2.3209063 <-- SPRD - Delta: O_D= 0.0000000E+00 O_OD= 0.0000000E+00 O_TOT= 0.0000000E+00 <-- DLTA + WF centre and spread 1 ( 0.414831, -0.415013, -0.414837 ) 1.17685030 + WF centre and spread 2 ( -0.408031, 0.407817, -0.397915 ) 1.06787005 + WF centre and spread 3 ( 0.397919, 0.407806, 0.408017 ) 1.06786000 + WF centre and spread 4 ( -0.408443, -0.397788, 0.408441 ) 1.06838311 + Sum of centres and spreads ( -0.003724, 0.002822, 0.003706 ) 4.38096346 + + 20 -0.273E-02 0.2039493351 4.3809634608 0.09 <-- CONV + O_D= 0.1830117 O_OD= 2.2433335 O_TOT= 4.3809635 <-- SPRD + Delta: O_D= -0.2389858E-02 O_OD= -0.3368169E-03 O_TOT= -0.2726675E-02 <-- DLTA ------------------------------------------------------------------------------ Final State - WF centre and spread 1 ( 0.000000, 0.000000, 0.000000 ) 0.58022658 - WF centre and spread 2 ( -0.806995, 0.806995, 0.000000 ) 0.58022658 - WF centre and spread 3 ( 0.000000, 0.806995, 0.806995 ) 0.58022658 - WF centre and spread 4 ( -0.806995, 0.000000, 0.806995 ) 0.58022658 - Sum of centres and spreads ( -1.613990, 1.613990, 1.613990 ) 2.32090632 - - Spreads (Ang^2) Omega I = 1.954621046 - ================ Omega D = 0.000000000 - Omega OD = 0.366285272 - Final Spread (Ang^2) Omega Total = 2.320906318 + WF centre and spread 1 ( 0.414831, -0.415013, -0.414837 ) 1.17685030 + WF centre and spread 2 ( -0.408031, 0.407817, -0.397915 ) 1.06787005 + WF centre and spread 3 ( 0.397919, 0.407806, 0.408017 ) 1.06786000 + WF centre and spread 4 ( -0.408443, -0.397788, 0.408441 ) 1.06838311 + Sum of centres and spreads ( -0.003724, 0.002822, 0.003706 ) 4.38096346 + + Spreads (Ang^2) Omega I = 1.954618313 + ================ Omega D = 0.183011671 + Omega OD = 2.243333477 + Final Spread (Ang^2) Omega Total = 4.380963461 ------------------------------------------------------------------------------ - Time for wannierise 0.112 (sec) + Time for wannierise 0.088 (sec) Writing checkpoint file diamond.sa.chk... done - Total Execution Time 0.176 (sec) + Time for plotting 0.000 (sec) + Total Execution Time 0.220 (sec) *===========================================================================* | TIMING INFORMATION | *===========================================================================* | Tag Ncalls Time (s)| |---------------------------------------------------------------------------| - |kmesh: get : 1 0.048| + |kmesh: get : 1 0.108| + |overlap: allocate : 1 0.000| |overlap: read : 1 0.012| - |wann: main : 1 0.112| + |wann: main : 1 0.088| + |plot: main : 1 0.000| *---------------------------------------------------------------------------* All done: wannier90 exiting diff --git a/PP/examples/WAN90_example/reference/diamond.scf.in b/PP/examples/WAN90_example/reference/diamond.scf.in deleted file mode 100644 index 83940d1e08..0000000000 --- a/PP/examples/WAN90_example/reference/diamond.scf.in +++ /dev/null @@ -1,24 +0,0 @@ - &control - calculation = 'scf' - restart_mode='from_scratch', - prefix='di', - pseudo_dir='/home/arash/PW-pseudo', - outdir='/home/arash/tmp' - / - &system - ibrav= 2, celldm(1) =6.1, nat= 2, ntyp= 1, - ecutwfc =40.0, - / - &electrons - diagonalization='david' - mixing_mode = 'plain' - mixing_beta = 0.7 - conv_thr = 1.0d-13 - / -ATOMIC_SPECIES - C 12.0 C.pz-vbc.UPF -ATOMIC_POSITIONS {crystal} -C -0.125 -0.125 -0.125 -C 0.125 0.125 0.125 -K_POINTS {automatic} - 12 12 12 0 0 0 diff --git a/PP/examples/WAN90_example/reference/diamond.scf.out b/PP/examples/WAN90_example/reference/diamond.scf.out index f32a42ee97..c4c60f70b9 100644 --- a/PP/examples/WAN90_example/reference/diamond.scf.out +++ b/PP/examples/WAN90_example/reference/diamond.scf.out @@ -1,76 +1,87 @@ - Program PWSCF v.3.1.1 starts ... - Today is 9Oct2006 at 15:37: 0 + Program PWSCF v.6.4rc starts on 1Mar2019 at 15:58:46 - Parallel version (MPI) + This program is part of the open-source Quantum ESPRESSO suite + for quantum simulation of materials; please cite + "P. Giannozzi et al., J. Phys.:Condens. Matter 21 395502 (2009); + "P. Giannozzi et al., J. Phys.:Condens. Matter 29 465901 (2017); + URL http://www.quantum-espresso.org", + in publications or presentations arising from this work. More details at + http://www.quantum-espresso.org/quote - Number of processors in use: 2 - R & G space division: proc/pool = 2 + Parallel version (MPI), running on 1 processors - Ultrasoft (Vanderbilt) Pseudopotentials + MPI processes distributed on 1 nodes + Waiting for input... + Reading input from standard input - Current dimensions of program pwscf are: - - ntypx = 10 npk = 40000 lmax = 3 - nchix = 6 ndmx = 2000 nbrx = 14 nqfx = 8 - - looking for the optimal diagonalization algorithm ... + Current dimensions of program PWSCF are: + Max number of different atomic species (ntypx) = 10 + Max number of k-points (npk) = 40000 + Max angular momentum in pseudopotentials (lmaxx) = 3 + Subspace diagonalization in iterative solution of the eigenvalue problem: a serial algorithm will be used - - Planes per process (thick) : nr3 = 18 npp = 9 ncplane = 324 - Proc/ planes cols G planes cols G columns G - Pool (dense grid) (smooth grid) (wavefct grid) - 1 9 99 957 9 99 957 37 206 - 2 9 100 960 9 100 960 36 205 - 0 18 199 1917 18 199 1917 73 411 + G-vector sticks info + -------------------- + sticks: dense smooth PW G-vecs: dense smooth PW + Sum 199 199 73 1917 1917 411 bravais-lattice index = 2 - lattice parameter (a_0) = 6.1000 a.u. + lattice parameter (alat) = 6.1000 a.u. unit-cell volume = 56.7452 (a.u.)^3 number of atoms/cell = 2 number of atomic types = 1 + number of electrons = 8.00 + number of Kohn-Sham states= 4 kinetic-energy cutoff = 40.0000 Ry charge density cutoff = 160.0000 Ry convergence threshold = 1.0E-13 - beta = 0.7000 + mixing beta = 0.7000 number of iterations used = 8 plain mixing - Exchange-correlation = SLA PZ NOGX NOGC (1100) + Exchange-correlation = SLA PZ NOGX NOGC ( 1 1 0 0 0 0) + celldm(1)= 6.100000 celldm(2)= 0.000000 celldm(3)= 0.000000 celldm(4)= 0.000000 celldm(5)= 0.000000 celldm(6)= 0.000000 - crystal axes: (cart. coord. in units of a_0) - a(1) = ( -0.500000 0.000000 0.500000 ) - a(2) = ( 0.000000 0.500000 0.500000 ) - a(3) = ( -0.500000 0.500000 0.000000 ) + crystal axes: (cart. coord. in units of alat) + a(1) = ( -0.500000 0.000000 0.500000 ) + a(2) = ( 0.000000 0.500000 0.500000 ) + a(3) = ( -0.500000 0.500000 0.000000 ) - reciprocal axes: (cart. coord. in units 2 pi/a_0) + reciprocal axes: (cart. coord. in units 2 pi/alat) b(1) = ( -1.000000 -1.000000 1.000000 ) b(2) = ( 1.000000 1.000000 1.000000 ) b(3) = ( -1.000000 1.000000 -1.000000 ) - PSEUDO 1 is C zval = 4.0 lmax= 0 lloc= 0 - (in numerical form: 269 grid points, xmin = 0.00, dx = 0.0000) + PseudoPot. # 1 for C read from file: + /home/giannozz/q-e-mio/pseudo/C.pz-vbc.UPF + MD5 check sum: b3df27665907f6396c9b9f9dac2a9cb5 + Pseudo is Norm-conserving, Zval = 4.0 + Generated by new atomic code, or converted to UPF format + Using radial grid of 269 points, 1 beta functions with: + l(1) = 0 atomic species valence mass pseudopotential C 4.00 12.00000 C ( 1.00) - 48 Sym.Ops. (with inversion) + 48 Sym. Ops., with inversion, found (24 have fractional translation) + Cartesian axes - site n. atom positions (a_0 units) - 1 C tau( 1) = ( 0.1250000 -0.1250000 -0.1250000 ) - 2 C tau( 2) = ( -0.1250000 0.1250000 0.1250000 ) + site n. atom positions (alat units) + 1 C tau( 1) = ( 0.2500000 -0.2500000 -0.2500000 ) + 2 C tau( 2) = ( 0.0000000 0.0000000 0.0000000 ) - number of k points= 72 - cart. coord. in units 2pi/a_0 + number of k points= 72 + cart. coord. in units 2pi/alat k( 1) = ( 0.0000000 0.0000000 0.0000000), wk = 0.0011574 k( 2) = ( -0.0833333 0.0833333 -0.0833333), wk = 0.0092593 k( 3) = ( -0.1666667 0.1666667 -0.1666667), wk = 0.0092593 @@ -144,438 +155,456 @@ k( 71) = ( -0.3333333 -1.0000000 0.0000000), wk = 0.0138889 k( 72) = ( -0.5000000 -1.0000000 0.0000000), wk = 0.0069444 - G cutoff = 150.8064 ( 1917 G-vectors) FFT grid: ( 18, 18, 18) + Dense grid: 1917 G-vectors FFT dimensions: ( 20, 20, 20) - nbndx = 16 nbnd = 4 natomwfc = 8 npwx = 128 - nelec = 8.00 nkb = 2 ngl = 52 + Estimated max dynamical RAM per process > 2.57 MB Initial potential from superposition of free atoms starting charge 7.99994, renormalised to 8.00000 - Starting wfc are atomic + Starting wfcs are 8 randomized atomic wfcs - total cpu time spent up to now is 0.26 secs + total cpu time spent up to now is 0.3 secs Self-consistent Calculation - iteration # 1 ecut= 40.00 ryd beta=0.70 + iteration # 1 ecut= 40.00 Ry beta= 0.70 Davidson diagonalization with overlap ethr = 1.00E-02, avg # of iterations = 2.0 - total cpu time spent up to now is 0.74 secs + total cpu time spent up to now is 0.6 secs - total energy = -22.56222778 ryd - estimated scf accuracy < 0.21680062 ryd + total energy = -22.56221267 Ry + Harris-Foulkes estimate = -22.68088990 Ry + estimated scf accuracy < 0.21686343 Ry - iteration # 2 ecut= 40.00 ryd beta=0.70 + iteration # 2 ecut= 40.00 Ry beta= 0.70 Davidson diagonalization with overlap ethr = 2.71E-03, avg # of iterations = 1.9 - total cpu time spent up to now is 1.10 secs + total cpu time spent up to now is 0.9 secs - total energy = -22.58044894 ryd - estimated scf accuracy < 0.00299479 ryd + total energy = -22.58046634 Ry + Harris-Foulkes estimate = -22.58154139 Ry + estimated scf accuracy < 0.00299122 Ry - iteration # 3 ecut= 40.00 ryd beta=0.70 + iteration # 3 ecut= 40.00 Ry beta= 0.70 Davidson diagonalization with overlap ethr = 3.74E-05, avg # of iterations = 2.2 - total cpu time spent up to now is 1.53 secs + total cpu time spent up to now is 1.2 secs - total energy = -22.58126747 ryd - estimated scf accuracy < 0.00007543 ryd + total energy = -22.58128830 Ry + Harris-Foulkes estimate = -22.58130274 Ry + estimated scf accuracy < 0.00007580 Ry - iteration # 4 ecut= 40.00 ryd beta=0.70 + iteration # 4 ecut= 40.00 Ry beta= 0.70 Davidson diagonalization with overlap - ethr = 9.43E-07, avg # of iterations = 2.1 + ethr = 9.47E-07, avg # of iterations = 2.1 - total cpu time spent up to now is 1.97 secs + total cpu time spent up to now is 1.5 secs - total energy = -22.58128481 ryd - estimated scf accuracy < 0.00000553 ryd + total energy = -22.58130603 Ry + Harris-Foulkes estimate = -22.58130945 Ry + estimated scf accuracy < 0.00000569 Ry - iteration # 5 ecut= 40.00 ryd beta=0.70 + iteration # 5 ecut= 40.00 Ry beta= 0.70 Davidson diagonalization with overlap - ethr = 6.91E-08, avg # of iterations = 2.1 + ethr = 7.12E-08, avg # of iterations = 2.1 - total cpu time spent up to now is 2.40 secs + total cpu time spent up to now is 1.8 secs - total energy = -22.58128612 ryd - estimated scf accuracy < 0.00000006 ryd + total energy = -22.58130737 Ry + Harris-Foulkes estimate = -22.58130740 Ry + estimated scf accuracy < 0.00000006 Ry - iteration # 6 ecut= 40.00 ryd beta=0.70 + iteration # 6 ecut= 40.00 Ry beta= 0.70 Davidson diagonalization with overlap - ethr = 7.28E-10, avg # of iterations = 2.4 + ethr = 7.39E-10, avg # of iterations = 2.5 - total cpu time spent up to now is 2.88 secs + total cpu time spent up to now is 2.2 secs - total energy = -22.58128615 ryd - estimated scf accuracy < 4.8E-10 ryd + total energy = -22.58130740 Ry + Harris-Foulkes estimate = -22.58130740 Ry + estimated scf accuracy < 4.5E-10 Ry - iteration # 7 ecut= 40.00 ryd beta=0.70 + iteration # 7 ecut= 40.00 Ry beta= 0.70 Davidson diagonalization with overlap - ethr = 6.06E-12, avg # of iterations = 2.7 + ethr = 5.64E-12, avg # of iterations = 2.9 - total cpu time spent up to now is 3.38 secs + total cpu time spent up to now is 2.5 secs - total energy = -22.58128615 ryd - estimated scf accuracy < 2.5E-12 ryd + total energy = -22.58130740 Ry + Harris-Foulkes estimate = -22.58130740 Ry + estimated scf accuracy < 2.8E-12 Ry - iteration # 8 ecut= 40.00 ryd beta=0.70 + iteration # 8 ecut= 40.00 Ry beta= 0.70 Davidson diagonalization with overlap - ethr = 3.07E-14, avg # of iterations = 2.7 + ethr = 1.00E-13, avg # of iterations = 2.0 - total cpu time spent up to now is 3.87 secs + total cpu time spent up to now is 2.8 secs - total energy = -22.58128615 ryd - estimated scf accuracy < 2.4E-12 ryd + total energy = -22.58130740 Ry + Harris-Foulkes estimate = -22.58130740 Ry + estimated scf accuracy < 2.6E-12 Ry - iteration # 9 ecut= 40.00 ryd beta=0.70 + iteration # 9 ecut= 40.00 Ry beta= 0.70 Davidson diagonalization with overlap - ethr = 3.03E-14, avg # of iterations = 2.0 + ethr = 1.00E-13, avg # of iterations = 1.0 - total cpu time spent up to now is 4.28 secs + total cpu time spent up to now is 3.0 secs End of self-consistent calculation k = 0.0000 0.0000 0.0000 ( 259 PWs) bands (ev): - -6.4387 19.3980 19.3980 19.3980 + -6.4386 19.3977 19.3977 19.3977 k =-0.0833 0.0833-0.0833 ( 259 PWs) bands (ev): - -6.2059 17.7916 18.9461 18.9461 + -6.2059 17.7913 18.9458 18.9458 k =-0.1667 0.1667-0.1667 ( 250 PWs) bands (ev): - -5.5239 14.7237 18.0303 18.0303 + -5.5239 14.7235 18.0301 18.0301 k =-0.2500 0.2500-0.2500 ( 247 PWs) bands (ev): - -4.3800 11.1722 17.0933 17.0933 + -4.3800 11.1721 17.0930 17.0930 k =-0.3333 0.3333-0.3333 ( 256 PWs) bands (ev): - -2.7985 7.7336 16.3402 16.3402 + -2.7984 7.7335 16.3400 16.3400 k =-0.4167 0.4167-0.4167 ( 241 PWs) bands (ev): - -0.7720 4.5802 15.9606 15.9606 + -0.7720 4.5802 15.9604 15.9604 k = 0.5000-0.5000 0.5000 ( 242 PWs) bands (ev): - 1.3328 2.0781 15.8056 15.8056 + 1.3328 2.0781 15.8054 15.8054 k = 0.0000 0.1667 0.0000 ( 258 PWs) bands (ev): - -6.1283 18.0990 18.0990 18.7944 + -6.1283 18.0988 18.0988 18.7941 k =-0.0833 0.2500-0.0833 ( 251 PWs) bands (ev): - -5.5975 15.7396 17.0413 18.3592 + -5.5975 15.7394 17.0410 18.3590 k =-0.1667 0.3333-0.1667 ( 245 PWs) bands (ev): - -4.6090 12.4481 16.1205 17.4878 + -4.6090 12.4479 16.1202 17.4875 k =-0.2500 0.4167-0.2500 ( 244 PWs) bands (ev): - -3.1690 9.0041 15.4986 16.4994 + -3.1689 9.0040 15.4984 16.4992 k =-0.3333 0.5000-0.3333 ( 239 PWs) bands (ev): - -1.2861 5.7738 15.2328 15.6431 + -1.2860 5.7737 15.2326 15.6429 k = 0.5833-0.4167 0.5833 ( 244 PWs) bands (ev): - 0.9585 2.8834 15.0126 15.2937 + 0.9584 2.8834 15.0124 15.2935 k = 0.5000-0.3333 0.5000 ( 245 PWs) bands (ev): - 0.1816 3.7906 14.7068 15.6943 + 0.1816 3.7905 14.7066 15.6941 k = 0.4167-0.2500 0.4167 ( 246 PWs) bands (ev): - -1.9665 6.8253 14.7676 16.3532 + -1.9665 6.8252 14.7674 16.3529 k = 0.3333-0.1667 0.3333 ( 247 PWs) bands (ev): - -3.7043 10.1448 15.1597 17.2929 + -3.7043 10.1446 15.1595 17.2927 k = 0.2500-0.0833 0.2500 ( 247 PWs) bands (ev): - -4.9871 13.6195 15.8712 18.2866 + -4.9871 13.6193 15.8710 18.2864 k = 0.1667 0.0000 0.1667 ( 249 PWs) bands (ev): - -5.8228 16.6872 16.9968 19.0144 + -5.8227 16.6870 16.9965 19.0141 k = 0.0000 0.3333 0.0000 ( 246 PWs) bands (ev): - -5.2143 15.8760 15.8760 17.1836 + -5.2142 15.8758 15.8758 17.1834 k =-0.0833 0.4167-0.0833 ( 241 PWs) bands (ev): - -4.3759 13.5805 14.9103 16.3827 + -4.3759 13.5804 14.9101 16.3825 k =-0.1667 0.5000-0.1667 ( 243 PWs) bands (ev): - -3.0921 10.4482 14.2608 15.3274 + -3.0921 10.4481 14.2606 15.3272 k =-0.2500 0.5833-0.2500 ( 242 PWs) bands (ev): - -1.3652 7.2880 13.9795 14.1724 + -1.3652 7.2879 13.9793 14.1723 k = 0.6667-0.3333 0.6667 ( 241 PWs) bands (ev): - 0.7661 4.3402 13.1961 14.1422 + 0.7661 4.3402 13.1960 14.1420 k = 0.5833-0.2500 0.5833 ( 244 PWs) bands (ev): - 1.5045 3.4799 12.5245 14.6603 + 1.5045 3.4798 12.5243 14.6601 k = 0.5000-0.1667 0.5000 ( 244 PWs) bands (ev): - -0.7053 6.3114 12.2247 15.4885 + -0.7052 6.3113 12.2246 15.4883 k = 0.4167-0.0833 0.4167 ( 247 PWs) bands (ev): - -2.5725 9.4562 12.3240 16.5607 + -2.5724 9.4561 12.3238 16.5605 k = 0.3333 0.0000 0.3333 ( 243 PWs) bands (ev): - -3.9981 12.5454 13.0501 17.6367 + -3.9980 12.5452 13.0499 17.6365 k = 0.0000 0.5000 0.0000 ( 234 PWs) bands (ev): - -3.6839 13.8639 13.8639 14.5739 + -3.6839 13.8637 13.8637 14.5737 k =-0.0833 0.5833-0.0833 ( 241 PWs) bands (ev): - -2.5558 11.7000 13.1068 13.5221 + -2.5558 11.6998 13.1066 13.5220 k =-0.1667 0.6667-0.1667 ( 241 PWs) bands (ev): - -0.9844 8.9159 12.2025 12.7922 + -0.9844 8.9158 12.2024 12.7920 k = 0.7500-0.2500 0.7500 ( 242 PWs) bands (ev): - 0.9925 6.0964 10.9236 12.9161 + 0.9924 6.0963 10.9234 12.9159 k = 0.6667-0.1667 0.6667 ( 243 PWs) bands (ev): - 2.8810 3.9356 9.9587 13.4075 + 2.8809 3.9356 9.9586 13.4073 k = 0.5833-0.0833 0.5833 ( 242 PWs) bands (ev): - 0.9624 6.2286 9.3906 14.2912 + 0.9624 6.2285 9.3905 14.2910 k = 0.5000 0.0000 0.5000 ( 248 PWs) bands (ev): - -1.0019 8.9712 9.4601 15.4030 + -1.0019 8.9711 9.4600 15.4028 k = 0.0000 0.6667 0.0000 ( 238 PWs) bands (ev): - -1.5725 11.2642 12.2895 12.2895 + -1.5724 11.2641 12.2893 12.2893 k =-0.0833 0.7500-0.0833 ( 238 PWs) bands (ev): - -0.1604 9.4051 11.0975 11.8596 + -0.1604 9.4050 11.0973 11.8594 k = 0.8333-0.1667 0.8333 ( 237 PWs) bands (ev): - 1.6593 7.5041 9.1634 11.9042 + 1.6593 7.5040 9.1633 11.9040 k = 0.7500-0.0833 0.7500 ( 240 PWs) bands (ev): - 3.7207 5.4924 7.6076 12.3195 + 3.7206 5.4923 7.6075 12.3193 k = 0.6667 0.0000 0.6667 ( 236 PWs) bands (ev): - 2.9492 6.3653 6.9214 13.1569 + 2.9492 6.3652 6.9213 13.1568 k = 0.0000 0.8333 0.0000 ( 242 PWs) bands (ev): - 1.0916 7.7036 11.3169 11.3169 + 1.0916 7.7036 11.3168 11.3168 k = 0.9167-0.0833 0.9167 ( 236 PWs) bands (ev): - 2.7524 6.0454 10.2548 11.2543 + 2.7524 6.0454 10.2547 11.2542 k = 0.8333 0.0000 0.8333 ( 236 PWs) bands (ev): - 4.6516 4.7804 8.2699 11.5694 + 4.6516 4.7804 8.2698 11.5692 k = 0.0000-1.0000 0.0000 ( 230 PWs) bands (ev): - 4.2492 4.2492 11.0421 11.0421 + 4.2491 4.2491 11.0419 11.0419 k =-0.1667 0.3333 0.0000 ( 246 PWs) bands (ev): - -4.9093 14.5284 14.9188 17.8183 + -4.9092 14.5282 14.9187 17.8181 k =-0.2500 0.4167-0.0833 ( 242 PWs) bands (ev): - -3.7718 11.4980 13.9890 16.9330 + -3.7717 11.4979 13.9888 16.9328 k =-0.3333 0.5000-0.1667 ( 241 PWs) bands (ev): - -2.1915 8.2128 13.5508 15.8527 + -2.1915 8.2127 13.5506 15.8525 k = 0.5833-0.4167 0.7500 ( 245 PWs) bands (ev): - -0.1834 5.1215 13.4385 14.9220 + -0.1834 5.1214 13.4383 14.9218 k = 0.5000-0.3333 0.6667 ( 248 PWs) bands (ev): - 1.8514 2.7077 13.5088 14.4976 + 1.8514 2.7077 13.5086 14.4974 k =-0.1667 0.5000 0.0000 ( 240 PWs) bands (ev): - -3.3863 12.5120 12.9789 15.4172 + -3.3863 12.5118 12.9787 15.4170 k =-0.2500 0.5833-0.0833 ( 242 PWs) bands (ev): - -1.9597 9.7407 12.2598 14.2906 + -1.9597 9.7406 12.2597 14.2905 k = 0.6667-0.3333 0.8333 ( 242 PWs) bands (ev): - -0.1078 6.7622 11.9531 13.2951 + -0.1078 6.7621 11.9530 13.2949 k = 0.5833-0.2500 0.7500 ( 244 PWs) bands (ev): - 2.0675 4.0376 11.4911 13.0996 + 2.0675 4.0376 11.4910 13.0994 k = 0.5000-0.1667 0.6667 ( 242 PWs) bands (ev): - 1.3220 4.9225 10.9875 13.7104 + 1.3219 4.9224 10.9874 13.7102 k = 0.4167-0.0833 0.5833 ( 243 PWs) bands (ev): - -0.7751 7.8113 10.7866 14.7292 + -0.7751 7.8112 10.7865 14.7290 k = 0.3333 0.0000 0.5000 ( 245 PWs) bands (ev): - -2.4890 10.6785 11.2079 15.9035 + -2.4890 10.6783 11.2077 15.9033 k =-0.1667 0.6667 0.0000 ( 233 PWs) bands (ev): - -1.2730 10.6158 11.5108 12.5541 + -1.2730 10.6157 11.5106 12.5540 k = 0.7500-0.2500 0.9167 ( 241 PWs) bands (ev): - 0.4166 8.3786 10.4116 11.7076 + 0.4166 8.3785 10.4115 11.7075 k = 0.6667-0.1667 0.8333 ( 241 PWs) bands (ev): - 2.4737 5.8638 9.2553 11.7926 + 2.4736 5.8637 9.2552 11.7925 k = 0.5833-0.0833 0.7500 ( 240 PWs) bands (ev): - 3.1150 5.2146 8.3789 12.4525 + 3.1150 5.2145 8.3788 12.4523 k = 0.5000 0.0000 0.6667 ( 240 PWs) bands (ev): - 1.0411 7.6226 8.1361 13.4967 + 1.0411 7.6225 8.1360 13.4965 k = 0.8333-0.1667 1.0000 ( 238 PWs) bands (ev): - 1.3752 7.8172 10.5785 10.7901 + 1.3752 7.8171 10.5784 10.7900 k = 0.7500-0.0833 0.9167 ( 237 PWs) bands (ev): - 3.2820 6.3579 8.5917 10.8368 + 3.2820 6.3578 8.5915 10.8367 k = 0.6667 0.0000 0.8333 ( 236 PWs) bands (ev): - 4.7275 5.5416 6.7823 11.4553 + 4.7274 5.5415 6.7822 11.4552 k =-0.1667-1.0000 0.0000 ( 240 PWs) bands (ev): - 4.4828 4.4828 10.2998 10.2998 + 4.4828 4.4828 10.2997 10.2997 k = 0.6667-0.3333 1.0000 ( 241 PWs) bands (ev): - -0.4002 9.1556 9.7984 13.0400 + -0.4002 9.1555 9.7982 13.0398 k = 0.5833-0.2500 0.9167 ( 241 PWs) bands (ev): - 1.5518 6.6605 9.5598 11.8615 + 1.5518 6.6604 9.5597 11.8614 k = 0.5000-0.1667 0.8333 ( 244 PWs) bands (ev): - 3.3921 4.5257 9.6735 11.3128 + 3.3920 4.5256 9.6734 11.3127 k = 0.6667-0.1667 1.0000 ( 249 PWs) bands (ev): - 2.2043 7.6799 8.9571 10.0738 + 2.2043 7.6798 8.9570 10.0736 k = 0.5833-0.0833 0.9167 ( 242 PWs) bands (ev): - 4.2151 6.0118 7.9294 9.7768 + 4.2150 6.0118 7.9293 9.7767 k = 0.5000 0.0000 0.8333 ( 245 PWs) bands (ev): - 3.5098 6.6578 7.4201 10.5578 + 3.5098 6.6577 7.4200 10.5576 k =-0.3333-1.0000 0.0000 ( 244 PWs) bands (ev): - 5.1547 5.1547 8.8552 8.8552 + 5.1547 5.1547 8.8551 8.8551 k =-0.5000-1.0000 0.0000 ( 252 PWs) bands (ev): - 5.7054 5.7054 7.9453 7.9453 + 5.7054 5.7054 7.9452 7.9452 -! total energy = -22.58128615 ryd - estimated scf accuracy < 9.3E-15 ryd + highest occupied level (ev): 19.3977 - band energy sum = 4.91039910 ryd - one-electron contribution = 11.69117932 ryd - hartree contribution = 1.57036312 ryd - xc contribution = -7.58421585 ryd - ewald contribution = -28.25861274 ryd +! total energy = -22.58130740 Ry + Harris-Foulkes estimate = -22.58130740 Ry + estimated scf accuracy < 8.3E-15 Ry - convergence has been achieved + The total energy is the sum of the following terms: - Writing output data file di.save - - PWSCF : 4.38s CPU time + one-electron contribution = 11.69117718 Ry + hartree contribution = 1.57036679 Ry + xc contribution = -7.58423863 Ry + ewald contribution = -28.25861274 Ry - init_run : 0.26s CPU - electrons : 4.02s CPU - - electrons : 4.02s CPU - c_bands : 3.49s CPU ( 9 calls, 0.388 s avg) - sum_band : 0.48s CPU ( 9 calls, 0.053 s avg) - v_of_rho : 0.02s CPU ( 10 calls, 0.002 s avg) - mix_rho : 0.01s CPU ( 9 calls, 0.001 s avg) - - c_bands : 3.49s CPU ( 9 calls, 0.388 s avg) - init_us_2 : 0.02s CPU ( 1368 calls, 0.000 s avg) - cegterg : 3.47s CPU ( 648 calls, 0.005 s avg) - - sum_band : 0.48s CPU ( 9 calls, 0.053 s avg) - - wfcrot : 0.24s CPU ( 72 calls, 0.003 s avg) - cegterg : 3.47s CPU ( 648 calls, 0.005 s avg) - h_psi : 2.99s CPU ( 2164 calls, 0.001 s avg) - g_psi : 0.04s CPU ( 1444 calls, 0.000 s avg) - cdiaghg : 0.24s CPU ( 2092 calls, 0.000 s avg) - update : 0.04s CPU ( 1444 calls, 0.000 s avg) - last : 0.00s CPU ( 648 calls, 0.000 s avg) - - h_psi : 2.99s CPU ( 2164 calls, 0.001 s avg) - init : 0.02s CPU ( 2164 calls, 0.000 s avg) - firstfft : 1.32s CPU ( 8012 calls, 0.000 s avg) - secondfft : 1.44s CPU ( 8012 calls, 0.000 s avg) - add_vuspsi : 0.01s CPU ( 2164 calls, 0.000 s avg) + convergence has been achieved in 9 iterations + + Writing output data file di.save/ + init_run : 0.20s CPU 0.25s WALL ( 1 calls) + electrons : 2.68s CPU 2.75s WALL ( 1 calls) + + Called by init_run: + wfcinit : 0.18s CPU 0.21s WALL ( 1 calls) + potinit : 0.00s CPU 0.00s WALL ( 1 calls) + hinit0 : 0.02s CPU 0.04s WALL ( 1 calls) + + Called by electrons: + c_bands : 2.26s CPU 2.33s WALL ( 9 calls) + sum_band : 0.40s CPU 0.40s WALL ( 9 calls) + v_of_rho : 0.01s CPU 0.01s WALL ( 10 calls) + mix_rho : 0.01s CPU 0.01s WALL ( 9 calls) + + Called by c_bands: + init_us_2 : 0.05s CPU 0.03s WALL ( 1368 calls) + cegterg : 2.22s CPU 2.29s WALL ( 648 calls) + + Called by sum_band: + + Called by *egterg: + h_psi : 2.04s CPU 2.10s WALL ( 2067 calls) + g_psi : 0.05s CPU 0.05s WALL ( 1347 calls) + cdiaghg : 0.14s CPU 0.14s WALL ( 1995 calls) + + Called by h_psi: + h_psi:pot : 2.02s CPU 2.09s WALL ( 2067 calls) + h_psi:calbec : 0.02s CPU 0.05s WALL ( 2067 calls) + vloc_psi : 1.98s CPU 2.01s WALL ( 2067 calls) + add_vuspsi : 0.01s CPU 0.02s WALL ( 2067 calls) + General routines - ccalbec : 0.12s CPU ( 2164 calls, 0.000 s avg) - cft3 : 0.01s CPU ( 40 calls, 0.000 s avg) - cft3s : 3.14s CPU ( 18616 calls, 0.000 s avg) - davcio : 0.02s CPU ( 2016 calls, 0.000 s avg) + calbec : 0.02s CPU 0.04s WALL ( 2067 calls) + fft : 0.00s CPU 0.02s WALL ( 29 calls) + ffts : 0.00s CPU 0.00s WALL ( 9 calls) + fftw : 2.04s CPU 2.11s WALL ( 17996 calls) Parallel routines - reduce : 0.39s CPU ( 8123 calls, 0.000 s avg) - fft_scatter : 1.26s CPU ( 18656 calls, 0.000 s avg) + + PWSCF : 2.92s CPU 3.08s WALL + + + This run was terminated on: 15:58:49 1Mar2019 + +=------------------------------------------------------------------------------= + JOB DONE. +=------------------------------------------------------------------------------= diff --git a/PP/src/pw2wannier90.f90 b/PP/src/pw2wannier90.f90 index 83aa273614..d9e2c870ef 100644 --- a/PP/src/pw2wannier90.f90 +++ b/PP/src/pw2wannier90.f90 @@ -946,10 +946,41 @@ SUBROUTINE read_nnkp ALLOCATE( spin_eig(n_proj),spin_qaxis(3,n_proj) ) endif + IF (ionode) THEN ! read from ionode only + DO iw=1,n_proj + READ(iun_nnkp,*) (center_w(i,iw), i=1,3), l_w(iw), mr_w(iw), r_w(iw) + READ(iun_nnkp,*) (zaxis(i,iw),i=1,3),(xaxis(i,iw),i=1,3),alpha_w(iw) + xnorm = sqrt(xaxis(1,iw)*xaxis(1,iw) + xaxis(2,iw)*xaxis(2,iw) + & + xaxis(3,iw)*xaxis(3,iw)) + IF (xnorm < eps6) CALL errore ('read_nnkp',' |xaxis| < eps ',1) + znorm = sqrt(zaxis(1,iw)*zaxis(1,iw) + zaxis(2,iw)*zaxis(2,iw) + & + zaxis(3,iw)*zaxis(3,iw)) + IF (znorm < eps6) CALL errore ('read_nnkp',' |zaxis| < eps ',1) + coseno = (xaxis(1,iw)*zaxis(1,iw) + xaxis(2,iw)*zaxis(2,iw) + & + xaxis(3,iw)*zaxis(3,iw))/xnorm/znorm + IF (abs(coseno) > eps6) & + CALL errore('read_nnkp',' xaxis and zaxis are not orthogonal !',1) + IF (alpha_w(iw) < eps6) & + CALL errore('read_nnkp',' zona value must be positive', 1) + ! convert wannier center in cartesian coordinates (in unit of alat) + CALL cryst_to_cart( 1, center_w(:,iw), at, 1 ) + if(noncolin.and..not.old_spinor_proj) then + READ(iun_nnkp,*) spin_eig(iw),(spin_qaxis(i,iw),i=1,3) + xnorm = sqrt(spin_qaxis(1,iw)*spin_qaxis(1,iw) + spin_qaxis(2,iw)*spin_qaxis(2,iw) + & + spin_qaxis(3,iw)*spin_qaxis(3,iw)) + IF (xnorm < eps6) CALL errore ('read_nnkp',' |xaxis| < eps ',1) + spin_qaxis(:,iw)=spin_qaxis(:,iw)/xnorm + endif + ENDDO + ENDIF + ! automatic projections IF (ionode) THEN CALL scan_file_to('auto_projections',found) IF (found) THEN + READ (iun_nnkp, *) n_wannier + READ (iun_nnkp, *) tmp_auto + IF (scdm_proj) THEN IF (n_proj > 0) THEN WRITE(stdout,'(//, " ****** begin Error message ******",/)') @@ -959,8 +990,6 @@ SUBROUTINE read_nnkp WRITE(stdout,'(/, " ****** end Error message ******",//)') CALL errore( 'pw2wannier90', 'Inconsistent options for projections.', 1 ) ELSE - READ (iun_nnkp, *) n_wannier - READ (iun_nnkp, *) tmp_auto IF (tmp_auto /= 0) CALL errore( 'pw2wannier90', 'Second entry in auto_projections block is not 0. ' // & 'See Wannier90 User Guide in the auto_projections section for clarifications.', 1 ) ENDIF @@ -978,34 +1007,6 @@ SUBROUTINE read_nnkp ENDIF ENDIF - IF (ionode) THEN ! read from ionode only - DO iw=1,n_proj - READ(iun_nnkp,*) (center_w(i,iw), i=1,3), l_w(iw), mr_w(iw), r_w(iw) - READ(iun_nnkp,*) (zaxis(i,iw),i=1,3),(xaxis(i,iw),i=1,3),alpha_w(iw) - xnorm = sqrt(xaxis(1,iw)*xaxis(1,iw) + xaxis(2,iw)*xaxis(2,iw) + & - xaxis(3,iw)*xaxis(3,iw)) - IF (xnorm < eps6) CALL errore ('read_nnkp',' |xaxis| < eps ',1) - znorm = sqrt(zaxis(1,iw)*zaxis(1,iw) + zaxis(2,iw)*zaxis(2,iw) + & - zaxis(3,iw)*zaxis(3,iw)) - IF (znorm < eps6) CALL errore ('read_nnkp',' |zaxis| < eps ',1) - coseno = (xaxis(1,iw)*zaxis(1,iw) + xaxis(2,iw)*zaxis(2,iw) + & - xaxis(3,iw)*zaxis(3,iw))/xnorm/znorm - IF (abs(coseno) > eps6) & - CALL errore('read_nnkp',' xaxis and zaxis are not orthogonal !',1) - IF (alpha_w(iw) < eps6) & - CALL errore('read_nnkp',' zona value must be positive', 1) - ! convert wannier center in cartesian coordinates (in unit of alat) - CALL cryst_to_cart( 1, center_w(:,iw), at, 1 ) - if(noncolin.and..not.old_spinor_proj) then - READ(iun_nnkp,*) spin_eig(iw),(spin_qaxis(i,iw),i=1,3) - xnorm = sqrt(spin_qaxis(1,iw)*spin_qaxis(1,iw) + spin_qaxis(2,iw)*spin_qaxis(2,iw) + & - spin_qaxis(3,iw)*spin_qaxis(3,iw)) - IF (xnorm < eps6) CALL errore ('read_nnkp',' |xaxis| < eps ',1) - spin_qaxis(:,iw)=spin_qaxis(:,iw)/xnorm - endif - ENDDO - ENDIF - ! Broadcast CALL mp_bcast(n_wannier,ionode_id, world_comm) CALL mp_bcast(center_w,ionode_id, world_comm) @@ -4952,5 +4953,3 @@ SUBROUTINE radialpart(ng, q, alfa, rvalue, lmax, radial) DEALLOCATE (bes, func_r, r, rij, aux ) RETURN END SUBROUTINE radialpart - - diff --git a/PW/Doc/INPUT_PW.def b/PW/Doc/INPUT_PW.def index 749f5954c8..c65b783137 100644 --- a/PW/Doc/INPUT_PW.def +++ b/PW/Doc/INPUT_PW.def @@ -389,10 +389,10 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x If finite electric field is applied (@ref lelfield==.true.) only Kubo terms are computed [for details see New J. Phys. 12, 053032 (2010), doi:10.1088/1367-2630/12/5/053032]. - The type of calculation is @b 'nscf' and should be performed on an automatically - generated uniform grid of k points. + The type of calculation is @b 'nscf' and should be performed on an automatically + generated uniform grid of k points. - Works ONLY with norm-conserving pseudopotentials. + Works ONLY with norm-conserving pseudopotentials. } } @@ -884,13 +884,13 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x Well suited for calculation of DOS, less so (because not variational) for force/optimization/dynamics calculations. - } - opt -val 'tetrahedra_lin' { + } + opt -val 'tetrahedra_lin' { Original linear tetrahedron method. To be used only as a reference; the optimized tetrahedron method is more efficient. } - opt -val 'tetrahedra_opt' { + opt -val 'tetrahedra_opt' { Optimized tetrahedron method: see M. Kawamura, PRB 89, 094515 (2014). Can be used for phonon calculations as well. @@ -1032,7 +1032,7 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x is greater than "ecfixed". In the kinetic energy, G^2 is replaced by G^2 + qcutz * (1 + erf ( (G^2 - ecfixed)/q2sigma) ) See: M. Bernasconi et al, J. Phys. Chem. Solids 56, 501 (1995), - doi:10.1016/0022-3697(94)00228-2 + doi:10.1016/0022-3697(94)00228-2 } } @@ -1060,7 +1060,7 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x info { screening_parameter for HSE like hybrid functionals. For more information, see: - J. Chem. Phys. 118, 8207 (2003), doi:10.1063/1.1564060 + J. Chem. Phys. 118, 8207 (2003), doi:10.1063/1.1564060 J. Chem. Phys. 124, 219906 (2006), doi:10.1063/1.2204597 } } @@ -1101,7 +1101,7 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x divergencies at small q vectors. } } - + vargroup -type INTEGER { var nqx1 var nqx2 @@ -1117,14 +1117,14 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x } var localization_thr -type REAL { - default {0.0 } - info { + default {0.0 } + info { Overlap threshold over which the exchange integral over a pair of localized orbitals is included in the evaluation of EXX operator. Any value greater than 0.0 triggers the SCDM localization and the evaluation on EXX using the localized orbitals. Very small value of the threshold should yield the same result as the default EXX evaluation } - } + } var lda_plus_u -type LOGICAL { default { .FALSE. } @@ -1302,7 +1302,7 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x } } - dimension angle1 -start 1 -end ntyp -type REAL { + dimension angle1 -start 1 -end ntyp -type REAL { info { The angle expressed in degrees between the initial magnetization and the z-axis. For noncollinear calculations @@ -1319,11 +1319,13 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x } var lforcet -type LOGICAL { - info { When starting a non collinear calculation using an existing density - file from a collinear lsda calculation assumes previous density points in - z direction and rotates is in the direction described by @ref angle1 and - @ref angle2 variables for atomic type 1} - } + info { + When starting a non collinear calculation using an existing density + file from a collinear lsda calculation assumes previous density points in + @i z direction and rotates it in the direction described by @ref angle1 and + @ref angle2 variables for atomic type 1 + } + } var constrained_magnetization -type CHARACTER { see { lambda, fixed_magnetization } @@ -1449,7 +1451,7 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x "A reciprocal space based method for treating long range interactions in ab-initio and force-field-based calculation in clusters", J. Chem. Phys. 110, 2810 (1999), - doi:10.1063/1.477923. + doi:10.1063/1.477923. } opt -val 'esm' { @@ -1466,7 +1468,7 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x of charged surfaces and interfaces: A plane-wave nonrepeated slab approach", PRB 73, 115407 (2006). - NB: + NB: - Two dimensional (xy plane) average charge density and electrostatic potentials are printed out to 'prefix.esm1'. @@ -1501,7 +1503,8 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x perturbation theory for gated two-dimensional heterostructures: Theoretical developments and application to flexural phonons in graphene. Physical Review B, 96(7), 75448. https://doi.org/10.1103/PhysRevB.96.075448 - NB: + + NB: - The length of the unit-cell along the z direction should be larger than twice the thickness of the 2D material (including electrons). A reasonable estimate for a @@ -1600,7 +1603,7 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x opt -val {'grimme-d3', 'Grimme-D3', 'DFT-D3', 'dft-d3' } { Semiempirical Grimme's DFT-D3. Optional variables: @ref dftd3_version, @ref dftd3_threebody - S. Grimme et al, J. Chem. Phys 132, 154104 (2010) + S. Grimme et al, J. Chem. Phys 132, 154104 (2010), doi:10.1002/jcc.20495 } opt -val {'TS', 'ts', 'ts-vdw', 'ts-vdW', 'tkatchenko-scheffler'} { @@ -1614,7 +1617,7 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x Exchange-hole dipole-moment model. Optional variables: @ref xdm_a1, @ref xdm_a2 A. D. Becke et al., J. Chem. Phys. 127, 154108 (2007), doi:10.1063/1.2795701 A. Otero de la Roza et al., J. Chem. Phys. 136, 174109 (2012), - doi:10.1063/1.4705760 + doi:10.1063/1.4705760 } info { Note that non-local functionals (eg vdw-DF) are NOT specified here but in @ref input_dft } } @@ -1639,7 +1642,7 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x atomic C6 coefficient of each atom type ( if not specified default values from S. Grimme, J. Comp. Chem. 27, 1787 (2006), - doi:10.1002/jcc.20495 are used; see file Modules/mm_dispersion.f90 ) + doi:10.1002/jcc.20495 are used; see file Modules/mm_dispersion.f90 ) } } dimension london_rvdw -type REAL -start 1 -end ntyp { @@ -1648,7 +1651,7 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x atomic vdw radii of each atom type ( if not specified default values from S. Grimme, J. Comp. Chem. 27, 1787 (2006), - doi:10.1002/jcc.20495 are used; see file Modules/mm_dispersion.f90 ) + doi:10.1002/jcc.20495 are used; see file Modules/mm_dispersion.f90 ) } } var london_rcut -type REAL { @@ -1658,16 +1661,31 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x } } var dftd3_version -type integer { - default { 3 } - info { - Version of Grimme implementation of Grimme-D3: - Version=2 is the original Grimme-D2 parametrization - Version=3 is Grimme-D3 (zero damping) - Version=4 is Grimme-D3 (BJ damping) - Version=5 is Grimme-D3M (zero damping) - Version=6 is Grimme-D3M (BJ damping) - NOTE: not all functionals are parametrized. - } + default { 3 } + options { + info { + Version of Grimme implementation of Grimme-D3: + } + opt -val {dftd3_version = 2} { + Original Grimme-D2 parametrization + } + opt -val {dftd3_version = 3} { + Grimme-D3 (zero damping) + } + opt -val {dftd3_version = 4} { + Grimme-D3 (BJ damping) + } + opt -val {dftd3_version = 5} { + Grimme-D3M (zero damping) + } + opt -val {dftd3_version = 6} { + Grimme-D3M (BJ damping) + } + + info { + NOTE: not all functionals are parametrized. + } + } } var dftd3_threebody -type LOGICAL { default { TRUE } @@ -1704,22 +1722,22 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x default { 0.6836 } info { Damping function parameter a1 (adimensional). It is NOT necessary to give - a value if the functional is one of B86bPBE, PW86PBE, PBE, BLYP. For functionals + a value if the functional is one of B86bPBE, PW86PBE, PBE, BLYP. For functionals in this list, the coefficients are given in: http://schooner.chem.dal.ca/wiki/XDM - A. Otero de la Roza, E. R. Johnson, J. Chem. Phys. 138, 204109 (2013), - doi:10.1063/1.4705760 + A. Otero de la Roza, E. R. Johnson, J. Chem. Phys. 138, 204109 (2013), + doi:10.1063/1.4705760 } } var xdm_a2 -type REAL { default { 1.5045 } info { Damping function parameter a2 (angstrom). It is NOT necessary to give - a value if the functional is one of B86bPBE, PW86PBE, PBE, BLYP. For functionals + a value if the functional is one of B86bPBE, PW86PBE, PBE, BLYP. For functionals in this list, the coefficients are given in: http://schooner.chem.dal.ca/wiki/XDM - A. Otero de la Roza, E. R. Johnson, J. Chem. Phys. 138, 204109 (2013), - doi:10.1063/1.4705760 + A. Otero de la Roza, E. R. Johnson, J. Chem. Phys. 138, 204109 (2013), + doi:10.1063/1.4705760 } } @@ -1770,72 +1788,72 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x } group { - label { variables used only if @ref gate = .TRUE. } - - var zgate -type REAL { - default { 0.5 } - info { - used only if @ref gate = .TRUE. - Specifies the position of the charged plate which represents - the counter charge in doped systems (@ref tot_charge .ne. 0). - In units of the unit cell length in @i z direction, @ref zgate in ]0,1[ + label { variables used only if @ref gate = .TRUE. } + + var zgate -type REAL { + default { 0.5 } + info { + used only if @ref gate = .TRUE. + Specifies the position of the charged plate which represents + the counter charge in doped systems (@ref tot_charge .ne. 0). + In units of the unit cell length in @i z direction, @ref zgate in ]0,1[ Details of the gate potential can be found in T. Brumme, M. Calandra, F. Mauri; PRB 89, 245406 (2014). - } - } - - var relaxz -type LOGICAL { - default { .FALSE. } - info { - used only if @ref gate = .TRUE. - Allows the relaxation of the system towards the charged plate. - Use carefully and utilize either a layer of fixed atoms or a - potential barrier (@ref block=.TRUE.) to avoid the atoms moving to - the position of the plate or the dipole of the dipole - correction (@ref dipfield=.TRUE.). - } - } - - var block -type LOGICAL { - default { .FALSE. } - info { - used only if @ref gate = .TRUE. - Adds a potential barrier to the total potential seen by the - electrons to mimic a dielectric in field effect configuration - and/or to avoid electrons spilling into the vacuum region for - electron doping. Potential barrier is from @ref block_1 to @ref block_2 and - has a height of block_height. - If @ref dipfield = .TRUE. then @ref eopreg is used for a smooth increase and - decrease of the potential barrier. - } - } - - var block_1 -type REAL { - default { 0.45 } - info { - used only if @ref gate = .TRUE. and @ref block = .TRUE. - lower beginning of the potential barrier, in units of the - unit cell size along @i z, @ref block_1 in ]0,1[ - } - } - - var block_2 -type REAL { - default { 0.55 } - info { - used only if @ref gate = .TRUE. and @ref block = .TRUE. - upper beginning of the potential barrier, in units of the - unit cell size along @i z, @ref block_2 in ]0,1[ - } - } - - var block_height -type REAL { - default { 0.1 } - info { - used only if @ref gate = .TRUE. and @ref block = .TRUE. - Height of the potential barrier in Rydberg. - } - } - } + } + } + + var relaxz -type LOGICAL { + default { .FALSE. } + info { + used only if @ref gate = .TRUE. + Allows the relaxation of the system towards the charged plate. + Use carefully and utilize either a layer of fixed atoms or a + potential barrier (@ref block=.TRUE.) to avoid the atoms moving to + the position of the plate or the dipole of the dipole + correction (@ref dipfield=.TRUE.). + } + } + + var block -type LOGICAL { + default { .FALSE. } + info { + used only if @ref gate = .TRUE. + Adds a potential barrier to the total potential seen by the + electrons to mimic a dielectric in field effect configuration + and/or to avoid electrons spilling into the vacuum region for + electron doping. Potential barrier is from @ref block_1 to @ref block_2 and + has a height of block_height. + If @ref dipfield = .TRUE. then @ref eopreg is used for a smooth increase and + decrease of the potential barrier. + } + } + + var block_1 -type REAL { + default { 0.45 } + info { + used only if @ref gate = .TRUE. and @ref block = .TRUE. + lower beginning of the potential barrier, in units of the + unit cell size along @i z, @ref block_1 in ]0,1[ + } + } + + var block_2 -type REAL { + default { 0.55 } + info { + used only if @ref gate = .TRUE. and @ref block = .TRUE. + upper beginning of the potential barrier, in units of the + unit cell size along @i z, @ref block_2 in ]0,1[ + } + } + + var block_height -type REAL { + default { 0.1 } + info { + used only if @ref gate = .TRUE. and @ref block = .TRUE. + Height of the potential barrier in Rydberg. + } + } + } } @@ -2111,7 +2129,7 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x If .true., use a real-space algorithm for augmentation charges of ultrasoft pseudopotentials and PAWsets. Faster but numerically less accurate than the default - G-space algorithm. Use with care and after testing! + G-space algorithm. Use with care and after testing! } } @@ -2119,10 +2137,10 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x default { .FALSE. } info { If .true., exploit real-space localization to compute - matrix elements for nonlocal projectors. Faster and in - principle better scaling than the default G-space algorithm, + matrix elements for nonlocal projectors. Faster and in + principle better scaling than the default G-space algorithm, but numerically less accurate, may lead to some loss of - translational invariance. Use with care and after testing! + translational invariance. Use with care and after testing! } } } @@ -2138,67 +2156,67 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x } var ion_dynamics -type CHARACTER { - options { - info { - Specify the type of ionic dynamics. - - For different type of calculation different possibilities are - allowed and different default values apply: - - @b CASE ( @ref calculation == 'relax' ) - } - opt -val 'bfgs' { - @b (default) use BFGS quasi-newton algorithm, - based on the trust radius procedure, - for structural relaxation - } - opt -val 'damp' { - use damped (quick-min Verlet) - dynamics for structural relaxation - Can be used for constrained - optimisation: see @ref CONSTRAINTS card - } - info { - @b CASE ( @ref calculation == 'md' ) - } - opt -val 'verlet' { - @b (default) use Verlet algorithm to integrate - Newton's equation. For constrained - dynamics, see @ref CONSTRAINTS card - } - opt -val 'langevin' { - ion dynamics is over-damped Langevin + options { + info { + Specify the type of ionic dynamics. + + For different type of calculation different possibilities are + allowed and different default values apply: + + @b CASE ( @ref calculation == 'relax' ) + } + opt -val 'bfgs' { + @b (default) use BFGS quasi-newton algorithm, + based on the trust radius procedure, + for structural relaxation + } + opt -val 'damp' { + use damped (quick-min Verlet) + dynamics for structural relaxation + Can be used for constrained + optimisation: see @ref CONSTRAINTS card + } + info { + @b CASE ( @ref calculation == 'md' ) + } + opt -val 'verlet' { + @b (default) use Verlet algorithm to integrate + Newton's equation. For constrained + dynamics, see @ref CONSTRAINTS card + } + opt -val 'langevin' { + ion dynamics is over-damped Langevin } opt -val 'langevin-smc' { over-damped Langevin with Smart Monte Carlo: see R.J. Rossky, JCP, 69, 4628 (1978), doi:10.1063/1.436415 - } - info { - @b CASE ( @ref calculation == 'vc-relax' ) - } - opt -val 'bfgs' { - @b (default) use BFGS quasi-newton algorithm; - cell_dynamics must be 'bfgs' too - } - opt -val 'damp' { - use damped (Beeman) dynamics for - structural relaxation - } + } + info { + @b CASE ( @ref calculation == 'vc-relax' ) + } + opt -val 'bfgs' { + @b (default) use BFGS quasi-newton algorithm; + cell_dynamics must be 'bfgs' too + } + opt -val 'damp' { + use damped (Beeman) dynamics for + structural relaxation + } info { - @b CASE ( @ref calculation == 'vc-md' ) - } - opt -val 'beeman' { - @b (default) use Beeman algorithm to integrate - Newton's equation - } + @b CASE ( @ref calculation == 'vc-md' ) + } + opt -val 'beeman' { + @b (default) use Beeman algorithm to integrate + Newton's equation + } } } var ion_positions -type CHARACTER { default { 'default' } options { - info { Available options are: } - + info { Available options are: } + opt -val 'default' { if restarting, use atomic positions read from the restart file; in all other cases, use atomic @@ -2287,8 +2305,8 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x var ion_temperature -type CHARACTER { default { 'not_controlled' } options { - info { Available options are: } - + info { Available options are: } + opt -val 'rescaling' { control ionic temperature via velocity rescaling (first method) see parameters @ref tempw, @ref tolp, and @@ -2472,36 +2490,36 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x } var cell_dynamics -type CHARACTER { - options { - info { - Specify the type of dynamics for the cell. - For different type of calculation different possibilities - are allowed and different default values apply: - - @b CASE ( @ref calculation == 'vc-relax' ) - } - opt -val 'none' { no dynamics } - opt -val 'sd' { steepest descent ( not implemented ) } - opt -val 'damp-pr' { - damped (Beeman) dynamics of the Parrinello-Rahman extended lagrangian - } - opt -val 'damp-w' { - damped (Beeman) dynamics of the new Wentzcovitch extended lagrangian - } - opt -val 'bfgs' { - BFGS quasi-newton algorithm @b (default) - @ref ion_dynamics must be @b 'bfgs' too - } - info { - @b CASE ( @ref calculation == 'vc-md' ) - } - opt -val 'none' { no dynamics } - opt -val 'pr' { - (Beeman) molecular dynamics of the Parrinello-Rahman extended lagrangian - } - opt -val 'w' { - (Beeman) molecular dynamics of the new Wentzcovitch extended lagrangian - } + options { + info { + Specify the type of dynamics for the cell. + For different type of calculation different possibilities + are allowed and different default values apply: + + @b CASE ( @ref calculation == 'vc-relax' ) + } + opt -val 'none' { no dynamics } + opt -val 'sd' { steepest descent ( not implemented ) } + opt -val 'damp-pr' { + damped (Beeman) dynamics of the Parrinello-Rahman extended lagrangian + } + opt -val 'damp-w' { + damped (Beeman) dynamics of the new Wentzcovitch extended lagrangian + } + opt -val 'bfgs' { + BFGS quasi-newton algorithm @b (default) + @ref ion_dynamics must be @b 'bfgs' too + } + info { + @b CASE ( @ref calculation == 'vc-md' ) + } + opt -val 'none' { no dynamics } + opt -val 'pr' { + (Beeman) molecular dynamics of the Parrinello-Rahman extended lagrangian + } + opt -val 'w' { + (Beeman) molecular dynamics of the new Wentzcovitch extended lagrangian + } } } @@ -2543,10 +2561,10 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x var cell_dofree -type CHARACTER { default { 'all' } - options { - info { - Select which of the cell parameters should be moved: - } + options { + info { + Select which of the cell parameters should be moved: + } opt -val 'all' { all axis and angles are moved } opt -val 'ibrav' { all axis and angles are moved, but the lattice but be representable with the initial ibrav choice } opt -val 'x' { only the x component of axis 1 (v1_x) is moved } @@ -2563,11 +2581,11 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x opt -val 'epitaxial_ab' {fix axis 1 and 2 while allowing axis 3 to move } opt -val 'epitaxial_ac' {fix axis 1 and 3 while allowing axis 2 to move } opt -val 'epitaxial_bc' {fix axis 2 and 3 while allowing axis 1 to move } - info { - BEWARE: if axis are not orthogonal, some of these options do not - work (symmetry is broken). If you are not happy with them, - edit subroutine init_dofree in file Modules/cell_base.f90 - } + info { + BEWARE: if axis are not orthogonal, some of these options do not + work (symmetry is broken). If you are not happy with them, + edit subroutine init_dofree in file Modules/cell_base.f90 + } } } } @@ -2914,7 +2932,7 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x @b 'alat' / nothing specified: lattice vectors in units of the lattice parameter (either @ref celldm(1) or @ref A). Not specifying units is DEPRECATED - and will not be allowed in the future. + and will not be allowed in the future. If neither unit nor lattice parameter are specified, 'bohr' is assumed - DEPRECATED, will no longer be allowed @@ -2974,43 +2992,43 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x table constraints_table { rows -start 1 -end nconstr { col constr_type -type CHARACTER { - options { + options { info { Type of constraint : } opt -val 'type_coord' { - constraint on global coordination-number, i.e. the - average number of atoms of type B surrounding the - atoms of type A. The coordination is defined by - using a Fermi-Dirac. - (four indexes must be specified). - } + constraint on global coordination-number, i.e. the + average number of atoms of type B surrounding the + atoms of type A. The coordination is defined by + using a Fermi-Dirac. + (four indexes must be specified). + } opt -val 'atom_coord' { - constraint on local coordination-number, i.e. the - average number of atoms of type A surrounding a - specific atom. The coordination is defined by - using a Fermi-Dirac. - (four indexes must be specified). - } + constraint on local coordination-number, i.e. the + average number of atoms of type A surrounding a + specific atom. The coordination is defined by + using a Fermi-Dirac. + (four indexes must be specified). + } opt -val 'distance' { - constraint on interatomic distance - (two atom indexes must be specified). - } + constraint on interatomic distance + (two atom indexes must be specified). + } opt -val 'planar_angle' { - constraint on planar angle - (three atom indexes must be specified). - } + constraint on planar angle + (three atom indexes must be specified). + } opt -val 'torsional_angle' { - constraint on torsional angle - (four atom indexes must be specified). - } + constraint on torsional angle + (four atom indexes must be specified). + } opt -val 'bennett_proj' { - constraint on the projection onto a given direction - of the vector defined by the position of one atom - minus the center of mass of the others. - G. Roma, J.P. Crocombette: J. Nucl. Mater. 403, 32 (2010), - doi:10.1016/j.jnucmat.2010.06.001 - } + constraint on the projection onto a given direction + of the vector defined by the position of one atom + minus the center of mass of the others. + G. Roma, J.P. Crocombette: J. Nucl. Mater. 403, 32 (2010), + doi:10.1016/j.jnucmat.2010.06.001 + } } } colgroup { @@ -3024,27 +3042,27 @@ input_description -distribution {Quantum Espresso} -package PWscf -program pw.x These variables have different meanings for different constraint types: @b 'type_coord' : - @i constr(1) is the first index of the atomic type involved + @i constr(1) is the first index of the atomic type involved @i constr(2) is the second index of the atomic type involved @i constr(3) is the cut-off radius for estimating the coordination @i constr(4) is a smoothing parameter @b 'atom_coord' : - @i constr(1) is the atom index of the atom with constrained coordination + @i constr(1) is the atom index of the atom with constrained coordination @i constr(2) is the index of the atomic type involved in the coordination @i constr(3) is the cut-off radius for estimating the coordination @i constr(4) is a smoothing parameter @b 'distance' : - atoms indices object of the constraint, as they appear in + atoms indices object of the constraint, as they appear in the @ref ATOMIC_POSITIONS card @b 'planar_angle', @b 'torsional_angle' : - atoms indices object of the constraint, as they appear in the - @ref ATOMIC_POSITIONS card (beware the order) + atoms indices object of the constraint, as they appear in the + @ref ATOMIC_POSITIONS card (beware the order) @b 'bennett_proj' : - @i constr(1) is the index of the atom whose position is constrained. + @i constr(1) is the index of the atom whose position is constrained. @i constr(2:4) are the three coordinates of the vector that specifies the constraint direction. } diff --git a/PW/Doc/INPUT_PW.html b/PW/Doc/INPUT_PW.html index 7d2315e75c..584db39f45 100644 --- a/PW/Doc/INPUT_PW.html +++ b/PW/Doc/INPUT_PW.html @@ -62,47 +62,47 @@

    TABLE OF CONTENTS

    &SYSTEM

    -ibrav | celldm | A | B | C | cosAB | cosAC | cosBC | nat | ntyp | nbnd | tot_charge | starting_charge | tot_magnetization | starting_magnetization | ecutwfc | ecutrho | ecutfock | nr1 | nr2 | nr3 | nr1s | nr2s | nr3s | nosym | nosym_evc | noinv | no_t_rev | force_symmorphic | use_all_frac | occupations | one_atom_occupations | starting_spin_angle | degauss | smearing | nspin | noncolin | ecfixed | qcutz | q2sigma | input_dft | exx_fraction | screening_parameter | exxdiv_treatment | x_gamma_extrapolation | ecutvcut | nqx1 | nqx2 | nqx3 | localization_thr | lda_plus_u | lda_plus_u_kind | Hubbard_U | Hubbard_J0 | Hubbard_alpha | Hubbard_beta | Hubbard_J | starting_ns_eigenvalue | U_projection_type | edir | emaxpos | eopreg | eamp | angle1 | angle2 | lforcet | constrained_magnetization | fixed_magnetization | lambda | report | lspinorb | assume_isolated | esm_bc | esm_w | esm_efield | esm_nfit | fcp_mu | vdw_corr | london | london_s6 | london_c6 | london_rvdw | london_rcut | dftd3_version | dftd3_threebody | ts_vdw_econv_thr | ts_vdw_isolated | xdm | xdm_a1 | xdm_a2 | space_group | uniqueb | origin_choice | rhombohedral | zgate | relaxz | block | block_1 | block_2 | block_height +ibrav | celldm | A | B | C | cosAB | cosAC | cosBC | nat | ntyp | nbnd | tot_charge | starting_charge | tot_magnetization | starting_magnetization | ecutwfc | ecutrho | ecutfock | nr1 | nr2 | nr3 | nr1s | nr2s | nr3s | nosym | nosym_evc | noinv | no_t_rev | force_symmorphic | use_all_frac | occupations | one_atom_occupations | starting_spin_angle | degauss | smearing | nspin | noncolin | ecfixed | qcutz | q2sigma | input_dft | exx_fraction | screening_parameter | exxdiv_treatment | x_gamma_extrapolation | ecutvcut | nqx1 | nqx2 | nqx3 | localization_thr | lda_plus_u | lda_plus_u_kind | Hubbard_U | Hubbard_J0 | Hubbard_alpha | Hubbard_beta | Hubbard_J | starting_ns_eigenvalue | U_projection_type | edir | emaxpos | eopreg | eamp | angle1 | angle2 | lforcet | constrained_magnetization | fixed_magnetization | lambda | report | lspinorb | assume_isolated | esm_bc | esm_w | esm_efield | esm_nfit | fcp_mu | vdw_corr | london | london_s6 | london_c6 | london_rvdw | london_rcut | dftd3_version | dftd3_threebody | ts_vdw_econv_thr | ts_vdw_isolated | xdm | xdm_a1 | xdm_a2 | space_group | uniqueb | origin_choice | rhombohedral | zgate | relaxz | block | block_1 | block_2 | block_height
    -

    &ELECTRONS

    +

    &ELECTRONS

    -electron_maxstep | scf_must_converge | conv_thr | adaptive_thr | conv_thr_init | conv_thr_multi | mixing_mode | mixing_beta | mixing_ndim | mixing_fixed_ns | diagonalization | ortho_para | diago_thr_init | diago_cg_maxiter | diago_david_ndim | diago_full_acc | efield | efield_cart | efield_phase | startingpot | startingwfc | tqr | real_space +electron_maxstep | scf_must_converge | conv_thr | adaptive_thr | conv_thr_init | conv_thr_multi | mixing_mode | mixing_beta | mixing_ndim | mixing_fixed_ns | diagonalization | ortho_para | diago_thr_init | diago_cg_maxiter | diago_david_ndim | diago_full_acc | efield | efield_cart | efield_phase | startingpot | startingwfc | tqr | real_space
    -

    &IONS

    +

    &IONS

    -ion_dynamics | ion_positions | pot_extrapolation | wfc_extrapolation | remove_rigid_rot | ion_temperature | tempw | tolp | delta_t | nraise | refold_pos | upscale | bfgs_ndim | trust_radius_max | trust_radius_min | trust_radius_ini | w_1 | w_2 +ion_dynamics | ion_positions | pot_extrapolation | wfc_extrapolation | remove_rigid_rot | ion_temperature | tempw | tolp | delta_t | nraise | refold_pos | upscale | bfgs_ndim | trust_radius_max | trust_radius_min | trust_radius_ini | w_1 | w_2
    -

    &CELL

    +

    &CELL

    -cell_dynamics | press | wmass | cell_factor | press_conv_thr | cell_dofree +cell_dynamics | press | wmass | cell_factor | press_conv_thr | cell_dofree
    -

    ATOMIC_SPECIES

    +

    ATOMIC_SPECIES

    -X | Mass_X | PseudoPot_X +X | Mass_X | PseudoPot_X
    -

    ATOMIC_POSITIONS

    +

    ATOMIC_POSITIONS

    -X | x | y | z | if_pos(1) | if_pos(2) | if_pos(3) +X | x | y | z | if_pos(1) | if_pos(2) | if_pos(3)
    -

    K_POINTS

    +

    K_POINTS

    -nks | xk_x | xk_y | xk_z | wk | nk1 | nk2 | nk3 | sk1 | sk2 | sk3 +nks | xk_x | xk_y | xk_z | wk | nk1 | nk2 | nk3 | sk1 | sk2 | sk3
    -

    CELL_PARAMETERS

    +

    CELL_PARAMETERS

    -v1 | v2 | v3 +v1 | v2 | v3
    -

    CONSTRAINTS

    +

    CONSTRAINTS

    -nconstr | constr_tol | constr_type | constr(1) | constr(2) | constr(3) | constr(4) | constr_target +nconstr | constr_tol | constr_type | constr(1) | constr(2) | constr(3) | constr(4) | constr_target
    -

    OCCUPATIONS

    +

    OCCUPATIONS

    -f_inp1 | f_inp2 +f_inp1 | f_inp2
    -

    ATOMIC_FORCES

    +

    ATOMIC_FORCES

    -X | fx | fy | fz +X | fx | fy | fz
    @@ -2157,13 +2157,13 @@

    TABLE OF CONTENTS

     When starting a non collinear calculation using an existing density
    -                      file from a collinear lsda calculation assumes previous density points in
    -                      z direction and rotates is in the direction described by angle1 and
    -                      angle2 variables for atomic type 1
    +file from a collinear lsda calculation assumes previous density points in
    +z direction and rotates it in the direction described by angle1 and
    +angle2 variables for atomic type 1
              
    - +
    @@ -2248,7 +2248,7 @@

    TABLE OF CONTENTS

    constrained_magnetization CHARACTER
    - +
    @@ -2268,7 +2268,7 @@

    TABLE OF CONTENTS

    fixed_magnetization(i), i=1,3 REAL
    - +
    @@ -2289,7 +2289,7 @@

    TABLE OF CONTENTS

    lambda REAL
    - +
    @@ -2305,7 +2305,7 @@

    TABLE OF CONTENTS

    report INTEGER
    - +
    @@ -2316,7 +2316,7 @@

    TABLE OF CONTENTS

    lspinorb LOGICAL
    - +
    @@ -2407,34 +2407,35 @@

    TABLE OF CONTENTS

    '2D' :
    -        Truncation of the Coulomb interaction in the z direction
    -        for structures periodic in the x-y plane. Total energy,
    -        forces and stresses are computed in a two-dimensional framework.
    -        Linear-response calculations () done on top of a self-consistent
    -        calculation with this flag will automatically be performed in
    -        the 2D framework as well. Please refer to:
    -        Sohier, T., Calandra, M., & Mauri, F. (2017), Density functional
    -        perturbation theory for gated two-dimensional heterostructures:
    -        Theoretical developments and application to flexural phonons in graphene.
    -        Physical Review B, 96(7), 75448. https://doi.org/10.1103/PhysRevB.96.075448
    +Truncation of the Coulomb interaction in the z direction
    +for structures periodic in the x-y plane. Total energy,
    +forces and stresses are computed in a two-dimensional framework.
    +Linear-response calculations () done on top of a self-consistent
    +calculation with this flag will automatically be performed in
    +the 2D framework as well. Please refer to:
    +Sohier, T., Calandra, M., & Mauri, F. (2017), Density functional
    +perturbation theory for gated two-dimensional heterostructures:
    +Theoretical developments and application to flexural phonons in graphene.
    +Physical Review B, 96(7), 75448. https://doi.org/10.1103/PhysRevB.96.075448
    +
     NB:
    -           - The length of the unit-cell along the z direction should
    -             be larger than twice the thickness of the 2D material
    -             (including electrons). A reasonable estimate for a
    -             layer's thickness could be the interlayer distance in the
    -             corresponding layered bulk material. Otherwise,
    -             the atomic thickness + 10 bohr should be a safe estimate.
    -             There is also a lower limit of 20 bohr imposed by the cutoff
    -             radius used to read pseudopotentials (see read_pseudo.f90 in Modules).
    +   - The length of the unit-cell along the z direction should
    +     be larger than twice the thickness of the 2D material
    +     (including electrons). A reasonable estimate for a
    +     layer's thickness could be the interlayer distance in the
    +     corresponding layered bulk material. Otherwise,
    +     the atomic thickness + 10 bohr should be a safe estimate.
    +     There is also a lower limit of 20 bohr imposed by the cutoff
    +     radius used to read pseudopotentials (see read_pseudo.f90 in Modules).
     
    -           - As for ESM above, only in-plane stresses make sense and one
    -             should use cell_dofree='2Dxy' in a vc-relax calculation.
    +   - As for ESM above, only in-plane stresses make sense and one
    +     should use cell_dofree='2Dxy' in a vc-relax calculation.
                 
    assume_isolated CHARACTER
    - +
    @@ -2480,7 +2481,7 @@

    TABLE OF CONTENTS

    esm_bc CHARACTER
    - +
    @@ -2502,7 +2503,7 @@

    TABLE OF CONTENTS

    esm_w REAL
    - +
    @@ -2523,7 +2524,7 @@

    TABLE OF CONTENTS

    esm_efield REAL
    - +
    @@ -2543,7 +2544,7 @@

    TABLE OF CONTENTS

    esm_nfit INTEGER
    - +
    @@ -2563,7 +2564,7 @@

    TABLE OF CONTENTS

    fcp_mu REAL
    - +
    @@ -2597,7 +2598,7 @@

    TABLE OF CONTENTS

     Semiempirical Grimme's DFT-D3. Optional variables:
     dftd3_version, dftd3_threebody
    -S. Grimme et al, J. Chem. Phys 132, 154104 (2010)
    +S. Grimme et al, J. Chem. Phys 132, 154104 (2010), doi:10.1002/jcc.20495
                 
    @@ -2623,7 +2624,7 @@

    TABLE OF CONTENTS

    vdw_corr CHARACTER
    - +
    @@ -2641,7 +2642,7 @@

    TABLE OF CONTENTS

    london LOGICAL
    - +
    @@ -2656,7 +2657,7 @@

    TABLE OF CONTENTS

    london_s6 REAL
    - +
    @@ -2674,7 +2675,7 @@

    TABLE OF CONTENTS

    london_c6(i), i=1,ntyp REAL
    - +
    @@ -2692,7 +2693,7 @@

    TABLE OF CONTENTS

    london_rvdw(i), i=1,ntyp REAL
    - +
    @@ -2707,7 +2708,7 @@

    TABLE OF CONTENTS

    london_rcut REAL
    - +
    @@ -2717,18 +2718,47 @@

    TABLE OF CONTENTS

    - + +
    dftd3_version integer 3
    +
    +
     Version of Grimme implementation of Grimme-D3:
    -   Version=2 is the original Grimme-D2 parametrization
    -   Version=3 is Grimme-D3 (zero damping)
    -   Version=4 is Grimme-D3 (BJ damping)
    -   Version=5 is Grimme-D3M (zero damping)
    -   Version=6 is Grimme-D3M (BJ damping)
    +            
    +
    +
    dftd3_version = 2 :
    +
    +Original Grimme-D2 parametrization
    +            
    +
    +
    +
    dftd3_version = 3 :
    +
    +Grimme-D3 (zero damping)
    +            
    +
    +
    +
    dftd3_version = 4 :
    +
    +Grimme-D3 (BJ damping)
    +            
    +
    +
    +
    dftd3_version = 5 :
    +
    +Grimme-D3M (zero damping)
    +            
    +
    +
    +
    dftd3_version = 6 :
    +
    +Grimme-D3M (BJ damping)
    +            
    +
    +
     NOTE: not all functionals are parametrized.
    -         
    - +
    @@ -2745,7 +2775,7 @@

    TABLE OF CONTENTS

    dftd3_threebody LOGICAL
    - +
    @@ -2761,7 +2791,7 @@

    TABLE OF CONTENTS

    ts_vdw_econv_thr REAL
    - +
    @@ -2777,7 +2807,7 @@

    TABLE OF CONTENTS

    ts_vdw_isolated LOGICAL
    - +
    @@ -2795,7 +2825,7 @@

    TABLE OF CONTENTS

    xdm LOGICAL
    - +
    @@ -2815,7 +2845,7 @@

    TABLE OF CONTENTS

    xdm_a1 REAL
    - +
    @@ -2835,7 +2865,7 @@

    TABLE OF CONTENTS

    xdm_a2 REAL
    - +
    @@ -2856,7 +2886,7 @@

    TABLE OF CONTENTS

    space_group INTEGER
    - +
    @@ -2875,7 +2905,7 @@

    TABLE OF CONTENTS

    uniqueb LOGICAL
    - +
    @@ -2893,7 +2923,7 @@

    TABLE OF CONTENTS

    origin_choice INTEGER
    - +
    @@ -2916,7 +2946,7 @@

    TABLE OF CONTENTS

    rhombohedral LOGICAL

    variables used only if gate = .TRUE.

    - +
    @@ -2936,7 +2966,7 @@

    TABLE OF CONTENTS

    zgate REAL
    - +
    @@ -2956,7 +2986,7 @@

    TABLE OF CONTENTS

    relaxz LOGICAL
    - +
    @@ -2978,7 +3008,7 @@

    TABLE OF CONTENTS

    block LOGICAL
    - +
    @@ -2995,7 +3025,7 @@

    TABLE OF CONTENTS

    block_1 REAL
    - +
    @@ -3012,7 +3042,7 @@

    TABLE OF CONTENTS

    block_2 REAL
    - +
    @@ -3031,11 +3061,11 @@

    TABLE OF CONTENTS

    block_height REAL
    - +

    Namelist: &ELECTRONS

    - +
    @@ -3050,7 +3080,7 @@

    TABLE OF CONTENTS

    electron_maxstep INTEGER
    - +
    @@ -3066,7 +3096,7 @@

    TABLE OF CONTENTS

    scf_must_converge LOGICAL
    - +
    @@ -3087,7 +3117,7 @@

    TABLE OF CONTENTS

    conv_thr REAL
    - +
    @@ -3103,7 +3133,7 @@

    TABLE OF CONTENTS

    adaptive_thr LOGICAL
    - +
    @@ -3119,7 +3149,7 @@

    TABLE OF CONTENTS

    conv_thr_init REAL
    - +
    @@ -3136,7 +3166,7 @@

    TABLE OF CONTENTS

    conv_thr_multi REAL
    - +
    @@ -3171,7 +3201,7 @@

    TABLE OF CONTENTS

    mixing_mode CHARACTER
    - +
    @@ -3186,7 +3216,7 @@

    TABLE OF CONTENTS

    mixing_beta REAL
    - +
    @@ -3202,7 +3232,7 @@

    TABLE OF CONTENTS

    mixing_ndim INTEGER
    - +
    @@ -3218,7 +3248,7 @@

    TABLE OF CONTENTS

    mixing_fixed_ns INTEGER
    - +
    @@ -3263,7 +3293,7 @@

    TABLE OF CONTENTS

    diagonalization CHARACTER
    - +
    @@ -3280,7 +3310,7 @@

    TABLE OF CONTENTS

    ortho_para INTEGER
    - +
    @@ -3299,7 +3329,7 @@

    TABLE OF CONTENTS

    diago_thr_init REAL
    - +
    @@ -3309,7 +3339,7 @@

    TABLE OF CONTENTS

    diago_cg_maxiter INTEGER
    - +
    @@ -3331,7 +3361,7 @@

    TABLE OF CONTENTS

    diago_david_ndim INTEGER
    - +
    @@ -3349,7 +3379,7 @@

    TABLE OF CONTENTS

    diago_full_acc LOGICAL
    - +
    @@ -3366,7 +3396,7 @@

    TABLE OF CONTENTS

    efield REAL
    - +
    @@ -3383,7 +3413,7 @@

    TABLE OF CONTENTS

    efield_cart(i), i=1,3 REAL
    - +
    @@ -3419,7 +3449,7 @@

    TABLE OF CONTENTS

    efield_phase CHARACTER
    - +
    @@ -3446,7 +3476,7 @@

    TABLE OF CONTENTS

    startingpot CHARACTER
    - +
    @@ -3496,7 +3526,7 @@

    TABLE OF CONTENTS

    startingwfc CHARACTER
    - +
    @@ -3514,7 +3544,7 @@

    TABLE OF CONTENTS

    tqr LOGICAL
    - +
    @@ -3535,14 +3565,14 @@

    TABLE OF CONTENTS

    real_space LOGICAL
    - +

    Namelist: &IONS

    input this namelist only if calculation == 'relax', 'md', 'vc-relax', or 'vc-md'

    - +
    @@ -3627,7 +3657,7 @@

    TABLE OF CONTENTS

    ion_dynamics CHARACTER
    - +
    @@ -3658,7 +3688,7 @@

    TABLE OF CONTENTS

    ion_positions CHARACTER
    - +
    @@ -3704,7 +3734,7 @@

    TABLE OF CONTENTS

    pot_extrapolation CHARACTER
    - +
    @@ -3742,7 +3772,7 @@

    TABLE OF CONTENTS

    wfc_extrapolation CHARACTER
    - +
    @@ -3773,7 +3803,7 @@

    TABLE OF CONTENTS

    variables used for molecular dynamics

    -
    remove_rigid_rot LOGICAL
    +
    @@ -3846,7 +3876,7 @@

    TABLE OF CONTENTS

    ion_temperature CHARACTER
    - +
    @@ -3862,7 +3892,7 @@

    TABLE OF CONTENTS

    tempw REAL
    - +
    @@ -3878,7 +3908,7 @@

    TABLE OF CONTENTS

    tolp REAL
    - +
    @@ -3908,7 +3938,7 @@

    TABLE OF CONTENTS

    delta_t REAL
    - +
    @@ -3941,7 +3971,7 @@

    TABLE OF CONTENTS

    nraise INTEGER
    - +
    @@ -3963,7 +3993,7 @@

    TABLE OF CONTENTS

    keywords used only in BFGS calculations

    -
    refold_pos LOGICAL
    +
    @@ -3981,7 +4011,7 @@

    TABLE OF CONTENTS

    upscale REAL
    - +
    @@ -4001,7 +4031,7 @@

    TABLE OF CONTENTS

    bfgs_ndim INTEGER
    - +
    @@ -4017,7 +4047,7 @@

    TABLE OF CONTENTS

    trust_radius_max REAL
    - +
    @@ -4034,7 +4064,7 @@

    TABLE OF CONTENTS

    trust_radius_min REAL
    - +
    @@ -4050,7 +4080,7 @@

    TABLE OF CONTENTS

    trust_radius_ini REAL
    - +
    @@ -4066,7 +4096,7 @@

    TABLE OF CONTENTS

    w_1 REAL
    - +
    @@ -4085,14 +4115,14 @@

    TABLE OF CONTENTS

    w_2 REAL
    - +

    Namelist: &CELL

    input this namelist only if calculation == 'vc-relax' or 'vc-md'

    - +
    @@ -4157,7 +4187,7 @@

    TABLE OF CONTENTS

    cell_dynamics CHARACTER
    - +
    @@ -4172,7 +4202,7 @@

    TABLE OF CONTENTS

    press REAL
    - +
    @@ -4190,7 +4220,7 @@

    TABLE OF CONTENTS

    wmass REAL
    - +
    @@ -4207,7 +4237,7 @@

    TABLE OF CONTENTS

    cell_factor REAL
    - +
    @@ -4224,7 +4254,7 @@

    TABLE OF CONTENTS

    press_conv_thr REAL
    - +
    @@ -4328,7 +4358,7 @@

    TABLE OF CONTENTS

    cell_dofree CHARACTER
    - +

    Card: ATOMIC_SPECIES

    @@ -4336,22 +4366,22 @@

    TABLE OF CONTENTS

    Syntax:

    ATOMIC_SPECIES
    -
    +
    - - - + + + - - - + + + - - - + + +
     X(1)  Mass_X(1)  PseudoPot_X(1)  X(1)  Mass_X(1)  PseudoPot_X(1) 
     X(2)  Mass_X(2)  PseudoPot_X(2)  X(2)  Mass_X(2)  PseudoPot_X(2) 
     . . .
     X(ntyp)  Mass_X(ntyp)  PseudoPot_X(ntyp)  X(ntyp)  Mass_X(ntyp)  PseudoPot_X(ntyp) 
    @@ -4362,7 +4392,7 @@

    Description of items:

    - +
    XX CHARACTER
    @@ -4376,7 +4406,7 @@ 

    Description of items:

    - +
    Mass_XMass_X REAL
    @@ -4391,7 +4421,7 @@ 

    Description of items:

    - +
    PseudoPot_XPseudoPot_X CHARACTER
    @@ -4411,7 +4441,7 @@ 

    Description of items:

    - +

    Card: ATOMIC_POSITIONS { alat | bohr | angstrom | crystal | crystal_sg }

    @@ -4427,39 +4457,39 @@

    Syntax:

    ATOMIC_POSITIONS { alat | bohr | angstrom | crystal | crystal_sg }
    -
    +
    - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + +
     X(1)  x(1)  y(1)  z(1)  X(1)  x(1)  y(1)  z(1)  {  if_pos(1)(1)  if_pos(2)(1)  if_pos(3)(1)  if_pos(1)(1)  if_pos(2)(1)  if_pos(3)(1)  }
     X(2)  x(2)  y(2)  z(2)  X(2)  x(2)  y(2)  z(2)  {  if_pos(1)(2)  if_pos(2)(2)  if_pos(3)(2)  if_pos(1)(2)  if_pos(2)(2)  if_pos(3)(2)  }
     . . .
     X(nat)  x(nat)  y(nat)  z(nat)  X(nat)  x(nat)  y(nat)  z(nat)  {  if_pos(1)(nat)  if_pos(2)(nat)  if_pos(3)(nat)  if_pos(1)(nat)  if_pos(2)(nat)  if_pos(3)(nat)  }
    @@ -4470,7 +4500,7 @@

    Syntax:

    Description of items:

    - +
    Card's options: @@ -4537,7 +4567,7 @@

    Description of items:

    - +
    XX CHARACTER
     label of the atom as specified in ATOMIC_SPECIES
    @@ -4547,7 +4577,7 @@ 

    Description of items:

    @@ -4598,7 +4628,7 @@

    Description of items:

    -x, y, z +x, y, z REAL
    @@ -4622,7 +4652,7 @@

    Description of items:

    -if_pos(1), if_pos(2), if_pos(3) +if_pos(1), if_pos(2), if_pos(3) INTEGER
    - +

    Card: K_POINTS { tpiba | automatic | crystal | gamma | tpiba_b | crystal_b | tpiba_c | crystal_c }

    @@ -4631,25 +4661,25 @@

    Description of items:

    Syntax:

    K_POINTS tpiba | crystal | tpiba_b | crystal_b | tpiba_c | crystal_c
    -nks  
    +nks  
    - - - - + + + + - - - - + + + + - - - - + + + +
     xk_x(1)  xk_y(1)  xk_z(1)  wk(1)  xk_x(1)  xk_y(1)  xk_z(1)  wk(1) 
     xk_x(2)  xk_y(2)  xk_z(2)  wk(2)  xk_x(2)  xk_y(2)  xk_z(2)  wk(2) 
     . . .
     xk_x(nks)  xk_y(nks)  xk_z(nks)  wk(nks)  xk_x(nks)  xk_y(nks)  xk_z(nks)  wk(nks) 
    @@ -4659,7 +4689,7 @@

    Syntax:

    Syntax:

    K_POINTS automatic
    -nk1  nk2  nk3  sk1  sk2  sk3  
    +nk1  nk2  nk3  sk1  sk2  sk3  
    @@ -4673,7 +4703,7 @@

    Syntax:

    Description of items:

    - +
    Card's options: @@ -4766,7 +4796,7 @@

    Description of items:

    - +
    @@ -4778,7 +4808,7 @@

    Description of items:

    nks INTEGER
    @@ -4803,7 +4833,7 @@

    Description of items:

    -xk_x, xk_y, xk_z, wk +xk_x, xk_y, xk_z, wk REAL
    +nk1, nk2, nk3
    -nk1, nk2, nk3 INTEGER
    @@ -4815,7 +4845,7 @@ 

    Description of items:

    +sk1, sk2, sk3
    -sk1, sk2, sk3 INTEGER
    @@ -4829,7 +4859,7 @@ 

    Description of items:

    - +

    Card: CELL_PARAMETERS { alat | bohr | angstrom }

    @@ -4841,26 +4871,26 @@

    Syntax:

    CELL_PARAMETERS { alat | bohr | angstrom }
    -
    +
    - - - + + + - - - + + + - - - + + +
     v1(1)  v1(2)  v1(3)  v1(1)  v1(2)  v1(3) 
     v2(1)  v2(2)  v2(3)  v2(1)  v2(2)  v2(3) 
     v3(1)  v3(2)  v3(3)  v3(1)  v3(2)  v3(3) 
    @@ -4870,7 +4900,7 @@

    Syntax:

    Description of items:

    - +
    Card's options: @@ -4897,7 +4927,7 @@

    Description of items:

    @@ -4913,7 +4943,7 @@

    Description of items:

    -v1, v2, v3 +v1, v2, v3 REAL
    - +

    Card: CONSTRAINTS

    @@ -4928,11 +4958,11 @@

    Description of items:

    Syntax:

    CONSTRAINTS
    -nconstr   { constr_tol   }
    +nconstr   { constr_tol   }
    - - - + + + @@ -4940,13 +4970,13 @@

    Syntax:

      - + - - - + + + @@ -4954,14 +4984,14 @@

    Syntax:

      - + - - - + + + @@ -4969,7 +4999,7 @@

    Syntax:

      - +
     constr_type(1)  constr(1)(1)  constr(2)(1)  constr_type(1)  constr(1)(1)  constr(2)(1)  [  constr(3)(1)   ] {  constr_target(1)  constr_target(1)  }
     constr_type(2)  constr(1)(2)  constr(2)(2)  constr_type(2)  constr(1)(2)  constr(2)(2)  [  constr(3)(2)   ] {  constr_target(2)  constr_target(2)  }
     . . .
     constr_type(nconstr)  constr(1)(nconstr)  constr(2)(nconstr)  constr_type(nconstr)  constr(1)(nconstr)  constr(2)(nconstr)  [  constr(3)(nconstr)   ] {  constr_target(nconstr)  constr_target(nconstr)  }
    @@ -4979,7 +5009,7 @@

    Syntax:

    Description of items:

    - +
    @@ -4988,7 +5018,7 @@

    Description of items:

    nconstr INTEGER
    - +
    @@ -4999,7 +5029,7 @@

    Description of items:

    constr_tol REAL
    - +
    constr_typeconstr_type CHARACTER
    @@ -5063,7 +5093,7 @@

    Description of items:

    @@ -5099,7 +5129,7 @@

    Description of items:

    -constr(1), constr(2), constr(3), constr(4) +constr(1), constr(2), constr(3), constr(4)
    - +
    constr_targetconstr_target REAL
    @@ -5112,7 +5142,7 @@ 

    Description of items:

    - +

    Card: OCCUPATIONS

    @@ -5122,21 +5152,21 @@

    Description of items:

    Syntax:

    OCCUPATIONS
    -
    +
    - - + + - + - - + + - +
     f_inp1(1)  f_inp1(2)  f_inp1(1)  f_inp1(2)   . . . f_inp1(nbnd)  f_inp1(nbnd) 
    [   f_inp2(1)  f_inp2(2)  f_inp2(1)  f_inp2(2)   . . . f_inp2(nbnd)  f_inp2(nbnd)    ]
    @@ -5148,7 +5178,7 @@

    Description of items:

    - +
    f_inp1f_inp1 REAL
    @@ -5159,7 +5189,7 @@ 

    Description of items:

    - +
    f_inp2f_inp2 REAL
    @@ -5172,7 +5202,7 @@ 

    Description of items:

    - +

    Card: ATOMIC_FORCES

    @@ -5186,25 +5216,25 @@

    Description of items:

    Syntax:

    ATOMIC_FORCES
    -
    +
    - - - - + + + + - - - - + + + + - - - - + + + +
     X(1)  fx(1)  fy(1)  fz(1)  X(1)  fx(1)  fy(1)  fz(1) 
     X(2)  fx(2)  fy(2)  fz(2)  X(2)  fx(2)  fy(2)  fz(2) 
     . . .
     X(nat)  fx(nat)  fy(nat)  fz(nat)  X(nat)  fx(nat)  fy(nat)  fz(nat) 
    @@ -5215,7 +5245,7 @@

    Description of items:

    - +
    XX CHARACTER
     label of the atom as specified in ATOMIC_SPECIES
    @@ -5225,7 +5255,7 @@ 

    Description of items:

    @@ -5241,7 +5271,7 @@

    Description of items:

    -fx, fy, fz +fx, fy, fz REAL
    - This file has been created by helpdoc utility on Wed Feb 27 11:34:54 CET 2019. + This file has been created by helpdoc utility on Fri Mar 01 18:05:31 CET 2019. diff --git a/PW/Doc/INPUT_PW.txt b/PW/Doc/INPUT_PW.txt index 04c6f86684..ccc0de6416 100644 --- a/PW/Doc/INPUT_PW.txt +++ b/PW/Doc/INPUT_PW.txt @@ -1376,9 +1376,9 @@ NAMELIST: &SYSTEM Type: LOGICAL Description: When starting a non collinear calculation using an existing density - file from a collinear lsda calculation assumes previous density points in - z direction and rotates is in the direction described by "angle1" and - "angle2" variables for atomic type 1 + file from a collinear lsda calculation assumes previous density points in + z direction and rotates it in the direction described by "angle1" and + "angle2" variables for atomic type 1 +-------------------------------------------------------------------- +-------------------------------------------------------------------- @@ -1547,27 +1547,28 @@ NAMELIST: &SYSTEM '2D' : Truncation of the Coulomb interaction in the z direction - for structures periodic in the x-y plane. Total energy, - forces and stresses are computed in a two-dimensional framework. - Linear-response calculations () done on top of a self-consistent - calculation with this flag will automatically be performed in - the 2D framework as well. Please refer to: - Sohier, T., Calandra, M., & Mauri, F. (2017), Density functional - perturbation theory for gated two-dimensional heterostructures: - Theoretical developments and application to flexural phonons in graphene. - Physical Review B, 96(7), 75448. https://doi.org/10.1103/PhysRevB.96.075448 + for structures periodic in the x-y plane. Total energy, + forces and stresses are computed in a two-dimensional framework. + Linear-response calculations () done on top of a self-consistent + calculation with this flag will automatically be performed in + the 2D framework as well. Please refer to: + Sohier, T., Calandra, M., & Mauri, F. (2017), Density functional + perturbation theory for gated two-dimensional heterostructures: + Theoretical developments and application to flexural phonons in graphene. + Physical Review B, 96(7), 75448. https://doi.org/10.1103/PhysRevB.96.075448 + NB: - - The length of the unit-cell along the z direction should - be larger than twice the thickness of the 2D material - (including electrons). A reasonable estimate for a - layer's thickness could be the interlayer distance in the - corresponding layered bulk material. Otherwise, - the atomic thickness + 10 bohr should be a safe estimate. - There is also a lower limit of 20 bohr imposed by the cutoff - radius used to read pseudopotentials (see read_pseudo.f90 in Modules). + - The length of the unit-cell along the z direction should + be larger than twice the thickness of the 2D material + (including electrons). A reasonable estimate for a + layer's thickness could be the interlayer distance in the + corresponding layered bulk material. Otherwise, + the atomic thickness + 10 bohr should be a safe estimate. + There is also a lower limit of 20 bohr imposed by the cutoff + radius used to read pseudopotentials (see read_pseudo.f90 in Modules). - - As for ESM above, only in-plane stresses make sense and one - should use cell_dofree='2Dxy' in a vc-relax calculation. + - As for ESM above, only in-plane stresses make sense and one + should use cell_dofree='2Dxy' in a vc-relax calculation. +-------------------------------------------------------------------- +-------------------------------------------------------------------- @@ -1658,7 +1659,7 @@ NAMELIST: &SYSTEM 'grimme-d3', 'Grimme-D3', 'DFT-D3', 'dft-d3' : Semiempirical Grimme's DFT-D3. Optional variables: "dftd3_version", "dftd3_threebody" - S. Grimme et al, J. Chem. Phys 132, 154104 (2010) + S. Grimme et al, J. Chem. Phys 132, 154104 (2010), doi:10.1002/jcc.20495 'TS', 'ts', 'ts-vdw', 'ts-vdW', 'tkatchenko-scheffler' : Tkatchenko-Scheffler dispersion corrections with first-principle derived @@ -1726,12 +1727,24 @@ NAMELIST: &SYSTEM Type: integer Default: 3 - Description: Version of Grimme implementation of Grimme-D3: - Version=2 is the original Grimme-D2 parametrization - Version=3 is Grimme-D3 (zero damping) - Version=4 is Grimme-D3 (BJ damping) - Version=5 is Grimme-D3M (zero damping) - Version=6 is Grimme-D3M (BJ damping) + Description: + Version of Grimme implementation of Grimme-D3: + + dftd3_version = 2 : + Original Grimme-D2 parametrization + + dftd3_version = 3 : + Grimme-D3 (zero damping) + + dftd3_version = 4 : + Grimme-D3 (BJ damping) + + dftd3_version = 5 : + Grimme-D3M (zero damping) + + dftd3_version = 6 : + Grimme-D3M (BJ damping) + NOTE: not all functionals are parametrized. +-------------------------------------------------------------------- @@ -3323,4 +3336,4 @@ CARD: ATOMIC_FORCES ===END OF CARD========================================================== -This file has been created by helpdoc utility on Wed Feb 27 11:34:54 CET 2019 +This file has been created by helpdoc utility on Fri Mar 01 18:05:30 CET 2019 diff --git a/PW/Doc/Makefile b/PW/Doc/Makefile index 64d1aaa368..330520863e 100644 --- a/PW/Doc/Makefile +++ b/PW/Doc/Makefile @@ -1,4 +1,4 @@ -VERSION = svn +VERSION = git HELPDOC = ../../dev-tools/helpdoc -version $(VERSION) LATEX = pdflatex LATEX2HTML = latex2html @@ -11,7 +11,7 @@ TOCS = $(PDFS:.pdf=.toc) doc: all -all: pdf html defs +all: defs pdf html pdf: $(PDFS) html: user_guide @@ -28,7 +28,7 @@ clean: user_guide: user_guide.pdf - rm -rf user_guide/ + - rm -rf user_guide/ latex2html \ -t "User's Guide for the PWscf package" \ -html_version 3.2,math \ diff --git a/PW/src/plugin_int_forces.f90 b/PW/src/plugin_int_forces.f90 index 77a1d0ebf1..c103fcd37a 100644 --- a/PW/src/plugin_int_forces.f90 +++ b/PW/src/plugin_int_forces.f90 @@ -40,17 +40,15 @@ SUBROUTINE external_wg_corr_force( rhor, force ) USE kinds, ONLY : DP USE cell_base, ONLY : omega USE ions_base, ONLY : nat, ntyp => nsp, ityp, tau, zv - use lsda_mod, only : nspin USE gvect, ONLY : ngm, g USE fft_base, ONLY : dfftp USE fft_interfaces, ONLY : fwfft - ! USE martyna_tuckerman, ONLY : wg_corr_force USE vlocal, ONLY : strf ! IMPLICIT NONE ! - REAL( DP ), INTENT(IN) :: rhor ( dfftp%nnr, nspin ) + REAL( DP ), INTENT(IN) :: rhor ( dfftp%nnr ) REAL( DP ), INTENT(OUT) :: force (3, nat) ! ! ... Local variables @@ -58,8 +56,7 @@ SUBROUTINE external_wg_corr_force( rhor, force ) COMPLEX (DP), ALLOCATABLE :: auxg( : ), auxr( : ) ! allocate(auxr(dfftp%nnr)) - auxr = cmplx(rhor(:,1),0.0_dp) - if ( nspin .eq. 2 ) auxr = auxr + cmplx(rhor(:,2),0.0_dp) + auxr = cmplx(rhor,0.0_dp) call fwfft ("Rho", auxr, dfftp) ! allocate(auxg(ngm)) @@ -87,20 +84,19 @@ SUBROUTINE external_force_lc( rhor, force ) USE ions_base, ONLY : nat, ityp, tau USE fft_base, ONLY : dfftp USE gvect, ONLY : ngm, gstart, ngl, igtongl, g - use lsda_mod, only : nspin USE control_flags, ONLY : gamma_only ! USE vlocal, ONLY : vloc ! IMPLICIT NONE ! - REAL( DP ), INTENT(IN) :: rhor ( dfftp%nnr, nspin ) + REAL( DP ), INTENT(IN) :: rhor ( dfftp%nnr ) REAL( DP ), INTENT(OUT) :: force ( 3, nat ) ! ! ... Local variables ! CALL force_lc( nat, tau, ityp, alat, omega, ngm, ngl, igtongl, & - g, rhor(:,1), dfftp%nl, gstart, gamma_only, vloc, force ) + g, rhor, dfftp%nl, gstart, gamma_only, vloc, force ) ! RETURN ! diff --git a/PW/src/v_of_rho.f90 b/PW/src/v_of_rho.f90 index 8dbda3d299..7782924f15 100644 --- a/PW/src/v_of_rho.f90 +++ b/PW/src/v_of_rho.f90 @@ -1043,7 +1043,7 @@ END SUBROUTINE v_hubbard_nc SUBROUTINE v_h_of_rho_r( rhor, ehart, charge, v ) !---------------------------------------------------------------------------- ! - ! ... Hartree potential VH(r) from a density in R space n(r) + ! ... Hartree potential VH(r) from a density in R space n(r) ! USE kinds, ONLY : DP USE fft_base, ONLY : dfftp @@ -1054,46 +1054,35 @@ SUBROUTINE v_h_of_rho_r( rhor, ehart, charge, v ) ! ! ... Declares variables ! - REAL( DP ), INTENT(IN) :: rhor( dfftp%nnr, nspin ) - REAL( DP ), INTENT(INOUT) :: v( dfftp%nnr, nspin ) + REAL( DP ), INTENT(IN) :: rhor( dfftp%nnr ) + REAL( DP ), INTENT(INOUT) :: v( dfftp%nnr ) REAL( DP ), INTENT(OUT) :: ehart, charge ! ! ... Local variables ! - COMPLEX( DP ), ALLOCATABLE :: rhog( : , : ) + COMPLEX( DP ), ALLOCATABLE :: rhog( : ) COMPLEX( DP ), ALLOCATABLE :: aux( : ) + REAL( DP ), ALLOCATABLE :: vaux(:,:) INTEGER :: is ! ! ... bring the (unsymmetrized) rho(r) to G-space (use aux as work array) ! - ALLOCATE( rhog( dfftp%ngm, nspin ) ) + ALLOCATE( rhog( dfftp%ngm ) ) ALLOCATE( aux( dfftp%nnr ) ) - DO is = 1, nspin - aux(:) = CMPLX(rhor( : , is ),0.D0,kind=dp) - CALL fwfft ('Rho', aux, dfftp) - rhog(:,is) = aux(dfftp%nl(:)) - END DO + aux = CMPLX(rhor,0.D0,kind=dp) + CALL fwfft ('Rho', aux, dfftp) + rhog(:) = aux(dfftp%nl(:)) DEALLOCATE( aux ) ! - ! ... compute VH(r) from n(G) + ! ... compute VH(r) from n(G) + ! + ALLOCATE( vaux( dfftp%nnr, nspin ) ) + vaux = 0.D0 + CALL v_h( rhog, ehart, charge, vaux ) + v(:) = v(:) + vaux(:,1) ! - !^^ ... TEMPORARY FIX (newlsda-CPV) ... - IF ( nspin==2 ) THEN - rhog(:,1) = rhog(:,1) + rhog(:,2) - rhog(:,2) = rhog(:,1) - rhog(:,2)*2._dp - ENDIF - !^^....................... - ! - CALL v_h( rhog(:,1), ehart, charge, v ) - ! - !^^ ... TEMPORARY FIX (newlsda) ... - IF ( nspin==2 ) THEN - rhog(:,1) = ( rhog(:,1) + rhog(:,2) )*0.5_dp - rhog(:,2) = rhog(:,1) - rhog(:,2) - ENDIF - !^^....................... - ! DEALLOCATE( rhog ) + DEALLOCATE( vaux ) ! RETURN ! @@ -1102,7 +1091,7 @@ END SUBROUTINE v_h_of_rho_r SUBROUTINE gradv_h_of_rho_r( rho, gradv ) !---------------------------------------------------------------------------- ! - ! ... Gradient of Hartree potential in R space from a total + ! ... Gradient of Hartree potential in R space from a total ! (spinless) density in R space n(r) ! USE kinds, ONLY : DP diff --git a/PWCOND/Doc/INPUT_PWCOND.html b/PWCOND/Doc/INPUT_PWCOND.html index 6f9fb7659f..3a2822689e 100644 --- a/PWCOND/Doc/INPUT_PWCOND.html +++ b/PWCOND/Doc/INPUT_PWCOND.html @@ -46,7 +46,7 @@

    Input File Description

    Program: - pwcond.x / PWscf / Quantum Espresso (version: svn) + pwcond.x / PWscf / Quantum Espresso (version: 6.4)

    @@ -633,7 +633,7 @@

    Description of items:

    - This file has been created by helpdoc utility on Fri Jun 22 17:11:54 CEST 2018. + This file has been created by helpdoc utility on Fri Mar 01 17:57:31 CET 2019. diff --git a/PWCOND/Doc/INPUT_PWCOND.txt b/PWCOND/Doc/INPUT_PWCOND.txt index 42ba8d72fe..f85763e860 100644 --- a/PWCOND/Doc/INPUT_PWCOND.txt +++ b/PWCOND/Doc/INPUT_PWCOND.txt @@ -3,7 +3,7 @@ ------------------------------------------------------------------------ INPUT FILE DESCRIPTION -Program: pwcond.x / PWscf / Quantum Espresso (version: svn) +Program: pwcond.x / PWscf / Quantum Espresso (version: 6.4) ------------------------------------------------------------------------ @@ -384,4 +384,4 @@ CARD: ===END OF CARD========================================================== -This file has been created by helpdoc utility on Fri Jun 22 17:11:54 CEST 2018 +This file has been created by helpdoc utility on Fri Mar 01 17:57:31 CET 2019 diff --git a/PWCOND/Doc/Makefile b/PWCOND/Doc/Makefile index ee198eb327..ff62711473 100644 --- a/PWCOND/Doc/Makefile +++ b/PWCOND/Doc/Makefile @@ -1,4 +1,4 @@ -VERSION = svn +VERSION = git HELPDOC = ../../dev-tools/helpdoc -version $(VERSION) doc: all diff --git a/PWCOND/src/init_cond.f90 b/PWCOND/src/init_cond.f90 index 68eaba3b62..901e3fff33 100644 --- a/PWCOND/src/init_cond.f90 +++ b/PWCOND/src/init_cond.f90 @@ -43,6 +43,10 @@ subroutine init_cond (nregion, flag) nry = dffts%nr2 nrztot = dffts%nr3 ! if(nrztot/2*2.eq.nrztot) nrztot = nrztot+1 +! check for the 1st Layer to be at Z=0 + dz1 = MINVAL( abs(tau(3,1:nat)) ) * alat + IF (dz1 > 1.d-4) CALL errore ('init_cond ','for numerical reasons & + & the 1st Layer of a cell should be aligned with Z=0 plane',1) zlen = at(3,3) dz1 = zlen/nrztot sarea = abs(at(1,1)*at(2,2)-at(2,1)*at(1,2))*alat**2 @@ -292,4 +296,3 @@ subroutine potz_split(vppottot,ztot,vppot,z,nrztot,nrz,nrxy,npol,iz0) return end subroutine potz_split - diff --git a/TDDFPT/Doc/INPUT_Davidson.html b/TDDFPT/Doc/INPUT_Davidson.html index 0aec3afbce..2d3f9c4f92 100644 --- a/TDDFPT/Doc/INPUT_Davidson.html +++ b/TDDFPT/Doc/INPUT_Davidson.html @@ -46,7 +46,7 @@

    Input File Description

    Program: - turbo_davidson.x / turboTDDFPT / Quantum Espresso (version: git) + turbo_davidson.x / turboTDDFPT / Quantum Espresso (version: 6.4)

    @@ -55,19 +55,19 @@

    TABLE OF CONTENTS

    -

    INTRODUCTION

    -

    &lr_input

    +

    INTRODUCTION

    +

    &lr_input

    -prefix | outdir | wfcdir | max_seconds | restart | lr_verbosity | disk_io +prefix | outdir | wfcdir | max_seconds | restart | lr_verbosity | disk_io
    -

    &lr_dav

    +

    &lr_dav

    -num_eign | num_init | if_random_init | num_basis_max | residue_conv_thr | precondition | single_pole | if_dft_spectrum | reference | broadening | start | finish | step | p_nbnd_occ | p_nbnd_virt | poor_of_ram | poor_of_ram2 | max_iter | no_hxc | pseudo_hermitian | ltammd | lplot_drho | d0psi_rs | lshift_d0psi +num_eign | num_init | if_random_init | num_basis_max | residue_conv_thr | precondition | single_pole | if_dft_spectrum | reference | broadening | start | finish | step | p_nbnd_occ | p_nbnd_virt | poor_of_ram | poor_of_ram2 | max_iter | no_hxc | pseudo_hermitian | ltammd | lplot_drho | d0psi_rs | lshift_d0psi
    -

    INTRODUCTION

    +

    INTRODUCTION

         Input data format: { } = optional, [ ] = it depends.
     
    @@ -92,13 +92,13 @@ 

    TABLE OF CONTENTS

    /
    - +

    Namelist: &lr_input

    This namelist is always needed !

    - +
    @@ -115,7 +115,7 @@

    TABLE OF CONTENTS

    prefix CHARACTER
    - +
    @@ -131,7 +131,7 @@

    TABLE OF CONTENTS

    outdir CHARACTER
    - +
    @@ -147,7 +147,7 @@

    TABLE OF CONTENTS

    wfcdir CHARACTER
    - +
    @@ -165,7 +165,7 @@

    TABLE OF CONTENTS

    max_seconds REAL
    - +
    @@ -184,7 +184,7 @@

    TABLE OF CONTENTS

    restart LOGICAL
    - +
    @@ -200,7 +200,7 @@

    TABLE OF CONTENTS

    lr_verbosity INTEGER
    - +
    @@ -219,11 +219,11 @@

    TABLE OF CONTENTS

    disk_io CHARACTER
    - +

    Namelist: &lr_dav

    - +
    @@ -238,7 +238,7 @@

    TABLE OF CONTENTS

    num_eign INTEGER
    - +
    @@ -254,7 +254,7 @@

    TABLE OF CONTENTS

    num_init INTEGER
    - +
    @@ -273,7 +273,7 @@

    TABLE OF CONTENTS

    if_random_init LOGICAL
    - +
    @@ -292,7 +292,7 @@

    TABLE OF CONTENTS

    num_basis_max INTEGER
    - +
    @@ -309,7 +309,7 @@

    TABLE OF CONTENTS

    residue_conv_thr REAL
    - +
    @@ -325,7 +325,7 @@

    TABLE OF CONTENTS

    precondition LOGICAL
    - +
    @@ -343,7 +343,7 @@

    TABLE OF CONTENTS

    single_pole LOGICAL
    - +
    @@ -360,7 +360,7 @@

    TABLE OF CONTENTS

    if_dft_spectrum LOGICAL
    - +
    @@ -380,7 +380,7 @@

    TABLE OF CONTENTS

    reference REAL
    - +
    @@ -395,7 +395,7 @@

    TABLE OF CONTENTS

    broadening REAL
    - +
    @@ -410,7 +410,7 @@

    TABLE OF CONTENTS

    start REAL
    - +
    @@ -425,7 +425,7 @@

    TABLE OF CONTENTS

    finish REAL
    - +
    @@ -440,7 +440,7 @@

    TABLE OF CONTENTS

    step REAL
    - +
    @@ -465,7 +465,7 @@

    TABLE OF CONTENTS

    p_nbnd_occ INTEGER
    - +
    @@ -490,7 +490,7 @@

    TABLE OF CONTENTS

    p_nbnd_virt INTEGER
    - +
    @@ -512,7 +512,7 @@

    TABLE OF CONTENTS

    poor_of_ram LOGICAL
    - +
    @@ -532,7 +532,7 @@

    TABLE OF CONTENTS

    poor_of_ram2 LOGICAL
    - +
    @@ -549,7 +549,7 @@

    TABLE OF CONTENTS

    max_iter INTEGER
    - +
    @@ -567,7 +567,7 @@

    TABLE OF CONTENTS

    no_hxc LOGICAL
    - +
    @@ -585,7 +585,7 @@

    TABLE OF CONTENTS

    pseudo_hermitian LOGICAL
    - +
    @@ -601,7 +601,7 @@

    TABLE OF CONTENTS

    ltammd LOGICAL
    - +
    @@ -621,7 +621,7 @@

    TABLE OF CONTENTS

    lplot_drho LOGICAL
    - +
    @@ -643,7 +643,7 @@

    TABLE OF CONTENTS

    d0psi_rs LOGICAL
    - +
    @@ -675,7 +675,7 @@

    TABLE OF CONTENTS

    lshift_d0psi LOGICAL
    - This file has been created by helpdoc utility on Fri Sep 07 12:19:41 CEST 2018. + This file has been created by helpdoc utility on Fri Mar 01 17:57:32 CET 2019. diff --git a/TDDFPT/Doc/INPUT_Davidson.txt b/TDDFPT/Doc/INPUT_Davidson.txt index 002aaf5025..cc5e5ceba8 100644 --- a/TDDFPT/Doc/INPUT_Davidson.txt +++ b/TDDFPT/Doc/INPUT_Davidson.txt @@ -3,7 +3,7 @@ ------------------------------------------------------------------------ INPUT FILE DESCRIPTION -Program: turbo_davidson.x / turboTDDFPT / Quantum Espresso (version: git) +Program: turbo_davidson.x / turboTDDFPT / Quantum Espresso (version: 6.4) ------------------------------------------------------------------------ @@ -394,4 +394,4 @@ NAMELIST: &lr_dav ===END OF NAMELIST====================================================== -This file has been created by helpdoc utility on Fri Sep 07 12:19:41 CEST 2018 +This file has been created by helpdoc utility on Fri Mar 01 17:57:32 CET 2019 diff --git a/TDDFPT/Doc/INPUT_EELS.html b/TDDFPT/Doc/INPUT_EELS.html index 2010c466c8..6cd4ec4d39 100644 --- a/TDDFPT/Doc/INPUT_EELS.html +++ b/TDDFPT/Doc/INPUT_EELS.html @@ -46,7 +46,7 @@

    Input File Description

    Program: - turbo_eels.x / turboEELS / Quantum Espresso (version: git) + turbo_eels.x / turboEELS / Quantum Espresso (version: 6.4)

    @@ -55,19 +55,19 @@

    TABLE OF CONTENTS

    -

    INTRODUCTION

    -

    &lr_input

    +

    INTRODUCTION

    +

    &lr_input

    -prefix | outdir | restart | restart_step | lr_verbosity | disk_io +prefix | outdir | restart | restart_step | lr_verbosity | disk_io
    -

    &lr_control

    +

    &lr_control

    -itermax | pseudo_hermitian | approximation | qi +itermax | pseudo_hermitian | approximation | qi
    -

    INTRODUCTION

    +

    INTRODUCTION

         Input data format: { } = optional, [ ] = it depends.
     
    @@ -92,13 +92,13 @@ 

    TABLE OF CONTENTS

    /
    - +

    Namelist: &lr_input

    This namelist is always needed !

    - +
    @@ -115,7 +115,7 @@

    TABLE OF CONTENTS

    prefix CHARACTER
    - +
    @@ -131,7 +131,7 @@

    TABLE OF CONTENTS

    outdir CHARACTER
    - +
    @@ -150,7 +150,7 @@

    TABLE OF CONTENTS

    restart LOGICAL
    - +
    @@ -167,7 +167,7 @@

    TABLE OF CONTENTS

    restart_step INTEGER
    - +
    @@ -183,7 +183,7 @@

    TABLE OF CONTENTS

    lr_verbosity INTEGER
    - +
    @@ -202,11 +202,11 @@

    TABLE OF CONTENTS

    disk_io CHARACTER
    - +

    Namelist: &lr_control

    - +
    @@ -221,7 +221,7 @@

    TABLE OF CONTENTS

    itermax INTEGER
    - +
    @@ -239,7 +239,7 @@

    TABLE OF CONTENTS

    pseudo_hermitian LOGICAL
    - +
    @@ -260,7 +260,7 @@

    TABLE OF CONTENTS

    approximation CHARACTER
    - +
    @@ -283,7 +283,7 @@

    TABLE OF CONTENTS

    qi INTEGER
    - This file has been created by helpdoc utility on Fri Sep 07 12:19:41 CEST 2018. + This file has been created by helpdoc utility on Fri Mar 01 17:57:32 CET 2019. diff --git a/TDDFPT/Doc/INPUT_EELS.txt b/TDDFPT/Doc/INPUT_EELS.txt index 655333da33..a57b484a6b 100644 --- a/TDDFPT/Doc/INPUT_EELS.txt +++ b/TDDFPT/Doc/INPUT_EELS.txt @@ -3,7 +3,7 @@ ------------------------------------------------------------------------ INPUT FILE DESCRIPTION -Program: turbo_eels.x / turboEELS / Quantum Espresso (version: git) +Program: turbo_eels.x / turboEELS / Quantum Espresso (version: 6.4) ------------------------------------------------------------------------ @@ -149,4 +149,4 @@ NAMELIST: &lr_control ===END OF NAMELIST====================================================== -This file has been created by helpdoc utility on Fri Sep 07 12:19:41 CEST 2018 +This file has been created by helpdoc utility on Fri Mar 01 17:57:32 CET 2019 diff --git a/TDDFPT/Doc/INPUT_Lanczos.html b/TDDFPT/Doc/INPUT_Lanczos.html index 1b75490bc2..2136b2a67d 100644 --- a/TDDFPT/Doc/INPUT_Lanczos.html +++ b/TDDFPT/Doc/INPUT_Lanczos.html @@ -46,7 +46,7 @@

    Input File Description

    Program: - turbo_lanczos.x / turboTDDFPT / Quantum Espresso (version: git) + turbo_lanczos.x / turboTDDFPT / Quantum Espresso (version: 6.4)

    @@ -55,23 +55,23 @@

    TABLE OF CONTENTS

    -

    INTRODUCTION

    -

    &lr_input

    +

    INTRODUCTION

    +

    &lr_input

    -title | prefix | outdir | wfcdir | restart | restart_step | lr_verbosity | disk_io +title | prefix | outdir | wfcdir | restart | restart_step | lr_verbosity | disk_io
    -

    &lr_control

    +

    &lr_control

    -itermax | ipol | n_ipol | ltammd | no_hxc | lrpa | charge_response | pseudo_hermitian | d0psi_rs | lshift_d0psi +itermax | ipol | n_ipol | ltammd | no_hxc | lrpa | charge_response | pseudo_hermitian | d0psi_rs | lshift_d0psi
    -

    &lr_post

    +

    &lr_post

    -omeg | epsil | beta_gamma_z_prefix | w_T_npol | plot_type +omeg | epsil | beta_gamma_z_prefix | w_T_npol | plot_type
    -

    INTRODUCTION

    +

    INTRODUCTION

         Input data format: { } = optional, [ ] = it depends.
     
    @@ -100,13 +100,13 @@ 

    TABLE OF CONTENTS

    / ]
    - +

    Namelist: &lr_input

    This namelist is always needed !

    - +
    @@ -120,7 +120,7 @@

    TABLE OF CONTENTS

    title CHARACTER
    - +
    @@ -137,7 +137,7 @@

    TABLE OF CONTENTS

    prefix CHARACTER
    - +
    @@ -153,7 +153,7 @@

    TABLE OF CONTENTS

    outdir CHARACTER
    - +
    @@ -169,7 +169,7 @@

    TABLE OF CONTENTS

    wfcdir CHARACTER
    - +
    @@ -189,7 +189,7 @@

    TABLE OF CONTENTS

    restart LOGICAL
    - +
    @@ -206,7 +206,7 @@

    TABLE OF CONTENTS

    restart_step INTEGER
    - +
    @@ -222,7 +222,7 @@

    TABLE OF CONTENTS

    lr_verbosity INTEGER
    - +
    @@ -241,11 +241,11 @@

    TABLE OF CONTENTS

    disk_io CHARACTER
    - +

    Namelist: &lr_control

    - +
    @@ -260,7 +260,7 @@

    TABLE OF CONTENTS

    itermax INTEGER
    - +
    @@ -280,7 +280,7 @@

    TABLE OF CONTENTS

    ipol INTEGER
    - +
    @@ -298,7 +298,7 @@

    TABLE OF CONTENTS

    n_ipol INTEGER
    - +
    @@ -314,7 +314,7 @@

    TABLE OF CONTENTS

    ltammd LOGICAL
    - +
    @@ -332,7 +332,7 @@

    TABLE OF CONTENTS

    no_hxc LOGICAL
    - +
    @@ -348,7 +348,7 @@

    TABLE OF CONTENTS

    lrpa LOGICAL
    - +
    @@ -366,7 +366,7 @@

    TABLE OF CONTENTS

    charge_response INTEGER
    - +
    @@ -384,7 +384,7 @@

    TABLE OF CONTENTS

    pseudo_hermitian LOGICAL
    - +
    @@ -406,7 +406,7 @@

    TABLE OF CONTENTS

    d0psi_rs LOGICAL
    - +
    @@ -435,11 +435,11 @@

    TABLE OF CONTENTS

    lshift_d0psi LOGICAL
    - +

    Namelist: &lr_post

    - +
    @@ -455,7 +455,7 @@

    TABLE OF CONTENTS

    omeg REAL
    - +
    @@ -470,7 +470,7 @@

    TABLE OF CONTENTS

    epsil REAL
    - +
    @@ -488,7 +488,7 @@

    TABLE OF CONTENTS

    beta_gamma_z_prefix CHARACTER
    - +
    @@ -505,7 +505,7 @@

    TABLE OF CONTENTS

    w_T_npol INTEGER
    - +
    @@ -530,7 +530,7 @@

    TABLE OF CONTENTS

    plot_type INTEGER
    - This file has been created by helpdoc utility on Fri Sep 07 12:19:41 CEST 2018. + This file has been created by helpdoc utility on Fri Mar 01 17:57:32 CET 2019. diff --git a/TDDFPT/Doc/INPUT_Lanczos.txt b/TDDFPT/Doc/INPUT_Lanczos.txt index afd08c0be3..0865f4ffe1 100644 --- a/TDDFPT/Doc/INPUT_Lanczos.txt +++ b/TDDFPT/Doc/INPUT_Lanczos.txt @@ -3,7 +3,7 @@ ------------------------------------------------------------------------ INPUT FILE DESCRIPTION -Program: turbo_lanczos.x / turboTDDFPT / Quantum Espresso (version: git) +Program: turbo_lanczos.x / turboTDDFPT / Quantum Espresso (version: 6.4) ------------------------------------------------------------------------ @@ -301,4 +301,4 @@ NAMELIST: &lr_post ===END OF NAMELIST====================================================== -This file has been created by helpdoc utility on Fri Sep 07 12:19:41 CEST 2018 +This file has been created by helpdoc utility on Fri Mar 01 17:57:32 CET 2019 diff --git a/TDDFPT/Doc/INPUT_Spectrum.html b/TDDFPT/Doc/INPUT_Spectrum.html index 377619e669..ded04ce748 100644 --- a/TDDFPT/Doc/INPUT_Spectrum.html +++ b/TDDFPT/Doc/INPUT_Spectrum.html @@ -46,7 +46,7 @@

    Input File Description

    Program: - turbo_spectrum.x / turboTDDFPT / Quantum Espresso (version: git) + turbo_spectrum.x / turboTDDFPT / Quantum Espresso (version: 6.4)

    @@ -55,15 +55,15 @@

    TABLE OF CONTENTS

    -

    INTRODUCTION

    -

    &lr_input

    +

    INTRODUCTION

    +

    &lr_input

    -prefix | outdir | verbosity | itermax0 | itermax | extrapolation | epsil | units | start | end | increment | ipol | eels | td | eign_file +prefix | outdir | verbosity | itermax0 | itermax | extrapolation | epsil | units | start | end | increment | ipol | eels | td | eign_file
    -

    INTRODUCTION

    +

    INTRODUCTION

         Input data format: { } = optional, [ ] = it depends.
     
    @@ -84,13 +84,13 @@ 

    TABLE OF CONTENTS

    /
    - +

    Namelist: &lr_input

    This namelist is always needed !

    - +
    @@ -107,7 +107,7 @@

    TABLE OF CONTENTS

    prefix CHARACTER
    - +
    @@ -123,7 +123,7 @@

    TABLE OF CONTENTS

    outdir CHARACTER
    - +
    @@ -139,7 +139,7 @@

    TABLE OF CONTENTS

    verbosity INTEGER
    - +
    @@ -154,7 +154,7 @@

    TABLE OF CONTENTS

    itermax0 INTEGER
    - +
    @@ -172,7 +172,7 @@

    TABLE OF CONTENTS

    itermax INTEGER
    - +
    @@ -188,7 +188,7 @@

    TABLE OF CONTENTS

    extrapolation CHARACTER
    - +
    @@ -203,7 +203,7 @@

    TABLE OF CONTENTS

    epsil REAL
    - +
    @@ -221,7 +221,7 @@

    TABLE OF CONTENTS

    units INTEGER
    - +
    @@ -237,7 +237,7 @@

    TABLE OF CONTENTS

    start REAL
    - +
    @@ -253,7 +253,7 @@

    TABLE OF CONTENTS

    end REAL
    - +
    @@ -269,7 +269,7 @@

    TABLE OF CONTENTS

    increment REAL
    - +
    @@ -289,7 +289,7 @@

    TABLE OF CONTENTS

    ipol INTEGER
    - +
    @@ -305,7 +305,7 @@

    TABLE OF CONTENTS

    eels LOGICAL
    - +
    @@ -324,7 +324,7 @@

    TABLE OF CONTENTS

    td CHARACTER
    - +
    @@ -345,7 +345,7 @@

    TABLE OF CONTENTS

    eign_file CHARACTER
    - This file has been created by helpdoc utility on Fri Sep 07 12:19:41 CEST 2018. + This file has been created by helpdoc utility on Fri Mar 01 17:57:33 CET 2019. diff --git a/TDDFPT/Doc/INPUT_Spectrum.txt b/TDDFPT/Doc/INPUT_Spectrum.txt index 5921219180..679fbbd043 100644 --- a/TDDFPT/Doc/INPUT_Spectrum.txt +++ b/TDDFPT/Doc/INPUT_Spectrum.txt @@ -3,7 +3,7 @@ ------------------------------------------------------------------------ INPUT FILE DESCRIPTION -Program: turbo_spectrum.x / turboTDDFPT / Quantum Espresso (version: git) +Program: turbo_spectrum.x / turboTDDFPT / Quantum Espresso (version: 6.4) ------------------------------------------------------------------------ @@ -180,4 +180,4 @@ NAMELIST: &lr_input ===END OF NAMELIST====================================================== -This file has been created by helpdoc utility on Fri Sep 07 12:19:41 CEST 2018 +This file has been created by helpdoc utility on Fri Mar 01 17:57:33 CET 2019 diff --git a/UtilXlib/Makefile b/UtilXlib/Makefile index 09fb815c78..d2daed7108 100644 --- a/UtilXlib/Makefile +++ b/UtilXlib/Makefile @@ -31,12 +31,4 @@ libutil.a: $(UTIL) clean : - /bin/rm -f *.o *.a *.d *.i *~ *_tmp.f90 *.mod *.L *.x -# .PHONY forces execution of a rule irrespective of the presence of an -# updated file with the same name of the rule. In this way, the script -# that generates version.f90 always runs, updating the version if you -# execute "svn update". The update_version script takes care of not -# changing the file if the svn version did not change - -.PHONY: all clean - include make.depend diff --git a/UtilXlib/tests/Makefile b/UtilXlib/tests/Makefile index d0422d9e93..e8e8e26d88 100644 --- a/UtilXlib/tests/Makefile +++ b/UtilXlib/tests/Makefile @@ -61,11 +61,3 @@ common: tester.o mp_world.o utils.o clean : - /bin/rm -f *.o *.a *.d *.i *~ *_tmp.f90 *.mod *.L *.x rnd_seed_* -# .PHONY forces execution of a rule irrespective of the presence of an -# updated file with the same name of the rule. In this way, the script -# that generates version.f90 always runs, updating the version if you -# execute "svn update". The update_version script takes care of not -# changing the file if the svn version did not change - -.PHONY: all clean - diff --git a/atomic/Doc/INPUT_LD1.html b/atomic/Doc/INPUT_LD1.html index 017c206a8e..e85c0c6bac 100644 --- a/atomic/Doc/INPUT_LD1.html +++ b/atomic/Doc/INPUT_LD1.html @@ -46,7 +46,7 @@

    Input File Description

    Program: - ld1.x / / Quantum Espresso (version: svn) + ld1.x / / Quantum Espresso (version: 6.4)

    @@ -2098,7 +2098,7 @@

    Description of items:

    - This file has been created by helpdoc utility on Fri Jun 22 17:13:19 CEST 2018. + This file has been created by helpdoc utility on Fri Mar 01 17:58:47 CET 2019. diff --git a/atomic/Doc/INPUT_LD1.txt b/atomic/Doc/INPUT_LD1.txt index f79ff0a59f..517a4dd9ac 100644 --- a/atomic/Doc/INPUT_LD1.txt +++ b/atomic/Doc/INPUT_LD1.txt @@ -3,7 +3,7 @@ ------------------------------------------------------------------------ INPUT FILE DESCRIPTION -Program: ld1.x / / Quantum Espresso (version: svn) +Program: ld1.x / / Quantum Espresso (version: 6.4) ------------------------------------------------------------------------ @@ -1265,4 +1265,4 @@ CARD: -This file has been created by helpdoc utility on Fri Jun 22 17:13:19 CEST 2018 +This file has been created by helpdoc utility on Fri Mar 01 17:58:47 CET 2019 diff --git a/atomic/Doc/Makefile b/atomic/Doc/Makefile index 881a01160e..af387ed14a 100644 --- a/atomic/Doc/Makefile +++ b/atomic/Doc/Makefile @@ -1,4 +1,4 @@ -VERSION = svn +VERSION = git HELPDOC = ../../dev-tools/helpdoc -version $(VERSION) LATEX = pdflatex LATEX2HTML = latex2html @@ -9,7 +9,7 @@ LOGS = $(PDFS:.pdf=.log) OUTS = $(PDFS:.pdf=.out) TOCS = $(PDFS:.pdf=.toc) -all: pdf html defs +all: defs pdf html pdf: $(PDFS) html: pseudo-gen @@ -25,7 +25,7 @@ clean: - rm -rf ../../Doc/input_xx.xsl pseudo-gen: pseudo-gen.pdf - rm -rf pseudo-gen/ + - rm -rf pseudo-gen/ latex2html \ -t "User's Guide for LD1" \ -html_version 3.2,math \ diff --git a/dev-tools/gen-emacs-mode.tcl b/dev-tools/gen-emacs-mode.tcl index 44e81339a2..d15af349a6 100644 --- a/dev-tools/gen-emacs-mode.tcl +++ b/dev-tools/gen-emacs-mode.tcl @@ -67,7 +67,7 @@ proc ::helpdoc::getFontlockKeys {tree node action} { lappend fontlock(namelists) $name lappend defun($module,namelists) $name } - var - dimension { + var - dimension - multidimension { if { $inside_namelist } { set bare_name [lindex [split $name \(] 0]; # strips "(index)" from variable's name if var is a dimension lappend fontlock(vars) $bare_name diff --git a/dev-tools/guihelp.xsl b/dev-tools/guihelp.xsl index 8fd3839ebe..61191ed1c0 100644 --- a/dev-tools/guihelp.xsl +++ b/dev-tools/guihelp.xsl @@ -27,7 +27,10 @@ - + @@ -44,8 +47,10 @@ } - @@ -59,17 +64,17 @@ - + - - - + + help {
      @@ -79,6 +84,9 @@
    •   Variables: (i), i=,

    • + +
    •   Variables: (), () = () ... ()

    • +
    •   Type:

    • @@ -120,11 +128,11 @@ } - + - + grouphelp { - + } { @@ -152,6 +160,19 @@
      + +
    •   Variables: + + + (), + + () = () ... () + + + +

    • +
      +
    •   Type:

    • diff --git a/dev-tools/helpdoc.d/gui.tcl b/dev-tools/helpdoc.d/gui.tcl index b2d83009ee..604bf8203a 100644 --- a/dev-tools/helpdoc.d/gui.tcl +++ b/dev-tools/helpdoc.d/gui.tcl @@ -306,7 +306,7 @@ proc ::helpdoc::def_registerItems {tree node action} { set name [arr name] switch -- $tag { - var - keyword - dimension - namelist - table { + var - keyword - dimension - multidimension - namelist - table { def_registerItem_ $tag $name $attr } list { diff --git a/dev-tools/helpdoc.d/guihelp.tcl b/dev-tools/helpdoc.d/guihelp.tcl index 21409a16f5..2140aba1c6 100644 --- a/dev-tools/helpdoc.d/guihelp.tcl +++ b/dev-tools/helpdoc.d/guihelp.tcl @@ -28,7 +28,7 @@ namespace eval ::helpdoc::gui_help { if { [info exists ::guib::moduleObj::module_item($name)] } { if { $::guib::moduleObj::module_item(ident,$name) != "" } { switch -- $::guib::moduleObj::module_item($name) { - var - dimension - table - text { + var - dimension - multidimension - table - text { # important: we must pass from name to ident addHelp_ $::guib::moduleObj::module_item(ident,$name) $helpTxt @@ -46,7 +46,7 @@ namespace eval ::helpdoc::gui_help { if { [info exists ::guib::moduleObj::module_item($name)] } { if { $::guib::moduleObj::module_item(ident,$name) != "" } { switch -- $::guib::moduleObj::module_item($name) { - var - dimension - table { + var - dimension - multidimension - table { lappend ok_names $::guib::moduleObj::module_item(ident,$name) } @@ -62,7 +62,7 @@ namespace eval ::helpdoc::gui_help { if { [info exists ::guib::moduleObj::module_item($name)] } { if { $::guib::moduleObj::module_item(ident,$name) != "" } { switch -- $::guib::moduleObj::module_item($name) { - var - dimension - table { + var - dimension - multidimension - table { lappend ok_names $::guib::moduleObj::module_item(ident,$name) } diff --git a/dev-tools/release-checklist.md b/dev-tools/release-checklist.md index 840d943ec1..2cbbe5f42a 100644 --- a/dev-tools/release-checklist.md +++ b/dev-tools/release-checklist.md @@ -10,7 +10,7 @@ 8. verify that install/configure is updated and aligned with install/configure.ac 9. update version number in Modules/version.f90 10. set a git branch "qe-x.y[.z]" for version x.y[.z] -11. align github to gitlab +11. align master to develop, github to gitlab 12. make packages on gitlab and github 13. if there are changes to che schema, copy the new schema to quantumespresso@qe.safevps.it:/storage/vhosts/quantum-espresso.org/ns/qes diff --git a/install/configure b/install/configure index a9f3647535..e9169d7b4e 100755 --- a/install/configure +++ b/install/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for ESPRESSO 6.3. +# Generated by GNU Autoconf 2.69 for ESPRESSO 6.4. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -577,8 +577,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='ESPRESSO' PACKAGE_TARNAME='espresso' -PACKAGE_VERSION='6.3' -PACKAGE_STRING='ESPRESSO 6.3' +PACKAGE_VERSION='6.4' +PACKAGE_STRING='ESPRESSO 6.4' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1328,7 +1328,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures ESPRESSO 6.3 to adapt to many kinds of systems. +\`configure' configures ESPRESSO 6.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1393,7 +1393,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of ESPRESSO 6.3:";; + short | recursive ) echo "Configuration of ESPRESSO 6.4:";; esac cat <<\_ACEOF @@ -1522,7 +1522,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -ESPRESSO configure 6.3 +ESPRESSO configure 6.4 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1988,7 +1988,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by ESPRESSO $as_me 6.3, which was +It was created by ESPRESSO $as_me 6.4, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -10575,7 +10575,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by ESPRESSO $as_me 6.3, which was +This file was extended by ESPRESSO $as_me 6.4, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -10637,7 +10637,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -ESPRESSO config.status 6.3 +ESPRESSO config.status 6.4 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/install/configure.ac b/install/configure.ac index f54fc2b14f..bd89f05309 100644 --- a/install/configure.ac +++ b/install/configure.ac @@ -6,7 +6,7 @@ # of the License. See the file `License' in the root directory # of the present distribution. -AC_INIT(ESPRESSO, 6.3, , espresso) +AC_INIT(ESPRESSO, 6.4, , espresso) AC_PREREQ(2.64) AC_CONFIG_MACRO_DIR([m4/])