~madteam/mg5amcnlo/series2.0

« back to all changes in this revision

Viewing changes to vendor/IREGI/src/ti_reduce.f90

  • Committer: Rikkert Frederix
  • Date: 2014-09-10 16:17:48 UTC
  • mfrom: (253.17.27 2.2.0)
  • mto: (253.17.29 2.2.0)
  • mto: This revision was merged to the branch mainline in revision 255.
  • Revision ID: frederix@physik.uzh.ch-20140910161748-lh37vqyin7eh22y3
merge with latest 2.2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
41
41
    ENDIF
42
42
    MU_R_IREGI=MU
43
43
    IF(first.EQ.0)THEN
 
44
       IF(.NOT.print_banner)THEN
44
45
       WRITE(*,*)"#####################################################################################"
45
46
       WRITE(*,*)"#                                                                                   #"
46
47
       WRITE(*,*)"#                           IREGI-alpha-1.0.0                                       #"
50
51
       WRITE(*,*)"#    b) PH Department, TH Unit, CERN, Geneva, Switzerland                           #"
51
52
       WRITE(*,*)"#                                                                                   #"
52
53
       WRITE(*,*)"#####################################################################################"
 
54
       print_banner=.TRUE.
 
55
       ENDIF
53
56
       ! initialization xiarray and metric
54
57
       CALL all_Integers(1,1,1,sol11,factor1)
55
58
       DO i=0,3
95
98
       ENDIF
96
99
    ENDDO
97
100
    n=NLOOPLINE-numzerp
98
 
    IF(n.GE.6.OR.MAXRANK.GE.6)THEN
99
 
       WRITE(*,*)"ERROR: out of range of tensor_integral_reduce (N<8,R<7)"
 
101
    IF(n.GE.6.OR.MAXRANK.GT.6)THEN
 
102
       WRITE(*,*)"ERROR: out of range of tensor_integral_reduce (N<7,R<7)"
100
103
       STOP
101
104
    ENDIF
102
105
    CALL sytensor(n,MAXRANK,ntot,sy(1:xiarraymax2,-1:n),syfactor(1:xiarraymax2))
134
137
    SAVE first
135
138
    MU_R_IREGI=MU
136
139
    IF(first.EQ.0)THEN
 
140
       IF(.NOT.print_banner)THEN
137
141
       WRITE(*,*)"#####################################################################################"
138
142
       WRITE(*,*)"#                                                                                   #"
139
143
       WRITE(*,*)"#                           IREGI-alpha-1.0.0                                       #"
143
147
       WRITE(*,*)"#    b) PH Department, TH Unit, CERN, Geneva, Switzerland                           #"
144
148
       WRITE(*,*)"#                                                                                   #"
145
149
       WRITE(*,*)"#####################################################################################"
 
150
       print_banner=.TRUE.
 
151
       ENDIF
146
152
       ! initialization xiarray and metric 
147
153
       CALL all_Integers(1,1,1,sol11,factor1)
148
154
       DO i=0,3
169
175
       ENDIF
170
176
    ENDDO
171
177
    n=NLOOPLINE-numzerp
172
 
    IF(n.GE.6.OR.MAXRANK.GE.6)THEN
173
 
       WRITE(*,*)"ERROR: out of range of tensor_integral_reduce2 (N<8,R<7)"
 
178
    IF(n.GE.6.OR.MAXRANK.GT.6)THEN
 
179
       WRITE(*,*)"ERROR: out of range of tensor_integral_reduce2 (N<7,R<7)"
174
180
       STOP
175
181
    ENDIF
176
182
    CALL sytensor(n,MAXRANK,ntot,sy(1:xiarraymax2,-1:n),syfactor(1:xiarraymax2))
311
317
                init=init+1
312
318
             ENDDO
313
319
             scalar(1:4)=scalar_integral_reduce2(NLOOPLINE,idim,indices,PijMatrix,M2L)
314
 
             IF(.NOT.STABLE_IREGI)RETURN
 
320
             IF(.NOT.STABLE_IREGI)THEN
 
321
                WRITE(*,*)"IREGI:WARNING, it detects unstable case, some integrals may set to be 0."
 
322
                RETURN
 
323
             ENDIF
315
324
             DO j=1,nntot
316
325
                init=calc_pos(sol(j,1:4))
317
326
                coefs(init,1:4)=coefs(init,1:4)+coco(j)*syfactor(i)*scalar(1:4)
336
345
                ! the stability has been improved by IBP reduction
337
346
                scalar(1:4)=pave_opt_reduce2(NLOOPLINE,paveindices,PijMatrix,M2L)                
338
347
             ENDIF
339
 
             IF(.NOT.STABLE_IREGI)RETURN
 
348
             IF(.NOT.STABLE_IREGI)THEN
 
349
                WRITE(*,*)"IREGI:WARNING, it detects unstable case, some integrals may set to be 0."
 
350
                RETURN
 
351
             ENDIF
340
352
             DO j=1,nntot
341
353
                init=calc_pos(sol(j,1:4))
342
354
                coefs(init,1:4)=coefs(init,1:4)+coco(j)*scalar(1:4)
434
446
                init=init+1
435
447
             ENDDO
436
448
             scalar(1:4)=scalar_integral_reduce(NLOOPLINE,idim,indices,PDEN,M2L)
437
 
             IF(.NOT.STABLE_IREGI)RETURN
 
449
             IF(.NOT.STABLE_IREGI)THEN
 
450
                WRITE(*,*)"IREGI:WARNING, it detects unstable case, some integrals may set to be 0."
 
451
                RETURN
 
452
             ENDIF
438
453
             DO j=1,nntot
439
454
                init=calc_pos(sol(j,1:4))
440
455
                coefs(init,1:4)=coefs(init,1:4)+coco(j)*syfactor(i)*scalar(1:4)
459
474
                ! the stability has been improved by IBP reduction
460
475
                scalar(1:4)=pave_opt_reduce(NLOOPLINE,paveindices,PDEN,M2L)
461
476
             ENDIF
462
 
             IF(.NOT.STABLE_IREGI)RETURN
 
477
             IF(.NOT.STABLE_IREGI)THEN
 
478
                WRITE(*,*)"IREGI:WARNING, it detects unstable case, some integrals may set to be 0."
 
479
                RETURN
 
480
             ENDIF
463
481
             DO j=1,nntot
464
482
                init=calc_pos(sol(j,1:4))
465
483
                coefs(init,1:4)=coefs(init,1:4)+coco(j)*scalar(1:4)