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

    Program: projwfc.x / PWscf / Quantum Espresso
    ------------------------------------------------------------------------

    Purpose of projwfc.x:
        projects wavefunctions onto orthogonalized atomic wavefunctions,
        calculates Lowdin charges, spilling parameter, projected DOS
        (separated into up and down components for lSDA)
        alternatively, computes the local DOS(E), integrated in volumes
        given in input

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

       &PROJWFC
         ...
       /

    ========================================================================
    NAMELIST: &PROJWFC

       +--------------------------------------------------------------------
       Variable:       prefix

       Type:           CHARACTER
       Description:    Prefix of input file produced by pw.x
                       (wavefunctions are needed).
       Default:        'pwscf'
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       outdir

       Type:           CHARACTER
       Description:    directory containing the input data,
                       i.e. the same as in pw.x
       Default:        value of the ESPRESSO_TMPDIR environment variable if set;
                       current directory ('./') otherwise
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       ngauss

       Type:           INTEGER
       Default:        0
       Description:    Type of gaussian broadening:
                           0 ... Simple Gaussian (default)
                           1 ... Methfessel-Paxton of order 1
                          -1 ... Marzari-Vanderbilt "cold smearing"
                         -99 ... Fermi-Dirac function
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       degauss

       Type:           REAL
       Default:        0.0
       Description:    gaussian broadening, Ry (not eV!)
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variables:      Emin, Emax

       Type:           REAL
       Default:        (band extrema)
       Description:    min & max energy (eV) for DOS plot
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       DeltaE

       Type:           REAL
       Description:    energy grid step (eV)
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       lsym

       Type:           LOGICAL
       Default:        .true.
       Description:    if true the projections are symmetrized
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       filpdos

       Type:           CHARACTER
       Description:    prefix for output files containing PDOS(E)
       Default:        (value of prefix variable)
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       filproj

       Type:           CHARACTER
       Default:        (standard output)
       Description:    file containing the projections
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       lwrite_overlaps

       Type:           LOGICAL
       Default:        .false.
       Description:    if .true., the overlap matrix of the atomic orbitals
                       prior to orthogonalization is written to the atomic_proj datafile.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       lbinary_data

       Type:           LOGICAL
       Default:        .false.
       Description:    if .true., the atomic_proj datafile is written in binary fmt.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       kresolveddos

       Type:           LOGICAL
       Default:        .false.
       Description:    if .true. the k-resolved DOS is computed: not summed over
                       all k-points but written as a function of the k-point index.
                       In this case all k-point weights are set to unity
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       tdosinboxes

       Type:           LOGICAL
       Default:        .false.
       Description:    if .true. compute the local DOS integrated in volumes
                       volumes are defined as boxes with edges parallel
                       to the unit cell, containing the points of the
                       (charge density) FFT grid included within
                       irmin and irmax, in the three dimensions:
                       from irmin(j,n) to irmax(j,n) for j=1,2,3
                       (n=1,n_proj_boxes)
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       n_proj_boxes

       Type:           INTEGER
       Default:        1
       Description:    number of boxes where the local DOS is computed
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       irmin

       Type:           INTEGER
       Default:        1
       Description:    first point to be included in the box
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       irmax

       Type:           INTEGER
       Default:        0
       Description:    last point to be included in the box
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       plotboxes

       Type:           LOGICAL
       Default:        .false.
       Description:    if .true., the boxes are written in output as
                       as xsf files with 3D datagrids, valued 1.0
                       inside the box volume and 0 outside
                       (visualize them as isosurfaces with isovalue 0.5)
       +--------------------------------------------------------------------

    ===END OF NAMELIST======================================================

    :::: Notes

       ::: Format of output files

          Projections are written to standard output,
          and also to file filproj if given as input.

          The total DOS and the sum of projected DOS are written to file
          "filpdos".pdos_tot.

          * The format for the collinear, spin-unpolarized case and the
            non-collinear, spin-orbit case is:
                E DOS(E) PDOS(E)
                ...

          * The format for the collinear, spin-polarized case is:
                E DOSup(E) DOSdw(E)  PDOSup(E) PDOSdw(E)
                ...

          * The format for the non-collinear, non spin-orbit case is:
                E DOS(E) PDOSup(E) PDOSdw(E)
                ...

          In the collinear case and the non-collinear, non spin-orbit case
          projected DOS are written to file "filpdos".pdos_atm#N(X)_wfc#M(l),
          where N = atom number , X = atom symbol, M = wfc number, l=s,p,d,f
          (one file per atomic wavefunction found in the pseudopotential file)

          * The format for the collinear, spin-unpolarized case is:
                E LDOS(E) PDOS_1(E) ... PDOS_2l+1(E)
                ...

          where LDOS = \sum m=1,2l+1 PDOS_m(E)
          and PDOS_m(E) = projected DOS on atomic wfc with component m

          * The format for the collinear, spin-polarized case and the
            non-collinear, non spin-orbit case is as above with
            two components for both  LDOS(E) and PDOS_m(E)

          In the non-collinear, spin-orbit case (i.e. if there is at least one
          fully relativistic pseudopotential) wavefunctions are projected
          onto eigenstates of the total angular-momentum.
          Projected DOS are written to file "filpdos".pdos_atm#N(X)_wfc#M(l_j),
          where N = atom number , X = atom symbol, M = wfc number, l=s,p,d,f
          and j is the value of the total angular momentum.
          In this case the format is:
              E LDOS(E) PDOS_1(E) ... PDOS_2j+1(E)
              ...

          If kresolveddos=.true., the k-point index is prepended
          to the formats above, e.g. (collinear, spin-unpolarized case)
              ik E DOS(E) PDOS(E)

          All DOS(E) are in states/eV plotted vs E in eV

       ::: Orbital Order

          Order of m-components for each l in the output:

              1, cos(phi), sin(phi), cos(2*phi), sin(2*phi), .., cos(l*phi), sin(l*phi)

          where phi is the polar angle:x=r cos(theta)cos(phi), y=r cos(theta)sin(phi)
          This is determined in file flib/ylmr2.f90 that calculates spherical harmonics.

          for l=1:
            1 pz     (m=0)
            2 px     (real combination of m=+/-1 with cosine)
            3 py     (real combination of m=+/-1 with sine)

          for l=2:
            1 dz2    (m=0)
            2 dzx    (real combination of m=+/-1 with cosine)
            3 dzy    (real combination of m=+/-1 with sine)
            4 dx2-y2 (real combination of m=+/-2 with cosine)
            5 dxy    (real combination of m=+/-2 with sine)

       ::: Defining boxes for the Local DOS(E)

          Boxes are specified using the variables irmin and irmax:
          FFT grid points are included from irmin(j,n) to irmax(j,n)
          for j=1,2,3 and n=1,...,n_proj_boxes
          irmin and irmax range from 1 to nr1 or nr2 or nr3
          Values larger than nr1/2/3 or smaller than 1 are folded
          to the unit cell.
          If irmax<irmin FFT grid points are included from 1 to irmax
          and from irmin to nr1/2/3

       ::: Important notices

          * The tetrahedron method is presently not implemented.

          * Gaussian broadening is used in all cases:

              - if degauss is set to some value in namelist &projwfc, that value
                (and the optional value for ngauss) is used

              - if degauss is NOT set to any value in namelist &projwfc, the
                value of degauss and of ngauss are read from the input data
                file (they will be the same used in the pw.x calculations)

              - if degauss is NOT set to any value in namelist &projwfc, AND
                there is no value of degauss and of ngauss in the input data
                file, degauss=DeltaE (in Ry) and ngauss=0 will be used

          Obsolete variables, ignored:
              io_choice
              smoothing