FORTRAN Generation
(/./ftp/cats/J/A_A/600/A82)

Conversion of standardized ReadMe file for file /./ftp/cats/J/A_A/600/A82 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-14
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/600/A82   VLTS. O giants and supergiants nitrogen abundances (Grin+, 2017)
*================================================================================
*The VLT-FLAMES Tarantula Survey.
*XXV. Surface nitrogen abundances of O-type giants and supergiants.
*    Grin N.J., Ramirez-Agudelo O.H., de Koter A., Sana H., Puls J., Brott I.,
*    Crowther P.A., Dufton P.L., Evans C.J., Graefener G., Herrero A.,
*    Langer N., Lennon D.J., van Loon J.T., Markova N., de Mink S.E.,
*    Najarro F., Schneider F.R.N., Taylor W.D., Tramper F., Vink J.S.,
*    Walborn W.R.
*    <Astron. Astrophys. 600, A82 (2017)>
*    =2017A&A...600A..82G        (SIMBAD/NED BibCode)
C=============================================================================

C  Internal variables

      integer*4 i__

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

C  Declarations for 'tablea1.dat'	! Table of results for the O-type giants and
                                 supergiants

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

      integer*4     VFTS        ! [16/843] VLT-FLAMES Tarantula Survey identifier
      character*1   n_VFTS      ! [*] Note on VFTS (1)
      character*23  SpType      ! Morphological classification by Walborn et al.
*                                  (2014, Cat. J/A+A/564/A40)
      integer*4     vsini       ! (km/s) Projected rotational velocity (2)
      character*1   l_epsN      ! Upper limit flag on epsN
      real*4        epsN        ! ([-]) Surface nitrogen abundance
*                                  (=log(N_N/N_H)+12, see equation 1)
      real*4        e_epsN      ! ([-]) ? Error on surface nitrogen abundance
      integer*4     Nlines      ! ?=- Number of lines used for measurement (3)
      real*4        YHe         ! Surface Helium mass fraction (2)
      real*4        loggc       ! ([cm/s2]) Logarithmic surface gravity corrected for
*                                  rotation (2)
      real*4        Teff        ! (kK) Effective Temperature in kilo Kelvin (2)
      real*4        logL        ! ([Lsun]) Logarithmic luminosity in terms of solar (2)
      integer*4     Mass        ! (Msun) Mass estimate in solar masses (2)(4)
      character*1   EW          ! [*] * indicates equivalent width in table2
*Note (1): Note as follows:
*  * = for newly detected binaries and are excluded from quantitative
*       comparison to theory (see Sect. 3.4).
*Note (2): Parameters determined by Ramirez-Agudelo et al., (2016, in prep.).
*Note (3): A '-' is used in case of an upper limit on the nitrogen abundance
*Note (4): Masses are determined using the Bayesian tool BONNSAI
*   (Schneider et al., 2014A&A...570A..66S).

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

C  Declarations for 'tablea2.dat'	! Table of results for the O-type stars without
                                 assigned luminosity class

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

      integer*4     VFTS_1      ! [16/843] VLT-FLAMES Tarantula Survey identifier
      character*1   n_VFTS_1    ! [*] Note on VFTS (1)
      character*11  SpType_1    ! Morphological classification by Walborn+ (2014)
      integer*4     vsini_1     ! (km/s) Projected rotational velocity (2)
      real*4        epsN_1      ! ([-]) Surface nitrogen abundance
*                                  (= log(N_N/N_H)+12, see equation 1)
      character*1   l_epsN_1    ! Upper limit on the nitrogen abundance
      real*4        e_epsN_1    ! ([-]) ? Error on surface nitrogen abundance
      integer*4     Nlines_1    ! ?=- Number of lines used for measurement (3)
      real*4        loggc_1     ! ([cm/s2]) Logarithmic surface gravity corrected for
      character*1   EW_1        ! [*] * indicates equivalent widths in table2
