JHUGen MELA  v2.4.1
Matrix element calculations as used in JHUGen. MELA is an important tool that was used for the Higgs boson discovery and for precise measurements of its structure and interactions. Please see the website https://spin.pha.jhu.edu/ and papers cited there for more details, and kindly cite those papers when using this code.
Functions/Subroutines
demo.f90 File Reference

Go to the source code of this file.

Functions/Subroutines

program demo
 
subroutine writeresulta (caseN, casei, Acoeff, Acoeffuv, masses2, rank, Aerr)
 
subroutine writeresulta0 (caseN, casei, A0, masses2)
 
subroutine writeresultb (caseN, casei, Bcoeff, Bcoeffuv, MomInv, masses2, rank, Berr)
 
subroutine writeresultb0 (caseN, casei, B0, MomInv, masses2)
 
subroutine writeresultc (caseN, casei, Ccoeff, Ccoeffuv, MomInv, masses2, rank, Cerr)
 
subroutine writeresultc0 (caseN, casei, C0, MomInv, masses2)
 
subroutine writeresultcten (caseN, casei, Cten, Ctenuv, MomVec, MomInv, masses2, rank, Cerr)
 
subroutine writeresultd (caseN, casei, Dcoeff, Dcoeffuv, MomInv, masses2, rank, Derr)
 
subroutine writeresultd0 (caseN, casei, D0, MomInv, masses2)
 
subroutine writeresultdten (caseN, casei, Dten, Dtenuv, MomVec, MomInv, masses2, rank, Derr)
 
subroutine writeresulte (caseN, casei, Ecoeff, Ecoeffuv, MomInv, masses2, rank, Eerr)
 
subroutine writeresulte0 (caseN, casei, E0, MomInv, masses2)
 
subroutine writeresulteten (caseN, casei, Eten, Etenuv, MomVec, MomInv, masses2, rank, Eerr)
 
subroutine writeresultf (caseN, casei, Fcoeff, Fcoeffuv, MomInv, masses2, rank, Ferr)
 
subroutine writeresultf0 (caseN, casei, F0, MomInv, masses2)
 
subroutine writeresultften (caseN, casei, Ften, Ftenuv, MomVec, MomInv, masses2, rank, Ferr)
 
subroutine writeresultdb (caseN, casei, DBcoeff, DBcoeffuv, MomInv, masses2, rankm, rank, DBerr)
 
subroutine writeresultdb0 (caseN, casei, DB0, MomInv, masses2)
 
subroutine getinvariants (N, MomInv, MomVec)
 

Function/Subroutine Documentation

◆ demo()

program demo

Definition at line 10 of file demo.f90.

◆ getinvariants()

subroutine demo::getinvariants ( integer, intent(in)  N,
double complex, dimension(n*(n-1)/2), intent(out)  MomInv,
double complex, dimension(0:3,n-1), intent(out), optional  MomVec 
)

Definition at line 3262 of file demo.f90.

3262 
3263  implicit none
3264 
3265  integer, intent(in) :: N
3266  double complex, intent(out) :: MomInv(N*(N-1)/2)
3267  double complex, intent(out), optional :: MomVec(0:3,N-1)
3268  double precision :: p(1:6,0:3)
3269 ! double complex :: MomInv6(1:15)
3270  double precision :: s(0:5,0:5)
3271  integer :: k,i
3272 
3273  if (n.gt.6.or.n.lt.3) then
3274  write(*,*) ' getinvariants: N>6 of N<3 not supported '
3275  else
3276 ! use momentum set from Racoon
3277  p(1,0) = -0.9500000000000000d+02
3278  p(1,1) = 0.0000000000000000d+00
3279  p(1,2) = 0.0000000000000000d+00
3280  p(1,3) = 0.9500000000000000d+02
3281 
3282  p(2,0) = -0.9500000000000000d+02
3283  p(2,1) = 0.0000000000000000d+00
3284  p(2,2) = 0.0000000000000000d+00
3285  p(2,3) = -0.9500000000000000d+02
3286 
3287  p(3,0) = 0.2046111001757171d+02
3288  p(3,1) = 0.1057734233089455d+02
3289  p(3,2) = -0.2324961261504543d+01
3290  p(3,3) = 0.1736005205921753d+02
3291 
3292  p(4,0) = 0.3558305163378869d+01
3293  p(4,1) = 0.1436222934374051d+01
3294  p(4,2) = -0.2174258125294355d+01
3295  p(4,3) = -0.2423097382091398d+01
3296 
3297  p(5,0) = 0.8154540918019539d+02
3298  p(5,1) = -0.5230395944682889d+02
3299  p(5,2) = 0.3083642435466509d+02
3300  p(5,3) = 0.5443403822581044d+02
3301 
3302  p(6,0) = 0.8443517563885433d+02
3303  p(6,1) = 0.4029039418156027d+02
3304  p(6,2) = -0.2633720496786619d+02
3305  p(6,3) = -0.6937099290293661d+02
3306 
3307 
3308  do i=n+1,6
3309  p(n,0) = p(n,0) + p(i,0)
3310  p(n,1) = p(n,1) + p(i,1)
3311  p(n,2) = p(n,2) + p(i,2)
3312  p(n,3) = p(n,3) + p(i,3)
3313  end do
3314 
3315  if (present(momvec)) then
3316  momvec(0:3,1) = p(1,0:3)
3317  do i=2,n-1
3318  momvec(0:3,i) = momvec(0:3,i-1)+p(i,0:3)
3319  end do
3320  end if
3321 
3322  ! define invariants
3323  do k=0,n-1
3324  s(modulo(k+1,n),k) = p(k+1,0)**2
3325  do i=1,3
3326  s(modulo(k+1,n),k) = s(modulo(k+1,n),k) - p(k+1,i)**2
3327  end do
3328  if(abs(s(modulo(k+1,n),k)).lt.1d-14* abs(p(k+1,0))**2) s(modulo(k+1,n),k) = 0d0
3329 
3330  s(k,modulo(k+1,n)) = s(modulo(k+1,n),k)
3331  end do
3332  do k=0,n-1
3333  s(modulo(k+2,n),k) = (p(modulo(k+1,n)+1,0) + p(k+1,0))**2
3334  do i=1,3
3335  s(modulo(k+2,n),k) = s(modulo(k+2,n),k) &
3336  - (p(modulo(k+1,n)+1,i) + p(k+1,i))**2
3337  end do
3338  s(k,modulo(k+2,n)) = s(modulo(k+2,n),k)
3339  end do
3340  do k=0,(n-1)/2
3341  s(modulo(k+3,n),k) = (p(modulo(k+2,n)+1,0) + p(modulo(k+1,n)+1,0) + p(k+1,0))**2
3342  do i=1,3
3343  s(modulo(k+3,n),k) = s(modulo(k+3,n),k) &
3344  - (p(modulo(k+2,n)+1,i) + p(modulo(k+1,n)+1,i) + p(k+1,i))**2
3345  end do
3346  s(k,modulo(k+3,n)) = s(modulo(k+3,n),k)
3347  end do
3348 
3349  do i=0,(n+1)/2-2
3350  do k=1,n
3351  mominv(k+n*i) = s(modulo(k+i,n),k-1)
3352 
3353 ! write(*,*) 'mominv',k+N*i,s(modulo(k+i,N),k-1)
3354  end do
3355  end do
3356  if(modulo(n,2).eq.0) then
3357  do k=1,n/2
3358  mominv(k+n*(n/2-1)) = s(modulo(k+n/2-1,n),k-1)
3359 ! write(*,*) 'mominv',k+N*i,s(modulo(k+N/2-1,N),k-1)
3360  end do
3361  end if
3362  end if
3363 

◆ writeresulta()

subroutine demo::writeresulta ( integer, intent(in)  caseN,
integer, intent(in)  casei,
double complex, dimension(0:rank/2), intent(in)  Acoeff,
double complex, dimension(0:rank/2), intent(in)  Acoeffuv,
double complex, dimension(0:0), intent(in)  masses2,
integer, intent(in)  rank,
double precision, dimension(0:rank), intent(in), optional  Aerr 
)

Definition at line 1179 of file demo.f90.

1179  implicit none
1180 
1181  integer, intent(in) :: rank,caseN,casei
1182  double complex, intent(in) :: masses2(0:0)
1183  double complex, intent(in) :: Acoeff(0:rank/2)
1184  double complex, intent(in) :: Acoeffuv(0:rank/2)
1185  double precision, optional, intent(in) :: Aerr(0:rank)
1186  integer :: r,n0,mode
1187  character(len=99) :: fname
1188  character(len=*),parameter :: fmt1 = "(A9,' = ',es23.16,' + i*',es23.16)"
1189  character(len=*),parameter :: fmt2 = "(A9,' = ',es23.16)"
1190  character(len=*),parameter :: fmt10 = "(' Acoeff(',i1,') = ',es23.16,' + i*',es23.16)"
1191  character(len=*),parameter :: fmt11 = "(' Aerr(',i1,') = ',es23.16)"
1192  character(len=*),parameter :: fmt12 = "(' A0 = ',es23.16,' + i*',es23.16)"
1193  character(len=*),parameter :: fmt13 = "(' Acoeffuv(',i1,') = ',es23.16,' + i*',es23.16)"
1194 
1195 ! output file for result
1196  call getmode_cll(mode)
1197  select case (mode)
1198  case(1)
1199  fname = 'demo_1point_example00_coli.dat'
1200  case(2)
1201  fname = 'demo_1point_example00_dd.dat'
1202  case(3)
1203  fname = 'demo_1point_example00_comp.dat'
1204  end select
1205  write(fname(20:21),'(i2.2)') casei
1206 
1207  open(unit=50,file=trim(fname),status='unknown')
1208 
1209  call getmuuv2_cll(muuv2)
1210 ! call GetMuIR2_cll(MuIR2)
1211  call getdeltauv_cll(deltauv)
1212 ! call GetdeltaIR_cll(DeltaIR1,DeltaIR2)
1213 
1214  write (50,'(a37,i2,i3/)') ' Result for 1-point function, example',casen,casei
1215  write (50,'((a))') ' '
1216  write (50,'((a))') ' ------- '
1217  write (50,'((a))') ' / \ '
1218  write (50,'((a))') ' / \ '
1219  write (50,'((a))') ' 0d0 ----- 0 | m02 '
1220  write (50,'((a))') ' \ / '
1221  write (50,'((a))') ' \ / '
1222  write (50,'((a))') ' ------- '
1223  write (50,'((a))') ' '
1224  write (50,'((a))') ''
1225  write (50,'((a))') ' Input:'
1226  write (50,fmt1) ' m02 ',masses2(0)
1227  write (50,fmt2) ' muUV2 ',muuv2
1228 ! write (50,fmt2) ' muIR2 ',muIR2
1229  write (50,fmt2) ' deltaUV ',deltauv
1230 ! write (50,fmt2) ' deltaIR1',deltaIR2
1231 ! write (50,fmt2) ' deltaIR2',deltaIR1
1232  write (50,'((a))') ''
1233  write (50,'((a))') ' Conventions:'
1234  write (50,'((a))') ''
1235  if(rank.gt.0) then
1236  write (50,'((a))') ' (2*pi*mu)^(4-D) '
1237  write (50,'((a))') ' A = --------------- \int d^D q f(q)'
1238  write (50,'((a))') ' i*pi^2 '
1239 
1240  write (50,'((a))')
1241  write (50,'((a))') ' = A_fin(muUV2) + a_UV*DeltaUV '
1242  else
1243  write (50,'((a))') ' (2*pi*mu)^(4-D) '
1244  write (50,'((a))') ' A0 = --------------- \int d^D q f(q)'
1245  write (50,'((a))') ' i*pi^2 '
1246 
1247  write (50,'((a))')
1248  write (50,'((a))') ' = A0_fin(muUV2) + a_UV*DeltaUV '
1249  end if
1250  write (50,'((a))')
1251  write (50,'((a))') ' where'
1252  write (50,'((a))')
1253  write (50,'((a))') &
1254  ' c(epsUV) '
1255  write (50,'((a))') &
1256  ' DeltaUV = -------- '
1257  write (50,'((a))') &
1258  ' epsUV '
1259  write (50,'((a))')
1260  write (50,'((a))') ' c(eps) = (4*pi)^eps\Gamma(1+eps), D = 4 -2*eps '
1261  write (50,'((a))')
1262  write (50,'((a))') ' you can freely choose the regularization parameters'
1263  write (50,'((a))') ' of UV origin: muUV2 = mu^2, DeltaUV '
1264  write (50,'((a))')
1265  write (50,'((a))') ' note:'
1266  write (50,'((a))') ' - we effectively factor out a factor c(eps) '
1267  write (50,'((a))') ' - by default DeltaUV = 0 '
1268 
1269  write (50,'((a))') ''
1270  write (50,'((a))') ' Results:'
1271 
1272  if (rank.gt.0) then
1273  do n0=0,rank/2
1274  write (50,fmt10) n0,acoeff(n0)
1275  end do
1276 
1277  write (50,'(/(a))') ' Error estimates:'
1278  do r=0,rank
1279  write (50,fmt11) r,aerr(r)
1280  end do
1281  else
1282  write (50,fmt12) acoeff(0)
1283  end if
1284 
1285  write(*,'(/(a),(a)/)') ' The result has been written to the file ' &
1286  ,trim(fname)
1287 

◆ writeresulta0()

subroutine demo::writeresulta0 ( integer, intent(in)  caseN,
integer, intent(in)  casei,
double complex, intent(in)  A0,
double complex, dimension(0:0), intent(in)  masses2 
)

Definition at line 1297 of file demo.f90.

1297  implicit none
1298 
1299  integer, intent(in) :: caseN,casei
1300  double complex, intent(in) :: A0
1301  double complex, intent(in) :: masses2(0:0)
1302  double complex :: Acoeff(0:0)
1303  double complex :: Acoeffuv(0:0)
1304 
1305 
1306  acoeff(0:0) = a0
1307  acoeffuv(0:0) = masses2
1308  call writeresulta(casen,casei,acoeff,acoeffuv,masses2,0)
1309 

◆ writeresultb()

subroutine demo::writeresultb ( integer, intent(in)  caseN,
integer, intent(in)  casei,
double complex, dimension(0:rank/2,0:rank), intent(in)  Bcoeff,
double complex, dimension(0:rank/2,0:rank), intent(in)  Bcoeffuv,
double complex, dimension(1), intent(in)  MomInv,
double complex, dimension(0:1), intent(in)  masses2,
integer, intent(in)  rank,
double precision, dimension(0:rank), intent(in), optional  Berr 
)

