FORTRAN Generation
(/./home/cats/II/126)

Conversion of standardized ReadMe file for file /./home/cats/II/126 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 2026-May-17
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. II/126   IRAS Serendipitous Survey Catalog     (IPAC 1986)
*================================================================================
*IRAS Serendipitous Survey Catalog
*     Kleinmann S.G., Cutri R.M., Young E.T., Low F.J., Gillett F.C.
*    <Joint IRAS Science W.G. (1986)>
*    =1986SSC...C......0K
C=============================================================================

C  Internal variables

      integer*4 i__

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

C  Declarations for 'sources.dat'	! Properties of the point sources identified

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

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

      character*11  IRAS        ! IRAS/SSC Source Name (1)
      integer*4     RAh         ! (h) Right Ascension 1950 (hours)
      integer*4     RAm         ! (min) Right Ascension 1950 (minutes)
      integer*4     RAds        ! (0.1s) Right Ascension 1950 (seconds)
      character*1   DE_         ! Declination 1950 (Sign)
      integer*4     DEd         ! (deg) Declination 1950 (degrees)
      integer*4     DEm         ! (arcmin) Declination 1950 (minutes)
      integer*4     DEs         ! (arcsec) Declination 1950 (seconds)
      integer*4     ANGLE       ! Position Angle of SSC Source Error Box
*                                    expressed in degrees East of North.
      real*4        FLUX12      ! (Jy) Averaged Non-color Corrected Flux Densities(2)
      real*4        FLUX25      ! (Jy) Averaged Non-color Corrected Flux Densities(2)
      real*4        FLUX60      ! (Jy) Averaged Non-color Corrected Flux Densities(2)
      real*4        FLUX100     ! (Jy) Averaged Non-color Corrected Flux Densities(2)
      integer*4     FQUAL12     ! Flux Density Quality (2) (5)
      integer*4     FQUAL25     ! Flux Density Quality (2) (5)
      integer*4     FQUAL60     ! Flux Density Quality (2) (5)
      integer*4     FQUAL100    ! Flux Density Quality (2) (5)
      integer*4     RGRID       ! Reference Grid Number
      integer*4     RELUNC12    ! (%) ? Percent Relative FLUX12 Uncertainty (2)
      integer*4     RELUNC25    ! (%) ? Percent Relative FLUX12 Uncertainty (2)
      integer*4     RELUNC60    ! (%) ? Percent Relative FLUX12 Uncertainty (2)
      integer*4     RELUNC100   ! (%) ? Percent Relative FLUX12 Uncertainty (2)
      integer*4     TLSNR12     ! ? 10x Local Signal-to-Noise Ratio
      integer*4     TLSNR25     ! ? 10x Local Signal-to-Noise Ratio
      integer*4     TLSNR60     ! ? 10x Local Signal-to-Noise Ratio
      integer*4     TLSNR100    ! ? 10x Local Signal-to-Noise Ratio
      character*1   CC12        ! Point Source Correlation Coefficient (2) (3)
      character*1   CC25        ! Point Source Correlation Coefficient (2) (3)
      character*1   CC60        ! Point Source Correlation Coefficient (2) (3)
      character*1   CC100       ! Point Source Correlation Coefficient (2) (3)
      integer*4     TRFLUX12    ! ? 10x Fc/Fr (confirmed/reference) (6)
      integer*4     TRFLUX25    ! ? 10x Fc/Fr (confirmed/reference) (6)
      integer*4     TRFLUX60    ! ? 10x Fc/Fr (confirmed/reference) (6)
      integer*4     TRFLUX100   ! ? 10x Fc/Fr (confirmed/reference) (6)
      integer*4     dRA12       ! (arcsec) ? Right Ascension Delta (12um)
      integer*4     dDE12       ! (arcsec) ? Declination Delta (12um)
      integer*4     dRA25       ! (arcsec) ? Right Ascension Delta (25um)
      integer*4     dDE25       ! (arcsec) ? Declination Delta (25um)
      integer*4     dRA60       ! (arcsec) ? Right Ascension Delta (60um)
      integer*4     dDE60       ! (arcsec) ? Declination Delta (60um)
      integer*4     dRA100      ! (arcsec) ? Right Ascension Delta (100um)
      integer*4     dDE100      ! (arcsec) ? Declination Delta (100um)
      integer*4     PNEARC12    ! ? Number of Sources in Confusion Window (2)(4)
      integer*4     PNEARC25    ! ? Number of Sources in Confusion Window (2)(4)
      integer*4     PNEARC60    ! ? Number of Sources in Confusion Window (2)(4)
      integer*4     PNEARC100   ! ? Number of Sources in Confusion Window (2)(4)
      integer*4     NID         ! Number of Positional Associations (2)
      integer*4     IDTYPE      ! Type of Object (2)
