39 subroutine varyc( line )
51 integer i,ibd,ix,ix2,lth
52 double precision fval,prmn,prmx,prsc,step
53 character token*30,prmID*9
59 double precision ONE,ZERO
60 parameter(one=1.0d0,zero=0.0d0)
62 integer ipfind,indtkn,itrim
64 external ftoken,ipfind,indtkn,itrim
65 character*8 keywrd(nkeywd)
66 data keywrd /
'MINIMUM',
'MAXIMUM',
'SCALE',
'FDSTEP'/
71 call gettkn(line,token,lth)
81 1 ix=ipfind(token,lth)
86 if (ix.eq.0 .or. ix.gt.
nvprm)
then
87 write(
luttyo,1002) token(:lth)
93 else if (ix.lt.0)
then
107 if (ix.eq.
igib2)
then
117 if (.not. gib2ok)
then
135 14
call gettkn(line,token,lth)
142 call addprm(ix,ix2,ibd,prmn,prmx,prsc,step,prmid)
151 if (token(:lth).eq.keywrd(i)(:lth))
goto 16
158 call addprm(ix,ix2,ibd,prmn,prmx,prsc,step,prmid)
164 16
call gettkn(line,token,lth)
167 write(
luttyo,1003) keywrd(i)(:itrim(keywrd(i)))
171 if (ftoken(token,lth,fval))
then
175 if (mod(ibd,2).eq.0) ibd=ibd+1
177 else if (i.eq.2)
then
181 else if (i.eq.3)
then
184 else if (i.eq.4)
then
189 write(
luttyo,1001) token(:lth)
196 1001
format(
'*** Real value expected: ''',a,
''' ***')
197 1002
format(
'*** ''',a,
''' is not a variable parameter ***')
198 1003
format(
'*** No value given for ''',a,
''' ***')
199 1004
format(
'*** Parameter name expected ***')
200 1006
format(
'*** GIB2 may only be varied for a series of PSI angles',
character *6, dimension(nalias), save alias1
subroutine touppr(string, lth)
subroutine gettkn(line, token, lth)
Written for free-form input of parameters for slow-motional calculations. Returns a token consisting ...
integer, dimension(niprm, mxsite), target, save iparm
integer, parameter luttyo
character *6, dimension(nfprm), save parnam
subroutine addprm(ix, ix2, ibd, prmn, prmx, prsc, step, ident)
Add a parameter to list of parameters being varied for nonlinear least-squares. Also maintain the lis...
character *6, dimension(nalias), save alias2