Download farca.eso

Back to the list

   1 : C FARCA     SOURCE    PV        11/03/07    21:16:52     6885           
   2 :       FUNCTION FARCA(X,A,B,C,D,E,R,COST,SINT)
   3 :       IMPLICIT INTEGER(I-N)
   4 :       REAL*8 X,A,B,C,D,E
   5 :       REAL*8 T,ARG,DE
   6 :       REAL*8 RE,IM,SA,FARCA,AL,BE,DELTA
   7 :       REAL*8 C0,C1,C2,C3,C4,C5,C6,K1,K2
   8 :       REAL*8 R,COST,SINT,RES,MU,TD
   9 :       REAL*8 A2,B2,XI
  10 :       REAL*8 PREC
  11 : CCCCC CASTEM 2000 interdit COMPLEX*16.....
  12 : C      COMPLEX*16 Z1,FNUM1,DENRED,TMP
  13 :       COMPLEX*16 Z1,FNUM1,DENRED,TMP
  14 : C
  15 :       DATA PREC/1.D-8/
  16 : C
  17 :       SA=SQRT(A)
  18 :       AL=1.-D/SA
  19 :       BE=1.+D/SA
  20 :       DELTA=B**2-4.*A*C
  21 :       RE=-E+R*COST/(D-SA)
  22 :       IM=R*SINT/(D-SA)
  23 :       Z1=CMPLX(RE,IM)
  24 : C
  25 :       T=-SA*X+SQRT(A*X**2+B*X+C)
  26 :       DE=B-2.*SA*T
  27 :       C0=1./(4.*A)
  28 : C
  29 :       IF(ABS(IM).GT.PREC) THEN
  30 :        IF((ABS(DE).GT.PREC).AND.(ABS(DELTA).GT.PREC)) THEN
  31 :         ARG=(T-RE)/IM
  32 :         C1=B/(8.*A**1.5)-(B-2.*E*SA)/(4.*A*(D-SA))
  33 :         C4=(B**2-4.*A*C)**2/(8.*A**1.5)
  34 :         DENRED=(B-2.*SA*Z1)**3
  35 :         TMP=(Z1**2-C)**2
  36 :      &     *(2.*A*AL*Z1**2-2.*B*SA*AL*Z1+B**2-2.*A*C*BE)
  37 :         FNUM1=TMP/DENRED
  38 :         C5=IMAG(FNUM1)/IM
  39 :         C6=REAL(FNUM1)-C5*RE
  40 :         K1=-2.*C1*DELTA
  41 :         K1=K1-C4*(2.*B**3+24.*A*B*C)/DELTA**2
  42 :         K1=K1-2.*(C5*C*(B-2.*E*SA)-C6*(E*B-2.*C*SA))/R**2
  43 :         K2=-C0*DELTA/(2.*SA)
  44 :         K2=K2-C4*(3.*B**2+4.*A*C)/DELTA**2
  45 :         K2=K2+(C5*(E*B-2.*C*SA)-C6*(B-2.*E*SA))/(2.*SA*R**2)
  46 :         C3=B*K2-0.5*K1
  47 :         C2=K2-2.*B*C3/DELTA
  48 :         RES=0.5*C0*T**2+C1*T-C2*LOG(ABS(DE))/(2.*SA)
  49 :      &     +C3/(2.*SA*DE)+C4/(4.*SA*DE**2)
  50 :      &     +(C5*0.5*LOG(ABS(T**2-2.*RE*T+(RE**2+IM**2)))
  51 :      &     +(C6+RE*C5)/IM*ATAN(ARG))/(D-SA)
  52 :        ELSE
  53 :         A2=D+SA
  54 :         B2=B/(2.*SA)+E
  55 :         XI=A2*X+B2
  56 :         RES=(0.5*XI*(XI-4.*B2)+B2**2*LOG(ABS(XI)))/(A2**2)
  57 :        ENDIF
  58 :       ELSE
  59 :        IF((ABS(DE).GT.PREC).AND.(ABS(DELTA).GT.PREC)) THEN
  60 :         TD=(E*SA-0.5*B)/(D-SA)
  61 :         MU=-D*R-E
  62 :         C1=(3.*B-4.*MU/(D-SA))/(8.*A*SA)
  63 :         C5=2.*R**2
  64 :         C4=2.*MU**4/(A*SA)
  65 :         K1=-C1*DELTA-C4*(B**3+12.*A*B*C)/DELTA**2
  66 :         K1=K1+C5*TD*DELTA/(TD**2-C)
  67 :         K2=-C0*0.5*DELTA/SA-C4*(3.*B**2+4.*A*C)/DELTA**2
  68 :         K2=K2+C5*DELTA*0.5/((TD**2-C)*SA)
  69 :         C3=B*K2-K1
  70 :         C2=K2-2.*B*C3/DELTA
  71 :         RES=0.5*C0*T**2+C1*T-C2*LOG(ABS(DE))/(2.*SA)
  72 :      &     +C3/(2.*SA*DE)+C4/(4.*SA*DE**2)
  73 :      &     +C5*LOG(ABS(T-TD))
  74 :        ELSE
  75 :         A2=D+SA
  76 :         B2=B/(2.*SA)+E
  77 :         XI=A2*X+B2
  78 :         RES=(0.5*XI*(XI-4.*B2)+B2**2*LOG(ABS(XI)))/(A2**2)
  79 :        ENDIF
  80 :       ENDIF
  81 :       FARCA=0.5*RES
  82 :       RETURN
  83 :       END
  84 :  
  85 :  
  86 :  

© Cast3M 2003 - All rights reserved.
Disclaimer