FORTRAN Generation
(/./ftp/cats/J/ApJS/90/173)

Conversion of standardized ReadMe file for file /./ftp/cats/J/ApJS/90/173 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-20
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/90/173             PMN map catalog of radiosources       (Gregory+, 1994)
*================================================================================
*The Parkes-MIT-NRAO (PMN) map catalog of radio sources covering
*-88{deg} < dec. < -37{deg} at 4.85 GHz
*       Gregory P.C., Vavasour J.D., Scott W.K., Condon J.J.
*      <Astrophys. J. Suppl. Ser. 90, 173 (1994)>
*      =1994ApJS...90..173G
C=============================================================================

C  Internal variables

      integer*4 i__

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

C  Declarations for 'b1950.dat'	! PMN catalog, B1950 coordinates

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

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

      integer*4     RAh         ! (h) Right ascension B1950
      integer*4     RAm         ! (min) Right ascension B1950
      real*4        RAs         ! (s) Right ascension B1950
      real*4        e_RAs       ! (s) rms uncertainty in RA
      character*1   DE_         ! Declination sign
      integer*4     DEd         ! (deg) Declination B1950
      integer*4     DEm         ! (arcmin) Declination B1950
      integer*4     DEs         ! (arcsec) Declination B1950
      integer*4     e_DEs       ! (arcsec) rms uncertainty in DE
      real*4        GLAT        ! (deg) Galactic latitude
      real*4        GLON        ! (deg) Galactic longitude
      integer*4     Flux        ! (mJy) 4.85 GHz peak flux density
      integer*4     e_Flux      ! (mJy) rms uncertainty in peak flux density
      character*1   n1_Flux     ! 'E' for significant extension
      character*1   n2_Flux     ! 'W' for warning
      character*1   n3_Flux     ! 'C' for confusion
      real*4        MajAxis     ! Fitted major axis / beam size
      real*4        MinAxis     ! Fitted minor axis / beam size
      integer*4     PosAng      ! (deg) Fitted major axis position angle
*                                    (degrees east of north)
      integer*4     Z           ! (mJy) Local sky level (per beam)
      integer*4     Map_X       ! Map pixel column number (from left)
      integer*4     Map_Y       ! Map pixel row number (from bottom)

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

C  Declarations for 'j2000.dat'	! PMN catalog, J2000 coordinates

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

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

      integer*4     RAh_1       ! (h) Right ascension J2000
      integer*4     RAm_1       ! (min) Right ascension J2000
      real*4        RAs_1       ! (s) Right ascension J2000
      real*4        e_RAs_1     ! (s) rms uncertainty in RA
      character*1   DE__1       ! Declination sign J2000
      integer*4     DEd_1       ! (deg) Declination J2000
      integer*4     DEm_1       ! (arcmin) Declination J2000
      integer*4     DEs_1       ! (arcsec) Declination J2000
      integer*4     e_DEs_1     ! (arcsec) rms uncertainty in DE
      real*4        GLAT_1      ! (deg) Galactic latitude
      real*4        GLON_1      ! (deg) Galactic longitude
      integer*4     Flux_1      ! (mJy) 4.85 GHz peak flux density
      integer*4     e_Flux_1    ! (mJy) rms uncertainty in peak flux density
      character*1   n1_Flux_1   ! 'E' for significant extension
      character*1   n2_Flux_1   ! 'W' for warning
      character*1   n3_Flux_1   ! 'C' for confusion
      real*4        MajAxis_1   ! Fitted major axis / beam size
      real*4        MinAxis_1   ! Fitted minor axis / beam size
      integer*4     PosAng_1    ! (deg) Fitted major axis position angle
*                                    (degrees east of north)
      integer*4     Z_1         ! (mJy) Local sky level (per beam)
      integer*4     Map_X_1     ! Map pixel column number (from left)
      integer*4     Map_Y_1     ! Map pixel row number (from bottom)

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

C  Loading file 'b1950.dat'	! PMN catalog, B1950 coordinates

