FORTRAN Generation
()

Conversion of standardized ReadMe file for catalog into FORTRAN code for loading all data files into arrays.

Note that special values are assigned to unknown or unspecified numbers (also called NULL numbers); when necessary, the coordinate components making up the right ascension and declination are converted into floating-point numbers representing these angles in degrees.



      program load_ReadMe
C=============================================================================
C  F77-compliant program generated by readme2f_1.5, on 2013-May-19
C=============================================================================
*  This code was generated from the ReadMe file documenting a catalogue
*  according to the "Standard for Documentation of Astronomical Catalogues"
*  currently in use by the Astronomical Data Centers (CDS, ADC, A&A)
*  (see full documentation at URL http://vizier.u-strasbg.fr/doc/catstd.htx)
*  Please report problems or questions to   
C=============================================================================

      implicit none
*  Unspecified or NULL values, generally corresponding to blank columns,
*  are assigned one of the following special values:
*     rNULL__    for unknown or NULL floating-point values
*     iNULL__    for unknown or NULL   integer      values
      real*4     rNULL__
      integer*4  iNULL__
      parameter  (rNULL__=-1.e37)     	! NULL real number
      parameter  (iNULL__=-2147483647)	! NULL int  number

C=============================================================================
Cat. J/ApJS/104/287      UIT near-UV bright objects catalog (Smith+ 1996)
*================================================================================
*Ultraviolet imaging telescope near-ultraviolet bright object catalog.
*     Smith E.P., Pica A.J., Bohlin R.C., Cornett R.H., Fanelli M.N.,
*     Landsman W.B., O'Connell R.W., Roberts M.S., Smith A.M., Stecher T.P.
*    <Astrophys. J. Suppl. Ser. 104, 287 (1996)>
*    =1996ApJS..104..287S      (SIMBAD/NED BibCode)
C=============================================================================

C  Internal variables

      integer*4 i__

c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

C  Declarations for 'table1.dat'	! UIT pointings in catalog

      integer*4 nr__
      parameter (nr__=48)	! Number of records
      character*52 ar__   	! Full-size record

      real*8        RA_        (nr__) ! (deg) Right Ascension J2000
      real*8        Dec        (nr__) ! (deg)     Declination J2000
      integer*4     RAh        (nr__) ! (h) Right ascension (J2000)
      integer*4     RAm        (nr__) ! (min) Right ascension (J2000)
      real*4        RAs        (nr__) ! (s) Right ascension (J2000)
      character*1   DE_        (nr__) ! Declination sign
      integer*4     DEd        (nr__) ! (deg) Declination (J2000)
      integer*4     DEm        (nr__) ! (arcmin) Declination (J2000)
      real*4        DEs        (nr__) ! (arcsec) Declination (J2000)
      character*12  Target     (nr__) ! UIT target
      real*4        Exp        (nr__) ! (s) Longest exposure time & assoc. frame number
      character*2   Filter     (nr__) ! *UIT filter
      integer*4     Frame      (nr__) ! Associated UIT frame number
*Note on Filter:
*  A5 and A2 data represent orbital day exposures

c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

C  Declarations for 'table2.dat'	! UIT near-UV bright object catalog

      integer*4 nr__1
      parameter (nr__1=2244)	! Number of records
      character*80 ar__1  	! Full-size record

      real*8        RA__1      (nr__1) ! (deg) Right Ascension J2000
      real*8        Dec_1      (nr__1) ! (deg)     Declination J2000
      integer*4     Entry      (nr__1) ! Catalog entry number
      integer*4     RAh_1      (nr__1) ! (h) Right ascension (J2000)
      integer*4     RAm_1      (nr__1) ! (min) Right ascension (J2000)
      real*4        RAs_1      (nr__1) ! (s) Right ascension (J2000)
      character*1   DE__1      (nr__1) ! Declination sign
      integer*4     DEd_1      (nr__1) ! (deg) Declination (J2000)
      integer*4     DEm_1      (nr__1) ! (arcmin) Declination (J2000)
      real*4        DEs_1      (nr__1) ! (arcsec) Declination (J2000)
      real*4        mnuv       (nr__1) ! (mag) []? Near-UV aperture magnitude
      character*1   n_mnuv     (nr__1) ! [s] Flag for stars w/ saturated pixels
      real*4        e_mnuv     (nr__1) ! (mag) []? Uncertainty in mnuv
      real*4        mnuv_V     (nr__1) ! (mag) []? mnuv - V color
      character*2   Type       (nr__1) ! *Object classification
      character*22  Name       (nr__1) ! *Name, if any, of the ID, or a brief note
      integer*4     Frame_1    (nr__1) ! UIT frame number used for the photometry
*Note on Type:
*  The object is classified with a two-digit number.  The first digit
*  represents the UIT filter used for the observation, while the
*  second digit represents the type of optical identification.  A
*  "0" represents a cataloged stellar identification (either named
*  or from the HST GSC), a "1" indicates a nonstellar source, and a
*  "2" indicates a proposed match with the digitized POSS (265 sources).
*Note on Name:
*  Most of the objects (second classification digit "0") match stars
*  from the HST GSC, and no name is listed for these objects.

C=============================================================================

C  Loading file 'table1.dat'	! UIT pointings in catalog

C  Format for file interpretation

    1 format(
     +  I2,1X,I2,1X,F4.1,1X,A1,I2,1X,I2,1X,F4.1,2X,A12,1X,F6.1,2X,A2,
     +  1X,I4)

C  Effective file loading

      open(unit=1,file='table1.dat', status='old')
      write(6,*) '....Loading file: table1.dat'
      do i__=1,48
        read(1,'(A52)')ar__
        read(ar__,1)
     +  RAh(i__),RAm(i__),RAs(i__),DE_(i__),DEd(i__),DEm(i__),
     +  DEs(i__),Target(i__),Exp(i__),Filter(i__),Frame(i__)
c       Derive coordinates RA_ and Dec from input data
c       (RA_ and Dec are set to rNULL_ when unknown)
        RA_(i__) = RAh(i__)
        if(RAh(i__) .GE. 0) RA_(i__)=RAh(i__)*15.
        if(RAm(i__) .GE. 0) RA_(i__)=RA_(i__)+RAm(i__)/4.
        if(RAs(i__) .GE. 0) RA_(i__)=RA_(i__)+RAs(i__)/240.
        Dec(i__) = DEd(i__)
        if(DEm(i__) .GE. 0) Dec(i__)=Dec(i__)+DEm(i__)/60.
        if(DEs(i__) .GE. 0) Dec(i__)=Dec(i__)+DEs(i__)/3600.
        if(DE_(i__).EQ.'-'.AND.Dec(i__).GE.0) Dec(i__)=-Dec(i__)
c    ..............Just test output...........
        write(6,1)
     +  RAh(i__),RAm(i__),RAs(i__),DE_(i__),DEd(i__),DEm(i__),
     +  DEs(i__),Target(i__),Exp(i__),Filter(i__),Frame(i__)
        write(6,'(6H Pos: 2F8.4)') RA_(i__),Dec(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

C=============================================================================

C  Loading file 'table2.dat'	! UIT near-UV bright object catalog

C  Format for file interpretation

    2 format(
     +  I4,1X,I2,1X,I2,1X,F5.2,1X,A1,I2,1X,I2,1X,F4.1,1X,F6.2,A1,1X,
     +  F5.2,1X,F6.2,2X,A2,1X,A22,1X,I3)

C  Effective file loading

      open(unit=1,file='table2.dat', status='old')
      write(6,*) '....Loading file: table2.dat'
      do i__=1,2244
        read(1,'(A80)')ar__1
        read(ar__1,2)
     +  Entry(i__),RAh_1(i__),RAm_1(i__),RAs_1(i__),DE__1(i__),
     +  DEd_1(i__),DEm_1(i__),DEs_1(i__),mnuv(i__),n_mnuv(i__),
     +  e_mnuv(i__),mnuv_V(i__),Type(i__),Name(i__),Frame_1(i__)
        if(ar__1(30:35) .EQ. '') mnuv(i__) = rNULL__
        if(ar__1(38:42) .EQ. '') e_mnuv(i__) = rNULL__
        if(ar__1(44:49) .EQ. '') mnuv_V(i__) = rNULL__
c       Derive coordinates RA__1 and Dec_1 from input data
c       (RA__1 and Dec_1 are set to rNULL_ when unknown)
        RA__1(i__) = RAh_1(i__)
        if(RAh_1(i__) .GE. 0) RA__1(i__)=RAh_1(i__)*15.
        if(RAm_1(i__) .GE. 0) RA__1(i__)=RA__1(i__)+RAm_1(i__)/4.
        if(RAs_1(i__) .GE. 0) RA__1(i__)=RA__1(i__)+RAs_1(i__)/240.
        Dec_1(i__) = DEd_1(i__)
        if(DEm_1(i__) .GE. 0) Dec_1(i__)=Dec_1(i__)+DEm_1(i__)/60.
        if(DEs_1(i__) .GE. 0) Dec_1(i__)=Dec_1(i__)+DEs_1(i__)/3600.
        if(DE__1(i__).EQ.'-'.AND.Dec_1(i__).GE.0) Dec_1(i__)=-Dec_1(i__)
c    ..............Just test output...........
        write(6,2)
     +  Entry(i__),RAh_1(i__),RAm_1(i__),RAs_1(i__),DE__1(i__),
     +  DEd_1(i__),DEm_1(i__),DEs_1(i__),mnuv(i__),n_mnuv(i__),
     +  e_mnuv(i__),mnuv_V(i__),Type(i__),Name(i__),Frame_1(i__)
        write(6,'(6H Pos: 2F8.4)') RA__1(i__),Dec_1(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

C=============================================================================
      stop
      end