File: RKGSTT.FT of Tape: Various/ETH/eth11-1
(Source file text)
C RKGSTT.FTN - SAMPLE PROGRAM TO TEST C RKGS - SOLUTION OF SYSTEM OF 1ST ORDER DIFF. EQNS. C C PROBLEM: C Y1' = 1/Y2 WITH Y1(0) = 1 C Y2' =-1/Y1 WITH Y2(0) = 1 C C SOLUTION: C Y1(X) = EXP(X) AND Y2(X) = EXP(-X) EXTERNAL FCN EXTERNAL OUTPUT DIMENSION Y(2),DERY(2),AUX(8,2),PARAM(5) C C OUTPUT CHANNEL = IOUT IOUT=2 C ALSO USED IN ROUTINE OUTPUT C INITIALIZATION Y(1)=1. Y(2)=1. PARAM(1)=0. PARAM(2)=1.0 PARAM(3)=0.1 PARAM(4)=1.E-5 DERY(1)=.2 DERY(2)=.8 C DERY CONTAINS (INITIALLY) THE WEIGHTING FACTORS FOR THE ERRORS NDIM=2 CALL RKGS(PARAM,Y,DERY,NDIM,IHLF,FCN,OUTPUT,AUX) STOP END SUBROUTINE FCN(X,Y,DERY) DIMENSION Y(1),DERY(1) DERY(1)=1./Y(2) DERY(2)=-1./Y(1) RETURN END SUBROUTINE OUTPUT(X,Y,DERY,IHLF,NDIM,PARAM) DIMENSION Y(1),DERY(1),PARAM(1) DATA LOOP/0/,IOUT/2/ C C OUTPUT CHANNEL = IOUT IF(LOOP.NE.0) GO TO 1 LOOP=1 WRITE(IOUT,100) 100 FORMAT(//' RESULTS OF RKGS ON:'/' Y1''=1/Y2 AND Y1(0)=1'/ 1' Y2''=-1/Y1 AND Y2(0)=1') WRITE(IOUT,101) 101 FORMAT(//7X'X'9X'Y1(X)'10X'Y1(ACTUAL)'9X'Y2(X)'10X'Y2(ACTUAL'//) 1 Y1A=EXP(X) Y2A=EXP(-X) WRITE(IOUT,102) X,Y(1),Y1A,Y(2),Y2A 102 FORMAT(F10.2,4E17.8) RETURN END