1C $Id$
2      subroutine drdy_rpath(string,iend,istrt)
3c     Subroutine to read in the input for following the reaction path
4      Implicit none
5#include "errquit.fh"
6#include "stdio.fh"
7#include "drdyP.fh"
8*::functions:
9      Double Precision drdy_cfloat
10      External drdy_cfloat
11*::passed
12      Integer iend,istrt
13      character * 80 string
14*::local
15      Integer ierr,isect
16      character * 7 psign
17      character * 5 minte
18c     read in first keyword in this section
19      call drdy_rline(string,istrt,isect,iend)
20      do while (isect.eq.0.and.iend.eq.0)
21c SCALEMASS
22         if (string(istrt:istrt+8).eq.'scalemass') then
23            call drdy_rword(string,istrt,ierr)
24            if(ierr.ne.1) then
25               redm = drdy_cfloat(string(istrt:80))
26            else
27               write(fu6,*)' ERROR:  variable SCALEMASS must ',
28     *                    'have an argument'
29               call errquit('drdy_rpath: fatal error',911, INPUT_ERR)
30            end if
31c SSTEP
32         else if (string(istrt:istrt+4).eq.'sstep') then
33            call drdy_rword(string,istrt,ierr)
34            if (ierr.ne.1) then
35               dels = drdy_cfloat(string(istrt:80))
36            else
37               write(fu6,*)' ERROR:  variable SSTEP must ',
38     *                    'have an argument'
39               call errquit('drdy_rpath: fatal error',911, INPUT_ERR)
40            end if
41c SSAVE
42         else if (string(istrt:istrt+4).eq.'ssave') then
43            call drdy_rword(string,istrt,ierr)
44            if(ierr.ne.1) then
45               delsv = drdy_cfloat(string(istrt:80))
46            else
47               write(fu6,*)' ERROR:  variable SSAVE must ',
48     *                    'have an argument'
49               call errquit('drdy_rpath: fatal error',911, INPUT_ERR)
50            end if
51c SHESS
52         else if (string(istrt:istrt+4).eq.'shess') then
53            call drdy_rword(string,istrt,ierr)
54            if(ierr.ne.1) then
55               delhss = drdy_cfloat(string(istrt:80))
56            else
57               write(fu6,*)' ERROR:  variable SHESS must ',
58     *                    'have an argument'
59               call errquit('drdy_rpath: fatal error',911, INPUT_ERR)
60            end if
61c SLP
62         else if (string(istrt:istrt+2).eq.'slp') then
63            call drdy_rword(string,istrt,ierr)
64            if(ierr.ne.1) then
65               slp = drdy_cfloat(string(istrt:80))
66            else
67               write(fu6,*)' ERROR:  variable SLP must ',
68     *                    'have an argument'
69               call errquit('drdy_rpath: fatal error',911, INPUT_ERR)
70            endif
71c SLM
72         else if (string(istrt:istrt+2).eq.'slm') then
73            call drdy_rword(string,istrt,ierr)
74            if(ierr.ne.1) then
75               slm = drdy_cfloat(string(istrt:80))
76            else
77               write(fu6,*)' ERROR:  variable SLM must ',
78     *                    'have an argument'
79               call errquit('drdy_rpath: fatal error',911, INPUT_ERR)
80            endif
81c SADDLE
82         else if (string(istrt:istrt+5).eq.'saddle') then
83            lgs(1) = 1
84c NOSADDLE
85         else if (string(istrt:istrt+7).eq.'nosaddle') then
86            lgs(1) = 0
87c SIGN
88         else if (string(istrt:istrt+3).eq.'sign') then
89            call drdy_rword(string,istrt,ierr)
90            if(ierr.ne.1) then
91               psign = string(istrt:istrt+6)
92               if (psign.eq.'reactan') lgs(27) = 0
93               if (psign.eq.'product') lgs(27) = 1
94            else
95               write(fu6,*)' ERROR:  variable SIGN must ',
96     *                    'have a character argument'
97               call errquit('drdy_rpath: fatal error',911, INPUT_ERR)
98            endif
99c INTEGRA
100         else if (string(istrt:istrt+6).eq.'integra') then
101            call drdy_rword(string,istrt,ierr)
102            if (ierr.ne.1) then
103              minte = string(istrt:istrt+4)
104              if (minte.eq.'euler') lgs(31) = 1
105              if (minte.eq.'lqa') lgs(31) = 2
106              if (minte.eq.'clqa') lgs(31) = 3
107              if (minte.eq.'cube') lgs(31) = 4
108            else
109              write (fu6,*) ' ERROR: variable INTEGRA must ',
110     *              'have a character argument'
111              call errquit('drdy_rpath: fatal error',911, INPUT_ERR)
112            endif
113c PRINTFREQ
114         else if (string(istrt:istrt+8).eq.'printfreq') then
115            lgs(2) = 1
116         else
117            write(fu6,1000) string(istrt:80)
118            call errquit('drdy_rpath: fatal error',911, INPUT_ERR)
119         end if
120         call drdy_rline(string,istrt,isect,iend)
121      end do
122c
1231000  format(3x,'Error:  the following is not a valid keyword in the',
124     *       ' path section',/A80)
125c
126      return
127      end
128