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

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