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