Conversion of standardized ReadMe file for
catalog 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 2024-Apr-19 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. B/sb9 SB9: 9th Catalogue of Spectroscopic Binary Orbits (Pourbaix+ 2004-2014) *================================================================================ *The Ninth Catalogue of Spectroscopic Binary Orbits (Version 2013-10-27) * Pourbaix D., Tokovinin A.A, Batten A.H., Fekel F.C., Hartkopf W.I., * Levato H., Morell N.I., Torres G., Udry S. * <Astron. Astrophys. 424, 727 (2004)> * =2004A&A...424..727P C============================================================================= C Internal variables integer*4 i__ c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - C Declarations for 'main.dat' ! Position, magnitudes and spectral types integer*4 nr__ parameter (nr__=4077) ! Number of records character*132 ar__ ! Full-size record C J2000 position composed of: RAh RAm RAs DE- DEd DEm DEs real*8 RAdeg ! (deg) Right Ascension J2000 real*8 DEdeg ! (deg) Declination J2000 C ---------------------------------- ! (position vector(s) in degrees) integer*4 Seq ! System Number * (SB8 number when Seq<=1469) character*10 B1900 ! Name based on B1900 position * (for backward compatibility with SB8=Cat. V/64) integer*4 RAh ! (h) Right Ascension J2000 (hours) integer*4 RAm ! (min) Right Ascension J2000 (minutes) real*4 RAs ! (s) Right Ascension J2000 (seconds) character*1 DE_ ! Declination J2000 (sign) integer*4 DEd ! (deg) Declination J2000 (degrees) integer*4 DEm ! (arcmin) Declination J2000 (minutes) real*4 DEs ! (arcsec) Declination J2000 (seconds) character*7 Comp ! Component real*4 mag1 ! (mag) ? Magnitude of component 1 character*1 n_mag1 ! [GJPBVRyrIK] Filter in which mag1 is given real*4 mag2 ! (mag) ? Magnitude of component 2 character*1 n_mag2 ! [PBVRyrIK] Filter in which mag2 is given character*32 Sp1 ! MK Spectral type component 1 character*10 Sp2 ! MK Spectral type component 2 character*29 Name ! Name of the source (HIP when existing) C============================================================================= C Loading file 'main.dat' ! Position, magnitudes and spectral types C Format for file interpretation 1 format( + I4,1X,A10,1X,I2,I2,F5.2,A1,I2,I2,F4.1,1X,A7,1X,F6.3,A1,1X, + F6.3,A1,1X,A32,1X,A10,1X,A29) C Effective file loading open(unit=1,status='old',file= +'B/sb9/main.dat') write(6,*) '....Loading file: main.dat' do i__=1,4077 read(1,'(A132)')ar__ read(ar__,1) + Seq,B1900,RAh,RAm,RAs,DE_,DEd,DEm,DEs,Comp,mag1,n_mag1,mag2, + n_mag2,Sp1,Sp2,Name if(ar__(44:49) .EQ. '') mag1 = rNULL__ if(ar__(52:57) .EQ. '') mag2 = rNULL__ 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) + Seq,B1900,RAh,RAm,RAs,DE_,DEd,DEm,DEs,Comp,mag1,n_mag1,mag2, + n_mag2,Sp1,Sp2,Name write(6,'(6H Pos: 2F8.4)') RAdeg,DEdeg c .......End.of.Just test output........... end do close(1) C============================================================================= stop end