FORTRAN Generation
(/./ftp/cats/VIII/3)

Conversion of standardized ReadMe file for file /./ftp/cats/VIII/3 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.81 (2015-09-23), on 2024-Apr-18
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__=--2147483648.)  	! NULL real number
      parameter  (iNULL__=(-2147483647-1))	! NULL int  number
      integer    idig			! testing NULL number

C=============================================================================
Cat. VIII/3      An Optical Catalogue of Radio Galaxies       (Burbidge+ 1979)
*================================================================================
*An Optical Catalogue of Radio Galaxies
*    Burbidge G., Crowne A.H.
*   <Astrophys. Journ. Suppl. 40, 583 (1979)>
*   =1979ApJS...40..583B
C=============================================================================

C  Internal variables

      integer*4 i__

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

C  Declarations for 'catalog.dat'	! Radio sources identified with optical galaxies

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

C  1950 position composed of: RAh RAm RAs DE- DEd DEm DEs
      real*8        RAdeg      (nr__) ! (deg) Right Ascension 1950
      real*8        DEdeg      (nr__) ! (deg)     Declination 1950
C  ---------------------------------- ! (position vector(s) in degrees)

      integer*4     RAh        (nr__) ! (h) Right Ascension 1950 (hours)
      integer*4     RAm        (nr__) ! (min) Right Ascension 1950 (minutes)
      real*4        RAs        (nr__) ! (s) ? Right Ascension 1950 (seconds)
      integer*4     q_RAs      (nr__) ! *Precision indicator of the right ascension
      character*1   DE_        (nr__) ! Declination 1950 (sign)
      integer*4     DEd        (nr__) ! (deg) Declination 1950 (degrees)
      integer*4     DEm        (nr__) ! (arcmin) ? Declination 1950 (minutes)
      real*4        DEs        (nr__) ! (arcsec) ? Declination 1950 (seconds)
      integer*4     q_DEs      (nr__) ! *Precision indicator of declination
      integer*4     refID      (nr__) ! ?Reference identification number (file "refs")
      character*1   EqPos      (nr__) ! *[ R] Code for equatorial position
      integer*4     FCRnum     (nr__) ! ? Finder chart reference number (file "refs")
      character*4   OptType    (nr__) ! *Optical type code
      character*2   Rdesc      (nr__) ! *Radio description
      real*4        Vmag       (nr__) ! (mag) *? Visual magnitude.
      real*4        B_V        (nr__) ! (mag) ? Photoelectric colors if available
      real*4        U_B        (nr__) ! (mag) ? Photoelectric colors if available
      integer*4     r_Vmag     (nr__) ! ? Reference for photometric data (file "refs")
      real*4        Z          (nr__) ! *Redshift.
      character*1   n_Z        (nr__) ! *[CQ ] Redshift (cf. bytes 63-68) qualifier
      character*2   LineType   (nr__) ! *Spectral lines type
      character*8   Name       (nr__) ! *Coordinate designation
      integer*4     r_Z        (nr__) ! Redshift (z) reference number (file "refs")
      real*8        S_freq     (nr__) ! (Jy) ?Radio flux at frequency given in bytes 93-96.
      integer*4     freq       (nr__) ! (MHz) ?Frequency in MHz (408 for most entries)
      integer*4     r_S_freq   (nr__) ! ?Reference for radio flux (cf. bytes 85-91)
      real*4        Sp_Index   (nr__) ! *? Radio spectral index between 408 & 1400 MHz
      integer*4     r_Sp_Index (nr__) ! ? Reference for spectral index (file "refs")
      integer*4     MapRef     (nr__) ! ? Primary reference for radio map number
      character*1   SIcode     (nr__) ! *[AB ] Code for spectral index range.
      integer*4     SpNum      (nr__) ! *Number of spectral lines
      character*40  Lines      (nr__) ! *List of 20 coded spectral lines.
      integer*4     NumRef     (nr__) ! Number of additional references.
      character*60  Arefs      (nr__) ! *Additional references
      character*50  Alias      (nr__) ! *Other names
      integer*4     Seq        (nr__) ! [1,495] Sequential counter.
