Conversion of standardized ReadMe file for
file /./ftp/cats/I/328 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 2024-Mar-29 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. I/328 Catalogue of bright IDS stars (Lipaeva+, 2014) *================================================================================ *Catalogue of bright IDS stars with extensive cross-identifications. * Lipaeva N.A., Sementsov V.N., Malkov O. * <Baltic Astron., 23, 245-247 (2014)> * =2014BaltA..23..245L * =2014yCat.1328....0L C============================================================================= C Internal variables integer*4 i__ c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - C Declarations for 'table1.dat' ! Identifications integer*4 nr__ parameter (nr__=29965) ! Number of records character*82 ar__ ! Full-size record C B1950 position composed of: RAh RAm RAs DE- DEd DEm DEs real*8 RAdeg (nr__) ! (deg) Right Ascension B1950 real*8 DEdeg (nr__) ! (deg) Declination B1950 C ---------------------------------- ! (position vector(s) in degrees) character*14 IDS (nr__) ! IDS name (HH MM.m +DD MM) (G1) integer*4 RAh (nr__) ! (h) ? Right ascension (B1950) integer*4 RAm (nr__) ! (min) ? Right ascension (B1950) integer*4 RAs (nr__) ! (s) ? Right ascension (B1950) character*1 DE_ (nr__) ! ? Declination sign (B1950) integer*4 DEd (nr__) ! (deg) ? Declination (B1950) integer*4 DEm (nr__) ! (arcmin) ? Declination (B1950) integer*4 DEs (nr__) ! (arcsec) ? Declination (B1950) character*3 DMz (nr__) ! Durchmusterung (BD/CP/CPD) zone integer*4 DM (nr__) ! ? Durchmusterung (BD/CP/CPD) number in zone character*1 m_DM (nr__) ! [ab] Multiplicity index on DM integer*4 HD (nr__) ! ? HD number character*1 C (nr__) ! [SGA] SAO/GC/AGK catalogue (1) character*11 SGAn (nr__) ! SAO/GC/AGK catalogue name (1) integer*4 PPM (nr__) ! ? PPM number (I/146; I/193, I/208) integer*4 ADS (nr__) ! ? ADS name character*1 m_ADS (nr__) ! [a] Multiplicity index on ADS character*3 Comp1 (nr__) ! Reference component(s) for cross-ID * information given above *Note (1): SAO/GC/AGK catalogue name: * * 'S' in SGAi: SAO (I/131) number in columns 57-62 (I6, NNNNNN) * * 'G' in SGAi: GC (I/113) number in columns 58-62 (I5, NNNNN) * * 'A' in SGAi: AGK (I/2) designation columns 54-62 (+NN NNNNN or +NN NNNNN.N) c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - C Declarations for 'table2.dat' ! Observational data integer*4 nr__1 parameter (nr__1=36861) ! Number of records character*240 ar__1 ! Full-size record character*14 IDS_1 (nr__1) ! IDS name (HH MM.m +DD MM) (G1) character*3 Comp1_1 (nr__1) ! Reference component(s) for cross-ID * information given in table1.dat character*1 Flag (nr__1) ! [*?] multiplicity flag (3) character*5 Comp2 (nr__1) ! Pair components (as listed in IDS) * for IDS information given below integer*4 Year1 (nr__1) ! (yr) ? Year of first measured relative position integer*4 Year2 (nr__1) ! (yr) ? Year of last measured relative position integer*4 PA (nr__1) ! (deg) [0/372]? Position angle for wider pairs real*4 rho (nr__1) ! (arcsec) ? Angular separation for wider pairs character*2 n_PAlow (nr__1) ! [FNPS ] Code for PAlow (4) real*4 PAlow (nr__1) ! [0/4600]? Low position angle (4) character*1 l_OR (nr__1) ! Limit flag on OR real*4 OR (nr__1) ! ? Averaged value over the orbit of angular * distance (5) real*4 amaj (nr__1) ! (arcsec) [0.03/25]? Semi-major axis of orbit (6) real*4 mag1 (nr__1) ! (mag) [-1.5/20]? Primary magnitude character*3 n_mag1 (nr__1) ! Note on primary magnitude (variability) (7) real*4 mag2 (nr__1) ! (mag) ? Secondary magnitude character*3 n_mag2 (nr__1) ! Note on secondary magnitude (variability) (7) character*5 SpT (nr__1) ! MK spectral type (8) character*141 Comment (nr__1) ! Comments (9) *Note (3): Multiplicity flag as follows: * * = additional pair in the system * ? = star is found to be single (13 systems) *Note (4): In a case of low precision of the positional angle the * following abbreviations are used for the PAlow value: * F = following (p.a.~90, 27 stars) * N = north (p.a.~0, 30 stars) * P = preceding (p.a.~270, 24 stars) * S = south (p.a.~180, 25 stars) * NF = north following (p.a.~45, 54 stars) * NP = north preceding (p.a.~315, 60 stars) * SF = south following (p.a.~135, 42 stars) * SP = south preceding (p.a.~215, 64 stars) *Note (5): If the orbital motion over the interval of observations is comparable * with the full turn, or orbit is too small to measure the position, * the abbreviation "OR" is indicated (576 stars), * and the instantaneous angular distance was changed to the averaged value * over the orbit, usually calculated using ADS catalogue data * If only an upper limit of the angular separation can be determined, * it is marked by symbol "<", and OR contents the upper limit of the * angular separation. *Note (6): If the semi-major axis of the stellar orbit is known * (usually from ADS or Worley, 1983, Cat. V/39) *Note (7): Notes ad follows: * VAR = component shows a variability * NEB = nebula for (18 57.5 -00 35) * NOV = Novae for (15 55.3 +26 13) *Note (8): Detailed specifications that do not fit in the table grid, * for example, the angular distances greater than 100 or less than 0.1 arcsec, * and the composite spectra or spectra of multiple components are placed in * comments. *Note (9): Comments to the catalogue entries contain a variety of component * identifications, as well as indications to the errors in source catalogues. * Commentary to a multiple stellar system is marked by an asterisk (*) at the * end of the first comment line. Comment to each subsequent component of the * same system also begins with an asterisk. * The photometric values of components are given if available. * The notation is: V, B-V, U-B if available, spectral classification * if available. * Example: UBV(A)= max:6.83-0.05-0.40 B7 V+G8 III * If not explicitly stated, the photometric values are given according to the * publication of J-C Mermilliod, 1994, "Catalogue of Mean UBV Data on Stars", * VI, 1387 pp. Springer-Verlag Berlin Heidelberg New York. C============================================================================= C Loading file 'table1.dat' ! Identifications C Format for file interpretation 1 format( + A14,1X,I2,1X,I2,1X,I2,1X,A1,I2,1X,I2,1X,I2,1X,A3,1X,I5,A1,1X, + I6,1X,A1,A11,1X,I6,1X,I5,A1,1X,A3) C Effective file loading open(unit=1,status='old',file= +'table1.dat') write(6,*) '....Loading file: table1.dat' do i__=1,29965 read(1,'(A82)')ar__ read(ar__,1) + IDS(i__),RAh(i__),RAm(i__),RAs(i__),DE_(i__),DEd(i__), + DEm(i__),DEs(i__),DMz(i__),DM(i__),m_DM(i__),HD(i__),C(i__), + SGAn(i__),PPM(i__),ADS(i__),m_ADS(i__),Comp1(i__) if(ar__(16:17) .EQ. '') RAh(i__) = iNULL__ if(ar__(19:20) .EQ. '') RAm(i__) = iNULL__ if(ar__(22:23) .EQ. '') RAs(i__) = iNULL__ if(ar__(26:27) .EQ. '') DEd(i__) = iNULL__ if(ar__(29:30) .EQ. '') DEm(i__) = iNULL__ if(ar__(32:33) .EQ. '') DEs(i__) = iNULL__ if(ar__(39:43) .EQ. '') DM(i__) = iNULL__ if(ar__(46:51) .EQ. '') HD(i__) = iNULL__ if(ar__(66:71) .EQ. '') PPM(i__) = iNULL__ if(ar__(73:77) .EQ. '') ADS(i__) = iNULL__ 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) + IDS(i__),RAh(i__),RAm(i__),RAs(i__),DE_(i__),DEd(i__), + DEm(i__),DEs(i__),DMz(i__),DM(i__),m_DM(i__),HD(i__),C(i__), + SGAn(i__),PPM(i__),ADS(i__),m_ADS(i__),Comp1(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 'table2.dat' ! Observational data C Format for file interpretation 2 format( + A14,1X,A3,1X,A1,1X,A5,1X,I4,1X,I4,1X,I3,1X,F5.1,2X,A2,1X,F6.1, + 2X,A1,F4.1,5X,F6.3,2X,F4.1,A3,1X,F4.1,A3,1X,A5,1X,A141) C Effective file loading open(unit=1,status='old',file= +'table2.dat') write(6,*) '....Loading file: table2.dat' do i__=1,36861 read(1,'(A240)')ar__1 read(ar__1,2) + IDS_1(i__),Comp1_1(i__),Flag(i__),Comp2(i__),Year1(i__), + Year2(i__),PA(i__),rho(i__),n_PAlow(i__),PAlow(i__),l_OR(i__), + OR(i__),amaj(i__),mag1(i__),n_mag1(i__),mag2(i__),n_mag2(i__), + SpT(i__),Comment(i__) if(ar__1(28:31) .EQ. '') Year1(i__) = iNULL__ if(ar__1(33:36) .EQ. '') Year2(i__) = iNULL__ if(ar__1(38:40) .EQ. '') PA(i__) = iNULL__ if(ar__1(42:46) .EQ. '') rho(i__) = rNULL__ if(ar__1(52:57) .EQ. '') PAlow(i__) = rNULL__ if(ar__1(61:64) .EQ. '') OR(i__) = rNULL__ if(ar__1(70:75) .EQ. '') amaj(i__) = rNULL__ if(ar__1(78:81) .EQ. '') mag1(i__) = rNULL__ if(ar__1(86:89) .EQ. '') mag2(i__) = rNULL__ c ..............Just test output........... write(6,2) + IDS_1(i__),Comp1_1(i__),Flag(i__),Comp2(i__),Year1(i__), + Year2(i__),PA(i__),rho(i__),n_PAlow(i__),PAlow(i__),l_OR(i__), + OR(i__),amaj(i__),mag1(i__),n_mag1(i__),mag2(i__),n_mag2(i__), + SpT(i__),Comment(i__) c .......End.of.Just test output........... end do close(1) C============================================================================= stop end