FORTRAN Generation
(/./ftp/cats/I/317)

Conversion of standardized ReadMe file for file /./ftp/cats/I/317 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.8, on 2014-Oct-25
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__=-1.e37)     	! NULL real number
      parameter  (iNULL__=-2147483647)	! NULL int  number

C=============================================================================
Cat. I/317               The PPMXL Catalog                   (Roeser+ 2010)
*================================================================================
*The PPMXL catalog of positions and proper motions on the ICRS. Combining
*USNO-B1.0 and the two Micron All Sky Survey (2MASS).
*     Roeeser S., Demleitner M., Schilbach E.
*    <Astron. J. 139, 2440 (2010)>
*    =2010AJ....139.2440R
C=============================================================================

C  Internal variables

      integer*4 i__

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

C  Declarations for 'sample.out'	! Example of formatted output

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

      character*19  PPMXL      (nr__) ! Identifier (5)
      real*8        RAdeg      (nr__) ! (deg) Right Ascension J2000.0, epoch 2000.0
      real*8        DEdeg      (nr__) ! (deg) Declination J2000.0, epoch 2000.0
      real*8        pmRA       (nr__) ! (mas/yr) Proper Motion in RA*cos(DEdeg)
      real*8        pmDE       (nr__) ! (mas/yr) Proper Motion in Dec
      real*8        epRA       (nr__) ! (yr) Mean Epoch (RA)
      real*8        epDE       (nr__) ! (yr) Mean Epoch (Dec)
      integer*4     e_RAdeg    (nr__) ! (mas) Mean error in RA*cos(DEdeg) at mean epoch (6)
      integer*4     e_DEdeg    (nr__) ! (mas) Mean error in Dec at mean epoch (6)
      real*4        e_pmRA     (nr__) ! (mas/yr) Mean error in pmRA*cos(DEdeg)
      real*4        e_pmDE     (nr__) ! (mas/yr) Mean error in pmDec
      real*4        Jmag       (nr__) ! (mag) ?=- J magnitude from 2MASS (Cat. II/246)
      real*4        e_Jmag     (nr__) ! (mag) ?=- J total magnitude uncertainty
      real*4        Hmag       (nr__) ! (mag) ?=- H magnitude from 2MASS (Cat. II/246)
      real*4        e_Hmag     (nr__) ! (mag) ?=- H total magnitude uncertainty
      real*4        Kmag       (nr__) ! (mag) ?=- Ks magnitude from 2MASS (Cat. II/246)
      real*4        e_Kmag     (nr__) ! (mag) ?=- Ks total magnitude uncertainty
      real*4        b1mag      (nr__) ! (mag) ?=- B mag from USNO-B, first epoch (1)
      real*4        b2mag      (nr__) ! (mag) ?=- B mag from USNO-B, second epoch (1)
      real*4        r1mag      (nr__) ! (mag) ?=- R mag from USNO-B, first epoch (1)
      real*4        r2mag      (nr__) ! (mag) ?=- R mag from USNO-B, second epoch (1)
      real*4        imag       (nr__) ! (mag) ?=- I mag from USNO-B (1)
      character*5   Smags      (nr__) ! [0-8-] Surveys used for USNO-B magnitudes (2)
      integer*4     No         (nr__) ! ?=- Number of observations used (4)
      integer*4     fl         (nr__) ! Flags (3)
