FORTRAN Generation
(/./ftp/cats/J/ApJ/845/157)

Conversion of standardized ReadMe file for file /./ftp/cats/J/ApJ/845/157 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-Oct-12
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/ApJ/845/157  IMF in 3 low-redshift strong lenses from SNELLS  (Newman+, 2017)
*================================================================================
*The initial mass function in the nearest strong lenses from SNELLS: assessing
*the consistency of lensing, dynamical, and spectroscopic constraints.
*    Newman A.B., Smith R.J., Conroy C., Villaume A., van Dokkum P.
*   <Astrophys. J., 845, 157 (2017)>
*   =2017ApJ...845..157N
C=============================================================================

C  Internal variables

      integer*4 i__

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

C  Declarations for 'table1.dat'	! *Measured quantities for SNELLS lenses

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

      character*5   Name       (nr__) ! Lens system identifier
*                                       (<[SLC2015] SNL-N> in Simbad)
      real*4        z          (nr__) ! [0.03/0.06] Redshift
      real*4        Re         (nr__) ! (arcsec) Effective radius in J-band
      real*4        theta      (nr__) ! (arcsec) [2.2/2.9] Einstein radius {theta}_Ein_
      real*4        Lr         (nr__) ! (10+10Lsun) [1.6/3] Luminosity within {theta}_Ein_ in
*                                       the SDSS r-band L_r,Ein_ (1)
      real*4        e_Lr       (nr__) ! (10+10Lsun) [0.05/0.07] Lr uncertainty
      integer*4     sig        (nr__) ! (km/s) [274/335] Velocity dispersion {sigma}_raw_
*                                      measured in 4"x1.8" X-shooter IFU aperture
      integer*4     e_sig      (nr__) ! (km/s) sig uncertainty
      integer*4     Sige       (nr__) ! (km/s) [263/312] Aperture velocity dispersion
*                                       {sigma}_e/2_; see section 4.4
      integer*4     e_Sige     (nr__) ! (km/s) Sige uncertainty
      real*4        v_M_Lr_L   (nr__) ! (Msun/Lsun) [4.7/5.5] Total M_Ein_/L_r,Ein_ (2)
      real*4        e__M_Lr_L  (nr__) ! (Msun/Lsun) (M/Lr)L uncertainty
      real*4        v_M_Lr_D   (nr__) ! (Msun/Lsun) ? Total projected M/L within {theta}_Ein_
*                                       from stellar dynamical modeling only
      real*4        e__M_Lr_D  (nr__) ! (Msun/Lsun) ? (M/Lr)D uncertainty
      real*4        v_M_Lr_L_E (nr__) ! (Msun/Lsun) [3.5/4.7] Stellar M*/L based on dark
*                                       matter fractions from EAGLE
      real*4        e__M_Lr_L_E(nr__) ! (Msun/Lsun) (M/Lr)L+E uncertainty
      real*4        v_M_Lr_L_D (nr__) ! (Msun/Lsun) ? Stellar M*/L from joint lensing and
*                                       dynamics model
      real*4        e__M_Lr_L_D(nr__) ! (Msun/Lsun) ? (M/Lr)L+D uncertainty
      real*4        v_M_Lr_MW  (nr__) ! (Msun/Lsun) [3.6/4.1] Spectroscopic M*/L from Kroupa
*                                       IMF
      real*4        e__M_Lr_MW (nr__) ! (Msun/Lsun) (M/Lr)MW uncertainty
      real*4        v_M_Lr_1PL (nr__) ! (Msun/Lsun) Spectroscopic M*/L from single power-law
*                                       IMF at m<1M_{sun}_
      real*4        e__M_Lr_1PL(nr__) ! (Msun/Lsun) (M/Lr)1PL negative uncertainty
      real*4        E__M_Lr_1PL_1(nr__) ! (Msun/Lsun) (M/Lr)1PL positive uncertainty
      real*4        v_M_Lr_2PL (nr__) ! (Msun/Lsun) Spectroscopic M*/L from double power-law
