File: pick-dir/rd_bi.f90

    1       SUBROUTINE RD_BI(Jchan,Bimolecular,Lend,Lverb,J)
    2       USE KINETIC
    3       IMPLICIT NONE
    4 !
    5 ! Dummy arguments
    6 !
    7       TYPE (BIMOLECULAR_RECORD) :: Bimolecular
    8       INTEGER :: J , Jchan
    9       LOGICAL :: Lend , Lverb
   10       INTENT (IN) Jchan , Lverb
   11       INTENT (OUT) Lend
   12       INTENT (INOUT) J
   13 !
   14 ! Local variables
   15 !
   16       INTEGER :: i , iwantp , iwantr , jwant_bi
   17       LOGICAL :: lset
   18       CHARACTER(20) :: rp_blank
   19 !
   20 !-----------------------------------------------------------------------
   21 !
   22 !     written by:   David Lary
   23 !
   24 !     started:      7/1/1993
   25 !
   26 !     last updated: 22/1/2004
   27 !
   28 !----------------------------------------------------------------------
   29 !
   30 !     Reads in one line of an AutoChem bimolecular kinetic data file.
   31 !
   32 !     If Lend is true on return then we have reached the end of the
   33 !     file.
   34 !
   35 !----------------------------------------------------------------------
   36 !
   37       Lend = .FALSE.
   38       CALL BLANK(rp_blank)
   39 !
   40 !----------------------------------------------------------------------
   41 !
   42 !     Initialize.
   43       iwantr = 2
   44       iwantp = 14
   45       DO i = 1 , iwantr
   46          CALL BLANK(BIMOLECULAR%RE(i))
   47       ENDDO
   48       DO i = 1 , iwantp
   49          CALL BLANK(BIMOLECULAR%P(i))
   50       ENDDO
   51 !
   52 !----------------------------------------------------------------------
   53 !
   54       READ (Jchan,FMT="(i4,1x,a)',END=100,ERR=100) jwant_bi ,           &
   55           & bimolecular%comment
   56       J = J + 1
   57       IF ( Lverb ) WRITE (6,FMT="(2i4,1x,a)') jwant_bi , J ,            &
   58                         & TRIM(bimolecular%comment)
   59 !
   60       READ (Jchan,FMT="(2x,3x,2(a20,1x))',END=100,ERR=100)              &
   61           & (BIMOLECULAR%RE(i),i=1,iwantr)
   62       lset = .TRUE.
   63       DO i = 1 , iwantr
   64          IF ( lset ) THEN
   65             IF ( BIMOLECULAR%RE(i)==rp_blank ) THEN
   66                iwantr = i - 1
   67                lset = .FALSE.
   68             ENDIF
   69          ENDIF
   70       ENDDO
   71       bimolecular%iwantr = iwantr
   72       IF ( Lverb ) WRITE (6,*) "iwantr:' , iwantr
   73 !
   74       IF ( Lverb ) WRITE (6,FMT="(a2,3x,2(a20,1x))') "R:' ,             &
   75                         & (BIMOLECULAR%RE(i),i=1,iwantr)
   76 !
   77       READ (Jchan,FMT="(2x,3x,14(a20,1x))',END=100,ERR=100)             &
   78           & (BIMOLECULAR%P(i),i=1,iwantp)
   79       lset = .TRUE.
   80       DO i = 1 , iwantp
   81          IF ( lset ) THEN
   82             IF ( BIMOLECULAR%P(i)==rp_blank ) THEN
   83                iwantp = i - 1
   84                lset = .FALSE.
   85             ENDIF
   86          ENDIF
   87       ENDDO
   88       bimolecular%iwantp = iwantp
   89       IF ( Lverb ) WRITE (6,*) "iwantp:' , iwantp
   90 !
   91       IF ( Lverb ) WRITE (6,FMT="(1p,a2,3x,14(a20,1x))') "P:' ,         &
   92                         & (BIMOLECULAR%P(i),i=1,iwantp)
   93 !
   94       READ (Jchan,FMT="(2x,14(e13.4,8x))',END=100,ERR=100)              &
   95           & (bimolecular%z(i),i=1,iwantp)
   96       IF ( Lverb ) WRITE (6,FMT="(1p,a2,14(e13.4,8x))') "#:' ,          &
   97                         & (bimolecular%z(i),i=1,iwantp)
   98 !
   99       READ (Jchan,FMT="(a1,1x,1(5(e13.4,8x),2x))',END=100,ERR=100)      &
  100           & bimolecular%flag , bimolecular%a1 , bimolecular%a2 ,        &
  101           & bimolecular%a3 , bimolecular%a4 , bimolecular%a5
  102       IF ( Lverb ) WRITE (6,FMT="(1p,a1,1x,1(5(e13.4,8x),2x))')         &
  103                         & bimolecular%flag , bimolecular%a1 ,           &
  104                         & bimolecular%a2 , bimolecular%a3 ,             &
  105                         & bimolecular%a4 , bimolecular%a5
  106 !
  107       IF ( bimolecular%flag=="V' ) THEN
  108          READ (Jchan,FMT="(1(2x,5(e13.4,8x)),/)',END=100,ERR=100)       &
  109              & bimolecular%b1 , bimolecular%b2 , bimolecular%b3 ,       &
  110              & bimolecular%b4 , bimolecular%b5
  111          IF ( Lverb ) WRITE (6,FMT="(1p,1(2x,5(e13.4,8x)),/)')          &
  112                            & bimolecular%b1 , bimolecular%b2 ,          &
  113                            & bimolecular%b3 , bimolecular%b4 ,          &
  114                            & bimolecular%b5
  115       ELSE
  116          READ (Jchan,*)
  117          IF ( Lverb ) WRITE (6,*)
  118 !
  119       ENDIF
  120 !
  121 !----------------------------------------------------------------------
  122 !
  123       RETURN
  124 !
  125 !----------------------------------------------------------------------
  126 !
  127  100  Lend = .TRUE.
  128 !
  129 !----------------------------------------------------------------------
  130 !
  131       END SUBROUTINE RD_BI