*Note (1):
*    Sources are listed in order of increasing Right Ascension within each
*    field.
*Note (2):
*    This quantity is listed in the printed version of the SSC.
*Note (3): the Point Source Correlation Ceofficients are between 70-100%.
*    These are encoded as alphabetic characters with A=100, B=99..Z=75-70
*    (1 value per band).
*    The quoted correlation coefficients come from the reference or
*    confirming grids, whichever is higher, for high quality sources.
*Note (4):
*    In regions of high source density, the Pointed Observation
*    source extraction process, as well as the Serendipitous
*    Survey Confirmation and Band Merging processing, can result
*    in degraded positions and incorrectly band merged sources.
*    PNEARC is 1-(number of confirmed sources in the confusion
*    and band merge window).
*    Any value greater than zero is indicative of potential confusion
*    in the processing and the resulting source information should be
*    examined carefully, e.g. by inspection of the grids in question.
*Note (5): Qualities:
*    3=high-quality, 2=moderate quality,
*    1=upper limit
*Note (6): SSC sources can have flux density ratios
*          0.5 < Fc/Fr < 2.0.

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

C  Declarations for 'assoc.dat'	! Information about positional associations
                                   with sources in other catalogs

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

      integer*4     CatNo       ! Catalog Number (1)
      character*15  Source      ! Source ID
      character*5   Type        ! Source Type/Spectral Class (2)
      integer*4     Radius      ! (arcsec) Radius Vector from SSC Position to Association
      integer*4     PosAngle    ! (deg) Position Angle from SSC Position to
*                                    Association (E of N)
      integer*4     Field1      ! Object Field #1 Dependent (3)
      integer*4     Field2      ! Object Field #2 Dependent (4)
      integer*4     Field3      ! Object Field #3 Dependent (5)
      character*11  IRAS_1      ! ! SSC Name association (6)
      integer*4     RGRID_1     ! SSC Name association (6)
*Note (1):
*    For associations with the IRAS/PSC <II/125>, this value is 41.
*    For other associations, see details in file "meaning.txt".
*Note (2):
*    For associations with the IRAS/PSC <II/125> (i.e. CATNO=41),
*    this field is left blank. For other associations, see details
*    in "meaning.txt".
*Note (3):
*    For associations with the IRAS/PSC <II/125> (i.e. CATNO=41), this
*    value is a flag indicating the bands in which the source was detected
*    with medium or high quality; it is encoded as indicated in the
*    PSC Supplement Table X.B.2 (or'ed number values of 1 (12um),
*    2 (25um), 4(60um) and 8(100um)). For other associations, see details
*    in "meaning.txt".
*Note (4):
*    For associations with the IRAS/PSC <II/125> (i.e. CATNO=41), this
*    value is the PSC 2.0 Flux Density in the shortest (first) wavelength
*    band in which it was detected. Flux Densities higher than 10 Jy are
*    encoded 9999. For other associations, see details in "meaning.txt".
*Note (5):
*    For associations with the IRAS/PSC <II/125> (i.e. CATNO=41), this
*    value is the PSC 2.0 Flux Density in the second wavelength band
*    in which it was detected. Flux Densities higher than 10 Jy
*    are encoded 9999. For other associations, see details in "meaning.txt".
*Note (6):
*    These fields are a repetition of bytes 1-11 and 71-75 of "sources" table.

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

