FORTRAN Generation
(/./ftp/cats/J/ApJS/199/18)

Conversion of standardized ReadMe file for file /./ftp/cats/J/ApJS/199/18 into FORTRAN code for loading all data files into arrays.

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/199/18             The Fermi GBM catalog                (Paciesas+, 2012)
*================================================================================
*The Fermi GBM Gamma-Ray Burst catalog: the first two years.
*    Paciesas W.S., Meegan C.A., von Kienlin A., Bhat P.N., Bissaldi E.,
*    Briggs M.S., Burgess J.M., Chaplin V., Connaughton V., Diehl R.,
*    Fishman G.J., Fitzpatrick G., Foley S., Gibby M., Giles M., Goldstein A.,
*    Greiner J., Gruber D., Guiriec S., van der Horst A.J., Kippen R.M.,
*    Kouveliotou C., Lichti G., Lin L., McBreen S., Preece R.D., Rau A.,
*    Tierney D., Wilson-Hodge C.
*   <Astrophys. J. Suppl. Ser., 199, 18 (2012)>
*   =2012ApJS..199...18P
C=============================================================================

C  Internal variables

      integer*4 i__

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

C  Declarations for 'table1.dat'	! Trigger criteria history

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

      integer*4     Al         (nr__) ! [1/66] Algorithm number
      integer*4     Time       (nr__) ! (ms) Trigger timescale
      integer*4     Off        (nr__) ! (ms) Offset
      character*3   Ch         (nr__) ! Channels
      character*1   l_E        (nr__) ! Limit flag on E
      character*5   E          (nr__) ! (keV) Energy range
      character*2   Th1        (nr__) ! Threshold (0.1{sigma}) on 2008 Jul 11 (1)
      character*2   Th2        (nr__) ! Threshold (0.1{sigma}) on 2008 Jul 14 (1)
      character*2   Th3        (nr__) ! Threshold (0.1{sigma}) on 2008 Aug 1 (1)
      character*2   Th4        (nr__) ! Threshold (0.1{sigma}) on 2009 May 8 (1)
      character*1   Th5        (nr__) ! Threshold (0.1{sigma}) on 2009 Jul 2 (1)
*Note (1): Symbol ":" indicates no change from previous setting; "C" indicates
*          that the algorithm is in compute mode (see the text); and "D"
*          indicates that the algorithm is disabled.

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

C  Declarations for 'table2.dat'	! GRB triggers: locations and trigger characteristics

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

C  J2000 position composed of: RAdeg DEdeg
      integer*4     ID         (nr__1) ! Trigger identifier (bnYYMMDDNNN)
      character*1   Flag       (nr__1) ! [ce] Source emission flag (1)
      character*7   GRB        (nr__1) ! GRB name (YYMMDDA)
      character*13  Obs_time   (nr__1) ! ("h:m:s") UT Time of the trigger
      real*4        RAdeg      (nr__1) ! (deg) Right Ascension in decimal degrees (J2000)
      real*4        DEdeg      (nr__1) ! (deg) Declination in decimal degrees (J2000)
      real*4        ePos       (nr__1) ! (deg) Positional uncertainty
      character*9   Loc        (nr__1) ! Source of the coordinate localization used for
*                                  the trigger (Fermi, Swift, IPN...)
      integer*4     Al_1       (nr__1) ! [1,56] Trigger algorithm
      integer*4     Time_1     (nr__1) ! (ms) Trigger timescale
      character*6   Energy     (nr__1) ! (keV) Trigger energy range
      character*25  Other      (nr__1) ! Other detections (2)
*Note (1): Flag as follows:
*    c = GRB091024A triggered GBM twice.
*    e = burst has significant emission in at least one BGO detector (see text).
*Note (2): Other instrument detections as follows:
*    K = Konus-WInd;
* K-RF = Konus-RF;
*    S = Swift;
*   IA = INTEGRAL SPI-ACS;
*   IB = INTEGRAL Burst Alert System;
*    W = Suzaku-WAM;
*    R = RHESSI;
*    M = MAXI;
*   SA = SuperAGILE;
*   AM = AGILE-MCAL;
*    A = AGILE;
*    L = Fermi LAT.

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

C  Declarations for 'table3.dat'	! GRB durations (50-300keV)

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

      integer*4     ID_1       (nr__2) ! Trigger identifier (bnYYMMDDNNN)
      character*1   R          (nr__2) ! Individual remarks (3)
      character*13  Det        (nr__2) ! Detectors used
      real*8        T90        (nr__2) ! (s) ? Time burst was between 5% and 95% of its fluence
      real*4        e_T90      (nr__2) ! (s) ? Uncertainty in T90
      real*8        T90st      (nr__2) ! (s) ? Start of T90 relative to trigger time
      real*8        T50        (nr__2) ! (s) ? Time burst was between 25% and 75% of its fluence
      real*4        e_T50      (nr__2) ! (s) ? Uncertainty in T50
      real*8        T50st      (nr__2) ! (s) ? Start of T50 relative to trigger time