*                                       IMF at m<1M_{sun}_
      real*4        e__M_Lr_2PL(nr__) ! (Msun/Lsun) (M/Lr)2PL negative uncertainty
      real*4        E__M_Lr_2PL_1(nr__) ! (Msun/Lsun) (M/Lr)2PL positive uncertainty
      real*4        v_M_Lr_2PLc(nr__) ! (Msun/Lsun) Spectroscopic M*/L from double power-law
*                                       with low-mass cutoff
      real*4        e__M_Lr_2PLc(nr__) ! (Msun/Lsun) (M/Lr)2PLc negative uncertainty
      real*4        E__M_Lr_2PLc_1(nr__) ! (Msun/Lsun) (M/Lr)2PLc positive uncertainty
      real*4        v_M_Lr_np  (nr__) ! (Msun/Lsun) [3.8/6.3] Spectroscopic M*/L,
*                                       nonparametric IMF
      real*4        e__M_Lr_np (nr__) ! (Msun/Lsun) (M/Lr)np negative uncertainty
      real*4        E__M_Lr_np_1(nr__) ! (Msun/Lsun) (M/Lr)np positive uncertainty
      real*4        aL_E       (nr__) ! (Msun/Lsun) [0.9/1.2] Mass factor {alpha} using the
*                                       lensing mass and EAGLE dark matter
*                                       contribution (3)
      real*4        e_aL_E     (nr__) ! (Msun/Lsun) aL+E uncertainty
      real*4        aL_D       (nr__) ! (Msun/Lsun) ? Mass factor {alpha} from joint lensing
*                                       and dynamical modeling (3)
      real*4        e_aL_D     (nr__) ! (Msun/Lsun) ? aL+D uncertainty
      real*4        aL_noD     (nr__) ! (Msun/Lsun) Total lensing mass; assumes no dark
*                                       matter {alpha}_L+noDM_ (3)
      real*4        e_aL_noD   (nr__) ! (Msun/Lsun) aL+noD uncertainty
      real*4        aD_noD     (nr__) ! (Msun/Lsun) ? Total dynamical mass; assumes no dark
*                                       matter {alpha}_D+noDM_ (3)
      real*4        e_aD_noD   (nr__) ! (Msun/Lsun) ? aD+noD uncertainty
      real*4        a1PL       (nr__) ! (Msun/Lsun) single power-law IMF at m<1M_{sun}_ (3)
      real*4        e_a1PL     (nr__) ! (Msun/Lsun) a1PL negative uncertainty
      real*4        E_a1PL_1   (nr__) ! (Msun/Lsun) a1PL positive uncertainty
      real*4        a2PL       (nr__) ! (Msun/Lsun) double power-law IMF at m<1M_{sun}_ (3)
      real*4        e_a2PL     (nr__) ! (Msun/Lsun) a2PL negative uncertainty
      real*4        E_a2PL_1   (nr__) ! (Msun/Lsun) a2PL positive uncertainty
      real*4        a2PLc      (nr__) ! (Msun/Lsun) double power-law with low-mass cutoff
*                                       {alpha}_2PL+cut_ (3)
      real*4        e_a2PLc    (nr__) ! (Msun/Lsun) a2PLc negative uncertainty
      real*4        E_a2PLc_1  (nr__) ! (Msun/Lsun) a2PLc positive uncertainty
      real*4        anp        (nr__) ! (Msun/Lsun) [1/1.6] nonparametric IMF
*                                       {alpha}_non-p_ (3)
      real*4        e_anp      (nr__) ! (Msun/Lsun) anp negative uncertainty
      real*4        E_anp_1    (nr__) ! (Msun/Lsun) anp positive uncertainty