C  Declarations for 'headers.dat'	! Information about the reference and confirming
                                  grids (observations) in which point sources
                                  were identified

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

C  Position composed of: GLON GLAT
      character*13  FNAME       ! Field Name (2) (1)
      integer*4     RGRID_2     ! Reference Grid No. (2), has the lower 60 um
*                                     median noise.
      integer*4     RDATE       ! (d) Observation Date (JD 2445000+) of RGRID (2)
      integer*4     CGRID       ! Confirming Grid No. (2)
      integer*4     CDATE       ! (d) Observation Date (JD 2445000+) of CGRID (2)
      character*1   MACRO       ! Macro Type (2) (3)
      integer*4     GLON        ! (deg) Galactic Longitude (2)
      integer*4     GLAT        ! (deg) Galactic Latitude (2)
      integer*4     dRA         ! (arcsec) R.A. Difference between Grid Centers
      integer*4     dDE         ! (arcsec) Dec. Difference between Grid Centers
      integer*4     RGPA        ! (deg) Reference Grid Scan  Direction (E of N)
      integer*4     CGPA        ! (deg) Confirming Grid Scan Direction (E of N)
      integer*4     EFFAREA     ! (0.01deg2) Effective Area of Grid Overlap (2)
*                                     covered by both the reference and
*                                     confirming grids (in 0.01 square degrees).
      integer*4     RUNDF       ! No. of additional grid pairs with
*                                     Overlap > 5% (2)
      integer*4     RNOISE12    ! (mJy) Median Noise of Ref. Grid (12um)
      integer*4     RNOISE25    ! (mJy) Median Noise of Ref. Grid (25um)
      integer*4     RNOISE60    ! (mJy) Median Noise of Ref. Grid (60um)
      integer*4     RNOISE100   ! (mJy) Median Noise of Ref. Grid (100um)
      integer*4     CNOISE12    ! (mJy) Median Noise of Conf.Grid (12um)
      integer*4     CNOISE25    ! (mJy) Median Noise of Conf.Grid (25um)
      integer*4     CNOISE60    ! (mJy) Median Noise of Conf.Grid (60um)
      integer*4     CNOISE100   ! (mJy) Median Noise of Conf.Grid (100um)
      integer*4     NSOURC12    ! Number of Confirmed Sources (12um)
      integer*4     NSOURC25    ! Number of Confirmed Sources (25um)
      integer*4     NSOURC60    ! Number of Confirmed Sources (60um)
      integer*4     NSOURC100   ! Number of Confirmed Sources (100um)
      integer*4     NCONF12     ! Number of Confused Confirmations (12um) (2)
      integer*4     NCONF25     ! Number of Confused Confirmations (25um) (2)
      integer*4     NCONF60     ! Number of Confused Confirmations (60um) (2)
      integer*4     NCONF100    ! Number of Confused Confirmations (100um) (2)
      integer*4     CIRRUS      ! Number of 100 um only Confirmed Sources (2)
      integer*4     NMERGE      ! Number of Merged Sources, i.e. number of
*                                     source records following the field header.
*Note (1):
*    Fields are listed in order of increasing Right Ascension of the
*    Reference Grid center. The IRAS/SSC field name is the position of
*    the center of the reference grid, given in the form hhmmssSddmmss.
*Note (2):
*    This quantity is listed in the printed version of the catalog.
*Note (3):
*    Macro code is (Table II.A of "Explanations")
*     ------------------------------------------------------
*     Code   Name   Scans  Length Cross-step   SNR Gain
*                          arcmin   arcmin    improvement
*     ------------------------------------------------------
*        A  DPS02B    6      96       0.3        4.8
*        B  DPS05B    3     360       1.0        3.5
*        C  DPS52B    6      96       0          4.8
*        D  DPS55B    3     360       0          3.5
*        E  DPS60B    4      60       0.8        4.0
*        F  DPS60D    5      48       0.4        4.4
*        G  DPS61C   12      48       0.2        6.9
*        H  DPS61D   15      48       0.2        7.7
*        I  DPS62D    9      96       0.4        6.0
*        J  DPS63D    3      96       0.8        3.5
*        K  DPS60C    5      48       0.4        4.4
*        L  TPS52B    6      96       0          4.8
*        M  DPS60M    5      48       0.4        4.4
*     ------------------------------------------------------

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

