Download fsega.eso

Back to the list

   1 : C FSEGA     SOURCE    CHAT      05/01/13    00:10:09     5004           
   2 :       FUNCTION FSEGA(GX,Y,X,A,D,E)
   3 :       IMPLICIT INTEGER(I-N)
   4 :       IMPLICIT REAL*8(A-H,O-Z)
   5 : *      REAL*8 GX,Y,X,A,D,E,aaa
   6 : *      REAL*8 SA,FSEGA
   7 :       REAL*8 MU1,MU2,MU3,MU4
   8 : *,T1,T2,T3,T4
   9 :       REAL*8 NORM2,NORM
  10 : *  ,ARG1,ALPHA1,SIG1,RAD
  11 : *      REAL*8 ARG2,ALPHA2,PRECIS
  12 : C
  13 :       PRECIS=1.D-12
  14 :       SA=SQRT(A)
  15 :       MU1=(D*GX+E)/SA
  16 :       MU2=D*X+E
  17 :       MU3=(GX-A*X-D*E)/SA
  18 :       MU4=GX-X
  19 : C
  20 :       SIG1=SIGN(1.D0,Y)
  21 :       NORM2=MU3**2+MU1**2
  22 :       NORM=SQRT(NORM2)
  23 :       RAD=SQRT(Y**2+NORM2)
  24 : C
  25 : 
  26 :       test2 = (abs(rad + mu2 ))/ ( abs(rad) + abs(mu2))
  27 :       test3= (abs( rad + mu3))/( abs(rad) + abs(mu3))
  28 :       aaa1 = rad + mu3
  29 :       aaa2 = rad + mu2
  30 :       if( test2.gt.1.e-13 .and.test3.gt.1.e-13.and.
  31 :      $  norm.ne.0.)then
  32 :         ARG1=(-MU3*RAD-NORM2)/(aaa1*NORM)
  33 :         ARG2=(-MU2*RAD-NORM2)/(aaa2*NORM)
  34 :          if( arg1.le.-1.d0) arg1=-1.d0
  35 :          if(arg1.gt.1.d0) arg1=1.d0
  36 :          if(arg2.le.-1.d0) arg2=-1.d0
  37 :          if(arg2.gt.1.d0) arg2=1.d0
  38 :         T1=MU1*(Y*LOG(RAD+MU3)-0.5D0*(Y-SIG1*ABS(MU1)*ASIN(ARG1)))
  39 :         T2=MU4*(Y*LOG(RAD+MU2)-0.5D0*(Y-SIG1*ABS(MU4)*ASIN(ARG2)))
  40 :         T3=0.5D0*(MU2*MU4+MU1*MU3)*SIG1*LOG((ABS(Y)+RAD)/NORM)
  41 :         IF(Y.NE.0.D0) THEN
  42 :           T4=-Y**2*ATAN((D-SA)*(SA*(MU4+MU1)+RAD)/Y)
  43 :         ELSE
  44 :           T4=0.D0
  45 :         ENDIF
  46 :         ALPHA1=-MU1*ABS(MU1)*ASIN(-1.)
  47 :         ALPHA2=-MU4*ABS(MU4)*ASIN(-1.)
  48 :         FSEGA=T1+T2+T3+T4+SIG1*0.5D0*(ALPHA2+ALPHA1)
  49 :       ELSE
  50 :         FSEGA=-Y**2*ATAN((D-SA)*SIG1)
  51 :       ENDIF
  52 :       RETURN
  53 :       END
  54 :  
  55 :  
  56 :  
  57 :  

© Cast3M 2003 - All rights reserved.
Disclaimer