updated MPI I/O interface to include writing/reading more types
output interface is now a derived type with type-bound procedures, updated hdf5 and mpi I/O accordingly