*Note (1): Note as follows:
*  * =  for poor quality fits and are excluded from quantitative
*        comparison to theory (see Sect. 3.4).
*Note (2): Parameters determined by Ramirez-Agudelo et al. (2016, in prep.).
*Note (3): A '-' is used in case of an upper limit on the nitrogen abundance.

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

C  Declarations for 'table2.dat'	! Equivalent widths

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

      integer*4     VFTS_2      ! [16/843] VLT-FLAMES Tarantula Survey
*                                    identifier
      real*4        EWNII3995   ! (0.1pm) ?=- Equivalent width of the NII3995 line (1)
      real*4        e_EWNII3995 ! (0.1pm) ?=- Error on EWNII3995 line (1)
      real*4        EWNII4630   ! (0.1pm) ?=- Equivalent width of the NII4630 line (1)
      real*4        e_EWNII4630 ! (0.1pm) ?=- Error on EWNII4630 line (1)
      real*4        EWNIII4097  ! (0.1pm) ?=- Equivalent width of the NIII4097 line
*                                    (1) (2)
      real*4        e_EWNIII4097 ! (0.1pm) ?=- Error on EWNIII4097 line (1)
      real*4        EWNIII4195  ! (0.1pm) ?=- Equivalent width of the NIII4195 line (1)
      real*4        e_EWNIII4195 ! (0.1pm) ?=- Error on EWNIII4195 line (1)
      real*4        EWNIII4379  ! (0.1pm) ?=- Equivalent width of the NIII4379 line (1)
      real*4        e_EWNIII4379 ! (0.1pm) ?=- Error on EWNIII4379 line (1)
      real*4        EWNIII4511  ! (0.1pm) ?=- Equivalent width of the NIII4511 line (1)
      real*4        e_EWNIII4511 ! (0.1pm) ?=- Error on EWNIII4511 line (1)
      real*4        EWNIII4515  ! (0.1pm) ?=- Equivalent width of the NIII4515 line (1)
      real*4        e_EWNIII4515 ! (0.1pm) ?=- Error on EWNIII4515 line (1)
      real*4        EWNIII4518  ! (0.1pm) ?=- Equivalent width of the NIII4518 line (1)
      real*4        e_EWNIII4518 ! (0.1pm) ?=- Error on EWNIII4518 line (1)
      real*4        EWNIII4523  ! (0.1pm) ?=- Equivalent width of the NIII4523 line (1)
      real*4        e_EWNIII4523 ! (0.1pm) ?=- Error on EWNIII4523 line (1)
      real*4        EWNIII4535  ! (0.1pm) ?=- Equivalent width of the NIII4535 line (1)
      real*4        e_EWNIII4535 ! (0.1pm) ?=- Error on EWNIII4535 line (1)
      real*4        EWNIII4634  ! (0.1pm) ?=- Equivalent width of the NIII4634 line (1)
      real*4        e_EWNIII4634 ! (0.1pm) ?=- Error on EWNIII4634 line (1)
      real*4        EWNIII4640  ! (0.1pm) ?=- Equivalent width of the NIII4640 line (1)
      real*4        e_EWNIII4640 ! (0.1pm) ?=- Error on EWNIII4640 line (1)
      real*4        EWNIIIqua   ! (0.1pm) ?=- Combined equivalent width of the
*                                    NIII4511-4515-4518 lines (1)
      real*4        e_EWNIIIqua ! (0.1pm) ?=- Error on EWNIIIqua (1)
      real*4        EWNIV4058   ! (0.1pm) ?=- Equivalent width of the NIV4058 line (1)
      real*4        e_EWNIV4058 ! (0.1pm) ?=- Error on EWNIV4058 line (1)
      real*4        EWNV4603    ! (0.1pm) ?=- Equivalent width of the NV4603 line (1)
      real*4        e_EWNV4603  ! (0.1pm) ?=- Error on EWNV4603 line (1)
      real*4        EWNV4619    ! (0.1pm) ?=- Equivalent width of the NV4619 line (1)
      real*4        e_EWNV4619  ! (0.1pm) ?=- Error on EWNV4619 line (1)
