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

    Program: ph.x / PWscf / Quantum Espresso (version: 6.6)
    ------------------------------------------------------------------------

    Input data format: { } = optional, [ ] = it depends, # = comment

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

    title_line

    &INPUTPH
       ...
    /

    [ xq(1) xq(2) xq(3) ]                        # if "ldisp" != .true.  and  "qplot" != .true.

    [ nqs                                        # if "qplot" == .true.
      xq(1,i)    xq(2,i)    xq(3,1)    nq(1)
      ...
      xq(1,nqs)  xq(2,nqs)  xq(3,nqs)  nq(nqs) ]

    [ atom(1)  atom(2)  ... atom(nat_todo) ]     # if "nat_todo" was specified

    ========================================================================
    Line of input:

          title_line

       DESCRIPTION OF ITEMS:

          +--------------------------------------------------------------------
          Variable:       title_line

          Type:           CHARACTER
          Description:    Title of the job, i.e., a line that is reprinted on output.
          +--------------------------------------------------------------------

    ===End of line-of-input=================================================

    ========================================================================
    NAMELIST: &INPUTPH

       +--------------------------------------------------------------------
       Variable:       amass(i), i=1,ntyp

       Type:           REAL
       Default:        0.0
       Description:    Atomic mass [amu] of each atomic type.
                       If not specified, masses are read from data file.
       +--------------------------------------------------------------------

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

       Type:           CHARACTER
       Default:        value of the ESPRESSO_TMPDIR environment variable if set;
                        current directory ('./') otherwise
       Description:    Directory containing input, output, and scratch files;
                       must be the same as specified in the calculation of
                       the unperturbed system.
       +--------------------------------------------------------------------

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

       Type:           CHARACTER
       Default:        'pwscf'
       Description:    Prepended to input/output filenames; must be the same
                       used in the calculation of unperturbed system.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       niter_ph

       Type:           INTEGER
       Default:        maxter=100
       Description:    Maximum number of iterations in a scf step. If you want
                       more than 100, edit variable "maxter" in PH/phcom.f90
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       tr2_ph

       Type:           REAL
       Default:        1e-12
       Description:    Threshold for self-consistency.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       alpha_mix(niter)

       Type:           REAL
       Default:        alpha_mix(1)=0.7
       Description:    Mixing factor (for each iteration) for updating
                       the scf potential:

                       vnew(in) = alpha_mix*vold(out) + (1-alpha_mix)*vold(in)
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       nmix_ph

       Type:           INTEGER
       Default:        4
       Description:    Number of iterations used in potential mixing.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       verbosity

       Type:           CHARACTER
       Default:        'default'
       Description:
                       Options are:

                       'debug', 'high', 'medium' :
                            verbose output

                       'low', 'default', 'minimal' :
                            short output
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       reduce_io

       Type:           LOGICAL
       Default:        .false.
       Description:    Reduce I/O to the strict minimum.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       max_seconds

       Type:           REAL
       Default:        1.d7
       Description:    Maximum allowed run time before the job stops smoothly.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       fildyn

       Type:           CHARACTER
       Default:        'matdyn'
       Description:    File where the dynamical matrix is written.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       fildrho

       Type:           CHARACTER
       Default:        ' '
       Description:    File where the charge density responses are written. Note that the file
                       will actually be saved as ${outdir}/_ph0/${prefix}.${fildrho}1
                       where  ${outdir}, ${prefix} and ${fildrho} are the values of the
                       corresponding input variables
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       fildvscf

       Type:           CHARACTER
       Default:        ' '
       Description:    File where the the potential variation is written
                       (for later use in electron-phonon calculation, see also fildrho).
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       epsil

       Type:           LOGICAL
       Default:        .false.
       Description:    If .true. in a q=0 calculation for a non metal the
                       macroscopic dielectric constant of the system is
                       computed. Do not set "epsil" to .true. if you have a
                       metallic system or q/=0: the code will complain and stop.

                       Note: the input value of "epsil" will be ignored if "ldisp"=.true.
                       (the code will automatically set "epsil" to .false. for metals,
                       to .true. for insulators: see routine PHonon/PH/prepare_q.f90).
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       lrpa

       Type:           LOGICAL
       Default:        .false.
       Description:    If .true. the dielectric constant is calculated at the
                       RPA level with DV_xc=0.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       lnoloc

       Type:           LOGICAL
       Default:        .false.
       Description:    If .true. the dielectric constant is calculated without
                       local fields, i.e. by setting DV_H=0 and DV_xc=0.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       trans

       Type:           LOGICAL
       Default:        .true.
       Description:    If .true. the phonons are computed.
                       If "trans" .and. "epsil" are .true. effective charges are
                       calculated.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       lraman

       Type:           LOGICAL
       Default:        .false.
       Description:    If .true. calculate non-resonant Raman coefficients
                       using second-order response as in:
                       M. Lazzeri and F. Mauri, PRL 90, 036401 (2003).
       +--------------------------------------------------------------------

       ///---
          OPTIONAL VARIABLES FOR RAMAN:

          +--------------------------------------------------------------------
          Variable:       eth_rps

          Type:           REAL
          Default:        1.0d-9
          Description:    Threshold for calculation of  Pc R |psi>.
          +--------------------------------------------------------------------

          +--------------------------------------------------------------------
          Variable:       eth_ns

          Type:           REAL
          Default:        1.0e-12
          Description:    Threshold for non-scf wavefunction calculation.
          +--------------------------------------------------------------------

          +--------------------------------------------------------------------
          Variable:       dek

          Type:           REAL
          Default:        1.0e-3
          Description:    Delta_xk used for wavefunction derivation wrt k.
          +--------------------------------------------------------------------

       \\\---

       +--------------------------------------------------------------------
       Variable:       recover

       Type:           LOGICAL
       Default:        .false.
       Description:    If .true. restart from an interrupted run.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       low_directory_check

       Type:           LOGICAL
       Default:        .false.
       Description:    If .true. search in the phsave directory only the
                                        quantities requested in input.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       only_init

       Type:           LOGICAL
       Default:        .false.
       Description:    If .true. only the bands and other initialization quantities are calculated.
                       (used for GRID parallelization)
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       qplot

       Type:           LOGICAL
       Default:        .false.
       Description:    If .true. a list of q points is read from input.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       q2d

       Type:           LOGICAL
       Default:        .false.
       Description:    If .true. three q points and relative weights are
                       read from input. The three q points define the rectangle
                       q(:,1) + l (q(:,2)-q(:,1)) + m (q(:,3)-q(:,1)) where
                       0< l,m < 1. The weights are integer and those of points two
                       and three are the number of points in the two directions.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       q_in_band_form

       Type:           LOGICAL
       Default:        .false.
       Description:    This flag is used only when qplot is .true. and q2d is
                       .false.. When .true. each couple of q points q(:,i+1) and
                       q(:,i) define the line from q(:,i) to q(:,i+1) and nq
                       points are generated along that line. nq is the weigth of
                       q(:,i). When .false. only the list of q points given as
                       input is calculated. The weights are not used.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       electron_phonon

       Type:           CHARACTER
       Default:        ' '
       Description:
                       Options are:

                       'simple' :
                            Electron-phonon lambda coefficients are computed
                            for a given q and a grid of k-points specified by
                            the variables nk1, nk2, nk3, k1, k2, k3.

                       'interpolated' :
                            Electron-phonon is calculated by interpolation
                            over the Brillouin Zone as in M. Wierzbowska, et
                            al. arXiv:cond-mat/0504077

                       'lambda_tetra' :
                            The electron-phonon coefficient \lambda_{q \nu}
                            is calculated with the optimized tetrahedron method.

                       'gamma_tetra' :
                            The phonon linewidth \gamma_{q \nu} is calculated
                            from the electron-phonon interactions
                            using the optimized tetrahedron method.

                       'epa' :
                            Electron-phonon coupling matrix elements are written
                            to file prefix.epa.k for further processing by program
                            epa.x which implements electron-phonon averaged (EPA)
                            approximation as described in G. Samsonidze & B. Kozinsky,
                            Adv. Energy Mater. 2018, 1800246 doi:10.1002/aenm.201800246
                            arXiv:1511.08115

                       'ahc' :
                            Quantities required for the calculation of phonon-induced
                            electron self-energy are computed and written to the directory
                            "ahc_dir". The output files can be read by postahc.x for
                            the calculation of electron self-energy.
                            Available for both metals and insulators.
                            "trans"=.false. is required.

                       For metals only, requires gaussian smearing (except for 'ahc').

                       If "trans"=.true., the lambdas are calculated in the same
                       run, using the same k-point grid for phonons and lambdas.
                       If "trans"=.false., the lambdas are calculated using
                       previously saved DeltaVscf in "fildvscf", previously saved
                       dynamical matrix, and the present punch file. This allows
                       the use of a different (larger) k-point grid.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       el_ph_nsigma

       Type:           INTEGER
       Default:        10
       Description:    The number of double-delta smearing values used in an
                       electron-phonon coupling calculation.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       el_ph_sigma

       Type:           REAL
       Default:        0.02
       Description:    The spacing between double-delta smearing values used in
                       an electron-phonon coupling calculation.
       +--------------------------------------------------------------------

       ///---
          VARIABLES FOR "ELECTRON_PHONON" = 'AHC':

          +--------------------------------------------------------------------
          Variable:       ahc_dir

          Type:           CHARACTER
          Default:        outdir // 'ahc_dir/'
          Description:    Directory where the output binary files are written.
          +--------------------------------------------------------------------

          +--------------------------------------------------------------------
          Variable:       ahc_nbnd

          Type:           INTEGER
          Status:         REQUIRED
          Description:    Number of bands for which the electron self-energy is to be computed.
          +--------------------------------------------------------------------

          +--------------------------------------------------------------------
          Variable:       ahc_nbndskip

          Type:           INTEGER
          Default:        0
          Description:    Number of bands to exclude when computing the self-energy. Self-energy
                          is computed for bands with indices from "ahc_nbndskip"+1 to
                          "ahc_nbndskip"+"ahc_nbnd". "ahc_nbndskip"+"ahc_nbnd" cannot
                          exceed nbnd of the preceding SCF or NSCF calculation.
          +--------------------------------------------------------------------

          +--------------------------------------------------------------------
          Variable:       skip_upperfan

          Type:           LOGICAL
          Default:        .false.
          Description:    If .true., skip calculation of the upper Fan self-energy, which
                          involves solving the Sternheimer equation.
          +--------------------------------------------------------------------

       \\\---

       +--------------------------------------------------------------------
       Variable:       lshift_q

       Type:           LOGICAL
       Default:        .false.
       Description:    Use a wave-vector grid displaced by half a grid step
                       in each direction - meaningful only when ldisp is .true.
                       When this option is set, the q2r.x code cannot be used.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       zeu

       Type:           LOGICAL
       Default:        zeu="epsil"
       Description:    If .true. in a q=0 calculation for a non metal the
                       effective charges are computed from the dielectric
                       response. This is the default algorithm. If "epsil"=.true.
                       and "zeu"=.false. only the dielectric tensor is calculated.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       zue

       Type:           LOGICAL
       Default:        .false.
       Description:    If .true. in a q=0 calculation for a non metal the
                       effective charges are computed from the phonon
                       density responses. This is an alternative algorithm,
                       different from the default one (if "trans" .and. "epsil" )
                       The results should be the same within numerical noise.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       elop

       Type:           LOGICAL
       Default:        .false.
       Description:    If .true. calculate electro-optic tensor.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       fpol

       Type:           LOGICAL
       Default:        .false.
       Description:    If .true. calculate dynamic polarizabilities
                       Requires "epsil"=.true. ( experimental stage:
                       see example09 for calculation of methane ).
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       ldisp

       Type:           LOGICAL
       Default:        .false.
       Description:    If .true. the run calculates phonons for a grid of
                       q-points specified by "nq1", "nq2", "nq3" - for direct
                       calculation of the entire phonon dispersion.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       nogg

       Type:           LOGICAL
       Default:        .false.
       Description:    If .true. disable the "gamma_gamma" trick used to speed
                       up calculations at q=0 (phonon wavevector) if the sum over
                       the Brillouin Zone includes k=0 only. The gamma_gamma
                       trick exploits symmetry and acoustic sum rule to reduce
                       the number of linear response calculations to the strict
                       minimum, as it is done in code phcg.x.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       asr

       Type:           LOGICAL
       Default:        .false.
       Description:    Apply Acoustic Sum Rule to dynamical matrix, effective charges
                       Works only in conjunction with "gamma_gamma" tricks (see above)
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       ldiag

       Type:           LOGICAL
       Default:        .false.
       Description:    If .true. forces the diagonalization of the dynamical
                       matrix also when only a part of the dynamical matrix
                       has been calculated. It is used together with "start_irr"
                       and "last_irr". If all modes corresponding to a
                       given irreducible representation have been calculated,
                       the phonon frequencies of that representation are
                       correct. The others are zero or wrong. Use with care.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       lqdir

       Type:           LOGICAL
       Default:        .false.
       Description:    If .true. ph.x creates inside outdir a separate subdirectory
                       for each q vector. The flag is set to .true. when "ldisp"=.true.
                       and "fildvscf" /= ' ' or when an electron-phonon
                       calculation is performed. The induced potential is saved
                       separately for each q inside the subdirectories.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       search_sym

       Type:           LOGICAL
       Default:        .true.
       Description:    Set it to .false. if you want to disable the mode
                       symmetry analysis.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variables:      nq1, nq2, nq3

       Type:           INTEGER
       Default:        0,0,0
       Description:    Parameters of the Monkhorst-Pack grid (no offset) used
                       when @ref ldisp=.true. Same meaning as for nk1, nk2, nk3
                       in the input of pw.x.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variables:      nk1, nk2, nk3, k1, k2, k3

       Type:           INTEGER
       Default:        0,0,0,0,0,0
       Description:    When these parameters are specified the phonon program
                       runs a pw non-self consistent calculation with a different
                       k-point grid thant that used for the charge density.
                       This occurs even in the Gamma case.
                       nk1,nk2,nk3 are the parameters of the Monkhorst-Pack grid
                       with offset determined by k1,k2,k3.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       diagonalization

       Type:           CHARACTER
       Default:        'david'
       Description:
                       Diagonalization method for the non-SCF calculations.

                       'david' :
                            Davidson iterative diagonalization with overlap matrix
                            (default). Fast, may in some rare cases fail.

                       'cg' :
                            Conjugate-gradient-like band-by-band diagonalization.
                            Slower than 'david' but uses less memory and is
                            (a little bit) more robust.
       +--------------------------------------------------------------------

       +--------------------------------------------------------------------
       Variable:       read_dns_bare

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

       +--------------------------------------------------------------------
       Variable:       ldvscf_interpolate

       Type:           LOGICAL
       Default:        .false.
       Description:    If .true., use Fourier interpolation of phonon potential
                       to compute the induced part of phonon potential at each
                       q point. Results of a dvscf_q2r.x run is needed.
                       Requires "trans" = .false..
       +--------------------------------------------------------------------

       ///---
          OPTIONAL VARIABLES FOR DVSCF INTERPOLATION:

          +--------------------------------------------------------------------
          Variable:       wpot_dir

          Type:           CHARACTER
          Default:        outdir // 'w_pot/'
          Description:    Directory where the w_pot binary files are written.
                          Must be the same with wpot_dir used in dvscf_q2r.x.
                          The real space potential files are stored in wpot_dir
                          with names ${prefix}.wpot.irc${irc}//"1".
          +--------------------------------------------------------------------

          +--------------------------------------------------------------------
          Variable:       do_long_range

          Type:           LOGICAL
          Default:        .false.
          Description:    If .true., add the long-range part of the potential
                          to the Fourier interpolated potential as in:
                          S. Ponce et al, J. Chem. Phys. 143, 102813 (2015).
                          Reads dielectric matrix and Born effective charges from
                          the ${wpot_dir}/tensors.dat file, written in dvscf_q2r.x.
                          Currently, only the dipole (Frohlich) part is implemented.
                          The quadrupole part is not implemented.
          +--------------------------------------------------------------------

          +--------------------------------------------------------------------
          Variable:       do_charge_neutral

          Type:           LOGICAL
          Default:        .false.
          Description:    If .true., impose charge neutrality on the Born effective
                          charges. Used only if "do_long_range" = .true..
          +--------------------------------------------------------------------

       \\\---

       ///---
          SPECIFICATION OF IRREDUCIBLE REPRESENTATION

          +--------------------------------------------------------------------
          Variable:       start_irr

          Type:           INTEGER
          Default:        1
          See:            last_irr
          Description:    Perform calculations only from "start_irr" to "last_irr"
                          irreducible representations.

                          IMPORTANT:
                             * "start_irr" must be <= 3*nat
                             * do not specify "nat_todo" together with
                               "start_irr", "last_irr"
          +--------------------------------------------------------------------

          +--------------------------------------------------------------------
          Variable:       last_irr

          Type:           INTEGER
          Default:        3*nat
          See:            start_irr
          Description:    Perform calculations only from "start_irr" to "last_irr"
                          irreducible representations.

                          IMPORTANT:
                             * "start_irr" must be <= 3*nat
                             * do not specify "nat_todo" together with
                               "start_irr", "last_irr"
          +--------------------------------------------------------------------

          +--------------------------------------------------------------------
          Variable:       nat_todo

          Type:           INTEGER
          Default:        0, i.e. displace all atoms
          Description:    Choose the subset of atoms to be used in the linear response
                          calculation: "nat_todo" atoms, specified in input (see below)
                          are displaced. Can be used to estimate modes for a molecule
                          adsorbed over a surface without performing a full fledged
                          calculation. Use with care, at your own risk, and be aware
                          that this is an approximation and may not work.
                          IMPORTANT:
                             * "nat_todo" <= nat
                             * if linear-response is calculated for a given atom, it
                               should also be done for all symmetry-equivalent atoms,
                               or else you will get incorrect results
          +--------------------------------------------------------------------

          +--------------------------------------------------------------------
          Variable:       modenum

          Type:           INTEGER
          Default:        0
          Description:    For single-mode phonon calculation : modenum is the index of the
                          irreducible representation (irrep) into which the reducible
                          representation formed by the 3*nat atomic displacements are
                          decomposed in order to perform the phonon calculation.
                          Note that a single-mode calculation will not give you the
                          frequency of a single phonon mode: in general, the selected
                          "modenum" is not an eigenvector. What you get on output is
                          a column of the dynamical matrix.
          +--------------------------------------------------------------------

       \\\---

       ///---
          Q-POINT SPECIFICATION

          +--------------------------------------------------------------------
          Variable:       start_q

          Type:           INTEGER
          Default:        1
          See:            last_q
          Description:    Used only when ldisp=.true..
                          Computes only the q points from "start_q" to "last_q".

                          IMPORTANT:
                             * "start_q" must be <= "nqs" (number of q points found)
                             * do not specify "nat_todo" together with
                               "start_q", "last_q"
          +--------------------------------------------------------------------

          +--------------------------------------------------------------------
          Variable:       last_q

          Type:           INTEGER
          Default:        number of q points
          See:            start_q
          Description:    Used only when "ldisp"=.true..
                          Computes only the q points from "start_q" to "last_q".

                          IMPORTANT
                             * "last_q" must be <= "nqs" (number of q points)
                             * do not specify "nat_todo" together with
                               "start_q", "last_q"
          +--------------------------------------------------------------------

          +--------------------------------------------------------------------
          Variable:       dvscf_star

          Type:           STRUCTURE
          Default:        disabled
          Description:    It contains the following components:

                          dvscf_star%open  (logical, default: .false.)
                          dvscf_star%dir   (character, default: outdir//"Rotated_DVSCF" or the
                                            ESPRESSO_FILDVSCF_DIR environment variable)
                          dvscf_star%ext   (character, default: "dvscf") the extension to use
                                            for the name of the output files, see below
                          dvscf_star%basis (character, default: "cartesian") the basis on which
                                            the rotated dvscf will be saved
                          dvscf_star%pat   (logical, default: false) save an optional file with the
                                            displacement patterns and q vector for each dvscf file

                          IF dvscf_star%open is .true. use symmetry to compute and store the variation
                          of the self-consistent potential on every q* in the star of the present q.

                          The rotated dvscf will then be stored in directory dvscf_star%dir with name
                          prefix.dvscf_star%ext.q_name//"1". Where q_name is derived from the coordinates
                          of the q-point, expressed as fractions in crystalline coordinates
                          (notice that ph.x reads q-points in cartesian coordinates).
                          E.g. q_cryst= (0, 0.5, -0.25) -> q_name = "0_1o2_-1o4"

                          The dvscf can be represented on a basis of cartesian 1-atom displacements
                          (dvscf_star%basis='cartesian') or on the basis of the modes at the rotated q-point
                          (dvscf_star%basis='modes'). Notice that the el-ph wannier code requires 'cartesian'.
                          Each dvscf file comes with a corresponding pattern file with an additional ".pat"
                          suffix; this file contains information about the basis and the q-point of the dvscf.

                          Note: rotating dvscf can require a large amount of RAM memory and can be i/o
                                intensive; in its current implementation all the operations are done
                                on a single processor.
                          Note2: this feature is currently untested with image parallelisation.
          +--------------------------------------------------------------------

          +--------------------------------------------------------------------
          Variable:       drho_star

          Type:           STRUCTURE
          See:            dvscf_star
          Default:        disabled
          Description:    It contains the following components:

                          drho_star%open  (logical, default: .false.)
                          drho_star%dir   (character, default: outdir//"Rotated_DRHO" or the
                                           ESPRESSO_FILDRHO_DIR environment variable)
                          drho_star%ext   (character, default: "drho") the extension to use
                                           for the name of the output files, see below
                          drho_star%basis (character, default: "modes") the basis on which
                                           the rotated drho will be saved
                          drho_star%pat   (logical, default: true) save an optional file with the
                                           displacement patterns and q vector for each drho file

                          Like "dvscf_star", but for the perturbation of the charge density.
                          Notice that the defaults are different.
          +--------------------------------------------------------------------

       \\\---

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

    ________________________________________________________________________
    * IF ldisp != .true.   and   qplot != .true. :

       ========================================================================
       Line of input:

             xq(1)  xq(2)  xq(3)

          DESCRIPTION OF ITEMS:

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

             Type:           REAL
             Description:    The phonon wavevector, in units of 2pi/a0
                             (a0 = lattice parameter).
                             Not used if "ldisp"=.true. or "qplot"=.true.
             +--------------------------------------------------------------------

       ===End of line-of-input=================================================

    * ELSE IF qplot == .true. :

       SPECIFICATION OF Q POINTS WHEN "QPLOT" == .TRUE.

       ========================================================================
       CARD:

          /////////////////////////////////////////
          // Syntax:                             //
          /////////////////////////////////////////

                nqs
                xq1(1)    xq2(1)    xq3(1)    nq(1)
                xq1(2)    xq2(2)    xq3(2)    nq(2)
                . . .
                xq1(nqs)  xq2(nqs)  xq3(nqs)  nq(nqs)

          /////////////////////////////////////////

          DESCRIPTION OF ITEMS:

             +--------------------------------------------------------------------
             Variable:       nqs

             Type:           INTEGER
             Description:    Number of q points in the list. Used only if "qplot"=.true.
             +--------------------------------------------------------------------

             +--------------------------------------------------------------------
             Variables:      xq1, xq2, xq3

             Type:           REAL
             Description:    q-point coordinates; used only with @ref ldisp=.true. and qplot=.true.
                             The phonon wavevector, in units of 2pi/a0 (a0 = lattice parameter).
                             The meaning of these q points and their weights nq depend on the
                             flags q2d and q_in_band_form. (NB: nq is integer)
             +--------------------------------------------------------------------

             +--------------------------------------------------------------------
             Variable:       nq

             Type:           INTEGER
             Description:    The weight of the q-point; the meaning of nq depends
                             on the flags q2d and q_in_band_form.
             +--------------------------------------------------------------------

       ===END OF CARD==========================================================

    ENDIF
    ________________________________________________________________________

    ________________________________________________________________________
    * IF nat_todo was specified :

       ========================================================================
       Line of input:

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

          DESCRIPTION OF ITEMS:

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

             Type:           INTEGER
             Description:    Contains the list of indices of atoms used in the
                             calculation if "nat_todo" is specified.
             +--------------------------------------------------------------------

       ===End of line-of-input=================================================

    ENDIF
    ________________________________________________________________________

    ::::  ADDITIONAL INFORMATION

       NB: The program ph.x writes on the tmp_dir/_ph0/{prefix}.phsave directory
       a file for each representation of each q point. This file is called
       dynmat.#iq.#irr.xml where #iq is the number of the q point and #irr
       is the number of the representation. These files contain the
       contribution to the dynamical matrix of the irr representation for the
       iq point.

       If "recover"=.true. ph.x does not recalculate the
       representations already saved in the tmp_dir/_ph0/{prefix}.phsave
       directory.  Moreover ph.x writes on the files patterns.#iq.xml in the
       tmp_dir/_ph0/{prefix}.phsave directory the displacement patterns that it
       is using. If "recover"=.true. ph.x does not recalculate the
       displacement patterns found in the tmp_dir/_ph0/{prefix}.phsave directory.

       This mechanism allows:

         1) To recover part of the ph.x calculation even if the recover file
            or files are corrupted. You just remove the _ph0/{prefix}.recover
            files from the tmp_dir directory. You can also remove all the _ph0
            files and keep only the _ph0/{prefix}.phsave directory.

         2) To split a phonon calculation into several jobs for different
            machines (or set of nodes). Each machine calculates a subset of
            the representations and saves its dynmat.#iq.#irr.xml files on
            its tmp_dir/_ph0/{prefix}.phsave directory. Then you collect all the
            dynmat.#iq.#irr.xml files in one directory and run ph.x to
            collect all the dynamical matrices and diagonalize them.

       NB: To split the q points in different machines, use the input
       variables start_q and last_q. To split the irreducible
       representations, use the input variables "start_irr", "last_irr". Please
       note that different machines will use, in general, different
       displacement patterns and it is not possible to recollect partial
       dynamical matrices generated with different displacement patterns.  A
       calculation split into different machines will run as follows: A
       preparatory run of ph.x with "start_irr"=0, "last_irr"=0 produces the sets
       of displacement patterns and save them on the patterns.#iq.xml files.
       These files are copied in all the tmp_dir/_ph0/{prefix}.phsave directories
       of the machines where you plan to run ph.x. ph.x is run in different
       machines with complementary sets of start_q, last_q, "start_irr" and
       "last_irr" variables.  All the files dynmat.#iq.#irr.xml are
       collected on a single tmp_dir/_ph0/{prefix}.phsave directory (remember to
       collect also dynmat.#iq.0.xml).  A final run of ph.x in this
       machine collects all the data contained in the files and diagonalizes
       the dynamical matrices.  This is done requesting a complete dispersion
       calculation without using start_q, last_q, "start_irr", or "last_irr".
       See an example in examples/GRID_example.

       On parallel machines the q point and the irreps calculations can be split
       automatically using the -nimage flag. See the phonon user guide for further
       information.

    This file has been created by helpdoc utility on Wed Dec 02 08:04:43 CET 2020