FORTRAN Generation
(/./ftp/cats/J/A_A/439/265)

Conversion of standardized ReadMe file for file /./ftp/cats/J/A_A/439/265 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/A+A/439/265       Wolf-Rayet population in M83             (Hadfield+, 2005)
*================================================================================
*A spectroscopic search for the non-nuclear Wolf-Rayet population of the
*metal-rich spiral galaxy M83.
*    Hadfield L.J., Crowther P.A., Schild H., Schmutz W.
*   <Astron. Astrophys., 439, 265-277 (2005)>
*   =2005A&A...439..265H
C=============================================================================

C  Internal variables

      integer*4 i__

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

C  Declarations for 'table1.dat'	! FORS2 Multi Object Spectroscopy (MOS)
                              observing log for M83.

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

      character*10  Date        ! ("YYYY-MM-DD") Observation date
      character*6   MOD         ! MOD mask
      character*6   Exp         ! (s) Exposure time(s)
      real*4        Seeing1     ! (arcsec) DIMM seeing
      real*4        Seeing2     ! (arcsec) ? DIMM seeing

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

C  Declarations for 'tablea1.dat'	! Catalogue of sources with confirmed WR
                              spectroscopic signatures in M83.

      integer*4 nr__1
      parameter (nr__1=132)	! Number of records
      character*202 ar__1  	! 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)

      integer*4     v_HCS2005_  ! Sequential number of the source
      character*1   n__HCS2005_ ! [a] Note on [HCS2005] (1)
      integer*4     RAh         ! (h) Right ascension (J2000)
      integer*4     RAm         ! (min) Right ascension (J2000)
      real*4        RAs         ! (s) Right ascension (J2000)
      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        rho_rho0    ! De-projected distances are expressed as a
*                                   fraction of the Holmberg radius
*                                   rho0=7.3'=9.56kpc
      character*1   l_m4686     ! Limit flag on m4686
      real*4        m4686       ! (mag) ? He II (4686{AA}) band magnitude
      character*1   n_m4686     ! [)c] Note on m4686 (G2)
      real*4        Dm          ! (mag) ? Magnitude difference, m4684-m4781 (G3)
      character*1   n_Dm        ! [)] ): spectroscopic photometry
      real*4        E_B_V       ! (mag) ? Reddening
      character*1   n_E_B_V     ! [b] b: average E(B-V) value has been assumed
      character*1   l_BMAG      ! Limit flag on BMAG
      real*4        BMAG        ! (mag) ? Absolute B magnitude
      character*1   n_BMAG      ! [)] ): spectroscopic photometry
      integer*4     v_DPD83_    ! ? HII region in de Vaucouleurs et al.,
