FORTRAN Generation
(/./ftp/cats/J/A_A/495/421)

Conversion of standardized ReadMe file for file /./ftp/cats/J/A_A/495/421 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-28
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/A+A/495/421   Catalog of AGN in XMM-Newton archive (CAIXA)   (Bianchi+, 2009)
*================================================================================
*CAIXA: a catalogue of AGN in the XMM-Newton archive. I. Spectral analysis.
*    Bianchi S., Guainazzi M., Matt G., Fonseca Bonilla N., Ponti G.
*   <Astron. Astrophys. 495, 421 (2009)>
*   =2009A&A...495..421B
C=============================================================================

C  Internal variables

      integer*4 i__

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

C  Declarations for 'table1.dat'	! Main properties of the observations of the
                              sources included in CAIXA

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

      character*23  Source     (nr__) ! Source name, from VV06 (G1)
      character*10  ObsID      (nr__) ! XMM-Newton ObsID
      real*4        t_exp      (nr__) ! (ks) Clean exposure time
      real*4        Fs         (nr__) ! (fW/m2) Soft (0.5-2keV) flux (in 10^-12^erg/cm^2^/s)
      real*4        e_Fs       (nr__) ! (fW/m2) Error on Fs (in 10^-12^erg/cm^2^/s)
      real*4        Fh         (nr__) ! (fW/m2) Hard (2-10keV) flux (in 10^-12^erg/cm^2^/s)
      real*4        e_Fh       (nr__) ! (fW/m2) Error on Fh (in 10^-12^erg/cm^2^/s)
      real*8        Ls         (nr__) ! (10+37W) Soft (0.5-2keV) unabsorbed luminosity
*                                   (in 10^44^erg/s)
      real*8        e_Ls       (nr__) ! (10+37W) Error on Ls (in 10^44^erg/s)
      real*8        Lh         (nr__) ! (10+37W) Hard (2-10keV) unabsorbed luminosity
*                                    (in 10^44^erg/s)
      real*8        e_Lh       (nr__) ! (10+37W) Error on Lh (in 10^44^erg/s)

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

C  Declarations for 'table2.dat'	! Main X-ray parameters derived from the automatic
                              fits of the observations included in CAIXA

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

      character*23  Source_1   (nr__1) ! Source name, from VV06 (G1)
      character*10  ObsID_1    (nr__1) ! XMM-Newton ObsID
      real*4        Gam_s      (nr__1) ! ?=- Soft X-ray powerlaw index
      real*4        E_Gam_s    (nr__1) ! ?=- Upper error on powerlaw
      real*4        e_Gam_s_1  (nr__1) ! ?=- Lower error on powerlaw
      real*4        Gam_h      (nr__1) ! Hard X-ray powerlaw index
      real*4        E_Gam_h    (nr__1) ! Upper error on powerlaw
      real*4        e_Gam_h_1  (nr__1) ! Lower error on powerlaw
      integer*4     EW64       (nr__1) ! (eV) 6.4keV emission line equivalent width
      integer*4     E_EW64     (nr__1) ! (eV) Upper error on EW64
      integer*4     e_EW64_1   (nr__1) ! (eV) Lower error on EW64
      integer*4     EW67       (nr__1) ! (eV) 6.7keV emission line equivalent width
      integer*4     E_EW67     (nr__1) ! (eV) Upper error on EW67
      integer*4     e_EW67_1   (nr__1) ! (eV) Lower error on EW67
      integer*4     EW69       (nr__1) ! (eV) 6.96keV emission line equivalent width
      integer*4     E_EW69     (nr__1) ! (eV) Upper error on EW69
      integer*4     e_EW69_1   (nr__1) ! (eV) Lower error on EW69

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

C  Declarations for 'table3.dat'	! Multiwavelength properties of the sources
                              included in CAIXA

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

