1 : C ENDW2 SOURCE CHAT 05/01/12 23:39:24 5004 2 : FUNCTION ENDW2 (N,ALPHA,BETA) 3 : IMPLICIT INTEGER(I-N) 4 : IMPLICIT REAL*8(A-H,O-Z) 5 : ZERO = 0.D0 6 : ONE = 1.D0 7 : TWO = 2.D0 8 : THREE = 3.D0 9 : FOUR = 4.D0 10 : APB = ALPHA+BETA 11 : IF (N.EQ.0) THEN 12 : ENDW2 = ZERO 13 : RETURN 14 : ENDIF 15 : F1 = GAMMAF(ALPHA+ONE)*GAMMAF(BETA+TWO)/GAMMAF(APB+THREE) 16 : F1 = F1*(APB+TWO)*TWO**(APB+TWO)/TWO 17 : IF (N.EQ.1) THEN 18 : ENDW2 = F1 19 : RETURN 20 : ENDIF 21 : FINT1 = GAMMAF(ALPHA+ONE)*GAMMAF(BETA+TWO)/GAMMAF(APB+THREE) 22 : FINT1 = FINT1*TWO**(APB+TWO) 23 : FINT2 = GAMMAF(ALPHA+TWO)*GAMMAF(BETA+TWO)/GAMMAF(APB+FOUR) 24 : FINT2 = FINT2*TWO**(APB+THREE) 25 : F2 = (TWO*(ALPHA+TWO)*FINT1 - (APB+FOUR)*FINT2) 26 : $ * (APB+THREE)/FOUR 27 : IF (N.EQ.2) THEN 28 : ENDW2 = F2 29 : RETURN 30 : ENDIF 31 : DO 100 I=3,N 32 : DI = DBLE(I-1) 33 : ABN = ALPHA+BETA+DI 34 : ABNN = ABN+DI 35 : A1 = -(TWO*(DI+ALPHA)*(DI+BETA))/(ABN*ABNN*(ABNN+ONE)) 36 : A2 = (TWO*(ALPHA-BETA))/(ABNN*(ABNN+TWO)) 37 : A3 = (TWO*(ABN+ONE))/((ABNN+TWO)*(ABNN+ONE)) 38 : F3 = -(A2*F2+A1*F1)/A3 39 : F1 = F2 40 : F2 = F3 41 : 100 CONTINUE 42 : ENDW2 = F3 43 : RETURN 44 : END 45 : 46 :
© Cast3M 2003 - All rights reserved.
Disclaimer