*                                    1983ApJS...53...17D, [DPD83] NN, number
      character*1   l_EWC_He    ! Limit flag on EWCIII/HeII
      integer*4     EWC_He      ! (0.1nm) ? Equivalent width of CIII(4650)/HeII(4686)
      integer*4     FWHMC_He    ! (0.1nm) ? FWHM of CIII/HeII
      character*2   n_FWHMC_He  ! [ND] ND for No data
      real*4        FC_He       ! (mW/m2) ? Observed line flux of CIII/HeII
      character*2   n_EWC_He    ! [ND] ND for No data
      character*1   l_EWCIII    ! Limit flag on EWCIII
      integer*4     EWCIII      ! (0.1nm) ? Equivalent width of CIII(5696)
      character*1   l_FWHMCIII  ! Limit flag on FWHMCIII
      integer*4     FWHMCIII    ! (0.1nm) ? FWHM of CIII
      real*4        FCIII       ! (mW/m2) ? Observed line flux of CIII
      character*1   l_EWCIV     ! Limit flag on CIV
      integer*4     EWCIV       ! (0.1nm) ? Equivalent width of CIV(5808)
      integer*4     FWHMCIV     ! (0.1nm) ? FWHM of CIV
      real*4        FCIV        ! (mW/m2) ? Observed line flux of CIV
      integer*4     WN2_5       ! ? Number of WN2-5 type stars in the source (4)
      integer*4     WN6_10      ! ? Number of WN6-10 type stars in the source (4)
      integer*4     WC4_6       ! ? Number of WC4-6 type stars in the source (4)
      integer*4     WC7         ! ? Number of WC7 type stars in the source (4)
      integer*4     WC8_9       ! ? Number of WC8-9 type stars in the source (4)
      character*8   MOS         ! Multi Object Spectroscopy (MOS) mask used
      real*4        e_m4686     ! (mag) ? rms uncertainty on m4686
      real*4        e_Dm        ! (mag) ? rms uncertainty on Dm
      real*4        e_E_B_V     ! (mag) ? rms uncertainty on E(B-V)
      real*4        e_BMAG      ! (mag) ? rms uncertainty on BMAG
      real*4        e_FWHMC_He  ! (0.1nm) ? rms uncertainty on FWHMC/He
      real*4        e_FWHMCIII  ! (0.1nm) ? rms uncertainty on FWHMCIII
      real*4        e_FWHMCIV   ! (0.1nm) ? rms uncertainty on FWHMCIV
      integer*4     e_WN2_5     ! ? rms uncertainty on WN2-5
      integer*4     e_WN6_10    ! ? rms uncertainty on WN6-10
      integer*4     e_WC4_6     ! ? rms uncertainty on WC4-6
      integer*4     e_WC7       ! ? rms uncertainty on WC7
      integer*4     e_WC8_9     ! ? rms uncertainty on WC8-9
*Note (1): 'a' f He II PSF or spectroscopic photometry was unavailable
*     and the average slit loss correction factor has been assumed.
*Note (4): The number of, and error in, WR stars in each source are
*     estimated from the line luminosities indicated in Sect. 3.2 and 
*     a distance of 4.5+/-0.3Mpc

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

C  Declarations for 'tablea2.dat'	! Catalogue of sources with candidate WR signatures
                             in M83, either from narrow-band imaging or for
                             which MOS spectroscopy was ambiguous.

      integer*4 nr__2
      parameter (nr__2=89)	! Number of records
      character*48 ar__2  	! 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     v_HCS2005__1 ! Sequential number of the source
      character*1   n__HCS2005__1 ! [pl] Note on [HCS2005] (1)
      integer*4     RAh_1       ! (h) Right ascension (J2000)
      integer*4     RAm_1       ! (min) Right ascension (J2000)
      real*4        RAs_1       ! (s) Right ascension (J2000)
      character*1   DE__1       ! Declination sign (J2000)
      integer*4     DEd_1       ! (deg) Declination (J2000)
      integer*4     DEm_1       ! (arcmin) Declination (J2000)
      real*4        DEs_1       ! (arcsec) Declination (J2000)
      real*4        rho_rho0_1  ! De-projected distances are expressed as a
*                                   fraction of the Holmberg radius
*                                   rho0=7.3'=9.56kpc
      character*1   l_m4686_1   ! Limit flag on m4686
      real*4        m4686_1     ! (mag) ?=- He II (4686{AA}) band magnitude
      character*1   n_m4686_1   ! [c] Note on m4686 (G2)
      real*4        Dm_1        ! (mag) ?=- Magnitude difference, m4684-m4781 (G3)
      integer*4     v_DPD83__1  ! ? HII region in de Vaucouleurs et al.,
*                                    1983ApJS...53...17D, [DPD83] NN, number
*Note (1): Note on [HCS2005] as follows:
*      p = Insufficient S/N for classification
*      l = insufficient spectral coverage for WN identification

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

C  Loading file 'table1.dat'	! FORS2 Multi Object Spectroscopy (MOS)
*                              observing log for M83.