C  J2000 position composed of: RAdeg DEdeg
      character*23  Source_2   (nr__2) ! Source name, from VV06 (G1)
      real*8        RAdeg      (nr__2) ! (deg) Right ascension (J2000), from NED
      real*8        DEdeg      (nr__2) ! (deg) Declination (J2000), from NED
      real*4        z          (nr__2) ! Redshift, from VV06 (G1)
      real*4        Mabs       (nr__2) ! (mag) Absolute magnitude, from VV06 (G1)
      real*8        F6cm       (nr__2) ! (Jy) ?=- Radio flux at 6cm
      character*2   n_F6cm     (nr__2) ! [RQ] Note on F6cm (1)
      character*4   r_F6cm     (nr__2) ! ?=- Reference for radio flux
      real*4        F20cm      (nr__2) ! (Jy) ?=- Radio flux at 20cm
      character*2   r_F20cm    (nr__2) ! ?=- Reference for radio flux
      integer*4     Hb         (nr__2) ! (km/s) ? FWHM of Hbeta
      character*1   r_Hb       (nr__2) ! ?=- Reference for Hbeta
      real*4        MBH        (nr__2) ! ([solMass]) ?=- Log of black hole mass
      character*1   r_MBH      (nr__2) ! ?=- Reference for BH mass
      character*1   n_MBH      (nr__2) ! [mnorv] Note on BH mass (2)
      real*4        Vmag       (nr__2) ! (mag) ?=- V magnitude, from VV06 (G1)
      real*4        B_V        (nr__2) ! (mag) ?=- B-V colour index, from VV06 (G1)
*Note (1): RQ means the source is considered radio-quiet in the reference,
*     but no radio flux is reported
*Note (2): BH mass computation from:
*      r = reverberation mapping
*      o = Hbeta FWHM
*      m = MgII FWHM
*      n = narrow line region size
*      v = stellar velocity dispersion

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

C  Declarations for 'refs.dat'	! References

      integer*4 nr__3
      parameter (nr__3=52)	! Number of records
      character*79 ar__3  	! Full-size record

      character*2   Ref        (nr__3) ! Reference code
      character*19  BibCode    (nr__3) ! BibCode
      character*22  Aut        (nr__3) ! Author's name
      character*34  Com        (nr__3) ! Comments

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

C  Loading file 'table1.dat'	! Main properties of the observations of the
*                              sources included in CAIXA

C  Format for file interpretation

    1 format(
     +  A23,1X,A10,1X,F5.1,1X,F6.3,1X,F5.3,1X,F6.3,1X,F5.3,1X,F9.5,
     +  F8.5,1X,F10.6,F9.6)

C  Effective file loading

      open(unit=1,status='old',file=
     +'table1.dat')
      write(6,*) '....Loading file: table1.dat'
      do i__=1,156
        read(1,'(A104)')ar__
        read(ar__,1)
     +  Source(i__),ObsID(i__),t_exp(i__),Fs(i__),e_Fs(i__),Fh(i__),
     +  e_Fh(i__),Ls(i__),e_Ls(i__),Lh(i__),e_Lh(i__)
