255
255
end interface!build_l
258
subroutine dp_build_l(k1,k2,l1,l2,l3,l4,al1,al2,bet,ga)
258
subroutine dp_build_l(k1,k2in,l1,l2,l3,l4,al1,al2,bet,ga)
259
260
include 'cts_dpr.h'
261
262
include 'cts_dpr.h'
262
, intent(in), dimension(0:3) :: k1,k2
263
, intent(in), dimension(0:3) :: k1,k2in
265
, dimension(0:3) :: k2
263
266
include 'cts_dpc.h'
264
267
, intent(out), dimension(0:3) :: l1,l2,l3,l4
265
268
include 'cts_dpc.h'
266
269
, intent(out) :: al1,al2,bet,ga
267
270
include 'cts_dpr.h'
268
271
:: k1k1,k1k2,k2k2
273
:: d12a,d12b,d12c,d12
275
, dimension(1:3) :: s10,s20,d10,d20
269
276
include 'cts_dpc.h'
270
:: del12,b1p,b1m,b2p,b2m,c1p,c1m,c2p,c2m,ausp,ausm
277
:: del12,rdel12,b1p,b1m,b2p,b2m,c1p,c1m,c2p,c2m,ausp,ausm
281
s10(k)= k1(0)+k1(k); d10(k)= k1(0)-k1(k)
282
s20(k)= k2(0)+k2(k); d20(k)= k2(0)-k2(k)
284
d12a= (k2(1)*d10(3)-k1(1)*d20(3))*(k2(1)*s10(3)-k1(1)*s20(3))
285
d12b= (k2(2)*s10(1)-k1(2)*s20(1))*(k2(2)*d10(1)-k1(2)*d20(1))
286
d12c= (k2(3)*s10(2)-k1(3)*s20(2))*(k2(3)*d10(2)-k1(3)*d20(2))
288
if (abs(d12/roots**4).lt.1.d-60) then
289
k2(0)= k2(0)*1.0000000000001d0
272
294
call contr(k1,k1,k1k1)
273
295
call contr(k1,k2,k1k2)
274
296
call contr(k2,k2,k2k2)
275
del12= (k1k2*k1k2-k1k1*k2k2)*c1(p)
276
297
if (k1k2.gt.0.d0) then
283
bet= c1(p)/(c1(p)-al1*al2)
305
if (dreal(al1*al2).lt.0.d0) then
306
bet= c1(p)/(c1(p)-al1*al2)
308
bet= k*ga**2*(c1(p)+al1*al2)/4.d0/k1k2/rdel12
285
311
l1(k)= bet*(k1(k)-al1*k2(k))
286
312
l2(k)= bet*(k2(k)-al2*k1(k))
321
347
l4(3)= b2m*b1p - c2m*c1p
322
348
end subroutine dp_build_l
324
subroutine mp_build_l(k1,k2,l1,l2,l3,l4,al1,al2,bet,ga)
350
subroutine mp_build_l(k1,k2in,l1,l2,l3,l4,al1,al2,bet,ga)
325
352
include 'cts_mpr.h'
327
354
include 'cts_mpr.h'
328
, intent(in), dimension(0:3) :: k1,k2
355
, intent(in), dimension(0:3) :: k1,k2in
357
, dimension(0:3) :: k2
329
358
include 'cts_mpc.h'
330
359
, intent(out), dimension(0:3) :: l1,l2,l3,l4
331
360
include 'cts_mpc.h'
332
361
, intent(out) :: al1,al2,bet,ga
333
362
include 'cts_mpr.h'
363
:: k1k1,k1k2,k2k2,r12
365
:: d12a,d12b,d12c,d12
367
, dimension(1:3) :: s10,s20,d10,d20
335
368
include 'cts_mpc.h'
336
:: del12,b1p,b1m,b2p,b2m,c1p,c1m,c2p,c2m,ausp,ausm
369
:: del12,rdel12,b1p,b1m,b2p,b2m,c1p,c1m,c2p,c2m,ausp,ausm
373
s10(k)= k1(0)+k1(k); d10(k)= k1(0)-k1(k)
374
s20(k)= k2(0)+k2(k); d20(k)= k2(0)-k2(k)
376
d12a= (k2(1)*d10(3)-k1(1)*d20(3))*(k2(1)*s10(3)-k1(1)*s20(3))
377
d12b= (k2(2)*s10(1)-k1(2)*s20(1))*(k2(2)*d10(1)-k1(2)*d20(1))
378
d12c= (k2(3)*s10(2)-k1(3)*s20(2))*(k2(3)*d10(2)-k1(3)*d20(2))
380
if (abs(d12/roots**4).lt.1.d-120) then
381
k2(0)= k2(0)*1.0000000000001d0
338
386
call contr(k1,k1,k1k1)
339
387
call contr(k1,k2,k1k2)
340
388
call contr(k2,k2,k2k2)
341
del12= (k1k2*k1k2-k1k1*k2k2)*c1(p)
342
389
if (k1k2.gt.0.d0) then
349
bet= c1(p)/(c1(p)-al1*al2)
397
r12= (al1*al2+conjg(al1*al2))
398
if (r12.lt.0.d0) then
399
bet= c1(p)/(c1(p)-al1*al2)
401
bet= k*ga**2*(c1(p)+al1*al2)/4.d0/k1k2/rdel12
351
404
l1(k)= bet*(k1(k)-al1*k2(k))
352
405
l2(k)= bet*(k2(k)-al2*k1(k))