*** FILE AUTOMATICALLY CREATED: DO NOT EDIT, CHANGES WILL BE LOST ***

------------------------------------------------------------------------
INPUT FILE DESCRIPTION

Program: pw.x / PWscf / Quantum ESPRESSO (version: 7.2)
------------------------------------------------------------------------


Input data format: { } = optional, [ ] = it depends, | = or

All quantities whose dimensions are not explicitly specified are in
RYDBERG ATOMIC UNITS. Charge is "number" charge (i.e. not multiplied
by e); potentials are in energy units (i.e. they are multiplied by e).

BEWARE: TABS, CRLF, ANY OTHER STRANGE CHARACTER, ARE A SOURCES OF TROUBLE
USE ONLY PLAIN ASCII TEXT FILES (CHECK THE FILE TYPE WITH UNIX COMMAND "file")

Namelists must appear in the order given below.
Comment lines in namelists can be introduced by a "!", exactly as in
fortran code. Comments lines in cards can be introduced by
either a "!" or a "#" character in the first position of a line.
Do not start any line in cards with a "/" character.
Leave a space between card names and card options, e.g.
ATOMIC_POSITIONS (bohr), not ATOMIC_POSITIONS(bohr)


Structure of the input data:
===============================================================================

&CONTROL
  ...
/

&SYSTEM
  ...
/

&ELECTRONS
  ...
/

[ &IONS
  ...
 / ]

[ &CELL
  ...
 / ]

[ &FCP
  ...
 / ]

[ &RISM
  ...
 / ]

ATOMIC_SPECIES
 X  Mass_X  PseudoPot_X
 Y  Mass_Y  PseudoPot_Y
 Z  Mass_Z  PseudoPot_Z

ATOMIC_POSITIONS { alat | bohr | angstrom | crystal | crystal_sg }
  X 0.0  0.0  0.0  {if_pos(1) if_pos(2) if_pos(3)}
  Y 0.5  0.0  0.0
  Z 0.0  0.2  0.2

K_POINTS { tpiba | automatic | crystal | gamma | tpiba_b | crystal_b | tpiba_c | crystal_c }
if (gamma)
   nothing to read
if (automatic)
   nk1, nk2, nk3, k1, k2, k3
if (not automatic)
   nks
   xk_x, xk_y, xk_z,  wk
if (tpipa_b or crystal_b in a 'bands' calculation) see Doc/brillouin_zones.pdf

[ CELL_PARAMETERS { alat | bohr | angstrom }
   v1(1) v1(2) v1(3)
   v2(1) v2(2) v2(3)
   v3(1) v3(2) v3(3) ]

[ OCCUPATIONS
   f_inp1(1)  f_inp1(2)  f_inp1(3) ... f_inp1(10)
   f_inp1(11) f_inp1(12) ... f_inp1(nbnd)
 [ f_inp2(1)  f_inp2(2)  f_inp2(3) ... f_inp2(10)
   f_inp2(11) f_inp2(12) ... f_inp2(nbnd) ] ]

[ CONSTRAINTS
   nconstr  { constr_tol }
   constr_type(.)   constr(1,.)   constr(2,.) [ constr(3,.)   constr(4,.) ] { constr_target(.) } ]

[ ATOMIC_VELOCITIES
   label(1)  vx(1) vy(1) vz(1)
   .....
   label(n)  vx(n) vy(n) vz(n) ]

[ ATOMIC_FORCES
   label(1)  Fx(1) Fy(1) Fz(1)
   .....
   label(n)  Fx(n) Fy(n) Fz(n) ]

[ ADDITIONAL_K_POINTS
     see: K_POINTS ]

[ SOLVENTS
   label(1)     Density(1)     Molecule(1)
   label(2)     Density(2)     Molecule(2)
   .....
   label(nsolv) Density(nsolv) Molecule(nsolv) ]

[ HUBBARD { atomic | ortho-atomic | norm-atomic | wf | pseudo }
  if (DFT+U)
      U  label(1)-manifold(1) u_val(1)
    [ J0 label(1)-manifold(1) j0_val(1) ]
      .....
      U  label(n)-manifold(n) u_val(n)
    [ J0 label(n)-manifold(n) j0_val(n) ]
  if (DFT+U+J)
      paramType(1) label(1)-manifold(1) paramValue(1)
      .....
      paramType(n) label(n)-manifold(n) paramValue(n)
  if (DFT+U+V)
      U  label(I)-manifold(I) u_val(I)
    [ J0 label(I)-manifold(I) j0_val(I) ]
      V  label(I)-manifold(I) label(J)-manifold(J) I J v_val(I,J)
      .....
      U  label(N)-manifold(N) u_val(N)
    [ J0 label(N)-manifold(N) j0_val(N) ]
      V  label(N)-manifold(N) label(M)-manifold(M) N M v_val(N,M)
]
All Hubbard parameters must be specified in eV.
manifold  = 3d, 2p, 4f...
paramType = U, J, B, E2, or E3
Check Doc/Hubbard_input.pdf for more details.