Definition at line 1319 of file demo.f90.

1319  implicit none
1320 
1321  integer, intent(in) :: rank,caseN,casei
1322  double complex, intent(in) :: MomInv(1), masses2(0:1)
1323  double complex, intent(in) :: Bcoeff(0:rank/2,0:rank)
1324  double complex, intent(in) :: Bcoeffuv(0:rank/2,0:rank)
1325  double precision, optional, intent(in) :: Berr(0:rank)
1326  integer :: r,n0,n1,mode
1327  integer,parameter :: rankuv=0
1328  character(len=99) :: fname
1329  character(len=*),parameter :: fmt1 = "(A9,' = ',es23.16,' + i*',es23.16)"
1330  character(len=*),parameter :: fmt2 = "(A9,' = ',es23.16)"
1331  character(len=*),parameter :: fmt10 = "(' Bcoeff(',i1,1(',',i1),') = ',es23.16,' + i*',es23.16)"
1332  character(len=*),parameter :: fmt11 = "(' Berr(',i1,') = ',es23.16)"
1333  character(len=*),parameter :: fmt12 = "(' B0 = ',es23.16,' + i*',es23.16)"
1334  character(len=*),parameter :: fmt13 = "(' Bcoeffuv(',i1,1(',',i1),') = ',es23.16,' + i*',es23.16)"
1335 
1336 ! output file for result
1337  call getmode_cll(mode)
1338  select case (mode)
1339  case(1)
1340  fname = 'demo_2point_example00_coli.dat'
1341  case(2)
1342  fname = 'demo_2point_example00_dd.dat'
1343  case(3)
1344  fname = 'demo_2point_example00_comp.dat'
1345  end select
1346  write(fname(20:21),'(i2.2)') casei
1347 
1348  open(unit=50,file=trim(fname),status='unknown')
1349 
1350  call getmuuv2_cll(muuv2)
1351  call getmuir2_cll(muir2)
1352  call getdeltauv_cll(deltauv)
1353  call getdeltair_cll(deltair1,deltair2)
1354 
1355  write (50,'(a37,i2,i3/)') ' Result for 2-point function, example',casen,casei
1356  write (50,'((a))') ' m12 '
1357  write (50,'((a))') ' ------- '
1358  write (50,'((a))') ' / 1 \ '
1359  write (50,'((a))') ' / \ '
1360  write (50,'((a))') ' p10 ----- ----- p10 '
1361  write (50,'((a))') ' \ / '
1362  write (50,'((a))') ' \ 0 / '
1363  write (50,'((a))') ' ------- '
1364  write (50,'((a))') ' m02 '
1365  write (50,'((a))') ''
1366  write (50,'((a))') ' Input:'
1367  write (50,fmt1) ' p10 ',mominv(1)
1368  write (50,fmt1) ' m02 ',masses2(0)
1369  write (50,fmt1) ' m12 ',masses2(1)
1370  if (rank.ge.rankuv) then
1371  write (50,fmt2) ' muUV2 ',muuv2
1372  end if
1373 ! write (50,fmt2) ' muIR2 ',muIR2
1374  if (rank.ge.rankuv) then
1375  write (50,fmt2) ' deltaUV ',deltauv
1376  end if
1377 ! write (50,fmt2) ' deltaIR1',deltaIR2
1378 ! write (50,fmt2) ' deltaIR2',deltaIR1
1379  write (50,'((a))') ''
1380  write (50,'((a))') ' Conventions:'
1381  write (50,'((a))') ''
1382  if(rank.gt.0) then
1383  write (50,'((a))') ' (2*pi*mu)^(4-D) '
1384  write (50,'((a))') ' B = --------------- \int d^D q f(q,p_i)'
1385  write (50,'((a))') ' i*pi^2 '
1386 
1387  write (50,'((a))')
1388  write (50,'((a))') ' = B_fin(muUV2,muIR2) + a_UV*DeltaUV '
1389  else
1390  write (50,'((a))') ' (2*pi*mu)^(4-D) '
1391  write (50,'((a))') ' B0 = --------------- \int d^D q f(q,p_i)'
1392  write (50,'((a))') ' i*pi^2 '
1393 
1394  write (50,'((a))')
1395  write (50,'((a))') ' = B0_fin(muUV2,muIR2) + a_UV*DeltaUV '
1396  end if
1397  write (50,'((a))')
1398  write (50,'((a))') ' where'
1399  write (50,'((a))')
1400  write (50,'((a))') &
1401  ' c(epsUV) '
1402  write (50,'((a))') &
1403  ' DeltaUV = -------- '
1404  write (50,'((a))') &
1405  ' epsUV '
1406  write (50,'((a))')
1407  write (50,'((a))') ' c(eps) = (4*pi)^eps\Gamma(1+eps), D = 4 -2*eps '
1408  write (50,'((a))')
1409  write (50,'((a))') ' you can freely choose the regularization parameters'
1410  write (50,'((a))') ' of UV origin: muUV2 = mu^2, DeltaUV '
1411  write (50,'((a))')
1412  write (50,'((a))') ' note:'
1413  write (50,'((a))') ' - we effectively factor out a factor c(eps) '
1414  write (50,'((a))') ' - by default DeltaUV = 0 '
1415 
1416  write (50,'((a))') ''
1417  write (50,'((a))') ' Results:'
1418 
1419  if (rank.gt.0) then
1420  do r=0,rank
1421  do n0=0,r/2
1422  n1=r-2*n0
1423  write (50,fmt10) n0,n1,bcoeff(n0,n1)
1424  end do
1425  end do
1426 
1427 ! do r=0,rank
1428 ! do n0=0,r/2
1429 ! n1=r-2*n0
1430 ! write (50,fmt13) n0,n1,Bcoeffuv(n0,n1)
1431 ! end do
1432 ! end do
1433 !
1434  write (50,'(/(a))') ' Error estimates:'
1435  do r=0,rank
1436  write (50,fmt11) r,berr(r)
1437  end do
1438  else
1439  write (50,fmt12) bcoeff(0,0)
1440  end if
1441 
1442  write(*,'(/(a),(a)/)') ' The result has been written to the file ' &
1443  ,trim(fname)
1444 

◆ writeresultb0()

subroutine demo::writeresultb0 ( integer, intent(in)  caseN,
integer, intent(in)  casei,
double complex, intent(in)  B0,
double complex, dimension(1), intent(in)  MomInv,
double complex, dimension(0:1), intent(in)  masses2 
)

Definition at line 1454 of file demo.f90.

1454  implicit none
1455 
1456  integer, intent(in) :: caseN,casei
1457  double complex, intent(in) :: B0
1458  double complex, intent(in) :: MomInv(1), masses2(0:1)
1459  double complex :: Bcoeff(0:0,0:0)
1460  double complex :: Bcoeffuv(0:0,0:0)
1461 
1462 
1463  bcoeff(0:0,0:0) = b0
1464  bcoeffuv(0:0,0:0) = 1d0
1465  call writeresultb(casen,casei,bcoeff,bcoeffuv,mominv,masses2,0)
1466 

◆ writeresultc()

subroutine demo::writeresultc ( integer, intent(in)  caseN,
integer, intent(in)  casei,
double complex, dimension(0:rank/2,0:rank,0:rank), intent(in)  Ccoeff,
double complex, dimension(0:rank/2,0:rank,0:rank), intent(in)  Ccoeffuv,
double complex, dimension(3), intent(in)  MomInv,
double complex, dimension(0:2), intent(in)  masses2,
integer, intent(in)  rank,
double precision, dimension(0:rank), intent(in), optional  Cerr 
)

Definition at line 1477 of file demo.f90.

