FORTRAN Generation
(/./ftp/cats/I/113A)

Conversion of standardized ReadMe file for file /./ftp/cats/I/113A 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 2024-Apr-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__=--2147483648.)  	! NULL real number
      parameter  (iNULL__=(-2147483647-1))	! NULL int  number
      integer    idig			! testing NULL number

C=============================================================================
Cat. I/113A              General Catalogue of 33342 stars  (GC)  (Boss 1937)
*================================================================================
*General Catalogue of 33342 stars (Version 1985)
*     BOSS B.
*    <Carnegie Inst. of Wash. Publ. 468 (1937)>
*    =1937GC....C......0B
C=============================================================================

C  Internal variables

      integer*4 i__

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

C  Declarations for 'catalog.dat'	! The General Catalogue

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

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

      integer*4     GC          ! [1/33342]+ Boss General Catalog (GC) number
      integer*4     Vmag        ! (0.01mag) []?=9999 Visual magnitude, '9999'
*                                    indicates variability (1)
      character*4   SpType      ! Spectral type
      integer*4     RAh         ! (h) Hours RA, equinox 1950.0, epoch 1950.0
      integer*4     RAm         ! (min) Minutes RA, equinox 1950.0, epoch 1950.0
      real*4        RAs         ! (s) Seconds RA, equinox 1950.0, epoch 1950.0
      real*4        EpRA        ! (a) Mean epoch of RA observations (4)
      real*8        AvarRA      ! (s/a) Annual variation of precession in RA (3)
      real*8        SvarRA      ! (0.1ms/a2) Secular variation in precession in RA (3)
      real*8        Term3RA     ! (us/a3) Third term in precession in RA (3)
      real*4        pmRA        ! (s/a) Proper motion in RA
      character*1   DE_         ! Sign Dec, equinox 1950.0
      integer*4     DEd         ! (deg) Degrees Dec, equinox 1950.0, epoch 1950.0
      integer*4     DEm         ! (arcmin) Minutes Dec, equinox 1950.0, epoch 1950.0
      real*4        DEs         ! (arcsec) Seconds Dec, equinox 1950.0, epoch 1950.0
      real*4        EpDE        ! (a) Mean epoch of DE observations (4)
      real*8        AvarDE      ! (arcsec/a) Annual variation of precession in DE  (3)
      real*8        SvarDE      ! (0.1mas/a2) Secular variation in precession in DE (3)
      real*8        Term3DE     ! (uarcsec/a3) Third term in precession in DE (3)
      real*4        pmDE        ! (arcsec/a) Proper motion in Dec
      character*1   Remark      ! [0-9+-] Coded remarks (2)
      character*13  DM          ! Durchmusterung designation:
*                                    catalog in bytes 101-102: 'BD', 'CD', 'CP'
*                                    catalog number in bytes 103-110: SZZNNNNN
*                                    component identification in bytes 111-112
*                                    BD supplement letter in byte 113
      real*8        GLON        ! (deg) Galactic longitude
      real*8        GLAT        ! (deg) Galactic latitude
      integer*4     HD          ! [1/359083]? Henry Draper Catalog (HD) number
      integer*4     m_HD        ! [0/9]? HD component/multiple code (5)
      real*4        e_RA        ! (arcsec) Probable error in RA at epoch
      real*4        e_pmRA      ! (10mas/a) Probable error in RA proper motion
      real*4        e_DE        ! (arcsec) Probable error in DE at epoch
      real*4        e_pmDE      ! (10mas/a) Probable error in DE proper motion
*Note (1): All magnitudes are given to two decimal places in the
*    computer-readable version. Magnitudes underlined in the published
*    version of the catalog are not indicated on the computer-readable
*    version.
*Note (2): Remarks are defined as follows:
*     0 = No remark given
*     1 = Spectrum given
*     2 = Aitken or Innes number given
*     3 = Aitken or Innes number given with each component having
*         a separate GC number
*     4 = Other information given
*     5 = 1+2
*     6 = 1+3
*     7 = 1+4
*     8 = 2+4
*     9 = 3+4
*     - = 1+2+4
*     + = 1+3+4
*Note (3): The number of decimals can be smaller for positions
*    close to one of the poles (see document)
*Note (4): The first two digits of the year are omitted.
*    Thus 98.8 should be read 1898.8 and 05.3 should be read 1905.3.
*Note (5): The HD component code takes the following values:
*    0 for single stars or brighter components of doubles with
*          difference in visual magnitude > 0.3mag.
*    1 designates the brighter component, not necessarily A, for
*          doubles with difference in visual magnitude <= 0.3mag
*    2 designates the fainter component, not necessarily B, for
*          doubles with difference in visual magnitude <= 0.3mag
*    9 indicates that two successive HD numbers (HD and HD+1) refer
*          to the same SAO star.

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

C  Declarations for 'changes.dat'	! Modifications History

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

      integer*4     GC_1        ! Boss General Catalog (GC) number
      character*6   Field       ! Field Changed
      character*8   Printed     ! Old Value
      character*13  New         ! Current Value

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

C  Loading file 'catalog.dat'	! The General Catalogue

C  Format for file interpretation

    1 format(
     +  I5,1X,I4,1X,A4,I2,I2,F6.3,F4.1,F7.4,F8.4,F8.3,F6.4,A1,I2,I2,
     +  F5.2,F4.1,F7.3,F7.3,F7.2,F6.3,A1,A13,F7.3,F7.3,I6,I1,F4.3,
     +  F4.2,F4.3,F4.2)

C  Effective file loading

      open(unit=1,status='old',file=
     +'catalog.dat')
      write(6,*) '....Loading file: catalog.dat'
      do i__=1,33342
        read(1,'(A150)')ar__
        read(ar__,1)
     +  GC,Vmag,SpType,RAh,RAm,RAs,EpRA,AvarRA,SvarRA,Term3RA,pmRA,
     +  DE_,DEd,DEm,DEs,EpDE,AvarDE,SvarDE,Term3DE,pmDE,Remark,DM,
     +  GLON,GLAT,HD,m_HD,e_RA,e_pmRA,e_DE,e_pmDE
        if(ar__(128:133) .EQ. '') HD = iNULL__
        if(ar__(134:134) .EQ. '') m_HD = iNULL__
        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)
     +  GC,Vmag,SpType,RAh,RAm,RAs,EpRA,AvarRA,SvarRA,Term3RA,pmRA,
     +  DE_,DEd,DEm,DEs,EpDE,AvarDE,SvarDE,Term3DE,pmDE,Remark,DM,
     +  GLON,GLAT,HD,m_HD,e_RA,e_pmRA,e_DE,e_pmDE
        write(6,'(6H Pos: 2F8.4)') RAdeg,DEdeg
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'changes.dat'	! Modifications History

C  Format for file interpretation

    2 format(1X,I5,3X,A6,2X,A8,3X,A13)

C  Effective file loading

      open(unit=1,status='old',file=
     +'changes.dat')
      write(6,*) '....Loading file: changes.dat'
      do i__=1,1186
        read(1,'(A41)')ar__1
        read(ar__1,2)GC_1,Field,Printed,New
c    ..............Just test output...........
        write(6,2)GC_1,Field,Printed,New
c    .......End.of.Just test output...........
      end do
      close(1)

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