STEPS Subroutine

subroutine STEPS(FODE, NEQN, Y, X, H, EPS, WT, START, HOLD, K, KOLD, CRASH, PHI, P, YP, ALPHA, W, G, KSTEPS, XOLD, IVC, IV, KGI, GI, FPWA1, FPWA2, FPWA3, FPWA4, FPWA5, IFPWA1, IFPC1, IFPC2)

Uses

  • proc~~steps~~UsesGraph proc~steps STEPS module~real_precision REAL_PRECISION proc~steps->module~real_precision

Arguments

Type IntentOptional Attributes Name
subroutine FODE(S, Y, YP, YPOLD, A, QR, ALPHA, TZ, PIVOT, NFE, N, IFLAG)
Arguments
Type IntentOptional Attributes Name
real(kind=R8) :: S
real(kind=R8) :: Y(:)
real(kind=R8) :: YP(N+1)
real(kind=R8) :: YPOLD(N+1)
real(kind=R8) :: A(:)
real(kind=R8) :: QR(N,N+1)
real(kind=R8) :: ALPHA(3*N+3)
real(kind=R8) :: TZ(N+1)
integer, DIMENSION(N+1) :: PIVOT
integer :: NFE
integer :: N
integer :: IFLAG
integer :: NEQN
real(kind=R8), dimension(:) :: Y
real(kind=R8) :: X
real(kind=R8) :: H
real(kind=R8) :: EPS
real(kind=R8), dimension(neqn) :: WT
logical :: START
real(kind=R8) :: HOLD
integer :: K
integer :: KOLD
logical :: CRASH
real(kind=R8), dimension(neqn,16) :: PHI
real(kind=R8), dimension(neqn) :: P
real(kind=R8), dimension(neqn) :: YP
real(kind=R8), dimension(12) :: ALPHA
real(kind=R8), dimension(12) :: W
real(kind=R8), dimension(13) :: G
integer :: KSTEPS
real(kind=R8) :: XOLD
integer :: IVC
integer, dimension(10) :: IV
integer :: KGI
real(kind=R8), dimension(11) :: GI
real(kind=R8), dimension(neqn) :: FPWA1
real(kind=R8), dimension(:) :: FPWA2
real(kind=R8), dimension(neqn-1,neqn) :: FPWA3
real(kind=R8), dimension(3*neqn) :: FPWA4
real(kind=R8), dimension(neqn) :: FPWA5
integer, dimension(neqn) :: IFPWA1
integer :: IFPC1
integer :: IFPC2

Variables

Type Visibility Attributes Name Initial
real(kind=R8), public :: ABSH
real(kind=R8), public, dimension(12) :: BETA
real(kind=R8), public :: ERK
real(kind=R8), public :: ERKM1
real(kind=R8), public :: ERKM2
real(kind=R8), public :: ERKP1
real(kind=R8), public :: ERR
real(kind=R8), public :: FOURU
real(kind=R8), public, dimension(13) :: GSTR
real(kind=R8), public :: HNEW
real(kind=R8), public :: P5EPS
real(kind=R8), public, dimension(12) :: PSI
real(kind=R8), public :: R
real(kind=R8), public :: REALI
real(kind=R8), public :: REALNS
real(kind=R8), public :: RHO
real(kind=R8), public :: ROUND
real(kind=R8), public, dimension(13) :: SIG
real(kind=R8), public :: SUM
real(kind=R8), public :: TAU
real(kind=R8), public :: TEMP1
real(kind=R8), public :: TEMP2
real(kind=R8), public :: TEMP3
real(kind=R8), public :: TEMP4
real(kind=R8), public :: TEMP5
real(kind=R8), public :: TEMP6
real(kind=R8), public, dimension(13) :: TWO
real(kind=R8), public :: TWOU
real(kind=R8), public, dimension(12) :: V
integer, public :: I
integer, public :: IFAIL
integer, public :: IM1
integer, public :: IP1
integer, public :: IQ
integer, public :: J
integer, public :: JV
integer, public :: KM1
integer, public :: KM2
integer, public :: KNEW
integer, public :: KP1
integer, public :: KP2
integer, public :: KPREV
integer, public :: L
integer, public :: LIMIT1
integer, public :: LIMIT2
integer, public :: NS
integer, public :: NSM2
integer, public :: NSP1
integer, public :: NSP2
logical, public :: PHASE1
logical, public :: NORND

