FORTRAN Generation
(/./ftp/cats/VII/298)

Conversion of standardized ReadMe file for file /./ftp/cats/VII/298 into FORTRAN code for reading data files line by line.

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 2026-Jul-13
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. VII/298            QUAC. QUasar Atlas and Catalogue      (QUAC coll., 2002-2014)
*================================================================================
*QUAC: QUasar Atlas and Catalogue.
*   QUAC collaboration
*   https://www.vialattea.net, 2002-2014
*   =2025yCat.7298....0Q
C=============================================================================

C  Internal variables

      integer*4 i__

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

C  Declarations for 'catalog.dat'	! QUasar Atlas and Catalogue (QUAC)

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

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

      character*17  Type        ! Type of the object (1)
      character*42  Name        ! First name
      integer*4     RAh         ! (h) Right ascension (J2000)
      integer*4     RAm         ! (min) Right ascension (J2000)
      real*8        RAs         ! (s) [0/60] Right ascension (J2000)
      character*1   DE_         ! Declination sign (J2000)
      integer*4     DEd         ! (deg) Declination (J2000)
      integer*4     DEm         ! (arcmin) Declination (J2000)
      real*8        DEs         ! (arcsec) [0/60] Declination (J2000)
      character*1   l_z         ! Limit flag on z
      real*4        z           ! ? Redshift
      character*1   n_z         ! [a] Note on redshift (2)
      character*1   Band        ! Band if not V
      character*1   l_Vmag      ! Limit falg on Vmag
      real*8        Vmag        ! (mag) ? Magnitude, usually in V, or in Band  (3)
      character*1   l_B_V       ! Limit flag on B-V
      real*4        B_V         ! (mag) ? B-V colour index
      character*1   l_U_B       ! Limit flag on U-B
      real*4        U_B         ! (mag) ? U-B colour index
      character*856 Names       ! Names mainly known to identify the
*                                    objects (4)
      character*649 Ref         ! References to other known publications where
*                                    it is possible to get an identification
*                                    map (5)
*Note (1): See definitions in class.dat file.
*Note (2): Note as follows:
*          a = (0.5-1.5)
*Note (3): magnitude, usually in the V range unless otherwise indicated.
*  The "O" magnitude is that measured on the "O" plates of the Palomar
*  Observatory Sky Survey (POSS) or obtained from the USNO-A2 or APM Catalogues
*  and is related to the B of the Johnson and Morgan system by the following
*  relationship: B-O = -(0.27+/-0.06)(B-V) and must therefore be considered with
*  care both due to its low intrinsic precision and the variability inherent in
*  many quasars. The "r", "i" and "z" magnitudes are provisionally deduced from
*  the corresponding bands in the SDSS survey, while those represented with AB
*  refer to measurements made at 1450 (1+z) m. For the "cQ" and "bQc" objects
*  the magnitudes are sometimes expressed in the "i" band - the symbol of which
*  is not always indicated.
*Note (4): Names by which the object is best known from the various catalogs.
*  Where catalog abbreviations are followed by coordinates, these are reported
*  only once to avoid cluttering the column, also considering that the
*  coordinates themselves are often provided with different precisions and
*  styles depending on the publications in which they appear.
*
*  For the meanings of the various acronyms and abbreviations, see acro.dat file.
*  In the case of "cQ" and "bQc," only the relevant catalog number or reference
*  to the respective survey has been included. In this regard, please note that
*  the "cQ" and "bQc" have been included anyway, even if their coordinates,
*  in many cases, correspond to those of objects already included previously.
*  In these cases, a progressive consolidation is underway.
*
*  The same applies to objects included in the LQAC, LQRF, and APK catalogs.
*  Since the existing catalogs were compiled at very different times and with
*  technologies of varying precision in multiple spectral regions, we opted
*  - in identifying the various acronyms - for an error radius of 10" which
*  represents a good compromise for both the old catalogs and the first space
*  surveys (IR, UV, X-ray, Gamma); this means that, especially for the latter,
*  correspondences should be treated with caution.
*Note (5): The acronym QUAC means that the finding chart of the object is
*  available in the Atlas section.

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