*Note (3): Flag as follows:
*    a = Data problems precluded duration analysis.
*    b = Used TTE binned at 32ms.
*    c = Partial earth occultation is likely; durations are lower limits.
*    d = Possible precursor at ~T_0_-120s before trigger.
*    e = Data cut off while burst in progress; durations are lower limits.
*    f = SAA entry at T_0+83s after trigger; durations are lower limits.
*    g = GRB091024 triggered GBM twice.
*    h = Too weak to measure durations; visual duration is ~0.025s.
*    i = Possible contamination due to emergence of Crab & A0535+26
*        from Earth occultation.
*    j = Used TTE binned at 16ms.

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

C  Declarations for 'table4.dat'	! GRB fluence & peak flux (10-1000keV)

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

      integer*4     ID_2       (nr__3) ! Trigger identifier (bnYYMMDDNNN)
      real*4        Fluence    (nr__3) ! (mJ/m2) ? Fluence; in erg/cm^2^
      real*4        e_Fluence  (nr__3) ! (mJ/m2) ? Uncertainty in Fluence
      real*4        PF64       (nr__3) ! (ph/cm2/s) ? Peak flux with 64ms binning
      real*4        e_PF64     (nr__3) ! (ph/cm2/s) ? Uncertainty in PF64
      real*4        PF256      (nr__3) ! (ph/cm2/s) ? Peak flux with 256ms binning
      real*4        e_PF256    (nr__3) ! (ph/cm2/s) ? Uncertainty in PF256
      real*4        PF1024     (nr__3) ! (ph/cm2/s) ? Peak flux with 1024ms binning
      real*4        e_PF1024   (nr__3) ! (ph/cm2/s) ? Uncertainty in PF1024

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

C  Declarations for 'table5.dat'	! GRB fluence & peak flux (50-300keV)

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

      integer*4     ID_3       (nr__4) ! Trigger identifier (bnYYMMDDNNN)
      real*4        Fluence_1  (nr__4) ! (mJ/m2) ? Fluence; in erg/cm^2^
      real*4        e_Fluence_1(nr__4) ! (mJ/m2) ? Uncertainty in Fluence
      real*4        PF64_1     (nr__4) ! (ph/cm2/s) ? Peak flux with 64ms binning
      real*4        e_PF64_1   (nr__4) ! (ph/cm2/s) ? Uncertainty in PF64
      real*4        PF256_1    (nr__4) ! (ph/cm2/s) ? Peak flux with 256ms binning
      real*4        e_PF256_1  (nr__4) ! (ph/cm2/s) ? Uncertainty in PF256
      real*4        PF1024_1   (nr__4) ! (ph/cm2/s) ? Peak flux with 1024ms binning
      real*4        e_PF1024_1 (nr__4) ! (ph/cm2/s) ? Uncertainty in PF1024

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

C  Loading file 'table1.dat'	! Trigger criteria history

C  Format for file interpretation

    1 format(
     +  I2,1X,I5,1X,I4,1X,A3,1X,A1,A5,1X,A2,1X,A2,1X,A2,1X,A2,1X,A1)

C  Effective file loading

      open(unit=1,status='old',file=
     +'table1.dat')
      write(6,*) '....Loading file: table1.dat'
      do i__=1,66
        read(1,'(A38)')ar__
        read(ar__,1)
     +  Al(i__),Time(i__),Off(i__),Ch(i__),l_E(i__),E(i__),Th1(i__),
     +  Th2(i__),Th3(i__),Th4(i__),Th5(i__)