*Note (1): M_r,{sun}_=4.64 AB; distance error not included.
*Note (2): Total M_Ein_/L_r,Ein_ with M_Ein_ from S15
*           (Smith+, 2015MNRAS.449.3441S)
*Note (3): The lensing and dynamical data place integral constraints on the IMF
*          via the mass factor {alpha}, also referred to as the "IMF mismatch"
*          factor; see Equation (1):
*          {alpha} = (M*/L_r_)/(M*/L_r_)_MW_
*          where (M*/L_r_)_MW_ is inferred from SPS modeling assuming a fiducial
*          Kroupa (2001MNRAS.322..231K) IMF. See section 5.2.

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

C  Declarations for 'table2.dat'	! Spectra of SNELLS lenses used in SPS analysis

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

      character*5   Name_1     (nr__1) ! Galaxy name (1)
      real*8        lambda     (nr__1) ! (0.1nm) [3918.4/10543] Observed-frame wavelength
*                                 in vacuum units (2)
      real*8        Flux       (nr__1) ! [0/211] Flux density in arbitrary units
      real*8        e_Flux     (nr__1) ! [0/3.1] The 1{sigma} uncertainty in Flux
      integer*4     Flag       (nr__1) ! [0/1] Mask pixel from fit when Flag=0
      real*4        Res        (nr__1) ! (km/s) [32/89.3] Instrumental resolution;
*                                {sigma} of gaussian
*Note (1): SNL-0 and SNL-1 include data from IMACS and from FIRE; SNL-2
*          includes only IMACS. The FIRE data begin at wavelengths > 9900 A.
*          Note that there is a discontinuity in the (arbitrary) scaling of
*          Flam between the IMACS and FIRE spectra. As described in
*          Section 2.3, for each lens, a small gap around the Ca4227 feature
*          has been filled in using the X-Shooter spectrum.
*Note (2): Only the six wavelength ranges described in Section 6 were used
*          to constrain models, regardless of the value of the Flag field.
*          This table contains slightly more wavelength coverage for
*          completeness.

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

C  Loading file 'table1.dat'	! *Measured quantities for SNELLS lenses

C  Format for file interpretation

    1 format(
     +  A5,1X,F5.3,1X,F3.1,1X,F4.2,1X,F4.2,1X,F4.2,1X,I3,1X,I2,1X,I3,
     +  1X,I2,1X,F4.2,1X,F4.2,1X,F4.2,1X,F4.2,1X,F4.2,1X,F4.2,1X,F4.2,
     +  1X,F4.2,1X,F4.2,1X,F4.2,1X,F4.2,1X,F4.2,1X,F4.2,1X,F4.2,1X,
     +  F4.2,1X,F4.2,1X,F4.2,1X,F4.2,1X,F4.2,1X,F4.2,1X,F4.2,1X,F4.2,
     +  1X,F4.2,1X,F4.2,1X,F4.2,1X,F4.2,1X,F4.2,1X,F4.2,1X,F4.2,1X,
     +  F4.2,1X,F4.2,1X,F4.2,1X,F4.2,1X,F4.2,1X,F4.2,1X,F4.2,1X,F4.2,
     +  1X,F4.2,1X,F4.2,1X,F4.2,1X,F4.2,1X,F4.2)

