~madteam/mg5amcnlo/series2.0

« back to all changes in this revision

Viewing changes to tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%improve_ps.f

  • Committer: olivier Mattelaer
  • Date: 2016-05-12 11:00:18 UTC
  • mfrom: (262.1.150 2.3.4)
  • Revision ID: olivier.mattelaer@uclouvain.be-20160512110018-sevb79f0wm4g8mpp
pass to 2.4.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
106
106
      ENDIF
107
107
      IF (ERRCODE.NE.0) THEN
108
108
        IF (WARNED.LT.20) THEN
109
 
          WRITE(*,*) 'INFO:: Attempting to rescue the precisio'
110
 
     $     //'n improvement with an alternative method.'
 
109
          WRITE(*,*) 'INFO:: Attempting to rescue the precision'
 
110
     $     //' improvement with an alternative method.'
111
111
          WARNED=WARNED+1
112
112
        ENDIF
113
113
        IF (IMPROVEPSPOINT.EQ.1) THEN
114
 
          CALL MG5_1_MP_ORIG_IMPROVE_PS_POINT_PRECISION(NEWP,ERRCODETMP
115
 
     $     ,WARNED)
 
114
          CALL MG5_1_MP_ORIG_IMPROVE_PS_POINT_PRECISION(NEWP
 
115
     $     ,ERRCODETMP,WARNED)
116
116
        ELSEIF((IMPROVEPSPOINT.EQ.2).OR.(IMPROVEPSPOINT.LE.0)) THEN
117
 
          CALL MG5_1_MP_PSMC_IMPROVE_PS_POINT_PRECISION(NEWP,ERRCODETMP
118
 
     $     ,WARNED)
 
117
          CALL MG5_1_MP_PSMC_IMPROVE_PS_POINT_PRECISION(NEWP
 
118
     $     ,ERRCODETMP,WARNED)
119
119
        ENDIF
120
120
        IF (ERRCODETMP.NE.0) GOTO 100
121
121
      ENDIF
125
125
      GOTO 101
126
126
 100  CONTINUE
127
127
      IF (WARNED.LT.20) THEN
128
 
        WRITE(*,*) 'WARNING:: This PS point could not be improved'
129
 
     $   //'. Error code = ',ERRCODE,ERRCODETMP
 
128
        WRITE(*,*) 'WARNING:: This PS point could not be improved.'
 
129
     $   //' Error code = ',ERRCODE,ERRCODETMP
130
130
        CALL MG5_1_MP_WRITE_MOM(P)
131
131
        WARNED = WARNED +1
132
132
      ENDIF
140
140
 102  CONTINUE
141
141
 
142
142
      IF (WARNED.GE.20.AND..NOT.TOLD_SUPPRESS) THEN
143
 
        WRITE(*,*) 'INFO:: Further warnings from the improve_p'
144
 
     $   //'s routine will now be supressed.'
 
143
        WRITE(*,*) 'INFO:: Further warnings from the improve_ps'
 
144
     $   //' routine will now be supressed.'
145
145
        TOLD_SUPPRESS=.TRUE.
146
146
      ENDIF
147
147
 
188
188
        MG5_1_MP_IS_CLOSE = .FALSE.
189
189
        IF (WARNED.LT.20) THEN
190
190
          BUFFDP = (REF/REF2)
191
 
          WRITE(*,*) 'WARNING:: The improved PS point is too far fro'
192
 
     $     //'m the original one',BUFFDP
 
191
          WRITE(*,*) 'WARNING:: The improved PS point is too far from'
 
192
     $     //' the original one',BUFFDP
193
193
          WARNED=WARNED+1
194
194
        ENDIF
195
195
      ENDIF
263
263
        IF ((BUFF/REF).GT.THRES_FOURMOM) THEN
264
264
          IF (WARNED.LT.20) THEN
265
265
            BUFFDPA = (BUFF/REF)
266
 
            WRITE(*,*) 'ERROR:: Four-momentum conservation is no'
267
 
     $       //'t accurate enough, ',BUFFDPA
 
266
            WRITE(*,*) 'ERROR:: Four-momentum conservation is not'
 
