FORTRAN Generation
(/./ftp/cats/VI/130)

Conversion of standardized ReadMe file for file /./ftp/cats/VI/130 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 2026-Oct-07
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. VI/130              High accuracy computed H2D+ line list - ST1   (Sochi+, 2010)
*================================================================================
*A computed line list for the H2D+ molecular ion.
*    Sochi T., Tennyson J.
*   <Mon. Not. R. Astron. Soc., 405, 2345-2350 (2010)>
*   =2010MNRAS.405.2345S
C=============================================================================

C  Internal variables

      integer*4 i__

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

C  Declarations for 'level.dat'	! Energy levels

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

      integer*4     Level      (nr__) ! [1,33330] Index of the level
      integer*4     J          (nr__) ! [0,20] Total angular momentum quantum number
      integer*4     Sym        (nr__) ! [1,4] Symmetry block number (1)
      integer*4     Block      (nr__) ! Reference in the block
      real*8        E          (nr__) ! (cm-1) [0,18500] Energy of the level
      integer*4     v1         (nr__) ! [-2,2] v1 symmetric stretch quantum number
      integer*4     v2         (nr__) ! [-2,3] v2 bend quantum number
      integer*4     v3         (nr__) ! [-2,2] v3 asymmetric stretch quantum number
      integer*4     Ka         (nr__) ! [-2,16] Ka rotational quantum number
      integer*4     Kc         (nr__) ! [-2,20] Kc rotational quantum number
*Note (1): Table of symmetry block indices:
*     ----------------------------------------------------------
*      J parity (even/odd)              e  e  e  e    o  o  o  o
*      vibrational basis symmetry (q)   e  e  o  o    e  e  o  o
*      rotational parity (p)            e  o  e  o    e  o  e  o
*      ortho/para state  (O/P)          P  O  O  P    O  P  P  O
*     ----------------------------------------------------------
*      Symmetry Block number (code)     1  3  4  2    3  1  2  4
*     ----------------------------------------------------------

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

C  Declarations for 'trans.dat'	! Transitions

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

      integer*4     Lev1       (nr__1) ! [2,33330] Index of first level in levels file
      integer*4     Lev2       (nr__1) ! [1,33330] Index of second level in levels file
      real*4        A          (nr__1) ! (s-1) Einstein A coefficient

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

C  Loading file 'level.dat'	! Energy levels

C  Format for file interpretation

    1 format(
     +  1X,I5,1X,I2,1X,I1,2X,I3,3X,F11.5,2X,I2,2X,I2,2X,I2,4X,I2,1X,I2)

C  Effective file loading

      open(unit=1,status='old',file=
     +'level.dat')
      write(6,*) '....Loading file: level.dat'
      do i__=1,33330
        read(1,'(A51)')ar__
        read(ar__,1)
     +  Level(i__),J(i__),Sym(i__),Block(i__),E(i__),v1(i__),v2(i__),
     +  v3(i__),Ka(i__),Kc(i__)
c    ..............Just test output...........
        write(6,1)
     +  Level(i__),J(i__),Sym(i__),Block(i__),E(i__),v1(i__),v2(i__),
     +  v3(i__),Ka(i__),Kc(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

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

C  Loading file 'trans.dat'	! Transitions

C  Format for file interpretation

    2 format(2X,I5,2X,I5,1X,E9.3)

C  Effective file loading

      open(unit=1,status='old',file=
     +'trans.dat')
      write(6,*) '....Loading file: trans.dat'
      do i__=1,22164810
        read(1,'(A24)')ar__1
        read(ar__1,2)Lev1(i__),Lev2(i__),A(i__)
c    ..............Just test output...........
        write(6,2)Lev1(i__),Lev2(i__),A(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

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