FORTRAN Generation
(/./ftp/cats/J/ApJS/182/378)

Conversion of standardized ReadMe file for file /./ftp/cats/J/ApJS/182/378 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 2026-Jun-08
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. J/ApJS/182/378     HI and OVI absorbers in nearby Universe    (Wakker+, 2009)
*================================================================================
*The relationship between intergalactic H I/O VI and nearby (z<0.017) galaxies.
*    Wakker B.P., Savage B.D.
*   <Astrophys. J. Suppl. Ser., 182, 378-467 (2009)>
*   =2009ApJS..182..378W
C=============================================================================

C  Internal variables

      integer*4 i__

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

C  Declarations for 'table1.dat'	! Target exposure list (76 different targets)

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

C  Position composed of: GLON GLAT
      character*15  Target     (nr__) ! Name of the target
      real*4        GLON       (nr__) ! (deg) Galactic longitude
      real*4        GLAT       (nr__) ! (deg) Galactic latitude
      real*4        z          (nr__) ! Redshift
      character*6   Type       (nr__) ! Object type
      real*4        Exp        (nr__) ! (ks) Exposure time (2)
      real*4        Flux       (nr__) ! (10-16W/m2/nm) Flux at 1031{AA} or 1238{AA} (3)
      integer*4     SN1        (nr__) ! ? Signal to noise ratio at 1031{AA} (4)
      integer*4     SN2        (nr__) ! ? Signal to noise ratio at 977{AA} (4)
      integer*4     SN3        (nr__) ! ? Signal to noise ratio at 1238{AA} (4)
      character*89  Set        (nr__) ! FUSE and HST datasets (1)
*Note (1): FUSE datasets consist of an eight-character code giving the
*     observing program, object id, and exposure number; HST datasets list a
*     four-character program id, followed by a two-digit object id and a
*     three-digit observation id, which we omit; for HST STIS observations
*     an extra identifier between parentheses shows whether the data were
*     taken using the G140M grating centered at 1222{AA}(Ga) or 1272{AA}(Gb)
*     or with the E140M echelle (E); datasets starting with "Z" were
*     obtained with the GHRS.
*Note (2): Exposure time given separately for each FUSE exposure (which
*     corresponds to several orbits); only a single value is given for each
*     multiorbit HST exposure.
*Note (3): For FUSE datasets this is the flux at 1031{AA}, while for targets
*     with only HST datasets it is the flux at 1238{AA}. Unit of flux is
*     10^-14^erg/cm^2^/s/{AA}.
*Note (4): For FUSE data the resolution element is 20km/s, while for HST
*     data it depends on the instrument and grating: 20km/s for GHRS
*     spectra, 30km/s for STIS grating (G140M) exposures, and 6.5km/s for
*     STIS echelle (E140M) data.

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

C  Declarations for 'table3.dat'	! HI and OVI results

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

      character*15  Target_1   (nr__1) ! Name of extragalactic UV-bright target,