Source Code

C    used by the ODE subroutine  STEPS  .
C
      USE HOMOTOPY
      USE REAL_PRECISION
C
      INTEGER, INTENT(IN)::N,NDIMA,TRACE
      REAL (KIND=R8), DIMENSION(:), INTENT(IN OUT)::A,Y
      INTEGER, INTENT(IN OUT)::IFLAG
      REAL (KIND=R8), INTENT(IN OUT)::ARCTOL,EPS
      INTEGER, INTENT(OUT)::NFE
      REAL (KIND=R8), INTENT(OUT)::ARCLEN
C
C LOCAL VARIABLES.
      REAL (KIND=R8), SAVE:: CURSW,CURTOL,EPSSTP,EPST,H,HOLD,
     &  S,S99,SA,SB,SOUT,SQNP1,XOLD,Y1SOUT
      INTEGER, SAVE:: IFLAGC,ITER,IVC,JW,K,KGI,KOLD,
     &  KSTEPS,LCODE,LIMIT,NFEC,NP1
      LOGICAL, SAVE:: CRASH,START,ST99
C
C *****  ARRAY DECLARATIONS.  *****
C
C ARRAYS NEEDED BY THE ODE SUBROUTINE  STEPS .
      REAL (KIND=R8), ALLOCATABLE, SAVE:: P(:),PHI(:,:),WT(:),YP(:)
      REAL (KIND=R8), SAVE:: ALPHAS(12),G(13),GI(11),W(12)
      INTEGER, SAVE:: IV(10)
C
C ARRAYS NEEDED BY  FIXPDF , FODE , AND LAPACK ROUTINES.
      REAL (KIND=R8), DIMENSION(:), ALLOCATABLE, SAVE:: YPOLD
      REAL (KIND=R8):: ALPHA(3*N+3),AOLD(NDIMA),QR(N,N+1),TZ(N+1)
      INTEGER:: PIVOT(N+1)
C
C *****  END OF DIMENSIONAL INFORMATION.  *****
C
C LIMITD  IS AN UPPER BOUND ON THE NUMBER OF STEPS.  IT MAY BE
C CHANGED BY CHANGING THE FOLLOWING PARAMETER STATEMENT:
      INTEGER, PARAMETER:: LIMITD=1000
C
      INTERFACE
        SUBROUTINE FODE(S,Y,YP,YPOLD,A,QR,ALPHA,TZ,PIVOT,NFE,N,IFLAG)
        USE REAL_PRECISION
        REAL (KIND=R8):: S
        INTEGER:: IFLAG,N,NFE
        REAL (KIND=R8):: A(:),Y(:),YP(N+1),YPOLD(N+1)
        REAL (KIND=R8):: ALPHA(3*N+3),QR(N,N+1),TZ(N+1)
        INTEGER, DIMENSION(N+1):: PIVOT
        END SUBROUTINE FODE
        SUBROUTINE STEPS(F,NEQN,Y,X,H,EPS,WT,START,HOLD,K,KOLD,CRASH,
     &  PHI,P,YP,ALPHA,W,G,KSTEPS,XOLD,IVC,IV,KGI,GI,  FPWA1,FPWA2,
     &  FPWA3,FPWA4,FPWA5,IFPWA1,IFPC1,IFPC2)
        USE REAL_PRECISION
        EXTERNAL F
        REAL (KIND=R8):: ALPHA,EPS,FPWA1,FPWA2,FPWA3,FPWA4,FPWA5,
     &  G,GI,H,HOLD,P,PHI,W,WT,X,XOLD,Y,YP
        INTEGER:: IFPC1,IFPC2,IFPWA1,IV,IVC,K,KGI,KOLD,KSTEPS,NEQN
        LOGICAL:: CRASH,START
        DIMENSION Y(:),WT(NEQN),PHI(NEQN,16),P(NEQN),YP(NEQN),
     &  ALPHA(12),W(12),G(13),GI(11),IV(10),
     &  FPWA1(NEQN),FPWA2(:),FPWA3(NEQN-1,NEQN),FPWA4(3*NEQN),
     &  FPWA5(NEQN),IFPWA1(NEQN)
        END SUBROUTINE STEPS