Initial commit

This commit is contained in:
2022-08-19 15:22:33 +02:00
commit d682fae506
545 changed files with 48172 additions and 0 deletions

69
gen/fitexample.f Normal file
View File

@ -0,0 +1,69 @@
program FIT ! change FIT to your own program name
! -----------
!
! Simple user function example (voigtian peak).
!
implicit none
real FIT_USR_FUN
external FIT_USR_FUN ! change FIT_USR_FUN to your own function name
character vers*32
integer i,l
!---
! Welcome message
call fit_vers(vers)
call str_trim(vers, vers, l)
print '(X)'
print '(X,2A)','Program FIT Version ',vers(1:l)
do i=1,l
vers(i:i)='-'
enddo
print '(X,2A/)','-----------------------------',vers(1:l)
!---
! Function title and parameter names
!
call fit_userfun('EXAMPLE VOIGT', fit_usr_fun) ! function title, function
call fit_userpar('B:Bg(pos)') ! 1 background at peak pos.
call fit_userpar('D:dBg/dX') ! 2 background slope
call fit_userpar('I:Int.Int.') ! 3 integrated intensity
call fit_userpar('P:pos') ! 4 position
call fit_userpar('G:gaussFW') ! 5 gaussian fwhm
call fit_userpar('L:lorFW') ! 6 lorentzian fwhm
call fit_main
end
real function fit_usr_fun(x,p,n,mode,cinfo)
! -------------------------------------------
implicit none
real x ! x-value
integer n ! number of parameters
real p(n) ! parameters
integer mode ! mode
integer cinfo ! calculation information (see below)
real voigt
external voigt
if (mode .eq. 0) then
! Define here your own function
fit_usr_fun=p(1)+p(2)*(x-p(4))+p(3)*voigt(x-p(4),p(5),p(6))
elseif (mode .lt. 0) then
! Use this part to do some initialisations.
! (e.g. read files, write out comments on your user function)
! This section is called by FIT_FUN (command FUN)
print *
print *, 'Example: Single Voigtian'
endif
end