File: QATR.FT of Tape: Various/ETH/eth11-1
(Source file text)
C .................................................................. C C SUBROUTINE QATR C C PURPOSE C TO COMPUTE AN APPROXIMATION FOR INTEGRAL(FCT(X), SUMMED C OVER X FROM XL TO XU). C C USAGE C CALL QATR (XL,XU,EPS,NDIM,FCT,Y,IER,AUX) C PARAMETER FCT REQUIRES AN EXTERNAL STATEMENT. C C DESCRIPTION OF PARAMETERS C XL - THE LOWER BOUND OF THE INTERVAL. C XU - THE UPPER BOUND OF THE INTERVAL. C EPS - THE UPPER BOUND OF THE ABSOLUTE ERROR. C NDIM - THE DIMENSION OF THE AUXILIARY STORAGE ARRAY AUX. C NDIM-1 IS THE MAXIMAL NUMBER OF BISECTIONS OF C THE INTERVAL (XL,XU). C FCT - THE NAME OF THE EXTERNAL FUNCTION SUBPROGRAM USED. C Y - THE RESULTING APPROXIMATION FOR THE INTEGRAL VALUE. C IER - A RESULTING ERROR PARAMETER. C AUX - AN AUXILIARY STORAGE ARRAY WITH DIMENSION NDIM. C C REMARKS C ERROR PARAMETER IER IS CODED IN THE FOLLOWING FORM C IER=0 - IT WAS POSSIBLE TO REACH THE REQUIRED ACCURACY. C NO ERROR. C IER=1 - IT IS IMPOSSIBLE TO REACH THE REQUIRED ACCURACY C BECAUSE OF ROUNDING ERRORS. C IER=2 - IT WAS IMPOSSIBLE TO CHECK ACCURACY BECAUSE NDIM C IS LESS THAN 5, OR THE REQUIRED ACCURACY COULD NOT C BE REACHED WITHIN NDIM-1 STEPS. NDIM SHOULD BE C INCREASED. C C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED C THE EXTERNAL FUNCTION SUBPROGRAM FCT(X) MUST BE CODED BY C THE USER. ITS ARGUMENT X SHOULD NOT BE DESTROYED. C C METHOD C EVALUATION OF Y IS DONE BY MEANS OF TRAPEZOIDAL RULE IN C CONNECTION WITH ROMBERGS PRINCIPLE. ON RETURN Y CONTAINS C THE BEST POSSIBLE APPROXIMATION OF THE INTEGRAL VALUE AND C VECTOR AUX THE UPWARD DIAGONAL OF ROMBERG SCHEME. C COMPONENTS AUX(I) (I=1,2,...,IEND, WITH IEND LESS THAN OR C EQUAL TO NDIM) BECOME APPROXIMATIONS TO INTEGRAL VALUE WITH C DECREASING ACCURACY BY MULTIPLICATION WITH (XU-XL). C FOR REFERENCE, SEE C (1) FILIPPI, DAS VERFAHREN VON ROMBERG-STIEFEL-BAUER ALS C SPEZIALFALL DES ALLGEMEINEN PRINZIPS VON RICHARDSON, C MATHEMATIK-TECHNIK-WIRTSCHAFT, VOL.11, ISS.2 (1964), C PP.49-54. C (2) BAUER, ALGORITHM 60, CACM, VOL.4, ISS.6 (1961), PP.255. C C .................................................................. C SUBROUTINE QATR(XL,XU,EPS,NDIM,FCT,Y,IER,AUX) C C DIMENSION AUX(1) C C PREPARATIONS OF ROMBERG-LOOP AUX(1)=.5*(FCT(XL)+FCT(XU)) H=XU-XL IF(NDIM-1)8,8,1 1 IF(H)2,10,2 C C NDIM IS GREATER THAN 1 AND H IS NOT EQUAL TO 0. 2 HH=H E=EPS/ABS(H) DELT2=0. P=1. JJ=1 DO 7 I=2,NDIM Y=AUX(1) DELT1=DELT2 HD=HH HH=.5*HH P=.5*P X=XL+HH SM=0. DO 3 J=1,JJ SM=SM+FCT(X) 3 X=X+HD AUX(I)=.5*AUX(I-1)+P*SM C A NEW APPROXIMATION OF INTEGRAL VALUE IS COMPUTED BY MEANS OF C TRAPEZOIDAL RULE. C C START OF ROMBERGS EXTRAPOLATION METHOD. Q=1. JI=I-1 DO 4 J=1,JI II=I-J Q=Q+Q Q=Q+Q 4 AUX(II)=AUX(II+1)+(AUX(II+1)-AUX(II))/(Q-1.) C END OF ROMBERG-STEP C DELT2=ABS(Y-AUX(1)) IF(I-5)7,5,5 5 IF(DELT2-E)10,10,6 6 IF(DELT2-DELT1)7,11,11 7 JJ=JJ+JJ 8 IER=2 9 Y=H*AUX(1) RETURN 10 IER=0 GO TO 9 11 IER=1 Y=H*Y RETURN END C