c    ..............Just test output...........
        write(6,1)
     +  Al(i__),Time(i__),Off(i__),Ch(i__),l_E(i__),E(i__),Th1(i__),
     +  Th2(i__),Th3(i__),Th4(i__),Th5(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'table2.dat'	! GRB triggers: locations and trigger characteristics

C  Format for file interpretation

    2 format(
     +  2X,I9,1X,A1,5X,A7,1X,A13,1X,F5.1,1X,F5.1,1X,F4.1,1X,A9,1X,I2,
     +  1X,I4,1X,A6,1X,A25)

C  Effective file loading

      open(unit=1,status='old',file=
     +'table2.dat')
      write(6,*) '....Loading file: table2.dat'
      do i__=1,492
        read(1,'(A107)')ar__1
        read(ar__1,2)
     +  ID(i__),Flag(i__),GRB(i__),Obs_time(i__),RAdeg(i__),
     +  DEdeg(i__),ePos(i__),Loc(i__),Al_1(i__),Time_1(i__),
     +  Energy(i__),Other(i__)
c    ..............Just test output...........
        write(6,2)
     +  ID(i__),Flag(i__),GRB(i__),Obs_time(i__),RAdeg(i__),
     +  DEdeg(i__),ePos(i__),Loc(i__),Al_1(i__),Time_1(i__),
     +  Energy(i__),Other(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'table3.dat'	! GRB durations (50-300keV)

C  Format for file interpretation

    3 format(
     +  2X,I9,1X,A1,1X,A13,1X,F7.3,1X,F6.3,1X,F8.3,1X,F7.3,1X,F6.3,1X,
     +  F8.3)

C  Effective file loading

      open(unit=1,status='old',file=
     +'table3.dat')
      write(6,*) '....Loading file: table3.dat'
      do i__=1,492
        read(1,'(A75)')ar__2
        read(ar__2,3)
     +  ID_1(i__),R(i__),Det(i__),T90(i__),e_T90(i__),T90st(i__),
     +  T50(i__),e_T50(i__),T50st(i__)
        if(ar__2(29:35) .EQ. '') T90(i__) = rNULL__
        if(ar__2(37:42) .EQ. '') e_T90(i__) = rNULL__
        if(ar__2(44:51) .EQ. '') T90st(i__) = rNULL__
        if(ar__2(53:59) .EQ. '') T50(i__) = rNULL__
        if(ar__2(61:66) .EQ. '') e_T50(i__) = rNULL__
        if(ar__2(68:75) .EQ. '') T50st(i__) = rNULL__
c    ..............Just test output...........
        write(6,3)
     +  ID_1(i__),R(i__),Det(i__),T90(i__),e_T90(i__),T90st(i__),
     +  T50(i__),e_T50(i__),T50st(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'table4.dat'	! GRB fluence & peak flux (10-1000keV)

C  Format for file interpretation

    4 format(
     +  2X,I9,1X,E8.2,1X,E8.2,1X,F6.2,1X,F5.2,1X,F6.2,1X,F4.2,1X,F6.2,
     +  1X,F4.2)

C  Effective file loading

      open(unit=1,status='old',file=
     +'table4.dat')
      write(6,*) '....Loading file: table4.dat'
      do i__=1,492
        read(1,'(A66)')ar__3
        read(ar__3,4)
     +  ID_2(i__),Fluence(i__),e_Fluence(i__),PF64(i__),e_PF64(i__),
     +  PF256(i__),e_PF256(i__),PF1024(i__),e_PF1024(i__)
        if(ar__3(13:20) .EQ. '') Fluence(i__) = rNULL__
        if(ar__3(22:29) .EQ. '') e_Fluence(i__) = rNULL__
        if(ar__3(31:36) .EQ. '') PF64(i__) = rNULL__
        if(ar__3(38:42) .EQ. '') e_PF64(i__) = rNULL__
        if(ar__3(44:49) .EQ. '') PF256(i__) = rNULL__
        if(ar__3(51:54) .EQ. '') e_PF256(i__) = rNULL__
        if(ar__3(56:61) .EQ. '') PF1024(i__) = rNULL__
        if(ar__3(63:66) .EQ. '') e_PF1024(i__) = rNULL__
c    ..............Just test output...........
        write(6,4)
     +  ID_2(i__),Fluence(i__),e_Fluence(i__),PF64(i__),e_PF64(i__),
     +  PF256(i__),e_PF256(i__),PF1024(i__),e_PF1024(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'table5.dat'	! GRB fluence & peak flux (50-300keV)

C  Format for file interpretation

    5 format(
     +  2X,I9,1X,E8.2,1X,E8.2,1X,F6.2,1X,F5.2,1X,F6.2,1X,F4.2,1X,F6.2,
     +  1X,F4.2)

C  Effective file loading

      open(unit=1,status='old',file=
     +'table5.dat')
      write(6,*) '....Loading file: table5.dat'
      do i__=1,492
        read(1,'(A66)')ar__4
        read(ar__4,5)
     +  ID_3(i__),Fluence_1(i__),e_Fluence_1(i__),PF64_1(i__),
     +  e_PF64_1(i__),PF256_1(i__),e_PF256_1(i__),PF1024_1(i__),
     +  e_PF1024_1(i__)
        if(ar__4(13:20) .EQ. '') Fluence_1(i__) = rNULL__
        if(ar__4(22:29) .EQ. '') e_Fluence_1(i__) = rNULL__
        if(ar__4(31:36) .EQ. '') PF64_1(i__) = rNULL__
        if(ar__4(38:42) .EQ. '') e_PF64_1(i__) = rNULL__
        if(ar__4(44:49) .EQ. '') PF256_1(i__) = rNULL__
        if(ar__4(51:54) .EQ. '') e_PF256_1(i__) = rNULL__
        if(ar__4(56:61) .EQ. '') PF1024_1(i__) = rNULL__
        if(ar__4(63:66) .EQ. '') e_PF1024_1(i__) = rNULL__
c    ..............Just test output...........
        write(6,5)
     +  ID_3(i__),Fluence_1(i__),e_Fluence_1(i__),PF64_1(i__),
     +  e_PF64_1(i__),PF256_1(i__),e_PF256_1(i__),PF1024_1(i__),
     +  e_PF1024_1(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

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