C  Declarations for 'overlap.dat'	! Overlapping fields (Appendix A)

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

      integer*4     RGRID_3     ! Reference Grid No
      integer*4     GRID1       ! Overlapping grid no., >5% overlap
*                                      with Reference Grid
      integer*4     OVLP1       ! (arcmin2) Overlapping area

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

C  Loading file 'sources.dat'	! Properties of the point sources identified

C  Format for file interpretation

    1 format(
     +  A11,I2,I2,I3,A1,I2,I2,I2,1X,I3,1X,E9.3,E9.3,E9.3,E9.3,I1,I1,
     +  I1,I1,I5,5X,I3,I3,I3,I3,I4,I4,I4,I4,A1,A1,A1,A1,I2,I2,I2,I2,
     +  I4,I4,I4,I4,I4,I4,I4,I4,I1,I1,I1,I1,I2,I1)

C  Effective file loading

      open(unit=1,status='old',file=
     +'sources.dat')
      write(6,*) '....Loading file: sources.dat'
      do i__=1,43886
        read(1,'(A159)')ar__
        read(ar__,1)
     +  IRAS,RAh,RAm,RAds,DE_,DEd,DEm,DEs,ANGLE,FLUX12,FLUX25,FLUX60,
     +  FLUX100,FQUAL12,FQUAL25,FQUAL60,FQUAL100,RGRID,RELUNC12,
     +  RELUNC25,RELUNC60,RELUNC100,TLSNR12,TLSNR25,TLSNR60,TLSNR100,
     +  CC12,CC25,CC60,CC100,TRFLUX12,TRFLUX25,TRFLUX60,TRFLUX100,
     +  dRA12,dDE12,dRA25,dDE25,dRA60,dDE60,dRA100,dDE100,PNEARC12,
     +  PNEARC25,PNEARC60,PNEARC100,NID,IDTYPE
        if(ar__(81:83) .EQ. '') RELUNC12 = iNULL__
        if(ar__(84:86) .EQ. '') RELUNC25 = iNULL__
        if(ar__(87:89) .EQ. '') RELUNC60 = iNULL__
        if(ar__(90:92) .EQ. '') RELUNC100 = iNULL__
        if(ar__(93:96) .EQ. '') TLSNR12 = iNULL__
        if(ar__(97:100) .EQ. '') TLSNR25 = iNULL__
        if(ar__(101:104) .EQ. '') TLSNR60 = iNULL__
        if(ar__(105:108) .EQ. '') TLSNR100 = iNULL__
        if(ar__(113:114) .EQ. '') TRFLUX12 = iNULL__
        if(ar__(115:116) .EQ. '') TRFLUX25 = iNULL__
        if(ar__(117:118) .EQ. '') TRFLUX60 = iNULL__
        if(ar__(119:120) .EQ. '') TRFLUX100 = iNULL__
        if(ar__(121:124) .EQ. '') dRA12 = iNULL__
        if(ar__(125:128) .EQ. '') dDE12 = iNULL__
        if(ar__(129:132) .EQ. '') dRA25 = iNULL__
        if(ar__(133:136) .EQ. '') dDE25 = iNULL__
        if(ar__(137:140) .EQ. '') dRA60 = iNULL__
        if(ar__(141:144) .EQ. '') dDE60 = iNULL__
        if(ar__(145:148) .EQ. '') dRA100 = iNULL__
        if(ar__(149:152) .EQ. '') dDE100 = iNULL__
        if(ar__(153:153) .EQ. '') PNEARC12 = iNULL__
        if(ar__(154:154) .EQ. '') PNEARC25 = iNULL__
        if(ar__(155:155) .EQ. '') PNEARC60 = iNULL__
        if(ar__(156:156) .EQ. '') PNEARC100 = 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(RAds .GT. -180) RAdeg=RAdeg+RAds/2400.
        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)
     +  IRAS,RAh,RAm,RAds,DE_,DEd,DEm,DEs,ANGLE,FLUX12,FLUX25,FLUX60,
     +  FLUX100,FQUAL12,FQUAL25,FQUAL60,FQUAL100,RGRID,RELUNC12,
     +  RELUNC25,RELUNC60,RELUNC100,TLSNR12,TLSNR25,TLSNR60,TLSNR100,
     +  CC12,CC25,CC60,CC100,TRFLUX12,TRFLUX25,TRFLUX60,TRFLUX100,
     +  dRA12,dDE12,dRA25,dDE25,dRA60,dDE60,dRA100,dDE100,PNEARC12,
     +  PNEARC25,PNEARC60,PNEARC100,NID,IDTYPE
        write(6,'(6H Pos: 2F8.4)') RAdeg,DEdeg
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'assoc.dat'	! Information about positional associations
*                                   with sources in other catalogs