1477  implicit none
1478 
1479  integer, intent(in) :: rank,caseN,casei
1480  double complex, intent(in) :: MomInv(3), masses2(0:2)
1481  double complex, intent(in) :: Ccoeff(0:rank/2,0:rank,0:rank)
1482  double complex, intent(in) :: Ccoeffuv(0:rank/2,0:rank,0:rank)
1483  double precision, optional, intent(in) :: Cerr(0:rank)
1484  integer :: r,n0,n1,n2,mode
1485  integer,parameter :: rankuv=2
1486  character(len=99) :: fname
1487  character(len=*),parameter :: fmt1 = "(A9,' = ',es23.16,' + i*',es23.16)"
1488  character(len=*),parameter :: fmt2 = "(A9,' = ',es23.16)"
1489  character(len=*),parameter :: fmt10 = "(' Ccoeff(',i1,2(',',i1),') = ',es23.16,' + i*',es23.16)"
1490  character(len=*),parameter :: fmt11 = "(' Cerr(',i1,') = ',es23.16)"
1491  character(len=*),parameter :: fmt12 = "(' C0 = ',es23.16,' + i*',es23.16)"
1492 
1493 ! output file for result
1494  call getmode_cll(mode)
1495  select case (mode)
1496  case(1)
1497  fname = 'demo_3point_example00_coli.dat'
1498  case(2)
1499  fname = 'demo_3point_example00_dd.dat'
1500  case(3)
1501  fname = 'demo_3point_example00_comp.dat'
1502  end select
1503  write(fname(20:21),'(i2.2)') casei
1504 
1505 ! write(*,*) casei,fname
1506 
1507  open(unit=50,file=trim(fname),status='unknown')
1508 
1509  call getmuuv2_cll(muuv2)
1510  call getmuir2_cll(muir2)
1511  call getdeltauv_cll(deltauv)
1512  call getdeltair_cll(deltair1,deltair2)
1513 
1514  write (50,'(a37,i2,i3/)') ' Result for 3-point function, example',casen,casei
1515  write (50,'(a63,i2,i3,a)') ' The corresponding code can be found in demo.f90 under ''example',casen,casei,''''
1516  write (50,'((a))')
1517  write (50,'((a))') ' p21 '
1518  write (50,'((a))') ' | '
1519  write (50,'((a))') ' | '
1520  write (50,'((a))') ' / \ '
1521  write (50,'((a))') ' / \ '
1522  write (50,'((a))') ' m12 /1 2\ m22 '
1523  write (50,'((a))') ' / \ '
1524  write (50,'((a))') ' / 0 \ '
1525  write (50,'((a))') ' p10 --------------------- p20 '
1526  write (50,'((a))') ' m02 '
1527  write (50,'((a))') ''
1528  write (50,'((a))') ' Input:'
1529  write (50,fmt1) ' p10 ',mominv(1)
1530  write (50,fmt1) ' p21 ',mominv(2)
1531  write (50,fmt1) ' p20 ',mominv(3)
1532  write (50,fmt1) ' m02 ',masses2(0)
1533  write (50,fmt1) ' m12 ',masses2(1)
1534  write (50,fmt1) ' m22 ',masses2(2)
1535  if (rank.ge.2) then
1536  write (50,fmt2) ' muUV2 ',muuv2
1537  end if
1538  write (50,fmt2) ' muIR2 ',muir2
1539  if (rank.ge.2) then
1540  write (50,fmt2) ' DeltaUV ',deltauv
1541  end if
1542  write (50,fmt2) ' DeltaIR1',deltair2
1543  write (50,fmt2) ' DeltaIR2',deltair1
1544  write (50,'((a))') ''
1545  write (50,'((a))') ' Conventions:'
1546  write (50,'((a))') ''
1547  if(rank.eq.0) then
1548  write (50,'((a))') ' (2*pi*mu)^(4-D) '
1549  write (50,'((a))') ' C0 = --------------- \int d^D q f(q,p_i)'
1550  write (50,'((a))') ' i*pi^2 '
1551 
1552  write (50,'((a))')
1553  write (50,'((a))') ' = C0_fin(muUV2,muIR2) + '// &
1554  ' a_IR2*[DeltaIR2 + DeltaIR1*ln(muIR2)] + a_IR1*DeltaIR1'
1555  else if(rank.ge.rankuv) then
1556  write (50,'((a))') ' (2*pi*mu)^(4-D) '
1557  write (50,'((a))') ' C = --------------- \int d^D q f(q,p_i)'
1558  write (50,'((a))') ' i*pi^2 '
1559 
1560  write (50,'((a))')
1561  write (50,'((a))') ' = C_fin(muUV2,muIR2) + a_UV*DeltaUV + '// &
1562  ' a_IR2*[DeltaIR2 + DeltaIR1*ln(muIR2)] + a_IR1*DeltaIR1'
1563  else
1564  write (50,'((a))') ' (2*pi*mu)^(4-D) '
1565  write (50,'((a))') ' C = --------------- \int d^D q f(q,p_i)'
1566  write (50,'((a))') ' i*pi^2 '
1567 
1568  write (50,'((a))')
1569  write (50,'((a))') ' = C_fin(muUV2,muIR2) + '// &
1570  ' a_IR2*[DeltaIR2 + DeltaIR1*ln(muIR2)] + a_IR1*DeltaIR1'
1571  end if
1572  write (50,'((a))')
1573  write (50,'((a))') ' where'
1574  write (50,'((a))')
1575  if (rank.gt.0) then
1576  write (50,'((a))') &
1577  ' c(epsUV) c(epsIR) c(epsIR)'
1578  write (50,'((a))') &
1579  ' DeltaUV = --------, DeltaIR1 = --------, DeltaIR2 = --------'
1580  write (50,'((a))') &
1581  ' epsUV epsIR epsIR^2'
1582  else
1583  write (50,'((a))') &
1584  ' c(epsIR) c(epsIR)'
1585  write (50,'((a))') &
1586  ' DeltaIR1 = --------, DeltaIR2 = --------'
1587  write (50,'((a))') &
1588  ' epsIR epsIR^2'
1589  end if
1590  write (50,'((a))')
1591  write (50,'((a))') ' c(eps) = (4*pi)^eps\Gamma(1+eps), D = 4 -2*eps '
1592  write (50,'((a))')
1593  write (50,'((a))') ' you can freely choose the regularization parameters'
1594  if (rank.gt.0) then
1595  write (50,'((a))') ' of UV origin: muUV2 = mu^2, DeltaUV '
1596  end if
1597  write (50,'((a))') ' of IR origin: muIR2 = mu^2, DeltaIR1, DeltaIR2'
1598  write (50,'((a))')
1599  write (50,'((a))') ' note:'
1600  write (50,'((a))') ' - we effectively factor out a factor c(eps) '
1601  if (rank.gt.0) then
1602  write (50,'((a))') ' - by default DeltaUV = DeltaIR1 = DeltaIR2 = 0 '
1603  else
1604  write (50,'((a))') ' - by default DeltaIR1 = DeltaIR2 = 0 '
1605  end if
1606  write (50,'((a))') ' - suitable DeltaIR2 can be used to adapt the effective normalization'
1607 
1608  write (50,'((a))') ''
1609  write (50,'((a))') ' Results:'
1610 
1611  if (rank.gt.0) then
1612  do r=0,rank
1613  do n0=0,r/2
1614  do n1=0,r-2*n0
1615  n2 = r-2*n0-n1
1616  write (50,fmt10) n0,n1,n2,ccoeff(n0,n1,n2)
1617  end do
1618  end do
1619  end do
1620 
1621  write (50,'(/(a))') ' Error estimates:'
1622  do r=0,rank
1623  write (50,fmt11) r,cerr(r)
1624  end do
1625  else
1626  write (50,fmt12) ccoeff(0,0,0)
1627  end if
1628 
1629  write(*,'(/(a),(a)/)') ' The result has been written to the file ' &
1630  ,trim(fname)
1631 

◆ writeresultc0()

subroutine demo::writeresultc0 ( integer, intent(in)  caseN,
integer, intent(in)  casei,
double complex, intent(in)  C0,
double complex, dimension(3), intent(in)  MomInv,
double complex, dimension(0:2), intent(in)  masses2 
)

Definition at line 1641 of file demo.f90.

1641  implicit none
1642 
1643  integer, intent(in) :: caseN,casei
1644  double complex, intent(in) :: C0
1645  double complex, intent(in) :: MomInv(3), masses2(0:2)
1646  double complex :: Ccoeff(0:0,0:0,0:0)
1647  double complex :: Ccoeffuv(0:0,0:0,0:0)
1648 
1649 
1650  ccoeff(0:0,0:0,0:0) = c0
1651  ccoeffuv(0:0,0:0,0:0) = 0d0
1652  call writeresultc(casen,casei,ccoeff,ccoeffuv,mominv,masses2,0)
1653 

◆ writeresultcten()

subroutine demo::writeresultcten ( integer, intent(in)  caseN,
integer, intent(in)  casei,
double complex, dimension(0:rank,0:rank,0:rank,0:rank), intent(in)  Cten,
double complex, dimension(0:rank,0:rank,0:rank,0:rank), intent(in)  Ctenuv,
double complex, dimension(0:3,1:2), intent(in)  MomVec,
double complex, dimension(3), intent(in)  MomInv,
double complex, dimension(0:2), intent(in)  masses2,
integer, intent(in)  rank,
double precision, dimension(0:rank), intent(in), optional  Cerr 
)

Definition at line 1664 of file demo.f90.

1664  implicit none
1665 
1666  integer, intent(in) :: rank,caseN,casei
1667  double complex, intent(in) :: MomVec(0:3,1:2), MomInv(3), masses2(0:2)
1668  double complex, intent(in) :: Cten(0:rank,0:rank,0:rank,0:rank)
1669  double complex, intent(in) :: Ctenuv(0:rank,0:rank,0:rank,0:rank)
1670  double precision, optional, intent(in) :: Cerr(0:rank)
1671  integer :: r,n0,n1,n2,n3,mode
1672  integer,parameter :: rankuv=2
1673  character(len=99) :: fname
1674  character(len=*),parameter :: fmt1 = "(A17,' = ',es23.16,' + i*',es23.16)"
1675  character(len=*),parameter :: fmt2 = "(A17,' = ',es23.16)"
1676  character(len=*),parameter :: fmt10 = "(' Cten(',i1,3(',',i1),') = ',es23.16,' + i*',es23.16)"
1677  character(len=*),parameter :: fmt11 = "(' Cerr(',i1,') = ',es23.16)"
1678  character(len=*),parameter :: fmt12 = "(' C0 = ',es23.16,' + i*',es23.16)"
1679 
1680 ! output file for result
1681  call getmode_cll(mode)
1682  select case (mode)
1683  case(1)
1684  fname = 'demo_3point_example00_coli.dat'
1685  case(2)
1686  fname = 'demo_3point_example00_dd.dat'
1687  case(3)
1688  fname = 'demo_3point_example00_comp.dat'
1689  end select
1690  write(fname(20:21),'(i2.2)') casei
1691 
1692 ! write(*,*) casei,fname
1693 
1694  open(unit=50,file=trim(fname),status='unknown')
1695 
1696  call getmuuv2_cll(muuv2)
1697  call getmuir2_cll(muir2)
1698  call getdeltauv_cll(deltauv)
1699  call getdeltair_cll(deltair1,deltair2)
1700 
1701  write (50,'(a37,i2,i3/)') ' Result for 3-point function, example',casen,casei
1702  write (50,'(a63,i2,i3,a)') ' The corresponding code can be found in demo.f90 under ''example',casen,casei,''''
1703  write (50,'((a))')
1704  write (50,'((a))') ' p21 '
1705  write (50,'((a))') ' | '
1706  write (50,'((a))') ' | '
1707  write (50,'((a))') ' / \ '
1708  write (50,'((a))') ' / \ '
1709  write (50,'((a))') ' m12,p1vec /1 2\ m22,p2vec '
1710  write (50,'((a))') ' / \ '
1711  write (50,'((a))') ' / 0 \ '
1712  write (50,'((a))') ' p10 --------------------- p20 '
1713  write (50,'((a))') ' m02 '
1714  write (50,'((a))') ''
1715  write (50,'((a))') ' Input:'
1716  write (50,fmt1) ' p1vec(0) ',momvec(0,1)
1717  write (50,fmt1) ' p1vec(1) ',momvec(1,1)
1718  write (50,fmt1) ' p1vec(2) ',momvec(2,1)
1719  write (50,fmt1) ' p1vec(3) ',momvec(3,1)
1720  write (50,fmt1) ' p2vec(0) ',momvec(0,2)
1721  write (50,fmt1) ' p2vec(1) ',momvec(1,2)
1722  write (50,fmt1) ' p2vec(2) ',momvec(2,2)
1723  write (50,fmt1) ' p2vec(3) ',momvec(3,2)
1724  write (50,fmt1) ' p10 ',mominv(1)
1725  write (50,fmt1) ' p21 ',mominv(2)
1726  write (50,fmt1) ' p20 ',mominv(3)
1727  write (50,fmt1) ' m02 ',masses2(0)
1728  write (50,fmt1) ' m12 ',masses2(1)
1729  write (50,fmt1) ' m22 ',masses2(2)
1730  if (rank.ge.2) then
1731  write (50,fmt2) ' muUV2 ',muuv2
1732  end if
1733  write (50,fmt2) ' muIR2 ',muir2
1734  if (rank.ge.2) then
1735  write (50,fmt2) ' DeltaUV ',deltauv
1736  end if
1737  write (50,fmt2) ' DeltaIR1 ',deltair2
1738  write (50,fmt2) ' DeltaIR2 ',deltair1
1739  write (50,'((a))') ''
1740  write (50,'((a))') ' Conventions:'
1741  write (50,'((a))') ''
1742  if(rank.eq.0) then
1743  write (50,'((a))') ' (2*pi*mu)^(4-D) '
1744  write (50,'((a))') ' C0 = --------------- \int d^D q f(q,p_i)'
1745  write (50,'((a))') ' i*pi^2 '
1746 
1747  write (50,'((a))')
1748  write (50,'((a))') ' = C0_fin(muUV2,muIR2) + '// &
1749  ' a_IR2*[DeltaIR2 + DeltaIR1*ln(muIR2)] + a_IR1*DeltaIR1'
1750  else if(rank.ge.rankuv) then
1751  write (50,'((a))') ' (2*pi*mu)^(4-D) '
1752  write (50,'((a))') ' C = --------------- \int d^D q f(q,p_i)'
1753  write (50,'((a))') ' i*pi^2 '
1754 
1755  write (50,'((a))')
1756  write (50,'((a))') ' = C_fin(muUV2,muIR2) + a_UV*DeltaUV + '// &
1757  ' a_IR2*[DeltaIR2 + DeltaIR1*ln(muIR2)] + a_IR1*DeltaIR1'
1758  else
1759  write (50,'((a))') ' (2*pi*mu)^(4-D) '
1760  write (50,'((a))') ' C = --------------- \int d^D q f(q,p_i)'
1761  write (50,'((a))') ' i*pi^2 '
1762 
1763  write (50,'((a))')
1764  write (50,'((a))') ' = C_fin(muUV2,muIR2) + '// &
1765  ' a_IR2*[DeltaIR2 + DeltaIR1*ln(muIR2)] + a_IR1*DeltaIR1'
1766  end if
1767  write (50,'((a))')
1768  write (50,'((a))') ' where'
1769  write (50,'((a))')
1770  if (rank.gt.0) then
1771  write (50,'((a))') &
1772  ' c(epsUV) c(epsIR) c(epsIR)'
1773  write (50,'((a))') &
1774  ' DeltaUV = --------, DeltaIR1 = --------, DeltaIR2 = --------'
1775  write (50,'((a))') &
1776  ' epsUV epsIR epsIR^2'
1777  else
1778  write (50,'((a))') &
1779  ' c(epsIR) c(epsIR)'
1780  write (50,'((a))') &
1781  ' DeltaIR1 = --------, DeltaIR2 = --------'
1782  write (50,'((a))') &
1783  ' epsIR epsIR^2'
1784  end if
1785  write (50,'((a))')
1786  write (50,'((a))') ' c(eps) = (4*pi)^eps\Gamma(1+eps), D = 4 -2*eps '
1787  write (50,'((a))')
1788  write (50,'((a))') ' you can freely choose the regularization parameters'
1789  if (rank.gt.0) then
1790  write (50,'((a))') ' of UV origin: muUV2 = mu^2, DeltaUV '
1791  end if
1792  write (50,'((a))') ' of IR origin: muIR2 = mu^2, DeltaIR1, DeltaIR2'
1793  write (50,'((a))')
1794  write (50,'((a))') ' note:'
1795  write (50,'((a))') ' - we effectively factor out a factor c(eps) '
1796  if (rank.gt.0) then
1797  write (50,'((a))') ' - by default DeltaUV = DeltaIR1 = DeltaIR2 = 0 '
1798  else
1799  write (50,'((a))') ' - by default DeltaIR1 = DeltaIR2 = 0 '
1800  end if
1801  write (50,'((a))') ' - suitable DeltaIR2 can be used to adapt the effective normalization'
1802 
1803  write (50,'((a))') ''
1804  write (50,'((a))') ' Results:'
1805 
1806  if (rank.gt.0) then
1807  do r=0,rank
1808  do n0=0,r/2
1809  do n1=0,r-n0
1810  do n2=0,r-n0-n1
1811  n3 = r-n0-n1-n2
1812  write (50,fmt10) n0,n1,n2,n3,cten(n0,n1,n2,n3)
1813  end do
1814  end do
1815  end do
1816  end do
1817 
1818  write (50,'(/(a))') ' Error estimates:'
1819  do r=0,rank
1820  write (50,fmt11) r,cerr(r)
1821  end do
1822  else
1823  write (50,fmt12) cten(0,0,0,0)
1824  end if
1825 
1826  write(*,'(/(a),(a)/)') ' The result has been written to the file ' &
1827  ,trim(fname)
1828 

◆ writeresultd()

subroutine demo::writeresultd ( integer, intent(in)  caseN,
integer, intent(in)  casei,
double complex, dimension(0:rank/2,0:rank,0:rank,0:rank), intent(in)  Dcoeff,
double complex, dimension(0:rank/2,0:rank,0:rank,0:rank), intent(in)  Dcoeffuv,
double complex, dimension(6), intent(in)  MomInv,
double complex, dimension(0:3), intent(in)  masses2,
integer, intent(in)  rank,
double precision, dimension(0:rank), intent(in), optional  Derr 
)

Definition at line 1840 of file demo.f90.