C  Effective file loading

      open(unit=1,status='old',file=
     +'table1.dat')
      write(6,*) '....Loading file: table1.dat'
      do i__=1,3
        read(1,'(A254)')ar__
        read(ar__,1)
     +  Name(i__),z(i__),Re(i__),theta(i__),Lr(i__),e_Lr(i__),
     +  sig(i__),e_sig(i__),Sige(i__),e_Sige(i__),v_M_Lr_L(i__),
     +  e__M_Lr_L(i__),v_M_Lr_D(i__),e__M_Lr_D(i__),v_M_Lr_L_E(i__),
     +  e__M_Lr_L_E(i__),v_M_Lr_L_D(i__),e__M_Lr_L_D(i__),
     +  v_M_Lr_MW(i__),e__M_Lr_MW(i__),v_M_Lr_1PL(i__),
     +  e__M_Lr_1PL(i__),E__M_Lr_1PL_1(i__),v_M_Lr_2PL(i__),
     +  e__M_Lr_2PL(i__),E__M_Lr_2PL_1(i__),v_M_Lr_2PLc(i__),
     +  e__M_Lr_2PLc(i__),E__M_Lr_2PLc_1(i__),v_M_Lr_np(i__),
     +  e__M_Lr_np(i__),E__M_Lr_np_1(i__),aL_E(i__),e_aL_E(i__),
     +  aL_D(i__),e_aL_D(i__),aL_noD(i__),e_aL_noD(i__),aD_noD(i__),
     +  e_aD_noD(i__),a1PL(i__),e_a1PL(i__),E_a1PL_1(i__),a2PL(i__),
     +  e_a2PL(i__),E_a2PL_1(i__),a2PLc(i__),e_a2PLc(i__),
     +  E_a2PLc_1(i__),anp(i__),e_anp(i__),E_anp_1(i__)
        if(ar__(56:59) .EQ. '') v_M_Lr_D(i__) = rNULL__
        if(ar__(61:64) .EQ. '') e__M_Lr_D(i__) = rNULL__
        if(ar__(76:79) .EQ. '') v_M_Lr_L_D(i__) = rNULL__
        if(ar__(81:84) .EQ. '') e__M_Lr_L_D(i__) = rNULL__
        if(ar__(166:169) .EQ. '') aL_D(i__) = rNULL__
        if(ar__(171:174) .EQ. '') e_aL_D(i__) = rNULL__
        if(ar__(186:189) .EQ. '') aD_noD(i__) = rNULL__
        if(ar__(191:194) .EQ. '') e_aD_noD(i__) = rNULL__
c    ..............Just test output...........
        write(6,1)
     +  Name(i__),z(i__),Re(i__),theta(i__),Lr(i__),e_Lr(i__),
     +  sig(i__),e_sig(i__),Sige(i__),e_Sige(i__),v_M_Lr_L(i__),
     +  e__M_Lr_L(i__),v_M_Lr_D(i__),e__M_Lr_D(i__),v_M_Lr_L_E(i__),
     +  e__M_Lr_L_E(i__),v_M_Lr_L_D(i__),e__M_Lr_L_D(i__),
     +  v_M_Lr_MW(i__),e__M_Lr_MW(i__),v_M_Lr_1PL(i__),
     +  e__M_Lr_1PL(i__),E__M_Lr_1PL_1(i__),v_M_Lr_2PL(i__),
     +  e__M_Lr_2PL(i__),E__M_Lr_2PL_1(i__),v_M_Lr_2PLc(i__),
     +  e__M_Lr_2PLc(i__),E__M_Lr_2PLc_1(i__),v_M_Lr_np(i__),
     +  e__M_Lr_np(i__),E__M_Lr_np_1(i__),aL_E(i__),e_aL_E(i__),
     +  aL_D(i__),e_aL_D(i__),aL_noD(i__),e_aL_noD(i__),aD_noD(i__),
     +  e_aD_noD(i__),a1PL(i__),e_a1PL(i__),E_a1PL_1(i__),a2PL(i__),
     +  e_a2PL(i__),E_a2PL_1(i__),a2PLc(i__),e_a2PLc(i__),
     +  E_a2PLc_1(i__),anp(i__),e_anp(i__),E_anp_1(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'table2.dat'	! Spectra of SNELLS lenses used in SPS analysis

C  Format for file interpretation

    2 format(A5,1X,F9.3,1X,F9.5,1X,F7.5,1X,I1,1X,F4.1)

C  Effective file loading

      open(unit=1,status='old',file=
     +'table2.dat')
      write(6,*) '....Loading file: table2.dat'
      do i__=1,8117
        read(1,'(A40)')ar__1
        read(ar__1,2)
     +  Name_1(i__),lambda(i__),Flux(i__),e_Flux(i__),Flag(i__),
     +  Res(i__)
c    ..............Just test output...........
        write(6,2)
     +  Name_1(i__),lambda(i__),Flux(i__),e_Flux(i__),Flag(i__),
     +  Res(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

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