C  Format for file interpretation

    1 format(A10,1X,A6,1X,A6,1X,F3.1,2X,F3.1)

C  Effective file loading

      open(unit=1,status='old',file=
     +'table1.dat')
      write(6,*) '....Loading file: table1.dat'
      do i__=1,18
        read(1,'(A33)')ar__
        read(ar__,1)Date,MOD,Exp,Seeing1,Seeing2
        if(ar__(31:33) .EQ. '') Seeing2 = rNULL__
c    ..............Just test output...........
        write(6,1)Date,MOD,Exp,Seeing1,Seeing2
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'tablea1.dat'	! Catalogue of sources with confirmed WR
*                              spectroscopic signatures in M83.

C  Format for file interpretation

    2 format(
     +  I3,A1,1X,I2,1X,I2,1X,F5.2,1X,A1,I2,1X,I2,1X,F4.1,1X,F4.2,1X,
     +  A1,F4.1,A1,2X,F4.1,A1,1X,F4.2,A1,A1,F5.1,A1,1X,I2,1X,A1,I4,1X,
     +  I3,A2,1X,E7.2,1X,A2,2X,A1,I3,1X,A1,I2,1X,E7.2,1X,A1,I4,1X,I3,
     +  1X,E7.2,1X,I2,1X,I2,1X,I1,1X,I2,1X,I3,1X,A8,1X,F3.1,1X,F3.1,
     +  1X,F4.2,1X,F3.1,1X,E7.2,1X,E7.2,1X,E7.2,1X,I2,1X,I2,1X,I1,1X,
     +  I2,1X,I3)