*Note (1): 0.1pm = 1e-3 Angstrom, negative equivalent width values indicate
*  emission.
*   A '---' indicates the line was not used in the analysis.
*Note (2): Equivalent width as measured after dividing the observed profile
*   by a Lorentzian fit to the wing of Hdelta (see Sect. 3.2).

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

C  Loading file 'tablea1.dat'	! Table of results for the O-type giants and
*                                 supergiants

C  Format for file interpretation

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

C  Effective file loading

      open(unit=1,status='old',file=
     +'tablea1.dat')
      write(6,*) '....Loading file: tablea1.dat'
      do i__=1,72
        read(1,'(A71)')ar__
        read(ar__,1)
     +  VFTS,n_VFTS,SpType,vsini,l_epsN,epsN,e_epsN,Nlines,YHe,loggc,
     +  Teff,logL,Mass,EW
        if(ar__(40:43) .EQ. '') e_epsN = rNULL__
        if (Nlines .EQ. 45) Nlines =  iNULL__
c    ..............Just test output...........
        write(6,1)
     +  VFTS,n_VFTS,SpType,vsini,l_epsN,epsN,e_epsN,Nlines,YHe,loggc,
     +  Teff,logL,Mass,EW
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'tablea2.dat'	! Table of results for the O-type stars without
*                                 assigned luminosity class

C  Format for file interpretation

    2 format(
     +  I3,A1,1X,A11,1X,I3,1X,F4.2,1X,A1,F4.2,1X,I1,1X,F4.2,1X,A1)

C  Effective file loading

      open(unit=1,status='old',file=
     +'tablea2.dat')
      write(6,*) '....Loading file: tablea2.dat'
      do i__=1,31
        read(1,'(A40)')ar__1
        read(ar__1,2)
     +  VFTS_1,n_VFTS_1,SpType_1,vsini_1,epsN_1,l_epsN_1,e_epsN_1,
     +  Nlines_1,loggc_1,EW_1
        if(ar__1(28:31) .EQ. '') e_epsN_1 = rNULL__
        if (Nlines_1 .EQ. 45) Nlines_1 =  iNULL__
c    ..............Just test output...........
        write(6,2)
     +  VFTS_1,n_VFTS_1,SpType_1,vsini_1,epsN_1,l_epsN_1,e_epsN_1,
     +  Nlines_1,loggc_1,EW_1
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'table2.dat'	! Equivalent widths

C  Format for file interpretation

    3 format(
     +  I3,3X,F4.1,2X,F3.1,3X,F4.1,1X,F4.1,2X,F5.1,1X,F4.1,3X,F4.1,2X,
     +  F3.1,2X,F5.1,1X,F4.1,2X,F5.1,1X,F4.1,2X,F5.1,1X,F4.1,3X,F4.1,
     +  2X,F3.1,3X,F4.1,2X,F3.1,3X,F4.1,2X,F3.1,1X,F6.1,1X,F4.1,1X,
     +  F6.1,1X,F4.1,2X,F5.1,1X,F4.1,1X,F6.1,2X,F3.1,2X,F5.1,2X,F3.1,
     +  2X,F5.1,2X,F3.1)

