Files
fit/gen/fit.inc
2022-08-19 15:22:33 +02:00

150 lines
5.9 KiB
C++
Executable File

C ========================================================================
C ###### FIT.INC ######
C ========================================================================
C
integer maxext,maxpar,maxpeak,maxplug,maxflen
integer maxdat, maxset, maxpd
real none
parameter (maxdat=250000) ! max. number of datapoints
! this value is actually determined by fullprof synchrotron data
! (number of points)*4 + number of reflections
parameter (maxext=400) ! max. number of parameters
parameter (maxpar=200) ! max. number of fitted parameters
parameter (maxpeak=(maxext-2)/5)! max. number of peaks
parameter (maxplug=16) ! max. number of plugin commands
parameter (maxset=256) ! max. number of datasets
parameter (maxpd=8) ! max. number of per-dataset parameters
parameter (maxflen=8192) ! max. filelist length
parameter (none=-9.876543e-21) ! undefined value
real v(maxpar,maxpar) ! covariance matrix (must be first in common)
integer npar, nu, ni ! number of internal, external parameters, informational parameters
character*8 pnam(maxext) ! actual parameter names
character*4 psho(maxext) ! actual short parameter names
real u(maxext) ! parameter values
real werr(maxext),werrs(maxext) ! parameter errors, saved errors
real dirin(maxext) ! internal steps
real alim(maxext), blim(maxext) ! limits
integer lcode(maxext) ! <0: fixed, 1: normal, else: limited
integer lcorsp(maxext) ! index of internal parameter
integer icsw(maxext) ! correlation flag (0: not corr., 1: corr., -1: special I=M*G)
integer icto(maxext) ! correlation pointer
integer ncor, icord(maxext) ! correlation order
real cfac(maxext) ! correlation factors
real coff(maxext) ! correlation offsets
real x(maxpar) ! internal parameters
real amin ! function value
real apsi, epsi, vtest ! convergence criteria
integer ififu ! fit function (1: multi Gauss / Lorentz / Voigt
! 5: crit. Exponent, 6: strange, 7: your own funct, 8: plot only
integer nfree ! degrees of freedom
integer nfcn, nfcnmx ! number of function calls, maximum
integer isw(5) ! isw(1)=0,1(max number of fit calls exceeded)
! isw(2)=0,1,2,3(normal convergence)
real up ! value for error calc.
integer itaur ! ?
real sigma ! ?
character*(maxflen) filnam ! file name
character*(maxflen) fillis ! file name list
character*(maxflen) filesave ! saved file name (for RANGE)
real ymon, ymon0 ! overall monitor (perm./temp.)
integer titlen
parameter (titlen=80)
character*(titlen) itit ! title
real temp,dtemp,wtemp,wavlen ! parameters for plot output
integer load_state ! 0: no load, 1: accept, 2: done, 3: done, but load data from filnam
real xval(maxdat) ! x-values
real yval(maxdat) ! y-values
real rmon(maxdat) ! original monitors
real sig(maxdat) ! errors
integer iset(maxdat) ! dataset number
integer nset ! highest number of dataset
integer npkt ! total number of points
integer nback ! end of background points
integer isysrd, isyswr ! logical units
integer iscx, iscy ! auto scale flags
integer nstyl, styl(maxset) ! dataset styles
integer autostyle ! automatic style (used for powder diffraction)
logical autoplot ! automatic plot after each command
integer ncolor ! number of colors used (0 for b/w)
integer npd ! number of per-dataset parameters
real pdpar(maxpd, maxset) ! per-dataset parameters
integer nmult ! number of tables
integer cols(maxset) ! number of cols
integer rows(maxset) ! number of rows
integer legend ! legend parameter
character legendlabels*2048 ! custom legend
real legendx,legendy ! legend position
integer nxmin, nxmax ! fit window
real xbeg, xend, ybeg, yend ! plot scale
real yinteg, dyinteg ! integrated experimental intensity, error
integer gradev ! graph device
integer userfun ! user function number
character*4 usersho(maxext) ! user function parameter short names
character*32 userpar(maxext) ! user function parameter names
integer usernp ! number of user function parameters
integer usercct(maxext) ! calc. flags for user function
character*16 usertit ! user function title
integer cinfo ! calc. info
real pold(maxext) ! last parameters
integer actset ! set number of point calc.
integer trfmode ! 0: normal, 1: logarithmic
real shift(0:1) ! shifts for quasi 3-d
logical argok ! command arguments ok
logical quit ! quit flag
character cmdline*8192 ! commandline
character separator*1 ! command argument separator
integer cmdpos, cmdlen, linlen ! position, length of command, length of command line
integer nplug ! number of plugin command routins
integer plug_cmds(maxplug) ! plug-in command routines
integer maxregion
parameter (maxregion=33)
logical keepregion ! keep window/excluded region on DAT command
integer nregion ! region list length
real regx1(maxregion) ! included region: regx1<=regx2 and regy1<=regy2
real regx2(maxregion) ! excluded region: else
real regy1(maxregion) ! regx1=regx2: infinite x-range
real regy2(maxregion) ! regy1=regy2: infinite y-range
common/fitint8/plug_cmds,userfun
common/fitreal8/v
common/fitchari/usertit,filesave,itit
common/fitchar/cmdline,userpar,usersho,legendlabels
1,psho,pnam,filnam,fillis,separator
common/fitinti/nset,isysrd,isyswr,nstyl,styl,autostyle,cinfo
1,usernp,nplug,trfmode,ncolor,legend
common/fitint/npar,nu,ni,lcode,lcorsp,icsw,icto,ncor,icord
1,ififu,nfree,nfcn,nfcnmx,isw,itaur
1,iset,npkt,iscx,iscy,nxmin,nxmax,usercct
1,actset, cmdpos, cmdlen, linlen, gradev, load_state
1,npd,nmult,rows,cols,nback,nregion
common/fitreal/u,werr,werrs,dirin,alim,blim,cfac,coff,x
1,amin,apsi,epsi,vtest,up,sigma
1,ymon,ymon0,temp,dtemp,wtemp,wavlen
1,xval,yval,rmon,sig
1,xbeg,xend,ybeg,yend,pdpar
1,yinteg,dyinteg,pold,regx1,regx2,regy1,regy2
1,legendx,legendy
common/fitreali/shift
common/fitlog/autoplot,quit,argok,keepregion