*                                   using the conventions of Wakker et al. (2003,
*                                   Cat. J/ApJS/146/1)
      character*26  Galaxy     (nr__1) ! Name of galaxy near the sightline (1)
      character*7   Group      (nr__1) ! Group galaxy belongs to; X if none
      integer*4     HV         (nr__1) ! (km/s) Heliocentric velocity of galaxy
      real*4        Diam       (nr__1) ! (kpc) ?=-1.0 Diameter of galaxy (usually D25) (2)
      real*4        rho        (nr__1) ! (kpc) ? Impact parameter to UV-bright target (3)
      character*1   Qual       (nr__1) ! Reliability flag (4)
      character*3   HI         (nr__1) ! HI quality flag (5)
      character*3   OVI        (nr__1) ! OVI quality flag (5)
      character*3   CIII       (nr__1) ! CIII quality flag (5)
      character*1   Sp         (nr__1) ! [GSEx] HST spectrograph (6)
      integer*4     EWLya      (nr__1) ! (10-13m) ? Equivalent width for Ly{alpha}
      integer*4     n_EWLya    (nr__1) ! [-3/-1]? flag for non-detection (7)
      integer*4     e_EWLya    (nr__1) ! (10-13m) ?=-1 Statistical error for EWLya
      integer*4     esEWLya    (nr__1) ! (10-13m) ?=-1 Systematic error for EWLya
      integer*4     LyaVel     (nr__1) ! (km/s) ?=-1 Velocity of detected Lya line
      character*5   Lya        (nr__1) ! Lineid flag for Lya (8)
      integer*4     EWLyb      (nr__1) ! (10-13m) ? Equivalent width for Ly{beta}
      integer*4     n_EWLyb    (nr__1) ! [-3/-1]? flag for non-detection (7)
      integer*4     e_EWLyb    (nr__1) ! (10-13m) ?=-1 Statistical error for EWLyb
      integer*4     esEWLyb    (nr__1) ! (10-13m) ?=-1 Systematic error for EWLyb
      integer*4     LybVel     (nr__1) ! (km/s) ?=-1 Velocity of detected Lyb line
      character*5   Lyb        (nr__1) ! Lineid flag for Lyb (8)
      integer*4     EWLyg      (nr__1) ! (10-13m) ? Equivalent width for Ly{gamma}
      integer*4     n_EWLyg    (nr__1) ! [-3/-1]? flag for non-detection (7)
      integer*4     e_EWLyg    (nr__1) ! (10-13m) ?=-1 Statistical error for EWLyg
      integer*4     esEWLyg    (nr__1) ! (10-13m) ?=-1 Systematic error for EWLyg
      integer*4     LygVel     (nr__1) ! (km/s) ?=-1 Velocity of detected Ly{gamma} line
      character*5   Lyg        (nr__1) ! Lineid flag for Ly{gamma} (8)
      integer*4     EWOVIa     (nr__1) ! (10-13m) ? Equivalent width for OVIa; OVI-1031
      integer*4     n_EWOVIa   (nr__1) ! [-3/-1]? flag for non-detection (7)
      integer*4     e_EWOVIa   (nr__1) ! (10-13m) ?=-1 Statistical error for EWOVIa
      integer*4     esEWOVIa   (nr__1) ! (10-13m) ?=-1 Systematic error for EWOVIa
      integer*4     OVIaVel    (nr__1) ! (km/s) ?=-1 Velocity of detected OVIa line
      character*7   OVIa       (nr__1) ! Lineid flag for OVIa (8)
      integer*4     EWOVIb     (nr__1) ! (10-13m) ? Equivalent width for OVIb; OVI-1037
      integer*4     n_EWOVIb   (nr__1) ! [-3/-1]? flag for non-detection (7)
      integer*4     e_EWOVIb   (nr__1) ! (10-13m) ?=-1 Statistical error for EWOVIb
      integer*4     esEWOVIb   (nr__1) ! (10-13m) ?=-1 Systematic error for EWOVIb
      integer*4     OVIbVel    (nr__1) ! (km/s) ?=-1 Velocity of detected OVIb line
      character*5   OVIb       (nr__1) ! Lineid flag for OVIb (8)
      integer*4     EWCIII     (nr__1) ! (10-13m) ? Equivalent width for CIII
      integer*4     n_EWCIII   (nr__1) ! [-3/-1]? flag for non-detection (7)
      integer*4     e_EWCIII   (nr__1) ! (10-13m) ?=-1 Statistical error for EWCIII
      integer*4     esEWCIII   (nr__1) ! (10-13m) ?=-1 Systematic error for EWCIII
      integer*4     CIIIVel    (nr__1) ! (km/s) ?=-1 Velocity of detected CIII line
      character*5   fCIII      (nr__1) ! Lineid flag for CIII (8)
