	subroutine rdprm(iautocon,perfil,offset,epsin,epsout,rionst,exrad
     &        ,radprb,ibctyp,iper,nlit,nnit,iconc,ibios,isite,iatout
     &        ,toplbl,diff,isph,ipdbwrt,ipdbrd,ifrcwrt,ifrcrd,ipoten
     &        ,igraph,imem,icon1,icon2,phiwrt,logg,logs,logc,loga)
c
	include "qdiffpar4.h"
c
        character*60 toplbl
	character*80 line,filnam,asci,enc
	character*6 head
	character*8 testchar
	logical iper,iconc,isite,iatout,ibios,isph
	logical itobig,itest2,phiwrt,diff
	dimension iper(3)
	dimension offset(3)
	logical	  logg,logs,logc,loga,ipdbwrt,ipdbrd,ifrcrd,ifrcwrt
	logical   igraph,ipoten,imem,iautocon
c
	asci="1234567890 .-+#,$asdfghjklzxcvbnmqwertyuio
     &pASDFGHJKLZXCVBNMQWERTYUIOP"
c
	iautocon=.false.
	gten=0.0
	perfil=0.0
201	format(a60)
204	format(a80)
c
c
c read in run parameters
c
	open(unit=10,status='unknown',err=900)
	filnam = ' '
	inquire(10,name = filnam)
	read(10,*,end=900)igrid
c
        read(10,*) perfil
c	read(10,204,end=900)line
c	j=index(line,"g")
c	i=index(line,"G")
c	k=max(i,j)
c	if(k.eq.0) then
c	read(line,124) perfil
c124     format(f80.)    
c	else
c	read(line(:k-1),125) scale
c125     format(f80.)    
c	end if
c
	read(10,*,end=900)offset
   	read(10,*,end=900)epsin,epsout
        read(10,*,end=900)rionst
	read(10,*,end=900)exrad,radprb
	read(10,*,end=900)ibctyp
	read(10,*,end=900)iper
	read(10,1239,err=4545,end=900)testchar
1239	format(a8)
	if(testchar.eq.'a')  goto 4545
	if(testchar.eq.'A')  goto 4545
c	if(index(testchar,".").eq.0) then
	read(testchar,126) nlit
126     format(i3)
c	else
c	read(testchar,*) gten
c	iautocon=.true.
c	end if
	goto 5454
4545	iautocon=.true.
5454	read(10,*,end=900)nnit
	read(10,*,end=900)iconc,ibios
	read(10,*,end=900)isite
	read(10,*,end=900)iatout
	read(10,201,end=900)toplbl
c
	diff=.false.
	if((epsin.lt.0.).or.(epsout.lt.0.)) then
	epsin=abs(epsin)
	epsout=abs(epsout)
	diff=.true.
	end if 
c
c as of 5 nov, extra parameters added to file- to keep compatibility
c with older files, absence of parameters causes jump to end of
c input, with retention of default values for new parameters
c
	isph = .false.
	ipdbwrt = .false.
	ipdbrd  = .false.
	ifrcwrt= .false.
	ifrcrd = .false.
	igraph=.true.
	ipoten=.true.
	imem=.false.
c	isen=.false.
	isen=0
c	ihs=.false.
	ihs=0
c	isch=.false.
	isch=0
	icon1=10
	icon2=1
	phiwrt = .true. 
	read(10,*,end=1000)isph
	read(10,*,end=1000)ipdbwrt
	read(10,*,end=1000) ifrcwrt 
	read(10,204,end=1000)enc
	read(10,*,end=1000) igraph,ipoten,icon1,icon2
	read(10,*,end=1000) imem 
	read(10,*,end=1000) phiwrt 
	read(10,*,end=1000) ihs,isen,isch
1000	close(10)
c
c set energy calculation flags
c 
	if((index(enc,"g").ne.0).or.(index(enc,"G").ne.0)) logg=.true.
	if((index(enc,"s").ne.0).or.(index(enc,"S").ne.0)) logs=.true.
	if((index(enc,"c").ne.0).or.(index(enc,"C").ne.0)) logc=.true.
	if((index(enc,"a").ne.0).or.(index(enc,"A").ne.0)) loga=.true.
c
c test for unformatted pdb and frc files
c 
 	open(13,form='formatted')
        read(13,204,iostat=n)line
	ias=0
	do 600 i=1,80
	if(index(asci,line(i:i)).eq.0) ias=ias+1
600	continue
	if(ias.gt.10) ipdbrd=.true.	
 	close(13)
	if(ipdbrd) write(6,*) "set to read unformatted pdb file"
c
	if(ifrcwrt) then
 	open(15,form='formatted')
        read(13,204,iostat=n)line
	ias=0
	do 610 i=1,80
	if(index(asci,line(i:i)).eq.0) ias=ias+1
610	continue
	if(ias.gt.0) ifrcrd=.true.
 	close(15)
	end if
c 
900	continue
	return
	end














