19 subroutine statc( line )
35 logical fitflg,datflg,basflg,tdgflg,sclflg
36 character*8 keywrd(nkeywd)
48 data keywrd /
'FIT',
'DATA',
'BASIS',
'TRIDIAG',
'SHIFT',
'SCALE',
'ALL'/
53 5
call gettkn(line,token,lth)
58 if (token(:lth).eq.keywrd(i)(:lth))
go to 7
60 write (
luout,1000) token(:itrim(token))
72 else if (i.eq.5 .or. i.eq.6)
then
84 fitflg = .not.(datflg.or.basflg.or.tdgflg.or.sclflg)
94 if (sclflg.and..not.fitflg)
then
118 1000
format(
' *** unrecognized STATUS keyword: ''',a,
''' ***')
145 double precision wtdres
158 if (
nshift.lt.0)
write (lu,1005)
161 if (
noneg.eq.0)
write (lu,1008)
162 if (
noneg.ne.0)
write (lu,1009)
163 if (
output.eq.1)
write (lu,1014)
164 if (
itrace.eq.1)
write (lu,1015)
167 write (lu,1013)
'WEIGHTED'
169 write (lu,1013)
'UNWEIGHTED'
206 1000
format(/,2
x,20(
'#'),
' FIT status ',20(
'#'))
207 1001
format(5
x,
'xtol = ',1p,e8.1,3
x,
'ftol = ',1p,e8.1,3
x,
'gtol = ',
209 1002
format(5
x,
'maxitr=',i3,
' maxfun=',i4,
' bound=',f8.1//
210 #2
x,
'Options in effect:')
211 1005
format(5
x,
'NOSHIFT: No spectral shifting' )
212 1006
format(5
x,
'SHIFT: Spectral shifting (srange= +/-',f5.1,
'%)')
213 1007
format(5
x,
'SHIFT',i4,
': Spectral shifting first',i4,
214 #
' iterations (srange= +/-',f5.1,
'%)')
215 1008
format(5
x,
'NEG: negative scaling coefficients allowed')
216 1009
format(5
x,
'NONEG: negative scaling coefficients not allowed')
217 1010
format(/,2
x,
'VARY parameters : ',i1,
' variables')
218 1011
format(2
x,56(
'-'),/,6
x,
'Parameter',8
x,
'Value',10
x,
'Scale',5
x,
219 #
'FD step',/,2
x,56(
'-'))
220 1012
format(7
x,a9,5
x,g14.7,3
x,f6.1,5
x,1p,e8.1)
221 1013
format(5
x,a,
' residuals used for minimization')
222 1014
format(5
x,
'WRITE: always write .spc file')
223 1015
format(5
x,
'TRACE: write .trc file')
224 1020
format(/,2
x,
'No parameters are being varied.')
225 1030
format(/,2
x,
'Rsd. norm=',g14.7,2
x,
'Chi-sqr= ',g14.7,
226 # 2
x,
'Red. chi-sqr=',g14.7,
227 # /,2
x,
'Status: ',a/)
228 1031
format(/,2
x,
'No fit has been completed')
248 character*2 shftopt,normopt
251 character*6 formopt(2)
252 data formopt/
'ASCII',
'BINARY'/
261 if (
ishft(i).ne.0) shftopt=
'Y'
262 if (
nrmlz(i).ne.0) normopt=
'Y'
277 1000
format(/2x,25(
'#'),
' Datafile status ',25(
'#')//
278 # i2,
' data files and',i4,
' data points in buffer'/
279 #
'Space available for',i5,
' points ')
280 1001
format(/2x,
'File Filename # Pts Bsln Drv',
281 #
' Shft Nrm B0 Offset RMS noise'/70(
'-'))
282 1002
format(2x,i3,4x,a,t20,2(2x,i4),3x,i1,2(4x,a1),f9.1,f9.2,g9.3)
283 1003
format(/
'Options in effect:'/5x,
'bcmode=',i3,
', nspline=',i4,
284 #
', ',a2,
'SHIFT, ',a2,
'NORM, ',a/)
285 1004
format(i2,
' data files are required for the series fit')
322 write (lu,1003) (i,i=1,
nsite)
334 1000
format(/2x,i2,
' BASIS SETS in buffer; Space for ',i6,
' elements'/)
335 1001
format(2x,
'Set Identification ndim Trunc. indices'/
337 1002
format(2x,i3,3x,a,t29,i5,4x,6(i3,
','),i2)
338 1003
format(/2x,
'Basis set usage:'/t24,5(
'Site',i2,2x:))
339 1004
format(2x,a,t24,5(i3,5x))
371 if (
modtd(isi,isp).ne.0)
then
372 write (lu,1002) i,isi,
dataid(isp)
374 write (lu,1003) i,isi,
dataid(isp),
ltd(isi,isp)
384 1000
format(/2x,i2,
' TRIDIAGONAL MATRICES in buffer; Space for',i6,
386 1001
format(2x,
'Matrix Site Spectrum Lth'/2x,40(
'-'))
387 1002
format(2x,i3,4x,i3,4x,a,t34,
'(modified)')
388 1003
format(2x,i3,4x,i3,4x,a,t34,i5)
412 double precision stot(
mxspc)
421 if (
ishft(j).ne.0) shflg(j)=
'Y'
425 stot(j)=stot(j)+
sfac(i,j)
427 stot(j)=stot(j)/1.0d2
435 if (
iscal(i).ne.0) scflg(i)=
'*'
449 write(lu,1047) (i,i=1,
nsite)
466 1047
format(/2x,
'Scales:',t10,5(11x,
'site',i2,2x))
467 1048
format(12x,t16,5(g12.4,
'(',f5.1,
'%) '))
468 1049
format(/2x,
'Shifts: file',t33,
'shift',2x,
'auto',2x,4x,
'B0',
469 # 6x,
'B0(eff)'/(12x,a,t30,f8.2,3x,a1,3x,f9.2,1x,f9.2))
integer, dimension(mxspc), save nrmlz
double precision, save srange
integer, dimension(mxtdm), save tdspec
double precision, pointer, save ftol
integer, dimension(mxspc), save ixsp
character *30, dimension(mxtdm), save basisid
integer, dimension(mxspc), save ishft
integer, dimension(mxsite, mxspc), save basno
integer, dimension(mxspc), save ibase
integer, dimension(mxsite, mxspc), save modtd
double precision, dimension(mxsite, mxspc), save sfac
double precision, dimension(mxspc), save shft
double precision, save rdchsq
character *30, dimension(mxspc), save dataid
double precision, pointer, save gtol
subroutine touppr(string, lth)
integer, pointer, save maxev
double precision, save fnorm
subroutine gettkn(line, token, lth)
Written for free-form input of parameters for slow-motional calculations. Returns a token consisting ...
integer, dimension(9, mxmts), save mts
integer, dimension(mxtdm), save tdsite
double precision, dimension(mxvar), save xfdstp
integer, dimension(mxsite, mxspc), save ltd
character *32, dimension(0:nmnerr-1), save minerr
integer, dimension(mxsite), save iscal
integer, parameter mxsite
double precision, dimension(mxpt), save fvec
integer, dimension(mxspc), save idrv
double precision, pointer, save xtol
integer, parameter luttyo
double precision, dimension(mxspc), save sb0
double precision, dimension(mxspc), save rmsn
integer, dimension(mxspc), save npts
integer, pointer, save maxitr
character *9, dimension(mxjcol), save tag
integer, dimension(mxtdm), save ltbas
double precision, dimension(mxvar), save prscl
double precision, save chisqr
double precision, dimension(mxjcol), save x