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.
74 lines
1.9 KiB
74 lines
1.9 KiB
subroutine pvAfill(m1sq,N)
|
|
C N is the offset in the storage
|
|
implicit none
|
|
include 'lib/TensorReduction/Include/types.f'
|
|
include 'lib/TensorReduction/Include/pvAnames.f'
|
|
include 'lib/TensorReduction/Include/TRconstants.f'
|
|
include 'lib/TensorReduction/Include/TRonshellcutoff.f'
|
|
include 'lib/TensorReduction/Include/pvAv.f'
|
|
include 'lib/TensorReduction/Include/TRscale.f'
|
|
integer:: N,Np,ep,j
|
|
real(dp):: m1sq
|
|
complex(dp):: trI1
|
|
logical,save::first=.true.
|
|
logical,save::scaleset=.false.
|
|
real(dp),save::id(0:2),idp2(0:2)
|
|
!$omp threadprivate(scaleset,first,id,idp2)
|
|
|
|
if (first) then
|
|
first=.false.
|
|
C--id=1/D
|
|
id(0)=0.25_dp
|
|
id(1)=id(0)*0.5_dp
|
|
id(2)=id(1)*0.5_dp
|
|
C--idp2=1/[D+2]
|
|
idp2(0)=1._dp/6._dp
|
|
idp2(1)=idp2(0)/3._dp
|
|
idp2(2)=idp2(1)/3._dp
|
|
endif
|
|
|
|
if (scaleset .neqv. .true.) then
|
|
scaleset=.true.
|
|
if ((scale .eq. -1d12) .and. (musq .eq. -1d12)) then
|
|
write(6,*) 'Did you forget to call setmudim?'
|
|
write(6,*) 'Setting scale to scale=1._dp'
|
|
scale=1._dp
|
|
musq=1._dp
|
|
endif
|
|
endif
|
|
|
|
if (abs(m1sq/musq) .lt. onshellcutoff) then
|
|
c write(6,*) 'setting zero mass, tadpole to zero'
|
|
c write(6,*) 'm1sq=',m1sq
|
|
do Np=N+1,N+Naa
|
|
do ep=-2,0
|
|
Av(Np,ep)=czip
|
|
enddo
|
|
enddo
|
|
|
|
return
|
|
|
|
else
|
|
|
|
do ep=-2,0
|
|
Av(aa0+N,ep)=trI1(m1sq,musq,ep)
|
|
enddo
|
|
|
|
C Id,A00(m1?)=m1^2*A0(m1)/D;
|
|
do ep=-2,0
|
|
Av(aa00+N,ep)=czip
|
|
do j=0,ep+2
|
|
Av(aa00+N,ep)=Av(aa00+N,ep)+m1sq*Av(aa0+N,ep-j)*id(j)
|
|
enddo
|
|
enddo
|
|
C Id,A0000(m1?)=m1^2*A00(m1)/[D+2];
|
|
do ep=-2,0
|
|
Av(aa0000+N,ep)=czip
|
|
do j=0,ep+2
|
|
Av(aa0000+N,ep)=Av(aa0000+N,ep)+m1sq*Av(aa00+N,ep-j)*idp2(j)
|
|
enddo
|
|
enddo
|
|
endif
|
|
|
|
return
|
|
end
|