input_description -distribution {Quantum Espresso} -package PWscf -program d3.x {

    toc {}

    namelist INPUTPH {
	group {
	    label { Variables that MUST BE SPECIFIED }

	    var fildrho -type CHARACTER { 
		info { 
		    The file containing the variation of the charge     
		    density at the q point under consideration, this
		    file is produced by phonon.
		}
		default { ' ' }
	    }
	       
	    var fild0rho -type CHARACTER { 
		info { 
		    The file containing the variation of the charge    
		    density at q=0, this file is produced by phonon.
		}
		default { ' ' }
	    }

	    dimension amass -start 1 -end ntyp -type CHARACTER { 
		info { 
		    ionic masses [atomic mass units]
		}
	    }
	}


	var prefix -type CHARACTER { 
	    info { prefix for file names }
	    default { 'pwscf' }
	}

        var outdir -type CHARACTER {
            default {
                value of the ESPRESSO_TMPDIR environment variable if set;
                current directory ('./') otherwise
            }
            info {
                Directory containing input, output, and scratch files;
                must be the same as specified in the calculation of 
                the unperturbed system and for phonon calculation.
            }
        }
     
	var fildyn -type CHARACTER { 
	    info { 
		The file where the derivative of the dynamical      
		matrix will be written
	    }
	    default { 'd3dyn' }
	}

	var ethr_ph -type REAL { 
	    info { 
		Threshold for iterative diagonalization             
		(accuracy in ryd of the calculated eigenvalues).
	    }
	    default { 1.0d-5 }
	}
	      
	dimension q0mode_todo -start 1 -end 3*nat -type INTEGER { 
	    info { 
		This array contains the list of the q=0 modes that   
		will be computed. If q0mode_todo(1).eq.0 the
		program will compute every q=0 mode.
	    }
	    status { q0mode_todo is statically allocated to dimension 300 }
	    default { 0 }
	}

	var wraux -type LOGICAL { 
	    info { 
		If .true. the program will write different terms    
		of the matrix on different files.
	    }
	    default { .false. }
	}
	      
	var recv -type LOGICAL { 
	    info { Specify .true. for a recover run. }
	    default { .false. }
	}
	      
	var istop -type INTEGER { 
	    default { 0 }
	    info { 
		If this number is set different from zero the       
		program will stop after the specified routine
		and will write the partial result in the recover
		file.
	    }
	}

	var iverbosity -type INTEGER { 
	    default { 0 }
	    info { type of printing ( 0 few, 1 all ) }
	}
    }
}
