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