C  Declarations for 'class.dat'	! Type definitions

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

      character*14  Type_1      ! Type of the object
      character*135 Def         ! Type definition (1)
*Note (1): R is the ratio of the total Hbeta to the |OIII| 5007 fluxes

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

C  Declarations for 'acro.dat'	! Acromym definitions

      integer*4 nr__2
      parameter (nr__2=772)	! Number of records
      character*294 ar__2  	! Full-size record

      character*27  Accro       ! Acronym
      character*81  Full        ! Full denomination
      character*9   Band_1      ! Band (1)
      character*35  Type_2      ! Object type
      character*138 Refs        ! References
*Note (1): Band as:
*           Rd        = radio
*           IR (or I) = infrared
*           R         = red
*           V         = visual
*           B         = blue
*           UV (or U) = ultraviolet
*           X         = X-ray

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

C  Loading file 'catalog.dat'	! QUasar Atlas and Catalogue (QUAC)

C  Format for file interpretation

    1 format(
     +  A17,1X,A42,1X,I2,1X,I2,1X,F9.6,1X,A1,I2,1X,I2,1X,F7.3,1X,A1,
     +  E9.5,1X,A1,1X,A1,A1,F9.6,2X,A1,F6.3,1X,A1,F5.2,1X,A856,1X,A649)

C  Effective file loading

      open(unit=1,status='old',file=
     +'catalog.dat')
      write(6,*) '....Loading file: catalog.dat'
      do i__=1,3630588
        read(1,'(A1639)')ar__
        read(ar__,1)
     +  Type,Name,RAh,RAm,RAs,DE_,DEd,DEm,DEs,l_z,z,n_z,Band,l_Vmag,
     +  Vmag,l_B_V,B_V,l_U_B,U_B,Names,Ref
        if(ar__(94:102) .EQ. '') z = rNULL__
        if(ar__(108:116) .EQ. '') Vmag = rNULL__
        if(ar__(120:125) .EQ. '') B_V = rNULL__
        if(ar__(128:132) .EQ. '') U_B = rNULL__
        RAdeg = rNULL__
        DEdeg = rNULL__
c  Derive coordinates RAdeg and DEdeg from input data
c  (RAdeg and DEdeg are set to rNULL__ when unknown)
        if(RAh .GT. -180) RAdeg=RAh*15.
        if(RAm .GT. -180) RAdeg=RAdeg+RAm/4.
        if(RAs .GT. -180) RAdeg=RAdeg+RAs/240.
        if(DEd .GE. 0) DEdeg=DEd
        if(DEm .GE. 0) DEdeg=DEdeg+DEm/60.
        if(DEs .GE. 0) DEdeg=DEdeg+DEs/3600.
        if(DE_.EQ.'-'.AND.DEdeg.GE.0) DEdeg=-DEdeg
c    ..............Just test output...........
        write(6,1)
     +  Type,Name,RAh,RAm,RAs,DE_,DEd,DEm,DEs,l_z,z,n_z,Band,l_Vmag,
     +  Vmag,l_B_V,B_V,l_U_B,U_B,Names,Ref
        write(6,'(6H Pos: 2F8.4)') RAdeg,DEdeg
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'class.dat'	! Type definitions

C  Format for file interpretation

    2 format(A14,1X,A135)

C  Effective file loading

      open(unit=1,status='old',file=
     +'class.dat')
      write(6,*) '....Loading file: class.dat'
      do i__=1,48
        read(1,'(A150)')ar__1
        read(ar__1,2)Type_1,Def
c    ..............Just test output...........
        write(6,2)Type_1,Def
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'acro.dat'	! Acromym definitions

C  Format for file interpretation

    3 format(A27,1X,A81,1X,A9,1X,A35,1X,A138)

C  Effective file loading

      open(unit=1,status='old',file=
     +'acro.dat')
      write(6,*) '....Loading file: acro.dat'
      do i__=1,772
        read(1,'(A294)')ar__2
        read(ar__2,3)Accro,Full,Band_1,Type_2,Refs
c    ..............Just test output...........
        write(6,3)Accro,Full,Band_1,Type_2,Refs
c    .......End.of.Just test output...........
      end do
      close(1)

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