FORTRAN Generation
(/./ftp/cats/B/wds)

Conversion of standardized ReadMe file for file /./ftp/cats/B/wds 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-Apr-20
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/wds    The Washington Visual Double Star Catalog            (Mason+ 2001-2020)
*================================================================================
*The Washington Visual Double Star Catalog (WDS), Version 2024-03-11
*    Mason B.D., Wycoff G.L., Hartkopf W.I., Douglass G.G., Worley C.E.
*   <Astron. J. 122, 3466 (2001)>
*   =2001AJ....122.3466M
C=============================================================================

C  Internal variables

      integer*4 i__

c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

C  Declarations for 'wds.dat'	! The Washington Double Star Catalog (main part)

      integer*4 nr__
      parameter (nr__=155879)	! Number of records
      character*130 ar__   	! Full-size record

C  J2000 position composed of: RAh RAm RAs DE- DEd DEm DEs (Epoch=J2000,)
      real*8        RAdeg      (nr__) ! (deg) Right Ascension J2000, Epoch=J2000,
      real*8        DEdeg      (nr__) ! (deg)     Declination J2000, Epoch=J2000,
C  ---------------------------------- ! (position vector(s) in degrees)

      character*10  WDS        (nr__) ! WDS name (based on J2000 position)
      character*7   Disc       (nr__) ! Discoverer Code (1 to 4 letters) and Number (5)
      character*5   Comp       (nr__) ! Components when more than 2 (1)
      integer*4     Obs1       (nr__) ! (yr) ? Date of first satisfactory observation
      integer*4     Obs2       (nr__) ! (yr) ? Date of last satisfactory observation
      integer*4     Nobs       (nr__) ! Number of Observations (up to 9999)
      integer*4     pa1        (nr__) ! (deg) ? Position Angle at date Obs1 (2)
      integer*4     pa2        (nr__) ! (deg) ? Position Angle at date Obs2 (2)
      real*4        sep1       (nr__) ! (arcsec) ? Separation at date Obs1
      real*4        sep2       (nr__) ! (arcsec) ? Separation at date Obs12
      real*4        mag1       (nr__) ! (mag) ? Magnitude of First Component
      real*4        mag2       (nr__) ! (mag) ? Magnitude of Second Component
      character*10  SpType     (nr__) ! Spectral Type (Primary/Secondary)
      integer*4     pmRA1      (nr__) ! (mas/yr) ? Primary Proper Motion (RA)
      integer*4     pmDE1      (nr__) ! (mas/yr) ? Primary Proper Motion (Dec)
      integer*4     pmRA2      (nr__) ! (mas/yr) ? Secondary Proper Motion (RA)
      integer*4     pmDE2      (nr__) ! (mas/yr) ? Secondary Proper Motion (Dec)
      character*9   DM         (nr__) ! Durchmusterung Number (3)
      character*4   Notes      (nr__) ! [B-Z ] Notes about the binary (4)
      character*1   n_RAh      (nr__) ! [!P] indicates a position derived from WDS name
      integer*4     RAh        (nr__) ! (h) ? Right Ascension J2000 (Ep=J2000, hours)
      integer*4     RAm        (nr__) ! (min) ? Right Ascension J2000 (Ep=J2000, minutes)
      real*4        RAs        (nr__) ! (s) [0/60]? Right Ascension J2000 (Ep=J2000, seconds)
      character*1   DE_        (nr__) ! Declination J2000 (Ep=J2000, sign)
      integer*4     DEd        (nr__) ! (deg) ? Declination J2000 (Ep=J2000, degrees)
      integer*4     DEm        (nr__) ! (arcmin) ? Declination J2000 (Ep=J2000, minutes)
      real*4        DEs        (nr__) ! (arcsec) [0/60]? Declination J2000 (Ep=J2000, seconds)