267
     $       //' accurate enough, ',BUFFDPA
268
268
            CALL MG5_1_MP_WRITE_MOM(P)
269
269
            WARNED=WARNED+1
270
270
          ENDIF
274
274
      REF = REF / (ONE*NEXTERNAL)
275
275
      DO I=1,NEXTERNAL
276
276
        REF=ABS(P(0,I))+ABS(P(1,I))+ABS(P(2,I))+ABS(P(3,I))
277
 
        IF ((SQRT(ABS(P(0,I)**2-P(1,I)**2-P(2,I)**2-P(3,I)**2
278
 
     $   -MASSES(I)**2))/REF).GT.THRES_ONSHELL) THEN
 
277
        IF ((SQRT(ABS(P(0,I)**2-P(1,I)**2-P(2,I)**2-P(3,I)**2-MASSES(I)
 
278
     $   **2))/REF).GT.THRES_ONSHELL) THEN
279
279
          IF (WARNED.LT.20) THEN
280
280
            BUFFDPA=MASSES(I)
281
281
            BUFFDPB=(SQRT(ABS(P(0,I)**2-P(1,I)**2-P(2,I)**2-P(3,I)**2
282
282
     $       -MASSES(I)**2))/REF)
283
 
            WRITE(*,*) 'ERROR:: Onshellness of the momentum o'
284
 
     $       //'f particle ',I,' of mass ',BUFFDPA,' is not accurat'
285
 
     $       //'e enough, ',BUFFDPB
 
283
            WRITE(*,*) 'ERROR:: Onshellness of the momentum of'
 
284
     $       //' particle ',I,' of mass ',BUFFDPA,' is not accurate'
 
285
     $       //' enough, ',BUFFDPB
286
286
            CALL MG5_1_MP_WRITE_MOM(P)
287
287
            WARNED=WARNED+1
288
288
          ENDIF
321
321
      WRITE (*,*) '    ---------------------'
322
322
      WRITE (*,*) '    E | px | py | pz | m '
323
323
      DO I=1,NEXTERNAL
324
 
        WRITE (*,'(1x,5e27.17)') P(0,I),P(1,I),P(2,I),P(3,I),SQRT(ABS(M
325
 
     $   G5_1_MDOT(P(0,I),P(0,I))))
 
324
        WRITE (*,'(1x,5e27.17)') P(0,I),P(1,I),P(2,I),P(3,I)
 
325
     $   ,SQRT(ABS(MG5_1_MDOT(P(0,I),P(0,I))))
326
326
      ENDDO
327
327
      WRITE (*,*) '    Four-momentum conservation sum:'
328
328
      WRITE (*,'(1x,4e27.17)') PSUM(0),PSUM(1),PSUM(2),PSUM(3)
563
563
 
564
564
      IF (NINITIAL.NE.2) ERRCODE = 100
565
565
 
566
 
      IF (ABS(P(1,1)/REF).GT.THRS_TEST.OR.ABS(P(2,1)/REF).GT.THRS_TEST.
567
 
     $ OR.ABS(P(1,2)/REF).GT.THRS_TEST.OR.ABS(P(2,2)/REF).GT.THRS_TEST
568
 
     $ ) ERRCODE = 200
 
566
      IF (ABS(P(1,1)/REF).GT.THRS_TEST.OR.ABS(P(2,1)/REF)
 
567
     $ .GT.THRS_TEST.OR.ABS(P(1,2)/REF).GT.THRS_TEST.OR.ABS(P(2,2)/REF)
 
568
     $ .GT.THRS_TEST) ERRCODE = 200
569
569
 
570
570
      IF (MASSES(1).NE.ZERO.OR.MASSES(2).NE.ZERO) ERRCODE = 300
571
571
 
622
622
      DISCR = -PT(0)**2 + PT(1)**2 + PT(2)**2 + PT(3)**2
623
623
      IF (DISCR.LT.ZERO) DISCR = -DISCR
624
624
 
