Line 146 in xml_write_primx.f90:
write( buffer, '(1pg16.7)' ) value
does not write the double precision value correctly to the buffer when compiled with Intel Visual Fortran 10. While the 'value' variable is clearly double precision (16 digits) as can be seen with a debugger, only 8 digits (including decimal point) get written to the buffer, resulting in a crippling loss of precision.
I don't know how to fix this, but it sadly makes xml-fortran useless to me.