FORTRAN Generation
(/./ftp/cats/J/MNRAS/352/1439)

Conversion of standardized ReadMe file for file /./ftp/cats/J/MNRAS/352/1439 into FORTRAN code for reading data files line by line.

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-19
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/MNRAS/352/1439    Parkes Multi-Beam Pulsar Survey. IV.      (Hobbs+, 2004)
*================================================================================
*The Parkes Multi-Beam Pulsar Survey -
*IV. Discovery of 180 pulsars and parameters for 281 previously known pulsars.
*    Hobbs G., Faulkner A., Stairs I.H., Camilo F., Manchester R.N., Lyne A.G.,
*    Kramer M., D'amico N., Kaspi V.M., Possenti A., Mclaughlin M.A.,
*    Lorimer D.R., Burgay M., Joshi B.C., Crawford F.
*   <Mon. Not. R. Astron. Soc., 352, 1439-1472 (2004)>
*   =2004MNRAS.352.1439H
C=============================================================================

C  Internal variables

      integer*4 i__

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

C  Declarations for 'table1.dat'	! Positions, flux densities and pulse widths for
                              180 pulsars discovered in the Parkes multibeam
                              pulsar survey.

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

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

      character*10  PSRJ        ! PSRJ designation
      character*1   f_PSRJ      ! [AJ] Note on PSRJ (G1)
      integer*4     RAh         ! (h) Right ascension (J2000)
      integer*4     RAm         ! (min) Right ascension (J2000)
      real*8        RAs         ! (s) Right ascension (J2000)
      real*4        e_RAs       ! (s) rms uncertainty on right ascension
      character*1   DE_         ! Declination sign (J2000)
      integer*4     DEd         ! (deg) Declination (J2000)
      integer*4     DEm         ! (arcmin) Declination (J2000)
      real*4        DEs         ! (arcsec) Declination (J2000)
      real*4        e_DEs       ! (arcsec) rms uncertainty on declination
      real*4        GLON        ! (deg) Galactic longitude
      real*4        GLAT        ! (deg) Galactic latitude
      integer*4     Beam        ! [1/13] Beam number of the multibeam receiver
      real*4        bDist       ! Radial distance, in units of beam radii
      real*4        S_N         ! Signal-to-noise ratio of the pulse profile
      real*4        S1_4        ! (mJy) Flux density at 1400MHz
      real*4        e_S1_4      ! (mJy) rms uncertainty on S1400MHz
      real*4        W50         ! (ms) Pulse width at 50% of the peak
      integer*4     W10         ! (ms) ? Pulse width at 10% of the peak, only for
*                                   high signal-to-noise ratio profiles

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

C  Declarations for 'table2.dat'	! Periods, period derivatives and dispersion
                              measures for 180 pulsars discovered in the
                              Parkes multibeam pulsar survey.

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

      character*10  PSRJ_1      ! PSRJ designation
      character*1   f_PSRJ_1    ! [AJ] Note on PSRJ (G1)
      character*2   n_PSRJ      ! [G*+] Note on PSRJ (1)
      real*8        Per         ! (s) Period
      integer*4     e_Per       ! (10-16s) rms uncertainty on Per
      real*8        dP_dt       ! (10-15) Period derivative
      integer*4     e_dP_dt     ! (10-23) rms uncertainty on dP/dt
      real*8        MJD         ! (d) Epoch of the period in modified Julian date
      integer*4     NTOA        ! ? Number of pulse topocentric arrival time
*                                    included in the timing solution
      integer*4     MJD1        ! (d) MJD range covered the rms of the post-fit
*                                   timing residuals
      integer*4     MJD2        ! (d) MJD range covered the rms of the post-fit
*                                   timing residuals
      real*4        Res         ! (ms) ? Residual
      real*8        DM          ! (pc/cm3) Pulsar dispersion measure
      real*4        e_DM        ! (pc/cm3) rms uncertainty on DM
*Note (1): Notes use the following symbols:
*      G = pulsars that have glitched.
*      * = pulsars which exhibit significant timing noise that has been
*          removed, to first order, by the fitting of a frequency second
*          derivative (even higher derivatives were included in the timing
*          model if necessary).
*      + = timing solutions already published

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

C  Declarations for 'table4.dat'	! Derived parameters for 180 pulsars discovered in
                              the Parkes multibeam pulsar survey

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

      character*10  PSRJ_2      ! PSRJ designation
      real*4        logAge      ! ([yr]) log of chararteristic age
      real*4        logBs       ! ([gauss]) log of surface dipole magnetic field strength
      real*4        log_dE_dt   ! ([10-7W]) log of loss in rotational energy
      real*4        Dist        ! (kpc) Distance derived from DM and Taylor & Cordes