c    ..............Just test output...........
        write(6,1)
     +  Source(i__),ObsID(i__),t_exp(i__),Fs(i__),e_Fs(i__),Fh(i__),
     +  e_Fh(i__),Ls(i__),e_Ls(i__),Lh(i__),e_Lh(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'table2.dat'	! Main X-ray parameters derived from the automatic
*                              fits of the observations included in CAIXA

C  Format for file interpretation

    2 format(
     +  A23,1X,A10,2X,F5.3,1X,F5.3,1X,F5.3,F6.3,1X,F5.3,1X,F5.3,1X,I3,
     +  1X,I4,2X,I3,2X,I3,1X,I4,2X,I3,2X,I3,1X,I4,2X,I3)

C  Effective file loading

      open(unit=1,status='old',file=
     +'table2.dat')
      write(6,*) '....Loading file: table2.dat'
      do i__=1,156
        read(1,'(A115)')ar__1
        read(ar__1,2)
     +  Source_1(i__),ObsID_1(i__),Gam_s(i__),E_Gam_s(i__),
     +  e_Gam_s_1(i__),Gam_h(i__),E_Gam_h(i__),e_Gam_h_1(i__),
     +  EW64(i__),E_EW64(i__),e_EW64_1(i__),EW67(i__),E_EW67(i__),
     +  e_EW67_1(i__),EW69(i__),E_EW69(i__),e_EW69_1(i__)
        if (idig(ar__1(37:41)).EQ.0) Gam_s(i__) =  rNULL__
        if (idig(ar__1(43:47)).EQ.0) E_Gam_s(i__) =  rNULL__
        if (idig(ar__1(49:53)).EQ.0) e_Gam_s_1(i__) =  rNULL__
c    ..............Just test output...........
        write(6,2)
     +  Source_1(i__),ObsID_1(i__),Gam_s(i__),E_Gam_s(i__),
     +  e_Gam_s_1(i__),Gam_h(i__),E_Gam_h(i__),e_Gam_h_1(i__),
     +  EW64(i__),E_EW64(i__),e_EW64_1(i__),EW67(i__),E_EW67(i__),
     +  e_EW67_1(i__),EW69(i__),E_EW69(i__),e_EW69_1(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'table3.dat'	! Multiwavelength properties of the sources
*                              included in CAIXA

C  Format for file interpretation

    3 format(
     +  A23,1X,F9.5,1X,F10.6,1X,F6.4,1X,F5.1,1X,F7.5,A2,1X,A4,1X,F6.4,
     +  1X,A2,1X,I5,1X,A1,1X,F5.2,2X,A1,A1,1X,F5.2,1X,F5.2)

C  Effective file loading

      open(unit=1,status='old',file=
     +'table3.dat')
      write(6,*) '....Loading file: table3.dat'
      do i__=1,156
        read(1,'(A112)')ar__2
        read(ar__2,3)
     +  Source_2(i__),RAdeg(i__),DEdeg(i__),z(i__),Mabs(i__),
     +  F6cm(i__),n_F6cm(i__),r_F6cm(i__),F20cm(i__),r_F20cm(i__),
     +  Hb(i__),r_Hb(i__),MBH(i__),r_MBH(i__),n_MBH(i__),Vmag(i__),
     +  B_V(i__)
        if (idig(ar__2(59:65)).EQ.0) F6cm(i__) =  rNULL__
        if (idig(ar__2(74:79)).EQ.0) F20cm(i__) =  rNULL__
        if(ar__2(84:88) .EQ. '') Hb(i__) = iNULL__
        if (idig(ar__2(92:96)).EQ.0) MBH(i__) =  rNULL__
        if (idig(ar__2(102:106)).EQ.0) Vmag(i__) =  rNULL__
        if (idig(ar__2(108:112)).EQ.0) B_V(i__) =  rNULL__
c    ..............Just test output...........
        write(6,3)
     +  Source_2(i__),RAdeg(i__),DEdeg(i__),z(i__),Mabs(i__),
     +  F6cm(i__),n_F6cm(i__),r_F6cm(i__),F20cm(i__),r_F20cm(i__),
     +  Hb(i__),r_Hb(i__),MBH(i__),r_MBH(i__),n_MBH(i__),Vmag(i__),
     +  B_V(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'refs.dat'	! References

C  Format for file interpretation

    4 format(A2,1X,A19,1X,A22,A34)

C  Effective file loading

      open(unit=1,status='old',file=
     +'refs.dat')
      write(6,*) '....Loading file: refs.dat'
      do i__=1,52
        read(1,'(A79)')ar__3
        read(ar__3,4)Ref(i__),BibCode(i__),Aut(i__),Com(i__)
c    ..............Just test output...........
        write(6,4)Ref(i__),BibCode(i__),Aut(i__),Com(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

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

C Locate position of first digit in string; or return 0
      integer function idig(c)
      character*(*) c
      character*1 c1
      integer lc,i
      lc=len(c)
      idig=0
      do i=1,lc
         if(c(i:i).ne.' ') go to 1
      end do
    1 if(i.gt.lc) return
      c1=c(i:i)
      if(c1.eq.'.'.or.c1.eq.'-'.or.c1.eq.'+') i=i+1
      if(i.gt.lc) return
      c1=c(i:i)
      if(c1.ge.'0'.and.c1.le.'9') idig=i
      return
      end