You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

73 lines
2.4 KiB

!!
!! Copyright (C) 2018 Andreas van Hameren.
!!
!! This file is part of OneLOop-rolln.
!!
!! OneLOop-rolln is free software: you can redistribute it and/or modify
!! it under the terms of the GNU General Public License as published by
!! the Free Software Foundation, either version 3 of the License, or
!! (at your option) any later version.
!!
!! OneLOop-rolln is distributed in the hope that it will be useful,
!! but WITHOUT ANY WARRANTY; without even the implied warranty of
!! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
!! GNU General Public License for more details.
!!
!! You should have received a copy of the GNU General Public License
!! along with OneLOop-rolln. If not, see <http://www.gnu.org/licenses/>.
!!
!
use avh_olo_bub ,only: tadp
!
include 'avh_olo_complex.h90'
,intent(out) :: rslt(0:2)
include 'avh_olo_complex.h90' !|masses=complex
!# include 'avh_olo_real.h90' !|masses=real
,intent(in) :: mm
!# include 'avh_olo_real.h90' !|mulocal=rmu
!# ,intent(in) :: rmu !|mulocal=rmu
!
include 'avh_olo_complex.h90'
:: ss
include 'avh_olo_real.h90'
:: am,hh,mulocal,mulocal2
character(25+99) ,parameter :: warning=&
'WARNING from OneLOop a0: '//warnonshell
if (initz) call init
errorcode = 0
!
mulocal = muscale !|mulocal=muscale
!# mulocal = rmu !|mulocal=rmu
!
am = abs(mm)
!
mulocal2 = mulocal*mulocal
!
if (nonzerothrs) then
hh = onshellthrs
if (am.lt.hh) am = 0
elseif (wunit.ge.0) then
hh = onshellthrs*max(am,mulocal2)
if (RZRO.lt.am.and.am.lt.hh) write(wunit,*) warning
endif
!
ss = mm
call tadp( rslt ,ss ,am ,mulocal2 )
!
if (punit.ge.0) then
if (nonzerothrs) write(punit,*) 'onshell:',trim(myprint(onshellthrs))
write(punit,*) 'muscale:',trim(myprint(mulocal))
write(punit,*) ' mm:',trim(myprint(mm))
write(punit,*) 'a0(2):',trim(myprint(rslt(2)))
write(punit,*) 'a0(1):',trim(myprint(rslt(1)))
write(punit,*) 'a0(0):',trim(myprint(rslt(0)))
endif
if (eunit.ge.0.and.errorcode.gt.0) then
write(eunit,*) 'Input that triggered the error(s):'
if (nonzerothrs) write(eunit,*) 'onshell:',trim(myprint(onshellthrs))
write(eunit,*) 'muscale:',trim(myprint(mulocal))
write(eunit,*) ' mm:',trim(myprint(mm))
write(eunit,*) 'a0(2):',trim(myprint(rslt(2)))
write(eunit,*) 'a0(1):',trim(myprint(rslt(1)))
write(eunit,*) 'a0(0):',trim(myprint(rslt(0)))
endif