*Note on q_RAs:
*    Precision indicator of the right ascension; the right ascension is
*    given as HH MM SS.ss with eight possible significant digits. The
*    precision indicator identifies how many of these eight digits are
*    given as blank (i.e. not known) and so may vary between zero and
*    eight.
*Note on q_DEs:
*    Precision indicator of declination: the declination is given as DD MM
*    SS.S with seven possible significant digits. The precision indicator
*    identifies how many of these seven digits are given as blank (i.e. not
*    known) and so may vary between zero and seven.
*Note on EqPos:
*    Code for equatorial position:
*    blank = optical position given taken primarily from papers reporting
*            the redshift and identification papers.
*        R = radio position given ("*" in published catalogue).
*Note on OptType:
*    Optical type code - left justified in field. The type codes and their
*    statistics are given in "Table A-2" section below. All types and
*    cluster information (cf. bytes 38-39) is drawn from either the
*    identification reference (cf. bytes 25-27) or the redshift reference
*    (cf. bytes 81-83).
*Note on Rdesc:
*    Radio description which is no longer used. If these bytes are not
*    blank then given object is in a cluster. The radio description codes
*    and their statistics are given in "Table A-3" section below.
*Note on Vmag:
*    Visual magnitude. These values are very uncertain since very few
*    photometric measurements have been made.
*Note on Z:
*    Redshift. Most of the redshifts listed are uncorrected for galactic
*    rotation.
*Note on n_Z:
*    Redshift (cf. bytes 63-68) qualifier:
*    blank - if the value of the redshift (z) is not corrected for galactic
*            rotation.
*    "C" - if z is corrected ("*" in published catalogue)
*    "Q" - if unknown if z has been corrected ("?" in published catalogue).
*Note on LineType:
*    Spectral lines type:
*    "A" - if absorption lines.
*    "E" - if emission lines.
*    "AE"- if absorption and emission.
*    Where no spectral-line lists have been published but mention has been
*    made of the appearance of absorption or emission, it is noted with an "A"
*    or "E" in these bytes.
*Note on Name:
*    Coordinate designation given as HHMMSDDX based on equatorial coordinates
*    at epoch B1950.0 where:
*    HH = hours of right ascension
*    MM = minutes of right ascension
*    S  = sign of the declination
*    DDX= declination (unit=0.1deg)
*Note on Sp-Index:
*    Radio spectral index between 408 and 1400 MHz. The spectral index
*    alpha is defined by
*          S(nu) = K.  nu**(-alpha)
*    In the published catalogue the symbol ">" following the value of the
*    spectral index indicates a range between 408 and 5000 MHz and the
*    symbol "<" indicates a range between 178 and 408 MHz. No attempt has
*    been made to extrapolate where fluxes have been given at other
*    frequencies (cf. byte 115).
*Note on SIcode:
*    Code for spectral index range. This code is for the symbols ">" and
*    "<" as defined above in bytes 102-106. The ">" is coded as an "A" and
*    the "<" is coded as a "B". This byte is blank if other than these two
*    spectral indices. See the file "refs".
*Note on SpNum:
*    Number of spectral lines used in the computation of the value of the
*    redshift. This number ranges from 0 to 20.
*Note on Lines:
*    List of 20 coded spectral lines.
*    The coded values range from 01 to OR and are defined in
*    "Table A-4" section below. The N (cf. bytes 116-117) coded values are
*    at the beginning of this field and the remaining bytes are blank.
*Note on Arefs:
*    Additional references are five characters each where the first three
*    represent the reference number (file "refs") and the two letter code
*    for the type of reference as follows:
*    ID - identification
*    FC - finder chart
*    Z  - redshift
*    S  - radio flux (S)
*    SI - radio spectral index (SI)
*    M  - radio map
*Note on Alias:
*    Other names - maximum of seven names separated by commas with no
*    embedded blanks. "Table A-1" section below gives the codes used in
*    these fields along with their full reference to the published
*    literature.

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

C  Declarations for 'refs.dat'	! References in numeric order

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

      integer*4     RefNum     (nr__1) ! *Reference number
      character*125 Text       (nr__1) ! *Text of References
*Note on RefNum:
*    Reference number which ranges from 1-414 but only 412 references.
*Note on Text:
*    References in format usually found in the astronomical literature.

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

C  Loading file 'catalog.dat'	! Radio sources identified with optical galaxies

C  Format for file interpretation

    1 format(
     +  I2,1X,I2,1X,F5.2,I1,A1,I2,1X,I2,1X,F4.1,I1,I3,A1,I3,1X,A4,1X,
     +  A2,1X,F5.2,1X,F5.2,1X,F5.2,1X,I3,1X,F6.4,A1,A2,1X,A8,I3,1X,
     +  F7.2,1X,I4,1X,I3,1X,F5.2,1X,I3,1X,I3,A1,I2,A40,I2,A60,A50,I3)