*                                    (1993ApJ...411..674T) model
      real*4        Z           ! (kpc) Inferred z-height
      real*4        Lum         ! (mJy/kpc2) Corresponding radio luminosity at 1400MHz

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

C  Declarations for 'table5.dat'	! Intermediate-mass binary pulsars (IMBPs) known

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

      character*10  PSR         ! PSR designation
      real*4        PerRot      ! (ms) Rotational period
      real*4        PerOrb      ! (d) Orbital period
      real*4        e           ! (10-3) Orbital eccentricity
      character*1   l_MWD       ! Limit flag on MWD
      real*4        MWD         ! (solMass) Lower limit on the companion mass assuming a
*                                   neutron-star mass of 1.35M_{sun}_

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

C  Declarations for 'table7.dat'	! Results for 281 previously known pulsars

      integer*4 nr__4
      parameter (nr__4=281)	! Number of records
      character*116 ar__4  	! Full-size record

C  Position composed of: GLON GLAT
      character*10  PSRJ_3      ! PSRJ designation
      character*1   m_PSRJ      ! [A] Multiplicity index on PSRJ
      character*1   f_PSRJ_2    ! [*] *: pulsars that saturated the
*                                              digitizer (1)
      character*1   n_PSRJ_1    ! [N] N: pulsar discoved during the Parkes
*                                              high-latitude survey
*                                              (Burgay et al., in prep.)
      character*9   PSRB        ! PSRB designation
      real*4        GLON_1      ! (deg) Galactic longitude
      real*4        GLAT_1      ! (deg) Galactic latitude
      integer*4     Beam_1      ! Beam number
      real*4        bDist_1     ! Radial distance, in units of beam radii
      real*4        S_N_1       ! Signal-to-noise ratio
      real*8        DMcat       ! (pc/cm3) Catalog pulsar dispersion measure
      real*8        e_DMcat     ! (pc/cm3) rms uncertainty on DMcat
      real*8        DM_1        ! (pc/cm3) New pulsar dispersion measure
      real*4        e_DM_1      ! (pc/cm3) rms uncertainty on DM
      real*4        S1_4cat     ! (mJy) ? Catalog 1400MHz flux density
      real*4        S1_4_1      ! (mJy) ? New 1400MHz flux density
      real*4        e_S1_4_1    ! (mJy) ? rms uncertainty on S1.4
      real*4        W50_1       ! (ms) ? Pulse width at 50% of the peak
      real*4        W10_1       ! (ms) ? Pulse width at 10% of the peak
*Note (1): For pulsars that saturated the digitizer, flux densities or pulse
*          widths were measured.

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

C  Declarations for 'table8.dat'	! Flux density measurements at 1400MHz for those
                              pulsars with no previously catalogued value at
                              this observing frequency, but do have an
                              earlier flux measurement at 400MHz.

      integer*4 nr__5
      parameter (nr__5=38)	! Number of records
      character*67 ar__5  	! Full-size record

      character*10  PSRJ_4      ! PSRJ designation
      character*9   PSRB_1      ! PSRB designation
      real*4        DM_2        ! (pc/cm3) Pulsar dispersion measure
      real*4        e_DM_2      ! (pc/cm3) rms uncertainty on DM
      real*4        S1400MHz    ! (mJy) Flux density at 1400MHz
      real*4        e_S1400MHz  ! (mJy) rms uncertainty on 1400MHz
      real*4        S400MHz     ! (mJy) ? Flux density at 400MHz
      real*4        S600MHz     ! (mJy) ? Flux density at 600MHz
      real*4        SI          ! Spectral index between 1400 and 400MHz (1)
      integer*4     r_S400MHz   ! ? Reference of S400MHz
      integer*4     r_S600MHz   ! ? Reference of S600MHz
*Note (1): Unfortunately, not all the S400MHz measurements have been published
*    with corresponding uncertainties. Taking a typical uncertainty of 10%
*    leads to an error in the spectral index determination of ~0.3.

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

C  Declarations for 'refs.dat'	! References

      integer*4 nr__6
      parameter (nr__6=10)	! Number of records
      character*77 ar__6  	! Full-size record

      integer*4     Ref         ! Reference code
      character*19  BibCode     ! BibCode
      character*27  Aut         ! Author's name
      character*25  Com         ! Comments

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

C  Declarations for 'table9.dat'	! Dispersion measure values that have been
                              measured more than an order-of-magnitude more
                              precisely than in earlier studies.

      integer*4 nr__7
      parameter (nr__7=30)	! Number of records
      character*47 ar__7  	! Full-size record

      character*10  PSRJ_5      ! PSRJ designation
      character*9   PSRB_2      ! PSRB designation
      real*4        DMc         ! (pc/cm3) Earlier pulsar dispersion measure (from table7)
      real*4        e_DMc       ! (pc/cm3) rms uncertainty on DMc
      real*8        DM_3        ! (pc/cm3) New pulsar dispersion measure (from table7)
      real*4        e_DM_3      ! (pc/cm3) rms uncertainty on DM

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

