38 subroutine lbasix( ixname,bss,mts,lthb,maxb,new,ierr )
46 character*30 ixname,fname
47 integer lthb,maxb,new,ierr,bss(5,lthb),mts(
mxmts)
49 integer i,ioerr,ipnr,ipnrmx,ipnrmn,iqnr,iqnrmx,iqnrmn,j,kr,
50 # krmx,kdel,ldel,lth,lr,mr,mrmx,n,nrow,iparlr,krmn,mrmn
67 fname=fname(:lth)//
'.ind'
69 inquire(file=fname(:lth),exist=fexist)
72 write(
luout,1003) fname(:lth)
82 open (unit=
ludisk,file=fname(:lth),status=
'old',
83 # access=
'sequential',form=
'unformatted',iostat=ioerr)
84 read (
ludisk,iostat=ioerr) lthb,(mts(i),i=1,
ntrc)
85 if (ioerr.ne.0 .or. lthb.gt.maxb)
then
88 write(
luout,1002) fname(:lth)
92 write(
luout,1001) fname(:lth)
98 read (
ludisk,iostat=ioerr) ((bss(i,j),i=1,5),j=1,lthb)
102 write(
luout,1002) fname(:lth)
119 # mts(
nkmx).lt.0 .or. mts(
nmmx).lt.0 .or.
132 if((iparlr.ne.1).and.(lr.gt.mts(
nlomx)))
go to 100
136 krmx=min(mts(
nkmx),lr)
137 krmn=max(mts(
nkmn),-lr)
138 do 110 kr=krmn,krmx,mts(
nkdel)
139 if((kr.eq.0).and.(iparlr.lt.mts(
njkmn)))
go to 110
143 mrmx=min(mts(
nmmx),lr)
144 mrmn=max(mts(
nmmn),-lr)
151 if(mr.eq.0.and.mts(
njmmn).eq.1)
then
160 do 130 ipnr=ipnrmn,ipnrmx
161 if((mr.eq.0).and.(ipnr.eq.0).and.(iparlr.lt.mts(
njmmn)))
166 iqnrmx=mts(
nin2)-iabs(ipnr)
168 do 140 iqnr=iqnrmn,iqnrmx,2
171 if (nrow.le.maxb)
then
188 1001
format(
'*** Insufficient room for basis set ''',a,
''' ***')
189 1002
format(
'*** Error reading basis set ''',a,
''' ***')
190 1003
format(
'*** file ''',a,
''' not found ***')
191 1004
format(
'*** lbasix called with illegal MTS: (',6(i3,
','),
integer, parameter nipsi0
integer, parameter ludisk
integer, parameter nipnmx
integer, parameter luttyo
subroutine lbasix(ixname, bss, mts, lthb, maxb, new, ierr)