

program ReadHaloCat



integer*4 nhalo

integer*4, dimension(:), allocatable :: nbnda,massha

real*4, dimension(:), allocatable :: rvira,virma,vchaloa,xac,yac,zac,&
     &xambp,yambp,zambp,vxa,vya,vza

character*100 base
character*100 ext
character*100 fname

implicit none


base='/mybase/'
ext='myext.halos'



fname=base(1:len_trim(base))//ext
 
print *,'Reading : ',fname


open(1,file=fname,form='unformatted',status='old')

read(1) nhalo
print*,'nhalo : ',nhalo


allocate(nbnda(nhalo),massha(nhalo))
allocate(rvira(nhalo),virma(nhalo),vchaloa(nhalo),xac(nhalo),yac(nhalo),zac(nhalo),&
     &xambp(nhalo),yambp(nhalo),zambp(nhalo),vxa(nhalo),vya(nhalo),vza(nhalo))


! note : vxa is the velocity averaged over all particles in the linked list





read(1) nbnda ! Id ot most bound particle
read(1) massha ! number of particles found by the groupfinder
read(1) rvira ! virial radius in physical kpc/h
read(1) virma ! virial mass in Msun/h
read(1) vchaloa ! virial circular velocity in km/s
read(1) xac ! comoving position of center of mass SGX in kpc/h (origin = Milky Way)
read(1) yac ! --- SGY in kpc/h (origin = Milky Way)
read(1) zac ! --- SGZ in kpc/h (origin = Milky Way)
read(1) xambp ! comoving position of most bound particle SGX in kpc/h (origin = Milky Way)
read(1) yambp ! --- SGY in kpc/h (origin = Milky Way)
read(1) zambp ! --- SGY in kpc/h (origin = Milky Way)
read(1) vxa ! peculiar velocity of center of mass in km/s
read(1) vya ! ---
read(1) vza ! ---

close(1)





print*, 'Read ...'



print*,'min,max nbnda : ',minval(nbnda),maxval(nbnda)
print*,'min,max massha : ',minval(massha),maxval(massha)
print*,'min,max rvira : ',minval(rvira),maxval(rvira)
print*,'min,max virma : ',minval(virma),maxval(virma)
print*,'min,max vchaloa : ',minval(vchaloa),maxval(vchaloa)
print*,'min,max xac : ',minval(xac),maxval(xac)
print*,'min,max yac : ',minval(yac),maxval(yac)
print*,'min,max zac : ',minval(zac),maxval(zac)
print*,'min,max xambp : ',minval(xambp),maxval(xambp)
print*,'min,max yambp : ',minval(yambp),maxval(yambp)
print*,'min,max zambp : ',minval(zambp),maxval(zambp)
print*,'min,max vxa : ',minval(vxa),maxval(vxa)
print*,'min,max vya : ',minval(vya),maxval(vya)
print*,'min,max vza : ',minval(vza),maxval(vza)


stop

end

