#include "auto_f2c.h" /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* Duffing eq. slow flow */ /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ int func (integer ndim, const doublereal *u, const integer *icp, const doublereal *par, integer ijac, doublereal *f, doublereal *dfdu, doublereal *dfdp) { doublereal a,b,k1,F; /* Evaluates the algebraic equations or ODE right hand side */ /* Input arguments : */ /* ndim : Dimension of the ODE system */ /* u : State variables */ /* icp : Array indicating the free parameter(s) */ /* par : Equation parameters */ /* Values to be returned : */ /* f : ODE right hand side values */ /* Normally unused Jacobian arguments : IJAC, DFDU, DFDP (see manual) */ a = u[0]; b = u[1]; k1=par[0]; F=par[1]; f[0] = -.1*a-2*k1*b+.75*b*(a*a+b*b); f[1] = -.1*b+2*k1*a-.75*a*(a*a+b*b)+F; return 0; } /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ int stpnt (integer ndim, doublereal t, doublereal *u, doublereal *par) { /* Input arguments : */ /* ndim : Dimension of the ODE system */ /* Values to be returned : */ /* u : A starting solution vector */ /* par : The corresponding equation-parameter values */ /* Initialize the equation parameters */ par[0] = (doublereal)-0.1; par[1] = (doublereal)0.1; /* Initialize the solution */ u[0] = (doublereal)0.31399145187; u[1] = (doublereal)0.110886466805; return 0; } /* The following subroutines are not used here, */ /* but they must be supplied as dummy routines */ /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ int bcnd (integer ndim, const doublereal *par, const integer *icp, integer nbc, const doublereal *u0, const doublereal *u1, integer ijac, doublereal *fb, doublereal *dbc) { return 0; } /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ int icnd (integer ndim, const doublereal *par, const integer *icp, integer nint, const doublereal *u, const doublereal *uold, const doublereal *udot, const doublereal *upold, integer ijac, doublereal *fi, doublereal *dint) { return 0; } /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ int fopt (integer ndim, const doublereal *u, const integer *icp, const doublereal *par, integer ijac, doublereal *fs, doublereal *dfdu, doublereal *dfdp) { return 0; } /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ int pvls (integer ndim, const doublereal *u, doublereal *par) { return 0; } /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */