File: pick-dir/rd_bulktrans.f90

    1       SUBROUTINE RD_BULKTRANS(Jchan,Bulktransfer,Lend,Lverb,J)
    2       USE KINETIC
    3       IMPLICIT NONE
    4 !
    5 ! Dummy arguments
    6 !
    7       TYPE (BULKTRANSFER_RECORD) :: Bulktransfer
    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 Bulktransfer 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(BULKTRANSFER%RE(i))
   47       ENDDO
   48       DO i = 1 , iwantp
   49          CALL BLANK(BULKTRANSFER%P(i))
   50       ENDDO
   51 !
   52 !----------------------------------------------------------------------
   53 !
   54       READ (Jchan,FMT="(i4,1x,a)',END=100,ERR=100) jwant_bi ,           &
   55           & bulktransfer%comment
   56       J = J + 1
   57       IF ( Lverb ) WRITE (6,FMT="(2i4,1x,a)') jwant_bi , J ,            &
   58                         & TRIM(bulktransfer%comment)
   59 !
   60       READ (Jchan,FMT="(2x,3x,2(a20,1x))',END=100,ERR=100)              &
   61           & (BULKTRANSFER%RE(i),i=1,iwantr)
   62       lset = .TRUE.
   63       DO i = 1 , iwantr
   64          IF ( lset ) THEN
   65             IF ( BULKTRANSFER%RE(i)==rp_blank ) THEN
   66                iwantr = i - 1
   67                lset = .FALSE.
   68             ENDIF
   69          ENDIF
   70       ENDDO
   71       bulktransfer%iwantr = iwantr
   72       IF ( Lverb ) WRITE (6,*) "iwantr:' , iwantr
   73 !
   74       IF ( Lverb ) WRITE (6,FMT="(a2,3x,2(a20,1x))') "R:' ,             &
   75                         & (BULKTRANSFER%RE(i),i=1,iwantr)
   76 !
   77       READ (Jchan,FMT="(2x,3x,14(a20,1x))',END=100,ERR=100)             &
   78           & (BULKTRANSFER%P(i),i=1,iwantp)
   79       lset = .TRUE.
   80       DO i = 1 , iwantp
   81          IF ( lset ) THEN
   82             IF ( BULKTRANSFER%P(i)==rp_blank ) THEN
   83                iwantp = i - 1
   84                lset = .FALSE.
   85             ENDIF
   86          ENDIF
   87       ENDDO
   88       bulktransfer%iwantp = iwantp
   89       IF ( Lverb ) WRITE (6,*) "iwantp:' , iwantp
   90 !
   91       IF ( Lverb ) WRITE (6,FMT="(1p,a2,3x,14(a20,1x))') "P:' ,         &
   92                         & (BULKTRANSFER%P(i),i=1,iwantp)
   93 !
   94       READ (Jchan,FMT="(2x,14(e13.4,8x))',END=100,ERR=100)              &
   95           & (bulktransfer%z(i),i=1,iwantp)
   96       IF ( Lverb ) WRITE (6,FMT="(1p,a2,14(e13.4,8x))') "#:' ,          &
   97                         & (bulktransfer%z(i),i=1,iwantp)
   98 !
   99       READ (Jchan,                                                      &
  100            &FMT="(2x,5(e13.4,8x),/,2x,2(e13.4,8x),/,2x,i4,20x,a,/)')    &
  101           & bulktransfer%a2 , bulktransfer%alpha , bulktransfer%rm ,    &
  102           & bulktransfer%a1 , bulktransfer%a5 , bulktransfer%sig ,      &
  103           & bulktransfer%eps , bulktransfer%isptype , bulktransfer%fun
  104       IF ( Lverb ) WRITE (6,FMT=                                        &
  105                  &"(1p,2x,5(e13.4,8x),/,2x,2(e13.4,8x),/,2x,i4,20x,a,/)'&
  106                 & ) bulktransfer%a2 , bulktransfer%alpha ,              &
  107                   & bulktransfer%rm , bulktransfer%a1 ,                 &
  108                   & bulktransfer%a5 , bulktransfer%sig ,                &
  109                   & bulktransfer%eps , bulktransfer%isptype ,           &
  110                   & bulktransfer%fun
  111 !
  112 !
  113 !----------------------------------------------------------------------
  114 !
  115       RETURN
  116 !
  117 !----------------------------------------------------------------------
  118 !
  119  100  Lend = .TRUE.
  120 !
  121 !----------------------------------------------------------------------
  122 !
  123       END SUBROUTINE RD_BULKTRANS