Note that to avoid memory leaks, my understanding is that every time there is a manual allocate there must be a manual deallocate.  In this case I think this deallocate should go in the deallocate_coord routine in particle_header.F90