End of file
Contents
Index

      SUBROUTINE COEFFI (M,IFLAG,COEFF,QG)
C
C*****************************************************************
C                                                                *
C This subroutine determines the coefficients for the designated *
C method.                                                        *
C                                                                *
C                                                                *
C INPUT PARAMETERS:                                              *
C =================                                              *
C M       : Dimension of the matrix COEFF depending on the chosen*
C           embedding formula                                    *
C IFLAG   : classifies the various embedding formulas,           *
C           1 <= IFLAG <= 22                                     *
C                                                                *
C                                                                *
C OUTPUT PARAMETERS:                                             *
C ==================                                             *
C COEFF   : 2-dimensional DOUBLE PRECISION array COEFF(1:16,1:M) *
C           with the coefficients for the embedding formula      *
C QG      : DOUBLE PRECISION value for the global error order    *
C                                                                *
C                                                                *
C LOCAL VARIABLES:                                               *
C ================                                               *
C I       : ] loop                                               *
C J       : ]    counters                                        *
C                                                                *
C                                                                *
C----------------------------------------------------------------*
C                                                                *
C  required subroutines: RKF43, RKF54, RK546M, RKE54, HIHA5,     *
C                        RK547S, RK547M, RK547C, RK658M,         *
C                        RK658S, RK658C, RKV65, RKF65A,          *
C                        RKF65B, RKC65, RKV65A, RKV65B,          *
C                        RKV76, RK8713M, RKF87, RKV87, RKV98     *
C                                                                *
C*****************************************************************
C                                                                *
C  Author   : Volker Krüger                                      *
C  Date     : 18.05.1993                                         *
C  Source   : FORTRAN 77                                         *
C                                                                *
C*****************************************************************
C
C Declarations
C
      DOUBLE PRECISION COEFF(16,M),QG
C
C Set the matrix COEFF equal to zero initially
C
      DO 10 I=1,M
       DO 10 J=1,M
        COEFF(I,J)=0.0D0
10    CONTINUE
C
C If IFLAG=1, use the method : RKF4(3)
C
      IF(IFLAG .EQ. 1) THEN
        CALL RKF43(M,COEFF,QG)
C
C If IFLAG=2, use the method : RKF5(4)
C
      ELSEIF(IFLAG .EQ. 2) THEN
        CALL RKF54(M,COEFF,QG)
C
C If IFLAG=3, use the method : RK5(4)6M
C
      ELSEIF(IFLAG .EQ. 3) THEN
        CALL RK546M(M,COEFF,QG)
C
C If IFLAG=4, use the method : RKE5(4)
C
      ELSEIF(IFLAG .EQ. 4) THEN
        CALL RKE54(M,COEFF,QG)
C
C If IFLAG=5, use the method : RK5(4)7S
C
      ELSEIF(IFLAG .EQ. 5) THEN
        CALL HIHA5(M,COEFF,QG)
C
C If IFLAG=6, use the method : RK5(4)7S
C
      ELSEIF(IFLAG .EQ. 6) THEN
        CALL RK547S(M,COEFF,QG)
C
C If IFLAG=7, use the method : RK5(4)7M
C
      ELSEIF(IFLAG .EQ. 7) THEN
        CALL RK547M(M,COEFF,QG)
C
C If IFLAG=8, use the method : RK5(4)7C
C
      ELSEIF(IFLAG .EQ. 8) THEN
        CALL RK547C(M,COEFF,QG)
C
C If IFLAG=9, use the method : RK6(5)8M
C
      ELSEIF(IFLAG .EQ. 9) THEN
        CALL RK658M(M,COEFF,QG)
C
C If IFLAG=10, use the method : RK6(5)8S
C
      ELSEIF(IFLAG .EQ. 10) THEN
        CALL RK658S(M,COEFF,QG)
C
C If IFLAG=11, use the method : RK6(5)8C
C
      ELSEIF(IFLAG .EQ. 11) THEN
        CALL RK658C(M,COEFF,QG)
C
C If IFLAG=12, use the method : RKV6(5)
C
      ELSEIF(IFLAG .EQ. 12) THEN
        CALL RKV65(M,COEFF,QG)
C
C If IFLAG=13, use the method : RKF6(5)A
C
      ELSEIF(IFLAG .EQ. 13) THEN
        CALL RKF65A(M,COEFF,QG)
C
C If IFLAG=14, use the method : RKF6(5)B
C
      ELSEIF(IFLAG .EQ. 14) THEN
        CALL RKF65B(M,COEFF,QG)
C
C If IFLAG=15, use the method : RKC6(5)
C
      ELSEIF(IFLAG .EQ. 15) THEN
        CALL RKC65(M,COEFF,QG)
C
C If IFLAG=16, use the method : RKV6(5)9A
C
      ELSEIF(IFLAG .EQ. 16) THEN
        CALL RKV65A(M,COEFF,QG)
C
C If IFLAG=17, use the method : RKV6(5)9B
C
      ELSEIF(IFLAG .EQ. 17) THEN
        CALL RKV65B(M,COEFF,QG)
C
C If IFLAG=18, use the method : RKV7(6)
C
      ELSEIF(IFLAG .EQ. 18) THEN
        CALL RKV76(M,COEFF,QG)
C
C If IFLAG=19, use the method : RK8(7)13M
C
      ELSEIF(IFLAG .EQ. 19) THEN
        CALL RK8713(M,COEFF,QG)
C
C If IFLAG=20, use the method : RKF8(7)
C
      ELSEIF(IFLAG .EQ. 20) THEN
        CALL RKF87(M,COEFF,QG)
C
C If IFLAG=21, use the method : RKV8(7)
C
      ELSEIF(IFLAG .EQ. 21) THEN
        CALL RKV87(M,COEFF,QG)
C
C If IFLAG=22, use the method : RKV9(8)
C
      ELSEIF(IFLAG .EQ. 22) THEN
        CALL RKV98(M,COEFF,QG)
      ENDIF
      RETURN
      END


Begin of file
Contents
Index