xvpread(model,filename,header,x,y,z,vx,vy,vz,pmass,ppot,ierr) xvpwrite(model,filename,header,x,y,z,vx,vy,vz,pmass,ppot,ierr)
In the original xmv (Quinn) version (3-dimensional) positions, velocities, and masses were stored, including a header, which describes the size of the upcoming data.
In the xvp Balcells-extension the masses are stored in the header (assuming the masses come in up to 13 groups) and the column which used to store the masses now contain the potentials.
Since this extension is annotated in the header, the xvp format is upward compatible with the xvm format.
header(1)=number of particles in this (and all subsequent) snapshot(s)
header(2)=iteration number
header(3)=time
header(4)=total energy
header(5)=total angular momentum
header(6)=total mass
header(8)=G (Newton’s constant)
header(9)=epsilon (the gravitational softening length)
header(18)=1 if a satellite is present , 0 if not. | ???
header(19)=ndim (only 3 is supported)
header(20)=1 if two-galaxies model, 0 otherwise
header(21)=ngal1+1 | gal2 comes after gal1
header(22)=mtot1
header(23)=r0 galaxy 1 (half mass radius)
header(24)=rmax galaxy 1 (initial rmax)
header(25,26,27)= am(x,y,z) galaxy 1
header(28)=mtot2
header(29)=r0 galaxy 2 (half mass radius)
header(30)=rmax galaxy 2 (initial rmax)
header(31,32,33)= am(x,y,z) galaxy 2
header(100) = 1 file contains xvp, not xvm, 0 otherwise
header(101) = nmasses number of body mass groups
header(102) = n1 bodies 1:n1 have mass m1
header(103) = m1 the body mass m1
header(104) = n2 bodies n1+1:n2 have mass m2
header(105) = m2
header(106) = n3
header(107) = m3 etc. max 13 mass groups
...
header(126) = n13
header(127) = m13
header(128) | currently unused
header(129) | remainder unused
...
header(896) | last header element
Note that formally up to 7*128 are available, but the last 6*128 are currently
not in use.
data(1,2,3) positions (NDIM=3 assumed here)
data(4,5,6) velocities
data(7) auxilliary (mass/potential)
data(8,9,10) positions
... etc.
The header has no record of NOBYTES (4 or 8) or a version number (sic).
VMS may not be supported in NEMO.
~/src/nbody/io/xvpsnap.c sample conversion code
~/usr/balcells/nora/{xvpread.f,xvpwrite.f} sample I/O routines
25-may-94 documentation written PJT