To run a DP job can be as simple as typing:

dp -k *file*_KSS > dp.log

where *file*_KSS is a wavefunctions _KSS file generated by ABINIT.
Better if it is in the ETSF NetCDF file-format (*file*_KSS-etsf.nc), set the variable accesswff 3 in the ABINIT input file.
Here is a set of input files to be run to generate a Silicon spectrum.
Run ABINIT this way:

abinis < abi.files > abi.log

you should get a file sio_DS2_KSS-etsf.nc
Then using the provided dp.in file, run dp on this file.
You can also use an old *file*.qplda
file produced by the Milan CP code and with non-official interfaces also by
the PWSCF and the SFHIngx code.

Thank to the dp command, the code try to run an RPA *converged* optical absorption
calculation using as parameters values desumed from the wavefunctions file.
Each parameter has a default value. However you can specify an inputfile
to drive the calculation. By default it try to read a dp.in file;
but you can specify another name by typing:

dp -i *inputfile*

This is an ASCII parsed file containing keywords and parameters to drive the calculation.
The style is much like that one of ABINIT, with some differences.
Here an example of a dp.in input file:

testparticle

rpa

npwmat 27

npwwfn 59

nbands 9

q -0.5 0.0 0.0

omegai 0.0

omegae 6.0

domega 0.1

broad 0.05

It specify that a testparticle (default) calculation for the dielectric function should be done
(other options: testelectron). Using the RPA (default) approximation (other options: lda, gw, so, nlda, lrc, ...).
The dimension (npwmat) used for the dielectric and polarizability matrices to take into account local-field
effects is 27. To represent wavefunctions it uses a number of plane waves npwwfn=59. The number of bands used
in the calculation nbands is 9. It calculates the dielectric function at q = ( -0.5 , 0.0 , 0.0 ) in
reduced coordinates. The spectra are calculated from 0 to 6 eV with a 0.1 sampling and a lorentzian broadening
of 0.05 eV (by default the same as domega).
There are other useful parameters that can be used, check them in the tutorial.

The run produces a log file (the redirected stdout) and an ASCII output file called outnlf.mdf (or in the oldest versions outnlf.eps) and outlf.mdf (outlf.eps). The nlf file relates to a non-local field effects calculation, why the lf is a full local-field effects included calculation. Their content is organized into columns that can be plot by gnuplot or xmgrace. The first column contains the frequency omega in eV. The second and the third contain the real and the imaginary part of the macroscopic dielectric function respectively. If the calculation is done at q=0, then there is a set of 1 (omega) + 8*2 columns: each pair of columns contain the real and imaginary part of the dielectric functions, and there are 8 pairs corresponding to q -> 0 along all the possible directions in cartesian or reduced coordinates spaces. The first pair is the average along the three reduced coordinates, the second the average along the three cartesian coordinates. The next three pairs of columns contain q -> 0 along 100, 010 and 001. finally the last three pairs of columns contain q -> 0 along x, y, and z.

The file .mdf (or .eps) can be also transformed thank to the broad utility
or the mdf2xxx (eps2xxx) utilities.

broad outlf.mdf

mdf2eel outlf.mdf

By the broad utility you can add a posteriori, lorentzian and gaussian broadening.
The mdf2eel utility calculates the Energy-Loss function to be compared with EELS experiments.
There are other conversion utilities: mdf2rfr (refraction indices), mdf2rfl (reflectivity),
mdf2dsf (dynamic structure factor to be compared with IXSS experiment).