*Note (1): With few exceptions, these names are the preferred names in the RC3
*          (first NGC, then UGC, ESO or other), or, if not present in the RC3,
*          the preferred name in NED.
*Note (2): Calculated from the angular diameter given in the RC3 or NED and the
*          galaxy's distance (see Section 2.2).
*Note (3): Impact parameter between background UV target and foreground galaxy,
*          calculated from the latter's distance and the angular separation
*          between the galaxy's center and the background target.
*Note (4): The reliability of associating the detected absorption lines with
*          the listed galaxy. Flag as follows:
*  ! = unambiguous detections or non-detections.
*  + = there is more than one absorber associated with one galaxy.
*  2 = there are two absorbers associated with two galaxies, but it is possible
*      that the choice could be reversed.
*  1 = when a choice was made between two galaxies for assigning the absorber,
*      giving a non-detection to one of them.
*  g = absorber associated with a group, rather than a particular galaxy.
*  ? = ambigous associations.
*  > = non-detections with upper limit worse than 50m{AA}.
*  x = none of the lines are measureable.
*  i = absorbers without associated galaxy within 1Mpc.
*Note (5): Flags show the quality of the (non)detections:
*   + = the detected HI, OVI or CIII line can clearly be associated with the
*       galaxy.
* (+) = is given for uncertain detections.
*   - = non-detection  with 3sigma equivalent width limit better than 50m{AA}.
* (-) = non-detections with 3sigma equivalent width limit worse than 50m{AA}.
*Note (6): Spectrograph is abbreviated as:
*  G = GHRS
*  S = STIS-G140M
*  E = STIS-E140M
*  x = none
*Note (7): Equivalent width limits are indicated as follows:
* -1 = no measurement could be made
* -2 = upper limits (in which case the e_EW column gives the 3-sigma equivalent
*      width upper limit
* -3 = when the possible absorption is contaminated.
*Note (8): "Lineid flag":
*   X = there is no data.
*  UL = only an upper limit could be set
*   If the line id corresponds to the right column (for Ly{alpha},
*   Ly{beta}, Ly{gamma}, OVIa, OVIb, CIII), that line is detected with
*   the given equivalent width. Other line ids (flag=-3) give the
*   contaminating absorption line.

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

C  Declarations for 'table13.dat'	! All known galaxies with velocity less than
                             7000km/s and impact parameter less than 2Mpc to
                             the 76 extragalactic sightlines in the sample

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

C  Position composed of: GLON GLAT
      character*15  Target_2   (nr__2) ! Name of the AGN target
      character*29  Galaxy_1   (nr__2) ! Name of galaxy near the AGN sightline
      character*7   Type_1     (nr__2) ! Galaxy type (for RC3 galaxies)
      real*4        GLON_1     (nr__2) ! (deg) Galactic longitude
      real*4        GLAT_1     (nr__2) ! (deg) Galactic latitude
      integer*4     HV_1       (nr__2) ! (km/s) Heliocentric velocity of galaxy
      real*4        Dist       (nr__2) ! (Mpc) Estimated distance of galaxy
      real*4        Diam_1     (nr__2) ! (kpc) ?=0.0 Estimated diameter of galaxy
      real*4        Sep        (nr__2) ! (deg) Angular separation to background UV target
      integer*4     rho_1      (nr__2) ! (kpc) Impact parameter of background UV target
      character*11  Note       (nr__2) ! Extra information (1)
*Note (1): Column gives extra information:
*   * LGGNNN-NN.N : group membership (LGGNN)-followed by the distance that
*     would have been derived if the galaxy's velocity was used directly,
*   * ASSUMEV     : whether the galaxy's velocity is unknown,
*   * ASSUMEV-CHK : velocity unknown and checked in NED,
*   * MINDIST     : the minimum distance (2.9Mpc) was assumed.
*     A plain number gives the velocity distance for galaxies for which a
*     better distance estimate was instead taken from the literature. Note
*     that this table is inhomogeneous. Near some sightlines deep searches
*     for dwarf galaxies exist, near others they don't. The table should not
*     be used for statistical analyses for faint galaxies. Only for galaxies
*     with diameter >7.5kpc is it more-or-less complete.

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

C  Loading file 'table1.dat'	! Target exposure list (76 different targets)

C  Format for file interpretation

    1 format(
     +  A15,2X,F6.2,1X,F6.2,1X,F6.4,1X,A6,1X,F5.1,1X,F4.1,1X,I2,1X,I2,
     +  1X,I2,1X,A89)

C  Effective file loading

      open(unit=1,status='old',file=
     +'table1.dat')
      write(6,*) '....Loading file: table1.dat'
      do i__=1,134
        read(1,'(A154)')ar__
        read(ar__,1)
     +  Target(i__),GLON(i__),GLAT(i__),z(i__),Type(i__),Exp(i__),
     +  Flux(i__),SN1(i__),SN2(i__),SN3(i__),Set(i__)
        if(ar__(57:58) .EQ. '') SN1(i__) = iNULL__
        if(ar__(60:61) .EQ. '') SN2(i__) = iNULL__
        if(ar__(63:64) .EQ. '') SN3(i__) = iNULL__
c    ..............Just test output...........
        write(6,1)
     +  Target(i__),GLON(i__),GLAT(i__),z(i__),Type(i__),Exp(i__),
     +  Flux(i__),SN1(i__),SN2(i__),SN3(i__),Set(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'table3.dat'	! HI and OVI results

C  Format for file interpretation

    2 format(
     +  A15,1X,A26,1X,A7,1X,I4,1X,F4.1,1X,F6.1,1X,A1,1X,A3,1X,A3,1X,
     +  A3,1X,A1,1X,I4,I2,1X,I3,1X,I3,1X,I4,1X,A5,1X,I4,I2,1X,I3,1X,
     +  I3,1X,I4,1X,A5,1X,I4,I2,1X,I3,1X,I3,1X,I4,1X,A5,1X,I4,I2,1X,
     +  I3,1X,I3,1X,I4,1X,A7,1X,I2,I2,1X,I3,1X,I3,1X,I4,1X,A5,1X,I4,
     +  I2,1X,I3,1X,I3,1X,I4,1X,A5)

C  Effective file loading

      open(unit=1,status='old',file=
     +'table3.dat')
      write(6,*) '....Loading file: table3.dat'
      do i__=1,406
        read(1,'(A239)')ar__1
        read(ar__1,2)
     +  Target_1(i__),Galaxy(i__),Group(i__),HV(i__),Diam(i__),
     +  rho(i__),Qual(i__),HI(i__),OVI(i__),CIII(i__),Sp(i__),
     +  EWLya(i__),n_EWLya(i__),e_EWLya(i__),esEWLya(i__),LyaVel(i__),
     +  Lya(i__),EWLyb(i__),n_EWLyb(i__),e_EWLyb(i__),esEWLyb(i__),
     +  LybVel(i__),Lyb(i__),EWLyg(i__),n_EWLyg(i__),e_EWLyg(i__),
     +  esEWLyg(i__),LygVel(i__),Lyg(i__),EWOVIa(i__),n_EWOVIa(i__),
     +  e_EWOVIa(i__),esEWOVIa(i__),OVIaVel(i__),OVIa(i__),
     +  EWOVIb(i__),n_EWOVIb(i__),e_EWOVIb(i__),esEWOVIb(i__),
     +  OVIbVel(i__),OVIb(i__),EWCIII(i__),n_EWCIII(i__),
     +  e_EWCIII(i__),esEWCIII(i__),CIIIVel(i__),fCIII(i__)
        if(ar__1(62:67) .EQ. '') rho(i__) = rNULL__
        if(ar__1(85:88) .EQ. '') EWLya(i__) = iNULL__
        if(ar__1(89:90) .EQ. '') n_EWLya(i__) = iNULL__
        if(ar__1(111:114) .EQ. '') EWLyb(i__) = iNULL__
        if(ar__1(115:116) .EQ. '') n_EWLyb(i__) = iNULL__
        if(ar__1(137:140) .EQ. '') EWLyg(i__) = iNULL__
        if(ar__1(141:142) .EQ. '') n_EWLyg(i__) = iNULL__
        if(ar__1(163:166) .EQ. '') EWOVIa(i__) = iNULL__
        if(ar__1(167:168) .EQ. '') n_EWOVIa(i__) = iNULL__
        if(ar__1(191:192) .EQ. '') EWOVIb(i__) = iNULL__
        if(ar__1(193:194) .EQ. '') n_EWOVIb(i__) = iNULL__
        if(ar__1(215:218) .EQ. '') EWCIII(i__) = iNULL__
        if(ar__1(219:220) .EQ. '') n_EWCIII(i__) = iNULL__
c    ..............Just test output...........
        write(6,2)
     +  Target_1(i__),Galaxy(i__),Group(i__),HV(i__),Diam(i__),
     +  rho(i__),Qual(i__),HI(i__),OVI(i__),CIII(i__),Sp(i__),
     +  EWLya(i__),n_EWLya(i__),e_EWLya(i__),esEWLya(i__),LyaVel(i__),
     +  Lya(i__),EWLyb(i__),n_EWLyb(i__),e_EWLyb(i__),esEWLyb(i__),
     +  LybVel(i__),Lyb(i__),EWLyg(i__),n_EWLyg(i__),e_EWLyg(i__),
     +  esEWLyg(i__),LygVel(i__),Lyg(i__),EWOVIa(i__),n_EWOVIa(i__),
     +  e_EWOVIa(i__),esEWOVIa(i__),OVIaVel(i__),OVIa(i__),
     +  EWOVIb(i__),n_EWOVIb(i__),e_EWOVIb(i__),esEWOVIb(i__),
     +  OVIbVel(i__),OVIb(i__),EWCIII(i__),n_EWCIII(i__),
     +  e_EWCIII(i__),esEWCIII(i__),CIIIVel(i__),fCIII(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'table13.dat'	! All known galaxies with velocity less than
*                             7000km/s and impact parameter less than 2Mpc to
*                             the 76 extragalactic sightlines in the sample

C  Format for file interpretation

    3 format(
     +  A15,2X,A29,1X,A7,1X,F6.2,1X,F6.2,1X,I5,1X,F5.1,1X,F4.1,1X,
     +  F5.2,1X,I4,1X,A11)

C  Effective file loading

      open(unit=1,status='old',file=
     +'table13.dat')
      write(6,*) '....Loading file: table13.dat'
      do i__=1,6382
        read(1,'(A108)')ar__2
        read(ar__2,3)
     +  Target_2(i__),Galaxy_1(i__),Type_1(i__),GLON_1(i__),
     +  GLAT_1(i__),HV_1(i__),Dist(i__),Diam_1(i__),Sep(i__),
     +  rho_1(i__),Note(i__)
c    ..............Just test output...........
        write(6,3)
     +  Target_2(i__),Galaxy_1(i__),Type_1(i__),GLON_1(i__),
     +  GLAT_1(i__),HV_1(i__),Dist(i__),Diam_1(i__),Sep(i__),
     +  rho_1(i__),Note(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

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