C  Effective file loading

      open(unit=1,status='old',file=
     +'tablea1.dat')
      write(6,*) '....Loading file: tablea1.dat'
      do i__=1,132
        read(1,'(A202)')ar__1
        read(ar__1,2)
     +  v_HCS2005_,n__HCS2005_,RAh,RAm,RAs,DE_,DEd,DEm,DEs,rho_rho0,
     +  l_m4686,m4686,n_m4686,Dm,n_Dm,E_B_V,n_E_B_V,l_BMAG,BMAG,
     +  n_BMAG,v_DPD83_,l_EWC_He,EWC_He,FWHMC_He,n_FWHMC_He,FC_He,
     +  n_EWC_He,l_EWCIII,EWCIII,l_FWHMCIII,FWHMCIII,FCIII,l_EWCIV,
     +  EWCIV,FWHMCIV,FCIV,WN2_5,WN6_10,WC4_6,WC7,WC8_9,MOS,e_m4686,
     +  e_Dm,e_E_B_V,e_BMAG,e_FWHMC_He,e_FWHMCIII,e_FWHMCIV,e_WN2_5,
     +  e_WN6_10,e_WC4_6,e_WC7,e_WC8_9
        if(ar__1(36:39) .EQ. '') m4686 = rNULL__
        if(ar__1(43:46) .EQ. '') Dm = rNULL__
        if(ar__1(49:52) .EQ. '') E_B_V = rNULL__
        if(ar__1(55:59) .EQ. '') BMAG = rNULL__
        if(ar__1(62:63) .EQ. '') v_DPD83_ = iNULL__
        if(ar__1(66:69) .EQ. '') EWC_He = iNULL__
        if(ar__1(71:73) .EQ. '') FWHMC_He = iNULL__
        if(ar__1(77:83) .EQ. '') FC_He = rNULL__
        if(ar__1(90:92) .EQ. '') EWCIII = iNULL__
        if(ar__1(95:96) .EQ. '') FWHMCIII = iNULL__
        if(ar__1(98:104) .EQ. '') FCIII = rNULL__
        if(ar__1(107:110) .EQ. '') EWCIV = iNULL__
        if(ar__1(112:114) .EQ. '') FWHMCIV = iNULL__
        if(ar__1(116:122) .EQ. '') FCIV = rNULL__
        if(ar__1(124:125) .EQ. '') WN2_5 = iNULL__
        if(ar__1(127:128) .EQ. '') WN6_10 = iNULL__
        if(ar__1(130:130) .EQ. '') WC4_6 = iNULL__
        if(ar__1(132:133) .EQ. '') WC7 = iNULL__
        if(ar__1(135:137) .EQ. '') WC8_9 = iNULL__
        if(ar__1(148:150) .EQ. '') e_m4686 = rNULL__
        if(ar__1(152:154) .EQ. '') e_Dm = rNULL__
        if(ar__1(156:159) .EQ. '') e_E_B_V = rNULL__
        if(ar__1(161:163) .EQ. '') e_BMAG = rNULL__
        if(ar__1(165:171) .EQ. '') e_FWHMC_He = rNULL__
        if(ar__1(173:179) .EQ. '') e_FWHMCIII = rNULL__
        if(ar__1(181:187) .EQ. '') e_FWHMCIV = rNULL__
        if(ar__1(189:190) .EQ. '') e_WN2_5 = iNULL__
        if(ar__1(192:193) .EQ. '') e_WN6_10 = iNULL__
        if(ar__1(195:195) .EQ. '') e_WC4_6 = iNULL__
        if(ar__1(197:198) .EQ. '') e_WC7 = iNULL__
        if(ar__1(200:202) .EQ. '') e_WC8_9 = 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,2)
     +  v_HCS2005_,n__HCS2005_,RAh,RAm,RAs,DE_,DEd,DEm,DEs,rho_rho0,
     +  l_m4686,m4686,n_m4686,Dm,n_Dm,E_B_V,n_E_B_V,l_BMAG,BMAG,
     +  n_BMAG,v_DPD83_,l_EWC_He,EWC_He,FWHMC_He,n_FWHMC_He,FC_He,
     +  n_EWC_He,l_EWCIII,EWCIII,l_FWHMCIII,FWHMCIII,FCIII,l_EWCIV,
     +  EWCIV,FWHMCIV,FCIV,WN2_5,WN6_10,WC4_6,WC7,WC8_9,MOS,e_m4686,
     +  e_Dm,e_E_B_V,e_BMAG,e_FWHMC_He,e_FWHMCIII,e_FWHMCIV,e_WN2_5,
     +  e_WN6_10,e_WC4_6,e_WC7,e_WC8_9
        write(6,'(6H Pos: 2F8.4)') RAdeg,DEdeg
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'tablea2.dat'	! Catalogue of sources with candidate WR signatures
*                             in M83, either from narrow-band imaging or for
*                             which MOS spectroscopy was ambiguous.

C  Format for file interpretation

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

C  Effective file loading

      open(unit=1,status='old',file=
     +'tablea2.dat')
      write(6,*) '....Loading file: tablea2.dat'
      do i__=1,89
        read(1,'(A48)')ar__2
        read(ar__2,3)
     +  v_HCS2005__1,n__HCS2005__1,RAh_1,RAm_1,RAs_1,DE__1,DEd_1,
     +  DEm_1,DEs_1,rho_rho0_1,l_m4686_1,m4686_1,n_m4686_1,Dm_1,
     +  v_DPD83__1
        if (idig(ar__2(36:39)).EQ.0) m4686_1 =  rNULL__
        if (idig(ar__2(42:45)).EQ.0) Dm_1 =  rNULL__
        if(ar__2(47:48) .EQ. '') v_DPD83__1 = iNULL__
        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,3)
     +  v_HCS2005__1,n__HCS2005__1,RAh_1,RAm_1,RAs_1,DE__1,DEd_1,
     +  DEm_1,DEs_1,rho_rho0_1,l_m4686_1,m4686_1,n_m4686_1,Dm_1,
     +  v_DPD83__1
        write(6,'(6H Pos: 2F8.4)') RAdeg_1,DEdeg_1
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