C  Format for file interpretation

    2 format(I2,A15,A5,I3,I3,I4,I4,I4,A11,I5)

C  Effective file loading

      open(unit=1,status='old',file=
     +'assoc.dat')
      write(6,*) '....Loading file: assoc.dat'
      do i__=1,29583
        read(1,'(A56)')ar__1
        read(ar__1,2)
     +  CatNo,Source,Type,Radius,PosAngle,Field1,Field2,Field3,IRAS_1,
     +  RGRID_1
c    ..............Just test output...........
        write(6,2)
     +  CatNo,Source,Type,Radius,PosAngle,Field1,Field2,Field3,IRAS_1,
     +  RGRID_1
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'headers.dat'	! Information about the reference and confirming
*                                  grids (observations) in which point sources
*                                  were identified

C  Format for file interpretation

    3 format(
     +  A13,I5,I3,I5,I3,A1,I3,I3,I4,I4,I4,I4,I3,I2,23X,I5,I5,I5,I5,I5,
     +  I5,I5,I5,I3,I3,I3,I3,I3,I3,I3,I3,I3,I3)

C  Effective file loading

      open(unit=1,status='old',file=
     +'headers.dat')
      write(6,*) '....Loading file: headers.dat'
      do i__=1,1813
        read(1,'(A150)')ar__2
        read(ar__2,3)
     +  FNAME,RGRID_2,RDATE,CGRID,CDATE,MACRO,GLON,GLAT,dRA,dDE,RGPA,
     +  CGPA,EFFAREA,RUNDF,RNOISE12,RNOISE25,RNOISE60,RNOISE100,
     +  CNOISE12,CNOISE25,CNOISE60,CNOISE100,NSOURC12,NSOURC25,
     +  NSOURC60,NSOURC100,NCONF12,NCONF25,NCONF60,NCONF100,CIRRUS,
     +  NMERGE
c    ..............Just test output...........
        write(6,3)
     +  FNAME,RGRID_2,RDATE,CGRID,CDATE,MACRO,GLON,GLAT,dRA,dDE,RGPA,
     +  CGPA,EFFAREA,RUNDF,RNOISE12,RNOISE25,RNOISE60,RNOISE100,
     +  CNOISE12,CNOISE25,CNOISE60,CNOISE100,NSOURC12,NSOURC25,
     +  NSOURC60,NSOURC100,NCONF12,NCONF25,NCONF60,NCONF100,CIRRUS,
     +  NMERGE
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'overlap.dat'	! Overlapping fields (Appendix A)

C  Format for file interpretation

    4 format(I5,1X,I5,1X,I4)

C  Effective file loading

      open(unit=1,status='old',file=
     +'overlap.dat')
      write(6,*) '....Loading file: overlap.dat'
      do i__=1,2149
        read(1,'(A16)')ar__3
        read(ar__3,4)RGRID_3,GRID1,OVLP1
c    ..............Just test output...........
        write(6,4)RGRID_3,GRID1,OVLP1
c    .......End.of.Just test output...........
      end do
      close(1)

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