625
 
      SHIFTE(1) = (PT(0)*(-TWO*P(0,P1)*PT(0) + PT(0)**2 + PT(1)**2 
626
 
     $ + PT(2)**2) + (TWO*P(0,P1) - PT(0))*PT(3)**2 + PT(3)*DISCR)
627
 
     $ /(TWO*(PT(0) - PT(3))*(PT(0) + PT(3)))
628
 
      SHIFTE(2) = -(PT(0)*(TWO*P(0,P2)*PT(0) - PT(0)**2 + PT(1)**2 
629
 
     $ + PT(2)**2) + (-TWO*P(0,P2) + PT(0))*PT(3)**2 + PT(3)*DISCR)
 
625
      SHIFTE(1) = (PT(0)*(-TWO*P(0,P1)*PT(0) + PT(0)**2 + PT(1)**2 +
 
626
     $  PT(2)**2) + (TWO*P(0,P1) - PT(0))*PT(3)**2 + PT(3)*DISCR)/(TWO
 
627
     $ *(PT(0) - PT(3))*(PT(0) + PT(3)))
 
628
      SHIFTE(2) = -(PT(0)*(TWO*P(0,P2)*PT(0) - PT(0)**2 + PT(1)**2 +
 
629
     $  PT(2)**2) + (-TWO*P(0,P2) + PT(0))*PT(3)**2 + PT(3)*DISCR)
630
630
     $ /(TWO*(PT(0) - PT(3))*(PT(0) + PT(3)))
631
631
      SHIFTZ(1) = (-TWO*P(3,P1)*(PT(0)**2 - PT(3)**2) + PT(3)*(PT(0)*
632
632
     $ *2 + PT(1)**2 + PT(2)**2 - PT(3)**2) + PT(0)*DISCR)/(TWO*(PT(0)
633
633
     $ **2 - PT(3)**2))
634
 
      SHIFTZ(2) = -(TWO*P(3,P2)*(PT(0)**2 - PT(3)**2) + PT(3)*(
635
 
     $ -PT(0)**2 + PT(1)**2 + PT(2)**2 + PT(3)**2) + PT(0)*DISCR)/(TWO
636
 
     $ *(PT(0)**2 - PT(3)**2))
 
634
      SHIFTZ(2) = -(TWO*P(3,P2)*(PT(0)**2 - PT(3)**2) + PT(3)*(-PT(0)*
 
635
     $ *2 + PT(1)**2 + PT(2)**2 + PT(3)**2) + PT(0)*DISCR)/(TWO*(PT(0)
 
636
     $ **2 - PT(3)**2))
637
637
      NEWP(0,P1) = P(0,P1)+SHIFTE(1)
638
638
      NEWP(3,P1) = P(3,P1)+SHIFTZ(1)
639
639
      NEWP(0,P2) = P(0,P2)+SHIFTE(2)
765
765
        ENDIF
766
766
      ENDDO
767
767
      IF (WARNED.LT.20) THEN
768
 
        WRITE(*,*) 'WARNING:: Could not find the proper rescalin'
769
 
     $   //'g factor x. Restoring precision ala PSMC will therefor'
770
 
     $   //'e not be used.'
 
768
        WRITE(*,*) 'WARNING:: Could not find the proper rescaling'
 
769
     $   //' factor x. Restoring precision ala PSMC will therefore not'
 
770
     $   //' be used.'
771
771
        WARNED=WARNED+1
772
772
      ENDIF
773
773
      IF (ERRCODE.LT.1000) THEN
806
806
      ENDDO
807
807
      IF ((ABS(BUFF)/BUFF2).GT.CONSISTENCY_THRES) THEN
808
808
        IF (WARNED.LT.20) THEN
809
 
          WRITE(*,*) 'WARNING:: The consistency check in the a la PSM'
810
 
     $     //'C precision restoring algorithm failed. The result wil'
811
 
     $     //'l therefore not be used.'
 
809
          WRITE(*,*) 'WARNING:: The consistency check in the a la PSMC'
 
810
     $     //' precision restoring algorithm failed. The result will'
 
811
     $     //' therefore not be used.'
812
812
          WARNED=WARNED+1
813
813
        ENDIF
814
814
        ERRCODE = 1000