Conversion of standardized ReadMe file for
file /./ftp/cats/V/50 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 2026-Aug-15
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. V/50 Bright Star Catalogue, 5th Revised Ed. (Hoffleit+, 1991)
*================================================================================
*The Bright Star Catalogue, 5th Revised Ed. (Preliminary Version)
* Hoffleit D., Warren Jr W.H.
* <Astronomical Data Center, NSSDC/ADC (1991)>
* =1964BS....C......0H
* =1991bsc..book.....H
C=============================================================================
C Internal variables
integer*4 i__
c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C Declarations for 'catalog' ! The main part of the Catalogue
integer*4 nr__
parameter (nr__=9110) ! Number of records
character*197 ar__ ! Full-size record
C J2000 position composed of: RAh RAm RAs DE- DEd DEm DEs (Epoch=2000.0)
real*8 RAdeg ! (deg) Right Ascension J2000, Epoch=2000.0
real*8 DEdeg ! (deg) Declination J2000, Epoch=2000.0
C ---------------------------------- ! (position vector(s) in degrees)
integer*4 HR ! [1/9110]+ Harvard Revised Number
* = Bright Star Number
character*10 Name ! Name, generally Bayer and/or Flamsteed name
character*11 DM ! Durchmusterung Identification (zone in
* bytes 17-19)
integer*4 HD ! [1/225300]? Henry Draper Catalog Number
integer*4 SAO ! [1/258997]? SAO Catalog Number
integer*4 FK5 ! ? FK5 star Number
character*1 IRflag ! [I] I if infrared source
character*1 r_IRflag ! *[ ':] Coded reference for infrared source
character*1 Multiple ! *[AWDIRS] Double or multiple-star code
character*5 ADS ! Aitken's Double Star Catalog (ADS) designation
character*2 ADScomp ! ADS number components
character*9 VarID ! Variable star identification
integer*4 RAh1900 ! (h) ?Hours RA, equinox B1900, epoch 1900.0 (1)
integer*4 RAm1900 ! (min) ?Minutes RA, equinox B1900, epoch 1900.0 (1)
real*4 RAs1900 ! (s) ?Seconds RA, equinox B1900, epoch 1900.0 (1)
character*1 DE_1900 ! ?Sign Dec, equinox B1900, epoch 1900.0 (1)
integer*4 DEd1900 ! (deg) ?Degrees Dec, equinox B1900, epoch 1900.0 (1)
integer*4 DEm1900 ! (arcmin) ?Minutes Dec, equinox B1900, epoch 1900.0 (1)
integer*4 DEs1900 ! (arcsec) ?Seconds Dec, equinox B1900, epoch 1900.0 (1)
integer*4 RAh ! (h) ?Hours RA, equinox J2000, epoch 2000.0 (1)
integer*4 RAm ! (min) ?Minutes RA, equinox J2000, epoch 2000.0 (1)
real*4 RAs ! (s) ?Seconds RA, equinox J2000, epoch 2000.0 (1)
character*1 DE_ ! ?Sign Dec, equinox J2000, epoch 2000.0 (1)
integer*4 DEd ! (deg) ?Degrees Dec, equinox J2000, epoch 2000.0 (1)
integer*4 DEm ! (arcmin) ?Minutes Dec, equinox J2000, epoch 2000.0 (1)
integer*4 DEs ! (arcsec) ?Seconds Dec, equinox J2000, epoch 2000.0 (1)
real*4 GLON ! (deg) ?Galactic longitude (1)
real*4 GLAT ! (deg) ?Galactic latitude (1)
real*4 Vmag ! (mag) ?Visual magnitude (1)
character*1 n_Vmag ! *[ HR] Visual magnitude code
character*1 u_Vmag ! [ :?] Uncertainty flag on V
real*4 B_V ! (mag) ? B-V color in the UBV system
character*1 u_B_V ! [ :?] Uncertainty flag on B-V
real*4 U_B ! (mag) ? U-B color in the UBV system
character*1 u_U_B ! [ :?] Uncertainty flag on U-B
real*4 R_I ! (mag) ? R-I in system specified by n_R-I
character*1 n_R_I ! [CE:?D] Code for R-I system (Cousin, Eggen)
character*20 SpType ! Spectral type
character*1 n_SpType ! [evt] Spectral type code
real*4 pmRA ! (arcsec/yr) *?Annual proper motion in RA J2000, FK5 system
real*4 pmDE ! (arcsec/yr) ?Annual proper motion in Dec J2000, FK5 system
character*1 n_Parallax ! [D] D indicates a dynamical parallax,
* otherwise a trigonometric parallax
real*4 Parallax ! (arcsec) ? Trigonometric parallax (unless n_Parallax)
integer*4 RadVel ! (km/s) ? Heliocentric Radial Velocity
character*4 n_RadVel ! *[V?SB123O ] Radial velocity comments
character*2 l_RotVel ! [<=> ] Rotational velocity limit characters
integer*4 RotVel ! (km/s) ? Rotational velocity, v sin i
character*1 u_RotVel ! [ :v] uncertainty and variability flag on
* RotVel
real*4 Dmag ! (mag) ? Magnitude difference of double,
* or brightest multiple
real*4 Sep ! (arcsec) ? Separation of components in Dmag
* if occultation binary.
character*4 MultID ! Identifications of components in Dmag
integer*4 MultCnt ! ? Number of components assigned to a multiple
character*1 NoteFlag ! [*] a star indicates that there is a note
* (see file notes)
*Note (1): These fields are all blanks for stars removed from
* the Bright Star Catalogue (see notes).
*Note on r_IRflag:
* Blank if from NASA merged Infrared Catalogue, Schmitz et al., 1978;
* ' if from Engles et al. 1982
* : if uncertain identification
*Note on Multiple:
* A = Astrometric binary
* D = Duplicity discovered by occultation;
* I = Innes, Southern Double Star Catalogue (1927)
* R = Rossiter, Michigan Publ. 9, 1955
* S = Duplicity discovered by speckle interferometry.
* W = Worley (1978) update of the IDS;
*Note on n_Vmag:
* blank = V on UBV Johnson system;
* R = HR magnitudes reduced to the UBV system;
* H = original HR magnitude.
*Note on pmRA:
* As usually assumed, the proper motion in RA is the projected
* motion (cos(DE).d(RA)/dt), i.e. the total proper motion is
* sqrt(pmRA^2^+pmDE^2^)
*Note on n_RadVel:
* V = variable radial velocity;
* V? = suspected variable radial velocity;
* SB, SB1, SB2, SB3 = spectroscopic binaries,
* single, double or triple lined spectra;
* O = orbital data available.
c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C Declarations for 'notes' ! Remarks
integer*4 nr__1
parameter (nr__1=9190) ! Number of records
character*132 ar__1 ! Full-size record
integer*4 HR_1 ! [1/9110]+= Harvard Revised (HR)
integer*4 Count ! Note counter (sequential for a star)
character*4 Category ! *[A-Z: ] Remark category abbreviation:
character*120 Remark ! Remarks in free form text
*Note on Category: the following abbreviations are used:
* C - Colors;
* D - Double and multiple stars;
* DYN - Dynamical parallaxes;
* G - Group membership;
* M - Miscellaneous.
* N - Star names;
* P - Polarization;
* R - Stellar radii or diameters;
* RV - Radial and/or rotational velocities;
* S - Spectra;
* SB - Spectroscopic binaries;
* VAR - Variability;
* The category abbreviation is always followed by a colon (:).
C=============================================================================
C Loading file 'catalog' ! The main part of the Catalogue
C Format for file interpretation
1 format(
+ I4,A10,A11,I6,I6,I4,A1,A1,A1,A5,A2,A9,I2,I2,F4.1,A1,I2,I2,I2,
+ I2,I2,F4.1,A1,I2,I2,I2,F6.2,F6.2,F5.2,A1,A1,F5.2,A1,F5.2,A1,
+ F5.2,A1,A20,A1,F6.3,F6.3,A1,F5.3,I4,A4,A2,I3,A1,F4.1,F6.1,A4,
+ I2,A1)
C Effective file loading
open(unit=1,status='old',file=
+'catalog')
write(6,*) '....Loading file: catalog'
do i__=1,9110
read(1,'(A197)')ar__
read(ar__,1)
+ HR,Name,DM,HD,SAO,FK5,IRflag,r_IRflag,Multiple,ADS,ADScomp,
+ VarID,RAh1900,RAm1900,RAs1900,DE_1900,DEd1900,DEm1900,DEs1900,
+ RAh,RAm,RAs,DE_,DEd,DEm,DEs,GLON,GLAT,Vmag,n_Vmag,u_Vmag,B_V,
+ u_B_V,U_B,u_U_B,R_I,n_R_I,SpType,n_SpType,pmRA,pmDE,
+ n_Parallax,Parallax,RadVel,n_RadVel,l_RotVel,RotVel,u_RotVel,
+ Dmag,Sep,MultID,MultCnt,NoteFlag
if(ar__(26:31) .EQ. '') HD = iNULL__
if(ar__(32:37) .EQ. '') SAO = iNULL__
if(ar__(38:41) .EQ. '') FK5 = iNULL__
if(ar__(61:62) .EQ. '') RAh1900 = iNULL__
if(ar__(63:64) .EQ. '') RAm1900 = iNULL__
if(ar__(65:68) .EQ. '') RAs1900 = rNULL__
if(ar__(70:71) .EQ. '') DEd1900 = iNULL__
if(ar__(72:73) .EQ. '') DEm1900 = iNULL__
if(ar__(74:75) .EQ. '') DEs1900 = iNULL__
if(ar__(76:77) .EQ. '') RAh = iNULL__
if(ar__(78:79) .EQ. '') RAm = iNULL__
if(ar__(80:83) .EQ. '') RAs = rNULL__
if(ar__(85:86) .EQ. '') DEd = iNULL__
if(ar__(87:88) .EQ. '') DEm = iNULL__
if(ar__(89:90) .EQ. '') DEs = iNULL__
if(ar__(91:96) .EQ. '') GLON = rNULL__
if(ar__(97:102) .EQ. '') GLAT = rNULL__
if(ar__(103:107) .EQ. '') Vmag = rNULL__
if(ar__(110:114) .EQ. '') B_V = rNULL__
if(ar__(116:120) .EQ. '') U_B = rNULL__
if(ar__(122:126) .EQ. '') R_I = rNULL__
if(ar__(149:154) .EQ. '') pmRA = rNULL__
if(ar__(155:160) .EQ. '') pmDE = rNULL__
if(ar__(162:166) .EQ. '') Parallax = rNULL__
if(ar__(167:170) .EQ. '') RadVel = iNULL__
if(ar__(177:179) .EQ. '') RotVel = iNULL__
if(ar__(181:184) .EQ. '') Dmag = rNULL__
if(ar__(185:190) .EQ. '') Sep = rNULL__
if(ar__(195:196) .EQ. '') MultCnt = 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)
+ HR,Name,DM,HD,SAO,FK5,IRflag,r_IRflag,Multiple,ADS,ADScomp,
+ VarID,RAh1900,RAm1900,RAs1900,DE_1900,DEd1900,DEm1900,DEs1900,
+ RAh,RAm,RAs,DE_,DEd,DEm,DEs,GLON,GLAT,Vmag,n_Vmag,u_Vmag,B_V,
+ u_B_V,U_B,u_U_B,R_I,n_R_I,SpType,n_SpType,pmRA,pmDE,
+ n_Parallax,Parallax,RadVel,n_RadVel,l_RotVel,RotVel,u_RotVel,
+ Dmag,Sep,MultID,MultCnt,NoteFlag
write(6,'(6H Pos: 2F8.4)') RAdeg,DEdeg
c .......End.of.Just test output...........
end do
close(1)
C=============================================================================
C Loading file 'notes' ! Remarks
C Format for file interpretation
2 format(1X,I4,I2,A4,1X,A120)
C Effective file loading
open(unit=1,status='old',file=
+'notes')
write(6,*) '....Loading file: notes'
do i__=1,9190
read(1,'(A132)')ar__1
read(ar__1,2)HR_1,Count,Category,Remark
c ..............Just test output...........
write(6,2)HR_1,Count,Category,Remark
c .......End.of.Just test output...........
end do
close(1)
C=============================================================================
stop
end