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-25
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/other/Ap/44.88       FBS 11th list of late-type stars     (Gigoyan+, 2001)
*================================================================================
*First Byurakan Spectral Sky Survey. Stars of late spectral types.
*XI. Zone -7{deg}<{delta}<-3{deg}.
*    Gigoyan K.S., Abrahamyan H.V., Azzopardi M., Russeil D.
*   <Astrophysics, 44, 88 (2001)>
*   =2001Ap.....44...88G
C=============================================================================

C  Internal variables

      integer*4 i__

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

C  Declarations for 'table1.dat'	! List of the new M and C stars

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

      real*8        RA_        (nr__) ! (deg) Right Ascension J2000
      real*8        Dec        (nr__) ! (deg)     Declination J2000
      integer*4     Seq        (nr__) ! Sequential number
      character*8   FBS        (nr__) ! FBS designation
      character*1   m_FBS      (nr__) ! Multiplicity index on FBS
      character*1   n_FBS      (nr__) ! [*] *: note detailed in notes.dat file
      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 (J2000)
      integer*4     DEd        (nr__) ! (deg) Declination (J2000)
      integer*4     DEm        (nr__) ! (arcmin) Declination (J2000)
      integer*4     DEs        (nr__) ! (arcsec) Declination (J2000)
      character*6   SpType     (nr__) ! Spectral type
      real*4        Emag       (nr__) ! (mag) ? Palomar E (red) magnitude
      real*4        O_E        (nr__) ! (mag) ? O-E (blue-red) color index
      character*14  IRAS       (nr__) ! IRAS PSC (Cat. <II/125>) and FSC (Cat. <II/156>)
*                                identifications

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

C  Declarations for 'notes.dat'	! Individual notes

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

      character*8   FBS_1      (nr__1) ! FBS designation
      character*71  Note       (nr__1) ! Text of the note

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

C  Declarations for 'table1_a.dat'	! Additional position and cross-identifications (1)

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

      real*8        RA__1      (nr__2) ! (deg) Right Ascension J2000
      real*8        Dec_1      (nr__2) ! (deg)     Declination J2000
      integer*4     Seq_1      (nr__2) ! Sequential number, as in table1
      character*8   FBS_2      (nr__2) ! FBS designation, as in table1
      character*1   n_FBS_1    (nr__2) ! [*] indicates a note in file "notes-a.dat"
      integer*4     RAh_1      (nr__2) ! (h) ? Right ascension (J2000)
      integer*4     RAm_1      (nr__2) ! (min) ? Right ascension (J2000)
      real*4        RAs_1      (nr__2) ! (s) ? Right ascension (J2000)
      character*1   DE__1      (nr__2) ! ? Declination sign (J2000)
      integer*4     DEd_1      (nr__2) ! (deg) ? Declination (J2000)
      integer*4     DEm_1      (nr__2) ! (arcmin) ? Declination (J2000)
      real*4        DEs_1      (nr__2) ! (arcsec) ? Declination (J2000)
      character*1   r_DEs      (nr__2) ! [AGgMT] Source of position (1)
      character*9   GSC        (nr__2) ! GSC designation (Cat. <I/255>)
      character*11  IRAS_1     (nr__2) ! designation (Cat. <II/125> and <II/156>)
      character*5   SpType_1   (nr__2) ! Spectral type
      real*4        Emag_1     (nr__2) ! (mag) ? Palomar E (red) magnitude (2)
      real*4        O_E_1      (nr__2) ! (mag) ? O-E (blue-red) color index (2)
      real*4        Vmag       (nr__2) ! (mag) ? V magnitude from MkIII survey (II/230)
      real*4        V_I        (nr__2) ! (mag) ? V-I color from MkIII survey (II/230)
*Note (1): the symbols mean the following sources:
*    A  USNO-A2.0  (I/252)
*    G  GSC-ACT  (I/255)
*    g  GSC-2.2  (I/271)
*    M  2MASS second release  (B/2mass)
*    T  Tycho-2  (2000A&A...357..367H, Cat. <I/259>)
*Note (2): magnitudes and colors were determined using image diameters
*    on POSS-I prints.

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

C  Declarations for 'notes_a.dat'	! Additional notes (1)

      integer*4 nr__3
      parameter (nr__3=34)	! Number of records
      character*80 ar__3  	! Full-size record

      character*8   FBS_3      (nr__3) ! FBS designation
      character*71  Note_1     (nr__3) ! Text of the note

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

C  Loading file 'table1.dat'	! List of the new M and C stars