*Note (1): Components, when the object has more than two. The Lick IDS
*     scheme (which used letters P, Q, R...) has been discontinued, and
*     components are now referred to by the traditionally employed
*     lower-case letters. The rather awkward upper-case designations, e.g.
*     ABXC, have been changed to the form AB-C, etc. We have noted some
*     confusion on the part of observers and students alike, as to how to
*     designate components in multiple systems. Traditionally, these have
*     been designated in order of separation, thus AB, AC,...., or in the
*     cases where close pairs are observed blended, AB-C, AB-D,.... In some
*     instances, differing resolution limits produce situations where
*     observations are intermixed, thus AC, AB-C, and so forth (in all too
*     many cases, carelessness on the part of the observer does not permit
*     us to determine with certainty how the observation is to be
*     interpreted). There are also many instances where later observations
*     have revealed a closer companion; these are designated Aa, Bb, etc.
*     In a few cases wider, later discoveries have also been so denoted.
*Note (2): Crude positions (e.g., NP for "North Preceding") of the past have
*     been changed to their degree equivalent with an accompanying note.
*     Position angles are unprecessed in this catalog (i.e., they are for
*     the mean date of observation).
*Note (3): use the convention of the Henry Draper Catalogue:
*     BD (Bonn) from +89 degrees to -22 degrees inclusive, Cordoba from -23
*     degrees to -51 degrees inclusive, Cape Photographic from -52 degrees
*     to -89 degrees inclusive. When a star is not contained in the
*     Durchmusterung proper to its declination zone, but is contained in
*     another Durchmusterung, this is so indicated in the Notes. Other
*     components having different Durchmusterung numbers are also indicated
*     in the Notes. From September 2009, the DM number may be followed by
*     a component letter, e.g. "-50 9826B" for WSI  81Ba,Bb
*Note (4): The following codes are contained in these columns:
*     N = Notes found in the "notes.dat" table.
*     B = Summary line gives blue (Johnson U or B, blue photographic, etc.)
*         magnitudes
*     C = Orbit and Linear solution. A published orbit exists and this
*         system has a Linear Solution as well. A "C" code, then,
*         indicates both an "O" and an "L" code.
*     D = Has measure in Delta-M catalog
*     I = Identification uncertain. Match of object at precise position
*         with WDS pair may or may not be correct. Currently under examination.
*     K = Summary line gives K-band or other infrared (>1 micron) magnitudes
*     L = Linear solution. Linear elements for this pair have been
*         determined. Linear Elements Catalog is currently under development.
*     M = Magnitude modified. Magnitudes have been corrected to the
*         Tycho-V scale based on other systems measured by the
*         discoverer and Tycho.
*     O = Orbit, briefly described in WDSNOT MEMO and has entry in Orbit Catalog
*     P = 100-year proper motion in right ascension and declination
*     R = Summary line gives red (Johnson R or I, red photographic,
*         etc.) magnitudes
*     S = Statistically different parallax and proper motion indicates
*         that this pair is non-physical.
*     T = Statistically the same parallax within the errors and similar
*         proper motion or other technique indicates that this pair
*         is physical.
*     U = Proper motion or other technique indicates that this pair
*         is non-physical.
*     V = Proper motion or other technique indicates that this pair
*         is physical.
*     X = A "Dubious Double" (or "Bogus Binary"). This pair may represent
*         a positional typo in the original publication (so we're looking
*         in the wrong location), an optical double disappearing due to
*         radically different proper motions, a plate flaw, or simply a
*         pair not at a magnitude, separation, etc., sufficiently similar
*         to those noted when the first measure was added (making it too
*         faint, too close, etc.).
*     Y = Statistically different parallax for the components indicates
*         they are non-physical.
*     Z = Statistically the same parallax within the errors would
*         indicate the components are physical.
*     At present, column 108 is reserved for N, column 109 for O, L, C,
*     or X and column 110 for D. The other codes can occur in any column.
*Note (5): Originally 3 letters represent the discoverer; an additional
*    'A' denotes an appendix, 'B' a second appendix, e.g. in the lists
*    of F. Struve: STF1004 is the 1004th system in the main list,
*    STFA 11 is the 11th system of the first appendix, STFB 12 is the
*    12th system of the second appendix, etc.

c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

C  Declarations for 'notes.dat'	! The Washington Double Star Catalog (notes)

      integer*4 nr__1
      parameter (nr__1=35777)	! Number of records
      character*103 ar__1  	! Full-size record

      character*10  WDS_1      (nr__1) ! WDS name
      character*11  Disc_1     (nr__1) ! Discoverer Code and Number
      character*72  Text       (nr__1) ! Text of note
      character*8   RefCode    (nr__1) ! Reference code

c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

C  Declarations for 'refs.dat'	! Discoverer names and references

      integer*4 nr__2
      parameter (nr__2=23819)	! Number of records
      character*126 ar__2  	! Full-size record

      character*4   Disc_2     (nr__2) ! Discoverer Code
      character*8   RefCode_1  (nr__2) ! Reference code
      character*5   Meth       (nr__2) ! Method(s)
      character*1   E          (nr__2) ! E column
      character*104 Text_1     (nr__2) ! Authors and publication reference with
*                                   reference code used by ADS/CDS/NED (1)
*Note (1): "additional DD list" refers to a list of discovery designations
*     for discoverers who had no papers where they were first author.