1840  implicit none
1841 
1842  integer, intent(in) :: rank,caseN,casei
1843  double complex, intent(in) :: MomInv(6), masses2(0:3)
1844  double complex, intent(in) :: Dcoeff(0:rank/2,0:rank,0:rank,0:rank)
1845  double complex, intent(in) :: Dcoeffuv(0:rank/2,0:rank,0:rank,0:rank)
1846  double precision, optional, intent(in) :: Derr(0:rank)
1847  integer :: r,n0,n1,n2,n3,mode
1848  integer,parameter :: rankuv=4
1849  character(len=99) :: fname
1850  character(len=*),parameter :: fmt1 = "(A9,' = ',es23.16,' + i*',es23.16)"
1851  character(len=*),parameter :: fmt2 = "(A9,' = ',es23.16)"
1852  character(len=*),parameter :: fmt10 = "(' Dcoeff(',i1,3(',',i1),') = ',es23.16,' + i*',es23.16)"
1853  character(len=*),parameter :: fmt11 = "(' Derr(',i1,') = ',es23.16)"
1854  character(len=*),parameter :: fmt12 = "(' D0 = ',es23.16,' + i*',es23.16)"
1855 
1856 ! output file for result
1857  call getmode_cll(mode)
1858  select case (mode)
1859  case(1)
1860  fname = 'demo_4point_example00_coli.dat'
1861  case(2)
1862  fname = 'demo_4point_example00_dd.dat'
1863  case(3)
1864  fname = 'demo_4point_example00_comp.dat'
1865  end select
1866  write(fname(20:21),'(i2.2)') casei
1867 
1868 ! write(*,*) casei,fname
1869 
1870  open(unit=50,file=trim(fname),status='unknown')
1871 
1872  call getmuuv2_cll(muuv2)
1873  call getmuir2_cll(muir2)
1874  call getdeltauv_cll(deltauv)
1875  call getdeltair_cll(deltair1,deltair2)
1876 
1877  write (50,'(a37,i2,i3/)') ' Result for 4-point function, example',casen,casei
1878  write (50,'(a63,i2,i3,a)') ' The corresponding code can be found in demo.f90 under ''example',casen,casei,''''
1879  write (50,'((a))')
1880  write (50,'((a))') ' p31 '
1881  write (50,'((a))') ' ------------------ '
1882  write (50,'((a))') ' / \ '
1883  write (50,'((a))') ' m22 '
1884  write (50,'((a))') ' p21 --------------------- p32 \ '
1885  write (50,'((a))') ' | 2 | \ '
1886  write (50,'((a))') ' | | |'
1887  write (50,'((a))') ' m12 |1 3| m32 | p20'
1888  write (50,'((a))') ' | | |'
1889  write (50,'((a))') ' | 0 | / '
1890  write (50,'((a))') ' p10 --------------------- p30 / '
1891  write (50,'((a))') ' m02 '
1892  write (50,'((a))') ''
1893  write (50,'((a))') ' Input:'
1894  write (50,fmt1) ' p10 ',mominv(1)
1895  write (50,fmt1) ' p21 ',mominv(2)
1896  write (50,fmt1) ' p32 ',mominv(3)
1897  write (50,fmt1) ' p30 ',mominv(4)
1898  write (50,fmt1) ' p20 ',mominv(5)
1899  write (50,fmt1) ' p31 ',mominv(6)
1900  write (50,fmt1) ' m02 ',masses2(0)
1901  write (50,fmt1) ' m12 ',masses2(1)
1902  write (50,fmt1) ' m22 ',masses2(2)
1903  write (50,fmt1) ' m32 ',masses2(3)
1904  if (rank.ge.rankuv) then
1905  write (50,fmt2) ' muUV2 ',muuv2
1906  end if
1907  write (50,fmt2) ' muIR2 ',muir2
1908  if (rank.ge.rankuv) then
1909  write (50,fmt2) ' DeltaUV ',deltauv
1910  end if
1911  write (50,fmt2) ' DeltaIR1',deltair2
1912  write (50,fmt2) ' DeltaIR2',deltair1
1913  write (50,'((a))') ''
1914  write (50,'((a))') ' Conventions:'
1915  write (50,'((a))') ''
1916  if(rank.eq.0) then
1917  write (50,'((a))') ' (2*pi*mu)^(4-D) '
1918  write (50,'((a))') ' D0 = --------------- \int d^D q f(q,p_i)'
1919  write (50,'((a))') ' i*pi^2 '
1920 
1921  write (50,'((a))')
1922  write (50,'((a))') ' = D0_fin(muUV2,muIR2) + '// &
1923  ' a_IR2*[DeltaIR2 + DeltaIR1*ln(muIR2)] + a_IR1*DeltaIR1'
1924  else if(rank.ge.rankuv) then
1925  write (50,'((a))') ' (2*pi*mu)^(4-D) '
1926  write (50,'((a))') ' D = --------------- \int d^D q f(q,p_i)'
1927  write (50,'((a))') ' i*pi^2 '
1928 
1929  write (50,'((a))')
1930  write (50,'((a))') ' = D_fin(muUV2,muIR2) + a_UV*DeltaUV + '// &
1931  ' a_IR2*[DeltaIR2 + DeltaIR1*ln(muIR2)] + a_IR1*DeltaIR1'
1932  else
1933  write (50,'((a))') ' (2*pi*mu)^(4-D) '
1934  write (50,'((a))') ' D = --------------- \int d^D q f(q,p_i)'
1935  write (50,'((a))') ' i*pi^2 '
1936 
1937  write (50,'((a))')
1938  write (50,'((a))') ' = D_fin(muUV2,muIR2) + '// &
1939  ' a_IR2*[DeltaIR2 + DeltaIR1*ln(muIR2)] + a_IR1*DeltaIR1'
1940  end if
1941  write (50,'((a))')
1942  write (50,'((a))') ' where'
1943  write (50,'((a))')
1944  if (rank.gt.rankuv) then
1945  write (50,'((a))') &
1946  ' c(epsUV) c(epsIR) c(epsIR)'
1947  write (50,'((a))') &
1948  ' DeltaUV = --------, DeltaIR1 = --------, DeltaIR2 = --------'
1949  write (50,'((a))') &
1950  ' epsUV epsIR epsIR^2'
1951  else
1952  write (50,'((a))') &
1953  ' c(epsIR) c(epsIR)'
1954  write (50,'((a))') &
1955  ' DeltaIR1 = --------, DeltaIR2 = --------'
1956  write (50,'((a))') &
1957  ' epsIR epsIR^2'
1958  end if
1959  write (50,'((a))')
1960  write (50,'((a))') ' c(eps) = (4*pi)^eps\Gamma(1+eps), D = 4 -2*eps '
1961  write (50,'((a))')
1962  write (50,'((a))') ' you can freely choose the regularization parameters'
1963  if (rank.gt.0) then
1964  write (50,'((a))') ' of UV origin: muUV2 = mu^2, DeltaUV '
1965  end if
1966  write (50,'((a))') ' of IR origin: muIR2 = mu^2, DeltaIR1, DeltaIR2'
1967  write (50,'((a))')
1968  write (50,'((a))') ' note:'
1969  write (50,'((a))') ' - we effectively factor out a factor c(eps) '
1970  if (rank.gt.0) then
1971  write (50,'((a))') ' - by default DeltaUV = DeltaIR1 = DeltaIR2 = 0 '
1972  else
1973  write (50,'((a))') ' - by default DeltaIR1 = DeltaIR2 = 0 '
1974  end if
1975  write (50,'((a))') ' - suitable DeltaIR2 can be used to adapt the effective normalization'
1976 
1977  write (50,'((a))') ''
1978  write (50,'((a))') ' Results:'
1979 
1980  if (rank.gt.0) then
1981  do r=0,rank
1982  do n0=0,r/2
1983  do n1=0,r-2*n0
1984  do n2=0,r-2*n0-n1
1985  n3 = r-2*n0-n1-n2
1986  write (50,fmt10) n0,n1,n2,n3,dcoeff(n0,n1,n2,n3)
1987  end do
1988  end do
1989  end do
1990  end do
1991 
1992  write (50,'(/(a))') ' Error estimates:'
1993  do r=0,rank
1994  write (50,fmt11) r,derr(r)
1995  end do
1996  else
1997  write (50,fmt12) dcoeff(0,0,0,0)
1998  end if
1999 
2000  write(*,'(/(a),(a)/)') ' The result has been written to the file ' &
2001  ,trim(fname)
2002 

◆ writeresultd0()

subroutine demo::writeresultd0 ( integer, intent(in)  caseN,
integer, intent(in)  casei,
double complex, intent(in)  D0,
double complex, dimension(6), intent(in)  MomInv,
double complex, dimension(0:3), intent(in)  masses2 
)

Definition at line 2012 of file demo.f90.

2012  implicit none
2013 
2014  integer, intent(in) :: caseN,casei
2015  double complex, intent(in) :: D0
2016  double complex, intent(in) :: MomInv(6), masses2(0:3)
2017  double complex :: Dcoeff(0:0,0:0,0:0,0:0)
2018  double complex :: Dcoeffuv(0:0,0:0,0:0,0:0)
2019 
2020 
2021  dcoeff(0,0,0,0) = d0
2022  dcoeffuv(0,0,0,0) = 0d0
2023  call writeresultd(casen,casei,dcoeff,dcoeffuv,mominv,masses2,0)
2024 

◆ writeresultdb()

subroutine demo::writeresultdb ( integer, intent(in)  caseN,
integer, intent(in)  casei,
double complex, dimension(0:rank/2,0:rank), intent(in)  DBcoeff,
double complex, dimension(0:rank/2,0:rank), intent(in)  DBcoeffuv,
double complex, dimension(1), intent(in)  MomInv,
double complex, dimension(0:1), intent(in)  masses2,
integer, intent(in)  rankm,
integer, intent(in)  rank,
double precision, dimension(0:rank), intent(in), optional  DBerr 
)

Definition at line 3062 of file demo.f90.

3062  implicit none
3063 
3064  integer, intent(in) :: rank,rankm,caseN,casei
3065  double complex, intent(in) :: MomInv(1), masses2(0:1)
3066  double complex, intent(in) :: DBcoeff(0:rank/2,0:rank)
3067  double complex, intent(in) :: DBcoeffuv(0:rank/2,0:rank)
3068  double precision, optional, intent(in) :: DBerr(0:rank)
3069  integer :: r,n0,n1,mode
3070  integer,parameter :: rankuv=0
3071  character(len=99) :: fname
3072  character(len=*),parameter :: fmt1 = "(A9,' = ',es23.16,' + i*',es23.16)"
3073  character(len=*),parameter :: fmt2 = "(A9,' = ',es23.16)"
3074  character(len=*),parameter :: fmt10 = "(' DBcoeff(',i1,1(',',i1),') = ',es23.16,' + i*',es23.16)"
3075  character(len=*),parameter :: fmt11 = "(' DBerr(',i1,') = ',es23.16)"
3076  character(len=*),parameter :: fmt12 = "(' DB0 = ',es23.16,' + i*',es23.16)"
3077  character(len=*),parameter :: fmt13 = "(' DB1 = ',es23.16,' + i*',es23.16)"
3078  character(len=*),parameter :: fmt14 = "(' DB00 = ',es23.16,' + i*',es23.16)"
3079  character(len=*),parameter :: fmt20 = "(' DBcoeffuv(',i1,1(',',i1),') = ',es23.16,' + i*',es23.16)"
3080 
3081 ! output file for result
3082  call getmode_cll(mode)
3083  select case (mode)
3084  case(1)
3085  fname = 'demo_2point_derivative_example00_coli.dat'
3086  case(2)
3087  fname = 'demo_2point_derivative_example00_dd.dat'
3088  case(3)
3089  fname = 'demo_2point_derivative_example00_comp.dat'
3090  end select
3091  write(fname(31:32),'(i2.2)') casei
3092 
3093  open(unit=50,file=trim(fname),status='unknown')
3094 
3095  call getmuuv2_cll(muuv2)
3096  call getmuir2_cll(muir2)
3097  call getdeltauv_cll(deltauv)
3098  call getdeltair_cll(deltair1,deltair2)
3099 
3100  write (50,'(a49,i2,i3/)') ' Result for 2-point function derivative, example ',casen,casei
3101  write (50,'((a))') ' m12 '
3102  write (50,'((a))') ' ------- '
3103  write (50,'((a))') ' / 1 \ '
3104  write (50,'((a))') ' / \ '
3105  write (50,'((a))') ' p10 ----- ----- p10 '
3106  write (50,'((a))') ' \ / '
3107  write (50,'((a))') ' \ 0 / '
3108  write (50,'((a))') ' ------- '
3109  write (50,'((a))') ' m02 '
3110  write (50,'((a))') ''
3111  write (50,'((a))') ' Input:'
3112  write (50,fmt1) ' p10 ',p10
3113  write (50,fmt1) ' m02 ',masses2(0)
3114  write (50,fmt1) ' m12 ',masses2(1)
3115  if (rank.ge.rankuv) then
3116  write (50,fmt2) ' muUV2 ',muuv2
3117  end if
3118 ! write (50,fmt2) ' muIR2 ',muIR2
3119  if (rank.ge.rankuv) then
3120  write (50,fmt2) ' deltaUV ',deltauv
3121  end if
3122 ! write (50,fmt2) ' deltaIR1',deltaIR2
3123 ! write (50,fmt2) ' deltaIR2',deltaIR1
3124  write (50,'((a))') ''
3125  write (50,'((a))') ' Conventions:'
3126  write (50,'((a))') ''
3127  if(rankm.eq.0.and.rank.gt.0) then
3128  write (50,'((a))') ' d (2*pi*mu)^(4-D) '
3129  write (50,'((a))') ' DB = ----- --------------- \int d^D q f(q,p_i)'
3130  write (50,'((a))') ' d p^2 i*pi^2 '
3131 
3132  write (50,'((a))')
3133  write (50,'((a))') ' = DB_fin(muUV2,muIR2) + a_UV*DeltaUV + a_IR1*DeltaIR1 '
3134  else if (rank.eq.0) then
3135  write (50,'((a))') ' d (2*pi*mu)^(4-D) '
3136  write (50,'((a))') ' DB0 = ----- --------------- \int d^D q f(q,p_i)'
3137  write (50,'((a))') ' d p^2 i*pi^2 '
3138 
3139  write (50,'((a))')
3140  write (50,'((a))') ' = DB0_fin(muIR2) + a_IR1*DeltaIR1 '
3141  else if (rank.eq.1.and.rankm.eq.1) then
3142  write (50,'((a))') ' d (2*pi*mu)^(4-D) '
3143  write (50,'((a))') ' DB1 = ----- --------------- \int d^D q f(q,p_i)'
3144  write (50,'((a))') ' d p^2 i*pi^2 '
3145 
3146  write (50,'((a))')
3147  write (50,'((a))') ' = DB1_fin(muIR2) + a_IR1*DeltaIR1 '
3148  else if (rank.eq.2.and.rankm.eq.2) then
3149  write (50,'((a))') ' d (2*pi*mu)^(4-D) '
3150  write (50,'((a))') ' DB00 = ----- --------------- \int d^D q f(q,p_i)'
3151  write (50,'((a))') ' d p^2 i*pi^2 '
3152 
3153  write (50,'((a))')
3154  write (50,'((a))') ' = DB0_fin(muUV2,muIR2)) + a_UV*DeltaUV + a_IR1*DeltaIR1 '
3155  end if
3156  write (50,'((a))')
3157  write (50,'((a))') ' where'
3158  write (50,'((a))')
3159  if (rank.ge.2) then
3160  write (50,'((a))') &
3161  ' c(epsUV) c(epsIR) '
3162  write (50,'((a))') &
3163  ' DeltaUV = --------, DeltaIR1 = -------- '
3164  write (50,'((a))') &
3165  ' epsUV epsIR '
3166  else
3167  write (50,'((a))') &
3168  ' c(epsIR) '
3169  write (50,'((a))') &
3170  ' DeltaIR1 = -------- '
3171  write (50,'((a))') &
3172  ' epsIR '
3173  end if
3174  write (50,'((a))')
3175  write (50,'((a))') ' c(eps) = (4*pi)^eps\Gamma(1+eps), D = 4 -2*eps '
3176  write (50,'((a))')
3177  write (50,'((a))') ' you can freely choose the regularization parameters'
3178  if (rank.ge.2) then
3179  write (50,'((a))') ' of UV origin: muUV2 = mu^2, DeltaUV '
3180  end if
3181  write (50,'((a))') ' of IR origin: muIR2 = mu^2, DeltaIR1'
3182  write (50,'((a))')
3183  write (50,'((a))') ' note:'
3184  write (50,'((a))') ' - we effectively factor out a factor c(eps) '
3185  write (50,'((a))') ' - by default DeltaUV = 0 '
3186 
3187  write (50,'((a))') ''
3188  write (50,'((a))') ' Results:'
3189 
3190  if (rank.gt.0) then
3191  if(rankm.eq.0) then
3192  do r=rankm,rank
3193  do n0=0,r/2
3194  n1=r-2*n0
3195  write (50,fmt10) n0,n1,dbcoeff(n0,n1)
3196  end do
3197  end do
3198  else if(rankm.eq.1.and.rank.eq.1) then
3199  write (50,fmt12) dbcoeff(0,1)
3200  else if(rankm.eq.2.and.rank.eq.2) then
3201  write (50,fmt13) dbcoeff(1,0)
3202  else
3203  write (*,*) 'writeresultDB: case not supported'
3204  end if
3205 
3206 
3207 ! do r=0,rank
3208 ! do n0=0,r/2
3209 ! n1=r-2*n0
3210 ! write (50,fmt13) n0,n1,DBcoeffuv(n0,n1)
3211 ! end do
3212 ! end do
3213 !
3214  if(present(dberr)) then
3215  write (50,'(/(a))') ' Error estimates:'
3216  do r=0,rank
3217  write (50,fmt11) r,dberr(r)
3218  end do
3219  end if
3220  else
3221  write (50,fmt12) dbcoeff(0,0)
3222  end if
3223 
3224  write(*,'(/(a),(a)/)') ' The result has been written to the file ' &
3225  ,trim(fname)
3226 

◆ writeresultdb0()

subroutine demo::writeresultdb0 ( integer, intent(in)  caseN,
integer, intent(in)  casei,
double complex, intent(in)  DB0,
double complex, dimension(1), intent(in)  MomInv,
double complex, dimension(0:1), intent(in)  masses2 
)

Definition at line 3236 of file demo.f90.

3236  implicit none
3237 
3238  integer, intent(in) :: caseN,casei
3239  double complex, intent(in) :: DB0
3240  double complex, intent(in) :: MomInv(1), masses2(0:1)
3241  double complex :: DBcoeff(0:0,0:0)
3242  double complex :: DBcoeffuv(0:0,0:0)
3243 
3244 
3245  dbcoeff(0:0,0:0) = db0
3246  dbcoeffuv(0:0,0:0) = 0d0
3247  call writeresultdb(casen,casei,dbcoeff,dbcoeffuv,mominv,masses2,0,0)
3248 

◆ writeresultdten()

subroutine demo::writeresultdten ( integer, intent(in)  caseN,
integer, intent(in)  casei,
double complex, dimension(0:rank,0:rank,0:rank,0:rank), intent(in)  Dten,
double complex, dimension(0:rank,0:rank,0:rank,0:rank), intent(in)  Dtenuv,
double complex, dimension(0:3,3), intent(in)  MomVec,
double complex, dimension(6), intent(in)  MomInv,
double complex, dimension(0:3), intent(in)  masses2,
integer, intent(in)  rank,
double precision, dimension(0:rank), intent(in), optional  Derr 
)

Definition at line 2036 of file demo.f90.

2036  implicit none
2037 
2038  integer, intent(in) :: rank,caseN,casei
2039  double complex, intent(in) :: MomVec(0:3,3), MomInv(6), masses2(0:3)
2040  double complex, intent(in) :: Dten(0:rank,0:rank,0:rank,0:rank)
2041  double complex, intent(in) :: Dtenuv(0:rank,0:rank,0:rank,0:rank)
2042  double precision, optional, intent(in) :: Derr(0:rank)
2043  integer :: r,n0,n1,n2,n3,mode
2044  integer,parameter :: rankuv=4
2045  character(len=99) :: fname
2046  character(len=*),parameter :: fmt1 = "(A17,' = ',es23.16,' + i*',es23.16)"
2047  character(len=*),parameter :: fmt2 = "(A17,' = ',es23.16)"
2048  character(len=*),parameter :: fmt10 = "(' Dten(',i1,3(',',i1),') = ',es23.16,' + i*',es23.16)"
2049  character(len=*),parameter :: fmt11 = "(' Derr(',i1,') = ',es23.16)"
2050  character(len=*),parameter :: fmt12 = "(' D0 = ',es23.16,' + i*',es23.16)"
2051 
2052 ! output file for result
2053  call getmode_cll(mode)
2054  select case (mode)
2055  case(1)
2056  fname = 'demo_4point_example00_coli.dat'
2057  case(2)
2058  fname = 'demo_4point_example00_dd.dat'
2059  case(3)
2060  fname = 'demo_4point_example00_comp.dat'
2061  end select
2062  write(fname(20:21),'(i2.2)') casei
2063 
2064 ! write(*,*) casei,fname
2065 
2066  open(unit=50,file=trim(fname),status='unknown')
2067 
2068  call getmuuv2_cll(muuv2)
2069  call getmuir2_cll(muir2)
2070  call getdeltauv_cll(deltauv)
2071  call getdeltair_cll(deltair1,deltair2)
2072 
2073  write (50,'(a37,i2,i3/)') ' Result for 4-point function, example',casen,casei
2074  write (50,'(a63,i2,i3,a)') ' The corresponding code can be found in demo.f90 under ''example',casen,casei,''''
2075  write (50,'((a))')
2076  write (50,'((a))') ' p31 '
2077  write (50,'((a))') ' ------------------ '
2078  write (50,'((a))') ' / \ '
2079  write (50,'((a))') ' m22,p2vec '
2080  write (50,'((a))') ' p21 --------------------- p32 \ '
2081  write (50,'((a))') ' | 2 | \ '
2082  write (50,'((a))') ' | | |'
2083  write (50,'((a))') ' m12,p1vec |1 3| m32,p3vec | p20'
2084  write (50,'((a))') ' | | |'
2085  write (50,'((a))') ' | 0 | / '
2086  write (50,'((a))') ' p10 --------------------- p30 / '
2087  write (50,'((a))') ' m02 '
2088  write (50,'((a))') ''
2089  write (50,'((a))') ' Input:'
2090  write (50,fmt1) ' p1vec(0) ',momvec(0,1)
2091  write (50,fmt1) ' p1vec(1) ',momvec(1,1)
2092  write (50,fmt1) ' p1vec(2) ',momvec(2,1)
2093  write (50,fmt1) ' p1vec(3) ',momvec(3,1)
2094  write (50,fmt1) ' p2vec(0) ',momvec(0,2)
2095  write (50,fmt1) ' p2vec(1) ',momvec(1,2)
2096  write (50,fmt1) ' p2vec(2) ',momvec(2,2)
2097  write (50,fmt1) ' p2vec(3) ',momvec(3,2)
2098  write (50,fmt1) ' p3vec(0) ',momvec(0,3)
2099  write (50,fmt1) ' p3vec(1) ',momvec(1,3)
2100  write (50,fmt1) ' p3vec(2) ',momvec(2,3)
2101  write (50,fmt1) ' p3vec(3) ',momvec(3,3)
2102  write (50,fmt1) ' p10 ',mominv(1)
2103  write (50,fmt1) ' p21 ',mominv(2)
2104  write (50,fmt1) ' p32 ',mominv(3)
2105  write (50,fmt1) ' p30 ',mominv(4)
2106  write (50,fmt1) ' p20 ',mominv(5)
2107  write (50,fmt1) ' p31 ',mominv(6)
2108  write (50,fmt1) ' m02 ',masses2(0)
2109  write (50,fmt1) ' m12 ',masses2(1)
2110  write (50,fmt1) ' m22 ',masses2(2)
2111  write (50,fmt1) ' m32 ',masses2(3)
2112  if (rank.ge.rankuv) then
2113  write (50,fmt2) ' muUV2 ',muuv2
2114  end if
2115  write (50,fmt2) ' muIR2 ',muir2
2116  if (rank.ge.rankuv) then
2117  write (50,fmt2) ' DeltaUV ',deltauv
2118  end if
2119  write (50,fmt2) ' DeltaIR1 ',deltair2
2120  write (50,fmt2) ' DeltaIR2 ',deltair1
2121  write (50,'((a))') ''
2122  write (50,'((a))') ' Conventions:'
2123  write (50,'((a))') ''
2124  if(rank.eq.0) then
2125  write (50,'((a))') ' (2*pi*mu)^(4-D) '
2126  write (50,'((a))') ' D0 = --------------- \int d^D q f(q,p_i)'
2127  write (50,'((a))') ' i*pi^2 '
2128 
2129  write (50,'((a))')
2130  write (50,'((a))') ' = D0_fin(muUV2,muIR2) + '// &
2131  ' a_IR2*[DeltaIR2 + DeltaIR1*ln(muIR2)] + a_IR1*DeltaIR1'
2132  else if(rank.ge.rankuv) then
2133  write (50,'((a))') ' (2*pi*mu)^(4-D) '
2134  write (50,'((a))') ' D = --------------- \int d^D q f(q,p_i)'
2135  write (50,'((a))') ' i*pi^2 '
2136 
2137  write (50,'((a))')
2138  write (50,'((a))') ' = D_fin(muUV2,muIR2) + a_UV*DeltaUV + '// &
2139  ' a_IR2*[DeltaIR2 + DeltaIR1*ln(muIR2)] + a_IR1*DeltaIR1'
2140  else
2141  write (50,'((a))') ' (2*pi*mu)^(4-D) '
2142  write (50,'((a))') ' D = --------------- \int d^D q f(q,p_i)'
2143  write (50,'((a))') ' i*pi^2 '
2144 
2145  write (50,'((a))')
2146  write (50,'((a))') ' = D_fin(muUV2,muIR2) + '// &
2147  ' a_IR2*[DeltaIR2 + DeltaIR1*ln(muIR2)] + a_IR1*DeltaIR1'
2148  end if
2149  write (50,'((a))')
2150  write (50,'((a))') ' where'
2151  write (50,'((a))')
2152  if (rank.gt.rankuv) then
2153  write (50,'((a))') &
2154  ' c(epsUV) c(epsIR) c(epsIR)'
2155  write (50,'((a))') &
2156  ' DeltaUV = --------, DeltaIR1 = --------, DeltaIR2 = --------'
2157  write (50,'((a))') &
2158  ' epsUV epsIR epsIR^2'
2159  else
2160  write (50,'((a))') &
2161  ' c(epsIR) c(epsIR)'
2162  write (50,'((a))') &
2163  ' DeltaIR1 = --------, DeltaIR2 = --------'
2164  write (50,'((a))') &
2165  ' epsIR epsIR^2'
2166  end if
2167  write (50,'((a))')
2168  write (50,'((a))') ' c(eps) = (4*pi)^eps\Gamma(1+eps), D = 4 -2*eps '
2169  write (50,'((a))')
2170  write (50,'((a))') ' you can freely choose the regularization parameters'
2171  if (rank.gt.0) then
2172  write (50,'((a))') ' of UV origin: muUV2 = mu^2, DeltaUV '
2173  end if
2174  write (50,'((a))') ' of IR origin: muIR2 = mu^2, DeltaIR1, DeltaIR2'
2175  write (50,'((a))')
2176  write (50,'((a))') ' note:'
2177  write (50,'((a))') ' - we effectively factor out a factor c(eps) '
2178  if (rank.gt.0) then
2179  write (50,'((a))') ' - by default DeltaUV = DeltaIR1 = DeltaIR2 = 0 '
2180  else
2181  write (50,'((a))') ' - by default DeltaIR1 = DeltaIR2 = 0 '
2182  end if
2183  write (50,'((a))') ' - suitable DeltaIR2 can be used to adapt the effective normalization'
2184 
2185  write (50,'((a))') ''
2186  write (50,'((a))') ' Results:'
2187 
2188  if (rank.gt.0) then
2189  do r=0,rank
2190  do n0=0,r
2191  do n1=0,r-n0
2192  do n2=0,r-n0-n1
2193  n3 = r-n0-n1-n2
2194  write (50,fmt10) n0,n1,n2,n3,dten(n0,n1,n2,n3)
2195  end do
2196  end do
2197  end do
2198  end do
2199 
2200  write (50,'(/(a))') ' Error estimates:'
2201  do r=0,rank
2202  write (50,fmt11) r,derr(r)
2203  end do
2204  else
2205  write (50,fmt12) dten(0,0,0,0)
2206  end if
2207 
2208  write(*,'(/(a),(a)/)') ' The result has been written to the file ' &
2209  ,trim(fname)
2210 

