1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218
|
!----------------------------------------------------------------------
!----------------------------------------------------------------------
! aut.f90 : Model AUTO-equations file
!----------------------------------------------------------------------
!----------------------------------------------------------------------
SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP)
! ---------- ----
!
! Evaluates the algebraic equations or ODE right hand side
!
! Input arguments :
! NDIM : Dimension of the algebraic or ODE system
! U : State variables
! ICP : Array indicating the free parameter(s)
! PAR : Equation parameters
!
! Values to be returned :
! F : Equation or ODE right hand side values
!
! Normally unused Jacobian arguments : IJAC, DFDU, DFDP (see manual)
IMPLICIT NONE
INTEGER, INTENT(IN) :: NDIM, IJAC, ICP(*)
DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*)
DOUBLE PRECISION, INTENT(OUT) :: F(NDIM)
DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM),DFDP(NDIM,*)
F(1)= ....
F(2)= ....
END SUBROUTINE FUNC
!----------------------------------------------------------------------
!----------------------------------------------------------------------
SUBROUTINE STPNT(NDIM,U,PAR)
! ---------- -----
!
! Input arguments :
! NDIM : Dimension of the algebraic or ODE system
!
! Values to be returned :
! U : A starting solution vector
! PAR : The corresponding equation-parameter values
!
! Note : For time- or space-dependent solutions this subroutine has
! arguments (NDIM,U,PAR,T), where the scalar input parameter T
! contains the varying time or space variable value.
IMPLICIT NONE
INTEGER, INTENT(IN) :: NDIM
DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*)
DOUBLE PRECISION, INTENT(IN) :: T
! Initialize the equation parameters
PAR(1)= ....
PAR(2)= ....
! Initialize the solution
U(1)= ....
U(2)= ....
END SUBROUTINE STPNT
!----------------------------------------------------------------------
!----------------------------------------------------------------------
SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC)
! ---------- ----
!
! Boundary Conditions
!
! Input arguments :
! NDIM : Dimension of the ODE system
! PAR : Equation parameters
! ICP : Array indicating the free parameter(s)
! NBC : Number of boundary conditions
! U0 : State variable values at the left boundary
! U1 : State variable values at the right boundary
!
! Values to be returned :
! FB : The values of the boundary condition functions
!
! Normally unused Jacobian arguments : IJAC, DBC (see manual)
IMPLICIT NONE
INTEGER, INTENT(IN) :: NDIM, ICP(*), NBC, IJAC
DOUBLE PRECISION, INTENT(IN) :: PAR(*), U0(NDIM), U1(NDIM)
DOUBLE PRECISION, INTENT(OUT) :: FB(NBC)
DOUBLE PRECISION, INTENT(INOUT) :: DBC(NBC,*)
!XXX FB(1)=
!XXX FB(2)=
END SUBROUTINE BCND
!----------------------------------------------------------------------
!----------------------------------------------------------------------
SUBROUTINE ICND(NDIM,PAR,ICP,NINT,U,UOLD,UDOT,UPOLD,FI,IJAC,DINT)
! ---------- ----
!
! Integral Conditions
!
! Input arguments :
! NDIM : Dimension of the ODE system
! PAR : Equation parameters
! ICP : Array indicating the free parameter(s)
! NINT : Number of integral conditions
! U : Value of the vector function U at `time' t
!
! The following input arguments, which are normally not needed,
! correspond to the preceding point on the solution branch
! UOLD : The state vector at 'time' t
! UDOT : Derivative of UOLD with respect to arclength
! UPOLD : Derivative of UOLD with respect to `time'
!
! Normally unused Jacobian arguments : IJAC, DINT
!
! Values to be returned :
! FI : The value of the vector integrand
IMPLICIT NONE
INTEGER, INTENT(IN) :: NDIM, ICP(*), NINT, IJAC
DOUBLE PRECISION, INTENT(IN) :: PAR(*)
DOUBLE PRECISION, INTENT(IN) :: U(NDIM), UOLD(NDIM), UDOT(NDIM), UPOLD(NDIM)
DOUBLE PRECISION, INTENT(OUT) :: FI(NINT)
DOUBLE PRECISION, INTENT(INOUT) :: DINT(NINT,*)
!XXX FI(1)=
END SUBROUTINE ICND
!----------------------------------------------------------------------
!----------------------------------------------------------------------
SUBROUTINE FOPT(NDIM,U,ICP,PAR,IJAC,FS,DFDU,DFDP)
! ---------- ----
!
! Defines the objective function for algebraic optimization problems
!
! Supplied variables :
! NDIM : Dimension of the state equation
! U : The state vector
! ICP : Indices of the control parameters
! PAR : The vector of control parameters
!
! Values to be returned :
! FS : The value of the objective function
!
! Normally unused Jacobian argument : IJAC, DFDP
IMPLICIT NONE
INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC
DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*)
DOUBLE PRECISION, INTENT(OUT) :: FS
DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM),DFDP(*)
!XXX FS=
END SUBROUTINE FOPT
!----------------------------------------------------------------------
!----------------------------------------------------------------------
SUBROUTINE PVLS(NDIM,U,PAR)
! ---------- ----
IMPLICIT NONE
INTEGER, INTENT(IN) :: NDIM
DOUBLE PRECISION, INTENT(IN) :: U(NDIM)
DOUBLE PRECISION, INTENT(INOUT) :: PAR(*)
!----------------------------------------------------------------------
! NOTE :
! Parameters set in this subroutine should be considered as ``solution
! measures'' and be used for output purposes only.
!
! They should never be used as `true'' continuation parameters.
!
! They may, however, be added as ``over-specified parameters'' in the
! parameter list associated with the AUTO-Constant NICP, in order to
! print their values on the screen and in the ``p.xxx file.
!
! They may also appear in the list associated with AUTO-Constant NUZR.
!
!----------------------------------------------------------------------
! For algebraic problems the argument U is, as usual, the state vector.
! For differential equations the argument U represents the approximate
! solution on the entire interval [0,1]. In this case its values must
! be accessed indirectly by calls to GETP, as illustrated below.
!----------------------------------------------------------------------
!
! Set PAR(2) equal to the L2-norm of U(1)
!XX PAR(2)=GETP('NRM',1,U)
!
! Set PAR(3) equal to the minimum of U(2)
!XX PAR(3)=GETP('MIN',2,U)
!
! Set PAR(4) equal to the value of U(2) at the left boundary.
!XX PAR(4)=GETP('BV0',2,U)
!
! Set PAR(5) equal to the pseudo-arclength step size used.
!XX PAR(5)=GETP('STP',1,U)
!
!----------------------------------------------------------------------
! The first argument of GETP may be one of the following:
! 'NRM' (L2-norm), 'MAX' (maximum),
! 'INT' (integral), 'BV0 (left boundary value),
! 'MIN' (minimum), 'BV1' (right boundary value).
!
! Also available are
! 'STP' (Pseudo-arclength step size used).
! 'FLD' (`Fold function', which vanishes at folds).
! 'BIF' (`Bifurcation function', which vanishes at singular points).
! 'HBF' (`Hopf function'; which vanishes at Hopf points).
! 'SPB' ( Function which vanishes at secondary periodic bifurcations).
!----------------------------------------------------------------------
END SUBROUTINE PVLS
!----------------------------------------------------------------------
!----------------------------------------------------------------------
|