C  Format for file interpretation

    1 format(
     +  I2,I2,F4.1,F4.1,1X,A1,I2,I2,I2,1X,I2,1X,F5.1,1X,F5.1,1X,I5,1X,
     +  I4,2X,A1,A1,A1,1X,F4.2,1X,F4.2,1X,I3,1X,I3,2X,I3,2X,I3)

C  Effective file loading

      open(unit=1,status='old',file=
     +'b1950.dat')
      write(6,*) '....Loading file: b1950.dat'
      do i__=1,15045
        read(1,'(A79)')ar__
        read(ar__,1)
     +  RAh,RAm,RAs,e_RAs,DE_,DEd,DEm,DEs,e_DEs,GLAT,GLON,Flux,e_Flux,
     +  n1_Flux,n2_Flux,n3_Flux,MajAxis,MinAxis,PosAng,Z,Map_X,Map_Y
        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)
     +  RAh,RAm,RAs,e_RAs,DE_,DEd,DEm,DEs,e_DEs,GLAT,GLON,Flux,e_Flux,
     +  n1_Flux,n2_Flux,n3_Flux,MajAxis,MinAxis,PosAng,Z,Map_X,Map_Y
        write(6,'(6H Pos: 2F8.4)') RAdeg,DEdeg
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'j2000.dat'	! PMN catalog, J2000 coordinates

C  Format for file interpretation

    2 format(
     +  I2,I2,F4.1,F4.1,1X,A1,I2,I2,I2,I3,1X,F5.1,1X,F5.1,1X,I5,1X,I4,
     +  2X,A1,A1,A1,1X,F4.2,1X,F4.2,1X,I3,1X,I3,2X,I3,2X,I3)

C  Effective file loading

      open(unit=1,status='old',file=
     +'j2000.dat')
      write(6,*) '....Loading file: j2000.dat'
      do i__=1,15045
        read(1,'(A79)')ar__1
        read(ar__1,2)
     +  RAh_1,RAm_1,RAs_1,e_RAs_1,DE__1,DEd_1,DEm_1,DEs_1,e_DEs_1,
     +  GLAT_1,GLON_1,Flux_1,e_Flux_1,n1_Flux_1,n2_Flux_1,n3_Flux_1,
     +  MajAxis_1,MinAxis_1,PosAng_1,Z_1,Map_X_1,Map_Y_1
        RAdeg_1 = rNULL__
        DEdeg_1 = rNULL__
c  Derive coordinates RAdeg_1 and DEdeg_1 from input data
c  (RAdeg_1 and DEdeg_1 are set to rNULL__ when unknown)
        if(RAh_1 .GT. -180) RAdeg_1=RAh_1*15.
        if(RAm_1 .GT. -180) RAdeg_1=RAdeg_1+RAm_1/4.
        if(RAs_1 .GT. -180) RAdeg_1=RAdeg_1+RAs_1/240.
        if(DEd_1 .GE. 0) DEdeg_1=DEd_1
        if(DEm_1 .GE. 0) DEdeg_1=DEdeg_1+DEm_1/60.
        if(DEs_1 .GE. 0) DEdeg_1=DEdeg_1+DEs_1/3600.
        if(DE__1.EQ.'-'.AND.DEdeg_1.GE.0) DEdeg_1=-DEdeg_1
c    ..............Just test output...........
        write(6,2)
     +  RAh_1,RAm_1,RAs_1,e_RAs_1,DE__1,DEd_1,DEm_1,DEs_1,e_DEs_1,
     +  GLAT_1,GLON_1,Flux_1,e_Flux_1,n1_Flux_1,n2_Flux_1,n3_Flux_1,
     +  MajAxis_1,MinAxis_1,PosAng_1,Z_1,Map_X_1,Map_Y_1
        write(6,'(6H Pos: 2F8.4)') RAdeg_1,DEdeg_1
c    .......End.of.Just test output...........
      end do
      close(1)

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