◆ writeresulte()

subroutine demo::writeresulte ( integer, intent(in)  caseN,
integer, intent(in)  casei,
double complex, dimension(0:rank/2,0:rank,0:rank,0:rank,0:rank), intent(in)  Ecoeff,
double complex, dimension(0:rank/2,0:rank,0:rank,0:rank,0:rank), intent(in)  Ecoeffuv,
double complex, dimension(10), intent(in)  MomInv,
double complex, dimension(0:4), intent(in)  masses2,
integer, intent(in)  rank,
double precision, dimension(0:rank), intent(in), optional  Eerr 
)

Definition at line 2222 of file demo.f90.

2222  implicit none
2223 
2224  integer, intent(in) :: rank,caseN,casei
2225  double complex, intent(in) :: MomInv(10), masses2(0:4)
2226  double complex, intent(in) :: Ecoeff(0:rank/2,0:rank,0:rank,0:rank,0:rank)
2227  double complex, intent(in) :: Ecoeffuv(0:rank/2,0:rank,0:rank,0:rank,0:rank)
2228  double precision, optional, intent(in) :: Eerr(0:rank)
2229  integer :: r,n0,n1,n2,n3,n4,mode
2230  integer,parameter :: rankuv=6
2231  character(len=99) :: fname
2232  character(len=*),parameter :: fmt1 = "(A9,' = ',es23.16,' + i*',es23.16)"
2233  character(len=*),parameter :: fmt2 = "(A9,' = ',es23.16)"
2234  character(len=*),parameter :: fmt10 = "(' Ecoeff(',i1,4(',',i1),') = ',es23.16,' + i*',es23.16)"
2235  character(len=*),parameter :: fmt11 = "(' Eerr(',i1,') = ',es23.16)"
2236  character(len=*),parameter :: fmt12 = "(' E0 = ',es23.16,' + i*',es23.16)"
2237 
2238 ! output file for result
2239  call getmode_cll(mode)
2240  select case (mode)
2241  case(1)
2242  fname = 'demo_5point_example00_coli.dat'
2243  case(2)
2244  fname = 'demo_5point_example00_dd.dat'
2245  case(3)
2246  fname = 'demo_5point_example00_comp.dat'
2247  end select
2248  write(fname(20:21),'(i2.2)') casei
2249 
2250 ! write(*,*) casei,fname
2251 
2252  open(unit=50,file=trim(fname),status='unknown')
2253 
2254  call getmuuv2_cll(muuv2)
2255  call getmuir2_cll(muir2)
2256  call getdeltauv_cll(deltauv)
2257  call getdeltair_cll(deltair1,deltair2)
2258 
2259  write (50,'(a37,i2,i3/)') ' Result for 5-point function, example',casen,casei
2260  write (50,'(a63,i2,i3,a)') ' The corresponding code can be found in demo.f90 under ''example',casen,casei,''''
2261  write (50,'((a))')
2262  write (50,'((a))') ' p31 '
2263  write (50,'((a))') ' ---------^--------- '
2264  write (50,'((a))') ' / \ '
2265  write (50,'((a))') ' m22 '
2266  write (50,'((a))') ' / p21 --------------------- p32 \ '
2267  write (50,'((a))') ' / | 2 \ \ '
2268  write (50,'((a))') ' / | 3\ m32 | p42'
2269  write (50,'((a))') ' | |1 \ / '
2270  write (50,'((a))') ' p20 | m12 | >---- p43 < '
2271  write (50,'((a))') ' | | / \ '
2272  write (50,'((a))') ' \ | 4/ m42 | p30'
2273  write (50,'((a))') ' \ | 0 / / '
2274  write (50,'((a))') ' \ p10 --------------------- p40 / '
2275  write (50,'((a))') ' m02 '
2276  write (50,'((a))') ' \ / '
2277  write (50,'((a))') ' ---------v--------- '
2278  write (50,'((a))') ' p41 '
2279  write (50,'((a))') ''
2280  write (50,'((a))') ' Input:'
2281  write (50,fmt1) ' p10 ',mominv(1)
2282  write (50,fmt1) ' p21 ',mominv(2)
2283  write (50,fmt1) ' p32 ',mominv(3)
2284  write (50,fmt1) ' p43 ',mominv(4)
2285  write (50,fmt1) ' p40 ',mominv(5)
2286  write (50,fmt1) ' p20 ',mominv(6)
2287  write (50,fmt1) ' p31 ',mominv(7)
2288  write (50,fmt1) ' p42 ',mominv(8)
2289  write (50,fmt1) ' p30 ',mominv(9)
2290  write (50,fmt1) ' p41 ',mominv(10)
2291  write (50,fmt1) ' m02 ',masses2(0)
2292  write (50,fmt1) ' m12 ',masses2(1)
2293  write (50,fmt1) ' m22 ',masses2(2)
2294  write (50,fmt1) ' m32 ',masses2(3)
2295  write (50,fmt1) ' m42 ',masses2(4)
2296  if (rank.ge.rankuv) then
2297  write (50,fmt2) ' muUV2 ',muuv2
2298  end if
2299  write (50,fmt2) ' muIR2 ',muir2
2300  if (rank.ge.rankuv) then
2301  write (50,fmt2) ' deltaUV ',deltauv
2302  end if
2303  write (50,fmt2) ' DeltaIR1',deltair2
2304  write (50,fmt2) ' DeltaIR2',deltair1
2305  write (50,'((a))') ''
2306  write (50,'((a))') ' Conventions:'
2307  write (50,'((a))') ''
2308  if(rank.eq.0) then
2309  write (50,'((a))') ' (2*pi*mu)^(4-D) '
2310  write (50,'((a))') ' E0 = --------------- \int d^D q f(q,p_i)'
2311  write (50,'((a))') ' i*pi^2 '
2312 
2313  write (50,'((a))')
2314  write (50,'((a))') ' = E0_fin(muUV2,muIR2) + '// &
2315  ' a_IR2*[DeltaIR2 + DeltaIR1*ln(muIR2)] + a_IR1*DeltaIR1'
2316  elseif(rank.ge.rankuv) then
2317  write (50,'((a))') ' (2*pi*mu)^(4-D) '
2318  write (50,'((a))') ' E = --------------- \int d^D q f(q,p_i)'
2319  write (50,'((a))') ' i*pi^2 '
2320 
2321  write (50,'((a))')
2322  write (50,'((a))') ' = E_fin(muUV2,muIR2) + a_UV*DeltaUV + '// &
2323  ' a_IR2*[DeltaIR2 + DeltaIR1*ln(muIR2)] + a_IR1*DeltaIR1'
2324  else
2325  write (50,'((a))') ' (2*pi*mu)^(4-D) '
2326  write (50,'((a))') ' E = --------------- \int d^D q f(q,p_i)'
2327  write (50,'((a))') ' i*pi^2 '
2328 
2329  write (50,'((a))')
2330  write (50,'((a))') ' = E_fin(muUV2,muIR2) + '// &
2331  ' a_IR2*[DeltaIR2 + DeltaIR1*ln(muIR2)] + a_IR1*DeltaIR1'
2332  end if
2333  write (50,'((a))')
2334  write (50,'((a))') ' where'
2335  write (50,'((a))')
2336  if (rank.ge.rankuv) then
2337  write (50,'((a))') &
2338  ' c(epsUV) c(epsIR) c(epsIR)'
2339  write (50,'((a))') &
2340  ' DeltaUV = --------, DeltaIR1 = --------, DeltaIR2 = --------'
2341  write (50,'((a))') &
2342  ' epsUV epsIR epsIR^2'
2343  else
2344  write (50,'((a))') &
2345  ' c(epsIR) c(epsIR)'
2346  write (50,'((a))') &
2347  ' DeltaIR1 = --------, DeltaIR2 = --------'
2348  write (50,'((a))') &
2349  ' epsIR epsIR^2'
2350  end if
2351  write (50,'((a))')
2352  write (50,'((a))') ' c(eps) = (4*pi)^eps\Gamma(1+eps), D = 4 -2*eps '
2353  write (50,'((a))')
2354  write (50,'((a))') ' you can freely choose the regularization parameters'
2355  if (rank.ge.rankuv) then
2356  write (50,'((a))') ' of UV origin: muUV2 = mu^2, DeltaUV '
2357  end if
2358  write (50,'((a))') ' of IR origin: muIR2 = mu^2, DeltaIR1, DeltaIR2'
2359  write (50,'((a))')
2360  write (50,'((a))') ' note:'
2361  write (50,'((a))') ' - we effectively factor out a factor c(eps) '
2362  if (rank.ge.rankuv) then
2363  write (50,'((a))') ' - by default DeltaUV = DeltaIR1 = DeltaIR2 = 0 '
2364  else
2365  write (50,'((a))') ' - by default DeltaIR1 = DeltaIR2 = 0 '
2366  end if
2367  write (50,'((a))') ' - suitable DeltaIR2 can be used to adapt the effective normalization'
2368 
2369  write (50,'((a))') ''
2370  write (50,'((a))') ' Results:'
2371 
2372  if (rank.gt.0) then
2373  do r=0,rank
2374  do n0=0,r/2
2375  do n1=0,r-2*n0
2376  do n2=0,r-2*n0-n1
2377  do n3=0,r-2*n0-n1-n2
2378  n4 = r-2*n0-n1-n2-n3
2379  write (50,fmt10) n0,n1,n2,n3,n4,ecoeff(n0,n1,n2,n3,n4)
2380  end do
2381  end do
2382  end do
2383  end do
2384  end do
2385 
2386  write (50,'(/(a))') ' Error estimates:'
2387  do r=0,rank
2388  write (50,fmt11) r,eerr(r)
2389  end do
2390  else
2391  write (50,fmt12) ecoeff(0,0,0,0,0)
2392  end if
2393 
2394  write(*,'(/(a),(a)/)') ' The result has been written to the file ' &
2395  ,trim(fname)
2396 

◆ writeresulte0()

subroutine demo::writeresulte0 ( integer, intent(in)  caseN,
integer, intent(in)  casei,
double complex, intent(in)  E0,
double complex, dimension(10), intent(in)  MomInv,
double complex, dimension(0:4), intent(in)  masses2 
)

Definition at line 2406 of file demo.f90.

2406  implicit none
2407 
2408  integer, intent(in) :: caseN,casei
2409  double complex, intent(in) :: E0
2410  double complex, intent(in) :: MomInv(10), masses2(0:4)
2411  double complex :: Ecoeff(0:0,0:0,0:0,0:0,0:0)
2412  double complex :: Ecoeffuv(0:0,0:0,0:0,0:0,0:0)
2413 
2414 
2415  ecoeff(0,0,0,0,0) = e0
2416  ecoeffuv(0,0,0,0,0) = 0d0
2417  call writeresulte(casen,casei,ecoeff,ecoeffuv,mominv,masses2,0)
2418 

◆ writeresulteten()

subroutine demo::writeresulteten ( integer, intent(in)  caseN,
integer, intent(in)  casei,
double complex, dimension(0:rank,0:rank,0:rank,0:rank), intent(in)  Eten,
double complex, dimension(0:rank,0:rank,0:rank,0:rank), intent(in)  Etenuv,
double complex, dimension(0:3,4), intent(in)  MomVec,
double complex, dimension(10), intent(in)  MomInv,
double complex, dimension(0:4), intent(in)  masses2,
integer, intent(in)  rank,
double precision, dimension(0:rank), intent(in), optional  Eerr 
)

Definition at line 2430 of file demo.f90.

2430  implicit none
2431 
2432  integer, intent(in) :: rank,caseN,casei
2433  double complex, intent(in) :: MomVec(0:3,4), MomInv(10), masses2(0:4)
2434  double complex, intent(in) :: Eten(0:rank,0:rank,0:rank,0:rank)
2435  double complex, intent(in) :: Etenuv(0:rank,0:rank,0:rank,0:rank)
2436  double precision, optional, intent(in) :: Eerr(0:rank)
2437  integer :: r,n0,n1,n2,n3,mode
2438  integer,parameter :: rankuv=6
2439  character(len=99) :: fname
2440  character(len=*),parameter :: fmt1 = "(A17,' = ',es23.16,' + i*',es23.16)"
2441  character(len=*),parameter :: fmt2 = "(A17,' = ',es23.16)"
2442  character(len=*),parameter :: fmt10 = "(' Eten(',i1,3(',',i1),') = ',es23.16,' + i*',es23.16)"
2443  character(len=*),parameter :: fmt11 = "(' Eerr(',i1,') = ',es23.16)"
2444  character(len=*),parameter :: fmt12 = "(' E0 = ',es23.16,' + i*',es23.16)"
2445 
2446 ! output file for result
2447  call getmode_cll(mode)
2448  select case (mode)
2449  case(1)
2450  fname = 'demo_5point_example00_coli.dat'
2451  case(2)
2452  fname = 'demo_5point_example00_dd.dat'
2453  case(3)
2454  fname = 'demo_5point_example00_comp.dat'
2455  end select
2456  write(fname(20:21),'(i2.2)') casei
2457 
2458 ! write(*,*) casei,fname
2459 
2460  open(unit=50,file=trim(fname),status='unknown')
2461 
2462  call getmuuv2_cll(muuv2)
2463  call getmuir2_cll(muir2)
2464  call getdeltauv_cll(deltauv)
2465  call getdeltair_cll(deltair1,deltair2)
2466 
2467  write (50,'(a37,i2,i3/)') ' Result for 5-point function, example',casen,casei
2468  write (50,'(a63,i2,i3,a)') ' The corresponding code can be found in demo.f90 under ''example',casen,casei,''''
2469  write (50,'((a))')
2470  write (50,'((a))') ' p31 '
2471  write (50,'((a))') ' ---------^--------- '
2472  write (50,'((a))') ' / \ '
2473  write (50,'((a))') ' m22,p2vec '
2474  write (50,'((a))') ' / p21 --------------------- p32 \ '
2475  write (50,'((a))') ' / | 2 \ \ '
2476  write (50,'((a))') ' / | 3\ m32,p3vec | p42'
2477  write (50,'((a))') ' | |1 \ / '
2478  write (50,'((a))') ' p20 | m12,p1vec| >---- p43 < '
2479  write (50,'((a))') ' | | / \ '
2480  write (50,'((a))') ' \ | 4/ m42,p4vec | p30'
2481  write (50,'((a))') ' \ | 0 / / '
2482  write (50,'((a))') ' \ p10 --------------------- p40 / '
2483  write (50,'((a))') ' m02 '
2484  write (50,'((a))') ' \ / '
2485  write (50,'((a))') ' ---------v--------- '
2486  write (50,'((a))') ' p41 '
2487  write (50,'((a))') ''
2488  write (50,'((a))') ' Input:'
2489  write (50,fmt1) ' p1vec(0) ',momvec(0,1)
2490  write (50,fmt1) ' p1vec(1) ',momvec(1,1)
2491  write (50,fmt1) ' p1vec(2) ',momvec(2,1)
2492  write (50,fmt1) ' p1vec(3) ',momvec(3,1)
2493  write (50,fmt1) ' p2vec(0) ',momvec(0,2)
2494  write (50,fmt1) ' p2vec(1) ',momvec(1,2)
2495  write (50,fmt1) ' p2vec(2) ',momvec(2,2)
2496  write (50,fmt1) ' p2vec(3) ',momvec(3,2)
2497  write (50,fmt1) ' p3vec(0) ',momvec(0,3)
2498  write (50,fmt1) ' p3vec(1) ',momvec(1,3)
2499  write (50,fmt1) ' p3vec(2) ',momvec(2,3)
2500  write (50,fmt1) ' p3vec(3) ',momvec(3,3)
2501  write (50,fmt1) ' p4vec(0) ',momvec(0,4)
2502  write (50,fmt1) ' p4vec(1) ',momvec(1,4)
2503  write (50,fmt1) ' p4vec(2) ',momvec(2,4)
2504  write (50,fmt1) ' p4vec(3) ',momvec(3,4)
2505  write (50,fmt1) ' p10 ',mominv(1)
2506  write (50,fmt1) ' p21 ',mominv(2)
2507  write (50,fmt1) ' p32 ',mominv(3)
2508  write (50,fmt1) ' p43 ',mominv(4)
2509  write (50,fmt1) ' p40 ',mominv(5)
2510  write (50,fmt1) ' p20 ',mominv(6)
2511  write (50,fmt1) ' p31 ',mominv(7)
2512  write (50,fmt1) ' p42 ',mominv(8)
2513  write (50,fmt1) ' p30 ',mominv(9)
2514  write (50,fmt1) ' p41 ',mominv(10)
2515  write (50,fmt1) ' m02 ',masses2(0)
2516  write (50,fmt1) ' m12 ',masses2(1)
2517  write (50,fmt1) ' m22 ',masses2(2)
2518  write (50,fmt1) ' m32 ',masses2(3)
2519  write (50,fmt1) ' m42 ',masses2(4)
2520  if (rank.ge.rankuv) then
2521  write (50,fmt2) ' muUV2 ',muuv2
2522  end if
2523  write (50,fmt2) ' muIR2 ',muir2
2524  if (rank.ge.rankuv) then
2525  write (50,fmt2) ' deltaUV ',deltauv
2526  end if
2527  write (50,fmt2) ' DeltaIR1 ',deltair2
2528  write (50,fmt2) ' DeltaIR2 ',deltair1
2529  write (50,'((a))') ''
2530  write (50,'((a))') ' Conventions:'
2531  write (50,'((a))') ''
2532  if(rank.eq.0) then
2533  write (50,'((a))') ' (2*pi*mu)^(4-D) '
2534  write (50,'((a))') ' E0 = --------------- \int d^D q f(q,p_i)'
2535  write (50,'((a))') ' i*pi^2 '
2536 
2537  write (50,'((a))')
2538  write (50,'((a))') ' = E0_fin(muUV2,muIR2) + '// &
2539  ' a_IR2*[DeltaIR2 + DeltaIR1*ln(muIR2)] + a_IR1*DeltaIR1'
2540  elseif(rank.ge.rankuv) then
2541  write (50,'((a))') ' (2*pi*mu)^(4-D) '
2542  write (50,'((a))') ' E = --------------- \int d^D q f(q,p_i)'
2543  write (50,'((a))') ' i*pi^2 '
2544 
2545  write (50,'((a))')
2546  write (50,'((a))') ' = E_fin(muUV2,muIR2) + a_UV*DeltaUV + '// &
2547  ' a_IR2*[DeltaIR2 + DeltaIR1*ln(muIR2)] + a_IR1*DeltaIR1'
2548  else
2549  write (50,'((a))') ' (2*pi*mu)^(4-D) '
2550  write (50,'((a))') ' E = --------------- \int d^D q f(q,p_i)'
2551  write (50,'((a))') ' i*pi^2 '
2552 
2553  write (50,'((a))')
2554  write (50,'((a))') ' = E_fin(muUV2,muIR2) + '// &
2555  ' a_IR2*[DeltaIR2 + DeltaIR1*ln(muIR2)] + a_IR1*DeltaIR1'
2556  end if
2557  write (50,'((a))')
2558  write (50,'((a))') ' where'
2559  write (50,'((a))')
2560  if (rank.ge.rankuv) then
2561  write (50,'((a))') &
2562  ' c(epsUV) c(epsIR) c(epsIR)'
2563  write (50,'((a))') &
2564  ' DeltaUV = --------, DeltaIR1 = --------, DeltaIR2 = --------'
2565  write (50,'((a))') &
2566  ' epsUV epsIR epsIR^2'
2567  else
2568  write (50,'((a))') &
2569  ' c(epsIR) c(epsIR)'
2570  write (50,'((a))') &
2571  ' DeltaIR1 = --------, DeltaIR2 = --------'
2572  write (50,'((a))') &
2573  ' epsIR epsIR^2'
2574  end if
2575  write (50,'((a))')
2576  write (50,'((a))') ' c(eps) = (4*pi)^eps\Gamma(1+eps), D = 4 -2*eps '
2577  write (50,'((a))')
2578  write (50,'((a))') ' you can freely choose the regularization parameters'
2579  if (rank.ge.rankuv) then
2580  write (50,'((a))') ' of UV origin: muUV2 = mu^2, DeltaUV '
2581  end if
2582  write (50,'((a))') ' of IR origin: muIR2 = mu^2, DeltaIR1, DeltaIR2'
2583  write (50,'((a))')
2584  write (50,'((a))') ' note:'
2585  write (50,'((a))') ' - we effectively factor out a factor c(eps) '
2586  if (rank.ge.rankuv) then
2587  write (50,'((a))') ' - by default DeltaUV = DeltaIR1 = DeltaIR2 = 0 '
2588  else
2589  write (50,'((a))') ' - by default DeltaIR1 = DeltaIR2 = 0 '
2590  end if
2591  write (50,'((a))') ' - suitable DeltaIR2 can be used to adapt the effective normalization'
2592 
2593  write (50,'((a))') ''
2594  write (50,'((a))') ' Results:'
2595 
2596  if (rank.gt.0) then
2597  do r=0,rank
2598  do n0=0,r
2599  do n1=0,r-n0
2600  do n2=0,r-n0-n1
2601  n3=r-n0-n1-n2
2602  write (50,fmt10) n0,n1,n2,n3,eten(n0,n1,n2,n3)
2603  end do
2604  end do
2605  end do
2606  end do
2607 
2608  write (50,'(/(a))') ' Error estimates:'
2609  do r=0,rank
2610  write (50,fmt11) r,eerr(r)
2611  end do
2612  else
2613  write (50,fmt12) eten(0,0,0,0)
2614  end if
2615 
2616  write(*,'(/(a),(a)/)') ' The result has been written to the file ' &
2617  ,trim(fname)
2618 