========================================================================
NAMELIST: &CONTROL

   +--------------------------------------------------------------------
   Variable:       calculation
   
   Type:           CHARACTER
   Default:        'scf'
   Description:   
                   A string describing the task to be performed. Options are:
                        'scf'
                        'nscf'
                        'bands'
                        'relax'
                        'md'
                        'vc-relax'
                        'vc-md'
    
                   (vc = variable-cell).
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       title
   
   Type:           CHARACTER
   Default:        ' '
   Description:    reprinted on output.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       verbosity
   
   Type:           CHARACTER
   Default:        'low'
   Description:   
                   Currently two verbosity levels are implemented:
                        'high'
                        'low'
    
                   'debug' and 'medium' have the same effect as 'high';
                   'default' and 'minimal' as 'low'
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       restart_mode
   
   Type:           CHARACTER
   Default:        'from_scratch'
   Description:   
                   Available options are:
    
                   'from_scratch' :
                        From scratch. This is the normal way to perform a PWscf calculation
    
                   'restart' :
                        From previous interrupted run. Use this switch only if you want to
                        continue, using the same number of processors and parallelization,
                        an interrupted calculation. Do not use to start a new one, or to
                        perform a non-scf calculations.  Works only if the calculation was
                        cleanly stopped using variable "max_seconds", or by user request
                        with an "exit file" (i.e.: create a file "prefix".EXIT, in directory
                        "outdir"; see variables "prefix", "outdir"). The default for
                        "startingwfc" and "startingpot" is set to 'file'.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       wf_collect
   
   Type:           LOGICAL
   Description:    OBSOLETE - NO LONGER IMPLEMENTED
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       nstep
   
   Type:           INTEGER
   Description:    number of molecular-dynamics or structural optimization steps
                   performed in this run. If set to 0, the code performs a quick
                   "dry run", stopping just after initialization. This is useful
                   to check for input correctness and to have the summary printed.
                   NOTE: in MD calculations, the code will perform "nstep" steps
                   even if restarting from a previously interrupted calculation.
   Default:        1  if "calculation" == 'scf', 'nscf', 'bands';
                   50 for the other cases
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       iprint
   
   Type:           INTEGER
   Default:        write only at convergence
   Description:    band energies are written every iprint iterations
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       tstress
   
   Type:           LOGICAL
   Default:        .false.
   Description:    calculate stress. It is set to .TRUE. automatically if
                   "calculation" == 'vc-md' or 'vc-relax'
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       tprnfor
   
   Type:           LOGICAL
   Description:    calculate forces. It is set to .TRUE. automatically if
                   "calculation" == 'relax','md','vc-md'
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       dt
   
   Type:           REAL
   Default:        20.D0
   Description:    time step for molecular dynamics, in Rydberg atomic units
                   (1 a.u.=4.8378 * 10^-17 s : beware, the CP code uses
                    Hartree atomic units, half that much!!!)
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       outdir
   
   Type:           CHARACTER
   Default:        value of the ESPRESSO_TMPDIR environment variable if set;
                   current directory ('./') otherwise
   Description:    input, temporary, output files are found in this directory,
                   see also "wfcdir"
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       wfcdir
   
   Type:           CHARACTER
   Default:        same as "outdir"
   Description:    This directory specifies where to store files generated by
                   each processor (*.wfc{N}, *.igk{N}, etc.). Useful for
                   machines without a parallel file system: set "wfcdir" to
                   a local file system, while "outdir" should be a parallel
                   or network file system, visible to all processors. Beware:
                   in order to restart from interrupted runs, or to perform
                   further calculations using the produced data files, you
                   may need to copy files to "outdir". Works only for pw.x.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       prefix
   
   Type:           CHARACTER
   Default:        'pwscf'
   Description:    prepended to input/output filenames:
                   prefix.wfc, prefix.rho, etc.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       lkpoint_dir
   
   Type:           LOGICAL
   Description:    OBSOLETE - NO LONGER IMPLEMENTED
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       max_seconds
   
   Type:           REAL
   Default:        1.D+7, or 150 days, i.e. no time limit
   Description:    Jobs stops after "max_seconds" CPU time. Use this option
                   in conjunction with option "restart_mode" if you need to
                   split a job too long to complete into shorter jobs that
                   fit into your batch queues.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       etot_conv_thr
   
   Type:           REAL
   Default:        1.0D-4
   Description:    Convergence threshold on total energy (a.u) for ionic
                   minimization: the convergence criterion is satisfied
                   when the total energy changes less than "etot_conv_thr"
                   between two consecutive scf steps. Note that "etot_conv_thr"
                   is extensive, like the total energy.
                   See also "forc_conv_thr" - both criteria must be satisfied
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       forc_conv_thr
   
   Type:           REAL
   Default:        1.0D-3
   Description:    Convergence threshold on forces (a.u) for ionic minimization:
                   the convergence criterion is satisfied when all components of
                   all forces are smaller than "forc_conv_thr".
                   See also "etot_conv_thr" - both criteria must be satisfied
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       disk_io
   
   Type:           CHARACTER
   Default:        see below
   Description:   
                   Specifies the amount of disk I/O activity:
                   (only for binary files and xml data file in data directory;
                   other files printed at each molecular dynamics / structural
                   optimization step are not controlled by this option )
    
                   'high' :
                        save charge to disk at each SCF step,
                        keep wavefunctions on disk (in "distributed" format),
                        save mixing data as well.
                        Do not use this option unless you have a good reason!
                        It is no longer needed to specify 'high' in order to be able
                        to restart from an interrupted calculation (see "restart_mode")
    
                   'medium' :
                        save charge to disk at each SCF step,
                        keep wavefunctions on disk only if more than one k-point,
                        per process is present, otherwise keep them in memory;
                        save them to disk only at the end (in "portable" format)
    
                   'low' :
                        save charge to disk at each SCF step,
                        keep wavefunctions in memory (for all k-points),
                        save them to disk only at the end (in "portable" format).
                        Reduces I/O but increases memory wrt the previous cases
    
                   'nowf' :
                        save to disk only the xml data file,
                        never save wavefunctions and charge density
    
                   'none' :
                        do not save anything to disk
    
                   Default is 'low' for the scf case, 'medium' otherwise.
                   Note that the needed RAM increases as disk I/O decreases
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       pseudo_dir
   
   Type:           CHARACTER
   Default:        value of the $ESPRESSO_PSEUDO environment variable if set;
                   '$HOME/espresso/pseudo/' otherwise
   Description:    directory containing pseudopotential files
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       tefield
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    If .TRUE. a saw-like potential simulating an electric field
                   is added to the bare ionic potential. See variables "edir",
                   "eamp", "emaxpos", "eopreg" for the form and size of
                   the added potential.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       dipfield
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    If .TRUE. and "tefield"==.TRUE. a dipole correction is also
                   added to the bare ionic potential - implements the recipe
                   of L. Bengtsson, PRB 59, 12301 (1999). See variables "edir",
                   "emaxpos", "eopreg" for the form of the correction. Must
                   be used ONLY in a slab geometry, for surface calculations,
                   with the discontinuity FALLING IN THE EMPTY SPACE.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       lelfield
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    If .TRUE. a homogeneous finite electric field described
                   through the modern theory of the polarization is applied.
                   This is different from "tefield" == .true. !
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       nberrycyc
   
   Type:           INTEGER
   Default:        1
   Description:    In the case of a finite electric field  ( "lelfield" == .TRUE. )
                   it defines the number of iterations for converging the
                   wavefunctions in the electric field Hamiltonian, for each
                   external iteration on the charge density
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       lorbm
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    If .TRUE. perform orbital magnetization calculation.
                   If finite electric field is applied ("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 'nscf' and should be performed on an automatically
                   generated uniform grid of k points.
                   
                   Works ONLY with norm-conserving pseudopotentials.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       lberry
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    If .TRUE. perform a Berry phase calculation.
                   See the header of PW/src/bp_c_phase.f90 for documentation.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       gdir
   
   Type:           INTEGER
   Description:    For Berry phase calculation: direction of the k-point
                   strings in reciprocal space. Allowed values: 1, 2, 3
                   1=first, 2=second, 3=third reciprocal lattice vector
                   For calculations with finite electric fields
                   ("lelfield"==.true.) "gdir" is the direction of the field.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       nppstr
   
   Type:           INTEGER
   Description:    For Berry phase calculation: number of k-points to be
                   calculated along each symmetry-reduced string.
                   The same for calculation with finite electric fields
                   ("lelfield"==.true.).
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       gate
   
   Type:           LOGICAL
   Default:        .FALSE.
   See:            zgate, relaxz, block, block_1, block_2, block_height
   Description:    In the case of charged cells ("tot_charge" .ne. 0) setting gate = .TRUE.
                   represents the counter charge (i.e. -tot_charge) not by a homogeneous
                   background charge but with a charged plate, which is placed at "zgate"
                   (see below). Details of the gate potential can be found in
                   T. Brumme, M. Calandra, F. Mauri; PRB 89, 245406 (2014).
                   Note, that in systems which are not symmetric with respect to the plate,
                   one needs to enable the dipole correction! ("dipfield"=.true.).
                   Currently, symmetry can be used with gate=.true. but carefully check
                   that no symmetry is included which maps z to -z even if in principle one
                   could still use them for symmetric systems (i.e. no dipole correction).
                   For "nosym"=.false. verbosity is set to 'high'.
                   Note: this option was called "monopole" in v6.0 and 6.1 of pw.x
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       twochem
   
   Type:           LOGICAL
   Default:        .FALSE.
   See:            nelec_cond, nbnd_cond, degauss_cond
   Description:    IF .TRUE. , a two chemical potential calculation for the simulation of
                   photoexcited systems is performed, constraining a fraction of the
                   electrons in the conduction manifold.
                   See G. Marini, M. Calandra; PRB 104, 144103 (2021).
                   Note: requires "occupations" to be set to 'smearing'.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       lfcp
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    If .TRUE. perform a constant bias potential (constant-mu) calculation
                   for a system with ESM method. See the header of PW/src/fcp_module.f90
                   for documentation. To perform the calculation, you must set a namelist FCP.
                   
                   NB:
                   - The total energy displayed in output includes the potentiostat
                     contribution (-mu*N).
                   - "calculation" must be 'relax' or 'md'.
                   - "assume_isolated" = 'esm' and "esm_bc" = 'bc2' or 'bc3' must be set
                     in "SYSTEM" namelist.
                   - ESM-RISM is also supported ("assume_isolated" = 'esm' and "esm_bc" = 'bc1'
                     and "trism" = .TRUE.).
                   - "ignore_wolfe" is always .TRUE., for BFGS.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       trism
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    If .TRUE. perform a 3D-RISM-SCF calculation
                   [for details see H.Sato et al., JCP 112, 9463 (2000), doi:10.1063/1.481564].
                   The solvent's distributions are calculated by 3D-RISM,
                   though solute is treated as SCF. The charge density and
                   the atomic positions are optimized, simultaneously with
                   the solvents. To perform the calculation, you must set
                   a namelist "RISM" and a card "SOLVENTS".
                   
                   If "assume_isolated" = 'esm' and "esm_bc" = 'bc1',
                   Laue-RISM is calculated instead of 3D-RISM
                   and coupled with ESM method (i.e. ESM-RISM).
                   [for details see S.Nishihara and M.Otani, PRB 96, 115429 (2017)].
                   
                   The default of "mixing_beta" is 0.2
                   for both 3D-RISM and Laue-RISM.
                   
                   For structural relaxation with BFGS,
                   "ignore_wolfe" is always .TRUE. .
   +--------------------------------------------------------------------
   
===END OF NAMELIST======================================================


========================================================================
NAMELIST: &SYSTEM

   +--------------------------------------------------------------------
   Variable:       ibrav
   
   Type:           INTEGER
   Status:         REQUIRED
   Description:    Bravais-lattice index. Optional only if space_group is set.
                     If ibrav /= 0, specify EITHER [ "celldm"(1)-"celldm"(6) ]
                     OR [ "A", "B", "C", "cosAB", "cosAC", "cosBC" ]
                     but NOT both. The lattice parameter "alat" is set to
                     alat = celldm(1) (in a.u.) or alat = A (in Angstrom);
                     see below for the other parameters.
                     For ibrav=0 specify the lattice vectors in "CELL_PARAMETERS",
                     optionally the lattice parameter alat = celldm(1) (in a.u.)
                     or = A (in Angstrom). If not specified, the lattice parameter is
                     taken from "CELL_PARAMETERS"
                     IMPORTANT NOTICE 1:
                     with ibrav=0 lattice vectors must be given with a sufficiently large
                     number of digits and with the correct symmetry, or else symmetry
                     detection may fail and strange problems may arise in symmetrization.
                     IMPORTANT NOTICE 2:
                     do not use celldm(1) or A as a.u. to Ang conversion factor,
                     use the true lattice parameters or nothing,
                     specify units in "CELL_PARAMETERS" and "ATOMIC_POSITIONS"
                   
                   ibrav      structure                   celldm(2)-celldm(6)
                                                        or: b,c,cosbc,cosac,cosab
                     0          free
                         crystal axis provided in input: see card "CELL_PARAMETERS"
                   
                     1          cubic P (sc)
                         v1 = a(1,0,0),  v2 = a(0,1,0),  v3 = a(0,0,1)
                   
                     2          cubic F (fcc)
                         v1 = (a/2)(-1,0,1),  v2 = (a/2)(0,1,1), v3 = (a/2)(-1,1,0)
                   
                     3          cubic I (bcc)
                         v1 = (a/2)(1,1,1),  v2 = (a/2)(-1,1,1),  v3 = (a/2)(-1,-1,1)
                    -3          cubic I (bcc), more symmetric axis:
                         v1 = (a/2)(-1,1,1), v2 = (a/2)(1,-1,1),  v3 = (a/2)(1,1,-1)
                   
                     4          Hexagonal and Trigonal P        celldm(3)=c/a
                         v1 = a(1,0,0),  v2 = a(-1/2,sqrt(3)/2,0),  v3 = a(0,0,c/a)
                   
                     5          Trigonal R, 3fold axis c        celldm(4)=cos(gamma)
                         The crystallographic vectors form a three-fold star around
                         the z-axis, the primitive cell is a simple rhombohedron:
                         v1 = a(tx,-ty,tz),   v2 = a(0,2ty,tz),   v3 = a(-tx,-ty,tz)
                         where c=cos(gamma) is the cosine of the angle gamma between
                         any pair of crystallographic vectors, tx, ty, tz are:
                           tx=sqrt((1-c)/2), ty=sqrt((1-c)/6), tz=sqrt((1+2c)/3)
                    -5          Trigonal R, 3fold axis <111>    celldm(4)=cos(gamma)
                         The crystallographic vectors form a three-fold star around
                         <111>. Defining a' = a/sqrt(3) :
                         v1 = a' (u,v,v),   v2 = a' (v,u,v),   v3 = a' (v,v,u)
                         where u and v are defined as
                           u = tz - 2*sqrt(2)*ty,  v = tz + sqrt(2)*ty
                         and tx, ty, tz as for case ibrav=5
                         Note: if you prefer x,y,z as axis in the cubic limit,
                               set  u = tz + 2*sqrt(2)*ty,  v = tz - sqrt(2)*ty
                               See also the note in Modules/latgen.f90
                   
                     6          Tetragonal P (st)               celldm(3)=c/a
                         v1 = a(1,0,0),  v2 = a(0,1,0),  v3 = a(0,0,c/a)
                   
                     7          Tetragonal I (bct)              celldm(3)=c/a
                         v1=(a/2)(1,-1,c/a),  v2=(a/2)(1,1,c/a),  v3=(a/2)(-1,-1,c/a)
                   
                     8          Orthorhombic P                  celldm(2)=b/a
                                                                celldm(3)=c/a
                         v1 = (a,0,0),  v2 = (0,b,0), v3 = (0,0,c)
                   
                     9          Orthorhombic base-centered(bco) celldm(2)=b/a
                                                                celldm(3)=c/a
                         v1 = (a/2, b/2,0),  v2 = (-a/2,b/2,0),  v3 = (0,0,c)
                    -9          as 9, alternate description
                         v1 = (a/2,-b/2,0),  v2 = (a/2, b/2,0),  v3 = (0,0,c)
                    91          Orthorhombic one-face base-centered A-type
                                                                celldm(2)=b/a
                                                                celldm(3)=c/a
                         v1 = (a, 0, 0),  v2 = (0,b/2,-c/2),  v3 = (0,b/2,c/2)
                   
                    10          Orthorhombic face-centered      celldm(2)=b/a
                                                                celldm(3)=c/a
                         v1 = (a/2,0,c/2),  v2 = (a/2,b/2,0),  v3 = (0,b/2,c/2)
                   
                    11          Orthorhombic body-centered      celldm(2)=b/a
                                                                celldm(3)=c/a
                         v1=(a/2,b/2,c/2),  v2=(-a/2,b/2,c/2),  v3=(-a/2,-b/2,c/2)
                   
                    12          Monoclinic P, unique axis c     celldm(2)=b/a
                                                                celldm(3)=c/a,
                                                                celldm(4)=cos(ab)
                         v1=(a,0,0), v2=(b*cos(gamma),b*sin(gamma),0),  v3 = (0,0,c)
                         where gamma is the angle between axis a and b.
                   -12          Monoclinic P, unique axis b     celldm(2)=b/a
                                                                celldm(3)=c/a,
                                                                celldm(5)=cos(ac)
                         v1 = (a,0,0), v2 = (0,b,0), v3 = (c*cos(beta),0,c*sin(beta))
                         where beta is the angle between axis a and c
                   
                    13          Monoclinic base-centered        celldm(2)=b/a
                                (unique axis c)                 celldm(3)=c/a,
                                                                celldm(4)=cos(gamma)
                         v1 = (  a/2,         0,          -c/2),
                         v2 = (b*cos(gamma), b*sin(gamma), 0  ),
                         v3 = (  a/2,         0,           c/2),
                         where gamma=angle between axis a and b projected on xy plane
                   
                   -13          Monoclinic base-centered        celldm(2)=b/a
                                (unique axis b)                 celldm(3)=c/a,
                                                                celldm(5)=cos(beta)
                         v1 = (  a/2,       b/2,             0),
                         v2 = ( -a/2,       b/2,             0),
                         v3 = (c*cos(beta),   0,   c*sin(beta)),
                         where beta=angle between axis a and c projected on xz plane
                    IMPORTANT NOTICE: until QE v.6.4.1, axis for ibrav=-13 had a
                    different definition: v1(old) =-v2(now), v2(old) = v1(now)
                   
                    14          Triclinic                       celldm(2)= b/a,
                                                                celldm(3)= c/a,
                                                                celldm(4)= cos(bc),
                                                                celldm(5)= cos(ac),
                                                                celldm(6)= cos(ab)
                         v1 = (a, 0, 0),
                         v2 = (b*cos(gamma), b*sin(gamma), 0)
                         v3 = (c*cos(beta),  c*(cos(alpha)-cos(beta)cos(gamma))/sin(gamma),
                              c*sqrt( 1 + 2*cos(alpha)cos(beta)cos(gamma)
                                        - cos(alpha)^2-cos(beta)^2-cos(gamma)^2 )/sin(gamma) )
                         where alpha is the angle between axis b and c
                                beta is the angle between axis a and c
                               gamma is the angle between axis a and b
   +--------------------------------------------------------------------
   
   ///---
      EITHER:
      
      +--------------------------------------------------------------------
      Variable:       celldm(i), i=1,6
      
      Type:           REAL
      See:            ibrav
      Description:    Crystallographic constants - see the "ibrav" variable.
                      Specify either these OR "A","B","C","cosAB","cosBC","cosAC" NOT both.
                      Only needed values (depending on "ibrav") must be specified
                      alat = "celldm"(1) is the lattice parameter "a" (in BOHR)
                      If "ibrav"==0, only "celldm"(1) is used if present;
                      cell vectors are read from card "CELL_PARAMETERS"
      +--------------------------------------------------------------------
      
      OR:
      
      +--------------------------------------------------------------------
      Variables:      A, B, C, cosAB, cosAC, cosBC
      
      Type:           REAL
      See:            ibrav
      Description:    Traditional crystallographic constants:
                      
                        a,b,c in ANGSTROM
                        cosAB = cosine of the angle between axis a and b (gamma)
                        cosAC = cosine of the angle between axis a and c (beta)
                        cosBC = cosine of the angle between axis b and c (alpha)
                      
                      The axis are chosen according to the value of "ibrav".
                      Specify either these OR "celldm" but NOT both.
                      Only needed values (depending on "ibrav") must be specified.
                      
                      The lattice parameter alat = A (in ANGSTROM ).
                      
                      If "ibrav" == 0, only A is used if present, and
                      cell vectors are read from card "CELL_PARAMETERS".
      +--------------------------------------------------------------------
      
   \\\---
   
   +--------------------------------------------------------------------
   Variable:       nat
   
   Type:           INTEGER
   Status:         REQUIRED
   Description:    number of atoms in the unit cell (ALL atoms, except if
                   space_group is set, in which case, INEQUIVALENT atoms)
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       ntyp
   
   Type:           INTEGER
   Status:         REQUIRED
   Description:    number of types of atoms in the unit cell
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       nbnd
   
   Type:           INTEGER
   Default:        for an insulator, "nbnd" = number of valence bands
                   ("nbnd" = # of electrons /2);
                    for a metal, 20% more (minimum 4 more)
   Description:    Number of electronic states (bands) to be calculated.
                   Note that in spin-polarized calculations the number of
                   k-point, not the number of bands per k-point, is doubled
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       nbnd_cond
   
   Type:           INTEGER
   Default:        nbnd_cond = "nbnd" - # of electrons / 2 in the collinear case;
                                        nbnd_cond = "nbnd" - # of electrons in the noncollinear case.
   Description:    Number of electronic states in the conduction manifold
                   for a two chemical-potential calculation ("twochem"=.true.).
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       tot_charge
   
   Type:           REAL
   Default:        0.0
   Description:    Total charge of the system. Useful for simulations with charged cells.
                   By default the unit cell is assumed to be neutral (tot_charge=0).
                   tot_charge=+1 means one electron missing from the system,
                   tot_charge=-1 means one additional electron, and so on.
                   
                   In a periodic calculation a compensating jellium background is
                   inserted to remove divergences if the cell is not neutral.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       starting_charge(i), i=1,ntyp
   
   Type:           REAL
   Default:        0.0
   Description:    starting charge on atomic type 'i',
                   to create starting potential with "startingpot" = 'atomic'.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       tot_magnetization
   
   Type:           REAL
   Default:        -10000 [unspecified]
   Description:    Total majority spin charge - minority spin charge.
                   Used to impose a specific total electronic magnetization.
                   If unspecified then tot_magnetization variable is ignored and
                   the amount of electronic magnetization is determined during
                   the self-consistent cycle.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       starting_magnetization(i), i=1,ntyp
   
   Type:           REAL
   Default:        0
   Description:    Starting spin polarization on atomic type 'i' in a spin
                   polarized (LSDA or noncollinear/spin-orbit) calculation.
                   For non-constrained calculations, the allowed values
                   range between -1 (all spins down for the valence electrons
                   of atom type 'i') to 1 (all spins up).
                   If you expect a nonzero magnetization in your ground state,
                   you MUST either specify a nonzero value for at least one
                   atomic type, or constrain the magnetization using variable
                   "tot_magnetization" for LSDA, "constrained_magnetization"
                   for noncollinear/spin-orbit calculations. If you don't,
                   you will get a nonmagnetic (zero magnetization) state.
                   In order to perform LSDA calculations for an antiferromagnetic
                   state, define two different atomic species corresponding to
                   sublattices of the same atomic type.
                   
                   NOTE 1: "starting_magnetization" is ignored in most BUT NOT ALL
                   cases in non-scf calculations: it is safe to keep the same
                   values for the scf and subsequent non-scf calculation.
                   
                   NOTE 2: If you fix the magnetization with
                   "tot_magnetization", do not specify "starting_magnetization".
                   
                   NOTE 3: In the noncollinear/spin-orbit case, starting with zero
                   starting_magnetization on all atoms imposes time reversal
                   symmetry. The magnetization is never calculated and is
                   set to zero (the internal variable domag is set to .FALSE.).
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       ecutwfc
   
   Type:           REAL
   Status:         REQUIRED
   Description:    kinetic energy cutoff (Ry) for wavefunctions
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       ecutrho
   
   Type:           REAL
   Default:        4 * "ecutwfc"
   Description:    Kinetic energy cutoff (Ry) for charge density and potential
                   For norm-conserving pseudopotential you should stick to the
                   default value, you can reduce it by a little but it will
                   introduce noise especially on forces and stress.
                   If there are ultrasoft PP, a larger value than the default is
                   often desirable (ecutrho = 8 to 12 times "ecutwfc", typically).
                   PAW datasets can often be used at 4*"ecutwfc", but it depends
                   on the shape of augmentation charge: testing is mandatory.
                   The use of gradient-corrected functional, especially in cells
                   with vacuum, or for pseudopotential without non-linear core
                   correction, usually requires an higher values of ecutrho
                   to be accurately converged.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       ecutfock
   
   Type:           REAL
   Default:        ecutrho
   Description:    Kinetic energy cutoff (Ry) for the exact exchange operator in
                   EXX type calculations. By default this is the same as "ecutrho"
                   but in some EXX calculations, a significant speed-up can be obtained
                   by reducing ecutfock, at the expense of some loss in accuracy.
                   Must be .gt. "ecutwfc". Not implemented for stress calculation
                   and for US-PP and PAW pseudopotentials.
                   Use with care, especially in metals where it may give raise
                   to instabilities.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variables:      nr1, nr2, nr3
   
   Type:           INTEGER
   Description:    Three-dimensional FFT mesh (hard grid) for charge
                   density (and scf potential). If not specified
                   the grid is calculated based on the cutoff for
                   charge density (see also "ecutrho")
                   Note: you must specify all three dimensions for this setting to
                   be used.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variables:      nr1s, nr2s, nr3s
   
   Type:           INTEGER
   Description:    Three-dimensional mesh for wavefunction FFT and for the smooth
                   part of charge density ( smooth grid ).
                   Coincides with "nr1", "nr2", "nr3" if "ecutrho" = 4 * ecutwfc ( default )
                   Note: you must specify all three dimensions for this setting to
                   be used.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       nosym
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    if (.TRUE.) symmetry is not used. Consequences:
                   
                   - if a list of k points is provided in input, it is used
                     "as is": symmetry-inequivalent k-points are not generated,
                     and the charge density is not symmetrized;
                   
                   - if a uniform (Monkhorst-Pack) k-point grid is provided in
                     input, it is expanded to cover the entire Brillouin Zone,
                     irrespective of the crystal symmetry.
                     Time reversal symmetry is assumed so k and -k are considered
                     as equivalent unless "noinv"=.true. is specified.
                   
                   Do not use this option unless you know exactly what you want
                   and what you get. May be useful in the following cases:
                   - in low-symmetry large cells, if you cannot afford a k-point
                     grid with the correct symmetry
                   - in MD simulations
                   - in calculations for isolated atoms
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       nosym_evc
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    if (.TRUE.) symmetry is not used, and k points are
                   forced to have the symmetry of the Bravais lattice;
                   an automatically generated Monkhorst-Pack grid will contain
                   all points of the grid over the entire Brillouin Zone,
                   plus the points rotated by the symmetries of the Bravais
                   lattice which were not in the original grid. The same
                   applies if a k-point list is provided in input instead
                   of a Monkhorst-Pack grid. Time reversal symmetry is assumed
                   so k and -k are equivalent unless "noinv"=.true. is specified.
                   This option differs from "nosym" because it forces k-points
                   in all cases to have the full symmetry of the Bravais lattice
                   (not all uniform grids have such property!)
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       noinv
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    if (.TRUE.) disable the usage of k => -k symmetry
                   (time reversal) in k-point generation
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       no_t_rev
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    if (.TRUE.) disable the usage of magnetic symmetry operations
                   that consist in a rotation + time reversal.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       force_symmorphic
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    if (.TRUE.) force the symmetry group to be symmorphic by disabling
                   symmetry operations having an associated fractionary translation
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       use_all_frac
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    if (.FALSE.) force real-space FFT grids to be commensurate with
                   fractionary translations of non-symmorphic symmetry operations,
                   if present (e.g.: if a fractional translation (0,0,c/4) exists,
                   the FFT dimension along the c axis must be multiple of 4).
                   if (.TRUE.) do not impose any constraints to FFT grids, even in
                   the presence of non-symmorphic symmetry operations.
                   BEWARE: use_all_frac=.TRUE. may lead to wrong results for
                   hybrid functionals and phonon calculations. Both cases use
                   symmetrization in real space that works for non-symmorphic
                   operations only if the real-space FFT grids are commensurate.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       occupations
   
   Type:           CHARACTER
   Description:   
                   Available options are:
    
                   'smearing' :
                        gaussian smearing for metals;
                        see variables "smearing" and "degauss"
    
                   'tetrahedra' :
                        Tetrahedron method, Bloechl's version:
                        P.E. Bloechl, PRB 49, 16223 (1994)
                        Requires uniform grid of k-points, to be
                        automatically generated (see card "K_POINTS").
                        Well suited for calculation of DOS,
                        less so (because not variational) for
                        force/optimization/dynamics calculations.
    
                   'tetrahedra_lin' :
                        Original linear tetrahedron method.
                        To be used only as a reference;
                        the optimized tetrahedron method is more efficient.
    
                   'tetrahedra_opt' :
                        Optimized tetrahedron method:
                        see M. Kawamura, PRB 89, 094515 (2014).
                        Can be used for phonon calculations as well.
    
                   'fixed' :
                        for insulators with a gap
    
                   'from_input' :
                        The occupation are read from input file,
                        card "OCCUPATIONS". Option valid only for a
                        single k-point, requires "nbnd" to be set
                        in input. Occupations should be consistent
                        with the value of "tot_charge".
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       one_atom_occupations
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    This flag is used for isolated atoms ("nat"=1) together with
                   "occupations"='from_input'. If it is .TRUE., the wavefunctions
                   are ordered as the atomic starting wavefunctions, independently
                   from their eigenvalue. The occupations indicate which atomic
                   states are filled.
                   
                   The order of the states is written inside the UPF pseudopotential file.
                   In the scalar relativistic case:
                   S -> l=0, m=0
                   P -> l=1, z, x, y
                   D -> l=2, r^2-3z^2, xz, yz, xy, x^2-y^2
                   
                   In the noncollinear magnetic case (with or without spin-orbit),
                   each group of states is doubled. For instance:
                   P -> l=1, z, x, y for spin up, l=1, z, x, y for spin down.
                   Up and down is relative to the direction of the starting
                   magnetization.
                   
                   In the case with spin-orbit and time-reversal
                   ("starting_magnetization"=0.0) the atomic wavefunctions are
                   radial functions multiplied by spin-angle functions.
                   For instance:
                   P -> l=1, j=1/2, m_j=-1/2,1/2. l=1, j=3/2,
                        m_j=-3/2, -1/2, 1/2, 3/2.
                   
                   In the magnetic case with spin-orbit the atomic wavefunctions
                   can be forced to be spin-angle functions by setting
                   "starting_spin_angle" to .TRUE..
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       starting_spin_angle
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    In the spin-orbit case when "domag"=.TRUE., by default,
                   the starting wavefunctions are initialized as in scalar
                   relativistic noncollinear case without spin-orbit.
                   
                   By setting "starting_spin_angle"=.TRUE. this behaviour can
                   be changed and the initial wavefunctions are radial
                   functions multiplied by spin-angle functions.
                   
                   When "domag"=.FALSE. the initial wavefunctions are always
                   radial functions multiplied by spin-angle functions
                   independently from this flag.
                   
                   When "lspinorb" is .FALSE. this flag is not used.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       degauss_cond
   
   Type:           REAL
   Default:        0.D0 Ry
   Description:    value of the gaussian spreading (Ry) for brillouin-zone
                   integration in the conduction manifold in a two-chemical
                   potential calculation ("twochem"=.true.).
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       nelec_cond
   
   Type:           REAL
   Default:        0.D0
   Description:    Number of electrons placed in the conduction manifold in a two-chemical
                   potential calculation ("twochem"=.true.). Of the total # of
                   electrons nelec, nelec-nelec_cond will occupy the valence
                   manifold and nelec_cond will be constrained in the conduction manifold.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       degauss
   
   Type:           REAL
   Default:        0.D0 Ry
   Description:    value of the gaussian spreading (Ry) for brillouin-zone
                   integration in metals.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       smearing
   
   Type:           CHARACTER
   Default:        'gaussian'
   Description:   
                   Available options are:
    
                   'gaussian', 'gauss' :
                        ordinary Gaussian spreading (Default)
    
                   'methfessel-paxton', 'm-p', 'mp' :
                        Methfessel-Paxton first-order spreading
                        (see PRB 40, 3616 (1989)).
    
                   'marzari-vanderbilt', 'cold', 'm-v', 'mv' :
                        Marzari-Vanderbilt-DeVita-Payne cold smearing
                        (see PRL 82, 3296 (1999))
    
                   'fermi-dirac', 'f-d', 'fd' :
                        smearing with Fermi-Dirac function
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       nspin
   
   Type:           INTEGER
   Default:        1
   Description:    nspin = 1 :  non-polarized calculation (default)
                   
                   nspin = 2 :  spin-polarized calculation, LSDA
                                (magnetization along z axis)
                   
                   nspin = 4 :  spin-polarized calculation, noncollinear
                                (magnetization in generic direction)
                                DO NOT specify "nspin" in this case;
                                specify "noncolin"=.TRUE. instead
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       sic_gamma
   
   Type:           REAL
   Default:        0
   Description:    Strength of the gammaDFT potential.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       pol_type
   
   Type:           CHARACTER
   Description:   
                   Type of polaron in gammaDFT.
    
                   'e' :
                        electron polaron
    
                   'h' :
                        hole polaron
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       sic_energy
   
   Type:           LOGICAL
   Default:        .false.
   Description:    Enable the calculation of the total energy in gammaDFT. When .true.,
                   a preliminary calculation is performed to calculate the electron density
                   in the absence of the polaron. When .false., the total energy printed in
                   output should not be considered. For structural relaxations, it is
                   recommended to use .false. to avoid doubling the computational cost.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       sci_vb
   
   Type:           REAL
   Default:        0
   Description:    Valence band shift (in eV) through self-consistent
                   scissor operator. When performing gammaDFT calculations
                   of polarons, the polaron level is not shifted.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       sci_cb
   
   Type:           REAL
   Default:        0
   Description:    Conduction band band shift (in eV) through self-consistent
                   scissor operator. When performing gammaDFT calculations
                   of polarons, the polaron level is not shifted.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       noncolin
   
   Type:           LOGICAL
   Default:        .false.
   Description:    if .true. the program will perform a noncollinear calculation.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       ecfixed
   
   Type:           REAL
   Default:        0.0
   See:            q2sigma
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       qcutz
   
   Type:           REAL
   Default:        0.0
   See:            q2sigma
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       q2sigma
   
   Type:           REAL
   Default:        0.1
   Description:    ecfixed, qcutz, q2sigma:  parameters for modified functional to be
                   used in variable-cell molecular dynamics (or in stress calculation).
                   "ecfixed" is the value (in Rydberg) of the constant-cutoff;
                   "qcutz" and "q2sigma" are the height and the width (in Rydberg)
                   of the energy step for reciprocal vectors whose square modulus
                   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
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       input_dft
   
   Type:           CHARACTER
   Default:        read from pseudopotential files
   Description:    Exchange-correlation functional: eg 'PBE', 'BLYP' etc
                   See Modules/funct.f90 for allowed values.
                   Overrides the value read from pseudopotential files.
                   Use with care and if you know what you are doing!
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       ace
   
   Type:           LOGICAL
   Default:        true
   Description:    Use Adaptively Compressed Exchange operator as in
                   Lin Lin, J. Chem. Theory Comput. 2016, 12, 2242--2249, doi:10.1021/acs.jctc.6b00092
                   
                   Set to false to use standard Exchange (much slower)
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       exx_fraction
   
   Type:           REAL
   Default:        it depends on the specified functional
   Description:    Fraction of EXX for hybrid functional calculations. In the case of
                   "input_dft"='PBE0', the default value is 0.25, while for "input_dft"='B3LYP'
                   the "exx_fraction" default value is 0.20.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       screening_parameter
   
   Type:           REAL
   Default:        0.106
   Description:    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. 124, 219906 (2006), doi:10.1063/1.2204597
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       exxdiv_treatment
   
   Type:           CHARACTER
   Default:        'gygi-baldereschi'
   Description:   
                   Specific for EXX. It selects the kind of approach to be used
                   for treating the Coulomb potential divergencies at small q vectors.
    
                   'gygi-baldereschi' :
                        appropriate for cubic and quasi-cubic supercells
    
                   'vcut_spherical' :
                        appropriate for cubic and quasi-cubic supercells
    
                   'vcut_ws' :
                        appropriate for strongly anisotropic supercells, see also "ecutvcut".
    
                   'none' :
                        sets Coulomb potential at G,q=0 to 0.0 (required for GAU-PBE)
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       x_gamma_extrapolation
   
   Type:           LOGICAL
   Default:        .true.
   Description:    Specific for EXX. If .true., extrapolate the G=0 term of the
                   potential (see README in examples/EXX_example for more)
                   Set this to .false. for GAU-PBE.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       ecutvcut
   
   Type:           REAL
   Default:        0.0 Ry
   See:            exxdiv_treatment
   Description:    Reciprocal space cutoff for correcting Coulomb potential
                   divergencies at small q vectors.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variables:      nqx1, nqx2, nqx3
   
   Type:           INTEGER
   Description:    Three-dimensional mesh for q (k1-k2) sampling of
                   the Fock operator (EXX). Can be smaller than
                   the number of k-points.
                   
                   Currently this defaults to the size of the k-point mesh used.
                   In QE =< 5.0.2 it defaulted to nqx1=nqx2=nqx3=1.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       localization_thr
   
   Type:           REAL
   Default:        0.0
   Description:    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
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       Hubbard_occ(ityp,i), (ityp,i)=(1,1) ... (ntyp,3)
   
   Type:           REAL
   Default:        read from pseudopotentials
   Description:    Hubbard occupations is the number of electrons in the
                   Hubbard manifold. By default they are initialized by
                   reading the occupations from pseudopotentials. If specified
                   from the input, then the values read from the pseudopotentials
                   will be overwritten.
                   The second index of the Hubbard_occ array corresponds to the
                   Hubbard manifold number. It is possible to specify up to
                   three Hubbard manifolds per Hubbard atom. However, if you want
                   to specify three manifolds then the second and the third manifolds
                   will be considered as one effective manifold (see Doc/Hubbard_input.pdf)
                   
                   Note: Hubbard_occ cannot be used together with fully-relativistic pseudopotentials
                   (i.e. when noncolin=.true. and lspinorb=.true.) since this variable does not
                   allow to distinguish between the occupied and unoccupied channels (this is
                   needed when determining the atomic orbital offsets).
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       Hubbard_alpha(i), i=1,ntyp
   
   Type:           REAL
   Default:        0.D0 for all species
   Description:    Hubbard_alpha(i) is the perturbation (on atom i, in eV)
                   used to compute U (and V) with the linear-response method of
                   Cococcioni and de Gironcoli, PRB 71, 035105 (2005)
                   (only for DFT+U or DFT+U+V).
                   
                   Note: Hubbard U and V can be computed using the HP code
                   which is based on density-functional perturbation theory,
                   and it gives exactly the same result as the method of
                   Cococcioni and de Gironcoli.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       Hubbard_beta(i), i=1,ntyp
   
   Type:           REAL
   Default:        0.D0 for all species
   Description:    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, 035105 (2005)
                   (only for DFT+U or DFT+U+V). See also
                   PRB 84, 115108 (2011).
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       starting_ns_eigenvalue(m,ispin,ityp), (m,ispin,ityp)=(1,1,1) ... (2*lmax+1,nspin or npol,ntyp)
   
   Type:           REAL
   Default:        -1.d0 that means NOT SET
   Description:    In the first iteration of an DFT+U run it overwrites
                   the m-th eigenvalue of the ns occupation matrix for the
                   ispin component of atomic species ityp.
                   For the noncollinear case, the ispin index runs up to npol=2
                   The value lmax  is given by the maximum angular momentum
                   number to which the Hubbard U is applied.
                   Leave unchanged eigenvalues that are not set.
                   This is useful to suggest the desired orbital occupations
                   when the default choice takes another path.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       dmft
   
   Type:           LOGICAL
   Default:        .FALSE.
   Status:         Requires compilation with hdf5 support
   Description:    If true, nscf calculation will exit in restart mode, scf calculation
                   will restart from there if DMFT updates are provided as hdf5 archive.
                   Scf calculation should be used only with "electron_maxstep" = 1.
                   "K_POINTS" have to be identical and given explicitly with "nosym".
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       dmft_prefix
   
   Type:           CHARACTER
   Default:        "prefix"
   Description:    prepended to hdf5 archive: dmft_prefix.h5
                   
                   DMFT update should be provided in group/dataset as:
                   - dft_misc_input/band_window with dimension [1, number of k-points, 2 (real + complex)]
                   - dft_update/delta_N with dimension [number of k-points, number of correlated orbitals,
                   number of correlated orbitals, 2 (real + complex)]
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       ensemble_energies
   
   Type:           LOGICAL
   Default:        .false.
   Description:    If "ensemble_energies" = .true., an ensemble of xc energies
                   is calculated non-selfconsistently for perturbed
                   exchange-enhancement factors and LDA vs. PBE correlation
                   ratios after each converged electronic ground state
                   calculation.
                   
                   Ensemble energies can be analyzed with the 'bee' utility
                   included with libbeef.
                   
                   Requires linking against libbeef.
                   "input_dft" must be set to a BEEF-type functional
                   (e.g. input_dft = 'BEEF-vdW')
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       edir
   
   Type:           INTEGER
   Description:    The direction of the electric field or dipole correction is
                   parallel to the bg(:,edir) reciprocal lattice vector, so the
                   potential is constant in planes defined by FFT grid points;
                   "edir" = 1, 2 or 3. Used only if "tefield" is .TRUE.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       emaxpos
   
   Type:           REAL
   Default:        0.5D0
   Description:    Position of the maximum of the saw-like potential along crystal
                   axis "edir", within the  unit cell (see below), 0 < emaxpos < 1
                   Used only if "tefield" is .TRUE.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       eopreg
   
   Type:           REAL
   Default:        0.1D0
   Description:    Zone in the unit cell where the saw-like potential decreases.
                   ( see below, 0 < eopreg < 1 ). Used only if "tefield" is .TRUE.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       eamp
   
   Type:           REAL
   Default:        0.001 a.u.
   Description:    Amplitude of the electric field, in ***Hartree*** a.u.;
                   1 a.u. = 51.4220632*10^10 V/m. Used only if "tefield"==.TRUE.
                   The saw-like potential increases with slope "eamp" in the
                   region from ("emaxpos"+"eopreg"-1) to ("emaxpos"), then decreases
                   to 0 until ("emaxpos"+"eopreg"), in units of the crystal
                   vector "edir". Important: the change of slope of this
                   potential must be located in the empty region, or else
                   unphysical forces will result.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       angle1(i), i=1,ntyp
   
   Type:           REAL
   Description:    The angle expressed in degrees between the initial
                   magnetization and the z-axis. For noncollinear calculations
                   only; index i runs over the atom types.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       angle2(i), i=1,ntyp
   
   Type:           REAL
   Description:    The angle expressed in degrees between the projection
                   of the initial magnetization on x-y plane and the x-axis.
                   For noncollinear calculations only.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       lforcet
   
   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 it in the direction described by "angle1" and
                   "angle2" variables for atomic type 1
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       constrained_magnetization
   
   Type:           CHARACTER
   See:            lambda, fixed_magnetization
   Default:        'none'
   Description:   
                   Used to perform constrained calculations in magnetic systems.
                   Currently available choices:
    
                   'none' :
                        no constraint
    
                   'total' :
                        total magnetization is constrained by
                        adding a penalty functional to the total energy:
                        
                        LAMBDA * SUM_{i} ( magnetization(i) - fixed_magnetization(i) )**2
                        
                        where the sum over i runs over the three components of
                        the magnetization. Lambda is a real number (see below).
                        Noncolinear case only. Use "tot_magnetization" for LSDA
    
                   'atomic' :
                        atomic magnetization are constrained to the defined
                        starting magnetization adding a penalty:
                        
                        LAMBDA * SUM_{i,itype} ( magnetic_moment(i,itype) - mcons(i,itype) )**2
                        
                        where i runs over the cartesian components (or just z
                        in the collinear case) and itype over the types (1-ntype).
                        mcons(:,:) array is defined from starting_magnetization,
                        (also from angle1, angle2 in the noncollinear case).
                        lambda is a real number
    
                   'total direction' :
                        the angle theta of the total magnetization
                        with the z axis (theta = fixed_magnetization(3))
                        is constrained:
                        
                        LAMBDA * ( arccos(magnetization(3)/mag_tot) - theta )**2
                        
                        where mag_tot is the modulus of the total magnetization.
    
                   'atomic direction' :
                        not all the components of the atomic
                        magnetic moment are constrained but only the cosine
                        of angle1, and the penalty functional is:
                        
                        LAMBDA * SUM_{itype} ( mag_mom(3,itype)/mag_mom_tot - cos(angle1(ityp)) )**2
    
                   N.B.: symmetrization may prevent to reach the desired orientation
                   of the magnetization. Try not to start with very highly symmetric
                   configurations or use the nosym flag (only as a last remedy)
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       fixed_magnetization(i), i=1,3
   
   Type:           REAL
   See:            constrained_magnetization
   Default:        0.d0
   Description:    total magnetization vector (x,y,z components) to be kept
                   fixed when "constrained_magnetization"=='total'
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       lambda
   
   Type:           REAL
   See:            constrained_magnetization
   Default:        1.d0
   Description:    parameter used for constrained_magnetization calculations
                   N.B.: if the scf calculation does not converge, try to reduce lambda
                         to obtain convergence, then restart the run with a larger lambda
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       report
   
   Type:           INTEGER
   Default:        -1
   Description:    determines when atomic magnetic moments are printed on output:
                   report = 0  never
                   report =-1  at the beginning of the scf and at convergence
                   report = N  as -1, plus every N scf iterations
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       lspinorb
   
   Type:           LOGICAL
   Description:    if .TRUE. the noncollinear code can use a pseudopotential with
                   spin-orbit.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       assume_isolated
   
   Type:           CHARACTER
   Default:        'none'
   Description:   
                   Used to perform calculation assuming the system to be
                   isolated (a molecule or a cluster in a 3D supercell).
                   
                   Currently available choices:
    
                   'none' :
                        (default): regular periodic calculation w/o any correction.
    
                   'makov-payne', 'm-p', 'mp' :
                        the Makov-Payne correction to the
                        total energy is computed. An estimate of the vacuum
                        level is also calculated so that eigenvalues can be
                        properly aligned. ONLY FOR CUBIC SYSTEMS ("ibrav"=1,2,3).
                        Theory: G.Makov, and M.C.Payne,
                             "Periodic boundary conditions in ab initio
                             calculations" , PRB 51, 4014 (1995).
    
                   'martyna-tuckerman', 'm-t', 'mt' :
                        Martyna-Tuckerman correction
                        to both total energy and scf potential. Adapted from:
                        G.J. Martyna, and M.E. Tuckerman,
                        "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.
    
                   'esm' :
                        Effective Screening Medium Method.
                        For polarized or charged slab calculation, embeds
                        the simulation cell within an effective semi-
                        infinite medium in the perpendicular direction
                        (along z). Embedding regions can be vacuum or
                        semi-infinite metal electrodes (use "esm_bc" to
                        choose boundary conditions). If between two
                        electrodes, an optional electric field
                        ("esm_efield") may be applied. Method described in
                        M. Otani and O. Sugino, "First-principles calculations
                        of charged surfaces and interfaces: A plane-wave
                        nonrepeated slab approach", PRB 73, 115407 (2006).
                        
                        NB:
                           - Two dimensional (xy plane) average charge density
                             and electrostatic potentials are printed out to
                             'prefix.esm1'.
                        
                           - Requires cell with a_3 lattice vector along z,
                             normal to the xy plane, with the slab centered
                             around z=0.
                        
                           - For bc2 with an electric field and bc3 boundary
                             conditions, the inversion symmetry along z-direction
                             is automatically eliminated.
                        
                           - In case of calculation='vc-relax', use
                             "cell_dofree"='2Dxy' or other parameters so that
                             c-vector along z-axis should not be moved.
                        
                        See "esm_bc", "esm_efield", "esm_w", "esm_nfit".
    
                   '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",
                        PRB, 96, 075448 (2017).
                        
                        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).
                        
                           - As for ESM above, only in-plane stresses make sense and one
                             should use "cell_dofree"= '2Dxy' in a vc-relax calculation.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       esm_bc
   
   Type:           CHARACTER
   See:            assume_isolated
   Default:        'pbc'
   Description:   
                   If "assume_isolated" = 'esm', determines the boundary
                   conditions used for either side of the slab.
                   
                   Currently available choices:
    
                   'pbc' :
                        (default): regular periodic calculation (no ESM).
    
                   'bc1' :
                        Vacuum-slab-vacuum (open boundary conditions).
    
                   'bc2' :
                        Metal-slab-metal (dual electrode configuration).
                        See also "esm_efield".
    
                   'bc3' :
                        Vacuum-slab-metal
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       esm_w
   
   Type:           REAL
   See:            assume_isolated
   Default:        0.d0
   Description:    If "assume_isolated" = 'esm', determines the position offset
                   [in a.u.] of the start of the effective screening region,
                   measured relative to the cell edge. (ESM region begins at
                   z = +/- [L_z/2 + esm_w] ).
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       esm_efield
   
   Type:           REAL
   See:            assume_isolated
   Default:        0.d0
   Description:    If "assume_isolated" = 'esm' and "esm_bc" = 'bc2', gives the
                   magnitude of the electric field [Ry/a.u.] to be applied
                   between semi-infinite ESM electrodes.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       esm_nfit
   
   Type:           INTEGER
   See:            assume_isolated
   Default:        4
   Description:    If "assume_isolated" = 'esm', gives the number of z-grid points
                   for the polynomial fit along the cell edge.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       lgcscf
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    If .TRUE. perform a constant bias potential (constant-mu) calculation
                   with Grand-Canonical SCF. (JCP 146, 114104 (2017), R.Sundararaman, et al.)
                   
                   NB:
                   - The total energy displayed in output includes the potentiostat
                     contribution (-mu*N).
                   - "assume_isolated" = 'esm' and "esm_bc" = 'bc2' or 'bc3' must be set
                     in "SYSTEM" namelist.
                   - ESM-RISM is also supported ("assume_isolated" = 'esm' and "esm_bc" = 'bc1'
                     and "trism" = .TRUE.).
                   - "mixing_mode" has to be 'TF' or 'local-TF', also its default is 'TF.'
                   - The default of "mixing_beta" is 0.1 with ESM-RISM, 0.2 without ESM-RISM.
                   - The default of "diago_thr_init" is 1.D-5.
                   - "diago_full_acc" is always .TRUE. .
                   - "diago_rmm_conv" is always .TRUE. .
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       gcscf_mu
   
   Type:           REAL
   Status:         REQUIRED
   Description:    The target Fermi energy (eV) of GC-SCF. One can start
                   with appropriate total charge of the system by giving "tot_charge" .
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       gcscf_conv_thr
   
   Type:           REAL
   Default:        1.D-2
   Description:    Convergence threshold of Fermi energy (eV) for GC-SCF.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       gcscf_beta
   
   Type:           REAL
   Default:        0.05D0
   Description:    Mixing factor for GC-SCF.
                   Larger values are recommended,
                   if systems with small DOS on Fermi surface as graphite.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       vdw_corr
   
   Type:           CHARACTER
   Default:        'none'
   See:            london_s6, london_rcut, london_c6, london_rvdw,
                   dftd3_version, dftd3_threebody, ts_vdw_econv_thr, ts_vdw_isolated, xdm_a1, xdm_a2
   Description:   
                   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"
                        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.1063/1.3382344
    
                   'TS', 'ts', 'ts-vdw', 'ts-vdW', 'tkatchenko-scheffler' :
                        Tkatchenko-Scheffler dispersion corrections with first-principle derived
                        C6 coefficients.
                        Optional variables: "ts_vdw_econv_thr", "ts_vdw_isolated"
                        See A. Tkatchenko and M. Scheffler, PRL 102, 073005 (2009).
    
                   'MBD', 'mbd', 'many-body-dispersion', 'mbd_vdw' :
                        Many-body dipersion (MBD) correction to long-range interactions.
                        Optional variables: "ts_vdw_isolated"
                        A. Ambrosetti, A. M. Reilly, R. A. DiStasio, A. Tkatchenko, J. Chem. Phys. 140
                        18A508 (2014).
    
                   'XDM', 'xdm' :
                        Exchange-hole dipole-moment model. Optional variables: "xdm_a1", "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
    
                   Note that non-local functionals (eg vdw-DF) are NOT specified here but in "input_dft"
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       london
   
   Type:           LOGICAL
   Default:        .FALSE.
   Status:         OBSOLESCENT, same as "vdw_corr"='DFT-D'
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       london_s6
   
   Type:           REAL
   Default:        0.75
   Description:    global scaling parameter for DFT-D. Default is good for PBE.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       london_c6(i), i=1,ntyp
   
   Type:           REAL
   Default:        standard Grimme-D2 values
   Description:    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 )
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       london_rvdw(i), i=1,ntyp
   
   Type:           REAL
   Default:        standard Grimme-D2 values
   Description:    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 )
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       london_rcut
   
   Type:           REAL
   Default:        200
   Description:    cutoff radius (a.u.) for dispersion interactions
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       dftd3_version
   
   Type:           integer
   Default:        3
   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.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       dftd3_threebody
   
   Type:           LOGICAL
   Default:        TRUE
   Description:    Turn three-body terms in Grimme-D3 on. If .false. two-body contributions
                   only are computed, using two-body parameters of Grimme-D3.
                   If dftd3_version=2, three-body contribution is always disabled.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       ts_vdw_econv_thr
   
   Type:           REAL
   Default:        1.D-6
   Description:    Optional: controls the convergence of the vdW energy (and forces). The default value
                   is a safe choice, likely too safe, but you do not gain much in increasing it
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       ts_vdw_isolated
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    Optional: set it to .TRUE. when computing the Tkatchenko-Scheffler vdW energy or the
                   Many-Body dispersion (MBD) energy for an isolated (non-periodic) system.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       xdm
   
   Type:           LOGICAL
   Default:        .FALSE.
   Status:         OBSOLESCENT, same as "vdw_corr"='xdm'
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       xdm_a1
   
   Type:           REAL
   Default:        0.6836
   Description:    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
                   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
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       xdm_a2
   
   Type:           REAL
   Default:        1.5045
   Description:    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
                   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
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       space_group
   
   Type:           INTEGER
   Default:        0
   Description:    The number of the space group of the crystal, as given
                   in the International Tables of Crystallography A (ITA).
                   This allows to give in input only the inequivalent atomic
                   positions. The positions of all the symmetry equivalent atoms
                   are calculated by the code. Used only when the atomic positions
                   are of type crystal_sg. See also "uniqueb",
                   "origin_choice", "rhombohedral"
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       uniqueb
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    Used only for monoclinic lattices. If .TRUE. the b
                   unique "ibrav" (-12 or -13) are used, and symmetry
                   equivalent positions are chosen assuming that the
                   twofold axis or the mirror normal is parallel to the
                   b axis. If .FALSE. it is parallel to the c axis.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       origin_choice
   
   Type:           INTEGER
   Default:        1
   Description:    Used only for space groups that in the ITA allow
                   the use of two different origins. "origin_choice"=1,
                   means the first origin, while "origin_choice"=2 is the
                   second origin.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       rhombohedral
   
   Type:           LOGICAL
   Default:        .TRUE.
   Description:    Used only for rhombohedral space groups.
                   When .TRUE. the coordinates of the inequivalent atoms are
                   given with respect to the rhombohedral axes, when .FALSE.
                   the coordinates of the inequivalent atoms are given with
                   respect to the hexagonal axes. They are converted internally
                   to the rhombohedral axes and "ibrav"=5 is used in both cases.
   +--------------------------------------------------------------------
   
   ///---
      VARIABLES USED ONLY IF "GATE" = .TRUE.
      
      +--------------------------------------------------------------------
      Variable:       zgate
      
      Type:           REAL
      Default:        0.5
      Description:    used only if "gate" = .TRUE.
                      Specifies the position of the charged plate which represents
                      the counter charge in doped systems ("tot_charge" .ne. 0).
                      In units of the unit cell length in z direction, "zgate" in ]0,1[
                      Details of the gate potential can be found in
                      T. Brumme, M. Calandra, F. Mauri; PRB 89, 245406 (2014).
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       relaxz
      
      Type:           LOGICAL
      Default:        .FALSE.
      Description:    used only if "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 ("block"=.TRUE.) to avoid the atoms moving to
                      the position of the plate or the dipole of the dipole
                      correction ("dipfield"=.TRUE.).
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       block
      
      Type:           LOGICAL
      Default:        .FALSE.
      Description:    used only if "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 "block_1" to "block_2" and
                      has a height of block_height.
                      If "dipfield" = .TRUE. then "eopreg" is used for a smooth increase and
                      decrease of the potential barrier.
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       block_1
      
      Type:           REAL
      Default:        0.45
      Description:    used only if "gate" = .TRUE. and "block" = .TRUE.
                      lower beginning of the potential barrier, in units of the
                      unit cell size along z, "block_1" in ]0,1[
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       block_2
      
      Type:           REAL
      Default:        0.55
      Description:    used only if "gate" = .TRUE. and "block" = .TRUE.
                      upper beginning of the potential barrier, in units of the
                      unit cell size along z, "block_2" in ]0,1[
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       block_height
      
      Type:           REAL
      Default:        0.1
      Description:    used only if "gate" = .TRUE. and "block" = .TRUE.
                      Height of the potential barrier in Rydberg.
      +--------------------------------------------------------------------
      
   \\\---
   
   +--------------------------------------------------------------------
   Variable:       nextffield
   
   Type:           INTEGER
   Default:        0
   Description:    Number of activated external ionic force fields.
                   See Doc/ExternalForceFields.tex for further explanation and parameterizations
   +--------------------------------------------------------------------
   
===END OF NAMELIST======================================================


========================================================================
NAMELIST: &ELECTRONS

   +--------------------------------------------------------------------
   Variable:       electron_maxstep
   
   Type:           INTEGER
   Default:        100
   Description:    maximum number of iterations in a scf step. If exact exchange is active,
                   this will affect the inner loops.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       exx_maxstep
   
   Type:           INTEGER
   Default:        100
   Description:    maximum number of outer iterations in a scf calculation with exact exchange.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       scf_must_converge
   
   Type:           LOGICAL
   Default:        .TRUE.
   Description:    If .false. do not stop molecular dynamics or ionic relaxation
                   when electron_maxstep is reached. Use with care.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       conv_thr
   
   Type:           REAL
   Default:        1.D-6
   Description:    Convergence threshold for selfconsistency:
                      estimated energy error < conv_thr
                   (note that conv_thr is extensive, like the total energy).
                   
                   For non-self-consistent calculations, conv_thr is used
                   to set the default value of the threshold (ethr) for
                   iterative diagonalization: see "diago_thr_init"
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       adaptive_thr
   
   Type:           LOGICAL
   Default:        .FALSE
   Description:    If .TRUE. this turns on the use of an adaptive "conv_thr" for
                   the inner scf loops when using EXX.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       conv_thr_init
   
   Type:           REAL
   Default:        1.D-3
   Description:    When "adaptive_thr" = .TRUE. this is the convergence threshold
                   used for the first scf cycle.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       conv_thr_multi
   
   Type:           REAL
   Default:        1.D-1
   Description:    When "adaptive_thr" = .TRUE. the convergence threshold for
                   each scf cycle is given by:
                   max( "conv_thr", "conv_thr_multi" * dexx )
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       mixing_mode
   
   Type:           CHARACTER
   Default:        'plain'
   Description:   
                   Available options are:
    
                   'plain' :
                        charge density Broyden mixing
    
                   'TF' :
                        as above, with simple Thomas-Fermi screening
                        (for highly homogeneous systems)
    
                   'local-TF' :
                        as above, with local-density-dependent TF screening
                        (for highly inhomogeneous systems)
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       mixing_beta
   
   Type:           REAL
   Default:        0.7D0
   Description:    mixing factor for self-consistency
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       mixing_ndim
   
   Type:           INTEGER
   Default:        8
   Description:    number of iterations used in mixing scheme.
                   If you are tight with memory, you may reduce it to 4 or so.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       mixing_fixed_ns
   
   Type:           INTEGER
   Default:        0
   Description:    For DFT+U : number of iterations with fixed ns ( ns is the
                   atomic density appearing in the Hubbard term ).
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       diagonalization
   
   Type:           CHARACTER
   Default:        'david'
   Description:   
                   Available options are:
    
                   'david' :
                        Davidson iterative diagonalization with overlap matrix
                        (default). Fast, may in some rare cases fail.
    
                   'cg' :
                        Conjugate-gradient-like band-by-band diagonalization.
                        MUCH slower than 'david' but uses less memory and is
                        (a little bit) more robust.
    
                   'ppcg' :
                        PPCG iterative diagonalization
    
                   'paro', 'ParO' :
                        ParO iterative diagonalization
    
                   'rmm-davidson', 'rmm-paro' :
                        RMM-DIIS iterative diagonalization.
                        To stabilize the SCF loop
                        RMM-DIIS is alternated with calls to Davidson or
                        ParO  solvers depending on the string used.
                        Other variables that can be used to tune the behavior of
                        RMM-DIIS are:  "diago_rmm_ndim" and "diago_rmm_conv"
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       diago_thr_init
   
   Type:           REAL
   Description:    Convergence threshold (ethr) for iterative diagonalization
                   (the check is on eigenvalue convergence).
                   
                   For scf calculations: default is 1.D-2 if starting from a
                   superposition of atomic orbitals; 1.D-5 if starting from a
                   charge density. During self consistency the threshold
                   is automatically reduced (but never below 1.D-13) when
                   approaching convergence.
                   
                   For non-scf calculations: default is ("conv_thr"/N elec)/10.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       diago_cg_maxiter
   
   Type:           INTEGER
   Description:    For conjugate gradient diagonalization:  max number of iterations
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       diago_ppcg_maxiter
   
   Type:           INTEGER
   Description:    For ppcg diagonalization:  max number of iterations
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       diago_david_ndim
   
   Type:           INTEGER
   Default:        2
   Description:    For Davidson diagonalization: dimension of workspace
                   (number of wavefunction packets, at least 2 needed).
                   A larger value may yield a smaller number of iterations in
                   the algorithm but uses more memory and more CPU time in
                   subspace diagonalization (cdiaghg/rdiaghg). You may try
                   "diago_david_ndim"=4 if you are not tight on memory
                   and if the time spent in subspace diagonalization is small
                   compared to the time spent in h_psi
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       diago_rmm_ndim
   
   Type:           INTEGER
   Default:        4
   Description:    For RMM-DIIS diagonalization: dimension of workspace
                   (number of wavefunction packets, at least 2 needed).
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       diago_rmm_conv
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    If .TRUE., RMM-DIIS is performed up to converge.
                   If .FALSE., RMM-DIIS is performed only once.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       diago_gs_nblock
   
   Type:           INTEGER
   Default:        16
   Description:    For RMM-DIIS diagonalization:
                   blocking size of Gram-Schmidt orthogonalization
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       diago_full_acc
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    If .TRUE. all the empty states are diagonalized at the same level
                   of accuracy of the occupied ones. Otherwise the empty states are
                   diagonalized using a larger threshold (this should not affect
                   total energy, forces, and other ground-state properties).
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       efield
   
   Type:           REAL
   Default:        0.D0
   Description:    Amplitude of the finite electric field (in Ry a.u.;
                   1 a.u. = 36.3609*10^10 V/m). Used only if "lelfield"==.TRUE.
                   and if k-points ("K_POINTS" card) are not automatic.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       efield_cart(i), i=1,3
   
   Type:           REAL
   Default:        (0.D0, 0.D0, 0.D0)
   Description:    Finite electric field (in Ry a.u.=36.3609*10^10 V/m) in
                   cartesian axis. Used only if "lelfield"==.TRUE. and if
                   k-points ("K_POINTS" card) are automatic.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       efield_phase
   
   Type:           CHARACTER
   Default:        'none'
   Description:   
                   Available options are:
    
                   'read' :
                        set the zero of the electronic polarization (with "lelfield"==.true..)
                        to the result of a previous calculation
    
                   'write' :
                        write on disk data on electronic polarization to be read in another
                        calculation
    
                   'none' :
                        none of the above points
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       startingpot
   
   Type:           CHARACTER
   Description:   
                   Available options are:
    
                   'atomic' :
                        starting potential from atomic charge superposition
                        (default for scf, *relax, *md)
    
                   'file' :
                        start from existing "charge-density.xml" file in the
                        directory specified by variables "prefix" and "outdir"
                        For nscf and bands calculation this is the default
                        and the only sensible possibility.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       startingwfc
   
   Type:           CHARACTER
   Default:        'atomic+random'
   Description:   
                   Available options are:
    
                   'atomic' :
                        Start from superposition of atomic orbitals.
                        If not enough atomic orbitals are available,
                        fill with random numbers the remaining wfcs
                        The scf typically starts better with this option,
                        but in some high-symmetry cases one can "loose"
                        valence states, ending up in the wrong ground state.
    
                   'atomic+random' :
                        As above, plus a superimposed "randomization"
                        of atomic orbitals. Prevents the "loss" of states
                        mentioned above.
    
                   'random' :
                        Start from random wfcs. Slower start of scf but safe.
                        It may also reduce memory usage in conjunction with
                        "diagonalization"='cg'.
    
                   'file' :
                        Start from an existing wavefunction file in the
                        directory specified by variables "prefix" and "outdir".
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       tqr
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    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!
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       real_space
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    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,
                   but numerically less accurate, may lead to some loss of
                   translational invariance. Use with care and after testing!
   +--------------------------------------------------------------------
   
===END OF NAMELIST======================================================


========================================================================
NAMELIST: &IONS

   REQUIRED IF "CALCULATION" == 'RELAX', 'MD', 'VC-RELAX', OR 'VC-MD'
   OPTIONAL FOR "CALCULATION" == 'SCF' (ONLY "ION_POSITIONS" IS USED)
   
   +--------------------------------------------------------------------
   Variable:       ion_positions
   
   Type:           CHARACTER
   Default:        'default'
   Description:   
                   Available options are:
    
                   'default' :
                        if restarting, use atomic positions read from the
                        restart file; in all other cases, use atomic
                        positions from standard input.
    
                   'from_input' :
                        read atomic positions from standard input, even if restarting.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       ion_velocities
   
   Type:           CHARACTER
   Default:        'default'
   Description:   
                   Initial ionic velocities. Available options are:
    
                   'default' :
                        start a new simulation from random thermalized
                        distribution of velocities if "tempw" is set,
                        with zero velocities otherwise; restart from
                        atomic velocities read from the restart file
    
                   'from_input' :
                        start or continue the simulation with atomic
                        velocities read from standard input - see card
                        "ATOMIC_VELOCITIES"
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       ion_dynamics
   
   Type:           CHARACTER
   Description:   
                   Specify the type of ionic dynamics.
                   
                   For different type of calculation different possibilities are
                   allowed and different default values apply:
                   
                   CASE ( "calculation" == 'relax' )
    
                   'bfgs' :
                        (default)  use BFGS quasi-newton algorithm,
                        based on the trust radius procedure,
                        for structural relaxation
    
                   'damp' :
                        use damped (quick-min Verlet)
                        dynamics for structural relaxation
                        Can be used for constrained
                        optimisation: see "CONSTRAINTS" card
    
                   'fire' :
                        use the FIRE minimization algorithm employing the
                        semi-implicit Euler integration scheme
                        see:
                           Bitzek et al.,PRL, 97, 170201, (2006), doi: 10.1103/PhysRevLett.97.170201
                           Guenole et al.,CMS, 175, 109584, (2020), doi: 10.1016/j.commatsci.2020.109584
                        
                        Can be used for constrained
                        optimisation: see "CONSTRAINTS" card
    
                   CASE ( "calculation" == 'md' )
    
                   'verlet' :
                        (default)  use Verlet algorithm to integrate
                        Newton's equation. For constrained
                        dynamics, see "CONSTRAINTS" card
    
                   'langevin' :
                        ion dynamics is over-damped Langevin
    
                   'langevin-smc' :
                        over-damped Langevin with Smart Monte Carlo:
                        see R.J. Rossky, JCP, 69, 4628 (1978), doi:10.1063/1.436415
    
                   CASE ( "calculation" == 'vc-relax' )
    
                   'bfgs' :
                        (default)  use BFGS quasi-newton algorithm;
                        "cell_dynamics" must be 'bfgs' too
    
                   'damp' :
                        use damped (Beeman) dynamics for
                        structural relaxation
    
                   CASE ( "calculation" == 'vc-md' )
    
                   'beeman' :
                        (default)  use Beeman algorithm to integrate
                        Newton's equation
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       pot_extrapolation
   
   Type:           CHARACTER
   Default:        'atomic'
   Description:   
                   Used to extrapolate the potential from preceding ionic steps.
    
                   'none' :
                        no extrapolation
    
                   'atomic' :
                        extrapolate the potential as if it was a sum of
                        atomic-like orbitals
    
                   'first_order' :
                        extrapolate the potential with first-order
                        formula
    
                   'second_order' :
                        as above, with second order formula
    
                   Note: 'first_order' and 'second-order' extrapolation make sense
                   only for molecular dynamics calculations
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       wfc_extrapolation
   
   Type:           CHARACTER
   Default:        'none'
   Description:   
                   Used to extrapolate the wavefunctions from preceding ionic steps.
    
                   'none' :
                        no extrapolation
    
                   'first_order' :
                        extrapolate the wave-functions with first-order formula.
    
                   'second_order' :
                        as above, with second order formula.
    
                   Note: 'first_order' and 'second-order' extrapolation make sense
                   only for molecular dynamics calculations
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       remove_rigid_rot
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    This keyword is useful when simulating the dynamics and/or the
                   thermodynamics of an isolated system. If set to true the total
                   torque of the internal forces is set to zero by adding new forces
                   that compensate the spurious interaction with the periodic
                   images. This allows for the use of smaller supercells.
                   
                   BEWARE: since the potential energy is no longer consistent with
                   the forces (it still contains the spurious interaction with the
                   repeated images), the total energy is not conserved anymore.
                   However the dynamical and thermodynamical properties should be
                   in closer agreement with those of an isolated system.
                   Also the final energy of a structural relaxation will be higher,
                   but the relaxation itself should be faster.
   +--------------------------------------------------------------------
   
   ///---
      VARIABLES USED FOR MOLECULAR DYNAMICS
      
      +--------------------------------------------------------------------
      Variable:       ion_temperature
      
      Type:           CHARACTER
      Default:        'not_controlled'
      Description:   
                      Available options are:
       
                      'rescaling' :
                           control ionic temperature via velocity rescaling
                           (first method) see parameters "tempw", "tolp", and
                           "nraise" (for VC-MD only). This rescaling method
                           is the only one currently implemented in VC-MD
       
                      'rescale-v' :
                           control ionic temperature via velocity rescaling
                           (second method) see parameters "tempw" and "nraise"
       
                      'rescale-T' :
                           scale temperature of the thermostat every "nraise" steps
                           by "delta_t", starting from "tempw".
                           The temperature is controlled via velocitiy rescaling.
       
                      'reduce-T' :
                           reduce temperature of the thermostat every "nraise" steps
                           by the (negative) value "delta_t", starting from "tempw".
                           If  "delta_t" is positive, the target temperature is augmented.
                           The temperature is controlled via velocitiy rescaling.
       
                      'berendsen' :
                           control ionic temperature using "soft" velocity
                           rescaling - see parameters "tempw" and "nraise"
       
                      'andersen' :
                           control ionic temperature using Andersen thermostat
                           see parameters "tempw" and "nraise"
       
                      'svr' :
                           control ionic temperature using stochastic-velocity rescaling
                           (Donadio, Bussi, Parrinello, J. Chem. Phys. 126, 014101, 2007),
                           with parameters "tempw" and "nraise".
       
                      'initial' :
                           initialize ion velocities to temperature "tempw"
                           and leave uncontrolled further on
       
                      'not_controlled' :
                           (default) ionic temperature is not controlled
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       tempw
      
      Type:           REAL
      Default:        300.D0
      Description:    Starting temperature (Kelvin) in MD runs
                      target temperature for most thermostats.
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       tolp
      
      Type:           REAL
      Default:        100.D0
      Description:    Tolerance for velocity rescaling. Velocities are rescaled if
                      the run-averaged and target temperature differ more than tolp.
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       delta_t
      
      Type:           REAL
      Default:        1.D0
      Description:    if "ion_temperature" == 'rescale-T' :
                             at each step the instantaneous temperature is multiplied
                             by delta_t; this is done rescaling all the velocities.
                      
                      if "ion_temperature" == 'reduce-T' :
                             every 'nraise' steps the instantaneous temperature is
                             reduced by -"delta_t" (i.e. "delta_t" < 0 is added to T)
                      
                      The instantaneous temperature is calculated at the end of
                      every ionic move and BEFORE rescaling. This is the temperature
                      reported in the main output.
                      
                      For "delta_t" < 0, the actual average rate of heating or cooling
                      should be roughly C*delta_t/(nraise*dt) (C=1 for an
                      ideal gas, C=0.5 for a harmonic solid, theorem of energy
                      equipartition between all quadratic degrees of freedom).
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       nraise
      
      Type:           INTEGER
      Default:        1
      Description:    if "ion_temperature" == 'reduce-T' :
                             every "nraise" steps the instantaneous temperature is
                             reduced by -"delta_t" (i.e. "delta_t" is added to the temperature)
                      
                      if "ion_temperature" == 'rescale-v' :
                             every "nraise" steps the average temperature, computed from
                             the last "nraise" steps, is rescaled to "tempw"
                      
                      if "ion_temperature" == 'rescaling' and "calculation" == 'vc-md' :
                             every "nraise" steps the instantaneous temperature
                             is rescaled to "tempw"
                      
                      if "ion_temperature" == 'berendsen' :
                             the "rise time" parameter is given in units of the time step:
                             tau = nraise*dt, so dt/tau = 1/nraise
                      
                      if "ion_temperature" == 'andersen' :
                             the "collision frequency" parameter is given as nu=1/tau
                             defined above, so nu*dt = 1/nraise
                      
                      if "ion_temperature" == 'svr' :
                             the "characteristic time" of the thermostat is set to
                             tau = nraise*dt
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       refold_pos
      
      Type:           LOGICAL
      Default:        .FALSE.
      Description:    This keyword applies only in the case of molecular dynamics or
                      damped dynamics. If true the ions are refolded at each step into
                      the supercell.
      +--------------------------------------------------------------------
      
   \\\---
   
   ///---
      KEYWORDS USED ONLY IN BFGS CALCULATIONS
      
      +--------------------------------------------------------------------
      Variable:       upscale
      
      Type:           REAL
      Default:        100.D0
      Description:    Max reduction factor for "conv_thr" during structural optimization
                      "conv_thr" is automatically reduced when the relaxation
                      approaches convergence so that forces are still accurate,
                      but "conv_thr" will not be reduced to less that "conv_thr" / "upscale".
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       bfgs_ndim
      
      Type:           INTEGER
      Default:        1
      Description:    Number of old forces and displacements vectors used in the
                      PULAY mixing of the residual vectors obtained on the basis
                      of the inverse hessian matrix given by the BFGS algorithm.
                      When "bfgs_ndim" = 1, the standard quasi-Newton BFGS method is
                      used.
                      (bfgs only)
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       trust_radius_max
      
      Type:           REAL
      Default:        0.8D0
      Description:    Maximum ionic displacement in the structural relaxation.
                      (bfgs only)
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       trust_radius_min
      
      Type:           REAL
      Default:        1.D-3
      Description:    Minimum ionic displacement in the structural relaxation
                      BFGS is reset when "trust_radius" < "trust_radius_min".
                      (bfgs only)
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       trust_radius_ini
      
      Type:           REAL
      Default:        0.5D0
      Description:    Initial ionic displacement in the structural relaxation.
                      (bfgs only)
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       w_1
      
      Type:           REAL
      Default:        0.01D0
      See:            w_2
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       w_2
      
      Type:           REAL
      Default:        0.5D0
      Description:    Parameters used in line search based on the Wolfe conditions.
                      (bfgs only)
      +--------------------------------------------------------------------
      
   \\\---
   
   ///---
      KEYWORDS USED ONLY IN THE FIRE MINIMIZATION ALGORITHM
      
      +--------------------------------------------------------------------
      Variable:       fire_alpha_init
      
      Type:           REAL
      Default:        0.2D0
      Description:    Initial value of the alpha mixing factor in the FIRE minimization scheme;
                      recommended values are between 0.1 and 0.3
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       fire_falpha
      
      Type:           REAL
      Default:        0.99D0
      Description:    Scaling of the alpha mixing parameter for steps with P > 0;
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       fire_nmin
      
      Type:           INTEGER
      Default:        5
      Description:    Minimum number of steps with P > 0 before increase of "dt"
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       fire_f_inc
      
      Type:           REAL
      Default:        1.1D0
      Description:    Factor for increasing "dt"
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       fire_f_dec
      
      Type:           REAL
      Default:        0.5D0
      Description:    Factor for decreasing "dt"
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       fire_dtmax
      
      Type:           REAL
      Default:        10.D0
      Description:    Determines the maximum value of "dt" in the FIRE minimization;
                      dtmax = fire_dtmax*"dt"
      +--------------------------------------------------------------------
      
   \\\---
   
===END OF NAMELIST======================================================


========================================================================
NAMELIST: &CELL

   INPUT THIS NAMELIST ONLY IF "CALCULATION" == 'VC-RELAX' OR 'VC-MD'
   
   +--------------------------------------------------------------------
   Variable:       cell_dynamics
   
   Type:           CHARACTER
   Description:   
                   Specify the type of dynamics for the cell.
                   For different type of calculation different possibilities
                   are allowed and different default values apply:
                   
                   CASE ( "calculation" == 'vc-relax' )
    
                   'none' :
                        no dynamics
    
                   'sd' :
                        steepest descent ( not implemented )
    
                   'damp-pr' :
                        damped (Beeman) dynamics of the Parrinello-Rahman extended lagrangian
    
                   'damp-w' :
                        damped (Beeman) dynamics of the new Wentzcovitch extended lagrangian
    
                   'bfgs' :
                        BFGS quasi-newton algorithm (default)
                        "ion_dynamics" must be 'bfgs' too
    
                   CASE ( "calculation" == 'vc-md' )
    
                   'none' :
                        no dynamics
    
                   'pr' :
                        (Beeman) molecular dynamics of the Parrinello-Rahman extended lagrangian
    
                   'w' :
                        (Beeman) molecular dynamics of the new Wentzcovitch extended lagrangian
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       press
   
   Type:           REAL
   Default:        0.D0
   Description:    Target pressure [KBar] in a variable-cell md or relaxation run.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       wmass
   
   Type:           REAL
   Default:        0.75*Tot_Mass/pi**2 for Parrinello-Rahman MD;
                   0.75*Tot_Mass/pi**2/Omega**(2/3) for Wentzcovitch MD
   Description:    Fictitious cell mass [amu] for variable-cell simulations
                   (both 'vc-md' and 'vc-relax')
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       cell_factor
   
   Type:           REAL
   Default:        2.0 for variable-cell calculations, 1.0 otherwise
   Description:    Used in the construction of the pseudopotential tables.
                   It should exceed the maximum linear contraction of the
                   cell during a simulation.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       press_conv_thr
   
   Type:           REAL
   Default:        0.5D0 Kbar
   Description:    Convergence threshold on the pressure for variable cell
                   relaxation ('vc-relax' : note that the other convergence
                               thresholds for ionic relaxation apply as well).
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       cell_dofree
   
   Type:           CHARACTER
   Default:        'all'
   Description:   
                   Select which of the cell parameters should be moved:
    
                   'all' :
                        all axis and angles are moved
    
                   'ibrav' :
                        all axis and angles are moved,
                                       but the lattice remains consistent
                                       with the initial ibrav choice. You can use this option in combination
                                       with any other one by specifying "ibrav+option". Please note that some
                                       combinations do not make sense for some crystals and will guarantee that
                                       the relax will never converge. E.g. 'ibrav+2Dxy' is not a problem for
                                       hexagonal cells, but will never converge for cubic ones.
    
                   'a' :
                        the x component of axis 1 (v1_x) is fixed
    
                   'b' :
                        the y component of axis 2 (v2_y) is fixed
    
                   'c' :
                        the z component of axis 3 (v3_z) is fixed
    
                   'fixa' :
                        axis 1 (v1_x,v1_y,v1_z) is fixed
    
                   'fixb' :
                        axis 2 (v2_x,v2_y,v2_z) is fixed
    
                   'fixc' :
                        axis 3 (v3_x,v3_y,v3_z) is fixed
    
                   'x' :
                        only the x component of axis 1 (v1_x) is moved
    
                   'y' :
                        only the y component of axis 2 (v2_y) is moved
    
                   'z' :
                        only the z component of axis 3 (v3_z) is moved
    
                   'xy' :
                        only v1_x and v2_y are moved
    
                   'xz' :
                        only v1_x and v3_z are moved
    
                   'yz' :
                        only v2_y and v3_z are moved
    
                   'xyz' :
                        only v1_x, v2_y, v3_z are moved
    
                   'shape' :
                        all axis and angles, keeping the volume fixed
    
                   'volume' :
                        the volume changes, keeping all angles fixed (i.e. only celldm(1) changes)
    
                   '2Dxy' :
                        only x and y components are allowed to change
    
                   '2Dshape' :
                        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,
                           edit subroutine init_dofree in file Modules/cell_base.f90
   +--------------------------------------------------------------------
   
===END OF NAMELIST======================================================


========================================================================
NAMELIST: &FCP

   INPUT THIS NAMELIST ONLY IF "LFCP" = .TRUE.
   
   +--------------------------------------------------------------------
   Variable:       fcp_mu
   
   Type:           REAL
   Status:         REQUIRED
   Description:    The target Fermi energy (eV). One can start
                   with appropriate total charge of the system by giving "tot_charge" .
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       fcp_dynamics
   
   Type:           CHARACTER
   Description:   
                   Specify the type of dynamics for the Fictitious Charge Particle (FCP).
                   
                   For different type of calculation different possibilities
                   are allowed and different default values apply:
                   
                   CASE ( "calculation" == 'relax' )
    
                   'bfgs' :
                        (default) BFGS quasi-newton algorithm, coupling with ions relaxation
                        "ion_dynamics" must be 'bfgs' too
    
                   'newton' :
                        Newton-Raphson algorithm with DIIS
                        "ion_dynamics" must be 'damp' too
    
                   'damp' :
                        damped (quick-min Verlet) dynamics for FCP relaxation
                        "ion_dynamics" must be 'damp' too
    
                   'lm' :
                        Line-Minimization algorithm for FCP relaxation
                        "ion_dynamics" must be 'damp' too
    
                   CASE ( "calculation" == 'md' )
    
                   'velocity-verlet' :
                        (default) Velocity-Verlet algorithm to integrate Newton's equation.
                        "ion_dynamics" must be 'verlet' too
    
                   'verlet' :
                        Verlet algorithm to integrate Newton's equation.
                        "ion_dynamics" must be 'verlet' too
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       fcp_conv_thr
   
   Type:           REAL
   Default:        1.D-2
   Description:    Convergence threshold on force (eV) for FCP relaxation.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       fcp_ndiis
   
   Type:           INTEGER
   Default:        4
   Description:    Size of DIIS for FCP relaxation,
                   used only if "fcp_dynamics" = 'newton'.
   +--------------------------------------------------------------------
   
   ///---
      VARIABLES USED FOR FCP DYNAMICS.
      
      +--------------------------------------------------------------------
      Variable:       fcp_mass
      
      Type:           REAL
      Default:        5.D+6 / (xy area) for ESM only;
                      5.D+4 / (xy area) for ESM-RISM
      Description:    Mass of the FCP.
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       fcp_velocity
      
      Type:           REAL
      Default:        determined by "fcp_temperature"
      Description:    Initial velocity of the FCP.
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       fcp_temperature
      
      Type:           CHARACTER
      Default:        "ion_temperature"
      Description:   
                      Available options are:
       
                      'rescaling' :
                           control FCP's temperature via velocity rescaling
                           (first method) see parameters "fpc_tempw" and "fcp_tolp".
       
                      'rescale-v' :
                           control FCP's temperature via velocity rescaling
                           (second method) see parameters "fcp_tempw" and "fcp_nraise"
       
                      'rescale-T' :
                           control FCP's temperature via velocity rescaling
                           (third method) see parameter "fcp_delta_t"
       
                      'reduce-T' :
                           reduce FCP's temperature every "fcp_nraise" steps
                           by the (negative) value "fcp_delta_t"
       
                      'berendsen' :
                           control FCP's temperature using "soft" velocity
                           rescaling - see parameters "fcp_tempw" and "fcp_nraise"
       
                      'andersen' :
                           control FCP's temperature using Andersen thermostat
                           see parameters "fcp_tempw" and "fcp_nraise"
       
                      'initial' :
                           initialize FCP's velocities to temperature "fcp_tempw"
                           and leave uncontrolled further on
       
                      'not_controlled' :
                           (default) FCP's temperature is not controlled
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       fcp_tempw
      
      Type:           REAL
      Default:        "tempw"
      Description:    Starting temperature (Kelvin) in FCP dynamics runs
                      target temperature for most thermostats.
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       fcp_tolp
      
      Type:           REAL
      Default:        "tolp"
      Description:    Tolerance for velocity rescaling. Velocities are rescaled if
                      the run-averaged and target temperature differ more than tolp.
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       fcp_delta_t
      
      Type:           REAL
      Default:        "delta_t"
      Description:    if "fcp_temperature" == 'rescale-T' :
                             at each step the instantaneous temperature is multiplied
                             by fcp_delta_t; this is done rescaling all the velocities.
                      
                      if "fcp_temperature" == 'reduce-T' :
                             every "fcp_nraise" steps the instantaneous temperature is
                             reduced by -"fcp_delta_t" (i.e. "fcp_delta_t" < 0 is added to T)
                      
                      The instantaneous temperature is calculated at the end of
                      FCP's move and BEFORE rescaling. This is the temperature
                      reported in the main output.
                      
                      For "fcp_delta_t" < 0, the actual average rate of heating or cooling
                      should be roughly C*fcp_delta_t/(fcp_nraise*dt) (C=1 for an
                      ideal gas, C=0.5 for a harmonic solid, theorem of energy
                      equipartition between all quadratic degrees of freedom).
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       fcp_nraise
      
      Type:           INTEGER
      Default:        "nraise"
      Description:    if "fcp_temperature" == 'reduce-T' :
                             every "fcp_nraise" steps the instantaneous temperature is
                             reduced by -"fcp_delta_t" (i.e. "fcp_delta_t" is added to the temperature)
                      
                      if "fcp_temperature" == 'rescale-v' :
                             every "fcp_nraise" steps the average temperature, computed from
                             the last "fcp_nraise" steps, is rescaled to "fcp_tempw"
                      
                      if "fcp_temperature" == 'berendsen' :
                             the "rise time" parameter is given in units of the time step:
                             tau = fcp_nraise*dt, so dt/tau = 1/fcp_nraise
                      
                      if "fcp_temperature" == 'andersen' :
                             the "collision frequency" parameter is given as nu=1/tau
                             defined above, so nu*dt = 1/fcp_nraise
      +--------------------------------------------------------------------
      
   \\\---
   
   +--------------------------------------------------------------------
   Variable:       freeze_all_atoms
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    If .TRUE., freeze all atoms
                   to perform relaxation or dynamics only with FCP.
   +--------------------------------------------------------------------
   
===END OF NAMELIST======================================================


========================================================================
NAMELIST: &RISM

   INPUT THIS NAMELIST ONLY IF "TRISM" = .TRUE.
   
   +--------------------------------------------------------------------
   Variable:       nsolv
   
   Type:           INTEGER
   Status:         REQUIRED
   Description:    The number of solvents (i.e. molecular species) in the unit cell
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       closure
   
   Type:           CHARACTER
   Default:        'kh'
   Description:   
                   Specify the type of closure equation:
    
                   'kh' :
                        The Kovalenko and Hirata's model.
                        [A.Kovalenko, F.Hirata, JCP 110, 10095 (1999), doi:10.1063/1.478883]
    
                   'hnc' :
                        The HyperNetted-Chain model, which is
                        suitable only for solvents without charge.
                        [J.P.Hansen et al., Theory of simple liquids. Academic Press, London, 1990]
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       tempv
   
   Type:           REAL
   Default:        300.D0
   Description:    Temperature (Kelvin) of solvents.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       ecutsolv
   
   Type:           REAL
   Default:        4 * "ecutwfc"
   Description:    Kinetic energy cutoff (Ry) for solvent's correlation functions.
                   If a solute is an isolated system or slab, you may allowed to
                   use default value. For a frameworked or porous solute (e.g. Zeolite, MOF),
                   it is desirable to apply a larger value. Solvents confined in a framework
                   often have a high frequency.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       solute_lj(i), i=1,ntyp
   
   Type:           CHARACTER
   Default:        'uff'
   Description:   
                   Specify the Lennard-Jones potential of solute on atomic type 'i':
    
                   'none' :
                        The Lennard-Jones potential is not specified here.
                        you must set "solute_epsilon" and "solute_sigma".
    
                   'uff' :
                        Universal Force Field.
                        [A.K.Rappe et al., JACS 144, 10024 (1992), doi:10.1021/ja00051a040]
    
                   'clayff' :
                        Clay's Force Field
                        [R.T.Cygan et al., JPC B 108, 1255 (2004), doi:10.1021/jp0363287]
    
                   'opls-aa' :
                        OPLS-AA (generic parameters for QM/MM)
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       solute_epsilon(i), i=1,ntyp
   
   Type:           REAL
   Description:    The Lennard-Jones potential of solute on atomic type 'i'.
                   Here, you can set the parameter 'epsilon' (kcal/mol).
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       solute_sigma(i), i=1,ntyp
   
   Type:           REAL
   Description:    The Lennard-Jones potential of solute on atomic type 'i'.
                   Here, you can set the parameter 'sigma' (Angstrom).
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       starting1d
   
   Type:           CHARACTER
   Description:   
                   'zero' :
                        Starting correlation functions of 1D-RISM from zero.
                        ( default for scf, *relax, *md )
    
                   'file' :
                        Start from existing "1d-rism_csvv_r.xml" file in the
                        directory specified by variables "prefix" and "outdir".
    
                   'fix' :
                        Read from existing "1d-rism_csvv_r.xml" file in the
                        directory specified by variables "prefix" and "outdir",
                        and never calculate 1D-RISM.
                        For nscf and bands calculation this is the default.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       starting3d
   
   Type:           CHARACTER
   Description:   
                   'zero' :
                        Starting correlation functions of 3D-RISM from zero.
                        ( default for scf, *relax, *md )
    
                   'file' :
                        Start from existing "3d-rism_csuv_r.dat" file in the
                        directory specified by variables "prefix" and "outdir".
                        For nscf and bands calculation this is the default.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       smear1d
   
   Type:           REAL
   Default:        2.D0
   Description:    Coulomb smearing radius (a.u.) for 1D-RISM.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       smear3d
   
   Type:           REAL
   Default:        2.D0
   Description:    Coulomb smearing radius (a.u.) for 3D-RISM.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       rism1d_maxstep
   
   Type:           INTEGER
   Default:        50000
   Description:    Maximum number of iterations in a 1D-RISM step.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       rism3d_maxstep
   
   Type:           INTEGER
   Default:        5000
   Description:    Maximum number of iterations in a 3D-RISM step.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       rism1d_conv_thr
   
   Type:           REAL
   Default:        1.D-8
   Description:    Convergence threshold for 1D-RISM.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       rism3d_conv_thr
   
   Type:           REAL
   Default:        1.D-5 if "lgcscf" == .FALSE.;
                   5.D-6 if "lgcscf" == .TRUE.
   Description:    Convergence threshold for 3D-RISM.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       mdiis1d_size
   
   Type:           INTEGER
   Default:        20
   Description:    Size of Modified DIIS (MDIIS) for 1D-RISM.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       mdiis3d_size
   
   Type:           INTEGER
   Default:        10
   Description:    Size of Modified DIIS (MDIIS) for 3D-RISM.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       mdiis1d_step
   
   Type:           REAL
   Default:        0.5D0
   Description:    Step of Modified DIIS (MDIIS) for 1D-RISM.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       mdiis3d_step
   
   Type:           REAL
   Default:        0.8D0
   Description:    Step of Modified DIIS (MDIIS) for 3D-RISM.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       rism1d_bond_width
   
   Type:           REAL
   Description:    Gaussian width of bonds to smear intra-molecular correlation for 1D-RISM.
                   If 3D-RISM calculation, default is 0.
                   If Laue-RISM calculation, default is 2 / SQRT("ecutwfc").
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       rism1d_dielectric
   
   Type:           REAL
   Default:        -1.0D0
   Description:    Dielectric constant for 1D-RISM.
                   If "rism1d_dielectric" > 0, dielectrically consistent RISM (DRISM) is performed.
                   
                   For details of DRISM, see:
                   J.S.Perkyns and B.M.Pettitt, CPL 1992, 190, 626, doi:10.1016/0009-2614(92)85201-K
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       rism1d_molesize
   
   Type:           REAL
   Default:        2.0D0
   Description:    Size of solvent molecules (a.u.) for 1D-RISM.
                   This is used only if "rism1d_dielectric" > 0.
                   If you have large molecules, you have to set ~ 20 a.u. .
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       rism1d_nproc
   
   Type:           INTEGER
   Default:        128
   Description:    Number of processes to calculate 1D-RISM.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       rism3d_conv_level
   
   Type:           REAL
   Default:        0.1 if "laue_both_hands" == .FALSE. .AND. "lgcscf" == .FALSE.;
                   0.3 if "laue_both_hands" == .FALSE. .AND. "lgcscf" == .TRUE.;
                   0.5 if "laue_both_hands" == .TRUE.
   Description:   
                   Convergence level of 3D-RISM.
    
                   0.0 :
                        Convergence level is 'low'.
                        Convergence threshold of 3D-RISM is greater than
                        "rism3d_conv_thr", when estimated energy error >> "conv_thr" .
                        The threshold becomes "rism3d_conv_thr", when
                        estimated energy error is enough small.
    
                   0.0<x<1.0 :
                        Convergence level is 'medium'.
                        Convergence threshold of 3D-RISM is intermediate value
                        between 'low' and 'high', where "rism3d_conv_level" is mixing rate.
    
                   1.0 :
                        Convergence level is 'high'.
                        Convergence threshold of 3D-RISM is always "rism3d_conv_thr" .
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       rism3d_planar_average
   
   Type:           LOGICAL
   Description:    If .TRUE., planar averages of solvent densities and potentials
                   are calculated and written to 'prefix.rism1'.
                   For 3D-RISM, default is .FALSE.
                   For Laue-RISM, default is .TRUE.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       laue_nfit
   
   Type:           INTEGER
   Default:        4
   Description:    The number of z-grid points for the polynomial fit along the cell edge.
                   This is only for Laue-RISM.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       laue_expand_right
   
   Type:           REAL
   Default:        -1.0
   Description:    If positive value, set the ending position offset [in a.u.]
                   of the solvent region on right-hand side of the unit cell,
                   measured relative to the unit cell edge.
                   (the solvent region ends at z = + [L_z/2 + "laue_expand_right"].)
                   This is only for Laue-RISM.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       laue_expand_left
   
   Type:           REAL
   Default:        -1.0
   Description:    If positive value, set the ending position offset [in a.u.]
                   of the solvent region on left-hand side of the unit cell,
                   measured relative to the unit cell edge.
                   (the solvent region ends at z = - [L_z/2 + "laue_expand_left"].)
                   This is only for Laue-RISM.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       laue_starting_right
   
   Type:           REAL
   Default:        0.0
   Description:    Set the starting position [in a.u.] of the solvent region
                   on right-hand side of the unit cell. Then the solvent region is
                   defined as [ "laue_starting_right" , L_z/2 + "laue_expand_right" ],
                   where distribution functions are finite.
                   This is only for Laue-RISM.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       laue_starting_left
   
   Type:           REAL
   Default:        0.0
   Description:    Set the starting position [in a.u.] of the solvent region
                   on left-hand side of the unit cell. Then the solvent region is
                   defined as [ -L_z/2 - "laue_expand_left" , "laue_starting_left" ],
                   where distribution functions are finite.
                   This is only for Laue-RISM.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       laue_buffer_right
   
   Type:           REAL
   Default:        8.0 if "laue_expand_right" > 0.0;
                   -1.0 if "laue_expand_right" <= 0.0
   Description:    If positive value, set the buffering length [in a.u.]
                   of the solvent region on right-hand side of the unit cell.
                   Then correlation functions are defined inside of
                   [ "laue_starting_right" - "laue_buffer_right" , L_z/2 + "laue_expand_right" ].
                   This is only for Laue-RISM.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       laue_buffer_left
   
   Type:           REAL
   Default:        8.0 if "laue_expand_left" > 0.0;
                   -1.0 if "laue_expand_left" <= 0.0
   Description:    If positive value, set the buffering length [in a.u.]
                   of the solvent region on left-hand side of the unit cell.
                   Then correlation functions are defined inside of
                   [ -L_z/2 - "laue_expand_left" , "laue_starting_left" + "laue_buffer_left" ].
                   This is only for Laue-RISM.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       laue_both_hands
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    If .TRUE., you can set different densities
                   to the solvent regions of right-hand side and left-hand side.
                   See "SOLVENTS" card.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       laue_wall
   
   Type:           CHARACTER
   Default:        'auto'
   Description:   
                   Set the repulsive wall with (1/r)^12 term of Lennard-Jones potential.
                   This is only for Laue-RISM.
    
                   'none' :
                        The repulsive wall is not defined.
    
                   'auto' :
                        The repulsive wall is defined, whose edge position is set automatically.
                        One does not have to set "laue_wall_z" (the edge position).
    
                   'manual' :
                        The repulsive wall is defined, whose edge position is set manually.
                        One have to set "laue_wall_z" (the edge position).
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       laue_wall_z
   
   Type:           REAL
   Default:        0.0
   Description:    Set the edge position [in a.u.] of the repulsive wall.
                   If "laue_expand_right" > 0.0, the repulsive wall is defined on [ -inf , "laue_wall_z" ].
                   If "laue_expand_left" > 0.0, the repulsive wall is defined on [ "laue_wall_z" , inf ].
                   This is only for Laue-RISM and "laue_wall" == 'manual' .
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       laue_wall_rho
   
   Type:           REAL
   Default:        0.01
   Description:    The density (1/bohr^3) of the repulsive wall.
                   This is only for Laue-RISM and "laue_wall" /= 'none' .
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       laue_wall_epsilon
   
   Type:           REAL
   Default:        0.1
   Description:    The Lennard-Jones potential of the repulsive wall.
                   Here, you can set the parameter 'epsilon' (kcal/mol).
                   This is only for Laue-RISM and "laue_wall" /= 'none' .
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       laue_wall_sigma
   
   Type:           REAL
   Default:        4.0
   Description:    The Lennard-Jones potential of the repulsive wall.
                   Here, you can set the parameter 'sigma' (Angstrom).
                   This is only for Laue-RISM and "laue_wall" /= 'none' .
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       laue_wall_lj6
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    If .TRUE., the attractive term -(1/r)^6 of Lennard-Jones potential is added.
                   This is only for Laue-RISM and "laue_wall" /= 'none' .
   +--------------------------------------------------------------------
   
===END OF NAMELIST======================================================


========================================================================
CARD: ATOMIC_SPECIES 

   /////////////////////////////////////////
   // Syntax:                             //
   /////////////////////////////////////////
   
      ATOMIC_SPECIES 
         X(1)     Mass_X(1)     PseudoPot_X(1)     
         X(2)     Mass_X(2)     PseudoPot_X(2)     
         . . . 
         X(ntyp)  Mass_X(ntyp)  PseudoPot_X(ntyp)  
   
   /////////////////////////////////////////
   
   DESCRIPTION OF ITEMS:
   
      +--------------------------------------------------------------------
      Variable:       X
      
      Type:           CHARACTER
      Description:    label of the atom. Acceptable syntax:
                      chemical symbol X (1 or 2 characters, case-insensitive)
                      or chemical symbol plus a number or a letter, as in
                      "Xn" (e.g. Fe1) or "X_*" or "X-*" (e.g. C1, C_h;
                      max total length cannot exceed 3 characters)
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       Mass_X
      
      Type:           REAL
      Description:    mass of the atomic species [amu: mass of C = 12]
                      Used only when performing Molecular Dynamics run
                      or structural optimization runs using Damped MD.
                      Not actually used in all other cases (but stored
                      in data files, so phonon calculations will use
                      these values unless other values are provided)
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       PseudoPot_X
      
      Type:           CHARACTER
      Description:    File containing PP for this species.
                      
                      The pseudopotential file is assumed to be in the new UPF format.
                      If it doesn't work, the pseudopotential format is determined by
                      the file name:
                      
                      *.vdb or *.van     Vanderbilt US pseudopotential code
                      *.RRKJ3            Andrea Dal Corso's code (old format)
                      none of the above  old PWscf norm-conserving format
      +--------------------------------------------------------------------
      
===END OF CARD==========================================================


========================================================================
CARD: ATOMIC_POSITIONS { alat | bohr | angstrom | crystal | crystal_sg }

   ________________________________________________________________________
   * IF calculation == 'bands' OR calculation == 'nscf' : 
   
      Specified atomic positions will be IGNORED and those from the
      previous scf calculation will be used instead !!!
      
       
   * ELSE : 
   
      /////////////////////////////////////////
      // Syntax:                             //
      /////////////////////////////////////////
      
         ATOMIC_POSITIONS { alat | bohr | angstrom | crystal | crystal_sg }
            X(1)    x(1)    y(1)    z(1)    {  if_pos(1)(1)    if_pos(2)(1)    if_pos(3)(1)    }  
            X(2)    x(2)    y(2)    z(2)    {  if_pos(1)(2)    if_pos(2)(2)    if_pos(3)(2)    }  
            . . . 
            X(nat)  x(nat)  y(nat)  z(nat)  {  if_pos(1)(nat)  if_pos(2)(nat)  if_pos(3)(nat)  }  
      
      /////////////////////////////////////////
      
       
   ENDIF
   ________________________________________________________________________
   
   DESCRIPTION OF ITEMS:
   
      +--------------------------------------------------------------------
      Card's flags:   { alat | bohr | angstrom | crystal | crystal_sg }
      
      Default:        (DEPRECATED) alat
      Description:   
                      Units for ATOMIC_POSITIONS:
       
                      alat :
                           atomic positions are in cartesian coordinates, in
                           units of the lattice parameter (either celldm(1)
                           or A). If no option is specified, 'alat' is assumed;
                           not specifying units is DEPRECATED and will no
                           longer be allowed in the future
       
                      bohr :
                           atomic positions are in cartesian coordinate,
                           in atomic units (i.e. Bohr radii)
       
                      angstrom :
                           atomic positions are in cartesian coordinates, in Angstrom
       
                      crystal :
                           atomic positions are in crystal coordinates, i.e.
                           in relative coordinates of the primitive lattice
                           vectors as defined either in card "CELL_PARAMETERS"
                           or via the ibrav + celldm / a,b,c... variables
       
                      crystal_sg :
                           atomic positions are in crystal coordinates, i.e.
                           in relative coordinates of the primitive lattice.
                           This option differs from the previous one because
                           in this case only the symmetry inequivalent atoms
                           are given. The variable "space_group" must indicate
                           the space group number used to find the symmetry
                           equivalent atoms. The other variables that control
                           this option are uniqueb, origin_choice, and
                           rhombohedral.
      +--------------------------------------------------------------------


      +--------------------------------------------------------------------
      Variable:       X
      
      Type:           CHARACTER
      Description:    label of the atom as specified in "ATOMIC_SPECIES"
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variables:      x, y, z
      
      Type:           REAL
      Description:    atomic positions
                      
                      NOTE: each atomic coordinate can also be specified as a simple algebraic expression.
                            To be interpreted correctly expression must NOT contain any blank
                            space and must NOT start with a "+" sign. The available expressions are:
                      
                              + (plus), - (minus), / (division), * (multiplication), ^ (power)
                      
                            All numerical constants included are considered as double-precision numbers;
                            i.e. 1/2 is 0.5, not zero. Other functions, such as sin, sqrt or exp are
                            not available, although sqrt can be replaced with ^(1/2).
                      
                            Example:
                                  C  1/3   1/2*3^(-1/2)   0
                      
                            is equivalent to
                      
                                  C  0.333333  0.288675  0.000000
                      
                            Please note that this feature is NOT supported by XCrysDen (which will
                            display a wrong structure, or nothing at all).
                      
                            When atomic positions are of type crystal_sg coordinates can be given
                            in the following four forms (Wyckoff positions):
                               C  1a
                               C  8g   x
                               C  24m  x y
                               C  48n  x y z
                            The first form must be used when the Wyckoff letter determines uniquely
                            all three coordinates, forms 2,3,4 when the Wyckoff letter and 1,2,3
                            coordinates respectively are needed.
                      
                            The forms:
                               C 8g  x  x  x
                               C 24m x  x  y
                            are not allowed, but
                               C x x x
                               C x x y
                               C x y z
                            are correct.
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variables:      if_pos(1), if_pos(2), if_pos(3)
      
      Type:           INTEGER
      Default:        1
      Description:    component i of the force for this atom is multiplied by if_pos(i),
                      which must be either 0 or 1.  Used to keep selected atoms and/or
                      selected components fixed in MD dynamics or
                      structural optimization run.
                      
                      With crystal_sg atomic coordinates the constraints are copied in all equivalent
                      atoms.
      +--------------------------------------------------------------------
      
===END OF CARD==========================================================


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

   ________________________________________________________________________
   * IF tpiba  OR  crystal  OR  tpiba_b  OR  crystal_b OR tpiba_c OR crystal_c : 
   
      /////////////////////////////////////////
      // Syntax:                             //
      /////////////////////////////////////////
      
         K_POINTS tpiba | crystal | tpiba_b | crystal_b | tpiba_c | crystal_c 
            nks
            xk_x(1)    xk_y(1)    xk_z(1)    wk(1)    
            xk_x(2)    xk_y(2)    xk_z(2)    wk(2)    
            . . . 
            xk_x(nks)  xk_y(nks)  xk_z(nks)  wk(nks)  
      
      /////////////////////////////////////////
      
       
   * ELSE IF automatic : 
   
      /////////////////////////////////////////
      // Syntax:                             //
      /////////////////////////////////////////
      
         K_POINTS automatic
            nk1 nk2 nk3 sk1 sk2 sk3
      
      /////////////////////////////////////////
      
       
   * ELSE IF gamma : 
   
      /////////////////////////////////////////
      // Syntax:                             //
      /////////////////////////////////////////
      
         K_POINTS gamma
      
      /////////////////////////////////////////
      
       
   ENDIF
   ________________________________________________________________________
   
   DESCRIPTION OF ITEMS:
   
      +--------------------------------------------------------------------
      Card's flags:   { tpiba | automatic | crystal | gamma | tpiba_b | crystal_b | tpiba_c | crystal_c }
      
      Default:        tbipa
      Description:   
                      K_POINTS options are:
       
                      tpiba :
                           read k-points in cartesian coordinates,
                           in units of 2 pi/a (default)
       
                      automatic :
                           automatically generated uniform grid of k-points, i.e,
                           generates ( nk1, nk2, nk3 ) grid with ( sk1, sk2, sk3 ) offset.
                           nk1, nk2, nk3 as in Monkhorst-Pack grids
                           k1, k2, k3 must be 0 ( no offset ) or 1 ( grid displaced
                           by half a grid step in the corresponding direction )
                           BEWARE: only grids having the full symmetry of the crystal
                                   work with tetrahedra. Some grids with offset may not work.
       
                      crystal :
                           read k-points in crystal coordinates, i.e. in relative
                           coordinates of the reciprocal lattice vectors
       
                      gamma :
                           use k = 0 (no need to list k-point specifications after card)
                           In this case wavefunctions can be chosen as real,
                           and specialized subroutines optimized for calculations
                           at the gamma point are used (memory and cpu requirements
                           are reduced by approximately one half).
       
                      tpiba_b :
                           Used for band-structure plots.
                           See Doc/brillouin_zones.pdf for usage of BZ labels;
                           otherwise, k-points are in units of  2 pi/a.
                           nks points specify nks-1 lines in reciprocal space.
                           Every couple of points identifies the initial and
                           final point of a line. pw.x generates N intermediate
                           points of the line where N is the weight of the first point.
       
                      crystal_b :
                           As tpiba_b, but k-points are in crystal coordinates.
                           See Doc/brillouin_zones.pdf for usage of BZ labels.
       
                      tpiba_c :
                           Used for band-structure contour plots.
                           k-points are in units of  2 pi/a. nks must be 3.
                           3 k-points k_0, k_1, and k_2 specify a rectangle
                           in reciprocal space of vertices k_0, k_1, k_2,
                           k_1 + k_2 - k_0: k_0 + \alpha (k_1-k_0)+
                           \beta (k_2-k_0) with 0 <\alpha,\beta < 1.
                           The code produces a uniform mesh n1 x n2
                           k points in this rectangle. n1 and n2 are
                           the weights of k_1 and k_2. The weight of k_0
                           is not used.
       
                      crystal_c :
                           As tpiba_c, but k-points are in crystal coordinates.
      +--------------------------------------------------------------------


      +--------------------------------------------------------------------
      Variable:       nks
      
      Type:           INTEGER
      Description:    Number of supplied special k-points.
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variables:      xk_x, xk_y, xk_z, wk
      
      Type:           REAL
      Description:    Special k-points (xk_x/y/z) in the irreducible Brillouin Zone
                      (IBZ) of the lattice (with all symmetries) and weights (wk)
                      See the literature for lists of special points and
                      the corresponding weights.
                      
                      If the symmetry is lower than the full symmetry
                      of the lattice, additional points with appropriate
                      weights are generated. Notice that such procedure
                      assumes that ONLY k-points in the IBZ are provided in input
                      
                      In a non-scf calculation, weights do not affect the results.
                      If you just need eigenvalues and eigenvectors (for instance,
                      for a band-structure plot), weights can be set to any value
                      (for instance all equal to 1).
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variables:      nk1, nk2, nk3
      
      Type:           INTEGER
      Description:    These parameters specify the k-point grid
                      (nk1 x nk2 x nk3) as in Monkhorst-Pack grids.
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variables:      sk1, sk2, sk3
      
      Type:           INTEGER
      Description:    The grid offsets;  sk1, sk2, sk3 must be
                      0 ( no offset ) or 1 ( grid displaced by
                      half a grid step in the corresponding direction ).
      +--------------------------------------------------------------------
      
===END OF CARD==========================================================


========================================================================
CARD: ADDITIONAL_K_POINTS { tpiba | crystal | tpiba_b | crystal_b | tpiba_c | crystal_c }

   Optional card. Adds a list of k-points with zero weight, after those used for
   the scf calculation. When doing an EXX calculation and "nq1x", "nq2x" or "nq3x" are
   different from one, also include the required k+q points. The main use of this
   card is to do band plots with EXX.
   
   /////////////////////////////////////////
   // Syntax:                             //
   /////////////////////////////////////////
   
      ADDITIONAL_K_POINTS tpiba | crystal | tpiba_b | crystal_b | tpiba_c | crystal_c 
         nks_add
         k_x(1)        k_y(1)        k_z(1)        wk_(1)        
         k_x(2)        k_y(2)        k_z(2)        wk_(2)        
         . . . 
         k_x(nks_add)  k_y(nks_add)  k_z(nks_add)  wk_(nks_add)  
   
   /////////////////////////////////////////
   
   DESCRIPTION OF ITEMS:
   
      +--------------------------------------------------------------------
      Card's flags:   { tpiba | crystal | tpiba_b | crystal_b | tpiba_c | crystal_c }
      
      Default:        tbipa
      Description:    for the explanation of the K_POINTS' options, see "K_POINTS"
      +--------------------------------------------------------------------


      +--------------------------------------------------------------------
      Variable:       nks_add
      
      Type:           INTEGER
      Description:    Number of supplied "additional" k-points.
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variables:      k_x, k_y, k_z, wk_
      
      Type:           REAL
      Description:    for the respective explanation, see the "xk_x", "xk_y", "xk_z", "wk"
      +--------------------------------------------------------------------
      
===END OF CARD==========================================================


========================================================================
CARD: CELL_PARAMETERS { alat | bohr | angstrom }

   OPTIONAL CARD, MUST BE PRESENT IF "IBRAV" == 0, MUST BE ABSENT OTHERWISE
   
   /////////////////////////////////////////
   // Syntax:                             //
   /////////////////////////////////////////
   
      CELL_PARAMETERS { alat | bohr | angstrom }
         v1(1)  v1(2)  v1(3)  
         v2(1)  v2(2)  v2(3)  
         v3(1)  v3(2)  v3(3)  
   
   /////////////////////////////////////////
   
   DESCRIPTION OF ITEMS:
   
      +--------------------------------------------------------------------
      Card's flags:   { alat | bohr | angstrom }
      
      Description:    Unit for lattice vectors; options are:
                      
                      'bohr' / 'angstrom':
                                           lattice vectors in bohr-radii / angstrom.
                                           In this case the lattice parameter alat = sqrt(v1*v1).
                      
                      'alat' / nothing specified:
                                           lattice vectors in units of the lattice parameter (either
                                           "celldm"(1) or "A"). Not specifying units is DEPRECATED
                                           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
      +--------------------------------------------------------------------


      +--------------------------------------------------------------------
      Variables:      v1, v2, v3
      
      Type:           REAL
      Description:    Crystal lattice vectors (in cartesian axis):
                          v1(1)  v1(2)  v1(3)    ... 1st lattice vector
                          v2(1)  v2(2)  v2(3)    ... 2nd lattice vector
                          v3(1)  v3(2)  v3(3)    ... 3rd lattice vector
      +--------------------------------------------------------------------
      
===END OF CARD==========================================================


========================================================================
CARD: CONSTRAINTS 

   OPTIONAL CARD, USED FOR CONSTRAINED DYNAMICS OR CONSTRAINED OPTIMIZATIONS
   (ONLY IF "ION_DYNAMICS"=='DAMP' OR 'VERLET', VARIABLE-CELL EXCEPTED)
   
   When this card is present the SHAKE algorithm is automatically used.
   
   /////////////////////////////////////////
   // Syntax:                             //
   /////////////////////////////////////////
   
      CONSTRAINTS 
         nconstr { constr_tol }
         constr_type(1)        constr(1)(1)        constr(2)(1)        [  constr(3)(1)        constr(4)(1)        ]  {  constr_target(1)        }  
         constr_type(2)        constr(1)(2)        constr(2)(2)        [  constr(3)(2)        constr(4)(2)        ]  {  constr_target(2)        }  
         . . . 
         constr_type(nconstr)  constr(1)(nconstr)  constr(2)(nconstr)  [  constr(3)(nconstr)  constr(4)(nconstr)  ]  {  constr_target(nconstr)  }  
   
   /////////////////////////////////////////
   
   DESCRIPTION OF ITEMS:
   
      +--------------------------------------------------------------------
      Variable:       nconstr
      
      Type:           INTEGER
      Description:    Number of constraints.
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       constr_tol
      
      Type:           REAL
      Description:    Tolerance for keeping the constraints satisfied.
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       constr_type
      
      Type:           CHARACTER
      Description:   
                      Type of constraint :
       
                      '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).
       
                      '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).
       
                      'distance' :
                           constraint on interatomic distance
                           (two atom indexes must be specified).
       
                      'planar_angle' :
                           constraint on planar angle
                           (three atom indexes must be specified).
       
                      'torsional_angle' :
                           constraint on torsional angle
                           (four atom indexes must be specified).
       
                      '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
       
                      'potential_wall' :
                           (experimental) add a potential wall at the origin
                           normal to the the z-axis.
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variables:      constr(1), constr(2), constr(3), constr(4)
      
      Description:    These variables have different meanings for different constraint types:
                      
                      'type_coord' :
                                     constr(1) is the first index of the atomic type involved
                                     constr(2) is the second index of the atomic type involved
                                     constr(3) is the cut-off radius for estimating the coordination
                                     constr(4) is a smoothing parameter
                      
                      'atom_coord' :
                                     constr(1) is the atom index of the atom with constrained coordination
                                     constr(2) is the index of the atomic type involved in the coordination
                                     constr(3) is the cut-off radius for estimating the coordination
                                     constr(4) is a smoothing parameter
                      
                      'distance' :
                                     atoms indices object of the constraint, as they appear in
                                     the "ATOMIC_POSITIONS" card
                      
                      'planar_angle', 'torsional_angle' :
                                     atoms indices object of the constraint, as they appear in the
                                     "ATOMIC_POSITIONS" card (beware the order)
                      
                      'bennett_proj' :
                                     constr(1) is the index of the atom whose position is constrained.
                                     constr(2:4) are the three coordinates of the vector that specifies
                                     the constraint direction.
                      'potential_wall' :
                                     Formula is: External force = prefac * exponent * Exp(-exponent). Force is only applied
                                     on atoms within the cutoff.
                                     constr(1) is the prefactor
                                     constr(2) is the value in the exponent
                                     constr(3) is the cutoff (in a.u.)
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       constr_target
      
      Type:           REAL
      Description:    Target for the constrain ( angles are specified in degrees ).
                      This variable is optional.
      +--------------------------------------------------------------------
      
===END OF CARD==========================================================


========================================================================
CARD: OCCUPATIONS 

   OPTIONAL CARD, USED ONLY IF "OCCUPATIONS" == 'FROM_INPUT', IGNORED OTHERWISE !
   
   /////////////////////////////////////////
   // Syntax:                             //
   /////////////////////////////////////////
   
      OCCUPATIONS 
           f_inp1(1)  f_inp1(2)  . . .  f_inp1(nbnd)  
         [ f_inp2(1)  f_inp2(2)  . . .  f_inp2(nbnd)  ] 
         
   
   /////////////////////////////////////////
   
   DESCRIPTION OF ITEMS:
   
      +--------------------------------------------------------------------
      Variable:       f_inp1
      
      Type:           REAL
      Description:    Occupations of individual states (MAX 10 PER ROW).
                      For spin-polarized calculations, these are majority spin states.
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       f_inp2
      
      Type:           REAL
      Description:    Occupations of minority spin states (MAX 10 PER ROW)
                      To be specified only for spin-polarized calculations.
      +--------------------------------------------------------------------
      
===END OF CARD==========================================================


========================================================================
CARD: ATOMIC_VELOCITIES { a.u }

   OPTIONAL CARD, READS VELOCITIES FROM STANDARD INPUT
   
   /////////////////////////////////////////
   // Syntax:                             //
   /////////////////////////////////////////
   
      ATOMIC_VELOCITIES { a.u }
         V(1)    vx(1)    vy(1)    vz(1)    
         V(2)    vx(2)    vy(2)    vz(2)    
         . . . 
         V(nat)  vx(nat)  vy(nat)  vz(nat)  
   
   /////////////////////////////////////////
   
   DESCRIPTION OF ITEMS:
   
      +--------------------------------------------------------------------
      Card's flags:   { a.u }
      
      +--------------------------------------------------------------------


      +--------------------------------------------------------------------
      Variable:       V
      
      Type:           CHARACTER
      Description:    label of the atom as specified in ATOMIC_SPECIES
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variables:      vx, vy, vz
      
      Type:           REAL
      Description:    atomic velocities along x y and z direction
      +--------------------------------------------------------------------
      
===END OF CARD==========================================================


========================================================================
CARD: ATOMIC_FORCES 

   OPTIONAL CARD USED TO SPECIFY EXTERNAL FORCES ACTING ON ATOMS.
   
   BEWARE: if the sum of external forces is not zero, the center of mass of
           the system will move
   
   /////////////////////////////////////////
   // Syntax:                             //
   /////////////////////////////////////////
   
      ATOMIC_FORCES 
         X(1)    fx(1)    fy(1)    fz(1)    
         X(2)    fx(2)    fy(2)    fz(2)    
         . . . 
         X(nat)  fx(nat)  fy(nat)  fz(nat)  
   
   /////////////////////////////////////////
   
   DESCRIPTION OF ITEMS:
   
      +--------------------------------------------------------------------
      Variable:       X
      
      Type:           CHARACTER
      Description:    label of the atom as specified in "ATOMIC_SPECIES"
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variables:      fx, fy, fz
      
      Type:           REAL
      Description:    external force on atom X (cartesian components, Ry/a.u. units)
      +--------------------------------------------------------------------
      
===END OF CARD==========================================================


========================================================================
CARD: SOLVENTS { 1/cell | mol/L | g/cm^3 }

   OPTIONAL CARD, USED ONLY IF "TRISM" = .TRUE., IGNORED OTHERWISE !
   
   ________________________________________________________________________
   * IF laue_both_hands = .FALSE. : 
   
      /////////////////////////////////////////
      // Syntax:                             //
      /////////////////////////////////////////
      
         SOLVENTS { 1/cell | mol/L | g/cm^3 }
            X(1)      Density(1)      Molecule(1)      
            X(2)      Density(2)      Molecule(2)      
            . . . 
            X(nsolv)  Density(nsolv)  Molecule(nsolv)  
      
      /////////////////////////////////////////
      
       
   * ELSE IF laue_both_hands = .TRUE. : 
   
      /////////////////////////////////////////
      // Syntax:                             //
      /////////////////////////////////////////
      
         SOLVENTS { 1/cell | mol/L | g/cm^3 }
            X(1)      Density_Left(1)      Density_Right(1)      Molecule(1)      
            X(2)      Density_Left(2)      Density_Right(2)      Molecule(2)      
            . . . 
            X(nsolv)  Density_Left(nsolv)  Density_Right(nsolv)  Molecule(nsolv)  
      
      /////////////////////////////////////////
      
       
   ENDIF
   ________________________________________________________________________
   
   DESCRIPTION OF ITEMS:
   
      +--------------------------------------------------------------------
      Card's flags:   { 1/cell | mol/L | g/cm^3 }
      
      Description:   
                      1/cell :
                           solvent's densities are specified
                           as number of molecules in the unit cell.
       
                      mol/L :
                           solvent's densities are specified as molar concentrations.
       
                      g/cm^3 :
                           solvent's densities are in gram per cm^3.
      +--------------------------------------------------------------------


      +--------------------------------------------------------------------
      Variable:       X
      
      Type:           CHARACTER
      Description:    label of the solvent molecule.
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       Density
      
      Type:           REAL
      Description:    density of the solvent molecule.
                      if not positive value is set, density is read from MOL-file.
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       Molecule
      
      Type:           CHARACTER
      Description:    MOL-file of the solvent molecule.
                      in the MOL-file, molecular structure and some other data are written.
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       X
      
      Type:           CHARACTER
      Description:    label of the solvent molecule.
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       Density_Left
      
      Type:           REAL
      Description:    density of the solvent molecule in the left-hand side.
                      if not positive value is set, density is read from MOL-file.
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       Density_Right
      
      Type:           REAL
      Description:    density of the solvent molecule in the right-hand side.
                      if not positive value is set, density is read from MOL-file.
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variable:       Molecule
      
      Type:           CHARACTER
      Description:    MOL-file of the solvent molecule.
                      in the MOL-file, molecular structure and some other data are written.
      +--------------------------------------------------------------------
      
===END OF CARD==========================================================


========================================================================
CARD: HUBBARD atomic | ortho-atomic | norm-atomic | wf | pseudo

   ________________________________________________________________________
   * IF DFT+U : 
   
      /////////////////////////////////////////
      // Syntax:                             //
      /////////////////////////////////////////
      
         HUBBARD  atomic | ortho-atomic | norm-atomic | wf | pseudo 
            U label(1)-manifold(1) u_val(1)
            [ J0 label(1)-manifold(1) j0_val(1) ]
            . . .
            U label(n)-manifold(n) u_val(n)
            [ J0 label(n)-manifold(n) j0_val(n) ]
      
      /////////////////////////////////////////
      
       
   * ELSE IF DFT+U+J : 
   
      /////////////////////////////////////////
      // Syntax:                             //
      /////////////////////////////////////////
      
         HUBBARD  atomic | ortho-atomic | norm-atomic | wf | pseudo 
            paramType(1) label(1)-manifold(1) paramValue(1)
            . . .
            paramType(n) label(n)-manifold(n) paramValue(n)
      
      /////////////////////////////////////////
      
       
   * ELSE IF DFT+U+V : 
   
      /////////////////////////////////////////
      // Syntax:                             //
      /////////////////////////////////////////
      
         HUBBARD  atomic | ortho-atomic | norm-atomic | wf | pseudo 
            U label(I)-manifold(I) u_val(I)
            [ J0 label(I)-manifold(I) j0_val(I) ]
            V label(I)-manifold(I) label(J)-manifold(J) I J v_val(I,J)
            . . .
            U label(N)-manifold(N) u_val(N)
            [ J0 label(N)-manifold(N) j0_val(N) ]
            V label(N)-manifold(N) label(M)-manifold(M) N M v_val(N,M)
      
      /////////////////////////////////////////
      
       
   ENDIF
   ________________________________________________________________________
   
   DESCRIPTION OF ITEMS:
   
      +--------------------------------------------------------------------
      Card's flags:   atomic | ortho-atomic | norm-atomic | wf | pseudo
      
      Description:   
                      HUBBARD options are:
       
                      atomic :
                           use atomic orbitals (read from pseudopotential) to build the
                           Hubbard projectors
       
                      ortho-atomic :
                           use Lowdin orthogonalized atomic orbitals. This option is
                           recommended to be used whenever possible instead of atomic
                           because it allows to avoid applying Hubbard corrections twice
                           in the orbital overlap regions.
       
                      norm-atomic :
                           Lowdin normalization of atomic orbitals. Keep in mind:
                           atomic orbitals are not orthogonalized in this case.
                           This is a "quick and dirty" trick to be used when
                           atomic orbitals from the pseudopotential are not
                           normalized (and thus produce occupation whose
                           value exceeds unity).
       
                      wf :
                           use Wannier functions to built Hubbard projectors.
                           The information about the Wannier functionas are read
                           from file "prefix".hub that must be generated using pmw.x
                           (see PP/src/poormanwannier.f90 for details).
                           Note: these are not maximally localized Wannier functions.
                           (see PP/examples/example05)
       
                      pseudo :
                           use the pseudopotential projectors. The charge density
                           outside the atomic core radii is excluded.
                           N.B.: for atoms with +U, a pseudopotential with the
                           all-electron atomic orbitals are required (i.e.,
                           as generated by ld1.x with lsave_wfc flag).
       
                      NB: forces and stress are currently implemented only for the
                      'atomic', 'ortho-atomic', and 'pseudo' Hubbard projectors.
       
                      Check Doc/Hubbard_input.pdf to see how to specify Hubbard parameters
                      U, J0, J, B, E2, E3, V in the HUBBARD card.
      +--------------------------------------------------------------------


      +--------------------------------------------------------------------
      Variables:      label(1)-manifold(1), u_val(1)
      
      Type:           CHARACTER-LITERAL, CHARACTER, REAL
      Description:    Syntax:
                        U label-manifold u_val
                      
                      Where:
                      U        = string constant "U"; indicates the specs for the U parameter will be given
                      label    = label of the atom (as defined in "ATOMIC_SPECIES")
                      manifold = specs of the manifold (e.g., 3d, 2p...)
                      u_val    = value of the U parameter (in eV)
                      
                      Example:
                      HUBBARD (ortho-atomic)
                        U Mn-3d 5.0
                        U Ni-3d 6.0
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variables:      label(1)-manifold(1), j0_val(1)
      
      Type:           CHARACTER-LITERAL, CHARACTER, REAL
      Description:    Remark: specs of J0 parameters are optional
                      
                      Syntax:
                        J0 label-manifold j0_val
                      
                      Where:
                      J0       = string constant "J0"; indicates the specs for the J0 parameter will be given
                      label    = label of the atom (as defined in "ATOMIC_SPECIES")
                      manifold = specs of the manifold (e.g., 3d, 2p...)
                      j0_val   = value of the J0 parameter (in eV)
                      
                      Example:
                        HUBBARD (ortho-atomic)
                        U  Mn-3d 5.0
                        J0 Mn-3d 1.0
                        U  Ni-3d 6.0
                        J0 Ni-3d 1.2
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variables:      paramType(1), label(1)-manifold(1), paramValue(1)
      
      Type:           CHARACTER, CHARACTER, REAL
      Description:    Syntax of the line:
                      
                        paramType label-manifold paramValue
                      
                      Where:
                      paramType  = character describing the type of Hubbard parameter
                                   allowed values: U, J and either B (for d-orbitals) or E2 and E3 (for f-orbitals)
                      label      = label of the atom (as defined in "ATOMIC_SPECIES")
                      manifold   = specs of the manifold (e.g., 3d, 2p...)
                      paramValue = value of the parameter (in eV)
                      
                      Example:
                        HUBBARD (ortho-atomic)
                        U Mn-3d 5.0
                        J Mn-3d 1.0
                        B Mn-3d 1.1
                        U Ni-3d 6.0
                        J Ni-3d 1.2
                        B Ni-3d 1.3
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variables:      label(I)-manifold(I), u_val(I)
      
      Type:           CHARACTER, REAL
      Description:    Syntax of the line:
                      
                        U label-manifold u_val
                      
                      Where:
                      U        = string constant "U"; indicates the specs for the U parameter will be given
                      label    = label of the atom (as defined in "ATOMIC_SPECIES")
                      manifold = specs of the manifold (e.g., 3d, 2p...)
                      u_val    = value of the U parameter (in eV)
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variables:      label(I)-manifold(I), j0_val(I)
      
      Type:           CHARACTER, REAL
      Description:    Remark: specs of J0 parameters are optional
                      
                      Syntax of the line:
                      
                        J0 label(I)-manifold(I) j0_val(I)
                      
                      Where:
                      J0       = string constant "J0"; indicates the specs for the J0 parameter will be given
                      label    = label of the atom (as defined in "ATOMIC_SPECIES")
                      manifold = specs of the manifold (e.g., 3d, 2p...)
                      j0_val   = value of the J0 parameter (in eV)
      +--------------------------------------------------------------------
      
      +--------------------------------------------------------------------
      Variables:      label(I)-manifold(I), label(J)-manifold(J), I, J, v_val(I,J)
      
      Type:           CHARACTER, CHARACTER, INTEGER, INTEGER, REAL
      Description:    Syntax of the line:
                      
                        V label(I)-manifold(J) label(J)-manifold(J) I J v_val(I,J)
                      
                      Where:
                      V           = string constant "V"; indicates the specs for the V parameter will be given
                      label(I)    = label of the atom I (as defined in "ATOMIC_SPECIES")
                      manifold(I) = specs of the manifold for atom I (e.g., 3d, 2p...)
                      label(J)    = label of the atom J (as defined in "ATOMIC_SPECIES")
                      manifold(J) = specs of the manifold for atom J (e.g., 3d, 2p...)
                      I           = index of the atom I
                      J           = index of the atom J
                      v_val(I,J)  = value of the V parameter for the atom pair I,J (in eV)
                      
                      Example:
                        HUBBARD (ortho-atomic)
                        U Co-3d 7.70
                        V Co-3d O-2p 1 19 0.75
                        V Co-3d O-2p 1 46 0.75
                        V Co-3d O-2p 1 43 0.75
                        V Co-3d O-2p 1 54 0.75
                        V Co-3d O-2p 1 11 0.75
                        V Co-3d O-2p 1 22 0.75
      +--------------------------------------------------------------------
      
===END OF CARD==========================================================


This file has been created by helpdoc utility on Sat Mar 18 16:00:16 CET 2023
