Conversion of standardized ReadMe file for
file /./ftp/cats/III/148A 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.81 (2015-09-23), on 2026-Jun-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. III/148A Interstellar lines catalogue (Garcia 1991)
*================================================================================
*The Interstellar Lines Catalogue
* Garcia B.
* <Astron. Astrophys. Suppl. Ser. 89, 469 (1991)>
* =1991A&AS...89..469G
C=============================================================================
C Internal variables
integer*4 i__
c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C Declarations for 'table1.dat' ! The Catalogue
integer*4 nr__
parameter (nr__=9917) ! Number of records
character*136 ar__ ! Full-size record
C 1950 position composed of: RAh RAm RAs DE- DEd DEm DEs
real*8 RAdeg (nr__) ! (deg) Right Ascension 1950
real*8 DEdeg (nr__) ! (deg) Declination 1950
C ---------------------------------- ! (position vector(s) in degrees)
character*13 Identif (nr__) ! Designation of the star
* (BD/CD/CPD/HD/HDE/ADS/Name)
integer*4 RAh (nr__) ! (h) ? Right Ascension 1950 (hours) (1)
integer*4 RAm (nr__) ! (min) ? Right Ascension 1950 (minutes) (1)
real*4 RAs (nr__) ! (s) ? Right Ascension 1950 (seconds) (1)
character*1 n_RAs (nr__) ! [*] '*' if original position given
* in 0.1min
character*1 DE_ (nr__) ! Declination 1950 (sign) (1)
integer*4 DEd (nr__) ! (deg) ? Declination 1950 (degrees) (1)
integer*4 DEm (nr__) ! (arcmin) ? Declination 1950 (minutes) (1)
real*4 DEs (nr__) ! (arcsec) ? Declination 1950 (seconds) (1)
character*1 n_DEs (nr__) ! [*] '*' if original declination
* given in 0.1arcmin
real*4 Vmag (nr__) ! (mag) ? V Magnitude
character*1 u_Vmag (nr__) ! Uncertainty flag (:) on Vmag
character*12 Sp (nr__) ! Spectral type
character*5 Ref (nr__) ! [0-9.] References (see table2a and table4)
character*19 Line (nr__) ! Interstellar line measured and type
* of measure (2)
character*14 Diffuse (nr__) ! Interstellar diffuse band observed
character*1 l_W_K (nr__) ! Limit flag on W(K)
real*4 W_K (nr__) ! (0.1nm) ? Equivalent width of CaII K-line
character*1 u_W_K (nr__) ! Uncertainty flag (:) on W(K)
character*1 l_W_H (nr__) ! Limit flag on W(H)
real*4 W_H (nr__) ! (0.1nm) ? Equivalent width of CaII H-line
character*1 u_W_H (nr__) ! Uncertainty flag (:) on W(H)
character*1 l_W_D2 (nr__) ! Limit flag on W(D2)
real*4 W_D2 (nr__) ! (0.1nm) ? Equivalent width of NaI D2-line
character*1 u_W_D2 (nr__) ! Uncertainty flag (:) on W(D2)
character*1 l_W_D1 (nr__) ! Limit flag on W(D1)
real*4 W_D1 (nr__) ! (0.1nm) ? Equivalent width of NaI D1-line
character*1 u_W_D1 (nr__) ! Uncertainty flag (:) on W(D1)
*Note (1): a few objects have no position.
*Note (2): type of measure indicated by
* 'v' = radial velocity
* 'w' = equivalent width
* 'i' = intensity
* 'n' = column density
c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C Declarations for 'table2a.dat' ! Observations (references): main characteristics
integer*4 nr__1
parameter (nr__1=659) ! Number of records
character*132 ar__1 ! Full-size record
character*5 Ref_1 (nr__1) ! [0-9.] References (see table4) (1)
character*22 Line_1 (nr__1) ! Interstellar line measured
character*17 Diffuse_1 (nr__1) ! Interstellar diffuse band observed
character*7 MeasType (nr__1) ! [vwigfn ] Type of measure (2)
character*14 Instrum (nr__1) ! Instrument used (see file "table2b.dat")
character*12 Det (nr__1) ! Detector used
character*16 Disp (nr__1) ! (0.1nm/mm) Reciprocal dispersion used
character*9 ResolA (nr__1) ! (0.1nm) Resolution in Angstroem
character*7 ResolV (nr__1) ! (km/s) Resolution in km/s
integer*4 Stars (nr__1) ! ? Number of stars observed
*Note (1): this field is blank if it is a continuation.
*Note (2): type of measure indicated by
* 'v' = radial velocity
* 'w' = equivalent width
* 'i' = intensity
* 'n' = column density
* 'gf' = oscillator strength
c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C Declarations for 'table3.dat' ! Fundamental data of Stars Catalogued
integer*4 nr__2
parameter (nr__2=2082) ! Number of records
character*155 ar__2 ! Full-size record
C 1950 position composed of: RAh RAm RAs DE- DEd DEm DEs
real*8 RAdeg_1 (nr__2) ! (deg) Right Ascension 1950
real*8 DEdeg_1 (nr__2) ! (deg) Declination 1950
C ---------------------------------- ! (position vector(s) in degrees)
character*7 HD (nr__2) ! Henry Draper Catalogue number
integer*4 HR (nr__2) ! [1/9110]? Bright Star Catalogue
* (Harvard Revised) number
integer*4 RAh_1 (nr__2) ! (h) ? Right Ascension 1950 (hours) (1)
integer*4 RAm_1 (nr__2) ! (min) ? Right Ascension 1950 (minutes)
real*4 RAs_1 (nr__2) ! (s) ? Right Ascension 1950 (seconds)
character*1 n_RAs_1 (nr__2) ! [*] '*' if original position in 0.1min
character*1 DE__1 (nr__2) ! Declination 1950 (sign) (1)
integer*4 DEd_1 (nr__2) ! (deg) ? Declination 1950 (degrees)
integer*4 DEm_1 (nr__2) ! (arcmin) ? Declination 1950 (minutes)
real*4 DEs_1 (nr__2) ! (arcsec) ? Declination 1950 (seconds)
real*4 GLON (nr__2) ! (deg) ? Galactic longitude (1)
real*4 GLAT (nr__2) ! (deg) ? Galactic latitude (1)
character*18 Sp_1 (nr__2) ! Spectral type
real*4 Vmag_1 (nr__2) ! (mag) ? apparent visual magnitude
character*1 u_Vmag_1 (nr__2) ! Uncertainty flag (:) on Vmag
real*4 B_V (nr__2) ! (mag) ? color
character*66 Ids (nr__2) ! Other identifications
*Note (1): The last five stars have no position
c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C Declarations for 'table4.dat' ! References (from table1 and table2a)
integer*4 nr__3
parameter (nr__3=1239) ! Number of records
character*100 ar__3 ! Full-size record
character*5 Ref_2 (nr__3) ! [0-9.] Reference as in table1 and table2a
integer*4 Seq (nr__3) ! [1/371]+= Sequence number
character*87 Text (nr__3) ! Text of reference
c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C Declarations for 'apx1.dat' ! Appendix 1: Interstellar CaII and NaI
Radial Velocities
integer*4 nr__4
parameter (nr__4=4422) ! Number of records
character*76 ar__4 ! Full-size record
character*12 Identif_1 (nr__4) ! Stellar identification
real*4 Vmag_2 (nr__4) ! (mag) ? apparent visual magnitude
character*1 u_Vmag_2 (nr__4) ! Uncertainty flag (:) on Vmag
character*5 Ref_3 (nr__4) ! [0-9.] References (see table4)
character*14 Line_2 (nr__4) ! Interstellar lines measured
real*8 Vel_CaII (nr__4) ! (km/s) ? CaII radial velocity
character*1 u_Vel_CaII (nr__4) ! Uncertainty flag (:) on Vel(CaII)
character*1 n_Vel_CaII (nr__4) ! [VCNSb] Note on Vel(CaII) (1)
real*8 Vel_NaI (nr__4) ! (km/s) ? NaI radial velocity
character*1 u_Vel_NaI (nr__4) ! Uncertainty flag (:) on Vel(NaI)
character*1 n_Vel_NaI (nr__4) ! [VCNSb] Note on Vel(NaI) (1)
character*3 System (nr__4) ! [HelLSRM] (2)
*Note (1): the following symbols are used:
* C=Composite
* N=Not detected S=stellar line
* b=blended
* V=Variable
*Note (2): the system is
* Hel=Heliocentric,
* LSR=Local Standard of Rest
* SSM=corrected from Solar Motion (toward apex)
c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C Declarations for 'apx2.dat' ! Appendix 2: Radial Velocities data for
interstellar lines published in
Wilson's GCRV (1953, Cat. <III/21>)
integer*4 nr__5
parameter (nr__5=1151) ! Number of records
character*70 ar__5 ! Full-size record
C 1950 position composed of: RAh RAm DE- DEd DEm
real*8 RAdeg_2 (nr__5) ! (deg) Right Ascension 1950
real*8 DEdeg_2 (nr__5) ! (deg) Declination 1950
C ---------------------------------- ! (position vector(s) in degrees)
integer*4 GCRV (nr__5) ! Wilson's GCRV number
integer*4 GC (nr__5) ! Boss's General Catalogue number
integer*4 HD_1 (nr__5) ! Henry Draper Catalogue number
integer*4 RAh_2 (nr__5) ! (h) Right Ascension 1950 (hours)
real*4 RAm_2 (nr__5) ! (min) Right Ascension 1950 (minutes)
character*1 DE__2 (nr__5) ! Declination 1950 (sign)
integer*4 DEd_2 (nr__5) ! (deg) Declination 1950 (degrees)
integer*4 DEm_2 (nr__5) ! (arcmin) Declination 1950 (minutes)
real*4 Vmag_3 (nr__5) ! (mag) ? V Magnitude
character*5 Ref_4 (nr__5) ! [0-9.] References (see table4)
real*4 Vel (nr__5) ! (km/s) Interstellar lines radial velocities
character*4 Notes (nr__5) ! 'GCRV' if the star presents radial velocity
* data for interstellar lines only in GCRV
C=============================================================================
C Loading file 'table1.dat' ! The Catalogue
C Format for file interpretation
1 format(
+ A13,1X,I2,1X,I2,1X,F6.3,A1,A1,I2,1X,I2,1X,F5.2,A1,F5.2,A1,1X,
+ A12,1X,A5,2X,A19,1X,A14,3X,A1,F6.4,A1,A1,F6.4,A1,A1,F6.4,A1,
+ A1,F6.4,A1)
C Effective file loading
open(unit=1,status='old',file=
+'table1.dat')
write(6,*) '....Loading file: table1.dat'
do i__=1,9917
read(1,'(A136)')ar__
read(ar__,1)
+ Identif(i__),RAh(i__),RAm(i__),RAs(i__),n_RAs(i__),DE_(i__),
+ DEd(i__),DEm(i__),DEs(i__),n_DEs(i__),Vmag(i__),u_Vmag(i__),
+ Sp(i__),Ref(i__),Line(i__),Diffuse(i__),l_W_K(i__),W_K(i__),
+ u_W_K(i__),l_W_H(i__),W_H(i__),u_W_H(i__),l_W_D2(i__),
+ W_D2(i__),u_W_D2(i__),l_W_D1(i__),W_D1(i__),u_W_D1(i__)
if(ar__(15:16) .EQ. '') RAh(i__) = iNULL__
if(ar__(18:19) .EQ. '') RAm(i__) = iNULL__
if(ar__(21:26) .EQ. '') RAs(i__) = rNULL__
if(ar__(29:30) .EQ. '') DEd(i__) = iNULL__
if(ar__(32:33) .EQ. '') DEm(i__) = iNULL__
if(ar__(35:39) .EQ. '') DEs(i__) = rNULL__
if(ar__(41:45) .EQ. '') Vmag(i__) = rNULL__
if(ar__(106:111) .EQ. '') W_K(i__) = rNULL__
if(ar__(114:119) .EQ. '') W_H(i__) = rNULL__
if(ar__(122:127) .EQ. '') W_D2(i__) = rNULL__
if(ar__(130:135) .EQ. '') W_D1(i__) = rNULL__
RAdeg(i__) = rNULL__
DEdeg(i__) = rNULL__
c Derive coordinates RAdeg and DEdeg from input data
c (RAdeg and DEdeg are set to rNULL__ when unknown)
if(RAh(i__) .GT. -180) RAdeg(i__)=RAh(i__)*15.
if(RAm(i__) .GT. -180) RAdeg(i__)=RAdeg(i__)+RAm(i__)/4.
if(RAs(i__) .GT. -180) RAdeg(i__)=RAdeg(i__)+RAs(i__)/240.
if(DEd(i__) .GE. 0) DEdeg(i__)=DEd(i__)
if(DEm(i__) .GE. 0) DEdeg(i__)=DEdeg(i__)+DEm(i__)/60.
if(DEs(i__) .GE. 0) DEdeg(i__)=DEdeg(i__)+DEs(i__)/3600.
if(DE_(i__).EQ.'-'.AND.DEdeg(i__).GE.0) DEdeg(i__)=-DEdeg(i__)
c ..............Just test output...........
write(6,1)
+ Identif(i__),RAh(i__),RAm(i__),RAs(i__),n_RAs(i__),DE_(i__),
+ DEd(i__),DEm(i__),DEs(i__),n_DEs(i__),Vmag(i__),u_Vmag(i__),
+ Sp(i__),Ref(i__),Line(i__),Diffuse(i__),l_W_K(i__),W_K(i__),
+ u_W_K(i__),l_W_H(i__),W_H(i__),u_W_H(i__),l_W_D2(i__),
+ W_D2(i__),u_W_D2(i__),l_W_D1(i__),W_D1(i__),u_W_D1(i__)
write(6,'(6H Pos: 2F8.4)') RAdeg(i__),DEdeg(i__)
c .......End.of.Just test output...........
end do
close(1)
C=============================================================================
C Loading file 'table2a.dat' ! Observations (references): main characteristics
C Format for file interpretation
2 format(
+ 2X,A5,3X,A22,1X,A17,5X,A7,3X,A14,1X,A12,1X,A16,2X,A9,A7,2X,I3)
C Effective file loading
open(unit=1,status='old',file=
+'table2a.dat')
write(6,*) '....Loading file: table2a.dat'
do i__=1,659
read(1,'(A132)')ar__1
read(ar__1,2)
+ Ref_1(i__),Line_1(i__),Diffuse_1(i__),MeasType(i__),
+ Instrum(i__),Det(i__),Disp(i__),ResolA(i__),ResolV(i__),
+ Stars(i__)
if(ar__1(130:132) .EQ. '') Stars(i__) = iNULL__
c ..............Just test output...........
write(6,2)
+ Ref_1(i__),Line_1(i__),Diffuse_1(i__),MeasType(i__),
+ Instrum(i__),Det(i__),Disp(i__),ResolA(i__),ResolV(i__),
+ Stars(i__)
c .......End.of.Just test output...........
end do
close(1)
C=============================================================================
C Loading file 'table3.dat' ! Fundamental data of Stars Catalogued
C Format for file interpretation
3 format(
+ A7,1X,I4,2X,I2,1X,I2,1X,F6.3,A1,A1,I2,1X,I2,1X,F5.2,2X,F6.2,
+ 1X,F6.2,3X,A18,1X,F5.2,A1,F5.2,2X,A66)
C Effective file loading
open(unit=1,status='old',file=
+'table3.dat')
write(6,*) '....Loading file: table3.dat'
do i__=1,2082
read(1,'(A155)')ar__2
read(ar__2,3)
+ HD(i__),HR(i__),RAh_1(i__),RAm_1(i__),RAs_1(i__),n_RAs_1(i__),
+ DE__1(i__),DEd_1(i__),DEm_1(i__),DEs_1(i__),GLON(i__),
+ GLAT(i__),Sp_1(i__),Vmag_1(i__),u_Vmag_1(i__),B_V(i__),
+ Ids(i__)
if(ar__2(9:12) .EQ. '') HR(i__) = iNULL__
if(ar__2(15:16) .EQ. '') RAh_1(i__) = iNULL__
if(ar__2(18:19) .EQ. '') RAm_1(i__) = iNULL__
if(ar__2(21:26) .EQ. '') RAs_1(i__) = rNULL__
if(ar__2(29:30) .EQ. '') DEd_1(i__) = iNULL__
if(ar__2(32:33) .EQ. '') DEm_1(i__) = iNULL__
if(ar__2(35:39) .EQ. '') DEs_1(i__) = rNULL__
if(ar__2(42:47) .EQ. '') GLON(i__) = rNULL__
if(ar__2(49:54) .EQ. '') GLAT(i__) = rNULL__
if(ar__2(77:81) .EQ. '') Vmag_1(i__) = rNULL__
if(ar__2(83:87) .EQ. '') B_V(i__) = rNULL__
RAdeg_1(i__) = rNULL__
DEdeg_1(i__) = rNULL__
c Derive coordinates RAdeg_1 and DEdeg_1 from input data
c (RAdeg_1 and DEdeg_1 are set to rNULL__ when unknown)
if(RAh_1(i__) .GT. -180) RAdeg_1(i__)=RAh_1(i__)*15.
if(RAm_1(i__) .GT. -180) RAdeg_1(i__)=RAdeg_1(i__)+RAm_1(i__)/4.
if(RAs_1(i__) .GT. -180) RAdeg_1(i__)=RAdeg_1(i__)+RAs_1(i__)/240.
if(DEd_1(i__) .GE. 0) DEdeg_1(i__)=DEd_1(i__)
if(DEm_1(i__) .GE. 0) DEdeg_1(i__)=DEdeg_1(i__)+DEm_1(i__)/60.
if(DEs_1(i__) .GE. 0) DEdeg_1(i__)=DEdeg_1(i__)+DEs_1(i__)/3600.
if(DE__1(i__).EQ.'-'.AND.DEdeg_1(i__).GE.0) DEdeg_1(i__)=-DEdeg_1(i__)
c ..............Just test output...........
write(6,3)
+ HD(i__),HR(i__),RAh_1(i__),RAm_1(i__),RAs_1(i__),n_RAs_1(i__),
+ DE__1(i__),DEd_1(i__),DEm_1(i__),DEs_1(i__),GLON(i__),
+ GLAT(i__),Sp_1(i__),Vmag_1(i__),u_Vmag_1(i__),B_V(i__),
+ Ids(i__)
write(6,'(6H Pos: 2F8.4)') RAdeg_1(i__),DEdeg_1(i__)
c .......End.of.Just test output...........
end do
close(1)
C=============================================================================
C Loading file 'table4.dat' ! References (from table1 and table2a)
C Format for file interpretation
4 format(1X,A5,1X,I3,3X,A87)
C Effective file loading
open(unit=1,status='old',file=
+'table4.dat')
write(6,*) '....Loading file: table4.dat'
do i__=1,1239
read(1,'(A100)')ar__3
read(ar__3,4)Ref_2(i__),Seq(i__),Text(i__)
c ..............Just test output...........
write(6,4)Ref_2(i__),Seq(i__),Text(i__)
c .......End.of.Just test output...........
end do
close(1)
C=============================================================================
C Loading file 'apx1.dat' ! Appendix 1: Interstellar CaII and NaI
* Radial Velocities
C Format for file interpretation
5 format(
+ A12,1X,F5.2,A1,3X,A5,4X,A14,5X,F7.1,A1,A1,1X,F7.1,A1,A1,4X,A3)
C Effective file loading
open(unit=1,status='old',file=
+'apx1.dat')
write(6,*) '....Loading file: apx1.dat'
do i__=1,4422
read(1,'(A76)')ar__4
read(ar__4,5)
+ Identif_1(i__),Vmag_2(i__),u_Vmag_2(i__),Ref_3(i__),
+ Line_2(i__),Vel_CaII(i__),u_Vel_CaII(i__),n_Vel_CaII(i__),
+ Vel_NaI(i__),u_Vel_NaI(i__),n_Vel_NaI(i__),System(i__)
if(ar__4(14:18) .EQ. '') Vmag_2(i__) = rNULL__
if(ar__4(51:57) .EQ. '') Vel_CaII(i__) = rNULL__
if(ar__4(61:67) .EQ. '') Vel_NaI(i__) = rNULL__
c ..............Just test output...........
write(6,5)
+ Identif_1(i__),Vmag_2(i__),u_Vmag_2(i__),Ref_3(i__),
+ Line_2(i__),Vel_CaII(i__),u_Vel_CaII(i__),n_Vel_CaII(i__),
+ Vel_NaI(i__),u_Vel_NaI(i__),n_Vel_NaI(i__),System(i__)
c .......End.of.Just test output...........
end do
close(1)
C=============================================================================
C Loading file 'apx2.dat' ! Appendix 2: Radial Velocities data for
* interstellar lines published in
* Wilson's GCRV (1953, Cat. <III/21>)
C Format for file interpretation
6 format(
+ I5,I5,I6,3X,I2,1X,F4.1,2X,A1,I2,1X,I2,3X,F5.2,3X,A5,6X,F5.1,
+ 5X,A4)
C Effective file loading
open(unit=1,status='old',file=
+'apx2.dat')
write(6,*) '....Loading file: apx2.dat'
do i__=1,1151
read(1,'(A70)')ar__5
read(ar__5,6)
+ GCRV(i__),GC(i__),HD_1(i__),RAh_2(i__),RAm_2(i__),DE__2(i__),
+ DEd_2(i__),DEm_2(i__),Vmag_3(i__),Ref_4(i__),Vel(i__),
+ Notes(i__)
if(ar__5(38:42) .EQ. '') Vmag_3(i__) = rNULL__
RAdeg_2(i__) = rNULL__
DEdeg_2(i__) = rNULL__
c Derive coordinates RAdeg_2 and DEdeg_2 from input data
c (RAdeg_2 and DEdeg_2 are set to rNULL__ when unknown)
if(RAh_2(i__) .GT. -180) RAdeg_2(i__)=RAh_2(i__)*15.
if(RAm_2(i__) .GT. -180) RAdeg_2(i__)=RAdeg_2(i__)+RAm_2(i__)/4.
if(DEd_2(i__) .GE. 0) DEdeg_2(i__)=DEd_2(i__)
if(DEm_2(i__) .GE. 0) DEdeg_2(i__)=DEdeg_2(i__)+DEm_2(i__)/60.
if(DE__2(i__).EQ.'-'.AND.DEdeg_2(i__).GE.0) DEdeg_2(i__)=-DEdeg_2(i__)
c ..............Just test output...........
write(6,6)
+ GCRV(i__),GC(i__),HD_1(i__),RAh_2(i__),RAm_2(i__),DE__2(i__),
+ DEd_2(i__),DEm_2(i__),Vmag_3(i__),Ref_4(i__),Vel(i__),
+ Notes(i__)
write(6,'(6H Pos: 2F8.4)') RAdeg_2(i__),DEdeg_2(i__)
c .......End.of.Just test output...........
end do
close(1)
C=============================================================================
stop
end