PROGRAM check_tac * - runs interactively * - read columns formatted of TAC 2.0 catalog * - check for overflow "*" characters and format * - calculates the minimal and maximal values for each column * - output to file check_tac.log * MIZ 990331 * NZ 990804 update for final release * f77 check_tac.f -o check_tac IMPLICIT NONE * variables INTEGER dima !maximal number of colums PARAMETER (dima=15) INTEGER val(dima), minv(dima), maxv(dima), zval(dima), . minp(dima) ! minimal positive number > 0 INTEGER i, j, n_all, no_mag, nof, ntyy,ntyb, . isn, ra, dc, err_ra, err_dc, n_obs, . epoch, magy,magb, err_y, err_b, magny,magnb, . tyc_y, tyc_b CHARACTER fnin*20, as1*20, line*80 * initializing n_all = 0 nof = 0 no_mag= 0 ntyy = 0 ntyb = 0 fnin = 'tac_2.dat' DO i=1,dima zval(i) = 0 ENDDO DO j=1,dima maxv(j)=-999000000 minv(j)= 999000000 minp(j)= 999000000 ENDDO * start program OPEN (33,FILE='check_tac.log') WRITE (*,'(/a/)') 'program to check catalog entries' WRITE (*,'(3a,$)') 'file to check : ', fnin, ' ' READ (*,'(a)') as1 IF (as1.NE.' ') READ (as1,*) fnin OPEN (11,FILE=fnin,READONLY) * read data DO i=1,999999 line = ' ' READ (11,'(a)',END=10) line n_all = n_all + 1 IF (INDEX(line,'*').NE.0) THEN nof = nof + 1 WRITE (*,'(a,i6)') 'overflow, line = ',i WRITE (*,'(a)') line ENDIF READ (line,*) . isn, ra, dc, err_ra, err_dc, n_obs, . epoch, magy,magb, err_y, err_b, magny,magnb, . tyc_y, tyc_b IF (MOD(i,10000).EQ.1) . WRITE (*,'(5i12)') i,isn,ra,dc,no_mag val(1) = isn val(2) = ra val(3) = dc val(4) = err_ra val(5) = err_dc val(6) = n_obs val(7) = epoch val(8) = magy val(9) = magb val(10)= err_y val(11)= err_b val(12)= magny val(13)= magnb val(14)= tyc_y val(15)= tyc_b DO j=1,dima IF (val(j).GT.maxv(j)) maxv(j) = val(j) IF (val(j).LT.minv(j)) minv(j) = val(j) IF (val(j).EQ.0) THEN zval(j) = zval(j) + 1 ELSEIF (val(j).GT.0) THEN IF (val(j).LT.minp(j)) minp(j) = val(j) ENDIF ENDDO IF (magy.EQ.0.AND.magb.EQ.0) no_mag = no_mag + 1 IF (tyc_y.GT.0) ntyy = ntyy + 1 IF (tyc_b.GT.0) ntyb = ntyb + 1 ENDDO 10 CONTINUE * write to log file WRITE (33,'(2a)') 'input file name: ', fnin WRITE (33,'(a,i7)') 'lines read in : ', n_all WRITE (33,'(a,i7)') 'stars no_mag : ', no_mag WRITE (33,'(a,i7)') 'n Tycho yellow : ', ntyy WRITE (33,'(a,i7)') 'n Tycho blue : ', ntyb WRITE (33,'(/a)') . 'minimal, min.abs., maximal, zero values for each column:' WRITE (33,'(i7,2i11,12i7)') . (minv(j), j=1,dima) WRITE (33,'(i7,2i11,12i7)') . (minp(j), j=1,dima) WRITE (33,'(i7,2i11,12i7)') . (maxv(j), j=1,dima) WRITE (33,'(i7,2i11,12i7)') . (zval(j), j=1,dima) * write to screen WRITE (*,'(/a,i7)') 'lines read in : ', n_all WRITE (*,'( a,i7)') 'star no_mag : ', no_mag WRITE (*,'( a,i7)') 'n Tycho yellow : ', ntyy WRITE (*,'( a,i7)') 'n Tycho blue : ', ntyb WRITE (*,'(a)') 'log file : check_cat.log' WRITE (*,'(/a/)') 'end ' END ************************************************************************************