C  Effective file loading

      open(unit=1,status='old',file=
     +'table2.dat')
      write(6,*) '....Loading file: table2.dat'
      do i__=1,41
        read(1,'(A195)')ar__2
        read(ar__2,3)
     +  VFTS_2,EWNII3995,e_EWNII3995,EWNII4630,e_EWNII4630,EWNIII4097,
     +  e_EWNIII4097,EWNIII4195,e_EWNIII4195,EWNIII4379,e_EWNIII4379,
     +  EWNIII4511,e_EWNIII4511,EWNIII4515,e_EWNIII4515,EWNIII4518,
     +  e_EWNIII4518,EWNIII4523,e_EWNIII4523,EWNIII4535,e_EWNIII4535,
     +  EWNIII4634,e_EWNIII4634,EWNIII4640,e_EWNIII4640,EWNIIIqua,
     +  e_EWNIIIqua,EWNIV4058,e_EWNIV4058,EWNV4603,e_EWNV4603,
     +  EWNV4619,e_EWNV4619
        if (idig(ar__2(7:10)).EQ.0) EWNII3995 =  rNULL__
        if (idig(ar__2(13:15)).EQ.0) e_EWNII3995 =  rNULL__
        if (idig(ar__2(19:22)).EQ.0) EWNII4630 =  rNULL__
        if (idig(ar__2(24:27)).EQ.0) e_EWNII4630 =  rNULL__
        if (idig(ar__2(30:34)).EQ.0) EWNIII4097 =  rNULL__
        if (idig(ar__2(36:39)).EQ.0) e_EWNIII4097 =  rNULL__
        if (idig(ar__2(43:46)).EQ.0) EWNIII4195 =  rNULL__
        if (idig(ar__2(49:51)).EQ.0) e_EWNIII4195 =  rNULL__
        if (idig(ar__2(54:58)).EQ.0) EWNIII4379 =  rNULL__
        if (idig(ar__2(60:63)).EQ.0) e_EWNIII4379 =  rNULL__
        if (idig(ar__2(66:70)).EQ.0) EWNIII4511 =  rNULL__
        if (idig(ar__2(72:75)).EQ.0) e_EWNIII4511 =  rNULL__
        if (idig(ar__2(78:82)).EQ.0) EWNIII4515 =  rNULL__
        if (idig(ar__2(84:87)).EQ.0) e_EWNIII4515 =  rNULL__
        if (idig(ar__2(91:94)).EQ.0) EWNIII4518 =  rNULL__
        if (idig(ar__2(97:99)).EQ.0) e_EWNIII4518 =  rNULL__
        if (idig(ar__2(103:106)).EQ.0) EWNIII4523 =  rNULL__
        if (idig(ar__2(109:111)).EQ.0) e_EWNIII4523 =  rNULL__
        if (idig(ar__2(115:118)).EQ.0) EWNIII4535 =  rNULL__
        if (idig(ar__2(121:123)).EQ.0) e_EWNIII4535 =  rNULL__
        if (idig(ar__2(125:130)).EQ.0) EWNIII4634 =  rNULL__
        if (idig(ar__2(132:135)).EQ.0) e_EWNIII4634 =  rNULL__
        if (idig(ar__2(137:142)).EQ.0) EWNIII4640 =  rNULL__
        if (idig(ar__2(144:147)).EQ.0) e_EWNIII4640 =  rNULL__
        if (idig(ar__2(150:154)).EQ.0) EWNIIIqua =  rNULL__
        if (idig(ar__2(156:159)).EQ.0) e_EWNIIIqua =  rNULL__
        if (idig(ar__2(161:166)).EQ.0) EWNIV4058 =  rNULL__
        if (idig(ar__2(169:171)).EQ.0) e_EWNIV4058 =  rNULL__
        if (idig(ar__2(174:178)).EQ.0) EWNV4603 =  rNULL__
        if (idig(ar__2(181:183)).EQ.0) e_EWNV4603 =  rNULL__
        if (idig(ar__2(186:190)).EQ.0) EWNV4619 =  rNULL__
        if (idig(ar__2(193:195)).EQ.0) e_EWNV4619 =  rNULL__
c    ..............Just test output...........
        write(6,3)
     +  VFTS_2,EWNII3995,e_EWNII3995,EWNII4630,e_EWNII4630,EWNIII4097,
     +  e_EWNIII4097,EWNIII4195,e_EWNIII4195,EWNIII4379,e_EWNIII4379,
     +  EWNIII4511,e_EWNIII4511,EWNIII4515,e_EWNIII4515,EWNIII4518,
     +  e_EWNIII4518,EWNIII4523,e_EWNIII4523,EWNIII4535,e_EWNIII4535,
     +  EWNIII4634,e_EWNIII4634,EWNIII4640,e_EWNIII4640,EWNIIIqua,
     +  e_EWNIIIqua,EWNIV4058,e_EWNIV4058,EWNV4603,e_EWNV4603,
     +  EWNV4619,e_EWNV4619
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