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