C=============================================================================

C  Loading file 'wds.dat'	! The Washington Double Star Catalog (main part)

C  Format for file interpretation

    1 format(
     +  A10,A7,A5,1X,I4,1X,I4,1X,I4,1X,I3,1X,I3,1X,F5.1,1X,F6.2,F6.3,
     +  F5.2,1X,A10,I4,I4,1X,I4,I4,1X,A9,A4,A1,I2,I2,F5.2,A1,I2,I2,
     +  F4.1)

C  Effective file loading

      open(unit=1,status='old',file=
     +'wds.dat')
      write(6,*) '....Loading file: wds.dat'
      do i__=1,155879
        read(1,'(A130)')ar__
        read(ar__,1)
     +  WDS(i__),Disc(i__),Comp(i__),Obs1(i__),Obs2(i__),Nobs(i__),
     +  pa1(i__),pa2(i__),sep1(i__),sep2(i__),mag1(i__),mag2(i__),
     +  SpType(i__),pmRA1(i__),pmDE1(i__),pmRA2(i__),pmDE2(i__),
     +  DM(i__),Notes(i__),n_RAh(i__),RAh(i__),RAm(i__),RAs(i__),
     +  DE_(i__),DEd(i__),DEm(i__),DEs(i__)
        if(ar__(24:27) .EQ. '') Obs1(i__) = iNULL__
        if(ar__(29:32) .EQ. '') Obs2(i__) = iNULL__
        if(ar__(39:41) .EQ. '') pa1(i__) = iNULL__
        if(ar__(43:45) .EQ. '') pa2(i__) = iNULL__
        if(ar__(47:51) .EQ. '') sep1(i__) = rNULL__
        if(ar__(53:58) .EQ. '') sep2(i__) = rNULL__
        if(ar__(59:64) .EQ. '') mag1(i__) = rNULL__
        if(ar__(65:69) .EQ. '') mag2(i__) = rNULL__
        if(ar__(81:84) .EQ. '') pmRA1(i__) = iNULL__
        if(ar__(85:88) .EQ. '') pmDE1(i__) = iNULL__
        if(ar__(90:93) .EQ. '') pmRA2(i__) = iNULL__
        if(ar__(94:97) .EQ. '') pmDE2(i__) = iNULL__
        if(ar__(113:114) .EQ. '') RAh(i__) = iNULL__
        if(ar__(115:116) .EQ. '') RAm(i__) = iNULL__
        if(ar__(117:121) .EQ. '') RAs(i__) = rNULL__
        if(ar__(123:124) .EQ. '') DEd(i__) = iNULL__
        if(ar__(125:126) .EQ. '') DEm(i__) = iNULL__
        if(ar__(127:130) .EQ. '') DEs(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)
     +  WDS(i__),Disc(i__),Comp(i__),Obs1(i__),Obs2(i__),Nobs(i__),
     +  pa1(i__),pa2(i__),sep1(i__),sep2(i__),mag1(i__),mag2(i__),
     +  SpType(i__),pmRA1(i__),pmDE1(i__),pmRA2(i__),pmDE2(i__),
     +  DM(i__),Notes(i__),n_RAh(i__),RAh(i__),RAm(i__),RAs(i__),
     +  DE_(i__),DEd(i__),DEm(i__),DEs(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 'notes.dat'	! The Washington Double Star Catalog (notes)

C  Format for file interpretation

    2 format(A10,1X,A11,1X,A72,A8)

C  Effective file loading

      open(unit=1,status='old',file=
     +'notes.dat')
      write(6,*) '....Loading file: notes.dat'
      do i__=1,35777
        read(1,'(A103)')ar__1
        read(ar__1,2)WDS_1(i__),Disc_1(i__),Text(i__),RefCode(i__)
c    ..............Just test output...........
        write(6,2)WDS_1(i__),Disc_1(i__),Text(i__),RefCode(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

C=============================================================================

C  Loading file 'refs.dat'	! Discoverer names and references

C  Format for file interpretation

    3 format(A4,1X,A8,1X,A5,A1,2X,A104)

C  Effective file loading

      open(unit=1,status='old',file=
     +'refs.dat')
      write(6,*) '....Loading file: refs.dat'
      do i__=1,23819
        read(1,'(A126)')ar__2
        read(ar__2,3)
     +  Disc_2(i__),RefCode_1(i__),Meth(i__),E(i__),Text_1(i__)
c    ..............Just test output...........
        write(6,3)
     +  Disc_2(i__),RefCode_1(i__),Meth(i__),E(i__),Text_1(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

C=============================================================================
      stop
      end