C  Format for file interpretation

    1 format(
     +  I2,1X,A8,A1,A1,1X,I2,1X,I2,1X,F4.1,1X,A1,I2,1X,I2,1X,I2,1X,A6,
     +  F4.1,1X,F3.1,1X,A14)

C  Effective file loading

      open(unit=1,file='table1.dat', status='old')
      write(6,*) '....Loading file: table1.dat'
      do i__=1,88
        read(1,'(A64)')ar__
        read(ar__,1)
     +  Seq(i__),FBS(i__),m_FBS(i__),n_FBS(i__),RAh(i__),RAm(i__),
     +  RAs(i__),DE_(i__),DEd(i__),DEm(i__),DEs(i__),SpType(i__),
     +  Emag(i__),O_E(i__),IRAS(i__)
        if(ar__(42:45) .EQ. '') Emag(i__) = rNULL__
        if(ar__(47:49) .EQ. '') O_E(i__) = rNULL__
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)
     +  Seq(i__),FBS(i__),m_FBS(i__),n_FBS(i__),RAh(i__),RAm(i__),
     +  RAs(i__),DE_(i__),DEd(i__),DEm(i__),DEs(i__),SpType(i__),
     +  Emag(i__),O_E(i__),IRAS(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 'notes.dat'	! Individual notes

C  Format for file interpretation

    2 format(A8,1X,A71)

C  Effective file loading

      open(unit=1,file='notes.dat', status='old')
      write(6,*) '....Loading file: notes.dat'
      do i__=1,18
        read(1,'(A80)')ar__1
        read(ar__1,2)FBS_1(i__),Note(i__)
c    ..............Just test output...........
        write(6,2)FBS_1(i__),Note(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'table1_a.dat'	! Additional position and cross-identifications (1)

C  Format for file interpretation

    3 format(
     +  I3,2X,A8,A1,2X,I2,1X,I2,1X,F5.2,1X,A1,I2,1X,I2,1X,F4.1,1X,A1,
     +  1X,A9,1X,A11,1X,A5,1X,F4.1,1X,F3.1,2X,F4.1,1X,F3.1)

C  Effective file loading

      open(unit=1,file='table1_a.dat', status='old')
      write(6,*) '....Loading file: table1_a.dat'
      do i__=1,88
        read(1,'(A88)')ar__2
        read(ar__2,3)
     +  Seq_1(i__),FBS_2(i__),n_FBS_1(i__),RAh_1(i__),RAm_1(i__),
     +  RAs_1(i__),DE__1(i__),DEd_1(i__),DEm_1(i__),DEs_1(i__),
     +  r_DEs(i__),GSC(i__),IRAS_1(i__),SpType_1(i__),Emag_1(i__),
     +  O_E_1(i__),Vmag(i__),V_I(i__)
        if(ar__2(17:18) .EQ. '') RAh_1(i__) = iNULL__
        if(ar__2(20:21) .EQ. '') RAm_1(i__) = iNULL__
        if(ar__2(23:27) .EQ. '') RAs_1(i__) = rNULL__
        if(ar__2(30:31) .EQ. '') DEd_1(i__) = iNULL__
        if(ar__2(33:34) .EQ. '') DEm_1(i__) = iNULL__
        if(ar__2(36:39) .EQ. '') DEs_1(i__) = rNULL__
        if(ar__2(71:74) .EQ. '') Emag_1(i__) = rNULL__
        if(ar__2(76:78) .EQ. '') O_E_1(i__) = rNULL__
        if(ar__2(81:84) .EQ. '') Vmag(i__) = rNULL__
        if(ar__2(86:88) .EQ. '') V_I(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,3)
     +  Seq_1(i__),FBS_2(i__),n_FBS_1(i__),RAh_1(i__),RAm_1(i__),
     +  RAs_1(i__),DE__1(i__),DEd_1(i__),DEm_1(i__),DEs_1(i__),
     +  r_DEs(i__),GSC(i__),IRAS_1(i__),SpType_1(i__),Emag_1(i__),
     +  O_E_1(i__),Vmag(i__),V_I(i__)
        write(6,'(6H Pos: 2F8.4)') RA__1(i__),Dec_1(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'notes_a.dat'	! Additional notes (1)

C  Format for file interpretation

    4 format(A8,1X,A71)

C  Effective file loading

      open(unit=1,file='notes_a.dat', status='old')
      write(6,*) '....Loading file: notes_a.dat'
      do i__=1,34
        read(1,'(A80)')ar__3
        read(ar__3,4)FBS_3(i__),Note_1(i__)
c    ..............Just test output...........
        write(6,4)FBS_3(i__),Note_1(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

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