Numerical stability
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 17 Sep 2012 09:19:14 +0000 (09:19 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 17 Sep 2012 09:19:14 +0000 (09:19 +0000)
HIJING/hipyset1_35/pyklim_hijing.F

index 0a0d435..5226cc8 100644 (file)
@@ -160,7 +160,9 @@ C...5) due to simultaneous limits on y-large and y-small
         YSTMX5=0.5*(CKIN(10)+CKIN(12)+YDIFMX)   
 C...6) due to simultaneous limits on cos(theta-hat) and y-large or  
 C...   y-small  
-        CTHLIM=SQRT(1.-4.*PTHMIN**2/(BE34*TAU*VINT(2))) 
+        CTHLIM=1.-4.*PTHMIN**2/(BE34*TAU*VINT(2))
+        if (CTHLIM .lt. 0) cthlim = 0.
+        CTHLIM=SQRT(cthlim) 
         RZMN=BE34*MAX(CKIN(27),-CTHLIM) 
         RZMX=BE34*MIN(CKIN(28),CTHLIM)  
         YEX3MX=(1.+RM3-RM4+RZMX)/MAX(1E-10,1.+RM3-RM4-RZMX) 
@@ -197,7 +199,9 @@ C...1) due to explicit limits
         CTPMN1=MAX(0.,CKIN(27)) 
         CTPMX1=MAX(0.,CKIN(28)) 
 C...2) due to limits on pT-hat  
-        CTNMN2=-SQRT(1.-4.*PTHMIN**2/(BE34**2*TAU*VINT(2))) 
+        CTNMN2=1.-4.*PTHMIN**2/(BE34**2*TAU*VINT(2))
+        if (ctnmn2 .le. 0) ctnmn2 = 0
+        CTNMN2=-SQRT(ctnmn2) 
         CTPMX2=-CTNMN2  
         CTNMX2=0.   
         CTPMN2=0.