FORTRAN Generation
(/./ftp/cats/VI/69)

Conversion of standardized ReadMe file for file /./ftp/cats/VI/69 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.5, on 2013-May-23
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. VI/69               Atomic Spectral Line List    (Hirata+ 1995)
*================================================================================
*Atomic spectral line list
*    Hirata R., Horaguchi T.
*   <Department of Astronomy, Faculty of Science, Kyoto University, and
*    National Science Museum, 3-23-1 Hyakunin-cho, Shinjuku-ku, Tokyo>
C=============================================================================

C  Internal variables

      integer*4 i__

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

C  Declarations for 'catalog'	! The catalogue of Atomic Spectral Lines

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

      integer*4     ION         ! [101/9202] Ion number (e.g. 2602 for Fe II)
      real*8        lambda      ! (nm) Wavelength in nanometres (10Angstroems)
      character*1   n_lambda    ! [-+] Note on lambda:
*                                    '-'=vacuum wavelength               (1)
*                                    '+'=   air wavelength               (1)
      character*1   Hyb         ! [-#0-9] Hybridation as:
*                                    numerals: number of component       (2)
*                                    '#'     : composite line            (2)
*                                    '-'     : component for which       (2)
*                                              composite wavelength is
*                                              given elsewhere.
      character*4   r_lambda    ! Reference number for lambda
      character*1   Rem1        ! [FRSMWhi] Remark
*                                    'F'    : forbidden                  (3)
*                                    'R'    : forbidden,quadrupole       (3)
*                                    'S'    : standard wavelength        (3)
*                                    'M','W': secondary standard         (3)
*                                    'h'    : hyperfine structure detected
*                                             or hyperfine component
*                                    'i'    : isotope
      character*1   Rem2        ! [SFhi] Remark
*                                    'S'    : solar                      (3)
*                                    'F'    : flare                      (3)
*                                    'h'    : hyperfine structure detected
*                                             or hyperfine component
*                                    'i'    : isotope
      character*1   Rem3        ! [AN?] Remark
*                                    'A'    : upper state autoionizing   (3)
*                                    'N'    : unclassified               (3)
*                                    '?'    : line appeared in K000 or K002,
*                                             but is rejected from current
*                                             term analysis.
      character*1   Rem4        ! [AMNPQ?] Remark
*                                    'A'    : observed in absorption     (3)
*                                    'M'    : unclassified, uncertain    (3)
*                                             ionization
*                                    'N'    : unclassified               (3)
*                                    'P'    : predicted                  (3)
*                                    'Q'    : questionable or uncertain
*                                             classification             (3)
*                                    '?'    : same as in Rem3
      real*8        gf1         ! [/3]? Primary log gf value
      character*3   q_gf1       ! [ E?<L0-9] quality of gf1
*                                    numerals: 1,000 x error(dex)        (4)
*                                    '  E'   : error>50%                 (4)
*                                    '?  ' or '  ?': questionable        (5)
*                                    '  <'   : upper limit
*                                    '  L'   : our conversion from multiplet gf
*                                              into its components(LS coupling)
*                                    ' EL'   : combination of 'E' & 'L' above
      character*4   r_gf1       ! Reference number for gf1
      real*8        gf2         ! [/3]? Secondary log gf value
      character*3   q_gf2       ! [ E?<L0-9] Quality of gf2, the meaning
*                                    is same as in q_gf1
      character*4   r_gf2       ! Reference number for gf2
      character*6   Int1        ! Laboratory intensity 1                (6)
      character*4   r_Int1      ! Reference number for Int1
      character*6   Int2        ! Laboratory intensity 2                (6)
      character*4   r_Int2      ! Reference number for Int2
      character*4   r_class     ! Reference number for line classification
      character*7   Mult        ! Multiplet number                      (7)
      character*1   r_Mult      ! [=AKMNQCS] source of multiplet number
*                                    'M' : Moore(refs.0488 or 1015)
*                                    '=' : doubly defined in refs.0488 & 1015
*                                    'A' : Moore's new multiplet tables(C,N,O,Si)
*                                            or Adelman's table(Mn I & Co II)
*                                    'K' : Kelly(1983,=K001)
*                                    'N' : NBS gf-compilation(W001 etc.)
*                                    'Q' : our finding or our re-definition
*                                    other symbols: see section C of document
*                                          for individual ion
      real*8        E1          ! (cm-1) [0/1.1e7]? Lower energy level (cm^(-1))
      character*1   n_E1        ! [?A-Z] Note on E1:
*                                  alphabetic: unknown constant to be added to E1
*                                  '?'       : questionable E1
      integer*4     g1          ! [1/98]? Statistical weight
*                                    of lower energy level
      character*1   n_g1        ! [#?0-9] Remark on g1
*                                    numerals: number of levels concerned
*                                    '#' : "multiplet" g-value
*                                    '?' : questionable
      character*1   n_E1GA      ! [GA]  Remark on E1
*                                    'G' : ground level
*                                    'A' : level above the first ionization limit
      character*9   Term1       ! Lower term                            (8)
      character*4   r_E1        ! Reference number for E1
      real*8        E2          ! (cm-1) [1.e3/1.4e7]? Upper energy level (cm^(-1))
      character*1   n_E2        ! [A-Z?]
*                                  alphabetic: unknown constant to be added to E2
*                                  '?'       : questionable E2
      integer*4     g2          ! [1/98]? statistical weight
*                                    of upper energy level
      character*1   n_g2        ! [#?0-9] remark on g2, same as in n_g1
      character*1   n_E2GA      ! [GA] remark on E2, same as in n_E1GA
      character*9   Term2       ! Upper term                            (8)
      character*4   r_E2        ! reference number for E2
      real*4        gfKP        ! [/3]? log gf given by Kurucz(K000 or K002)
      real*8        lamKP       ! (nm) [0/99999]? original wavelength in K000 or K002
*Note (1): These are given only for 1999.3520A <= lambda < 2000.0000A.
*     Vacuum wavelength below 1999.3520A, air wavelength above 2000.0000A.
*Note (2): These are introduced, for example, for the mean wavelength
*     of the multiplet.
*Note (3): This terminology was introduced by Kelly(1983,=K001).
*Note (4): The accuracies in the NBS compilations(ref.W001,W002,W003,
*     Y001,F001,F002) are converted into 'symbolic' numerical values
*     (dex) as follows:
*                  '003'(AA+)  '004'(AA)  '005'(AA-)
*                  '012'( A+)  '013'( A)  '014'( A-)
*                  '03 '( B+)  '04 '( B)  '05 '( B-)
*                  '09 '( C+)  '10 '( C)  '11 '( C-)
*                  '17 '( D+)  '18 '( D)  '19 '( D-).
*Note (5): A question mark is introduced for the line in K002 whose
*     energy level value differs considerably from the current term
*     analysis. We re-calculated the wavelength, following the recent
*     interpretation, but the gf-value is kept unchanged.
*      Note that this mark is not introduced for K000. If lambda differs
*     from lamKP greatly, the gf value in K000 is also questionable.
*Note (6): The last column is usually used for the quality:
*           a    asymmetric
*           b    blend, double
*           c    complex
*           d    diffuse, broad
*           h    hazy
*           l    shaded towards longer wavelength
*           m    masked
*           n    nebulous
*           p    perturbed by close line
*           r    reversed
*           s    shaded towards shorter wavelength
*           w    wide
*           +    slightly larger than
*           -    slightly less than
*           >    greater than
*           ?    questionable
*           :    uncertain
*      All six columns may be occupied by the intensity value itself in
*     the case of wide range intensity scale.
*Note (7): The first column is usually 'U'(Moore's ultraviolet multiplet
*     tables=ref.0488) or 'V'(ref.1015). See section C for others.
*Note (8): We usually adopt Kelly's(1983,=K001) expression for the term
*     designations other than the LS coupling.

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

C  Declarations for 'refs'	! The references

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

      character*4   Refno       ! Reference number
*                                   numeric code: defined by Kelly(1987,=K003)
*                                   alphanumeric code: our definition
      integer*4     Year        ! (yr) [1914/1993] Published year
      character*142 Text        ! free format:
*                                   from 11- : authors
*                                   after *  : journal
*                                   after %  : contents
*                                   after #  : number of lines appearing
*                                              in the paper

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

C  Loading file 'catalog'	! The catalogue of Atomic Spectral Lines

C  Format for file interpretation

    1 format(
     +  I4,F10.4,A1,A1,A4,A1,A1,A1,A1,F7.4,A3,A4,F7.4,A3,A4,A6,A4,A6,
     +  A4,A4,A7,A1,F13.4,A1,I2,A1,A1,A9,A4,F13.4,A1,I2,A1,A1,A9,A4,
     +  F6.3,F9.3)

C  Effective file loading

      open(unit=1,file='catalog', status='old')
      write(6,*) '....Loading file: catalog'
      do i__=1,629771
        read(1,'(A161)')ar__
        read(ar__,1)
     +  ION,lambda,n_lambda,Hyb,r_lambda,Rem1,Rem2,Rem3,Rem4,gf1,
     +  q_gf1,r_gf1,gf2,q_gf2,r_gf2,Int1,r_Int1,Int2,r_Int2,r_class,
     +  Mult,r_Mult,E1,n_E1,g1,n_g1,n_E1GA,Term1,r_E1,E2,n_E2,g2,n_g2,
     +  n_E2GA,Term2,r_E2,gfKP,lamKP
        if(ar__(25:31) .EQ. '') gf1 = rNULL__
        if(ar__(39:45) .EQ. '') gf2 = rNULL__
        if(ar__(85:97) .EQ. '') E1 = rNULL__
        if(ar__(99:100) .EQ. '') g1 = iNULL__
        if(ar__(116:128) .EQ. '') E2 = rNULL__
        if(ar__(130:131) .EQ. '') g2 = iNULL__
        if(ar__(147:152) .EQ. '') gfKP = rNULL__
        if(ar__(153:161) .EQ. '') lamKP = rNULL__
c    ..............Just test output...........
        write(6,1)
     +  ION,lambda,n_lambda,Hyb,r_lambda,Rem1,Rem2,Rem3,Rem4,gf1,
     +  q_gf1,r_gf1,gf2,q_gf2,r_gf2,Int1,r_Int1,Int2,r_Int2,r_class,
     +  Mult,r_Mult,E1,n_E1,g1,n_g1,n_E1GA,Term1,r_E1,E2,n_E2,g2,n_g2,
     +  n_E2GA,Term2,r_E2,gfKP,lamKP
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'refs'	! The references

C  Format for file interpretation

    2 format(A4,1X,I4,1X,A142)

C  Effective file loading

      open(unit=1,file='refs', status='old')
      write(6,*) '....Loading file: refs'
      do i__=1,1799
        read(1,'(A152)')ar__1
        read(ar__1,2)Refno,Year,Text
c    ..............Just test output...........
        write(6,2)Refno,Year,Text
c    .......End.of.Just test output...........
      end do
      close(1)

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