PROGRAM u2dumpz C C pgf77 -o u2dumpz u2dumpz.f u2sub.f C C read entire zone file (direct access, unformatted) C write out stars to ASCII file (all items, limiting magnitude option) C C 030429 NZ create C 030601 NZ use limiting magnitude IMPLICIT NONE INTEGER idat(25) CHARACTER*40 pathz, fnbase, fnout, answer CHARACTER a1*1 INTEGER zn, jb, i,nt,ns, un, j, limm LOGICAL only_rd, bf, errflg REAL*8 ra, dc * defaults pathz = '/mnt/cdrom/u2/' ! path name for input zone files fnbase= 'u2z' ! base file name for output un = 11 ! unit number for read zone files only_rd = .TRUE. ! read original zone files here, no creation limm = 1800 ! 1/100 mag for output limiting magnitude * interactive WRITE (*,'(/a,a,$)') 'pathz = ',pathz READ (*,'(a)') answer IF (answer.NE.' ') pathz = answer WRITE (*,'(a,$)') 'byte flip (y/n) ? ' READ (*,'(a)') a1 IF (a1.EQ.'y'.OR.a1.EQ.'Y') THEN bf = .TRUE. ELSE bf = .FALSE. ENDIF WRITE (*,'(a,a,$)') 'fnbase = ',fnbase READ (*,'(a)') answer IF (answer.NE.' ') fnbase= answer WRITE (*,'(a,i5,a,$)') 'lim.mag=',limm,' (1/100 mag) ' READ (*,'(a)') answer IF (answer.NE.' ') READ(answer,*) limm jb = INDEX (fnbase,' ') - 1 WRITE (*,'(/a)') 'exit with zn less equal 0' * loop zones 101 WRITE (*,'(a,$)') 'zn = ' READ*, zn IF (zn.LE.0) GOTO 99 WRITE (fnout,'(a,i3.3)') fnbase(1:jb),zn WRITE (*,'(a,a)') 'ASCII output to ',fnout OPEN (20,FILE=fnout) CALL open_zfile (pathz,un,zn, only_rd) ns = 0 nt = 0 DO i=1,999000 CALL read_u2line (un,i,bf,idat,errflg) IF (errflg) GOTO 91 nt = nt + 1 IF (idat(3).LE.limm) THEN ! limmiting magnitude ns = ns + 1 CC ra = DFLOAT (idat(1)) / 5.4d7 ! mas -> hour CC dc = DFLOAT (idat(2)) / 3.6d6 ! mas -> degree CC WRITE (20,'(2i11,i5,f10.6,f10.5)') CC . idat(1), idat(2), idat(3), ra,dc WRITE (20,'(i10,i11,i5,2i4,4i3,2i6,i8,i6 . ,2i4,2i4,i11,3i6,2i4.3)') . (idat(j),j=1,23) ENDIF ENDDO 91 CLOSE (20) WRITE (*,'(a,i6)') 'numb.stars input = ',nt WRITE (*,'(a,i6)') 'numb.stars output= ',ns GOTO 101 99 WRITE (*,'(a)') 'end of ' END