C  Loading file 'table1.dat'	! Positions, flux densities and pulse widths for
*                              180 pulsars discovered in the Parkes multibeam
*                              pulsar survey.

C  Format for file interpretation

    1 format(
     +  A10,A1,2X,I2,1X,I2,1X,F8.5,1X,F6.5,1X,A1,I2,1X,I2,1X,F6.3,1X,
     +  F6.3,1X,F6.2,1X,F5.2,1X,I2,1X,F4.2,1X,F5.1,1X,F5.3,1X,F4.3,1X,
     +  F5.1,1X,I3)

C  Effective file loading

      open(unit=1,status='old',file=
     +'table1.dat')
      write(6,*) '....Loading file: table1.dat'
      do i__=1,180
        read(1,'(A103)')ar__
        read(ar__,1)
     +  PSRJ,f_PSRJ,RAh,RAm,RAs,e_RAs,DE_,DEd,DEm,DEs,e_DEs,GLON,GLAT,
     +  Beam,bDist,S_N,S1_4,e_S1_4,W50,W10
        if(ar__(101:103) .EQ. '') W10 = iNULL__
        RAdeg = rNULL__
        DEdeg = rNULL__
c  Derive coordinates RAdeg and DEdeg from input data
c  (RAdeg and DEdeg are set to rNULL__ when unknown)
        if(RAh .GT. -180) RAdeg=RAh*15.
        if(RAm .GT. -180) RAdeg=RAdeg+RAm/4.
        if(RAs .GT. -180) RAdeg=RAdeg+RAs/240.
        if(DEd .GE. 0) DEdeg=DEd
        if(DEm .GE. 0) DEdeg=DEdeg+DEm/60.
        if(DEs .GE. 0) DEdeg=DEdeg+DEs/3600.
        if(DE_.EQ.'-'.AND.DEdeg.GE.0) DEdeg=-DEdeg
c    ..............Just test output...........
        write(6,1)
     +  PSRJ,f_PSRJ,RAh,RAm,RAs,e_RAs,DE_,DEd,DEm,DEs,e_DEs,GLON,GLAT,
     +  Beam,bDist,S_N,S1_4,e_S1_4,W50,W10
        write(6,'(6H Pos: 2F8.4)') RAdeg,DEdeg
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'table2.dat'	! Periods, period derivatives and dispersion
*                              measures for 180 pulsars discovered in the
*                              Parkes multibeam pulsar survey.

C  Format for file interpretation

    2 format(
     +  A10,A1,A2,1X,F18.16,1X,I8,1X,F13.8,1X,I8,1X,F7.1,1X,I3,1X,I5,
     +  1X,I5,1X,F5.2,1X,F7.2,1X,F5.2)

C  Effective file loading

      open(unit=1,status='old',file=
     +'table2.dat')
      write(6,*) '....Loading file: table2.dat'
      do i__=1,180
        read(1,'(A108)')ar__1
        read(ar__1,2)
     +  PSRJ_1,f_PSRJ_1,n_PSRJ,Per,e_Per,dP_dt,e_dP_dt,MJD,NTOA,MJD1,
     +  MJD2,Res,DM,e_DM
        if(ar__1(74:76) .EQ. '') NTOA = iNULL__
        if(ar__1(90:94) .EQ. '') Res = rNULL__
c    ..............Just test output...........
        write(6,2)
     +  PSRJ_1,f_PSRJ_1,n_PSRJ,Per,e_Per,dP_dt,e_dP_dt,MJD,NTOA,MJD1,
     +  MJD2,Res,DM,e_DM
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'table4.dat'	! Derived parameters for 180 pulsars discovered in
*                              the Parkes multibeam pulsar survey

C  Format for file interpretation

    3 format(A10,1X,F5.2,1X,F5.2,1X,F5.2,1X,F4.1,1X,F5.2,1X,F5.1)

C  Effective file loading

      open(unit=1,status='old',file=
     +'table4.dat')
      write(6,*) '....Loading file: table4.dat'
      do i__=1,180
        read(1,'(A45)')ar__2
        read(ar__2,3)PSRJ_2,logAge,logBs,log_dE_dt,Dist,Z,Lum
c    ..............Just test output...........
        write(6,3)PSRJ_2,logAge,logBs,log_dE_dt,Dist,Z,Lum
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'table5.dat'	! Intermediate-mass binary pulsars (IMBPs) known

C  Format for file interpretation

    4 format(A10,1X,F5.1,1X,F4.1,1X,F6.4,1X,A1,F4.2)