C  Effective file loading

      open(unit=1,status='old',file=
     +'catalog.dat')
      write(6,*) '....Loading file: catalog.dat'
      do i__=1,495
        read(1,'(A272)')ar__
        read(ar__,1)
     +  RAh(i__),RAm(i__),RAs(i__),q_RAs(i__),DE_(i__),DEd(i__),
     +  DEm(i__),DEs(i__),q_DEs(i__),refID(i__),EqPos(i__),
     +  FCRnum(i__),OptType(i__),Rdesc(i__),Vmag(i__),B_V(i__),
     +  U_B(i__),r_Vmag(i__),Z(i__),n_Z(i__),LineType(i__),Name(i__),
     +  r_Z(i__),S_freq(i__),freq(i__),r_S_freq(i__),Sp_Index(i__),
     +  r_Sp_Index(i__),MapRef(i__),SIcode(i__),SpNum(i__),Lines(i__),
     +  NumRef(i__),Arefs(i__),Alias(i__),Seq(i__)
        if(ar__(7:11) .EQ. '') RAs(i__) = rNULL__
        if(ar__(17:18) .EQ. '') DEm(i__) = iNULL__
        if(ar__(20:23) .EQ. '') DEs(i__) = rNULL__
        if(ar__(25:27) .EQ. '') refID(i__) = iNULL__
        if(ar__(29:31) .EQ. '') FCRnum(i__) = iNULL__
        if(ar__(41:45) .EQ. '') Vmag(i__) = rNULL__
        if(ar__(47:51) .EQ. '') B_V(i__) = rNULL__
        if(ar__(53:57) .EQ. '') U_B(i__) = rNULL__
        if(ar__(59:61) .EQ. '') r_Vmag(i__) = iNULL__
        if(ar__(85:91) .EQ. '') S_freq(i__) = rNULL__
        if(ar__(93:96) .EQ. '') freq(i__) = iNULL__
        if(ar__(98:100) .EQ. '') r_S_freq(i__) = iNULL__
        if(ar__(102:106) .EQ. '') Sp_Index(i__) = rNULL__
        if(ar__(108:110) .EQ. '') r_Sp_Index(i__) = iNULL__
        if(ar__(112:114) .EQ. '') MapRef(i__) = iNULL__
        RAdeg(i__) = rNULL__
        DEdeg(i__) = rNULL__
c  Derive coordinates RAdeg and DEdeg from input data
c  (RAdeg and DEdeg are set to rNULL__ when unknown)
        if(RAh(i__) .GT. -180) RAdeg(i__)=RAh(i__)*15.
        if(RAm(i__) .GT. -180) RAdeg(i__)=RAdeg(i__)+RAm(i__)/4.
        if(RAs(i__) .GT. -180) RAdeg(i__)=RAdeg(i__)+RAs(i__)/240.
        if(DEd(i__) .GE. 0) DEdeg(i__)=DEd(i__)
        if(DEm(i__) .GE. 0) DEdeg(i__)=DEdeg(i__)+DEm(i__)/60.
        if(DEs(i__) .GE. 0) DEdeg(i__)=DEdeg(i__)+DEs(i__)/3600.
        if(DE_(i__).EQ.'-'.AND.DEdeg(i__).GE.0) DEdeg(i__)=-DEdeg(i__)
c    ..............Just test output...........
        write(6,1)
     +  RAh(i__),RAm(i__),RAs(i__),q_RAs(i__),DE_(i__),DEd(i__),
     +  DEm(i__),DEs(i__),q_DEs(i__),refID(i__),EqPos(i__),
     +  FCRnum(i__),OptType(i__),Rdesc(i__),Vmag(i__),B_V(i__),
     +  U_B(i__),r_Vmag(i__),Z(i__),n_Z(i__),LineType(i__),Name(i__),
     +  r_Z(i__),S_freq(i__),freq(i__),r_S_freq(i__),Sp_Index(i__),
     +  r_Sp_Index(i__),MapRef(i__),SIcode(i__),SpNum(i__),Lines(i__),
     +  NumRef(i__),Arefs(i__),Alias(i__),Seq(i__)
        write(6,'(6H Pos: 2F8.4)') RAdeg(i__),DEdeg(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'refs.dat'	! References in numeric order

C  Format for file interpretation

    2 format(I3,2X,A125)

C  Effective file loading

      open(unit=1,status='old',file=
     +'refs.dat')
      write(6,*) '....Loading file: refs.dat'
      do i__=1,412
        read(1,'(A130)')ar__1
        read(ar__1,2)RefNum(i__),Text(i__)
c    ..............Just test output...........
        write(6,2)RefNum(i__),Text(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

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