◆ writeresultf()

subroutine demo::writeresultf ( integer, intent(in)  caseN,
integer, intent(in)  casei,
double complex, dimension(0:rank/2,0:rank,0:rank,0:rank,0:rank,0:rank), intent(in)  Fcoeff,
double complex, dimension(0:rank/2,0:rank,0:rank,0:rank,0:rank,0:rank), intent(in)  Fcoeffuv,
double complex, dimension(15), intent(in)  MomInv,
double complex, dimension(0:5), intent(in)  masses2,
integer, intent(in)  rank,
double precision, dimension(0:rank), intent(in), optional  Ferr 
)

Definition at line 2632 of file demo.f90.

2632  implicit none
2633 
2634  integer, intent(in) :: rank,caseN,casei
2635  double complex, intent(in) :: MomInv(15), masses2(0:5)
2636  double complex, intent(in) :: Fcoeff(0:rank/2,0:rank,0:rank,0:rank,0:rank,0:rank)
2637  double complex, intent(in) :: Fcoeffuv(0:rank/2,0:rank,0:rank,0:rank,0:rank,0:rank)
2638  double precision, optional, intent(in) :: Ferr(0:rank)
2639  integer :: r,n0,n1,n2,n3,n4,n5,mode
2640  integer,parameter :: rankuv=8
2641  character(len=99) :: fname
2642  character(len=*),parameter :: fmt1 = "(A9,' = ',es23.16,' + i*',es23.16)"
2643  character(len=*),parameter :: fmt2 = "(A9,' = ',es23.16)"
2644  character(len=*),parameter :: fmt10 = "(' Fcoeff(',i1,5(',',i1),') = ',es23.16,' + i*',es23.16)"
2645  character(len=*),parameter :: fmt11 = "(' Ferr(',i1,') = ',es23.16)"
2646  character(len=*),parameter :: fmt12 = "(' F0 = ',es23.16,' + i*',es23.16)"
2647 
2648 ! output file for result
2649  call getmode_cll(mode)
2650  select case (mode)
2651  case(1)
2652  fname = 'demo_6point_example00_coli.dat'
2653  case(2)
2654  fname = 'demo_6point_example00_dd.dat'
2655  case(3)
2656  fname = 'demo_6point_example00_comp.dat'
2657  end select
2658  write(fname(20:21),'(i2.2)') casei
2659 
2660 ! write(*,*) casei,fname
2661 
2662  open(unit=50,file=trim(fname),status='unknown')
2663 
2664  call getmuuv2_cll(muuv2)
2665  call getmuir2_cll(muir2)
2666  call getdeltauv_cll(deltauv)
2667  call getdeltair_cll(deltair1,deltair2)
2668 
2669  write (50,'(a37,i2,i3/)') ' Result for 6-point function, example',casen,casei
2670  write (50,'(a63,i2,i3,a)') ' The corresponding code can be found in demo.f90 under ''example',casen,casei,''''
2671  write (50,'((a))')
2672  write (50,'((a))') ' p42 '
2673  write (50,'((a))') ' ---------^--------- '
2674  write (50,'((a))') ' / \ '
2675  write (50,'((a))') ' m32 '
2676  write (50,'((a))') ' / p32 --------------------- p43 \ '
2677  write (50,'((a))') ' / / 3 \ \ '
2678  write (50,'((a))') ' p31 | m22 /2 4\ m42 | p53'
2679  write (50,'((a))') ' \ / \ / '
2680  write (50,'((a))') ' > p21 ----< >---- p54 < '
2681  write (50,'((a))') ' / \ / \ '
2682  write (50,'((a))') ' p20 | m12 \1 5/ m52 | p40'
2683  write (50,'((a))') ' \ \ 0 / / '
2684  write (50,'((a))') ' \ p10 --------------------- p50 / '
2685  write (50,'((a))') ' m02 '
2686  write (50,'((a))') ' \ / '
2687  write (50,'((a))') ' ---------v--------- '
2688  write (50,'((a))') ' p51 '
2689  write (50,'((a))') ''
2690  write (50,'((a))') ' Input:'
2691  write (50,fmt1) ' p10 ',mominv(1)
2692  write (50,fmt1) ' p21 ',mominv(2)
2693  write (50,fmt1) ' p32 ',mominv(3)
2694  write (50,fmt1) ' p43 ',mominv(4)
2695  write (50,fmt1) ' p54 ',mominv(5)
2696  write (50,fmt1) ' p50 ',mominv(6)
2697  write (50,fmt1) ' p20 ',mominv(7)
2698  write (50,fmt1) ' p31 ',mominv(8)
2699  write (50,fmt1) ' p42 ',mominv(9)
2700  write (50,fmt1) ' p53 ',mominv(10)
2701  write (50,fmt1) ' p40 ',mominv(11)
2702  write (50,fmt1) ' p51 ',mominv(12)
2703  write (50,fmt1) ' p30 ',mominv(13)
2704  write (50,fmt1) ' p41 ',mominv(14)
2705  write (50,fmt1) ' p52 ',mominv(15)
2706  write (50,fmt1) ' m02 ',masses2(0)
2707  write (50,fmt1) ' m12 ',masses2(1)
2708  write (50,fmt1) ' m22 ',masses2(2)
2709  write (50,fmt1) ' m32 ',masses2(3)
2710  write (50,fmt1) ' m42 ',masses2(4)
2711  write (50,fmt1) ' m52 ',masses2(5)
2712  if (rank.ge.rankuv) then
2713  write (50,fmt2) ' muUV2 ',muuv2
2714  end if
2715  write (50,fmt2) ' muIR2 ',muir2
2716  if (rank.ge.rankuv) then
2717  write (50,fmt2) ' deltaUV ',deltauv
2718  end if
2719  write (50,fmt2) ' DeltaIR1',deltair2
2720  write (50,fmt2) ' DeltaIR2',deltair1
2721  write (50,'((a))') ''
2722  write (50,'((a))') ' Conventions:'
2723  write (50,'((a))') ''
2724  if(rank.eq.0) then
2725  write (50,'((a))') ' (2*pi*mu)^(4-D) '
2726  write (50,'((a))') ' F0 = --------------- \int d^D q f(q,p_i)'
2727  write (50,'((a))') ' i*pi^2 '
2728 
2729  write (50,'((a))')
2730  write (50,'((a))') ' = F0_fin(muUV2,muIR2) + '// &
2731  ' a_IR2*[DeltaIR2 + DeltaIR1*ln(muIR2)] + a_IR1*DeltaIR1'
2732  elseif(rank.ge.rankuv) then
2733  write (50,'((a))') ' (2*pi*mu)^(4-D) '
2734  write (50,'((a))') ' F = --------------- \int d^D q f(q,p_i)'
2735  write (50,'((a))') ' i*pi^2 '
2736 
2737  write (50,'((a))')
2738  write (50,'((a))') ' = F_fin(muUV2,muIR2) + a_UV*DeltaUV + '// &
2739  ' a_IR2*[DeltaIR2 + DeltaIR1*ln(muIR2)] + a_IR1*DeltaIR1'
2740  else
2741  write (50,'((a))') ' (2*pi*mu)^(4-D) '
2742  write (50,'((a))') ' F = --------------- \int d^D q f(q,p_i)'
2743  write (50,'((a))') ' i*pi^2 '
2744 
2745  write (50,'((a))')
2746  write (50,'((a))') ' = F_fin(muUV2,muIR2) + '// &
2747  ' a_IR2*[DeltaIR2 + DeltaIR1*ln(muIR2)] + a_IR1*DeltaIR1'
2748  end if
2749  write (50,'((a))')
2750  write (50,'((a))') ' where'
2751  write (50,'((a))')
2752  if (rank.ge.rankuv) then
2753  write (50,'((a))') &
2754  ' c(epsUV) c(epsIR) c(epsIR)'
2755  write (50,'((a))') &
2756  ' DeltaUV = --------, DeltaIR1 = --------, DeltaIR2 = --------'
2757  write (50,'((a))') &
2758  ' epsUV epsIR epsIR^2'
2759  else
2760  write (50,'((a))') &
2761  ' c(epsIR) c(epsIR)'
2762  write (50,'((a))') &
2763  ' DeltaIR1 = --------, DeltaIR2 = --------'
2764  write (50,'((a))') &
2765  ' epsIR epsIR^2'
2766  end if
2767  write (50,'((a))')
2768  write (50,'((a))') ' c(eps) = (4*pi)^eps\Gamma(1+eps), D = 4 -2*eps '
2769  write (50,'((a))')
2770  write (50,'((a))') ' you can freely choose the regularization parameters'
2771  if (rank.ge.rankuv) then
2772  write (50,'((a))') ' of UV origin: muUV2 = mu^2, DeltaUV '
2773  end if
2774  write (50,'((a))') ' of IR origin: muIR2 = mu^2, DeltaIR1, DeltaIR2'
2775  write (50,'((a))')
2776  write (50,'((a))') ' note:'
2777  write (50,'((a))') ' - we effectively factor out a factor c(eps) '
2778  if (rank.ge.rankuv) then
2779  write (50,'((a))') ' - by default DeltaUV = DeltaIR1 = DeltaIR2 = 0 '
2780  else
2781  write (50,'((a))') ' - by default DeltaIR1 = DeltaIR2 = 0 '
2782  end if
2783  write (50,'((a))') ' - suitable DeltaIR2 can be used to adapt the effective normalization'
2784 
2785  write (50,'((a))') ''
2786  write (50,'((a))') ' Results:'
2787 
2788  if (rank.gt.0) then
2789  do r=0,rank
2790  do n0=0,r/2
2791  do n1=0,r-2*n0
2792  do n2=0,r-2*n0-n1
2793  do n3=0,r-2*n0-n1-n2
2794  do n4=0,r-2*n0-n1-n2-n3
2795  n5 = r-2*n0-n1-n2-n3-n4
2796  write (50,fmt10) n0,n1,n2,n3,n4,n5,fcoeff(n0,n1,n2,n3,n4,n5)
2797  end do
2798  end do
2799  end do
2800  end do
2801  end do
2802  end do
2803 
2804  write (50,'(/(a))') ' Error estimates:'
2805  do r=0,rank
2806  write (50,fmt11) r,ferr(r)
2807  end do
2808  else
2809  write (50,fmt12) fcoeff(0,0,0,0,0,0)
2810  end if
2811 
2812  write(*,'(/(a),(a)/)') ' The result has been written to the file ' &
2813  ,trim(fname)
2814 

◆ writeresultf0()

subroutine demo::writeresultf0 ( integer, intent(in)  caseN,
integer, intent(in)  casei,
double complex, intent(in)  F0,
double complex, dimension(15), intent(in)  MomInv,
double complex, dimension(0:5), intent(in)  masses2 
)

Definition at line 2824 of file demo.f90.

2824  implicit none
2825 
2826  integer, intent(in) :: caseN,casei
2827  double complex, intent(in) :: F0
2828  double complex, intent(in) :: MomInv(15), masses2(0:5)
2829  double complex :: Fcoeff(0:0,0:0,0:0,0:0,0:0,0:0)
2830  double complex :: Fcoeffuv(0:0,0:0,0:0,0:0,0:0,0:0)
2831 
2832 
2833  fcoeff(0,0,0,0,0,0) = f0
2834  fcoeffuv(0,0,0,0,0,0) = 0d0
2835  call writeresultf(casen,casei,fcoeff,fcoeffuv,mominv,masses2,0)
2836 

◆ writeresultften()

subroutine demo::writeresultften ( integer, intent(in)  caseN,
integer, intent(in)  casei,
double complex, dimension(0:rank,0:rank,0:rank,0:rank), intent(in)  Ften,
double complex, dimension(0:rank,0:rank,0:rank,0:rank), intent(in)  Ftenuv,
double complex, dimension(0:3,1:5), intent(in)  MomVec,
double complex, dimension(15), intent(in)  MomInv,
double complex, dimension(0:5), intent(in)  masses2,
integer, intent(in)  rank,
double precision, dimension(0:rank), intent(in), optional  Ferr 
)

Definition at line 2850 of file demo.f90.

2850  implicit none
2851 
2852  integer, intent(in) :: rank,caseN,casei
2853  double precision, optional, intent(in) :: Ferr(0:rank)
2854  double complex, intent(in) :: MomVec(0:3,1:5), MomInv(15), masses2(0:5)
2855  double complex, intent(in) :: Ften(0:rank,0:rank,0:rank,0:rank)
2856  double complex, intent(in) :: Ftenuv(0:rank,0:rank,0:rank,0:rank)
2857  integer :: r,n0,n1,n2,n3,mode
2858  integer,parameter :: rankuv=8
2859  character(len=99) :: fname
2860  character(len=*),parameter :: fmt1 = "(A17,' = ',es23.16,' + i*',es23.16)"
2861  character(len=*),parameter :: fmt2 = "(A17,' = ',es23.16)"
2862  character(len=*),parameter :: fmt10 = "(' Ften(',i1,3(',',i1),') = ',es23.16,' + i*',es23.16)"
2863  character(len=*),parameter :: fmt11 = "(' Ferr(',i1,') = ',es23.16)"
2864  character(len=*),parameter :: fmt12 = "(' F0 = ',es23.16,' + i*',es23.16)"
2865 
2866 ! output file for result
2867  call getmode_cll(mode)
2868  select case (mode)
2869  case(1)
2870  fname = 'demo_6point_example00_coli.dat'
2871  case(2)
2872  fname = 'demo_6point_example00_dd.dat'
2873  case(3)
2874  fname = 'demo_6point_example00_comp.dat'
2875  end select
2876  write(fname(20:21),'(i2.2)') casei
2877 
2878 ! write(*,*) casei,fname
2879 
2880  open(unit=50,file=trim(fname),status='unknown')
2881 
2882  call getmuuv2_cll(muuv2)
2883  call getmuir2_cll(muir2)
2884  call getdeltauv_cll(deltauv)
2885  call getdeltair_cll(deltair1,deltair2)
2886 
2887  write (50,'(a37,i2,i3/)') ' Result for 6-point function, example',casen,casei
2888  write (50,'(a63,i2,i3,a)') ' The corresponding code can be found in demo.f90 under ''example',casen,casei,''''
2889  write (50,'((a))')
2890  write (50,'((a))') ' p42 '
2891  write (50,'((a))') ' ---------^--------- '
2892  write (50,'((a))') ' / \ '
2893  write (50,'((a))') ' m32,p3vec '
2894  write (50,'((a))') ' / p32 --------------------- p43 \ '
2895  write (50,'((a))') ' / / 3 \ \ '
2896  write (50,'((a))') ' p31 | m22,p2vec/2 4\ m42,p4vec | p53'
2897  write (50,'((a))') ' \ / \ / '
2898  write (50,'((a))') ' > p21 ----< >---- p54 < '
2899  write (50,'((a))') ' / \ / \ '
2900  write (50,'((a))') ' p20 | m12,p1vec\1 5/ m52,p5vec | p40'
2901  write (50,'((a))') ' \ \ 0 / / '
2902  write (50,'((a))') ' \ p10 --------------------- p50 / '
2903  write (50,'((a))') ' m02 '
2904  write (50,'((a))') ' \ / '
2905  write (50,'((a))') ' ---------v--------- '
2906  write (50,'((a))') ' p51 '
2907  write (50,'((a))') ''
2908  write (50,'((a))') ' Input:'
2909  write (50,fmt1) ' p1vec(0) ',momvec(0,1)
2910  write (50,fmt1) ' p1vec(1) ',momvec(1,1)
2911  write (50,fmt1) ' p1vec(2) ',momvec(2,1)
2912  write (50,fmt1) ' p1vec(3) ',momvec(3,1)
2913  write (50,fmt1) ' p2vec(0) ',momvec(0,2)
2914  write (50,fmt1) ' p2vec(1) ',momvec(1,2)
2915  write (50,fmt1) ' p2vec(2) ',momvec(2,2)
2916  write (50,fmt1) ' p2vec(3) ',momvec(3,2)
2917  write (50,fmt1) ' p3vec(0) ',momvec(0,3)
2918  write (50,fmt1) ' p3vec(1) ',momvec(1,3)
2919  write (50,fmt1) ' p3vec(2) ',momvec(2,3)
2920  write (50,fmt1) ' p3vec(3) ',momvec(3,3)
2921  write (50,fmt1) ' p4vec(0) ',momvec(0,4)
2922  write (50,fmt1) ' p4vec(1) ',momvec(1,4)
2923  write (50,fmt1) ' p4vec(2) ',momvec(2,4)
2924  write (50,fmt1) ' p4vec(3) ',momvec(3,4)
2925  write (50,fmt1) ' p5vec(0) ',momvec(0,5)
2926  write (50,fmt1) ' p5vec(1) ',momvec(1,5)
2927  write (50,fmt1) ' p5vec(2) ',momvec(2,5)
2928  write (50,fmt1) ' p5vec(3) ',momvec(3,5)
2929  write (50,fmt1) ' p10 ',mominv(1)
2930  write (50,fmt1) ' p21 ',mominv(2)
2931  write (50,fmt1) ' p32 ',mominv(3)
2932  write (50,fmt1) ' p43 ',mominv(4)
2933  write (50,fmt1) ' p54 ',mominv(5)
2934  write (50,fmt1) ' p50 ',mominv(6)
2935  write (50,fmt1) ' p20 ',mominv(7)
2936  write (50,fmt1) ' p31 ',mominv(8)
2937  write (50,fmt1) ' p42 ',mominv(9)
2938  write (50,fmt1) ' p53 ',mominv(10)
2939  write (50,fmt1) ' p40 ',mominv(11)
2940  write (50,fmt1) ' p51 ',mominv(12)
2941  write (50,fmt1) ' p30 ',mominv(13)
2942  write (50,fmt1) ' p41 ',mominv(14)
2943  write (50,fmt1) ' p52 ',mominv(15)
2944  write (50,fmt1) ' m02 ',masses2(0)
2945  write (50,fmt1) ' m12 ',masses2(1)
2946  write (50,fmt1) ' m22 ',masses2(2)
2947  write (50,fmt1) ' m32 ',masses2(3)
2948  write (50,fmt1) ' m42 ',masses2(4)
2949  write (50,fmt1) ' m52 ',masses2(5)
2950  if (rank.ge.rankuv) then
2951  write (50,fmt2) ' muUV2 ',muuv2
2952  end if
2953  write (50,fmt2) ' muIR2 ',muir2
2954  if (rank.ge.rankuv) then
2955  write (50,fmt2) ' deltaUV ',deltauv
2956  end if
2957  write (50,fmt2) ' DeltaIR1',deltair2
2958  write (50,fmt2) ' DeltaIR2',deltair1
2959  write (50,'((a))') ''
2960  write (50,'((a))') ' Conventions:'
2961  write (50,'((a))') ''
2962  if(rank.eq.0) then
2963  write (50,'((a))') ' (2*pi*mu)^(4-D) '
2964  write (50,'((a))') ' F0 = --------------- \int d^D q f(q,p_i)'
2965  write (50,'((a))') ' i*pi^2 '
2966 
2967  write (50,'((a))')
2968  write (50,'((a))') ' = F0_fin(muUV2,muIR2) + '// &
2969  ' a_IR2*[DeltaIR2 + DeltaIR1*ln(muIR2)] + a_IR1*DeltaIR1'
2970  elseif(rank.ge.rankuv) then
2971  write (50,'((a))') ' (2*pi*mu)^(4-D) '
2972  write (50,'((a))') ' F = --------------- \int d^D q f(q,p_i)'
2973  write (50,'((a))') ' i*pi^2 '
2974 
2975  write (50,'((a))')
2976  write (50,'((a))') ' = F_fin(muUV2,muIR2) + a_UV*DeltaUV + '// &
2977  ' a_IR2*[DeltaIR2 + DeltaIR1*ln(muIR2)] + a_IR1*DeltaIR1'
2978  else
2979  write (50,'((a))') ' (2*pi*mu)^(4-D) '
2980  write (50,'((a))') ' F = --------------- \int d^D q f(q,p_i)'
2981  write (50,'((a))') ' i*pi^2 '
2982 
2983  write (50,'((a))')
2984  write (50,'((a))') ' = F_fin(muUV2,muIR2) + '// &
2985  ' a_IR2*[DeltaIR2 + DeltaIR1*ln(muIR2)] + a_IR1*DeltaIR1'
2986  end if
2987  write (50,'((a))')
2988  write (50,'((a))') ' where'
2989  write (50,'((a))')
2990  if (rank.ge.rankuv) then
2991  write (50,'((a))') &
2992  ' c(epsUV) c(epsIR) c(epsIR)'
2993  write (50,'((a))') &
2994  ' DeltaUV = --------, DeltaIR1 = --------, DeltaIR2 = --------'
2995  write (50,'((a))') &
2996  ' epsUV epsIR epsIR^2'
2997  else
2998  write (50,'((a))') &
2999  ' c(epsIR) c(epsIR)'
3000  write (50,'((a))') &
3001  ' DeltaIR1 = --------, DeltaIR2 = --------'
3002  write (50,'((a))') &
3003  ' epsIR epsIR^2'
3004  end if
3005  write (50,'((a))')
3006  write (50,'((a))') ' c(eps) = (4*pi)^eps\Gamma(1+eps), D = 4 -2*eps '
3007  write (50,'((a))')
3008  write (50,'((a))') ' you can freely choose the regularization parameters'
3009  if (rank.ge.rankuv) then
3010  write (50,'((a))') ' of UV origin: muUV2 = mu^2, DeltaUV '
3011  end if
3012  write (50,'((a))') ' of IR origin: muIR2 = mu^2, DeltaIR1, DeltaIR2'
3013  write (50,'((a))')
3014  write (50,'((a))') ' note:'
3015  write (50,'((a))') ' - we effectively factor out a factor c(eps) '
3016  if (rank.ge.rankuv) then
3017  write (50,'((a))') ' - by default DeltaUV = DeltaIR1 = DeltaIR2 = 0 '
3018  else
3019  write (50,'((a))') ' - by default DeltaIR1 = DeltaIR2 = 0 '
3020  end if
3021  write (50,'((a))') ' - suitable DeltaIR2 can be used to adapt the effective normalization'
3022 
3023  write (50,'((a))') ''
3024  write (50,'((a))') ' Results:'
3025 
3026  if (rank.gt.0) then
3027  do r=0,rank
3028  do n0=0,r
3029  do n1=0,r-n0
3030  do n2=0,r-n0-n1
3031  n3=r-n0-n1-n2
3032  write (50,fmt10) n0,n1,n2,n3,ften(n0,n1,n2,n3)
3033  end do
3034  end do
3035  end do
3036  end do
3037 
3038  write (50,'(/(a))') ' Error estimates:'
3039  do r=0,rank
3040  write (50,fmt11) r,ferr(r)
3041  end do
3042  else
3043  write (50,fmt12) ften(0,0,0,0)
3044  end if
3045 
3046  write(*,'(/(a),(a)/)') ' The result has been written to the file ' &
3047  ,trim(fname)
3048 
writeresultb
subroutine writeresultb(caseN, casei, Bcoeff, Bcoeffuv, MomInv, masses2, rank, Berr)
Definition: demo.f90:1319
writeresultc
subroutine writeresultc(caseN, casei, Ccoeff, Ccoeffuv, MomInv, masses2, rank, Cerr)
Definition: demo.f90:1477
writeresultd
subroutine writeresultd(caseN, casei, Dcoeff, Dcoeffuv, MomInv, masses2, rank, Derr)
Definition: demo.f90:1840
writeresultf
subroutine writeresultf(caseN, casei, Fcoeff, Fcoeffuv, MomInv, masses2, rank, Ferr)
Definition: demo.f90:2632
writeresulta
subroutine writeresulta(caseN, casei, Acoeff, Acoeffuv, masses2, rank, Aerr)
Definition: demo.f90:1179
writeresulte
subroutine writeresulte(caseN, casei, Ecoeff, Ecoeffuv, MomInv, masses2, rank, Eerr)
Definition: demo.f90:2222
writeresultdb
subroutine writeresultdb(caseN, casei, DBcoeff, DBcoeffuv, MomInv, masses2, rankm, rank, DBerr)
Definition: demo.f90:3062