input_description -distribution {Quantum ESPRESSO} -package turboTDDFPT -program turbo_spectrum.x {

    toc {}

    intro {
    	  Input data format: { } = optional, [ ] = it depends.

	  All quantities whose dimensions are not explicitly specified are in
	  RYDBERG ATOMIC UNITS

	  BEWARE: TABS, DOS <CR><LF> CHARACTERS ARE POTENTIAL SOURCES OF TROUBLE

          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.

          @b {Structure of the input data:}
	  ===============================================================================

	  &LR_INPUT
	    ...
	  /

    }

    namelist LR_INPUT {

	label { This namelist is always needed ! }

	var prefix -type CHARACTER { 
	    default { 'pwscf' }
	    info {
		Sets the prefix for generated and read files. The files 
		generated by the ground state pw.x run should have this 
		same prefix.
	    }
	}

	var outdir -type CHARACTER { 
	    default { './' }
	    info {
		The directory that contains the run critical files, which 
		include the files generated by ground state pw.x run.
	    }
	}

	var verbosity -type INTEGER {
	    default {1}
	    info {
		This integer variable controls the amount of information 
		written to standard output.
	    }
	}

	var itermax0 -type INTEGER {
	    default {500}
	    info {
		Number of Lanczos coefficients to be read from the file.
		}
	}

	var itermax -type INTEGER {
	    default {500}
	    info {
		The total number of Lanczos coefficients that will be 
		considered in the calculation of the polarizability/absorption 
		coefficient. If itermax > itermax0, the Lanczos coefficients
		in between itermax0+1 and itermax will be extrapolated.
		}
	}
	
	var extrapolation -type CHARACTER {
	    default {'no'}
            options {
                info {
                    Sets the extrapolation scheme.
                }
                opt -val 'osc' {
                    biconstant extrapolation
                }
                opt -val 'constant' {
                    constant extrapolation
                }
                opt -val 'no' {
                    no extrapolation.
                }
            }
	}

	var epsil -type REAL {
	    default {0.02}
	    info {
	    	The broadening/damping term. In Rydberg units if magnons=.false., 
			in meV if magnons = .true.
		}
	}
	
	var units -type INTEGER {
	    default {0}
	    info {
	    	 The unit system used for the output and the start, end and increment
		 input parameters. (only meV used in that case).

		 0 = Rydbergs, 1 = Electron volts, 2 = Nanometres per electron volts,
                 3 = milli Electron volts (only for magnons=.true.)
		 }
        }

	var start -type REAL {
	    default {0.0}
	    info {
 	 	 The polarizability and the absorption coefficient are computed 
		 starting from this value. In units set.
		}
	}

	var end -type REAL {
	    default {2.5}
	    info {
 	 	 The polarizability and the absorption coefficient are computed 
		 up to this value. In units set.
		}
	}

	var increment -type REAL {
	    default {0.001}
	    info {
 	 	 Incremental step used to define the mesh between start and end.
                 In units set.
		}
	}
	
	var ipol -type INTEGER {
	    default {1}
	    info {
		An integer variable that determines which element of the 
		dynamical polarizability will be computed: 
		1 -> alpha_xx(omega), 2 -> alpha_yy(omega), and 
		3 -> alpha_zz(omega). When set to 4, three Lanczos chains 
		are sequentially performed and the full polarizability 
		tensor and the absorption coefficient are computed.
		}
	}

        var eels -type LOGICAL {
            default {.false.}
            info {
                 Must be set to .true. for EELS. EELS-specific operations
                 will be performed.
                }
        }

		var magnons -type LOGICAL {
            default {.false.}
            info {
                 Must be set to .true. for magnon-calculation post-processing. 
                }
        }

        var td -type CHARACTER {
            default {'lanczos'}
            info {
                 When set to 'lanczos', a calculation of the spectrum is
                 performed using the Lanczos coefficients. 
                 When set to 'davidson' or 'david', a calculation of the 
                 spectrum is performed using the eigenvalues computed 
                 using the Davidson algorithm. See the variable 'eign_file'.  
                }
        }

        var eign_file -type CHARACTER {
            default {'pwscf.eigen'}
            info {
                 The name of the file produced by the turbo_davidson.x code, 
                 in which are written the eigenvalues. 
                }
        }
    }
}				
