5 &( fra , ndire , spred1, teta1 , spred2, teta2 , xlamda)
61 INTEGER,
INTENT(IN) :: NDIRE
62 DOUBLE PRECISION,
INTENT(IN) :: SPRED1, TETA1 , SPRED2, TETA2
63 DOUBLE PRECISION,
INTENT(IN) :: XLAMDA
64 DOUBLE PRECISION,
INTENT(INOUT) :: FRA(ndire)
69 DOUBLE PRECISION DELT1 , DELT2 , FTH , FRA1 , FRA2 , ARGUM
70 DOUBLE PRECISION C1 , C2
72 IF (spred1.GT.1.d-4)
THEN 73 delt1 = 1.d0/(spred1*sqrt(
deupi))
74 c1 = -0.5/(spred1*spred1)
79 IF (spred2.GT.1.d-4)
THEN 80 delt2 = 1.d0/(spred2*sqrt(
deupi))
81 c2 = -0.5/(spred2*spred2)
91 DO WHILE(argum.LT.-
pi)
97 fra1=delt1*exp(max(-10.d0,c1*argum*argum))
100 DO WHILE(argum.LT.-
pi)
103 DO WHILE(argum.GT.
pi)
106 fra2=delt2*exp(max(-10.d0,c2*argum*argum))
108 fra(jp)=xlamda*fra1+(1.d0-xlamda)*fra2
109 IF (fra(jp).LT.1.d-10) fra(jp)=0.d0
double precision, dimension(:), pointer teta
subroutine fsprd2(FRA, NDIRE, SPRED1, TETA1, SPRED2, TETA2, XLAMDA)