2
subroutine ffxdi(cd4pppp,cd4ppdel,cd4deldel, cd3ppp,cd3pdel,
3
+ cd2pp,cd2del, cd1p, dl2pij, cd0,cc0i,cb0ij,ca0i,
4
+ del4s,del3p,del2pi, xpi,piDpj, d0,xmu, degree, ier)
5
***#[*comment:***********************************************************
7
* Compute the tensor functions D1-D(degree) in the determinant *
8
* scheme, i.e. with basis p1-p3 and (instead of d_(mu,nu)) *
9
* \delta_{p1 p2 p3 mu}^{p1 p2 p3 nu}. *
11
* Input: cd0 (complex) D0 *
12
* cc0i(4) (complex) C0 with Ni=(Q+..)^2-mi^2 missing*
13
* cb0ij(4,4) (complex) B0 _with_ Ni,Nj (only for *
15
* ca0i(4) (complex) A0 with Ni (only for degree>2) *
16
* del4s (real) delta(s1,s2,s3,s4)(s1,s2,s3,s4) *
17
* (only needed when degree>1) *
18
* del3p (real) delta(p1,p2,p3,p1,p2,p3) *
19
* del2pi(4) (real) delta(pipj)(pi,pj) belonging to *
21
* xpi(13) (real) 1-4: mi^2, 5-10: p(i-4)^2 *
22
* piDpj(10,10) (re) pi.pj *
23
* d0 (real) \ renormalization constants *
24
* xmu (real) / used in B0, A0 *
25
* degree (integer) 1-4 *
26
* ier (integer) number of unreliable digits in *
29
* Output: ier number of digits lost in the *
30
* least stable result *
31
* dl2pij(6,6)(real) determinants delta(pi,pj,pk,pl) *
32
* cd1p(3) (complex) coeffs of p1,p2,p3 *
33
* only when degree>1: *
34
* cd2pp(3,3) (complex) coeffs of p1p1,(p1p2+p2p1),... *
35
* cd2del (complex) coeff of delta(p1,p2,p3,mu,..) *
36
* only when degree>2: *
37
* cd3ppp(3,3,3)(compl) coeffs of p1p1p1,p1(p1p2+p2p1), *
38
* (p1p2p3+p1p3p2+p2p1p3+p2p3p1+..)*
39
* cd3pdel(3) (complex) coeffs of pidel (symmetrized) *
40
* only when degree>3: *
41
* cd4pppp(3,3,3,3)(co) you guessed it! *
42
* cd4ppdel(3,3)(compl) *
43
* cd4deldel (complex) *
45
* Note: at this moment (28-feb-1993) only D1 and D2 are coded. *
47
***#]*comment:***********************************************************
54
DOUBLE PRECISION dl2pij(6,6),del4s,del3p,del2pi(4),xpi(13),
56
DOUBLE COMPLEX cd4pppp(3,3,3,3),cd4ppdel(3,3),cd4deldel,
57
+ cd3ppp(3,3,3),cd3pdel(3),cd2pp(3,3),cd2del,
58
+ cd1p(3),cd0,cc0i(4),cb0ij(4,4),ca0i(4)
62
integer i,j,k,ier0,ier1,ier2,inx43(6,4),sgn43(6,4),i2p(5:8,5:8),
65
DOUBLE PRECISION a,xpi3(6),xlosn,dl3qi(7),xmax,vgl,xnul
66
DOUBLE COMPLEX cc,cs(25),cnul
67
save inx43,sgn43,i2p,ii4
75
data inx43 /2,3,4,6,7,10,
79
data sgn43 /+1,+1,+1,+1,+1,-1,
87
data ii4 /5,6,7,8,9,10/
92
print *,'ffxdi: input:'
93
print *,' degree ',degree
97
if ( degree .gt. 2 ) then
98
print *,'ffxdi: degree > 2 not yet supported: ',degree
101
if ( del2pi(1).eq.0 .or. del2pi(2).eq.0 .or. del2pi(3).eq.0
102
+ .or. del2pi(4).eq.0 ) then
116
call ffxd0(cc,xpi,ier0)
120
xlosn = xloss*DBLE(10)**(-mod(ier0,50))
121
if ( xlosn*abs(cc-cd0) .gt. precc*abs(cd0) ) print *,
122
+ 'ffxdi: error: input D0 disagrees with recomputed: ',
123
+ cd0,cc,cd0-cc,ier,ier0
124
if ( xlosn*abs(del3p-fdel3) .gt. precx*abs(del3p) ) print *,
125
+ 'ffxdi: error: input del3p disagrees with recomputed: ',
126
+ del3p,fdel3,del3p-fdel3,ier,ier0
127
if ( xlosn*abs(del4s-fdel4s) .gt. precx*abs(del4s) ) print*,
128
+ 'ffxdi: error: input del4s disagrees with recomputed: ',
129
+ del4s,fdel4s,del4s-fdel4s,ier,ier0
132
if ( xlosn*abs(piDpj(j,i)-fpij4(j,i)) .gt. precx*
133
+ abs(piDpj(j,i)) ) print *,'ffxdi: error: input '
134
+ ,'piDpj(',j,i,') disagrees with recomputed: ',
135
+ piDpj(j,i),fpij4(j,i),piDpj(j,i)-fpij4(j,i)
143
xpi3(j) = xpi(inx43(j,i))
145
if ( idot.gt.0 ) then
147
* distribute dotproducts
149
fpij3(k,j) = fpij4(inx43(k,i),inx43(j,i))*
150
+ sgn43(k,i)*sgn43(j,i)
159
call ffxc0(cc,xpi3,ier0)
163
xlosn = xloss*DBLE(10)**(-mod(ier0,50))
164
if ( xlosn*abs(cc-cc0i(i)) .gt. precc*abs(cc0i(i)) )
165
+ print *,'ffxdi: error: input C0(',i,') disagrees ',
166
+ 'with recomputed: ',cc0i(i),cc,cc0i(i)-cc,ier,ier0
167
if ( xlosn*abs(del2pi(i)-fdel2) .gt. precx*abs(del2pi(i)
168
+ ) ) print *,'ffxdi: error: input del2pi(',i,
169
+ ') disagrees with recomputed: ',del2pi(i),fdel2,
175
if ( degree .lt. 2 ) goto 80
181
call ffxb0(cc,d0,xmu,xpi(inx(i,j)),xpi(i),xpi(j),
184
xlosn = xloss*DBLE(10)**(-mod(ier0,50))
185
if ( cb0ij(i,j) .ne. cb0ij(j,i) ) print *,
186
+ 'ffxdi: error: cb0ij(',i,j,') != cb0ij(',j,i,
187
+ ') : ',cb0ij(i,j),cb0ij(j,i)
188
if ( xlosn*abs(cc-cb0ij(i,j)) .gt. precc*abs(cb0ij(i
189
+ ,j)) ) print *,'ffxdi: error: input B0(',i,j,
190
+ ') disagrees with recomputed: ',cb0ij(i,j),cc,
191
+ cb0ij(i,j)-cc,ier,ier0
197
if ( degree .lt. 3 ) goto 80
202
call ffxa0(cc,d0,xmu,xpi(i),ier0)
204
xlosn = xloss*DBLE(10)**(-mod(ier0,50))
205
if ( xlosn*abs(cc-ca0i(i)) .gt. precc*abs(ca0i(i)) )
206
+ print *,'ffxdi: error: input A0(',i,') disagrees ',
207
+ 'with recomputed: ',ca0i(i),cc,ca0i(i)-cc,ier,ier0
211
if ( .not.ltest ) then
212
* to check when called from ffzfi, ffzei
214
xnul = piDpj(i,5) + piDpj(i,6) + piDpj(i,9)
215
xmax = max(abs(piDpj(i,6)),abs(piDpj(i,9)))
216
if ( xloss*abs(xnul).gt.precx*xmax ) then
217
print *,'ffxdi: error: i569 does not add up to 0: ',
218
+ i,piDpj(i,5),piDpj(i,6),piDpj(i,9),xnul,ier
220
xnul = piDpj(i,6) + piDpj(i,7) - piDpj(i,10)
221
xmax = max(abs(piDpj(i,7)),abs(piDpj(i,10)))
222
if ( xloss*abs(xnul).gt.precx*xmax ) then
223
print *,'ffxdi: error: i670 does not add up to 0: ',
224
+ i,piDpj(i,6),piDpj(i,7),piDpj(i,10),xnul,ier
226
xnul = piDpj(i,7) + piDpj(i,8) - piDpj(i,9)
227
xmax = max(abs(piDpj(i,8)),abs(piDpj(i,9)))
228
if ( xloss*abs(xnul).gt.precx*xmax ) then
229
print *,'ffxdi: error: i789 does not add up to 0: ',
230
+ i,piDpj(i,7),piDpj(i,8),piDpj(i,9),xnul,ier
232
xnul = piDpj(i,8) + piDpj(i,5) + piDpj(i,10)
233
xmax = max(abs(piDpj(i,5)),abs(piDpj(i,10)))
234
if ( xloss*abs(xnul).gt.precx*xmax ) then
235
print *,'ffxdi: error: i850 does not add up to 0: ',
236
+ i,piDpj(i,8),piDpj(i,5),piDpj(i,10),xnul,ier
240
call ffdl3p(vgl,piDpj,10,ii4,ii4,ier0)
241
xlosn = xloss*DBLE(10)**(-mod(ier0,50))
242
if ( xlosn*abs(del3p-vgl).gt.precx*abs(vgl) ) then
243
print *,'ffxdi: error: input del3p disagrees with '//
244
+ 'recomputed: ',del3p,vgl,del3p-vgl,ier,ier0
248
call ffdel2(vgl,piDpj,10,inx43(4,i),inx43(5,i),
250
xlosn = xloss*DBLE(10)**(-mod(ier0,50))
251
if ( xlosn*abs(del2pi(i)-vgl).gt.precx*abs(vgl) ) then
252
print *,'ffxdi: error: input del2pi(',i,
253
+ ') disagrees with recomputed: ',del2pi(i),vgl,
254
+ del2pi(i)-vgl,ier,ier0
258
if ( degree .le. 0 ) then
259
if ( ltest ) print *,'ffxdi: rather useless call to ffxdi'
264
* not needed? security first!
266
print *,'i2p(5,6) = ',i2p(5,6)
267
print *,'i2p(6,7) = ',i2p(6,7)
268
print *,'i2p(7,8) = ',i2p(7,8)
269
print *,'i2p(5,8) = ',i2p(5,8)
271
dl2pij(i2p(5,6),i2p(5,6)) = del2pi(4)
272
dl2pij(i2p(6,7),i2p(6,7)) = del2pi(1)
273
dl2pij(i2p(7,8),i2p(7,8)) = del2pi(2)
274
dl2pij(i2p(5,8),i2p(5,8)) = del2pi(3)
276
* #[ get determinants:
279
call ffdl2i(dl2pij(i2p(6,7),i2p(7,8)),piDpj,10,
280
+ 6,7,10,+1,7,8,9,+1,ier1)
281
dl2pij(i2p(7,8),i2p(6,7)) = dl2pij(i2p(6,7),i2p(7,8))
284
call ffdl2i(dl2pij(i2p(5,8),i2p(6,7)),piDpj,10,
285
+ 6,7,10,+1,5,8,10,-1,ier0)
286
ier1 = max(ier1,ier0)
287
dl2pij(i2p(6,7),i2p(5,8)) = dl2pij(i2p(5,8),i2p(6,7))
290
call ffdl2i(dl2pij(i2p(5,6),i2p(6,7)),piDpj,10,
291
+ 6,7,10,+1,5,6,9,-1,ier0)
292
ier1 = max(ier1,ier0)
293
dl2pij(i2p(6,7),i2p(5,6)) = dl2pij(i2p(5,6),i2p(6,7))
296
call ffdl2t(dl2pij(i2p(5,7),i2p(6,7)),piDpj,5,7,
297
+ 6,7,10,-1,-1, 10,ier0)
298
ier1 = max(ier1,ier0)
299
dl2pij(i2p(6,7),i2p(5,7)) = dl2pij(i2p(5,7),i2p(6,7))
302
call ffdl2t(dl2pij(i2p(5,7),i2p(7,8)),piDpj,5,7,
303
+ 7,8,9,-1,-1, 10,ier0)
304
ier1 = max(ier1,ier0)
305
dl2pij(i2p(7,8),i2p(5,7)) = dl2pij(i2p(5,7),i2p(7,8))
308
call ffdl2t(dl2pij(i2p(5,7),i2p(5,8)),piDpj,5,7,
309
+ 5,8,10,+1,-1, 10,ier0)
310
ier1 = max(ier1,ier0)
311
dl2pij(i2p(5,8),i2p(5,7)) = dl2pij(i2p(5,7),i2p(5,8))
314
call ffdl2t(dl2pij(i2p(5,6),i2p(5,7)),piDpj,5,7,
315
+ 5,6,9,+1,-1, 10,ier0)
316
ier1 = max(ier1,ier0)
317
dl2pij(i2p(5,7),i2p(5,6)) = dl2pij(i2p(5,6),i2p(5,7))
320
call ffdl2i(dl2pij(i2p(5,6),i2p(7,8)),piDpj,10,
321
+ 5,6,9,-1,7,8,9,+1,ier0)
322
ier1 = max(ier1,ier0)
323
dl2pij(i2p(7,8),i2p(5,6)) = dl2pij(i2p(5,6),i2p(7,8))
326
call ffdl2i(dl2pij(i2p(5,6),i2p(5,8)),piDpj,10,
327
+ 5,6,9,-1,5,8,10,-1,ier0)
328
ier1 = max(ier1,ier0)
329
dl2pij(i2p(5,8),i2p(5,6)) = dl2pij(i2p(5,6),i2p(5,8))
332
call ffdl3q(dl3qi(i2p(6,7)),piDpj, 1,6,7, 0,10,0, 0,-1,0,
334
ier1 = max(ier1,ier0)
337
call ffdl3q(dl3qi(i2p(5,7)),piDpj, 1,5,7, 2,0,0, -1,0,0,
339
ier1 = max(ier1,ier0)
342
call ffdl3q(dl3qi(i2p(5,6)),piDpj, 1,2,3, 5,6,9, +1,+1,+1,
344
ier1 = max(ier1,ier0)
346
if ( degree.gt.1 ) then
349
call ffdl3q(dl3qi(i2p(5,8)),piDpj, 1,5,8, 2,10,4, -1,-1,+1,
351
ier1 = max(ier1,ier0)
354
call ffdl3q(dl3qi(i2p(7,8)),piDpj, 3,4,1, 7,8,10, +1,+1,+1,
356
ier1 = max(ier1,ier0)
359
call ffdl3q(dl3qi(7),piDpj, 2,3,4, 6,7,10, +1,+1,+1,
361
ier1 = max(ier1,ier0)
365
if ( lwrite ) print *,'ier after determinants = ',ier
367
* #] get determinants:
371
* see the Form job D1.frm
373
if ( lwrite ) print *,'ffxdi: D11'
374
cs(1) = - cc0i(1)*DBLE(del2pi(1))
375
cs(2) = + cc0i(2)*DBLE(dl2pij(i2p(6,7),i2p(7,8)))
376
cs(3) = + cc0i(3)*DBLE(dl2pij(i2p(5,8),i2p(6,7)))
377
cs(4) = + cc0i(4)*DBLE(dl2pij(i2p(5,6),i2p(6,7)))
378
cs(5) = + 2*cd0*DBLE(dl3qi(i2p(6,7)))
383
cd1p(1) = cd1p(1) + cs(i)
387
if ( lwarn .and. abs(cd1p(1)) .lt. xloss*xmax ) then
389
call ffwarn(164,ier1,a,xmax)
390
if ( lwrite ) print *,'cs,cd1p(1) = ',(cs(i),i=1,5),cd1p(1)
392
cd1p(1) = cd1p(1)*(1/DBLE(2*del3p))
397
if ( lwrite ) print *,'ffxdi: D12'
398
cs(1) = + cc0i(1)*DBLE(dl2pij(i2p(5,7),i2p(6,7)))
399
cs(2) = - cc0i(2)*DBLE(dl2pij(i2p(5,7),i2p(7,8)))
400
cs(3) = - cc0i(3)*DBLE(dl2pij(i2p(5,7),i2p(5,8)))
401
cs(4) = - cc0i(4)*DBLE(dl2pij(i2p(5,6),i2p(5,7)))
402
cs(5) = - 2*cd0*DBLE(dl3qi(i2p(5,7)))
407
cd1p(2) = cd1p(2) + cs(i)
411
if ( lwarn .and. abs(cd1p(2)) .lt. xloss*xmax ) then
414
call ffwarn(164,ier0,a,xmax)
415
ier1 = max(ier1,ier0)
416
if ( lwrite ) print *,'cs,cd1p(2) = ',(cs(i),i=1,5),cd1p(2)
418
cd1p(2) = cd1p(2)*(1/DBLE(2*del3p))
423
if ( lwrite ) print *,'ffxdi: D13'
424
cs(1) = - cc0i(1)*DBLE(dl2pij(i2p(5,6),i2p(6,7)))
425
cs(2) = + cc0i(2)*DBLE(dl2pij(i2p(5,6),i2p(7,8)))
426
cs(3) = + cc0i(3)*DBLE(dl2pij(i2p(5,6),i2p(5,8)))
427
cs(4) = + cc0i(4)*DBLE(del2pi(4))
428
cs(5) = + 2*cd0*DBLE(dl3qi(i2p(5,6)))
433
cd1p(3) = cd1p(3) + cs(i)
437
if ( lwarn .and. abs(cd1p(3)) .lt. xloss*xmax ) then
440
call ffwarn(164,ier0,a,xmax)
441
ier1 = max(ier1,ier0)
442
if ( lwrite ) print *,'cs,cd1p(3) = ',(cs(i),i=1,5),cd1p(3)
444
cd1p(3) = cd1p(3)*(1/DBLE(2*del3p))
451
print '(6e20.13)',cd1p
452
print *,'ier = ',ier1
455
if ( degree .eq. 1 ) then
462
* see the form job d2.frm
466
if ( lwrite ) print *,'ffxdi: D2del'
467
cs(1) = -2*DBLE(del4s)*cd0
468
cs(2) = +DBLE(dl3qi(i2p(5,6)))*cc0i(4)
469
cs(3) = +DBLE(dl3qi(i2p(5,8)))*cc0i(3)
470
cs(4) = +DBLE(dl3qi(i2p(7,8)))*cc0i(2)
471
cs(5) = -DBLE(dl3qi(7))*cc0i(1)
476
cd2del = cd2del + cs(i)
480
if ( lwarn .and. abs(cd2del) .lt. xloss*xmax ) then
483
call ffwarn(189,ier0,a,xmax)
484
ier1 = max(ier1,ier0)
485
if ( lwrite ) print *,'cs,cd2del = ',(cs(i),i=1,5),cd2del
487
cd2del = cd2del*DBLE(1/(-2*Del3p**2))
492
if ( lwrite ) print *,'D2pp(1,1)'
493
cs(1) = -cb0ij(1,2)*DBLE(dl2pij(i2p(5,6),i2p(6,7))*piDpj(5,6)*
495
cs(2) = -cb0ij(1,2)*DBLE(dl2pij(i2p(5,8),i2p(6,7))*piDpj(5,10)*
497
cs(3) = -cb0ij(1,3)*DBLE(dl2pij(i2p(5,6),i2p(6,7))*piDpj(6,9)*
499
cs(4) = +cb0ij(1,3)*DBLE(dl2pij(i2p(6,7),i2p(7,8))*piDpj(7,9)*
501
cs(5) = -cb0ij(1,4)*DBLE(dl2pij(i2p(5,8),i2p(6,7))*piDpj(8,10)*
503
cs(6) = -cb0ij(1,4)*DBLE(dl2pij(i2p(6,7),i2p(7,8))*piDpj(7,8)*
505
cs(7) = -cb0ij(2,3)*DBLE(dl2pij(i2p(5,6),i2p(6,7))*piDpj(6,6)*
507
cs(8) = -cb0ij(2,4)*DBLE(dl2pij(i2p(5,8),i2p(6,7))*piDpj(10,10)*
509
cs(9) = -cb0ij(3,4)*DBLE(dl2pij(i2p(6,7),i2p(7,8))*piDpj(7,7)*
511
cs(10) = -4*cc0i(1)*DBLE(dl3qi(i2p(6,7))*del2pi(1))
512
cs(11) = +2*cc0i(1)*DBLE(dl3qi(7)*del2pi(1))
513
cs(12) = -2*cc0i(2)*DBLE(dl2pij(i2p(6,7),i2p(7,8))*
514
+ dl2pij(i2p(6,7),i2p(7,8))*dl3qi(i2p(7,8))/del2pi(2))
515
cs(13) = +4*cc0i(2)*DBLE(dl2pij(i2p(6,7),i2p(7,8))*
517
cs(14) = -2*cc0i(3)*DBLE(dl2pij(i2p(5,8),i2p(6,7))*
518
+ dl2pij(i2p(5,8),i2p(6,7))*dl3qi(i2p(5,8))/del2pi(3))
519
cs(15) = +4*cc0i(3)*DBLE(dl2pij(i2p(5,8),i2p(6,7))*
521
cs(16) = -2*cc0i(4)*DBLE(dl2pij(i2p(5,6),i2p(6,7))*
522
+ dl2pij(i2p(5,6),i2p(6,7))*dl3qi(i2p(5,6))/del2pi(4))
523
cs(17) = +4*cc0i(4)*DBLE(dl2pij(i2p(5,6),i2p(6,7))*
525
cs(18) = +4*cd0*DBLE(dl3qi(i2p(6,7))*dl3qi(i2p(6,7)))
530
cd2pp(1,1) = cd2pp(1,1) + cs(i)
534
if ( lwarn .and. abs(cd2pp(1,1)) .lt. xloss*xmax ) then
537
call ffwarn(190,ier0,a,xmax)
538
ier1 = max(ier1,ier0)
539
if ( lwrite ) print *,'cs,cd2pp(1,1) = ',(cs(i),i=1,18),
542
cd2pp(1,1) = cd2pp(1,1)*DBLE(1/(4*Del3p**2))
547
if ( lwrite ) print *,'D2pp(1,2)'
548
cs(1)=+cb0ij(1,2)*DBLE(dl2pij(i2p(5,6),i2p(5,7))*piDpj(5,
549
+ 6)*del3p/del2pi(4))
550
cs(2)=+cb0ij(1,2)*DBLE(dl2pij(i2p(5,7),i2p(5,8))*piDpj(5,
551
+ 10)*del3p/del2pi(3))
552
cs(3)=+cb0ij(1,3)*DBLE(dl2pij(i2p(5,6),i2p(5,7))*piDpj(6,
553
+ 9)*del3p/del2pi(4))
554
cs(4)=-cb0ij(1,3)*DBLE(dl2pij(i2p(5,7),i2p(7,8))*piDpj(7,
555
+ 9)*del3p/del2pi(2))
556
cs(5)=+cb0ij(1,4)*DBLE(dl2pij(i2p(5,7),i2p(5,8))*piDpj(8,
557
+ 10)*del3p/del2pi(3))
558
cs(6)=+cb0ij(1,4)*DBLE(dl2pij(i2p(5,7),i2p(7,8))*piDpj(7,
559
+ 8)*del3p/del2pi(2))
560
cs(7)=+cb0ij(2,3)*DBLE(dl2pij(i2p(5,6),i2p(5,7))*piDpj(6,
561
+ 6)*del3p/del2pi(4))
562
cs(8)=+cb0ij(2,4)*DBLE(dl2pij(i2p(5,8),i2p(6,7))*piDpj(5,
563
+ 10)*del3p/del2pi(3))
564
cs(9)=-cb0ij(2,4)*DBLE(piDpj(7,10)*del3p)
565
cs(10)=+cb0ij(3,4)*DBLE(dl2pij(i2p(5,7),i2p(7,8))*piDpj(7,
566
+ 7)*del3p/del2pi(2))
567
cs(11)=-2*cc0i(1)*DBLE(dl2pij(i2p(5,7),i2p(6,7))*del3p)
568
cs(12)=+2*cc0i(1)*DBLE(dl3qi(i2p(5,7))*del2pi(1))
569
cs(13)=+2*cc0i(2)*DBLE(dl2pij(i2p(5,7),i2p(7,8))*dl2pij(i2p(6,
570
+ 7),i2p(7,8))*dl3qi(i2p(7,8))/del2pi(2))
571
cs(14)=-2*cc0i(2)*DBLE(dl2pij(i2p(5,7),i2p(7,8))*dl3qi(i2p(6,
573
cs(15)=-2*cc0i(2)*DBLE(dl2pij(i2p(6,7),i2p(7,8))*dl3qi(i2p(5,
575
cs(16)=+2*cc0i(3)*DBLE(dl2pij(i2p(5,7),i2p(5,8))*dl2pij(i2p(5,
576
+ 8),i2p(6,7))*dl3qi(i2p(5,8))/del2pi(3))
577
cs(17)=-2*cc0i(3)*DBLE(dl2pij(i2p(5,7),i2p(5,8))*dl3qi(i2p(6,
579
cs(18)=-2*cc0i(3)*DBLE(dl2pij(i2p(5,8),i2p(6,7))*dl3qi(i2p(5,
581
cs(19)=+2*cc0i(4)*DBLE(dl2pij(i2p(5,6),i2p(5,7))*dl2pij(i2p(5,
582
+ 6),i2p(6,7))*dl3qi(i2p(5,6))/del2pi(4))
583
cs(20)=-2*cc0i(4)*DBLE(dl2pij(i2p(5,6),i2p(5,7))*dl3qi(i2p(6,
585
cs(21)=-2*cc0i(4)*DBLE(dl2pij(i2p(5,6),i2p(6,7))*dl3qi(i2p(5,
587
cs(22)=-4*cd0*DBLE(dl3qi(i2p(5,7))*dl3qi(i2p(6,7)))
592
cd2pp(1,2) = cd2pp(1,2) + cs(i)
596
if ( lwarn .and. abs(cd2pp(1,2)) .lt. xloss*xmax ) then
599
call ffwarn(190,ier0,a,xmax)
600
ier1 = max(ier1,ier0)
601
if ( lwrite ) print *,'cs,cd2pp(1,2) = ',(cs(i),i=1,22),
604
cd2pp(1,2) = cd2pp(1,2)*DBLE(1/(4*Del3p**2))
605
cd2pp(2,1) = cd2pp(1,2)
610
if ( lwrite ) print *,'D2pp(1,3)'
611
cs(1)=-cb0ij(1,2)*DBLE(dl2pij(i2p(5,6),i2p(5,8))*piDpj(5,
612
+ 10)*del3p/del2pi(3))
613
cs(2)=-cb0ij(1,2)*DBLE(piDpj(5,6)*del3p)
614
cs(3)=+cb0ij(1,3)*DBLE(dl2pij(i2p(5,6),i2p(7,8))*piDpj(7,
615
+ 9)*del3p/del2pi(2))
616
cs(4)=-cb0ij(1,3)*DBLE(piDpj(6,9)*del3p)
617
cs(5)=-cb0ij(1,4)*DBLE(dl2pij(i2p(5,6),i2p(5,8))*piDpj(8,
618
+ 10)*del3p/del2pi(3))
619
cs(6)=-cb0ij(1,4)*DBLE(dl2pij(i2p(5,6),i2p(7,8))*piDpj(7,
620
+ 8)*del3p/del2pi(2))
621
cs(7)=-cb0ij(2,3)*DBLE(piDpj(6,6)*del3p)
622
cs(8)=-cb0ij(2,4)*DBLE(dl2pij(i2p(5,6),i2p(5,8))*piDpj(10,
623
+ 10)*del3p/del2pi(3))
624
cs(9)=-cb0ij(3,4)*DBLE(dl2pij(i2p(5,6),i2p(7,8))*piDpj(7,
625
+ 7)*del3p/del2pi(2))
626
cs(10)=+2*cc0i(1)*DBLE(dl2pij(i2p(5,6),i2p(6,7))*del3p)
627
cs(11)=-2*cc0i(1)*DBLE(dl3qi(i2p(5,6))*del2pi(1))
628
cs(12)=-2*cc0i(2)*DBLE(dl2pij(i2p(5,6),i2p(7,8))*dl2pij(i2p(6,
629
+ 7),i2p(7,8))*dl3qi(i2p(7,8))/del2pi(2))
630
cs(13)=+2*cc0i(2)*DBLE(dl2pij(i2p(5,6),i2p(7,8))*dl3qi(i2p(6,
632
cs(14)=+2*cc0i(2)*DBLE(dl2pij(i2p(6,7),i2p(7,8))*dl3qi(i2p(5,
634
cs(15)=-2*cc0i(3)*DBLE(dl2pij(i2p(5,6),i2p(5,8))*dl2pij(i2p(5,
635
+ 8),i2p(6,7))*dl3qi(i2p(5,8))/del2pi(3))
636
cs(16)=+2*cc0i(3)*DBLE(dl2pij(i2p(5,6),i2p(5,8))*dl3qi(i2p(6,
638
cs(17)=+2*cc0i(3)*DBLE(dl2pij(i2p(5,8),i2p(6,7))*dl3qi(i2p(5,
640
cs(18)=+2*cc0i(4)*DBLE(dl3qi(i2p(6,7))*del2pi(4))
641
cs(19)=+4*cd0*DBLE(dl3qi(i2p(5,6))*dl3qi(i2p(6,7)))
646
cd2pp(1,3) = cd2pp(1,3) + cs(i)
650
if ( lwarn .and. abs(cd2pp(1,3)) .lt. xloss*xmax ) then
653
call ffwarn(190,ier0,a,xmax)
654
ier1 = max(ier1,ier0)
655
if ( lwrite ) print *,'cs,cd2pp(1,3) = ',(cs(i),i=1,19),
658
cd2pp(1,3) = cd2pp(1,3)*DBLE(1/(4*Del3p**2))
659
cd2pp(3,1) = cd2pp(1,3)
664
if ( lwrite ) print *,'D2pp(2,2)'
665
cs(1)=-cb0ij(1,2)*DBLE(dl2pij(i2p(5,6),i2p(5,7))*piDpj(5,
666
+ 5)*del3p/del2pi(4))
667
cs(2)=-cb0ij(1,2)*DBLE(dl2pij(i2p(5,7),i2p(5,8))*piDpj(5,
668
+ 5)*del3p/del2pi(3))
669
cs(3)=-cb0ij(1,3)*DBLE(dl2pij(i2p(5,6),i2p(5,7))*piDpj(5,
670
+ 9)*del3p/del2pi(4))
671
cs(4)=-cb0ij(1,3)*DBLE(dl2pij(i2p(5,7),i2p(7,8))*piDpj(7,
672
+ 9)*del3p/del2pi(2))
673
cs(5)=-cb0ij(1,4)*DBLE(dl2pij(i2p(5,7),i2p(5,8))*piDpj(5,
674
+ 8)*del3p/del2pi(3))
675
cs(6)=+cb0ij(1,4)*DBLE(dl2pij(i2p(5,7),i2p(7,8))*piDpj(7,
676
+ 8)*del3p/del2pi(2))
677
cs(7)=-cb0ij(2,3)*DBLE(dl2pij(i2p(5,6),i2p(5,7))*piDpj(5,
678
+ 6)*del3p/del2pi(4))
679
cs(8)=-cb0ij(2,3)*DBLE(dl2pij(i2p(5,7),i2p(6,7))*piDpj(6,
680
+ 7)*del3p/del2pi(1))
681
cs(9)=-cb0ij(2,4)*DBLE(dl2pij(i2p(5,7),i2p(5,8))*piDpj(5,
682
+ 10)*del3p/del2pi(3))
683
cs(10)=+cb0ij(2,4)*DBLE(dl2pij(i2p(5,7),i2p(6,7))*piDpj(7,
684
+ 10)*del3p/del2pi(1))
685
cs(11)=-cb0ij(3,4)*DBLE(dl2pij(i2p(5,7),i2p(6,7))*piDpj(7,
686
+ 7)*del3p/del2pi(1))
687
cs(12)=+cb0ij(3,4)*DBLE(dl2pij(i2p(5,7),i2p(7,8))*piDpj(7,
688
+ 7)*del3p/del2pi(2))
689
cs(13)=+2*cc0i(1)*DBLE(dl2pij(i2p(5,7),i2p(6,7))*dl2pij(i2p(5,
690
+ 7),i2p(6,7))*dl3qi(7)/del2pi(1))
691
cs(14)=-4*cc0i(1)*DBLE(dl2pij(i2p(5,7),i2p(6,7))*dl3qi(i2p(5,
693
cs(15)=-2*cc0i(2)*DBLE(dl2pij(i2p(5,7),i2p(7,8))*dl2pij(i2p(5,
694
+ 7),i2p(7,8))*dl3qi(i2p(7,8))/del2pi(2))
695
cs(16)=+4*cc0i(2)*DBLE(dl2pij(i2p(5,7),i2p(7,8))*dl3qi(i2p(5,
697
cs(17)=-2*cc0i(3)*DBLE(dl2pij(i2p(5,7),i2p(5,8))*dl2pij(i2p(5,
698
+ 7),i2p(5,8))*dl3qi(i2p(5,8))/del2pi(3))
699
cs(18)=+4*cc0i(3)*DBLE(dl2pij(i2p(5,7),i2p(5,8))*dl3qi(i2p(5,
701
cs(19)=-2*cc0i(4)*DBLE(dl2pij(i2p(5,6),i2p(5,7))*dl2pij(i2p(5,
702
+ 6),i2p(5,7))*dl3qi(i2p(5,6))/del2pi(4))
703
cs(20)=+4*cc0i(4)*DBLE(dl2pij(i2p(5,6),i2p(5,7))*dl3qi(i2p(5,
705
cs(21)=+4*cd0*DBLE(dl3qi(i2p(5,7))*dl3qi(i2p(5,7)))
710
cd2pp(2,2) = cd2pp(2,2) + cs(i)
714
if ( lwarn .and. abs(cd2pp(2,2)) .lt. xloss*xmax ) then
717
call ffwarn(190,ier0,a,xmax)
718
ier1 = max(ier1,ier0)
719
if ( lwrite ) print *,'cs,cd2pp(2,2) = ',(cs(i),i=1,21),
722
cd2pp(2,2) = cd2pp(2,2)*DBLE(1/(4*Del3p**2))
727
if ( lwrite ) print *,'D2pp(2,3)'
729
cs(1)=+cb0ij(1,2)*DBLE(dl2pij(i2p(5,6),i2p(5,8))*piDpj(5,
730
+ 5)*del3p/del2pi(3))
731
cs(2)=+cb0ij(1,2)*DBLE(piDpj(5,5)*del3p)
732
cs(3)=+cb0ij(1,3)*DBLE(dl2pij(i2p(5,6),i2p(7,8))*piDpj(7,
733
+ 9)*del3p/del2pi(2))
734
cs(4)=+cb0ij(1,3)*DBLE(piDpj(5,9)*del3p)
735
cs(5)=+cb0ij(1,4)*DBLE(dl2pij(i2p(5,6),i2p(5,8))*piDpj(5,
736
+ 8)*del3p/del2pi(3))
737
cs(6)=-cb0ij(1,4)*DBLE(dl2pij(i2p(5,6),i2p(7,8))*piDpj(7,
738
+ 8)*del3p/del2pi(2))
739
cs(7)=+cb0ij(2,3)*DBLE(dl2pij(i2p(5,6),i2p(6,7))*piDpj(6,
740
+ 7)*del3p/del2pi(1))
741
cs(8)=+cb0ij(2,3)*DBLE(piDpj(5,6)*del3p)
742
cs(9)=+cb0ij(2,4)*DBLE(dl2pij(i2p(5,6),i2p(5,8))*piDpj(5,
743
+ 10)*del3p/del2pi(3))
744
cs(10)=-cb0ij(2,4)*DBLE(dl2pij(i2p(5,6),i2p(6,7))*piDpj(7,
745
+ 10)*del3p/del2pi(1))
746
cs(11)=+cb0ij(3,4)*DBLE(dl2pij(i2p(5,6),i2p(6,7))*piDpj(7,
747
+ 7)*del3p/del2pi(1))
748
cs(12)=-cb0ij(3,4)*DBLE(dl2pij(i2p(5,6),i2p(7,8))*piDpj(7,
749
+ 7)*del3p/del2pi(2))
750
cs(13)=-2*cc0i(1)*DBLE(dl2pij(i2p(5,6),i2p(6,7))*dl2pij(i2p(5,
751
+ 7),i2p(6,7))*dl3qi(7)/del2pi(1))
752
cs(14)=+2*cc0i(1)*DBLE(dl2pij(i2p(5,6),i2p(6,7))*dl3qi(i2p(5,
754
cs(15)=+2*cc0i(1)*DBLE(dl2pij(i2p(5,7),i2p(6,7))*dl3qi(i2p(5,
756
cs(16)=+2*cc0i(2)*DBLE(dl2pij(i2p(5,6),i2p(7,8))*dl2pij(i2p(5,
757
+ 7),i2p(7,8))*dl3qi(i2p(7,8))/del2pi(2))
758
cs(17)=-2*cc0i(2)*DBLE(dl2pij(i2p(5,6),i2p(7,8))*dl3qi(i2p(5,
760
cs(18)=-2*cc0i(2)*DBLE(dl2pij(i2p(5,7),i2p(7,8))*dl3qi(i2p(5,
762
cs(19)=+2*cc0i(3)*DBLE(dl2pij(i2p(5,6),i2p(5,8))*dl2pij(i2p(5,
763
+ 7),i2p(5,8))*dl3qi(i2p(5,8))/del2pi(3))
764
cs(20)=-2*cc0i(3)*DBLE(dl2pij(i2p(5,6),i2p(5,8))*dl3qi(i2p(5,
766
cs(21)=-2*cc0i(3)*DBLE(dl2pij(i2p(5,7),i2p(5,8))*dl3qi(i2p(5,
768
cs(22)=-2*cc0i(4)*DBLE(dl3qi(i2p(5,7))*del2pi(4))
769
cs(23)=-4*cd0*DBLE(dl3qi(i2p(5,6))*dl3qi(i2p(5,7)))
774
cd2pp(2,3) = cd2pp(2,3) + cs(i)
778
if ( lwarn .and. abs(cd2pp(2,3)) .lt. xloss*xmax ) then
781
call ffwarn(190,ier0,a,xmax)
782
ier1 = max(ier1,ier0)
783
if ( lwrite ) print *,'cs,cd2pp(2,3) = ',(cs(i),i=1,23),
786
cd2pp(2,3) = cd2pp(2,3)*DBLE(1/(4*Del3p**2))
787
cd2pp(3,2) = cd2pp(2,3)
792
if ( lwrite ) print *,'D2pp(3,3)'
793
cs(1)=+cb0ij(1,2)*DBLE(dl2pij(i2p(5,6),i2p(5,8))*piDpj(5,
794
+ 5)*del3p/del2pi(3))
795
cs(2)=+cb0ij(1,3)*DBLE(dl2pij(i2p(5,6),i2p(7,8))*piDpj(9,
796
+ 9)*del3p/del2pi(2))
797
cs(3)=+cb0ij(1,4)*DBLE(dl2pij(i2p(5,6),i2p(5,8))*piDpj(5,
798
+ 8)*del3p/del2pi(3))
799
cs(4)=-cb0ij(1,4)*DBLE(dl2pij(i2p(5,6),i2p(7,8))*piDpj(8,
800
+ 9)*del3p/del2pi(2))
801
cs(5)=-cb0ij(2,3)*DBLE(dl2pij(i2p(5,6),i2p(6,7))*piDpj(6,
802
+ 6)*del3p/del2pi(1))
803
cs(6)=+cb0ij(2,4)*DBLE(dl2pij(i2p(5,6),i2p(5,8))*piDpj(5,
804
+ 10)*del3p/del2pi(3))
805
cs(7)=+cb0ij(2,4)*DBLE(dl2pij(i2p(5,6),i2p(6,7))*piDpj(6,
806
+ 10)*del3p/del2pi(1))
807
cs(8)=-cb0ij(3,4)*DBLE(dl2pij(i2p(5,6),i2p(6,7))*piDpj(6,
808
+ 7)*del3p/del2pi(1))
809
cs(9)=-cb0ij(3,4)*DBLE(dl2pij(i2p(5,6),i2p(7,8))*piDpj(7,
810
+ 9)*del3p/del2pi(2))
811
cs(10)=+2*cc0i(1)*DBLE(dl2pij(i2p(5,6),i2p(6,7))*dl2pij(i2p(5,
812
+ 6),i2p(6,7))*dl3qi(7)/del2pi(1))
813
cs(11)=-4*cc0i(1)*DBLE(dl2pij(i2p(5,6),i2p(6,7))*dl3qi(i2p(5,
815
cs(12)=-2*cc0i(2)*DBLE(dl2pij(i2p(5,6),i2p(7,8))*dl2pij(i2p(5,
816
+ 6),i2p(7,8))*dl3qi(i2p(7,8))/del2pi(2))
817
cs(13)=+4*cc0i(2)*DBLE(dl2pij(i2p(5,6),i2p(7,8))*dl3qi(i2p(5,
819
cs(14)=-2*cc0i(3)*DBLE(dl2pij(i2p(5,6),i2p(5,8))*dl2pij(i2p(5,
820
+ 6),i2p(5,8))*dl3qi(i2p(5,8))/del2pi(3))
821
cs(15)=+4*cc0i(3)*DBLE(dl2pij(i2p(5,6),i2p(5,8))*dl3qi(i2p(5,
823
cs(16)=+2*cc0i(4)*DBLE(dl3qi(i2p(5,6))*del2pi(4))
824
cs(17)=+4*cd0*DBLE(dl3qi(i2p(5,6))*dl3qi(i2p(5,6)))
829
cd2pp(3,3) = cd2pp(3,3) + cs(i)
833
if ( lwarn .and. abs(cd2pp(3,3)) .lt. xloss*xmax ) then
836
call ffwarn(190,ier0,a,xmax)
837
ier1 = max(ier1,ier0)
838
if ( lwrite ) print *,'cs,cd2pp(3,3) = ',(cs(i),i=1,17),
841
cd2pp(3,3) = cd2pp(3,3)*DBLE(1/(4*Del3p**2))
846
print '(a,2e20.13)','cd2del = ',cd2del
847
print '(a)','cd2pp = '
848
print '(6e20.13)',cd2pp
849
print *,'ier = ',ier1
852
xlosn = xloss*DBLE(10)**(-2-mod(ier1,50))
853
cs(1) = DBLE(piDpj(5,5))*cd2pp(1,1)
854
cs(2) = 2*DBLE(piDpj(5,6))*cd2pp(1,2)
855
cs(3) = 2*DBLE(piDpj(5,7))*cd2pp(1,3)
856
cs(4) = DBLE(piDpj(6,6))*cd2pp(2,2)
857
cs(5) = 2*DBLE(piDpj(6,7))*cd2pp(2,3)
858
cs(6) = DBLE(piDpj(7,7))*cd2pp(3,3)
859
cs(7) = DBLE(del3p)*cd2del
861
cs(9) = - DBLE(piDpj(1,1))*cd0
869
if ( lwrite ) print *,'ffxdi: checking D2.gmumu= ',cnul,xmax
870
if ( xlosn*abs(cnul) .gt. precc*xmax ) print *,'ffxdi: ',
871
+ 'error: D2(mu,mu) not correct ',cnul,xmax,ier1
872
cs(1) = 4*DBLE(piDpj(5,5)*piDpj(7,5))*cd2pp(1,1)
873
cs(2) = 4*DBLE(piDpj(5,5)*piDpj(7,6))*cd2pp(1,2)
874
cs(3) = 4*DBLE(piDpj(5,6)*piDpj(7,5))*cd2pp(1,2)
875
cs(4) = 4*DBLE(piDpj(5,5)*piDpj(7,7))*cd2pp(1,3)
876
cs(5) = 4*DBLE(piDpj(5,7)*piDpj(7,5))*cd2pp(1,3)
877
cs(6) = 4*DBLE(piDpj(5,6)*piDpj(7,6))*cd2pp(2,2)
878
cs(7) = 4*DBLE(piDpj(5,6)*piDpj(7,7))*cd2pp(2,3)
879
cs(8) = 4*DBLE(piDpj(5,7)*piDpj(7,6))*cd2pp(2,3)
880
cs(9) = 4*DBLE(piDpj(5,7)*piDpj(7,7))*cd2pp(3,3)
885
cs(14)= - 2*DBLE(piDpj(1,7))*cc0i(2)
886
cs(15)= + 2*DBLE(piDpj(1,7))*cc0i(1)
887
cs(16)= - 2*DBLE(piDpj(1,5))*cc0i(4)
888
cs(17)= + 2*DBLE(piDpj(1,5))*cc0i(3)
889
cs(18)= - 4*DBLE(piDpj(1,5)*piDpj(1,7))*cd0
897
if ( lwrite ) print *,'ffxdi: checking D2.p1p3 = ',cnul,xmax
898
if ( xlosn*abs(cnul) .gt. precc*xmax ) print *,'ffxdi :',
899
+ 'error: D2(p1,p3) not correct ',cnul,xmax,ier1
900
cs(1) = 4*DBLE(piDpj(6,5)*piDpj(8,5))*cd2pp(1,1)
901
cs(2) = 4*DBLE(piDpj(6,5)*piDpj(8,6))*cd2pp(1,2)
902
cs(3) = 4*DBLE(piDpj(6,6)*piDpj(8,5))*cd2pp(1,2)
903
cs(4) = 4*DBLE(piDpj(6,5)*piDpj(8,7))*cd2pp(1,3)
904
cs(5) = 4*DBLE(piDpj(6,7)*piDpj(8,5))*cd2pp(1,3)
905
cs(6) = 4*DBLE(piDpj(6,6)*piDpj(8,6))*cd2pp(2,2)
906
cs(7) = 4*DBLE(piDpj(6,6)*piDpj(8,7))*cd2pp(2,3)
907
cs(8) = 4*DBLE(piDpj(6,7)*piDpj(8,6))*cd2pp(2,3)
908
cs(9) = 4*DBLE(piDpj(6,7)*piDpj(8,7))*cd2pp(3,3)
913
cs(14)= - 2*DBLE(piDpj(1,8))*cc0i(3)
914
cs(15)= + 2*DBLE(piDpj(1,8))*cc0i(2)
915
cs(16)= - 2*DBLE(piDpj(1,6))*cc0i(1)
916
cs(17)= + 2*DBLE(piDpj(1,6))*cc0i(4)
917
cs(18)= - 4*DBLE(piDpj(1,6)*piDpj(1,8))*cd0
925
if ( lwrite ) print *,'ffxdi: checking D2.p2p4 = ',cnul,xmax
926
if ( xlosn*abs(cnul) .gt. precc*xmax ) print *,'ffxdi :',
927
+ 'error: D2(p2,p4) not correct ',cnul,xmax,ier1
930
if ( degree .eq. 2 ) then
935
print *,'ffxdi: error: D3 not ready'