C  Effective file loading

      open(unit=1,status='old',file=
     +'table5.dat')
      write(6,*) '....Loading file: table5.dat'
      do i__=1,14
        read(1,'(A34)')ar__3
        read(ar__3,4)PSR,PerRot,PerOrb,e,l_MWD,MWD
c    ..............Just test output...........
        write(6,4)PSR,PerRot,PerOrb,e,l_MWD,MWD
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'table7.dat'	! Results for 281 previously known pulsars

C  Format for file interpretation

    5 format(
     +  A10,A1,A1,A1,1X,A9,1X,F6.2,1X,F5.2,1X,I2,1X,F3.1,1X,F6.1,1X,
     +  F9.4,1X,F7.4,1X,F8.3,1X,F6.3,2X,F6.1,1X,F5.2,1X,F4.2,1X,F6.2,
     +  1X,F5.1)

C  Effective file loading

      open(unit=1,status='old',file=
     +'table7.dat')
      write(6,*) '....Loading file: table7.dat'
      do i__=1,281
        read(1,'(A116)')ar__4
        read(ar__4,5)
     +  PSRJ_3,m_PSRJ,f_PSRJ_2,n_PSRJ_1,PSRB,GLON_1,GLAT_1,Beam_1,
     +  bDist_1,S_N_1,DMcat,e_DMcat,DM_1,e_DM_1,S1_4cat,S1_4_1,
     +  e_S1_4_1,W50_1,W10_1
        if(ar__4(87:92) .EQ. '') S1_4cat = rNULL__
        if(ar__4(94:98) .EQ. '') S1_4_1 = rNULL__
        if(ar__4(100:103) .EQ. '') e_S1_4_1 = rNULL__
        if(ar__4(105:110) .EQ. '') W50_1 = rNULL__
        if(ar__4(112:116) .EQ. '') W10_1 = rNULL__
c    ..............Just test output...........
        write(6,5)
     +  PSRJ_3,m_PSRJ,f_PSRJ_2,n_PSRJ_1,PSRB,GLON_1,GLAT_1,Beam_1,
     +  bDist_1,S_N_1,DMcat,e_DMcat,DM_1,e_DM_1,S1_4cat,S1_4_1,
     +  e_S1_4_1,W50_1,W10_1
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'table8.dat'	! Flux density measurements at 1400MHz for those
*                              pulsars with no previously catalogued value at
*                              this observing frequency, but do have an
*                              earlier flux measurement at 400MHz.

C  Format for file interpretation

    6 format(
     +  A10,3X,A9,2X,F6.2,1X,F5.2,1X,F5.2,1X,F4.2,1X,F4.1,1X,F4.1,1X,
     +  F5.2,I1,1X,I2)

C  Effective file loading

      open(unit=1,status='old',file=
     +'table8.dat')
      write(6,*) '....Loading file: table8.dat'
      do i__=1,38
        read(1,'(A67)')ar__5
        read(ar__5,6)
     +  PSRJ_4,PSRB_1,DM_2,e_DM_2,S1400MHz,e_S1400MHz,S400MHz,S600MHz,
     +  SI,r_S400MHz,r_S600MHz
        if(ar__5(49:52) .EQ. '') S400MHz = rNULL__
        if(ar__5(54:57) .EQ. '') S600MHz = rNULL__
        if(ar__5(64:64) .EQ. '') r_S400MHz = iNULL__
        if(ar__5(66:67) .EQ. '') r_S600MHz = iNULL__
c    ..............Just test output...........
        write(6,6)
     +  PSRJ_4,PSRB_1,DM_2,e_DM_2,S1400MHz,e_S1400MHz,S400MHz,S600MHz,
     +  SI,r_S400MHz,r_S600MHz
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'refs.dat'	! References

C  Format for file interpretation

    7 format(I2,1X,A19,1X,A27,2X,A25)

C  Effective file loading

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

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

C  Loading file 'table9.dat'	! Dispersion measure values that have been
*                              measured more than an order-of-magnitude more
*                              precisely than in earlier studies.

C  Format for file interpretation

    8 format(A10,2X,A9,1X,F5.1,1X,F4.1,2X,F7.3,1X,F5.3)

C  Effective file loading

      open(unit=1,status='old',file=
     +'table9.dat')
      write(6,*) '....Loading file: table9.dat'
      do i__=1,30
        read(1,'(A47)')ar__7
        read(ar__7,8)PSRJ_5,PSRB_2,DMc,e_DMc,DM_3,e_DM_3
c    ..............Just test output...........
        write(6,8)PSRJ_5,PSRB_2,DMc,e_DMc,DM_3,e_DM_3
c    .......End.of.Just test output...........
      end do
      close(1)

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