*Note (1): Magnitudes from USNO-B (Cat. I/284) should be used with care,
*     photometric calibration may be severely off for some plates.
*
*     For objects from PPMX (Cat I/312, bit#1 set in "fl"), these
*     magnitudes have a special meaning:
*     ------------------------------------------------------------
*     Column  [PPMX]   Content
*     ------------------------------------------------------------
*     b1mag   [Cmag]   Catalogue magnitude from source
*     b2mag   [Bmag]   Johnson B magnitude
*     r1mag   [Rmag]   calculated Ru (UCAC) magnitude from source
*     r2mag    ---     (always empty)
*     imag    [Vmag]   Johnson V magnitude
*     ------------------------------------------------------------
*Note (2): Flags indicating the origin of the 5 USNO-B magnitudes,
*     (except when bit#1 set in "fl", see Note(1) above):
*     ---------------------------------------------------
*     #   Survey   Emuls  Wavelen.   Zones  Fld  Dates
*                           (nm)                  Obs.
*     ---------------------------------------------------
*     0 = POSS-I   103a-O  350-500 -30..+90 936 1949-1965
*     1 = POSS-I   103a-E  620-670 -30..+90 936 1949-1965
*     2 = POSS-II  IIIa-J  385-540 +00..+87 897 1985-2000
*     3 = POSS-II  IIIa-F  610-690 +00..+87 897 1985-1999
*     4 = SERC-J   IIIa-J  385-540 -90..-05 606 1978-1990
*     5 = ESO-R    IIIa-F  630-690 -90..-05 624 1974-1994
*     6 = AAO-R    IIIa-F  590-690 -90..-20 606 1985-1998
*     7 = POSS-II* IV-N    730-900 +05..+87 800 1981-2002
*     8 = SERC-I   IV-N    715-900 -90..+00 892 1978-2002
*     ---------------------------------------------------
*     (*) Here #7 includes the SERC-I plates in the zones
*         +05..+20 (numbered #9 in USNO-B1.0)
*     ---------------------------------------------------
*Note (3): The flag is a bitwise or number ({Sigma}2^i^)
*      which each bit number (i) has the meaning:
*      #0 (1) = if set, one of the coordinates had an excessively large
*               chi square.
*      #1 (2) = Row is from PPMX (Cat. I/312). These objects are mostly
*               Tycho stars that were masked out of USNO-B. When this
*               bit is set, the USNO magnitudes (b1mag through imag)
*               have special meanings, see Note (1) above.
*      #2 (4) = Row is from PPMX (Cat. I/312) and replaces a single row
*               from USNO-B. This is done when the astrometry from PPMX
*               was better (in terms of error estimates) than the astrometry
*               of the corresponding PPMXL object.
*      #3 (8) = Row replaces multiple USNO-B1.0 objects. When PPMX contains
*               an object that has more than one counterpart in PPMXL, all
*               such counterparts are discarded on the assumption that they
*               should have been matched in USNO-B1.0 or result from
*               erroneous matches. For these rows, bit#1 is always 1.
*Note (4): No may be blank (null) for stars coming from ARIHIP or
*     Tycho-2 via PPMX (i.e. bit#1 is set in "fl")
*Note (5): the identifier is a 64-bit integer representing the "pixel"
*      number of the USNO-B 1.0 object in Q3C (QuadTreeCube, Koposov and
*      Glushkova 2006IAUJD..13E..43K [ADASS 2005]).
*Note (6): the mean errors at epoch J2000 are the convolution of the mean
*     error at the mean epoch and the error due to the propagation of the
*     error on the proper motion, i.e.
*     {sigma}(J2000) = sqrt[{sigma}_0_^2^ + ((2000-t_0_)*{sigma}(pm))^2^]

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

C  Declarations for 'dat/*'	! *PPMXL catalog organized by declination zones of 15'

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

      character*19  PPMXL_1    (nr__1) ! Identifier (5)
      real*8        RAdeg_1    (nr__1) ! (deg) Right Ascension J2000.0, epoch 2000.0
      real*8        DEdeg_1    (nr__1) ! (deg) Declination J2000.0, epoch 2000.0
      real*8        pmRA_1     (nr__1) ! (mas/yr) Proper Motion in RA*cos(DEdeg)
      real*8        pmDE_1     (nr__1) ! (mas/yr) Proper Motion in Dec
      real*8        epRA_1     (nr__1) ! (yr) Mean Epoch (RA)
      real*8        epDE_1     (nr__1) ! (yr) Mean Epoch (Dec)
      integer*4     e_RAdeg_1  (nr__1) ! (mas) Mean error in RA*cos(DEdeg) at mean epoch (6)
      integer*4     e_DEdeg_1  (nr__1) ! (mas) Mean error in Dec at mean epoch (6)
      real*4        e_pmRA_1   (nr__1) ! (mas/yr) Mean error in pmRA*cos(DEdeg)
      real*4        e_pmDE_1   (nr__1) ! (mas/yr) Mean error in pmDec
      real*4        Jmag_1     (nr__1) ! (mag) ?=- J magnitude from 2MASS (Cat. II/246)
      real*4        e_Jmag_1   (nr__1) ! (mag) ?=- J total magnitude uncertainty
      real*4        Hmag_1     (nr__1) ! (mag) ?=- H magnitude from 2MASS (Cat. II/246)
      real*4        e_Hmag_1   (nr__1) ! (mag) ?=- H total magnitude uncertainty
      real*4        Kmag_1     (nr__1) ! (mag) ?=- Ks magnitude from 2MASS (Cat. II/246)
      real*4        e_Kmag_1   (nr__1) ! (mag) ?=- Ks total magnitude uncertainty
      real*4        b1mag_1    (nr__1) ! (mag) ?=- B mag from USNO-B, first epoch (1)
      real*4        b2mag_1    (nr__1) ! (mag) ?=- B mag from USNO-B, second epoch (1)
      real*4        r1mag_1    (nr__1) ! (mag) ?=- R mag from USNO-B, first epoch (1)
      real*4        r2mag_1    (nr__1) ! (mag) ?=- R mag from USNO-B, second epoch (1)
      real*4        imag_1     (nr__1) ! (mag) ?=- I mag from USNO-B (1)
      character*5   Smags_1    (nr__1) ! [0-8-] Surveys used for USNO-B magnitudes (2)
      integer*4     No_1       (nr__1) ! ?=- Number of observations used (4)
      integer*4     fl_1       (nr__1) ! Flags (3)
*Note (1): Magnitudes from USNO-B (Cat. I/284) should be used with care,
*     photometric calibration may be severely off for some plates.
*
*     For objects from PPMX (Cat I/312, bit#1 set in "fl"), these
*     magnitudes have a special meaning:
*     ------------------------------------------------------------
*     Column  [PPMX]   Content
*     ------------------------------------------------------------
*     b1mag   [Cmag]   Catalogue magnitude from source
*     b2mag   [Bmag]   Johnson B magnitude
*     r1mag   [Rmag]   calculated Ru (UCAC) magnitude from source
*     r2mag    ---     (always empty)
*     imag    [Vmag]   Johnson V magnitude
*     ------------------------------------------------------------
*Note (2): Flags indicating the origin of the 5 USNO-B magnitudes,
*     (except when bit#1 set in "fl", see Note(1) above):
*     ---------------------------------------------------
*     #   Survey   Emuls  Wavelen.   Zones  Fld  Dates
*                           (nm)                  Obs.
*     ---------------------------------------------------
*     0 = POSS-I   103a-O  350-500 -30..+90 936 1949-1965
*     1 = POSS-I   103a-E  620-670 -30..+90 936 1949-1965
*     2 = POSS-II  IIIa-J  385-540 +00..+87 897 1985-2000
*     3 = POSS-II  IIIa-F  610-690 +00..+87 897 1985-1999
*     4 = SERC-J   IIIa-J  385-540 -90..-05 606 1978-1990
*     5 = ESO-R    IIIa-F  630-690 -90..-05 624 1974-1994
*     6 = AAO-R    IIIa-F  590-690 -90..-20 606 1985-1998
*     7 = POSS-II* IV-N    730-900 +05..+87 800 1981-2002
*     8 = SERC-I   IV-N    715-900 -90..+00 892 1978-2002
*     ---------------------------------------------------
*     (*) Here #7 includes the SERC-I plates in the zones
*         +05..+20 (numbered #9 in USNO-B1.0)
*     ---------------------------------------------------
*Note (3): The flag is a bitwise or number ({Sigma}2^i^)
*      which each bit number (i) has the meaning:
*      #0 (1) = if set, one of the coordinates had an excessively large
*               chi square.
*      #1 (2) = Row is from PPMX (Cat. I/312). These objects are mostly
*               Tycho stars that were masked out of USNO-B. When this
*               bit is set, the USNO magnitudes (b1mag through imag)
*               have special meanings, see Note (1) above.
*      #2 (4) = Row is from PPMX (Cat. I/312) and replaces a single row
*               from USNO-B. This is done when the astrometry from PPMX
*               was better (in terms of error estimates) than the astrometry
*               of the corresponding PPMXL object.
*      #3 (8) = Row replaces multiple USNO-B1.0 objects. When PPMX contains
*               an object that has more than one counterpart in PPMXL, all
*               such counterparts are discarded on the assumption that they
*               should have been matched in USNO-B1.0 or result from
*               erroneous matches. For these rows, bit#1 is always 1.
*Note (4): No may be blank (null) for stars coming from ARIHIP or
*     Tycho-2 via PPMX (i.e. bit#1 is set in "fl")
*Note (5): the identifier is a 64-bit integer representing the "pixel"
*      number of the USNO-B 1.0 object in Q3C (QuadTreeCube, Koposov and
*      Glushkova 2006IAUJD..13E..43K [ADASS 2005]).
*Note (6): the mean errors at epoch J2000 are the convolution of the mean
*     error at the mean epoch and the error due to the propagation of the
*     error on the proper motion, i.e.
*     {sigma}(J2000) = sqrt[{sigma}_0_^2^ + ((2000-t_0_)*{sigma}(pm))^2^]

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

C  Loading file 'sample.out'	! Example of formatted output

C  Format for file interpretation

    1 format(
     +  A19,1X,F10.6,F10.6,1X,F8.1,1X,F8.1,1X,F7.2,1X,F7.2,1X,I3,1X,
     +  I3,1X,F4.1,1X,F4.1,1X,F6.3,1X,F5.3,1X,F6.3,1X,F5.3,1X,F6.3,1X,
     +  F5.3,1X,F5.2,1X,F5.2,1X,F5.2,1X,F5.2,1X,F5.2,1X,A5,1X,I2,1X,I2)

C  Effective file loading

      open(unit=1,file='sample.out', status='old')
      write(6,*) '....Loading file: sample.out'
      do i__=1,111
        read(1,'(A173)')ar__
        read(ar__,1)
     +  PPMXL(i__),RAdeg(i__),DEdeg(i__),pmRA(i__),pmDE(i__),
     +  epRA(i__),epDE(i__),e_RAdeg(i__),e_DEdeg(i__),e_pmRA(i__),
     +  e_pmDE(i__),Jmag(i__),e_Jmag(i__),Hmag(i__),e_Hmag(i__),
     +  Kmag(i__),e_Kmag(i__),b1mag(i__),b2mag(i__),r1mag(i__),
     +  r2mag(i__),imag(i__),Smags(i__),No(i__),fl(i__)
        if (Jmag(i__) .EQ. 2.2233e-322) Jmag(i__) =  rNULL__
        if (e_Jmag(i__) .EQ. 2.2233e-322) e_Jmag(i__) =  rNULL__
        if (Hmag(i__) .EQ. 2.2233e-322) Hmag(i__) =  rNULL__
        if (e_Hmag(i__) .EQ. 2.2233e-322) e_Hmag(i__) =  rNULL__
        if (Kmag(i__) .EQ. 2.2233e-322) Kmag(i__) =  rNULL__
        if (e_Kmag(i__) .EQ. 2.2233e-322) e_Kmag(i__) =  rNULL__
        if (b1mag(i__) .EQ. 2.2233e-322) b1mag(i__) =  rNULL__
        if (b2mag(i__) .EQ. 2.2233e-322) b2mag(i__) =  rNULL__
        if (r1mag(i__) .EQ. 2.2233e-322) r1mag(i__) =  rNULL__
        if (r2mag(i__) .EQ. 2.2233e-322) r2mag(i__) =  rNULL__
        if (imag(i__) .EQ. 2.2233e-322) imag(i__) =  rNULL__
        if (No(i__) .EQ. 45) No(i__) =  iNULL__
c    ..............Just test output...........
        write(6,1)
     +  PPMXL(i__),RAdeg(i__),DEdeg(i__),pmRA(i__),pmDE(i__),
     +  epRA(i__),epDE(i__),e_RAdeg(i__),e_DEdeg(i__),e_pmRA(i__),
     +  e_pmDE(i__),Jmag(i__),e_Jmag(i__),Hmag(i__),e_Hmag(i__),
     +  Kmag(i__),e_Kmag(i__),b1mag(i__),b2mag(i__),r1mag(i__),
     +  r2mag(i__),imag(i__),Smags(i__),No(i__),fl(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'dat/*'	! *PPMXL catalog organized by declination zones of 15'

C  Format for file interpretation

    2 format(
     +  A19,1X,F10.6,F10.6,1X,F8.1,1X,F8.1,1X,F7.2,1X,F7.2,1X,I3,1X,
     +  I3,1X,F4.1,1X,F4.1,1X,F6.3,1X,F5.3,1X,F6.3,1X,F5.3,1X,F6.3,1X,
     +  F5.3,1X,F5.2,1X,F5.2,1X,F5.2,1X,F5.2,1X,F5.2,1X,A5,1X,I2,1X,I2)

C  Effective file loading

      open(unit=1,file='dat/*', status='old')
      write(6,*) '....Loading file: dat/*'
      do i__=1,720
        read(1,'(A173)')ar__1
        read(ar__1,2)
     +  PPMXL_1(i__),RAdeg_1(i__),DEdeg_1(i__),pmRA_1(i__),
     +  pmDE_1(i__),epRA_1(i__),epDE_1(i__),e_RAdeg_1(i__),
     +  e_DEdeg_1(i__),e_pmRA_1(i__),e_pmDE_1(i__),Jmag_1(i__),
     +  e_Jmag_1(i__),Hmag_1(i__),e_Hmag_1(i__),Kmag_1(i__),
     +  e_Kmag_1(i__),b1mag_1(i__),b2mag_1(i__),r1mag_1(i__),
     +  r2mag_1(i__),imag_1(i__),Smags_1(i__),No_1(i__),fl_1(i__)
        if (Jmag_1(i__) .EQ. 2.2233e-322) Jmag_1(i__) =  rNULL__
        if (e_Jmag_1(i__) .EQ. 2.2233e-322) e_Jmag_1(i__) =  rNULL__
        if (Hmag_1(i__) .EQ. 2.2233e-322) Hmag_1(i__) =  rNULL__
        if (e_Hmag_1(i__) .EQ. 2.2233e-322) e_Hmag_1(i__) =  rNULL__
        if (Kmag_1(i__) .EQ. 2.2233e-322) Kmag_1(i__) =  rNULL__
        if (e_Kmag_1(i__) .EQ. 2.2233e-322) e_Kmag_1(i__) =  rNULL__
        if (b1mag_1(i__) .EQ. 2.2233e-322) b1mag_1(i__) =  rNULL__
        if (b2mag_1(i__) .EQ. 2.2233e-322) b2mag_1(i__) =  rNULL__
        if (r1mag_1(i__) .EQ. 2.2233e-322) r1mag_1(i__) =  rNULL__
        if (r2mag_1(i__) .EQ. 2.2233e-322) r2mag_1(i__) =  rNULL__
        if (imag_1(i__) .EQ. 2.2233e-322) imag_1(i__) =  rNULL__
        if (No_1(i__) .EQ. 45) No_1(i__) =  iNULL__
c    ..............Just test output...........
        write(6,2)
     +  PPMXL_1(i__),RAdeg_1(i__),DEdeg_1(i__),pmRA_1(i__),
     +  pmDE_1(i__),epRA_1(i__),epDE_1(i__),e_RAdeg_1(i__),
     +  e_DEdeg_1(i__),e_pmRA_1(i__),e_pmDE_1(i__),Jmag_1(i__),
     +  e_Jmag_1(i__),Hmag_1(i__),e_Hmag_1(i__),Kmag_1(i__),
     +  e_Kmag_1(i__),b1mag_1(i__),b2mag_1(i__),r1mag_1(i__),
     +  r2mag_1(i__),imag_1(i__),Smags_1(i__),No_1(i__),fl_1(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

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