pax_global_header00006660000000000000000000000064120616144760014521gustar00rootroot0000000000000052 comment=9dc40c3b178147b348b4655fff247c8632bc420f auto-07p-0.9.1+dfsg/000077500000000000000000000000001206161447600140235ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/000077500000000000000000000000001206161447600144315ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/.autorc000077500000000000000000000116571206161447600157440ustar00rootroot00000000000000[AUTO_plotter] #default_option="d1" #d1 = {"grid": False, "use_labels": True, "use_symbols": True, "stability":True} # similarly you can redefine d0, d2, d3, d4. #grid = False #stability = False #use_labels = True #use_symbols = False #top_title = '' #top_title_fontsize = 12 #xlabel = '' #xlabel_fontsize = 12 #ylabel = '' #ylabel_fontsize = 12 #zlabel = '' #zlabel_fontsize = 12 #solution_indepvarname = "time" #solution_coordnames = ["$x$","$y$","$z$"] #bifurcation_coordnames = ["?", "L2-norm"] #line_width = 2.0 #dashes = (6.0,6.0) #background = "white" #foreground = "black" #color_list = "black red green blue" #coloring_method = "curve" # or "branch" #symbol_color = "red" #symbol_font = "-misc-fixed-*-*-*-*-*-*-*-*-*-*-*-*" #decorations = True #smart_label = True #minx = 0 #maxx = 0 #miny = 0 #maxy = 0 #minz = 0 #maxz = 0 #azimuth = -60 # for 3D plots, in degrees #elevation = 30 # for 3D plots, in degrees #width = 600 #height = 480 #left_margin = 80 #right_margin = 40 #top_margin = 40 #bottom_margin = 40 #xticks = 5 #yticks = 5 #zticks = 5 #tick_label_template = "%.2e" #tick_length = 0.2 #odd_tick_length = 0.4 #even_tick_length = 0.2 #ps_colormode = "color" #mark_t = None #or a real value between 0 and 1 #type = "bifurcation" # or "solution" #bifurcation_x = [0] #bifurcation_y = [1] #bifurcation_z = None #solution_x = [0,3,6,9] #solution_y = [1,4,7,10] #solution_z = [2,5,8,11] ## Sets of columns that the user is likely to want to use #bifurcation_column_defaults = None #solution_column_defaults = [[0,3,6,9],[1,4,7,10],[2,5,8,11],['t','t','t','t']] # The label(s) of the solution we wish to draw #label = [1,2,3] # or "all" #label_defaults = None # The index/indices of the solution we wish to draw #index = [0] #bifurcation_diagram_filename = 'fort.7' #solution_filename = 'fort.8' #bifurcation_symbol = "square" #limit_point_symbol = None #hopf_symbol = "fillsquare" #period_doubling_symbol = "doubletriangle" #torus_symbol = "filldiamond" #user_point_symbol = "U" #error_symbol = None ############################################################ # below are defaults, for documentation purposes only # uncomment the section header and all entries to customize #[AUTO_command_aliases] #ls =commandLs #cd =commandCd #shell =commandShell #cat =commandCat #wait =commandWait #copyDemo =commandCopyDemo #gui =commandCreateGUI #branchPoint =commandQueryBranchPoint #eigenvalue =commandQueryEigenvalue #floquet =commandQueryFloquet #hopf =commandQueryHopf #iterations =commandQueryIterations #limitpoint =commandQueryLimitpoint #note =commandQueryNote #secondaryPeriod =commandQuerySecondaryPeriod #stepsize =commandQueryStepsize #changeConstant =commandRunnerConfigFort2 #printConstant =commandRunnerPrintFort2 #append =commandAppend #diagramAndSolutionGet =commandParseDiagramAndSolutionFile #clean =commandClean #constantsGet =commandParseConstantsFile #copy =commandCopyDataFiles #delete =commandDeleteDataFiles #deleteFort =commandDeleteFortFiles #diagramGet =commandParseDiagramFile #double =commandDouble #demo =commandCopyAndLoadDemo #load =commandRunnerLoadName #loadbd =commandParseOutputFiles #move =commandMoveFiles #plot =commandPlotter #plot3 =commandPlotter3D #relabel =commandRelabel #merge =commandMergeBranches #subtract =commandSubtractBranches #run =commandRun #save =commandCopyFortFiles #solutionGet =commandParseSolutionFile #triple =commandTriple #userData =commandUserData #quit =commandQuit #br =commandQueryBranchPoint #eg =commandQueryEigenvalue #fl =commandQueryFloquet #hp =commandQueryHopf #it =commandQueryIterations #lm =commandQueryLimitpoint #nt =commandQueryNote #sc =commandQuerySecondaryPeriod #st =commandQueryStepsize #ch =commandRunnerConfigFort2 #hch =commandRunnerConfigFort12 #pr =commandRunnerPrintFort2 #hpr =commandRunnerPrintFort12 #ap =commandAppend #bt =commandParseDiagramAndSolutionFile #cl =commandClean #cn =commandParseConstantsFile #hcn =commandParseHomcontFile #dl =commandDeleteDataFiles #dsp =commandDeleteSpecialPoints #ksp =commandKeepSpecialPoints #dlb =commandDeleteLabels #klb =commandKeepLabels #dg =commandParseDiagramFile #db =commandDouble #dm =commandCopyAndLoadDemo #bd =commandParseOutputFiles #ld =commandRunnerLoadName #pl =commandPlotter ##FIXME: This doesn't match the rule we use for all other commands #p3 =commandPlotter3D #rl =commandRelabel #mb =commandMergeBranches #sb =commandSubtractBranches #rn =commandRun #sv =commandCopyFortFiles #sl =commandParseSolutionFile #tr =commandTriple #us =commandUserData #man =commandInteractiveHelp #bp =commandQueryBranchPoint #ev =commandQueryEigenvalue #hb =commandQueryHopf #lp =commandQueryLimitpoint #cc =commandRunnerConfigFort2 #pc =commandRunnerPrintFort2 #p2 =commandPlotter #r =commandRun #sp =commandQuerySecondaryPeriod #ss =commandQueryStepsize #df =commandDeleteFortFiles #q =commandQuit #splabs =commandSpecialPointLabels auto-07p-0.9.1+dfsg/07p/CHANGELOG000066400000000000000000001242571206161447600156560ustar00rootroot000000000000000.9.1: * Main AUTO: - Fix makefile dependency problem. - Create *F variants for FNBL, BCBL, and ICBL to allow toolboxes to follow folds in general BVPs by supplying their ODEs, boundary, and integral conditions. - Make HomCont use those new interfaces in toolboxbv.f90 to be able to follow LPs for homoclinic orbits in n+1 parameters. * Python: - Fix problem about AUTO complaining about a missing solution file when using old-style constant files. - Write out complete fort.2 file in case of problems to be able to reproduce a run quickly. 0.9.0: * Main AUTO: - Allow to use the AUTO constant "U" for constant-in-time solutions for BVPs. - Do not try to compute first Lyapunov coefficient if a Bogdanov-Takens bifurcation function is already detected, which gave erroneous results. (Bug reported by Christoph Kirst ) - Turn off detection of PD/TR/Rn bifurcations for 2 dimensional systems. They should not occur but sometimes the Floquet multipliers are inaccurate. - Fix issue with directly reading python/test_data/c.ab from Fortran, ignoring spaces directly after { or [. - Reintroduce the AUTO_COMMAND_PREFIX environment variable from AUTO2000 for running with MPI. - Reading AUTO constants from standard input instead of fort.2: - Avoid BACKSPACE for reading the old-style ICP list read NICP manually. - Completely eliminate BACKSPACE for fort.2 reads by manually reading the first non-blank characters on each line and checking for a number: in which case it is an old-style constants file. - If fort.2 does not exist, then read from standard input. - A special value for the AUTO constant 's', namely s='/' is used by the Python interface to also pass solution files using standard input, following the line containing s='/'. - BP continuation (BPCONT) improvements: - Use explicit derivatives where possible for algebraic equations, limit cycles, and BVPs. - Merge common code for boundary conditions for BVPs. - Cleanups, so the indices are consistent between fixed/variable period continuations. - Match coordinates in start/restart systems for BPCONT for LCs/BVPs to simplify code. - Shuffle internal parameters so that unused internal parameters can be dropped after they are no longer necessary. - Pass UPOLD from solvebv to FUNI via extra coordinates in UOLD past NDIM. This eliminates an implementation problem in BPCONT where it is needed to reevaluate F(UOLD) but it did so for the new parameter values. - Avoid unnecessary repeat calculations of UPOLD. - Use UPOLD directly for BP continuation for BVPs. - Add more comments to BP cont functions and make RLOLD accessible to toolbox functions. - Automatically add -m32 to g++ for 64bit Macs with 32bit Coin3D, avoiding the need to specify this manually. - Make extending solutions (in STPNT) possible from loci of bifurcations, including certain old solution files. - Force recalculation of the direction vector if dimensions have changed. - Avoid memory allocations where possible in extended systems with expanded Jacobian matrices. - Copy UOLD in STUPV to avoid problems. - Check for infinite Floquet multipliers to avoid floating-point exceptions. - Centralize ITPST*10+ITP calculations out of toolboxes. - Replace ITP in toolbox test functions by ASCII ATYPE for clarity. - Extract type/number from restarts like IRS='LPD1' manually to deal with three-letter types. - Internally denote special points without stability changes by for example 'HB0' witha trailing '0'. Allows for special handling in LCSP**, where these are used in the first detection but ignored after. * PyPLAUT: - Fixes and workarounds to get PyPLAUT to work with Matplotlib 1.1: - To get 2D limits for Matplotlib 1.1, use get_xlim/get_ylim explicitly from the 2D Axes class. - Fix 3D graphics problem with Matplotlib 1.1. - Add comments to default autorc file. - Reorder autorc commands to move often-used settings at the top. - Do not plot unplottable 3D curves (when at least one coordinate is invalid for a particular branch). - Deal with d0/d1/... autorc options correctly if they use True/False instead of numbers. - Add a strategic garbage collect call to avoid memory issues. - Fix memory leak when using the labelnames setting. - Use azimuth/elevation settings if one of them is commented out. * PLAUT04: - Change order of settings in plaut04.rc in order of importance. - Fix plotting s files without matching b files. - Fix crash when plotting bifurcation curves if no solution is present. - Check for PT 9999 for wraparound in bifurcation diagrams. - Fix "@r3b" or plaut04 -r3b without other arguments. * Python: - Parse blank lines with spaces in constants files correctly (reported by Jorge Galan-Vioque). - Make working with branches a little easier: - Negative indices now work on a branch ([-1] for the last point). - save(list of branches, 'xxx') now works. - 'TY' for 'TY name' now works on points in branches. - Allow s.PAR to be used directly as an argument for the PAR= AUTO constant. (Based on a suggestion by Jan-Hendrik Schleimer .) - Avoid read() on already read & parsed solutions. - Parse more Fortran-style floating point constants, in the form of 2-3 (which means 2e-3). - Fixes for Python 3. - The run command now uses input redirection instead of fort.2/fort.3 to pass constants and solutions to AUTO. * Shell commands: - @H, @R, @h, and @r now use input redirection instead of fort.2 to supply AUTO with constants. The @ commands automatically add s='xxx' to avoid copying to fort.3. Together with sv='xxx' this allows running multiple AUTO instances within the same folder. * Demos: - Updated enz, log, hen, lrz, dd2, pp2, ffn, and exp demos. * Manual: - Document role of PAR(12). - Specify location of Mac OS X development tools. - Updated demos. 0.8.0: * Main AUTO: - Support for codimension-two bifurcations: - Add support for detecting Generalized-Hopf/Bautin (GH), Bogdanov-Takens (BT), Zero-Hopf (ZH), and Cusp (CP) bifurcations in algebraic systems along Hopf (HB) and fold (LP) curves. - Add support for detection of 1:1 (R1), 1:2 (R2), 1:3 (R3), and 1:4 (R4) resonances for limit cycles and maps along fold (LP), period-doubling (PD) and torus (TR) curves. - Add support for detection of fold-flip (LPD), fold-torus (LTR), and flip-torus (PTR), bifurcations for maps along LP, PD, and TR curves. - Improved support for maps: - Display PD or TR instead of HB for period-doubling and Neimark-Sacker bifurcations. - Implement branch switching at period-doubling bifurcations for maps. The discrete period is taken from PAR(11). Maps are then iterated n times and the derivatives are determined from the basic derivatives using the chain rule. - PD continuation for maps now uses a smaller system (2n+1 dim), similar to folds. - Improved support for waves (IPS=11,12): - Fix continuation of Hopf bifurcations. - Period doublings with ISW=-1 are now possible.. - Permit continuation of PD/LP/TR/BP, where applicable. - Don't change IPS anymore for waves but check explicitly for 11 or 12 instead. - AUTO constants: - Use JAC=-1 if you only specify the function derivatives (DFDU) without parameter derivatives (DFDP) in equation files. - Let IID=0 produce no diagnostic output. - Introduce new AUTO constant IIS to optionally add no direction information to solution files to save space: IIS=0 no directions in s files. IIS=1 only directions for LP(BVP),BP,PD,TR IIS=2 for all points except RG IIS=3 everywhere - New: LAB=n starts with label n - New: IBR=n starts with branch n - New: TY='HB4' redefines type of restart label to be a Hopf bifurcation with period in PAR(4). - New: UZSTOP, like UZR but stops, to avoid minus signs in the UZR lists. - Change default values of NMX and NPR to 0. - Changed the Hopf/Neimark-Sacker bifurcation following algorithm to use a reduced standard augmented system. (2n+2 instead of 3n+2, see Kuznetsov, 3rd ed., (10.80)). This makes it possible to detect BT bifurcations on Hopf curves; the algorithm is forced to stop there. The Hopf phase condition was replaced by a symmetric expression that approximates the previously used phase condition. - Added support for computing the first Lyapunov coefficient for Hopf bifurcations to detect GH bifs and print supercritical/subcritical information in diagnostics file. - Avoid calculating derivatives numerically when possible for HB, LP, PD, TR, and HomCont continuations to improve accuracy and performance. Note (esp. for HomCont) that equation files now need parameter derivatives with JAC=1; use JAC=-1 if only variable derivatives are present. Existing demos were adjusted. - Reorganized test function zero detection: - Merged individual bifurcation checks into a loop. - FNCS is no longer a dummy procedure; the variable ITEST determines the test function that is used. This allows for the removal of many unused arguments. Also eliminate IAP(26) for IUZR. - Do not try to find a special point after non-convergence. Adjust ITP while looking for a special point where appropriate. - Correct mid-value given to Mueller's method in special point locators: RDS can be changed by STEPBV/STEPAE so needs to be added to the right-hand value S1 after instead of before calling it. - Modified the special point locators to be more accurate: * if Newton iterations do not converge, revert to the previous converged state and report "possible special point" * try all special points: do not report one or disable other types as soon as one is found * recompute test functions if the locator has changed UPS through STEPAE/STEPBV, using STEPPED and ISTEPPED variables. * some demos now report new labels (pp3, sib, tfc, tor) - Change Mueller's method to avoid loss of significance, by multiplying -c+r by (-c-r)/(-c-r) and evaluating the result manually. - Completely recover the previous state if a special point is not found. - Added some logic to deal with multiple test functions becoming zero at a special point. Make explicit that "first come, first served" except for a few exceptions. - Do not transpose DFDU in inner loop because it destroys the assumed zeros that can be skipped in the user's FUNC. - Detect overflows for PAR(*) with respect to NPAR after calling PVLS. PAR(*) always has at least NPARX elements. - Only print and use the basic Floquet multipliers for BP/LP/PD/TR continuations of limit cycles. For this, NULLVC needs to return the pivot rows, so a set of independent rows can be found for parts of the monodromy matrix factors. - Reorganized the linear solver so the algorithm works independently of the parallellization so results are identical independent of the number of processors used. - Fix GETP for the step size, that is, GETP('STP',0,U). - Sort purely imaginary eigenvalues for conservative systems returned by GETP('EIG',...) by imaginary part. - Fix stability information for last point on curve. - Improve torus bifurcation initialiation by using the correct sin/cos functions. - Move the torus angle back to PAR(12) so it can be explicitly specified in ICP and monitored that way. - Use consistent sign for branch direction also when switching branches, not just for normal branches. - If the parameter direction is close to zero when starting a new branch, look at the other parameters and coordinates instead to find a positive direction. This should make branch directions unique in most cases across architectures. - Physically swap columns and rows in Gauss elimination routines. - Do not write a space before the header line on standard output. - Update lapack routines to v 3.2.2. Change DGESVJ to not divide by zero for zero columns. - Use a derived type (AUTOPARAMETERS) AP instead of IAP and RAP. - To makes the reduction algorithm in the linear solver more elegant, replaced part of the role of S1 by A1. - Reorganization of source code with toolboxes: - Renamed autlib1.f to main.f90, autlib2.f to solvebv.f90, autlib4.f to floquet.f90, and autlib5.f to homcont.f90. - Split general bvp interface routines from autlib3.f & bvp.f90 into toolboxbv.f90. - Split off equilibrium (equilibrium.f90), map (maps.f90), periodic solution (periodic.f90), optimization (optimization.f90), and parabolic PDE routines (parabolic.f90) from autlib3.f. - Do allocation of PAR, THU, THL, IUZ, and VUZ arrays later to reduce the number of parameters passed. - Moved function dispatchers to toolboxes. - Moved "redefinition of constants" to toolboxes. - Introduced AP%NTEST, which can be set in the toolboxes, to replace AP%NUZR+xx. - Renamed UZR to TEST and IUZR to ITEST to clarify that this array is used for all test functions and not just user-defined ones. - Renamed PVLI to FNCI to provide a generic test function interface. Called with ITEST=0 it calls PVLS. - Adjusted MPI to work with changed toolbox interface. Transferred AP structure directly with MPI. - MPI improvements: - Only send parts of a1, a2, s1, bb, cc, and faa from workers to master that are needed. This speeds up the MPI parallel code significantly. Let MPI send and receive matrix parts in a recursive fashion on demand. This makes the nested dissection work more in parallel with less communication. Example: reduction for NTST=8, 4 CPUs. CPU 0 1 2 3 1. 12 34 56 78, CPU1 sends 4 to CPU0, CPU3 sends 8 to CPU2. 2. 24 68 , CPU2 sends 8 to CPU0 3. 48 This sequence is similar to the sequence documented for AUTO94P but reversed in this way: AUTO94P used: CPU 0 1 2 3 1. 12 34 56 78, CPU0 sends 2 to CPU1, CPU2 sends 6 to CPU3. 2. 24 68, CPU1 sends 4 to CPU3 3. 48 The new way has the advantage that all non-parallel processing is done in the master, CPU0. - Make MPI work with HomCont. A few more MPI adjustments to print better error messages. - Replace STOP by CALL AUTOSTOP, to give MPI a chance to cleanly finish. * PyPLAUT: - Introduced new boolean "letter_symbols" option to use letters for symbols (like in plot()) or not (like in @pp). - Add "labelnames" plotter option for autorc, so we can do labelnames={"U(1)":"$x",PAR(1):"$p"}. - Improve handing of margins and font sizes in matplotlib plotter. - Allow symbol sizes using "circle5" etc. - Changed the bifurcation/solution selector to radiobutton style. - Uses Pmw's RadioSelect and MainMenuBar widgets. * PLAUT04: - Add an option to plot by branch ID instead of sequential branch. Coloring method -4 now correspond to "CURV" and -7 to "BRAN". - New plaut04 option: R3B=Yes to switch on R3B mode. Used by the r3b demo so that @pl works. - Made r3bplaut04 a run-time option instead of a separate binary, ie. "plaut04 -r3b". - Removed some arbitrary limits on the number of parameters and labels in files that are plotted. - When testing PLAUT04, change directories to allow the current directory to be deleted on Windows. Get plaut04.rc from the specified directory in PLAUT04. * Python: - Drop Python 2.2 compatibility. Python 2.3 is the new minimum. - Let writeRaw/writeRawFilename use the coordarray and indepvararray structures directly, to be much faster. - Fix dlb/klb/deleteLabel with function argument across multiple branches. - Added error messages if the length of the produced fort.7 file is 0 or you try to run AUTO with an empty solution list or bifurcation diagram. - Add more diagnostics for run() with wrong IRS or missing equation file argument. Fix online help in a few places. - The global runner is now used to always keep the current constants and solution data, so that run() always repeats the latest run, run(DS='-') reverts, etc. load() with a non-keyword argument now always resets the current constants. But handle "unames", "parnames", "e", "homcont", "auto_dir" as special keys for parseC objects: they are not overwritten when a new constants file is read without such keys. - Make the global runner local to the current auto environment. Mainly this is to let auto('foo.auto') use a clean state. - Reset current solution if IRS=0. - Remove unused kw argument from parseS' read() and readFilename() methods. - Simplified log and err redirection system by having only one interface: log and err need to be objects with write() and flush() methods; if None (the default), stdout and stderr are used. Be able to redirect ls and cat so the tests can see everything on sys.stdout.err & log now affect sys.stdout and sys.stderr so we can capture print statements from AUTO scripts as well. - Use an open file so we only read headers using sl('name'). When writing the file, everything is read into memory to avoid overwriting. - Reorganize parseS to keep track of when the s-file if fully read so it can be closed. Always read the file completely on Windows. - Explicitly close auto script files after reading them. - Branches in bifurcation diagrams can now deal with solutions using the () notation, and will write solutions and diagnostics. Functional notation for deleting labels is generalized to apply to any () notation, to select labels for solution lists of bifurcation diagrams. - Allow loadbd([list]). - Further straightening out of AUTOSolution constructor, also to facilitate adding parameters through PAR. s=load([1,2,3]); s=load(s,PAR={1:2}) now works. - Created an update() method for parseS.AUTOSolution objects. Use a few sets and disallow strange "constants" key for parseC. parseS.AUTOSolution's c attribute can now be None to indicate that no constants are attached. - The AUTOSolution constructor no longer allows AUTO constants as keywords. These are now handled by load(). - Fix headers of merged branches to get the header of the forward branch. - Don't try to import Numeric on 64-bit systems. * Shell commands: - Eliminated compile-time limits on the maximum number of labels and branches in the utilities using a linked list and dynamic allocation. - Adjust @zr, @db, @tr, PLAUT04, and @fc to solution files without directions generated with IIS<3. - In @ll/listlabels/@lb, use as much space for the label number as in normal AUTO output. * Demos: - Added test infrastructure in test directory. See README file there. - Added LP1/BP1 stopping conditions to BPCONT demos since those branches double back in machine-dependent ways. - Use UZSTOP where appropriate. - abcb: Switch off unreliable BP detection during BP cont. - dd2: Improve to perform period-doublings. - fhh: Add stopping condition in because inclination flips with complex eigenvalues do not make sense. Make IF changes to the correct constant file. - fhh: Adjusted tolerances a bit to avoid an MX and further adjustments. - fnb: Increase NTST for robustness. - fnb: Fix starting label for last run to be the third from below. - fnb: Further adjustments to make this demo more robust. - log and hen: Added two demos for maps: Logistic and Hénon. - phs and tor: make more robust. Do not copy c.xxx.1 to c.xxx if c.xxx already exists with copydemo(). - pla: Update Plant demo to be less sensitive, mostly as suggested by Sebius. - python/n-body: Added plaut04.rc file to; solve issues with logged plaut04 spawning. - r3b: Use a numerical tolerance to determine purely imaginary eigenvalues. - r3b: Setting ITNW=7 for V1 family gives consistent results. - r3b: Made more robust. - r3b: Reorganized initial part using TY= constant. - snh: Fix typo in equation in the manual for SN-Hopf demo. - snh: Truncate nu2 to [-2,2] to avoid floating point exceptions with acos. - snh: Adjusted DSMIN to work with new test function algorithms. - snh: Put a stopping condition on delta to avoid MX-ing sensitively. - tfc: Avoid MX by increasing NTST. - tor: set maximum period to avoid MX in last run. * Manual: - Use hyperref in the manual; change to use pdflatex. Update reference for Desroches paper. - Add acroread to list of viewers. 0.7.3: * Main AUTO: - Fix typo in auto.env.sh - Fix compilation with ifort. * Python: - Fix a problem with load(U=...) to change U(*) values with respect to STPNT. 0.7.2: * Main AUTO: - Fix torus bifurcation initialization; a long standing bug was fixed: torus continuations did not work from TR labels where the relevant Floquet multipliers have negative real part. - Fix some intents that are reported as errors by gfortran 4.5 and ifort. - HomCont: initialize ISTART to 5 in DATA block. - For plotter: in fort.7 use stability of previous point for bifurcation points. * Python: - Fix a problem with numpy fromstring and the last element in Fortran exponential notation. - Fix logical "or" which should be "and" in parseS efficiency header length check. - Fix plot3() with bifurcation diagram argument. - Fix UZR handling with old-style constant files. - Fix message for save(). - Only complain but do not crash if files are missing for append(). - Fix error_symbol handling for plotter. * Demos: p2c: Remove superfluous and wrong ISP=-2. snh: use PAR(4) to store the intended integer codimension instead of using mu < 0 which fails when reaching the end of the codim 0 tangencies at the Hopf bifurcations. * Shell commands: - Fix bifurcation file write bug in @kuz, @klp, etc. * PLAUT04: - Change SoQt init statement to avoid a crash in Fedora 12. - Change HardCopy include path for PLAUT04 for Mac OS X compatibility. 0.7.1: * Python: - Fix solution plotting for plot()/@pp without arguments. (reported by Thomas Wagenknecht) 0.7: * Main AUTO: - Allow three parameter continuations for torus bifurcations, fixing the angle (Sebius Doedel). See the demo 'tor' for an example. - IRS now support strings like IRS='UZ1' in constant files and Python. - The new "STOP" constant as an alternative to "SP" allows to clearly specify stopping conditions such as STOP=['HB2',UZ2'] which stops at the second Hopf or second user defined point, whichever comes first. This setting does not switch special points off or on, unlike SP. - HomCont now has a new default setting "ISTART=5" which performs a phase shift only if the restart solution is not already a homoclinic orbit that was continued by HomCont. - A problem where extremely flat starts of curves, which sometimes occur with heteroclinic and homoclinic orbits, caused the mesh to be wrongly calculated was fixed (problem reported by Thomas Wagenknecht). - Automatic rotation detection (angular variables) is now switched off for heteroclinic orbits in HomCont. This fixes another problem reported by Thomas Wagenknecht. - Fix crashes with the phase shift algorithm and mesh problems for homoclinic branch switching with HomCont, which occurred in a problem by Daniele Linaro. - Fix crash for BPCONT (algebraic problems) with ISW=2 (reported by David Barton). - Fix problems with the Intel Fortran compiler ifort (reported by Patrick McNeil). - Rotations no longer use PAR(19) internally, so this parameter is free to use. - The following types of continuations now use parameters above NPAR, instead of PAR(12), PAR(13), PAR(14), etc. as internal parameters: + fold continuations for periodic orbits and general BVPs. + branch point continuations for periodic orbits and general BVPs. + torus continuations for periodic orbits. + period-doubling continuations for periodic orbits. Only PAR(11) is reserved for periodic orbits; for general BVPs (IPS=4) all parameter indices can be freely used in the equations file. For homoclinic branch switching, the internal parameters for the Lin vector and the point where the gap is located were moved beyond NPAR as well. - Solution file headers now have 4 extra fields on the same line: NPARI, NDM, IPS, IPRIV which mean: number of internal parameters, user dimension, problem type, and a per-problem private field, respectively. - Bifurcation diagram files now only print user-specified constants that are visually different from the ones used internally, under the heading "User-specified constants, where different from above:". - Made sure PVLS is always called first, before FUNC, to be able to initialize state in user equation files. - If pivots are 0 or smaller in absolute value than 1d-308*||A||_max, then AUTO will not converge instead of continuing with NaNs - Portability problems with some versions of GFortran were fixed, for instance avoiding the use of BACKSPACE at EOF for reading constant files. * PyPLAUT: - The plotter PyPLAUT can now plot in three dimensions, if used with a suitable version of matplotlib (not 0.98.x). Related new settings for autorc and the Python plot() command are: minz, maxz, zlabel, zlabel_fontsize, zticks, azimuth, elevation, bifurcation_z, solution_z @pp, like @p, now accepts some basic 3D commands too (B3D and 3D). - A new plot() argument, hide=True, hides the graphics, to be used for just printing to a file with matplotlib. - The savefig() method of an object returned by plot() saves the file. - The new settings: coloring_method = "branch" or coloring_method = "type" let the color of the curve depend on the branch number (BR) or type number (TY) - label="all" (or label = ["all"]) now plots all labels. - The plotter now primarily plots by label name, which is useful for appended branches of bifurcation diagrams that change the column header name for numbered columns. Here, for example, "U(1)" denotes just point continuations; "MAX U(1)" applies to both "U(1)" and "MAX U(1)" (points and BVPs) - @pp now accepts both ',' and ' ' to separate input lists, similar to PLAUT. * PLAUT04: - Print support is added to the File menu if Coin3D is used. - With new versions of SoQt, libsimage is no longer necessary. To accomplish this, the images of the Sun, the Earth and the stars were converted to JPEG format. - New settings: Object Animation Speed, Sat Animation Speed, Orbit Animation Speed, which set default values for the speeds. - A new "Draw Coord" menu option, "At Origin" causes the coordinate axes to be drawn at the system origin. This corresponds to Coordinate Type = 4 in (r3b)plaut04.rc. - Draw reference planes and spheres, if specified in (r3b)plaut04.rc, via the new settings: Draw Reference Plane, Draw Reference Sphere, Disk Rotation, Disk Position, Disk Radius, Disk Height, Disk Transparency, Disk From File, Sphere Position, Sphere Radius, Sphere Transparency, Sphere From File * Python: - The run command no longer redirects output by default: AUTO writes directly to the terminal. - When AUTO crashes, stop immediately with an AUTO Runtime Error. - Skip entries with a 0 label number in @ls and "print" for bifurcation diagrams, and if there are no entries left under a header, don't print the header. - Default command aliases are now set in AUTOCommands.py instead of .autorc. - Before every run(), the Python CLUI explicitly performs memory garbage collection, to avoid memory problems. - Initially, do not read solution files into memory, but just the headers, except for fort.8, because that file is often overwritten. - Solution objects now contains keys for corresponding entries in the bifurcation diagram file such as "L2-NORM". - Add s.b to a solution object, where b is the corresponding point on its branch. - Branch objects now contain "BR", "TY", and "TY number" keys which you can change similar to those of solutions. - The dlb, dsp, klb, and ksp functions can now take functions as arguments. These functions return a boolean value based on a solution causing it to be deleted or kept. A function with two arguments compare the two solutions for every combination and if satisfied the second one is deleted or kept. This allows for the deletion of "close" solutions. - The dlb, dsp, klb, and ksp functions can now be given two file suffix arguments, such as dlb("old", "new", f). - Improve error reporting: complain about missing files in a clear way, not exposing internals. - Allow the U keyword for load() to update a solution just like PAR does. - Changed writeRaw and toArray to output in table form. - Allow mv() and cp() to be used; without () it'll use the shell command. - Fixed parsing of headerless bifurcation diagram files. The coordinates are then called COLUMN(1), COLUMN(2), etc. - Extend @cp/@mv/copy()/move() to accept up to 4 arguments and directories. - The Python code no longer tries to be compatible with Python 1.5.2; at least Python 2.2 is assumed. - The Python code is mostly compatible with Python 3.x. * Configure checks: - Improved Coin3D detection for Mac OS X. - Fixed Coin detection to include cppflags from coin-config. - Added check for C++ compiler existence (not included by default in Ubuntu). - Fix C equation files when using AUTO with g95. * Shell commands: - @cp and @mv now accept up to 4 arguments and directories. - @rl, @lb, @kuz, @klp, @kbp, and @dlp are more flexible with bifurcation diagram files, and can work with older versions of those. - @fc and us() always generate the .o file for the equation file, in order not to confuse Sun f95. - Added lb, db, and rb commands to @lb (autlab), so it can list, relabel and delete branches. * Demos: - Converted all demo Fortran files to free-form format. - Use IMPLICIT NONE in all demos. - Modularized the "brf" and "brc" demos. Use dynamic arrays in the "brc" and "brf" demo so NDIM determines the number of collocation points. - Added a 3-parameter continuation fixing the angle to the "tor" demo. - New demo "pcl" that uses Lin's method to connect point-to-cycle connections in the Lorenz equations. Thanks to Thorsten Riess and Bernd Krauskopf. - New demo "snh": bifurcations of global reinjection orbits near a saddle-node Hopf bifurcation: cycle-to-point connections. Also thanks to Thorsten Riess and Bernd Krauskopf. - New demo "fnc": computation of attracting and repelling slow manifolds and the continuation of canard orbits in parameter space in the FitzHugh- Nagumo equations. Thanks to Mathieu Desroches and Bernd Krauskopf. - Use STOP and NPAR in all demos where applicable. - Replaced RL0 and RL1, where used, by conditions in UZR or STOP. - Removed A0, A1 except where they are really used. - Fixed the 'mtn' HomCont demo: we must explicitly specify NSTAB for saddle-node homoclinics. - Added autorc files to the demos ab and tor. * GUI94: - The old GUI can now work with .f90 equation files (but not with new-style constants files!). 0.6: * The 2D plotter PyPLAUT can now use matplotlib, be called via the @pp command, and operated like the old PLAUT plotter. New settings were added to .autorc/autorc for more effective control: xlabel, ylabel, xlabel_fontsize, ylabel_fontsize, top_title, top_title_fontsize, dashes, solution_coordnames, solution_indepvarname, bifurcation_coordnames, stability, default_option, d0, d1, d2, d3, d4. PyPLAUT can now also show the stability of branches via dashed curves. The coordinate input boxes are more permissive: no need to type quotes or ['t','t','t']: just type t. The input boxes now, by default, show the column names from bifurcation diagram files. * A new free-form constants file format is introduced with the following new constants: sv, e, s, dat, unames, parnames, SP, U, PAR, NPAR. The "dat" constant obsoletes the @fc/us() commands by reading directly from the ASCII data file. HomCont constants can also be added. Strings, set via unames and parnames, can be used in ICP, THU, THL, and UZR. * Add new setting ISP=4 which detects PDs and TRs but not BPs. * Implemented SP AUTO constant: SP=["HB1","LP2"] stops at the first HB or second LP. SP=["HB","LP"] selects which special points to detect. * Support new, more compact, dictionary notation for the AUTO constants THL, THU, UZR, PAR, and U. * If IRS is set to -1, then just get the first solution from the solution file. Use IRS<-I for the Ith label in the solution file. * HomCont can automatically detect NSTAB and NUNSTAB, the number of stable and unstable eigenvalues in most cases. * Introduce new @ksp, @dsp, @klb, and @dlb commands: @dsp -lp abc removes all 'LP' labels from b.abc and s.abc @dsp -bp removes all 'BP' labels from fort.7 and fort.8 @dsp -uz abc abc2 removes all 'UZ' labels from b.abc and s.abc; writes to b.abc2 and s.abc2 @dsp abc removes all special labels (anything that is not either every NPR steps or an 'UZ' label) from b.abc and s.abc. @ksp does the opposite, e.g.: @ksp -lp abc keeps all 'LP' labels, and removes all other labels in b.abc and s.abc @dlb and @klb retain type numbers in b. files so they can be plotted. The new ksp, dsp, klb, and dlb commands in the Python interface work similarly. * New merge/@mb commands merge branches in bifurcation diagram files. * New subtract/@sb commands subtract branches using interpolation in bifurcation diagram files. * The relabel (@rl) command is much faster. * Removed obsolete @ commands. * Avoid problems on case-insensitive filesystems by using @@R etc. instead of @R; make creates @R from @@R and so on, on case-sensitive filesystems. * Allow manual branch switching for algebraic problems with ISW=-1. Derivatives are now stored in solution files to allow this to work reliably. * The GETP function that can be called via PVLS supports new arguments: * 'EIG' obtains eigenvalues and Floquet multipliers: index 1, 3, 5,... obtain the real parts of ev's 1, 2, 3,... and 2, 4, 6,... the imaginary parts. Eigenvalues are ordered by real part. Floquet multipliers are ordered by distance from |z|=1. * 'NBC' gets the active NBC * 'NINT' gets the active NINT * 'NTST' gets NTST * 'NCOL' gets NCOL * 'NDIM' and 'NDX' get the dimension of the extended system * 'MXT' gets t value for maximum of component * 'MNT' gets t value for minumum of component * 'WINT' gets weight for integral; 0<=I<=NCOL * 'DTM' gets value for delta t array 1<=I<=NTST Some of these together allow for direct access of the solution array in * If the last point of a branch has type UZ, PD, HB, LP, etc. then that type is printed instead of EP. * AUTO computes and prints Floquet multipliers, eigenvalues and stability also for the first and last points on a branch. * NBIFX is eliminated from auto.h. Only NPARX is relevant. It now just designates a default maximum; it can be changed at runtime by the NPAR auto constant. * Bifurcation diagram files (fort.7/b.xxx) now have complete headers showing all AUTO constants. * DFDU, DFDP, DBC, and DICD are zero-initialized so it is not necessary to initialize those entries in equation files. * It is now possible to extend a system via STPNT. * Allow restarting from a point that is not a Hopf bifurcation in a BVP: it will be seen as a constant solution on the interval [0,1]. * Use LAPACK instead of EISPACK throughout. Eigenvectors might be different than before but are normalized to have the largest component positive. * Better diagnostics for errors in fort.2/c.xxx and fort.12/h.xxx input files. * Better performance and accuracy for fold continuations through smarter computation of the Jacobian matrix. * The performance of input/output routines and commands has improved, for instance by avoiding re-reads. * Some parallellization and cache use performance improvements. * Fix issue not detecting Hopf bifurcations and stability changes: a tolerance is only set if the trace of the Jacobian is zero and the dimension is even so the system is probably conservative. * Fix numerous bugs, thanks also to Thomas Wagenknecht, Hinke Osinga, Phil Naylor. * Many Python syntax changes, all backwards-compatible: The run command returns a bifurcation diagram object that represents all output, and can work in a bd=run(solution,options) fashion. The load command returns a solutions + constants to start from. The loadbd command returns a bifurcation diagram object from files. It is straightforward to obtain all bifurcation points, branches, or a selection from bifurcation diagram objects; these objects can be concatenated like standard Python lists. * "load" now supports changing LAB/PT/TY/BR/PAR in a solution. * In Python allow starting AUTO via "run" directly from a Python solution array. * Solutions and bifurcation diagrams in Python now use PyDSTool Pointsets and can use numpy/numarray/Numeric for efficiency. * Elimination of internal use of shell commands by the Python CLUI, so it works especially faster in Windows and does not depend on a shell. * Improved ctrl-c handling running Python scripts. * You can now plot and read gzipped files directly in PyPLAUT and Python commands. * Introduce "-c" for the auto command (works like python's -c), and preserve already set PYTHONPATH. * Add an r3b boolean parameter to plot3 in the Python CLUI. * The Python CLUI can now read .auto files with DOS line endings on Unix systems. * The lp Python CLUI alias now finds limit points instead of Hopf points, and cp is no longer aliased to commandCopyDataFiles (conflicts with cp as Unix copy). * Python2.6 compatibility. * PLAUT04 uses less memory and parses solution, bifurcation diagram and diagnostics files more efficiently. * You can set PLAUT04's axis colours in plaut04.rc. * All demos were updated to use Python, also thanks to Fabio Dercole. Special HomCont (h.xxx) were eliminated from all demos. * New demos: um2, um3, ph1 (Eusebius Doedel), c2c and p2c (based on work by Doedel, Kooi, van Voorn, and Kuznetsov). * Improved configure script for use with MacOS X. * Many updates to the manual, also thanks to Fabio Dercole. 0.5: * PLAUT04 can now also use the SoQt and Qt libraries. That makes it easier to compile on various Linux distributions, and makes it portable to native Windows and MacOS X without an X server. Using SoQt also avoids some issues with LessTif, in particular on 64-bit systems where LessTif is unstable. * PLAUT04 can now show label numbers in bifurcation diagrams. plaut04.rc option: "Show Label Numbers" * The coloring method options in plaut04.rc can now be set seperately for solution displays and bifurcation diagrams: "Coloring Method Solution" and "Coloring Method Bifurcation". * You can also set the "Label Sphere Radius" in plaut04.rc. * The r3b (now with extensive manifold calculations), pp2, pp3, lor and bvp demos were updated. * Some issues with g95 and Sun's Fortran compiler were solved. * Likewise for the configure script. * Repaired MPI regression in 0.4. * Add support for ipython (auto -i) and also auto-quotes and auto-parentheses in the normal auto Python CLUI. * Added some often used shell commands to the Python CLUI: "clear","less","mkdir","rmdir","cp","mv","rm". * Added ex and dmf aliases for execfile and demofile to the Python CLUI. * Added a GETMDMX(NDIM,P0,P1,NMM) routine to obtain the monodromy matrix factorization in PVLS (adapted from Kazuyuki Yagasaki). * Corrected integral conditions for torus bifurcation continuations (bug well-spotted by Huguette Croisier). * Added BPCont: code for BP continuation of periodic solutions and BVPs (Fabio Dercole). * Added BPCont demos: sspg, lcnf, tfc, and abcb. * Added @lbf, @ls commands, and the writeShort() and writeScreen() Python methods for displaying the bifurcation diagram file in a compact way. 0.4: * AUTO-07p can now continue branch points in two parameters (Fabio Dercole) * Includes all demos that are documented in the manual. * The manual documents a new tutorial demo ('cusp'). * The run() and load() commands in the Python CLUI have been extended to directly specify AUTO constants, save and append files as parameters. * A new splabs() Python CLUI function directly obtains special labels from a solution file (e.g., all Hopf bifurcation labels). * You can now run the @ command (@dm, @R, etc.) directly in the Python CLUI without having to escape them with a !. * The number of parameters printed in the bifurcation diagram files is now given by NICP; the parameters beyond the 7th are displayed as well. * A higher precision for numbers is used in the bifurcation diagram files. This helps when plotting small sections of bifurcation diagrams. * AUTO now allows free-form Fortran for equation files (.f90 extension). * Parallelisation has improved. 0.3: * The configure script is fixed for certain GNU Fortran configurations on Windows and has improved detection for the Coin and SoXt libraries for PLAUT04. * Some PLAUT04 crashes were fixed. * The MPI parallellization was improved so that most of the big data arrays that form the Jacobian matrix are split between machines. The distribution of memory enables AUTO to work with much larger systems. * Both OpenMP and MPI parallellizations were improved so that the setting up the RHS, copying to a smaller system and inflation of parameter routines are done in parallel. * An OpenMP parallellization issue with integral conditions, and several other small bugs were fixed. * A few new demos and helper utilities were added. * The 'total time' reported by AUTO is now the total wall clock time for both OpenMP and MPI. 0.2: * The configure script is fixed if PLAUT04 dependencies are not available and is more robust. * MPI support is ported from AUTO2000. * A bug is fixed involving the continuation of folds with more than two parameters. * Automake is no longer used for PLAUT04, using just autoconf and Makefile.in files for the whole project instead. * Various performance improvements have been made. 0.1: * This is a preliminary version of AUTO-07p. auto-07p-0.9.1+dfsg/07p/Makefile.in000077500000000000000000000030701206161447600165010ustar00rootroot00000000000000#===> Makefile # # Makefile originally written by Xianjun WANG in March 1994. # # Redone by Randy C. Paffenroth 1999 for use with a configure script and python # front end. SHELL=/bin/sh @SET_MAKE@ # all: src cmds util @GUI@ @PLAUT@ @PLAUT04@ @TEK2PS@ cmd: src cmds util @PLAUT@ src: .FORCE cd ./src;$(MAKE) cmds: .FORCE # work around case insensitive filesystems cd ./cmds; for cmd in @H @LB @R @RD; do \ if test ! -r $$cmd; then \ cp -p @$$cmd $$cmd; \ fi \ done util: .FORCE cd ./util;$(MAKE) gui: .FORCE cd ./gui;$(MAKE) plaut: .FORCE cd ./plaut;$(MAKE) plaut04: .FORCE cd ./plaut04;$(MAKE) tek2ps: .FORCE cd ./tek2ps;$(MAKE) # clean: cd ./gui;$(MAKE) clean cd ./plaut;$(MAKE) clean cd ./plaut04;$(MAKE) clean cd ./tek2ps;$(MAKE) clean cd ./doc;$(MAKE) clean # superclean: clean cd ./cmds; if diff @R @@R > /dev/null; then rm @H @LB @R @RD; fi cd ./plaut04;$(MAKE) superclean rm -rf config.cache config.log config.status autom4te*.cache cd ./bin; rm -f AUTO97 plaut autlab 86to97 94to97 double triple \ keeplp keepbp keepsp keepuz deletelp deleteuz \ listlabels reduce relabel plaut04 r3bplaut04 cd ./src; $(MAKE) superclean cd ./util; $(MAKE) superclean cd ./doc; $(MAKE) superclean cd ./include; rm -f stamp-h1 rm -f python/*.pyc python/graphics/*.pyc rm -f test/*.pyc test/*_log07p* test/verification/*.html rm -f Makefile cmds/Makefile gui/Makefile plaut/Makefile src/Makefile \ tek2ps/Makefile gui/auto.makefile include/config.h cmds/cmds.make \ cmds/compat.sh util/Makefile @echo "Super cleaning ... done" .FORCE: auto-07p-0.9.1+dfsg/07p/README000066400000000000000000000012441206161447600153120ustar00rootroot00000000000000NOTE: this is a beta version of AUTO-07p. It is already usable, but some of the demos and the manual in particular need more work. Please have a look at the manual, doc/auto.pdf, in particular Chapter 1, for information about requirements and differences with earlier versions of AUTO. See the file CHANGELOG for changes between sub-versions of AUTO-07p. --------- For installation instructions see the AUTO manual. The LaTeX source file of the manual is in doc/auto.tex. Note that you must define the correct path to the AUTO directory in your (.bashrc) resource file. This version of AUTO incorporates both a Unix and a Python command language user interface (CLUI). auto-07p-0.9.1+dfsg/07p/aclocal.m4000066400000000000000000000025141206161447600162730ustar00rootroot00000000000000# Copyright 2006 Steven G. Johnson AC_DEFUN([AX_OPENMP], [ AC_PREREQ(2.59) dnl for _AC_LANG_PREFIX AC_CACHE_CHECK([for OpenMP flag of _AC_LANG compiler], ax_cv_[]_AC_LANG_ABBREV[]_openmp, [save[]_AC_LANG_PREFIX[]FLAGS=$[]_AC_LANG_PREFIX[]FLAGS ax_cv_[]_AC_LANG_ABBREV[]_openmp=unknown # Flags to try: -fopenmp (gcc), -openmp (icc), -mp (SGI & PGI), # -xopenmp (Sun), -omp (Tru64), -qsmp=omp (AIX), none ax_openmp_flags="-fopenmp -openmp -mp -xopenmp -omp -qsmp=omp none" if test "x$OPENMP_[]_AC_LANG_PREFIX[]FLAGS" != x; then ax_openmp_flags="$OPENMP_[]_AC_LANG_PREFIX[]FLAGS $ax_openmp_flags" fi for ax_openmp_flag in $ax_openmp_flags; do case $ax_openmp_flag in none) []_AC_LANG_PREFIX[]FLAGS=$save[]_AC_LANG_PREFIX[] ;; *) []_AC_LANG_PREFIX[]FLAGS="$save[]_AC_LANG_PREFIX[]FLAGS $ax_openmp_flag" ;; esac AC_TRY_LINK_FUNC(omp_set_num_threads, [ax_cv_[]_AC_LANG_ABBREV[]_openmp=$ax_openmp_flag; break]) done []_AC_LANG_PREFIX[]FLAGS=$save[]_AC_LANG_PREFIX[]FLAGS ]) if test "x$ax_cv_[]_AC_LANG_ABBREV[]_openmp" = "xunknown"; then m4_default([$2],:) else if test "x$ax_cv_[]_AC_LANG_ABBREV[]_openmp" != "xnone"; then OPENMP_[]_AC_LANG_PREFIX[]FLAGS=$ax_cv_[]_AC_LANG_ABBREV[]_openmp fi m4_default([$1], [AC_DEFINE(HAVE_OPENMP,1,[Define if OpenMP is enabled])]) fi ])dnl AX_OPENMP auto-07p-0.9.1+dfsg/07p/autorc000077500000000000000000000141041206161447600156540ustar00rootroot00000000000000# Example file for autorc: you need to uncomment settings for them # to take effect! [AUTO_plotter] # Variable name to use instead of 't' for solutions. #solution_indepvarname = "time" # A dictionary mapping names to axis labels. #labelnames = {"U(1)": "$x$", "U(2)": "$y$", "PAR(1)": "$p$"} # The type of the plot, either "solution" or "bifurcation" #type = "bifurcation" # or "solution" # The column to plot along the X-axis for bifurcation diagrams. #bifurcation_x = [0] # The column to plot along the Y-axis for bifurcation diagrams. #bifurcation_y = [1] # The column to plot along the Z-axis for bifurcation diagrams. #bifurcation_z = None # The column to plot along the X-axis for solutions. #solution_x = [0,3,6,9] # The column to plot along the Y-axis for solutions. #solution_y = [1,4,7,10] # The column to plot along the Z-axis for solutions. #solution_z = [2,5,8,11] # A list of colors to use for multiple plots. #color_list = "black red green blue" # color_list index: 'branch' (BR), 'type' (TY), or 'curve' (seq.). #coloring_method = "curve" # or "branch" or "type" # Turn on or off the grid. #grid = False # Turn on or off stability information using dashed curves #stability = False # Whether or not to display label numbers in the graph. #use_labels = True # Whether or not to display bifurcation symbols in the graph. #use_symbols = False # Whether to use letters (True) or symbols (False) for special points. #letter_symbols = True # Default d0, d1, d2, etc. setting to use with PyPLAUT (@pp). #default_option="d1" #d1 = {"grid": False, "use_labels": True, "use_symbols": True, "stability":True} # similarly you can redefine d0, d2, d3, d4. # The label for the top title. #top_title = '' # The font size for the top title. #top_title_fontsize = 12 # The font size for the x-axis label. #xlabel_fontsize = 12 # The font size for the y-axis label. #ylabel_fontsize = 12 # The font size for the z-axis label. #zlabel_fontsize = 12 # Azimuth of the axes in 3D plots. #azimuth = -60 # for 3D plots, in degrees # Elevation of the axes in 3D plots. #elevation = 30 # for 3D plots, in degrees # The lower bound for the x-axis of the plot. #minx = 0 # The upper bound for the x-axis of the plot. #maxx = 0 # The lower bound for the y-axis of the plot. #miny = 0 # The upper bound for the y-axis of the plot. #maxy = 0 # The lower bound for the z-axis of the plot. #minz = 0 # The upper bound for the z-axis of the plot. #maxz = 0 # The label for the x-axis. #xlabel = '' # The label for the y-axis. #ylabel = '' # The label for the z-axis. #zlabel = '' # Width to use for lines and curves. #line_width = 2.0 # List of dash, no-dash lengths for dashed lines. #dashes = (6.0,6.0) # The background color of the plot. #background = "white" # The foreground color of the plot #foreground = "black" # The color to use for the marker symbols. #symbol_color = "red" # The font to use for marker symbols. #symbol_font = "-misc-fixed-*-*-*-*-*-*-*-*-*-*-*-*" # Turn on or off the axis, tick marks, etc. #decorations = True # Whether to use a smart but slower label placement algorithm. #smart_label = True # Width of the graph. #width = 600 # Height of the graph. #height = 480 # The margin between the graph and the left edge. #left_margin = 80 # The margin between the graph and the left edge. #right_margin = 40 # The margin between the graph and the top edge. #top_margin = 40 # The margin between the graph and the bottom edge. #bottom_margin = 40 # The number of ticks on the x-axis. #xticks = 5 # The number of ticks on the y-axis. #yticks = 5 # The number of ticks on the z-axis. #zticks = 5 # A string which defines the format of the tick labels. #tick_label_template = "%.2e" # The length of the tick marks. #tick_length = 0.2 # The length of the odd tick marks. #odd_tick_length = 0.4 # The length of the even tick marks. #even_tick_length = 0.2 # The PostScript output mode: 'color', 'gray' or 'monochrome'. #ps_colormode = "color" # The t value to marker with a small ball. #mark_t = None #or a real value between 0 and 1 # A set of bifurcation columns the user is likely to use. #bifurcation_column_defaults = None # A set of solution columns the user is likely to use. #solution_column_defaults = [[0,3,6,9],[1,4,7,10],[2,5,8,11],['t','t','t','t']] # An array of labels to plot, or 'all' for all labels. #label = [1,2,3] # or "all" # A set of labels that the user is likely to use. #label_defaults = None # The index/indices of the solution we wish to draw #index = [0] # The filename of the bifurcation diagram to plot. #bifurcation_diagram_filename = 'fort.7' # The filename of the solution to plot. #solution_filename = 'fort.8' # The symbol to use for bifurcation points. # Here 8 denotes the size of the square #bifurcation_symbol = "square8" # The symbol to use for limit points. #limit_point_symbol = None # The symbol to use for Hopf bifurcation points. #hopf_symbol = "fillsquare" # The symbol to use for period doubling bifurcation points. #period_doubling_symbol = "doubletriangle" # The symbol to use for torus bifurcation points. #torus_symbol = "filldiamond" # The symbol to use for user defined output points. #user_point_symbol = "U" # The symbol to use for error points. #error_symbol = None # The symbol to use for Cusp points. #cusp_symbol = None # The symbol to use for Bogdanov-Takens points. #bogdanov_takens_symbol = "circle" # The symbol to use for Generalized Hopf points. #generalized_hopf_symbol = "triangle" # The symbol to use for zero-Hopf points. #zero_hopf_symbol = "doubletriangle" # The symbol to use for fold-flip points. #fold_flip_symbol = "doubletriangle" # The symbol to use for fold-torus points. #fold_torus_symbol = "doubletriangle" # The symbol to use for flip-torus points. #flip_torus_symbol = "doubletriangle" # The symbol to use for torus-torus points. #torus_torus_symbol = "doubletriangle" # The symbol to use for 1:1 resonance points. #1_1_resonance_symbol = "filldiamond" # The symbol to use for 1:2 resonance points. #1_2_resonance_symbol = "filldiamond" # The symbol to use for 1:3 resonance points. #1_3_resonance_symbol = "filldiamond" # The symbol to use for 1:4 resonance points. #1_4_resonance_symbol = "filldiamond" auto-07p-0.9.1+dfsg/07p/bin/000077500000000000000000000000001206161447600152015ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/bin/auto000077500000000000000000000005021206161447600160740ustar00rootroot00000000000000#! /bin/sh if [ -z "$AUTO_DIR" ]; then bindir=`dirname $0` AUTO_DIR=`dirname $bindir` export AUTO_DIR fi if test "`uname`" = "Darwin"; then if which pythonw > /dev/null; then exec pythonw $AUTO_DIR/python/interactiveBindings.py ${1+"$@"}; fi fi exec $AUTO_DIR/python/interactiveBindings.py ${1+"$@"}; auto-07p-0.9.1+dfsg/07p/bin/autox000077500000000000000000000006001206161447600162630ustar00rootroot00000000000000#! /bin/sh if [ -z "$AUTO_DIR" ]; then bindir=`dirname $0` AUTO_DIR=`dirname $bindir` export AUTO_DIR fi PPATH=$AUTO_DIR/python if [ -z "$PYTHONPATH" ]; then PYTHONPATH=$PPATH else PYTHONPATH=$PPATH:$PYTHONPATH fi export PYTHONPATH if test "`uname`" = "Darwin"; then if which pythonw > /dev/null; then exec pythonw ${1+"$@"}; fi fi exec python ${1+"$@"}; auto-07p-0.9.1+dfsg/07p/cmds/000077500000000000000000000000001206161447600153575ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/cmds/@@H000077500000000000000000000007141206161447600156760ustar00rootroot00000000000000#!/bin/sh rm -f fort.2 CFILE= SFILE= if ( test $# -eq 1 ) then CFILE="$1" if (test -r s.$1) then SFILE="$1" fi elif ( test $# -eq 2 ) then CFILE="$1.$2" if (test -r s.$1) then SFILE="$1" fi else CFILE="$1.$2" SFILE="$3" fi cat h.$CFILE > fort.12 if ( test -n "$SFILE" -a -r c.$CFILE ) then echo s=\'$SFILE\' | cat - c.$CFILE | make -f $AUTO_DIR/cmds/cmds.make EQUATION_NAME=$1 else make -f $AUTO_DIR/cmds/cmds.make EQUATION_NAME=$1 < c.$CFILE fi auto-07p-0.9.1+dfsg/07p/cmds/@@LB000077500000000000000000000014631206161447600160060ustar00rootroot00000000000000#!/bin/sh if ( test $# -eq 1 ) then mv b.$1 fort.27 mv s.$1 fort.28 $AUTO_DIR/bin/autlab rm fort.27 rm fort.28 if (test -r fort.37) then mv fort.37 b.$1 fi if (test -r fort.38) then mv fort.38 s.$1 echo " Rewriting finished." fi elif( test $# -eq 2 ) then mv b.$1 fort.27 mv s.$1 fort.28 $AUTO_DIR/bin/autlab rm fort.27 rm fort.28 if (test -r fort.37) then mv fort.37 b.$2 fi if (test -r fort.38) then mv fort.38 s.$2 echo " Rewriting finished." fi else mv fort.7 fort.27 mv fort.8 fort.28 $AUTO_DIR/bin/autlab rm fort.27 rm fort.28 if (test -r fort.37) then mv fort.37 fort.7 fi if (test -r fort.38) then mv fort.38 fort.8 echo " Rewriting finished." fi fi auto-07p-0.9.1+dfsg/07p/cmds/@@R000077500000000000000000000006651206161447600157150ustar00rootroot00000000000000#!/bin/sh rm -f fort.2 CFILE= SFILE= if ( test $# -eq 1 ) then CFILE="$1" if (test -r s.$1) then SFILE="$1" fi elif ( test $# -eq 2 ) then CFILE="$1.$2" if (test -r s.$1) then SFILE="$1" fi else CFILE="$1.$2" SFILE="$3" fi if ( test -n "$SFILE" -a -r c.$CFILE ) then echo s=\'$SFILE\' | cat - c.$CFILE | make -f $AUTO_DIR/cmds/cmds.make EQUATION_NAME=$1 else make -f $AUTO_DIR/cmds/cmds.make EQUATION_NAME=$1 < c.$CFILE fi auto-07p-0.9.1+dfsg/07p/cmds/@@RD000077500000000000000000000015671206161447600160230ustar00rootroot00000000000000#!/bin/sh if ( test $# -eq 1 ) then mv b.$1 fort.27 mv s.$1 fort.28 $AUTO_DIR/bin/reduce mv fort.27 b.$1~ mv fort.28 s.$1~ if (test -r fort.37) then mv fort.37 b.$1 fi if (test -r fort.38) then mv fort.38 s.$1 echo " rl: File reduction finished." fi elif( test $# -eq 2 ) then mv b.$1 fort.27 mv s.$1 fort.28 $AUTO_DIR/bin/reduce mv fort.27 b.$1~ mv fort.28 s.$1~ if (test -r fort.37) then mv fort.37 b.$2 fi if (test -r fort.38) then mv fort.38 s.$2 echo " rl: File reduction finished." fi else mv fort.7 fort.27 mv fort.8 fort.28 $AUTO_DIR/bin/reduce mv fort.27 fort.7~ mv fort.28 fort.8~ if (test -r fort.37) then mv fort.37 fort.7 fi if (test -r fort.38) then mv fort.38 fort.8 echo " rl: File reduction finished." fi fi auto-07p-0.9.1+dfsg/07p/cmds/@a000077500000000000000000000000771206161447600156310ustar00rootroot00000000000000#!/bin/sh cp $AUTO_DIR/gui/auto.makefile ./Makefile ; AUTO97 & auto-07p-0.9.1+dfsg/07p/cmds/@ap000077500000000000000000000007101206161447600160030ustar00rootroot00000000000000#!/bin/sh if ( test $# -eq 1 ) then cat fort.7 >> b.$1 cat fort.8 >> s.$1 cat fort.9 >> d.$1 echo "Appending fort.7 to b.$1 ... done" echo "Appending fort.8 to s.$1 ... done" echo "Appending fort.9 to d.$1 ... done" elif ( test $# -eq 2 ) then cat b.$1 >> b.$2 cat s.$1 >> s.$2 cat d.$1 >> d.$2 echo "Appending b.$1 to b.$2 ... done" echo "Appending s.$1 to s.$2 ... done" echo "Appending d.$1 to d.$2 ... done" else echo "Illegal command" fi auto-07p-0.9.1+dfsg/07p/cmds/@auto000077500000000000000000000000771206161447600163610ustar00rootroot00000000000000#!/bin/sh cp $AUTO_DIR/gui/auto.makefile ./Makefile ; auto97 & auto-07p-0.9.1+dfsg/07p/cmds/@bp000077500000000000000000000001161206161447600160040ustar00rootroot00000000000000#!/bin/sh if ( test $# -eq 1 ) then grep "BP" d.$1 else grep "BP" fort.9 fi auto-07p-0.9.1+dfsg/07p/cmds/@cl000077500000000000000000000001331206161447600160000ustar00rootroot00000000000000#!/bin/sh rm -f fort.* *.o *.exe *.*~ core echo "Deleting fort.* *.o *.exe *.*~ ... done" auto-07p-0.9.1+dfsg/07p/cmds/@cnvc000077500000000000000000000015361206161447600163430ustar00rootroot00000000000000#! /usr/bin/env python import sys import os sys.path.append(os.path.join(os.environ["AUTO_DIR"],"python")) from parseC import parseC from parseH import parseH # This is the Python syntax for making a script runnable if __name__ == '__main__': input = sys.argv[1] output = sys.argv[1] if len(sys.argv) > 2: output = sys.argv[2] c=None try: h=parseH('h.'+input) c=parseC() except IOError: h=None try: c=parseC('c.'+input) except IOError: pass if h is not None: for k,v in h.items(): c[k] = v elif c is None: sys.stderr.write("Neither the c. file nor the h. file exists. Aborting.\n") sys.exit(1) c.writeFilename('c.'+output,new=True) if len(sys.argv) <= 2 and os.path.exists('h.'+sys.argv[1]): os.remove('h.'+sys.argv[1]) auto-07p-0.9.1+dfsg/07p/cmds/@cp000077500000000000000000000012021206161447600160020ustar00rootroot00000000000000#!/bin/sh error="true" name1="$1" name2="$2" dir1="" dir2="" if test -d "$1"; then dir1="$1/" name1="$2" if test $# -eq 4; then dir2="$3/" name2="$4" elif test $# -eq 3; then name2="$3" fi elif test -d "$2"; then dir2="$2/" if test $# -eq 3; then file2="$3" else file2="$1" fi fi for prefix in b s d c; do file1="$dir1$prefix.$name1" file2="$dir2$prefix.$name2" if cp "$file1" "$file2" 2> /dev/null; then echo "Copying $file1 to $file2 ... done" unset error fi done if test -n "$error"; then echo "Copying: no files found for $dir1[bsdc].$name1 and $dir2[bsdc].$name2" fi auto-07p-0.9.1+dfsg/07p/cmds/@db000077500000000000000000000003751206161447600157770ustar00rootroot00000000000000#!/bin/sh if ( test $# -eq 1 ) then cp s.$1 fort.28 cp b.$1 b.$1~ mv s.$1 s.$1~ $AUTO_DIR/bin/double mv fort.38 s.$1 rm fort.28 else cp fort.8 fort.28 cp fort.7 fort.7~ mv fort.8 fort.8~ $AUTO_DIR/bin/double mv fort.38 fort.8 rm fort.28 fi auto-07p-0.9.1+dfsg/07p/cmds/@df000077500000000000000000000000661206161447600160000ustar00rootroot00000000000000#!/bin/sh rm -f fort.* echo "Deleting fort.* ... done"auto-07p-0.9.1+dfsg/07p/cmds/@dl000077500000000000000000000002071206161447600160030ustar00rootroot00000000000000#!/bin/sh rm -r b.$1 rm -r s.$1 rm -r d.$1 echo "Deleting b.$1 ... done" echo "Deleting s.$1 ... done" echo "Deleting d.$1 ... done" auto-07p-0.9.1+dfsg/07p/cmds/@dlb000077500000000000000000000023761206161447600161560ustar00rootroot00000000000000#! /usr/bin/env python import sys import os sys.path.append(os.path.join(os.environ["AUTO_DIR"],"python")) from AUTOclui import * import parseBandS # This is the Python syntax for making a script runable if __name__ == '__main__': if len(sys.argv) > 1: code=sys.argv[1] if code[0] == '-': codes=[code[1:3].upper()] n=1 else: codes=None n=0 if len(sys.argv) == n+3: changedb='b.'+sys.argv[n+2] changeds='s.'+sys.argv[n+2] bs=bt(sys.argv[n+1]) else: if len(sys.argv) == n+2: changedb='b.'+sys.argv[n+1] changeds='s.'+sys.argv[n+1] else: changedb='fort.7' changeds='fort.8' origb=changedb+'~' origs=changeds+'~' try: os.remove(origb) except: pass try: os.remove(origs) except: pass os.rename(changedb,origb) os.rename(changeds,origs) if len(sys.argv) == n+2: bs=bt(sys.argv[n+1]+'~') else: bs=parseBandS.parseBandS('fort.7~','fort.8~') bs.deleteLabel(codes,keepTY=1) bs.writeFilename(changedb,changeds) print(" @dlb: Rewriting finished.") auto-07p-0.9.1+dfsg/07p/cmds/@dlp000077500000000000000000000016371206161447600161730ustar00rootroot00000000000000#!/bin/sh if ( test $# -eq 1 ) then cp b.$1 fort.27 cp s.$1 fort.28 $AUTO_DIR/bin/deletelp rm fort.27 rm fort.28 if (test -r fort.37) then cp b.$1 b.$1~ mv fort.37 b.$1 fi if (test -r fort.38) then cp s.$1 s.$1~ mv fort.38 s.$1 echo " deletelp: Rewriting finished." fi elif( test $# -eq 2 ) then cp b.$1 fort.27 cp s.$1 fort.28 $AUTO_DIR/bin/deletelp rm fort.27 rm fort.28 if (test -r fort.37) then mv fort.37 b.$2 fi if (test -r fort.38) then mv fort.38 s.$2 echo " deletelp: Rewriting finished." fi else cp fort.7 fort.27 cp fort.8 fort.28 $AUTO_DIR/bin/deletelp rm fort.27 rm fort.28 if (test -r fort.37) then cp fort.7 fort.7~ mv fort.37 fort.7 fi if (test -r fort.38) then cp fort.8 fort.8~ mv fort.38 fort.8 echo " deletelp: Rewriting finished." fi fi auto-07p-0.9.1+dfsg/07p/cmds/@dm000077500000000000000000000004771206161447600160150ustar00rootroot00000000000000#!/bin/sh # copy one level deep without hidden files for i in $AUTO_DIR/demos/$1/* do if test -d "$i"; then d=`expr "$i" : "$AUTO_DIR/demos/$1/\(.*\)"` if test -f "$d"; then rm "$d$" fi mkdir -p $d > /dev/null 2>&1 cp "$i"/* $d else cp "$i" . fi done echo "Copying demo $1 ... done" auto-07p-0.9.1+dfsg/07p/cmds/@dsp000077500000000000000000000023651206161447600162010ustar00rootroot00000000000000#! /usr/bin/env python import sys import os sys.path.append(os.path.join(os.environ["AUTO_DIR"],"python")) from AUTOclui import * import parseBandS # This is the Python syntax for making a script runable if __name__ == '__main__': if len(sys.argv) > 1: code=sys.argv[1] if code[0] == '-': codes=[code[1:3].upper()] n=1 else: codes=None n=0 if len(sys.argv) == n+3: changedb='b.'+sys.argv[n+2] changeds='s.'+sys.argv[n+2] bs=bt(sys.argv[n+1]) else: if len(sys.argv) == n+2: changedb='b.'+sys.argv[n+1] changeds='s.'+sys.argv[n+1] else: changedb='fort.7' changeds='fort.8' origb=changedb+'~' origs=changeds+'~' try: os.remove(origb) except: pass try: os.remove(origs) except: pass os.rename(changedb,origb) os.rename(changeds,origs) if len(sys.argv) == n+2: bs=bt(sys.argv[n+1]+'~') else: bs=parseBandS.parseBandS('fort.7~','fort.8~') bs.deleteLabel(codes) bs.writeFilename(changedb,changeds) print(" @dsp: Rewriting finished.") auto-07p-0.9.1+dfsg/07p/cmds/@e7000077500000000000000000000000241206161447600157140ustar00rootroot00000000000000#!/bin/sh vi fort.7 auto-07p-0.9.1+dfsg/07p/cmds/@e8000077500000000000000000000000241206161447600157150ustar00rootroot00000000000000#!/bin/sh vi fort.8 auto-07p-0.9.1+dfsg/07p/cmds/@e9000077500000000000000000000000241206161447600157160ustar00rootroot00000000000000#!/bin/sh vi fort.9 auto-07p-0.9.1+dfsg/07p/cmds/@eps000077500000000000000000000000641206161447600161740ustar00rootroot00000000000000#!/bin/sh cat $1 | $AUTO_DIR/tek2ps/tek2ps > $1.eps auto-07p-0.9.1+dfsg/07p/cmds/@ev000077500000000000000000000001321206161447600160130ustar00rootroot00000000000000#!/bin/sh if ( test $# -eq 1 ) then grep Eigenvalue d.$1 else grep Eigenvalue fort.9 fi auto-07p-0.9.1+dfsg/07p/cmds/@fc000077500000000000000000000005541206161447600160010ustar00rootroot00000000000000#!/bin/sh echo " " if test -f $1.f -o ! -f $1.c; then echo "(Required files : $1.f, c.$1, $1.dat)" else echo "(Required files : $1.c, c.$1, $1.dat)" fi echo " " make -f $AUTO_DIR/cmds/cmds.make fcon EQUATION_NAME=$1 cp c.$1 fort.2 cp $1.dat fort.3 ./fcon mv fort.8 s.dat rm fcon* fort.2 fort.3 echo " " echo "Conversion done : converted file saved as s.dat" auto-07p-0.9.1+dfsg/07p/cmds/@fl000077500000000000000000000001161206161447600160040ustar00rootroot00000000000000#!/bin/sh if ( test $# -eq 1 ) then grep Mult d.$1 else grep Mult fort.9 fi auto-07p-0.9.1+dfsg/07p/cmds/@gz000077500000000000000000000000721206161447600160240ustar00rootroot00000000000000#!/bin/sh gzip --best b.* gzip --best s.* gzip --best d.* auto-07p-0.9.1+dfsg/07p/cmds/@h000077500000000000000000000011771206161447600156420ustar00rootroot00000000000000#!/bin/sh rm -f fort.2 CFILE= SFILE= if ( test $# -eq 1 ) then CFILE="$1" if (test -r s.$1) then SFILE="$1" fi elif ( test $# -eq 2 ) then if ( test -r c.$1 -a -r s.$2 ) then CFILE="$1" SFILE="$2" else CFILE="$1.$2" if (test -r s.$1) then SFILE="$1" fi fi elif ( test -r c.$3 -a -r s.$2 ) then CFILE="$3" SFILE="$2" else CFILE="$1.$2" SFILE="$3" fi cat h.$CFILE > fort.12 if ( test -n "$SFILE" -a -r c.$CFILE ) then echo s=\'$SFILE\' | cat - c.$CFILE | make -f $AUTO_DIR/cmds/cmds.make EQUATION_NAME=$1 else make -f $AUTO_DIR/cmds/cmds.make EQUATION_NAME=$1 < c.$CFILE fi auto-07p-0.9.1+dfsg/07p/cmds/@hb000077500000000000000000000001161206161447600157740ustar00rootroot00000000000000#!/bin/sh if ( test $# -eq 1 ) then grep Hopf d.$1 else grep Hopf fort.9 fi auto-07p-0.9.1+dfsg/07p/cmds/@ho000077500000000000000000000001161206161447600160110ustar00rootroot00000000000000#!/bin/sh if ( test $# -eq 1 ) then grep Hopf d.$1 else grep Hopf fort.9 fi auto-07p-0.9.1+dfsg/07p/cmds/@it000077500000000000000000000001321206161447600160150ustar00rootroot00000000000000#!/bin/sh if ( test $# -eq 1 ) then grep Iterations d.$1 else grep Iterations fort.9 fi auto-07p-0.9.1+dfsg/07p/cmds/@j7000077500000000000000000000000251206161447600157220ustar00rootroot00000000000000#!/bin/sh jot fort.7 auto-07p-0.9.1+dfsg/07p/cmds/@j8000077500000000000000000000000251206161447600157230ustar00rootroot00000000000000#!/bin/sh jot fort.8 auto-07p-0.9.1+dfsg/07p/cmds/@j9000077500000000000000000000000251206161447600157240ustar00rootroot00000000000000#!/bin/sh jot fort.9 auto-07p-0.9.1+dfsg/07p/cmds/@kbp000077500000000000000000000016231206161447600161630ustar00rootroot00000000000000#!/bin/sh if ( test $# -eq 1 ) then cp b.$1 fort.27 cp s.$1 fort.28 $AUTO_DIR/bin/keepbp rm fort.27 rm fort.28 if (test -r fort.37) then cp b.$1 b.$1~ mv fort.37 b.$1 fi if (test -r fort.38) then cp s.$1 s.$1~ mv fort.38 s.$1 echo " keepbp: Rewriting finished." fi elif( test $# -eq 2 ) then cp b.$1 fort.27 cp s.$1 fort.28 $AUTO_DIR/bin/keepbp rm fort.27 rm fort.28 if (test -r fort.37) then mv fort.37 b.$2 fi if (test -r fort.38) then mv fort.38 s.$2 echo " keepbp: Rewriting finished." fi else cp fort.7 fort.27 cp fort.8 fort.28 $AUTO_DIR/bin/keepbp rm fort.27 rm fort.28 if (test -r fort.37) then cp fort.7 fort.7~ mv fort.37 fort.7 fi if (test -r fort.38) then cp fort.8 fort.8~ mv fort.38 fort.8 echo " keepbp: Rewriting finished." fi fi auto-07p-0.9.1+dfsg/07p/cmds/@klb000077500000000000000000000024051206161447600161560ustar00rootroot00000000000000#! /usr/bin/env python import sys import os sys.path.append(os.path.join(os.environ["AUTO_DIR"],"python")) from AUTOclui import * import parseBandS # This is the Python syntax for making a script runable if __name__ == '__main__': if len(sys.argv) > 1: code=sys.argv[1] if code[0] == '-': codes=[code[1:3].upper()] n=1 else: codes=None n=0 if len(sys.argv) == n+3: changedb='b.'+sys.argv[n+2] changeds='s.'+sys.argv[n+2] bs=bt(sys.argv[n+1]) else: if len(sys.argv) == n+2: changedb='b.'+sys.argv[n+1] changeds='s.'+sys.argv[n+1] else: changedb='fort.7' changeds='fort.8' origb=changedb+'~' origs=changeds+'~' try: os.remove(origb) except: pass try: os.remove(origs) except: pass os.rename(changedb,origb) os.rename(changeds,origs) if len(sys.argv) == n+2: bs=bt(sys.argv[n+1]+'~') else: bs=parseBandS.parseBandS('fort.7~','fort.8~') bs.deleteLabel(codes,keep=1,keepTY=1) bs.writeFilename(changedb,changeds) print(" @klb: Rewriting finished.") auto-07p-0.9.1+dfsg/07p/cmds/@klp000077500000000000000000000016231206161447600161750ustar00rootroot00000000000000#!/bin/sh if ( test $# -eq 1 ) then cp b.$1 fort.27 cp s.$1 fort.28 $AUTO_DIR/bin/keeplp rm fort.27 rm fort.28 if (test -r fort.37) then cp b.$1 b.$1~ mv fort.37 b.$1 fi if (test -r fort.38) then cp s.$1 s.$1~ mv fort.38 s.$1 echo " keeplp: Rewriting finished." fi elif( test $# -eq 2 ) then cp b.$1 fort.27 cp s.$1 fort.28 $AUTO_DIR/bin/keeplp rm fort.27 rm fort.28 if (test -r fort.37) then mv fort.37 b.$2 fi if (test -r fort.38) then mv fort.38 s.$2 echo " keeplp: Rewriting finished." fi else cp fort.7 fort.27 cp fort.8 fort.28 $AUTO_DIR/bin/keeplp rm fort.27 rm fort.28 if (test -r fort.37) then cp fort.7 fort.7~ mv fort.37 fort.7 fi if (test -r fort.38) then cp fort.8 fort.8~ mv fort.38 fort.8 echo " keeplp: Rewriting finished." fi fi auto-07p-0.9.1+dfsg/07p/cmds/@ksp000077500000000000000000000023741206161447600162100ustar00rootroot00000000000000#! /usr/bin/env python import sys import os sys.path.append(os.path.join(os.environ["AUTO_DIR"],"python")) from AUTOclui import * import parseBandS # This is the Python syntax for making a script runable if __name__ == '__main__': if len(sys.argv) > 1: code=sys.argv[1] if code[0] == '-': codes=[code[1:3].upper()] n=1 else: codes=None n=0 if len(sys.argv) == n+3: changedb='b.'+sys.argv[n+2] changeds='s.'+sys.argv[n+2] bs=bt(sys.argv[n+1]) else: if len(sys.argv) == n+2: changedb='b.'+sys.argv[n+1] changeds='s.'+sys.argv[n+1] else: changedb='fort.7' changeds='fort.8' origb=changedb+'~' origs=changeds+'~' try: os.remove(origb) except: pass try: os.remove(origs) except: pass os.rename(changedb,origb) os.rename(changeds,origs) if len(sys.argv) == n+2: bs=bt(sys.argv[n+1]+'~') else: bs=parseBandS.parseBandS('fort.7~','fort.8~') bs.deleteLabel(codes,keep=1) bs.writeFilename(changedb,changeds) print(" @ksp: Rewriting finished.") auto-07p-0.9.1+dfsg/07p/cmds/@kuz000077500000000000000000000016231206161447600162200ustar00rootroot00000000000000#!/bin/sh if ( test $# -eq 1 ) then cp b.$1 fort.27 cp s.$1 fort.28 $AUTO_DIR/bin/keepuz rm fort.27 rm fort.28 if (test -r fort.37) then cp b.$1 b.$1~ mv fort.37 b.$1 fi if (test -r fort.38) then cp s.$1 s.$1~ mv fort.38 s.$1 echo " keepuz: Rewriting finished." fi elif( test $# -eq 2 ) then cp b.$1 fort.27 cp s.$1 fort.28 $AUTO_DIR/bin/keepuz rm fort.27 rm fort.28 if (test -r fort.37) then mv fort.37 b.$2 fi if (test -r fort.38) then mv fort.38 s.$2 echo " keepuz: Rewriting finished." fi else cp fort.7 fort.27 cp fort.8 fort.28 $AUTO_DIR/bin/keepuz rm fort.27 rm fort.28 if (test -r fort.37) then cp fort.7 fort.7~ mv fort.37 fort.7 fi if (test -r fort.38) then cp fort.8 fort.8~ mv fort.38 fort.8 echo " keepuz: Rewriting finished." fi fi auto-07p-0.9.1+dfsg/07p/cmds/@lb000077500000000000000000000015731206161447600160100ustar00rootroot00000000000000#!/bin/sh if ( test $# -eq 1 ) then cp b.$1 fort.27 cp s.$1 fort.28 $AUTO_DIR/bin/autlab rm fort.27 rm fort.28 if (test -r fort.37) then cp b.$1 b.$1~ mv fort.37 b.$1 fi if (test -r fort.38) then cp s.$1 s.$1~ mv fort.38 s.$1 echo " Rewriting finished." fi elif( test $# -eq 2 ) then cp b.$1 fort.27 cp s.$1 fort.28 $AUTO_DIR/bin/autlab rm fort.27 rm fort.28 if (test -r fort.37) then mv fort.37 b.$2 fi if (test -r fort.38) then mv fort.38 s.$2 echo " Rewriting finished." fi else cp fort.7 fort.27 cp fort.8 fort.28 $AUTO_DIR/bin/autlab rm fort.27 rm fort.28 if (test -r fort.37) then cp fort.7 fort.7~ mv fort.37 fort.7 fi if (test -r fort.38) then cp fort.8 fort.8~ mv fort.38 fort.8 echo " Rewriting finished." fi fi auto-07p-0.9.1+dfsg/07p/cmds/@lbf000077500000000000000000000005501206161447600161500ustar00rootroot00000000000000#! /usr/bin/env python import sys import os sys.path.append(os.path.join(os.environ["AUTO_DIR"],"python")) import parseB # This is the Python syntax for making a script runable if __name__ == '__main__': if len(sys.argv) > 1: diagram=parseB.parseB('b.'+sys.argv[1]) else: diagram=parseB.parseB('fort.7') diagram.writeShort() auto-07p-0.9.1+dfsg/07p/cmds/@ll000077500000000000000000000010141206161447600160100ustar00rootroot00000000000000#!/bin/sh if ( test $# -eq 1 ) then file=s.$1 else file=fort.8 fi if python - 2> /dev/null < 1: diagram=parseB.parseB('b.'+sys.argv[1]) else: diagram=parseB.parseB('fort.7') diagram.writeScreen() auto-07p-0.9.1+dfsg/07p/cmds/@mb000077500000000000000000000007221206161447600160040ustar00rootroot00000000000000#! /usr/bin/env python import sys import os sys.path.append(os.path.join(os.environ["AUTO_DIR"],"python")) from AUTOCommands import commandMergeBranches # This is the Python syntax for making a script runnable if __name__ == '__main__': if len(sys.argv) > 2: merge = commandMergeBranches(sys.argv[1],sys.argv[2]) elif len(sys.argv) > 1: merge = commandMergeBranches(sys.argv[1]) else: merge = commandMergeBranches() merge() auto-07p-0.9.1+dfsg/07p/cmds/@mn000077500000000000000000000007431206161447600160230ustar00rootroot00000000000000#!/bin/sh VIEWERS="xpdf acroread evince gv" MANUAL="$AUTO_DIR/doc/auto.pdf" GOT_VIEWER="false" for VIEWER in $VIEWERS; do saveIFS=$IFS IFS=":" for d in $PATH; do if test -f "$d/$VIEWER" && test -x "$d/$VIEWER"; then $VIEWER $MANUAL & GOT_VIEWER="true" break fi done IFS=$saveIFS if test "$GOT_VIEWER" = "true"; then break fi done if test "$GOT_VIEWER" = "false"; then echo "No suitable PDF viewer found (tried: $VIEWERS)" fi auto-07p-0.9.1+dfsg/07p/cmds/@mv000077500000000000000000000014251206161447600160310ustar00rootroot00000000000000#!/bin/sh error="true" name1="$1" name2="$2" dir1="" dir2="" if test -d "$1"; then dir1="$1/" name1="$2" if test $# -eq 4; then dir2="$3/" name2="$4" elif test $# -eq 3; then name2="$3" fi elif test -d "$2"; then dir2="$2/" if test $# -eq 3; then file2="$3" else file2="$1" fi fi for prefix in b s d c; do file1="$dir1$prefix.$name1" file2="$dir2$prefix.$name2" if test $prefix == "c"; then if cp -f "$file1" "$file2" 2> /dev/null; then echo "Copying $file1 to $file2 ... done" unset error fi elif mv -f "$file1" "$file2" 2> /dev/null; then echo "Renaming $file1 as $file2 ... done" unset error fi done if test -n "$error"; then echo "Renaming: no files found for $dir1[bsdc].$name1 and $dir2[bsdc].$name2" fi auto-07p-0.9.1+dfsg/07p/cmds/@no000077500000000000000000000001161206161447600160170ustar00rootroot00000000000000#!/bin/sh if ( test $# -eq 1 ) then grep NOTE d.$1 else grep NOTE fort.9 fi auto-07p-0.9.1+dfsg/07p/cmds/@p000077500000000000000000000006661206161447600156540ustar00rootroot00000000000000#!/bin/sh . compat.sh if ( test $# -eq 1 ) then b1=b.$1 s1=s.$1 echo "Plotting b.$1 and s.$1 ..." else b1=fort.7 s1=fort.8 echo "Plotting fort.7 and fort.8 ..." fi if test $COMPAT = compat; then cp $b1 fort.17 cp $s1 fort.18 b1= s1= fi if [ -x $AUTO_DIR/bin/xterm-tek ]; then $AUTO_DIR/bin/xterm-tek -bg black -fg white -t -e $AUTO_DIR/bin/plaut $b1 $s1 & else xterm -bg black -fg white -t -e $AUTO_DIR/bin/plaut $b1 $s1 & fi auto-07p-0.9.1+dfsg/07p/cmds/@pl000077500000000000000000000000501206161447600160130ustar00rootroot00000000000000#!/bin/sh $AUTO_DIR/bin/plaut04 $1 $2 & auto-07p-0.9.1+dfsg/07p/cmds/@pp000077500000000000000000000000671206161447600160270ustar00rootroot00000000000000#!/bin/sh exec $AUTO_DIR/python/graphics/pyplaut.py $1 auto-07p-0.9.1+dfsg/07p/cmds/@ps000077500000000000000000000000661206161447600160310ustar00rootroot00000000000000#!/bin/sh cat $1 | $AUTO_DIR/tek2ps/tek2ps -i > $1.ps auto-07p-0.9.1+dfsg/07p/cmds/@r000077500000000000000000000011501206161447600156430ustar00rootroot00000000000000#!/bin/sh rm -f fort.2 CFILE= SFILE= if ( test $# -eq 1 ) then CFILE="$1" if (test -r s.$1) then SFILE="$1" fi elif ( test $# -eq 2 ) then if ( test -r c.$1 -a -r s.$2 ) then CFILE="$1" SFILE="$2" else CFILE="$1.$2" if (test -r s.$1) then SFILE="$1" fi fi elif ( test -r c.$3 -a -r s.$2 ) then CFILE="$3" SFILE="$2" else CFILE="$1.$2" SFILE="$3" fi if ( test -n "$SFILE" -a -r c.$CFILE ) then echo s=\'$SFILE\' | cat - c.$CFILE | make -f $AUTO_DIR/cmds/cmds.make EQUATION_NAME=$1 else make -f $AUTO_DIR/cmds/cmds.make EQUATION_NAME=$1 < c.$CFILE fi auto-07p-0.9.1+dfsg/07p/cmds/@r3b000077500000000000000000000000551206161447600160730ustar00rootroot00000000000000#!/bin/sh $AUTO_DIR/bin/plaut04 -r3b $1 $2 & auto-07p-0.9.1+dfsg/07p/cmds/@rc000077500000000000000000000004641206161447600160150ustar00rootroot00000000000000#!/bin/sh echo " File recovery ... done." if ( test $# -eq 1 ) then mv b.$1 b.tmp mv s.$1 s.tmp mv b.$1~ b.$1 mv s.$1~ s.$1 mv b.tmp b.$1~ mv s.tmp s.$1~ else mv fort.7 tmp.7 mv fort.8 tmp.8 mv fort.7~ fort.7 mv fort.8~ fort.8 mv tmp.7 fort.7~ mv tmp.8 fort.8~ fi echo " File recovery ... done." auto-07p-0.9.1+dfsg/07p/cmds/@rd000077500000000000000000000016261206161447600160170ustar00rootroot00000000000000#!/bin/sh if ( test $# -eq 1 ) then cp b.$1 fort.27 cp s.$1 fort.28 $AUTO_DIR/bin/reduce rm fort.27 rm fort.28 if (test -r fort.37) then cp b.$1 b.$1~ mv fort.37 b.$1 fi if (test -r fort.38) then cp s.$1 s.$1~ mv fort.38 s.$1 echo " rl: File reduction finished." fi elif( test $# -eq 2 ) then cp b.$1 fort.27 cp s.$1 fort.28 $AUTO_DIR/bin/reduce rm fort.27 rm fort.28 if (test -r fort.37) then mv fort.37 b.$2 fi if (test -r fort.38) then mv fort.38 s.$2 echo " rl: File reduction finished." fi else cp fort.7 fort.27 cp fort.8 fort.28 $AUTO_DIR/bin/reduce rm fort.27 rm fort.28 if (test -r fort.37) then cp fort.7 fort.7~ mv fort.37 fort.7 fi if (test -r fort.38) then cp fort.8 fort.8~ mv fort.38 fort.8 echo " rl: File reduction finished." fi fi auto-07p-0.9.1+dfsg/07p/cmds/@rl000077500000000000000000000017651206161447600160330ustar00rootroot00000000000000#!/bin/sh if ( test $# -eq 1 ) then inb=b.$1 ins=s.$1 outb=b.$1~~ outs=s.$1~~ elif( test $# -eq 2 ) then inb=b.$1 ins=s.$1 outb=b.$2 outs=s.$2 else inb=fort.7 ins=fort.8 outb=fort.37 outs=fort.38 fi if $AUTO_DIR/python/relabel.py $inb $ins $outb $outs 2> /dev/null; then :; else #Fortran relabelling . compat.sh if test $COMPAT = compat; then cp $inb fort.27 cp $ins fort.28 outb=fort.37 outs=fort.38 $AUTO_DIR/bin/relabel rm fort.27 fort.28 if test $# -eq 2; then if (test -r fort.37) then mv fort.37 b.$2 fi if (test -r fort.38) then mv fort.38 s.$2 outs=s.$2 fi fi else $AUTO_DIR/bin/relabel $inb $ins $outb $outs fi fi if( test $# -eq 2 ) then if (test -r $outs) then echo " rl: Relabeling finished." fi else if (test -r $outb) then mv $inb $inb~ mv $outb $inb fi if (test -r $outs) then mv $ins $ins~ mv $outs $ins echo " rl: Relabeling finished." fi fi auto-07p-0.9.1+dfsg/07p/cmds/@rn000077500000000000000000000002561206161447600160270ustar00rootroot00000000000000#!/bin/sh for i in r.*; do mv $i c.${i#r.} done for i in s.*; do mv $i h.${i#s.} done for i in p.*; do mv $i b.${i#p.} done for i in q.*; do mv $i s.${i#q.} done auto-07p-0.9.1+dfsg/07p/cmds/@sb000077500000000000000000000010341206161447600160070ustar00rootroot00000000000000#! /usr/bin/env python import sys import os sys.path.append(os.path.join(os.environ["AUTO_DIR"],"python")) from AUTOCommands import commandSubtractBranches # This is the Python syntax for making a script runnable if __name__ == '__main__': point = 1 branch = 1 if len(sys.argv) > 4: branch = int(sys.argv[4]) if len(sys.argv) > 5: point = int(sys.argv[5]) sub = commandSubtractBranches(sys.argv[1],sys.argv[2],sys.argv[3], branch=branch,point=point) sub() auto-07p-0.9.1+dfsg/07p/cmds/@sp000077500000000000000000000001141206161447600160230ustar00rootroot00000000000000#!/bin/sh if ( test $# -eq 1 ) then grep SPB d.$1 else grep SPB fort.9 fi auto-07p-0.9.1+dfsg/07p/cmds/@sr000077500000000000000000000000321206161447600160240ustar00rootroot00000000000000#!/bin/sh cp c.$1 c.$1.$2 auto-07p-0.9.1+dfsg/07p/cmds/@ss000077500000000000000000000001161206161447600160300ustar00rootroot00000000000000#!/bin/sh if ( test $# -eq 1 ) then grep Step d.$1 else grep Step fort.9 fi auto-07p-0.9.1+dfsg/07p/cmds/@st000077500000000000000000000001221206161447600160260ustar00rootroot00000000000000#!/bin/sh if ( test $# -eq 1 ) then grep Stable d.$1 else grep Stable fort.9 fi auto-07p-0.9.1+dfsg/07p/cmds/@sv000077500000000000000000000002651206161447600160400ustar00rootroot00000000000000#!/bin/sh cat fort.7 > b.$1 cat fort.8 > s.$1 cat fort.9 > d.$1 echo "Saving fort.7 as b.$1 ... done" echo "Saving fort.8 as s.$1 ... done" echo "Saving fort.9 as d.$1 ... done" auto-07p-0.9.1+dfsg/07p/cmds/@tr000077500000000000000000000003761206161447600160400ustar00rootroot00000000000000#!/bin/sh if ( test $# -eq 1 ) then cp s.$1 fort.28 cp b.$1 b.$1~ mv s.$1 s.$1~ $AUTO_DIR/bin/triple mv fort.38 s.$1 rm fort.28 else cp fort.8 fort.28 cp fort.7 fort.7~ mv fort.8 fort.8~ $AUTO_DIR/bin/triple mv fort.38 fort.8 rm fort.28 fi auto-07p-0.9.1+dfsg/07p/cmds/@uz000077500000000000000000000000531206161447600160410ustar00rootroot00000000000000#!/bin/sh unzip b.* unzip s.* unzip d.* auto-07p-0.9.1+dfsg/07p/cmds/@zr000077500000000000000000000002721206161447600160410ustar00rootroot00000000000000#!/bin/sh echo " " echo " Zeroing small numbers in s.$1 ... " make -f $AUTO_DIR/util/Makefile zero cp s.$1 fort.28 mv s.$1 s.$1~ ./zero mv fort.38 s.$1 rm fort.28 rm zero echo " Done. " auto-07p-0.9.1+dfsg/07p/cmds/Makefile.in000066400000000000000000000124571206161447600174350ustar00rootroot00000000000000#===> auto.makefile # # Makefile written by Xianjun WANG in March 1994 # # This Makefile is called from the Graphic User Interface (GUI) # # The following environment variables are controlled in GUI program # at run time: # # PROGRAMNAME : the name of the program # NEW_PROGRAMNAME : the output data name saved by "save as ..." button # NEW_PLOTNAME : the output data name to be plotted by "plot name ..." button # RESTARTNAME : the restart data name to be set to unit 3 (fort.3) # RESTARTDATA : same as RESTARTNAME, but only needed in GUI program # COPYFROM : the name of the output data to be copied from # COPYTO : the name of the output data to be copied to # MOVEFROM : the name of the output data to be moved from # MOVETO : the name of the output data to be moved to # APPENDFROM : the name of the output data to be appended from # APPENDTO : the name of the output data to be appended to # DELETEDATA : the name of the output data to be deleted # # .IGNORE: # FC = @FC@ FFLAGS = @FFLAGS@ OPT = @OPT_FLAG@ SRC = $(PROGRAMNAME).f OBJ = $(PROGRAMNAME).o EXE = $(PROGRAMNAME).exe LIBS = $(AUTO_DIR)/lib/*.o RM = rm -f # start: $(EXE) run # run: @echo " " @echo "Starting $(PROGRAMNAME) ..." @echo " " @cp c.$(PROGRAMNAME) fort.2 @touch fort.3 @./$(EXE) @rm -f fort.3 @echo " " @echo "$(PROGRAMNAME) ... done" # restart: $(EXE) rerun rerun: @echo " " @echo "Restarting $(PROGRAMNAME) ..." @echo " " @cp c.$(PROGRAMNAME) fort.2 @cp s.$(RESTARTNAME) fort.3 @./$(EXE) @rm -f fort.3 @echo " " @echo "$(PROGRAMNAME) ... done" # $(EXE): $(OBJ) $(FC) $(FFLAGS) $(OPT) $(OBJ) -o $@ $(LIBS) # $(OBJ): $(SRC) $(FC) $(FFLAGS) $(OPT) -c $(SRC) -o $@ # save: @echo " " @echo "Starting save ..." @cp fort.7 b.$(PROGRAMNAME) @echo "Saved fort.7 as b.$(PROGRAMNAME)" @cp fort.8 s.$(PROGRAMNAME) @echo "Saved fort.8 as s.$(PROGRAMNAME)" @cp fort.9 d.$(PROGRAMNAME) @echo "Saved fort.9 as d.$(PROGRAMNAME)" @echo "Saving ... done" @echo " " # saveas: @echo " " @echo "Starting save ..." @cp fort.7 b.$(NEW_PROGRAMNAME) @echo "Saved fort.7 as b.$(NEW_PROGRAMNAME)" @cp fort.8 s.$(NEW_PROGRAMNAME) @echo "Saved fort.8 as s.$(NEW_PROGRAMNAME)" @cp fort.9 d.$(NEW_PROGRAMNAME) @echo "Saved fort.9 as d.$(NEW_PROGRAMNAME)" @cp fort.2 c.$(NEW_PROGRAMNAME) @echo "Saved fort.2 as c.$(NEW_PROGRAMNAME)" @echo "Saving ... done" @echo " " # append: @echo " " @echo "Starting append ..." @cat fort.7 >> b.$(PROGRAMNAME) @echo "Appended fort.7 to b.$(PROGRAMNAME)" @cat fort.8 >> s.$(PROGRAMNAME) @echo "Appended fort.8 to s.$(PROGRAMNAME)" @cat fort.9 >> d.$(PROGRAMNAME) @echo "Appended fort.9 to d.$(PROGRAMNAME)" @echo "Appending ... done" @echo " " # appendto: @echo " " @echo "Starting append ..." @cat fort.7 >> b.$(NEW_PROGRAMNAME) @echo "Appended fort.7 to b.$(NEW_PROGRAMNAME)" @cat fort.8 >> s.$(NEW_PROGRAMNAME) @echo "Appended fort.8 to s.$(NEW_PROGRAMNAME)" @cat fort.9 >> d.$(NEW_PROGRAMNAME) @echo "Appended fort.9 to d.$(NEW_PROGRAMNAME)" @echo "Appending ... done" @echo " " # plot_current: @echo " " @echo "Starting plaut ..." @cp b.$(PROGRAMNAME) fort.17 @cp s.$(PROGRAMNAME) fort.18 @echo "Plotting b.$(PROGRAMNAME) and s.$(PROGRAMNAME) ..." @xterm -bg black -fg white -t -e $(AUTO_DIR)/bin/plaut @$(RM) fort.17 @$(RM) fort.18 @echo "Plotting ... done" @echo " " # plot_other: @echo " " @echo "Starting plaut ..." @cp b.$(NEW_PLOTNAME) fort.17 @cp s.$(NEW_PLOTNAME) fort.18 @echo "Plotting b.$(NEW_PLOTNAME) and s.$(NEW_PLOTNAME) ..." @xterm -bg black -fg white -t -e $(AUTO_DIR)/bin/plaut @$(RM) fort.17 @$(RM) fort.18 @echo "Plotting ... done" @echo " " # restartdata: @echo " " @echo "Setting s.$(RESTARTDATA) as restart file ... done" # copydata: @echo " " @cp b.$(COPYFROM) b.$(COPYTO) @echo "Copying b.$(COPYFROM) to b.$(COPYTO) ... done" @cp s.$(COPYFROM) s.$(COPYTO) @echo "Copying s.$(COPYFROM) to s.$(COPYTO) ... done" @cp d.$(COPYFROM) d.$(COPYTO) @echo "Copying d.$(COPYFROM) to d.$(COPYTO) ... done" @cp c.$(COPYFROM) c.$(COPYTO) @echo "Copying c.$(COPYFROM) to c.$(COPYTO) ... done" # appenddata: @echo " " @cat b.$(APPENDFROM) >> b.$(APPENDTO) @echo "Appending b.$(APPENDFROM) to b.$(APPENDTO) ... done" @cat s.$(APPENDFROM) >> s.$(APPENDTO) @echo "Appending s.$(APPENDFROM) to s.$(APPENDTO) ... done" @cat d.$(APPENDFROM) >> d.$(APPENDTO) @echo "Appending d.$(APPENDFROM) to d.$(APPENDTO) ... done" # movedata: @echo " " @mv -f b.$(MOVEFROM) b.$(MOVETO) @echo "Moving b.$(MOVEFROM) to b.$(MOVETO) ... done" @mv -f s.$(MOVEFROM) s.$(MOVETO) @echo "Moving s.$(MOVEFROM) to s.$(MOVETO) ... done" @mv -f d.$(MOVEFROM) d.$(MOVETO) @echo "Moving d.$(MOVEFROM) to d.$(MOVETO) ... done" @mv -f c.$(MOVEFROM) c.$(MOVETO) @echo "Moving c.$(MOVEFROM) to c.$(MOVETO) ... done" # deletedata: @echo " " @$(RM) b.$(DELETEDATA) @echo "Deleting b.$(DELETEDATA) ... done" @$(RM) s.$(DELETEDATA) @echo "Deleting s.$(DELETEDATA) ... done" @$(RM) d.$(DELETEDATA) @echo "Deleting d.$(DELETEDATA) ... done" # clean: @echo " " @echo "Cleaning ..." @$(RM) *.o fort.* *.exe *.trace core @echo "Cleaning ... done" @echo " " # # DO NOT ADD ANYTHING AFTER THIS LINE # auto-07p-0.9.1+dfsg/07p/cmds/auto.env000066400000000000000000000002651206161447600170440ustar00rootroot00000000000000# # This file has to be sourced before activating AUTO # setenv AUTO_DIR $HOME/auto/07p set path=($AUTO_DIR/cmds $AUTO_DIR/bin $path) # # DON'T ADD ANYTHING AFTER THIS LINE # auto-07p-0.9.1+dfsg/07p/cmds/auto.env.sh000077500000000000000000000006151206161447600174570ustar00rootroot00000000000000# # This file has to be sourced before activating AUTO if you are using # a 'sh' compatible shell, such as sh, bash, ksh, or ash. # AUTO_DIR=$HOME/auto/07p PATH=$AUTO_DIR/cmds:$AUTO_DIR/bin:$PATH # the following is an example (to be uncommented) for Windows+MSYS: #PATH="/c/Python27:/bin:/c/Program Files/gfortran/bin:$PATH" export AUTO_DIR export PATH # # DON'T ADD ANYTHING AFTER THIS LINE # auto-07p-0.9.1+dfsg/07p/cmds/cmds.make.in000066400000000000000000000041101206161447600175450ustar00rootroot00000000000000#===> cmds.make # # Makefile written by Xianjun WANG in March 1994 # # This Makefile is used under command mode # # EQUATION_NAME : AUTO-Equation name # .IGNORE: .SUFFIXES: .f90 # CC = @CC@ FC = @FC@ CFLAGS = @CFLAGS@ -I$(AUTO_DIR)/include FFLAGS = @FFLAGS@ OPT = @OPT_FLAG@ SRC = $(EQUATION_NAME).f OBJ = $(EQUATION_NAME).o EXE = $(EQUATION_NAME).exe LIBS = $(AUTO_DIR)/lib/*.o RM = rm -f # @rn run: $(EXE) @echo "Starting $(EQUATION_NAME) ..." @$(AUTO_COMMAND_PREFIX) @./$(EXE) @rm -f fort.2 fort.3 @echo "$(EQUATION_NAME) ... done" # $(EXE): $(OBJ) $(LIBS) @if [ -f $(EQUATION_NAME).f90 -o -f $(EQUATION_NAME).f ]; then \ echo $(FC) $(FFLAGS) $(OPT) $(OBJ) -o $@ '$(LIBS)'; \ $(FC) $(FFLAGS) $(OPT) $(OBJ) -o $@ $(LIBS); \ elif [ -f $(EQUATION_NAME).c ]; then \ echo $(FC) -L$(AUTO_DIR)/lib $(FFLAGS) $(OPT) $(OBJ) -o $@ '$(LIBS)' -lauto_c; \ $(FC) -L$(AUTO_DIR)/lib $(FFLAGS) $(OPT) $(OBJ) -o $@ $(LIBS) -l auto_c; \ else \ echo $(EQUATION_NAME).f does not exist.; \ fi # .f.o: $(FC) $(FFLAGS) $(OPT) -c $< -o $@ # .f90.o: $(FC) $(FFLAGS) $(OPT) -c $< -o $@ # .c.o: @if [ -f $(EQUATION_NAME).f90 ]; then \ echo $(FC) $(FFLAGS) $(OPT) -c $(EQUATION_NAME).f90 -o $@; \ $(FC) $(FFLAGS) $(OPT) -c $(EQUATION_NAME).f90 -o $@; \ elif [ -f $(EQUATION_NAME).f ]; then \ echo $(FC) $(FFLAGS) $(OPT) -c $(EQUATION_NAME).f -o $@; \ $(FC) $(FFLAGS) $(OPT) -c $(EQUATION_NAME).f -o $@; \ else \ echo $(CC) $(CFLAGS) $(OPT) -c $< -o $@; \ $(CC) $(CFLAGS) $(OPT) -c $< -o $@; \ fi # FLAGS=-I$(AUTO_DIR)/include $(OPT) FCON=$(AUTO_DIR)/src/fcon.f fcon: $(EQUATION_NAME).o $(AUTO_DIR)/src/fcon.f $(AUTO_DIR)/include/fcon.h @if [ -f $(EQUATION_NAME).f90 ]; then \ $(FC) $(FLAGS) $(FFLAGS) $(EQUATION_NAME).o $(FCON) -o $@; \ elif [ -f $(EQUATION_NAME).f ]; then \ $(FC) $(FLAGS) $(FFLAGS) $(EQUATION_NAME).o $(FCON) -o $@; \ elif [ -f $(EQUATION_NAME).c ]; then \ $(FC) -L$(AUTO_DIR)/lib $(FFLAGS) $(OPT) $(EQUATION_NAME).o $(FCON) -o $@ -lauto_c; \ fi # # DO NOT ADD ANYTHING AFTER THIS LINE # auto-07p-0.9.1+dfsg/07p/cmds/compat.sh.in000066400000000000000000000000201206161447600175730ustar00rootroot00000000000000COMPAT=@COMPAT@ auto-07p-0.9.1+dfsg/07p/configure000077500000000000000000006676351206161447600163670ustar00rootroot00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.65. # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error ERROR [LINENO LOG_FD] # --------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with status $?, using 1 if that was 0. as_fn_error () { as_status=$?; test $as_status -eq 0 && as_status=1 if test "$3"; then as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 fi $as_echo "$as_me: error: $1" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= PACKAGE_URL= ac_unique_file="plaut04/src/gmain.c++" ac_subst_vars='LTLIBOBJS LIBOBJS DEPS_INCLUDES DEPS_LIBS SOXT_OBJS_R3B SOXT_OBJS PLAUT04 MOC HAVE_SOXT_CONFIG HAVE_SOQT_CONFIG HAVE_COIN_CONFIG ac_ct_CXX CXXFLAGS CXX TEK2PS GUI PLAUT FFLAGS EGREP GREP X_EXTRA_LIBS X_LIBS X_PRE_LIBS X_CFLAGS CPP XMKMF SET_MAKE FCLIBS COMPAT FCFLAGS_f90 ac_ct_FC FCFLAGS INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC MPIFILE OPT_FLAG MPIFC FC target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking with_optimization_flags with_openmp with_mpi enable_plaut enable_plaut04 enable_plaut04_qt enable_gui enable_tek2ps with_x ' ac_precious_vars='build_alias host_alias target_alias FC MPIFC CC CFLAGS LDFLAGS LIBS CPPFLAGS FCFLAGS XMKMF CPP CXX CXXFLAGS CCC' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error "unrecognized option: \`$ac_option' Try \`$0 --help' for more information." ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures this package to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF X features: --x-includes=DIR X include files are in DIR --x-libraries=DIR X library files are in DIR _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-plaut Compile the Plaut plotting package (default: yes) --enable-plaut04 Compile the Plaut04 plotting package (default: yes) --enable-plaut04-qt Try to use QT instead of Motif/LessTif for Plaut04 (default: yes) --enable-gui Compile the Motif based GUI package (default: no) --enable-tek2ps Compile the Tek2ps conversion utility (default: yes) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-optimization-flags=FLAGS Choose an optimization flag to give to the compilers (default: -O) --with-openmp Try to use OpenMP (default: yes) --with-mpi Try to use MPI (default: no) --with-x use the X Window System Some influential environment variables: FC Choose a Fortran (>=90) compiler other than the default MPIFC Command to use to compile MPI programs (default: mpif90) CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory FCFLAGS Fortran compiler flags XMKMF Path to xmkmf, Makefile generator for X Window System CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF configure generated by GNU Autoconf 2.65 Copyright (C) 2009 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_fc_try_compile LINENO # --------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_fc_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_fc_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_fc_try_compile # ac_fn_fc_try_link LINENO # ------------------------ # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_fc_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_fc_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_fc_try_link # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_func # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_cxx_try_compile LINENO # ---------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile # ac_fn_cxx_try_link LINENO # ------------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_cxx_try_link cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.65. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then ac_site_file1=$CONFIG_SITE elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_headers="$ac_config_headers include/config.h" # Check whether --with-optimization-flags was given. if test "${with_optimization_flags+set}" = set; then : withval=$with_optimization_flags; OPT_FLAG=$withval else OPT_FLAG="-O" fi # Check whether --with-openmp was given. if test "${with_openmp+set}" = set; then : withval=$with_openmp; openmp=$withval else openmp="yes" fi # Check whether --with-mpi was given. if test "${with_mpi+set}" = set; then : withval=$with_mpi; mpi=$withval else mpi="no" fi # Check whether --enable-plaut was given. if test "${enable_plaut+set}" = set; then : enableval=$enable_plaut; ENABLE_PLAUT=$enableval else ENABLE_PLAUT=yes fi # Check whether --enable-plaut04 was given. if test "${enable_plaut04+set}" = set; then : enableval=$enable_plaut04; ENABLE_PLAUT04=$enableval else ENABLE_PLAUT04=yes fi # Check whether --enable-plaut04-qt was given. if test "${enable_plaut04_qt+set}" = set; then : enableval=$enable_plaut04_qt; ENABLE_PLAUT04_QT=$enableval else ENABLE_PLAUT04_QT=yes fi # Check whether --enable-gui was given. if test "${enable_gui+set}" = set; then : enableval=$enable_gui; ENABLE_GUI=$enableval else ENABLE_GUI=no fi # Check whether --enable-tek2ps was given. if test "${enable_tek2ps+set}" = set; then : enableval=$enable_tek2ps; ENABLE_TEK2PS=$enableval else ENABLE_TEK2PS=yes fi MPIFILE=nompi.f90 if test x$mpi = "xyes"; then # We first check for the MPI compilation script. If it exists # we try and us it to override the default compiler. if test x$MPIFC = "x"; then # sometimes (FC4/5) mpif77 actually calls f95... for ac_prog in mpif90 mpif95 mpif77 do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_MPIFC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$MPIFC"; then ac_cv_prog_MPIFC="$MPIFC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_MPIFC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi MPIFC=$ac_cv_prog_MPIFC if test -n "$MPIFC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPIFC" >&5 $as_echo "$MPIFC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$MPIFC" && break done test -n "$MPIFC" || MPIFC=""no"" if test x$MPIFC = "xmpif77"; then if ! ( $MPIFC -v 2>&1 | grep f95 > /dev/null ) ; then MPIFC=no fi fi fi if test x$MPIFC != "xno"; then MPI="yes" MPIFILE=mpi.f90 FC=$MPIFC fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "no acceptable C compiler found in \$PATH See \`config.log' for more details." "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { as_fn_set_status 77 as_fn_error "C compiler cannot create executables See \`config.log' for more details." "$LINENO" 5; }; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot compute suffix of object files: cannot compile See \`config.log' for more details." "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # adjust include path if gfortran is installed without MinGW on Windows cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else CPPFLAGS="$CPPFLAGS -iwithprefix ../../../../include" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do for ac_t in install-sh install.sh shtool; do if test -f "$ac_dir/$ac_t"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/$ac_t -c" break 2 fi done done if test -z "$ac_aux_dir"; then as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu if test x$FCFLAGS != "x"; then FFLAGS=$FCFLAGS fi ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn xlf90 f90 pgf90 pghpf epcf90 g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_FC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$FC"; then ac_cv_prog_FC="$FC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_FC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi FC=$ac_cv_prog_FC if test -n "$FC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FC" >&5 $as_echo "$FC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$FC" && break done fi if test -z "$FC"; then ac_ct_FC=$FC for ac_prog in gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn xlf90 f90 pgf90 pghpf epcf90 g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_FC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_FC"; then ac_cv_prog_ac_ct_FC="$ac_ct_FC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_FC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_FC=$ac_cv_prog_ac_ct_FC if test -n "$ac_ct_FC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_FC" >&5 $as_echo "$ac_ct_FC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_FC" && break done if test "x$ac_ct_FC" = x; then FC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac FC=$ac_ct_FC fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done rm -f a.out # If we don't use `.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU Fortran compiler" >&5 $as_echo_n "checking whether we are using the GNU Fortran compiler... " >&6; } if test "${ac_cv_fc_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat > conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me #endif end _ACEOF if ac_fn_fc_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_fc_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_compiler_gnu" >&5 $as_echo "$ac_cv_fc_compiler_gnu" >&6; } ac_ext=$ac_save_ext ac_test_FCFLAGS=${FCFLAGS+set} ac_save_FCFLAGS=$FCFLAGS FCFLAGS= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $FC accepts -g" >&5 $as_echo_n "checking whether $FC accepts -g... " >&6; } if test "${ac_cv_prog_fc_g+set}" = set; then : $as_echo_n "(cached) " >&6 else FCFLAGS=-g cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF if ac_fn_fc_try_compile "$LINENO"; then : ac_cv_prog_fc_g=yes else ac_cv_prog_fc_g=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_fc_g" >&5 $as_echo "$ac_cv_prog_fc_g" >&6; } if test "$ac_test_FCFLAGS" = set; then FCFLAGS=$ac_save_FCFLAGS elif test $ac_cv_prog_fc_g = yes; then if test "x$ac_cv_fc_compiler_gnu" = xyes; then FCFLAGS="-g -O2" else FCFLAGS="-g" fi else if test "x$ac_cv_fc_compiler_gnu" = xyes; then FCFLAGS="-O2" else FCFLAGS= fi fi ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran flag to compile .f90 files" >&5 $as_echo_n "checking for Fortran flag to compile .f90 files... " >&6; } if test "${ac_cv_fc_srcext_f90+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_ext=f90 ac_fcflags_srcext_save=$ac_fcflags_srcext ac_fcflags_srcext= ac_cv_fc_srcext_f90=unknown for ac_flag in none -qsuffix=f=f90 -Tf; do test "x$ac_flag" != xnone && ac_fcflags_srcext="$ac_flag" cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF if ac_fn_fc_try_compile "$LINENO"; then : ac_cv_fc_srcext_f90=$ac_flag; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest.$ac_objext conftest.f90 ac_fcflags_srcext=$ac_fcflags_srcext_save fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_srcext_f90" >&5 $as_echo "$ac_cv_fc_srcext_f90" >&6; } if test "x$ac_cv_fc_srcext_f90" = xunknown; then as_fn_error "Fortran could not compile .f90 files" "$LINENO" 5 else ac_fc_srcext=f90 if test "x$ac_cv_fc_srcext_f90" = xnone; then ac_fcflags_srcext="" FCFLAGS_f90="" else ac_fcflags_srcext=$ac_cv_fc_srcext_f90 FCFLAGS_f90=$ac_cv_fc_srcext_f90 fi fi ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran flag needed to allow free-form source" >&5 $as_echo_n "checking for Fortran flag needed to allow free-form source... " >&6; } if test "${ac_cv_fc_freeform+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_fc_freeform=unknown ac_fc_freeform_FCFLAGS_save=$FCFLAGS for ac_flag in none -ffree-form -FR -free -qfree -Mfree -Mfreeform \ -freeform "-f free" do test "x$ac_flag" != xnone && FCFLAGS="$ac_fc_freeform_FCFLAGS_save $ac_flag" cat > conftest.$ac_ext <<_ACEOF program freeform ! FIXME: how to best confuse non-freeform compilers? print *, 'Hello ', & 'world.' end _ACEOF if ac_fn_fc_try_compile "$LINENO"; then : ac_cv_fc_freeform=$ac_flag; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest.err conftest.$ac_objext conftest.$ac_ext FCFLAGS=$ac_fc_freeform_FCFLAGS_save fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_freeform" >&5 $as_echo "$ac_cv_fc_freeform" >&6; } if test "x$ac_cv_fc_freeform" = xunknown; then echo Fortran 77 compilers no longer work to compile AUTO. echo Please check with the manual. exit 1 else if test "x$ac_cv_fc_freeform" != xnone; then FCFLAGS="$FCFLAGS $ac_cv_fc_freeform" fi fi ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu # ifc needs -Vaxlib to use FLUSH and ETIME. COMPAT="f2003" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for F2003 or pre-F2003 compatibility functions" >&5 $as_echo_n "checking for F2003 or pre-F2003 compatibility functions... " >&6; } cat > conftest.$ac_ext <<_ACEOF program main real t character*80 s print *,'hello' flush(6) call cpu_time(t) t=command_argument_count() call get_command_argument(0,s) end _ACEOF if ac_fn_fc_try_link "$LINENO"; then : else COMPAT="unix"; cat > conftest.$ac_ext <<_ACEOF program main real t(2),r,etime character*80 s print *,'hello' call flush(6) r=etime(t) t=iargc() call getarg(0,s) end _ACEOF if ac_fn_fc_try_link "$LINENO"; then : else tmp=$FCFLAGS; FCFLAGS="$FCFLAGS -Vaxlib" cat > conftest.$ac_ext <<_ACEOF program main real t(2),r,etime character*80 s print *,'hello' call flush(6) r=etime(t) t=iargc() call getarg(0,s) end _ACEOF if ac_fn_fc_try_link "$LINENO"; then : FFLAGS="$FFLAGS -Vaxlib" else FCFLAGS=$tmp;COMPAT="compat" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $COMPAT.f90" >&5 $as_echo "$COMPAT.f90" >&6; } ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to get verbose linking output from $FC" >&5 $as_echo_n "checking how to get verbose linking output from $FC... " >&6; } if test "${ac_cv_prog_fc_v+set}" = set; then : $as_echo_n "(cached) " >&6 else cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF if ac_fn_fc_try_compile "$LINENO"; then : ac_cv_prog_fc_v= # Try some options frequently used verbose output for ac_verb in -v -verbose --verbose -V -\#\#\#; do cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF # Compile and link our simple test program by passing a flag (argument # 1 to this macro) to the Fortran compiler in order to get # "verbose" output that we can then parse for the Fortran linker # flags. ac_save_FCFLAGS=$FCFLAGS FCFLAGS="$FCFLAGS $ac_verb" eval "set x $ac_link" shift $as_echo "$as_me:${as_lineno-$LINENO}: $*" >&5 # gfortran 4.3 outputs lines setting COLLECT_GCC_OPTIONS, COMPILER_PATH, # LIBRARY_PATH; skip all such settings. ac_fc_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:' | grep -v "^[_$as_cr_Letters][_$as_cr_alnum]*="` $as_echo "$ac_fc_v_output" >&5 FCFLAGS=$ac_save_FCFLAGS rm -rf conftest* # On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where # /foo, /bar, and /baz are search directories for the Fortran linker. # Here, we change these into -L/foo -L/bar -L/baz (and put it first): ac_fc_v_output="`echo $ac_fc_v_output | grep 'LPATH is:' | sed 's|.*LPATH is\(: *[^ ]*\).*|\1|;s|: */| -L/|g'` $ac_fc_v_output" # FIXME: we keep getting bitten by quoted arguments; a more general fix # that detects unbalanced quotes in FLIBS should be implemented # and (ugh) tested at some point. case $ac_fc_v_output in # If we are using xlf then replace all the commas with spaces. *xlfentry*) ac_fc_v_output=`echo $ac_fc_v_output | sed 's/,/ /g'` ;; # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted # $LIBS confuse us, and the libraries appear later in the output anyway). *mGLOB_options_string*) ac_fc_v_output=`echo $ac_fc_v_output | sed 's/"-mGLOB[^"]*"/ /g'` ;; # Portland Group compiler has singly- or doubly-quoted -cmdline argument # Singly-quoted arguments were reported for versions 5.2-4 and 6.0-4. # Doubly-quoted arguments were reported for "PGF90/x86 Linux/x86 5.0-2". *-cmdline\ * | *-ignore\ * | *-def\ *) ac_fc_v_output=`echo $ac_fc_v_output | sed "\ s/-cmdline *'[^']*'/ /g; s/-cmdline *\"[^\"]*\"/ /g s/-ignore *'[^']*'/ /g; s/-ignore *\"[^\"]*\"/ /g s/-def *'[^']*'/ /g; s/-def *\"[^\"]*\"/ /g"` ;; # If we are using Cray Fortran then delete quotes. *cft90*) ac_fc_v_output=`echo $ac_fc_v_output | sed 's/"//g'` ;; esac # look for -l* and *.a constructs in the output for ac_arg in $ac_fc_v_output; do case $ac_arg in [\\/]*.a | ?:[\\/]*.a | -[lLRu]*) ac_cv_prog_fc_v=$ac_verb break 2 ;; esac done done if test -z "$ac_cv_prog_fc_v"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine how to obtain linking information from $FC" >&5 $as_echo "$as_me: WARNING: cannot determine how to obtain linking information from $FC" >&2;} fi else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: compilation failed" >&5 $as_echo "$as_me: WARNING: compilation failed" >&2;} fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_fc_v" >&5 $as_echo "$ac_cv_prog_fc_v" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran libraries of $FC" >&5 $as_echo_n "checking for Fortran libraries of $FC... " >&6; } if test "${ac_cv_fc_libs+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "x$FCLIBS" != "x"; then ac_cv_fc_libs="$FCLIBS" # Let the user override the test. else cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF # Compile and link our simple test program by passing a flag (argument # 1 to this macro) to the Fortran compiler in order to get # "verbose" output that we can then parse for the Fortran linker # flags. ac_save_FCFLAGS=$FCFLAGS FCFLAGS="$FCFLAGS $ac_cv_prog_fc_v" eval "set x $ac_link" shift $as_echo "$as_me:${as_lineno-$LINENO}: $*" >&5 # gfortran 4.3 outputs lines setting COLLECT_GCC_OPTIONS, COMPILER_PATH, # LIBRARY_PATH; skip all such settings. ac_fc_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:' | grep -v "^[_$as_cr_Letters][_$as_cr_alnum]*="` $as_echo "$ac_fc_v_output" >&5 FCFLAGS=$ac_save_FCFLAGS rm -rf conftest* # On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where # /foo, /bar, and /baz are search directories for the Fortran linker. # Here, we change these into -L/foo -L/bar -L/baz (and put it first): ac_fc_v_output="`echo $ac_fc_v_output | grep 'LPATH is:' | sed 's|.*LPATH is\(: *[^ ]*\).*|\1|;s|: */| -L/|g'` $ac_fc_v_output" # FIXME: we keep getting bitten by quoted arguments; a more general fix # that detects unbalanced quotes in FLIBS should be implemented # and (ugh) tested at some point. case $ac_fc_v_output in # If we are using xlf then replace all the commas with spaces. *xlfentry*) ac_fc_v_output=`echo $ac_fc_v_output | sed 's/,/ /g'` ;; # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted # $LIBS confuse us, and the libraries appear later in the output anyway). *mGLOB_options_string*) ac_fc_v_output=`echo $ac_fc_v_output | sed 's/"-mGLOB[^"]*"/ /g'` ;; # Portland Group compiler has singly- or doubly-quoted -cmdline argument # Singly-quoted arguments were reported for versions 5.2-4 and 6.0-4. # Doubly-quoted arguments were reported for "PGF90/x86 Linux/x86 5.0-2". *-cmdline\ * | *-ignore\ * | *-def\ *) ac_fc_v_output=`echo $ac_fc_v_output | sed "\ s/-cmdline *'[^']*'/ /g; s/-cmdline *\"[^\"]*\"/ /g s/-ignore *'[^']*'/ /g; s/-ignore *\"[^\"]*\"/ /g s/-def *'[^']*'/ /g; s/-def *\"[^\"]*\"/ /g"` ;; # If we are using Cray Fortran then delete quotes. *cft90*) ac_fc_v_output=`echo $ac_fc_v_output | sed 's/"//g'` ;; esac ac_cv_fc_libs= # Save positional arguments (if any) ac_save_positional="$@" set X $ac_fc_v_output while test $# != 1; do shift ac_arg=$1 case $ac_arg in [\\/]*.a | ?:[\\/]*.a) ac_exists=false for ac_i in $ac_cv_fc_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_cv_fc_libs="$ac_cv_fc_libs $ac_arg" fi ;; -bI:*) ac_exists=false for ac_i in $ac_cv_fc_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else if test "$ac_compiler_gnu" = yes; then for ac_link_opt in $ac_arg; do ac_cv_fc_libs="$ac_cv_fc_libs -Xlinker $ac_link_opt" done else ac_cv_fc_libs="$ac_cv_fc_libs $ac_arg" fi fi ;; # Ignore these flags. -lang* | -lcrt*.o | -lc | -lgcc* | -lSystem | -libmil | -little \ |-LANG:=* | -LIST:* | -LNO:*) ;; -lkernel32) test x"$CYGWIN" != xyes && ac_cv_fc_libs="$ac_cv_fc_libs $ac_arg" ;; -[LRuYz]) # These flags, when seen by themselves, take an argument. # We remove the space between option and argument and re-iterate # unless we find an empty arg or a new option (starting with -) case $2 in "" | -*);; *) ac_arg="$ac_arg$2" shift; shift set X $ac_arg "$@" ;; esac ;; -YP,*) for ac_j in `$as_echo "$ac_arg" | sed -e 's/-YP,/-L/;s/:/ -L/g'`; do ac_exists=false for ac_i in $ac_cv_fc_libs; do if test x"$ac_j" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_arg="$ac_arg $ac_j" ac_cv_fc_libs="$ac_cv_fc_libs $ac_j" fi done ;; -[lLR]*) ac_exists=false for ac_i in $ac_cv_fc_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_cv_fc_libs="$ac_cv_fc_libs $ac_arg" fi ;; -zallextract*| -zdefaultextract) ac_cv_fc_libs="$ac_cv_fc_libs $ac_arg" ;; # Ignore everything else. esac done # restore positional arguments set X $ac_save_positional; shift # We only consider "LD_RUN_PATH" on Solaris systems. If this is seen, # then we insist that the "run path" must be an absolute path (i.e. it # must begin with a "/"). case `(uname -sr) 2>/dev/null` in "SunOS 5"*) ac_ld_run_path=`$as_echo "$ac_fc_v_output" | sed -n 's,^.*LD_RUN_PATH *= *\(/[^ ]*\).*$,-R\1,p'` test "x$ac_ld_run_path" != x && if test "$ac_compiler_gnu" = yes; then for ac_link_opt in $ac_ld_run_path; do ac_cv_fc_libs="$ac_cv_fc_libs -Xlinker $ac_link_opt" done else ac_cv_fc_libs="$ac_cv_fc_libs $ac_ld_run_path" fi ;; esac fi # test "x$[]_AC_LANG_PREFIX[]LIBS" = "x" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_libs" >&5 $as_echo "$ac_cv_fc_libs" >&6; } FCLIBS="$ac_cv_fc_libs" ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dummy main to link with Fortran libraries" >&5 $as_echo_n "checking for dummy main to link with Fortran libraries... " >&6; } if test "${ac_cv_fc_dummy_main+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_fc_dm_save_LIBS=$LIBS LIBS="$LIBS $FCLIBS" ac_fortran_dm_var=FC_DUMMY_MAIN ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # First, try linking without a dummy main: cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_fortran_dummy_main=none else ac_cv_fortran_dummy_main=unknown fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test $ac_cv_fortran_dummy_main = unknown; then for ac_func in MAIN__ MAIN_ __main MAIN _MAIN __MAIN main_ main__ _main; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define $ac_fortran_dm_var $ac_func #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_fortran_dummy_main=$ac_func; break fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done fi ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_cv_fc_dummy_main=$ac_cv_fortran_dummy_main rm -rf conftest* LIBS=$ac_fc_dm_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_dummy_main" >&5 $as_echo "$ac_cv_fc_dummy_main" >&6; } FC_DUMMY_MAIN=$ac_cv_fc_dummy_main if test "$FC_DUMMY_MAIN" != unknown; then : fc_dummy="yes" else fc_dummy="no" fi ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu realcc=$CC if test x$fc_dummy = "xno"; then # Use gfortran/g95 to link wrapper functions if possible. # It appears that otherwise AC_FC_WRAPPERS gets confused on Windows, # because of spaces in names such as 'Program Files' CC=$FC # avoid caching previous result $as_unset ac_cv_fc_dummy_main ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dummy main to link with Fortran libraries" >&5 $as_echo_n "checking for dummy main to link with Fortran libraries... " >&6; } if test "${ac_cv_fc_dummy_main+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_fc_dm_save_LIBS=$LIBS LIBS="$LIBS $FCLIBS" ac_fortran_dm_var=FC_DUMMY_MAIN ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # First, try linking without a dummy main: cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_fortran_dummy_main=none else ac_cv_fortran_dummy_main=unknown fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test $ac_cv_fortran_dummy_main = unknown; then for ac_func in MAIN__ MAIN_ __main MAIN _MAIN __MAIN main_ main__ _main; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define $ac_fortran_dm_var $ac_func #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_fortran_dummy_main=$ac_func; break fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done fi ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_cv_fc_dummy_main=$ac_cv_fortran_dummy_main rm -rf conftest* LIBS=$ac_fc_dm_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_dummy_main" >&5 $as_echo "$ac_cv_fc_dummy_main" >&6; } FC_DUMMY_MAIN=$ac_cv_fc_dummy_main if test "$FC_DUMMY_MAIN" != unknown; then : fc_dummy="yes" else fc_dummy="no" fi ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu fi if test x$fc_dummy = "xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"Warning: can't link C with Fortran\"" >&5 $as_echo "$as_me: WARNING: \"Warning: can't link C with Fortran\"" >&2;} fi ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran name-mangling scheme" >&5 $as_echo_n "checking for Fortran name-mangling scheme... " >&6; } if test "${ac_cv_fc_mangling+set}" = set; then : $as_echo_n "(cached) " >&6 else cat > conftest.$ac_ext <<_ACEOF subroutine foobar() return end subroutine foo_bar() return end _ACEOF if ac_fn_fc_try_compile "$LINENO"; then : mv conftest.$ac_objext cfortran_test.$ac_objext ac_save_LIBS=$LIBS LIBS="cfortran_test.$ac_objext $LIBS $FCLIBS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_success=no for ac_foobar in foobar FOOBAR; do for ac_underscore in "" "_"; do ac_func="$ac_foobar$ac_underscore" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { return $ac_func (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_success=yes; break 2 fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done done ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu if test "$ac_success" = "yes"; then case $ac_foobar in foobar) ac_case=lower ac_foo_bar=foo_bar ;; FOOBAR) ac_case=upper ac_foo_bar=FOO_BAR ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_success_extra=no for ac_extra in "" "_"; do ac_func="$ac_foo_bar$ac_underscore$ac_extra" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { return $ac_func (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_success_extra=yes; break fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu if test "$ac_success_extra" = "yes"; then ac_cv_fc_mangling="$ac_case case" if test -z "$ac_underscore"; then ac_cv_fc_mangling="$ac_cv_fc_mangling, no underscore" else ac_cv_fc_mangling="$ac_cv_fc_mangling, underscore" fi if test -z "$ac_extra"; then ac_cv_fc_mangling="$ac_cv_fc_mangling, no extra underscore" else ac_cv_fc_mangling="$ac_cv_fc_mangling, extra underscore" fi else ac_cv_fc_mangling="unknown" fi else ac_cv_fc_mangling="unknown" fi LIBS=$ac_save_LIBS rm -rf conftest* rm -f cfortran_test* else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot compile a simple Fortran program See \`config.log' for more details." "$LINENO" 5; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_mangling" >&5 $as_echo "$ac_cv_fc_mangling" >&6; } ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu case $ac_cv_fc_mangling in "lower case, no underscore, no extra underscore") $as_echo "#define FC_FUNC(name,NAME) name" >>confdefs.h $as_echo "#define FC_FUNC_(name,NAME) name" >>confdefs.h ;; "lower case, no underscore, extra underscore") $as_echo "#define FC_FUNC(name,NAME) name" >>confdefs.h $as_echo "#define FC_FUNC_(name,NAME) name ## _" >>confdefs.h ;; "lower case, underscore, no extra underscore") $as_echo "#define FC_FUNC(name,NAME) name ## _" >>confdefs.h $as_echo "#define FC_FUNC_(name,NAME) name ## _" >>confdefs.h ;; "lower case, underscore, extra underscore") $as_echo "#define FC_FUNC(name,NAME) name ## _" >>confdefs.h $as_echo "#define FC_FUNC_(name,NAME) name ## __" >>confdefs.h ;; "upper case, no underscore, no extra underscore") $as_echo "#define FC_FUNC(name,NAME) NAME" >>confdefs.h $as_echo "#define FC_FUNC_(name,NAME) NAME" >>confdefs.h ;; "upper case, no underscore, extra underscore") $as_echo "#define FC_FUNC(name,NAME) NAME" >>confdefs.h $as_echo "#define FC_FUNC_(name,NAME) NAME ## _" >>confdefs.h ;; "upper case, underscore, no extra underscore") $as_echo "#define FC_FUNC(name,NAME) NAME ## _" >>confdefs.h $as_echo "#define FC_FUNC_(name,NAME) NAME ## _" >>confdefs.h ;; "upper case, underscore, extra underscore") $as_echo "#define FC_FUNC(name,NAME) NAME ## _" >>confdefs.h $as_echo "#define FC_FUNC_(name,NAME) NAME ## __" >>confdefs.h ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unknown Fortran name-mangling scheme" >&5 $as_echo "$as_me: WARNING: unknown Fortran name-mangling scheme" >&2;} ;; esac ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu CC=$realcc if test x$openmp = "xyes"; then # Check for OpenMP. If it exists we try to use it. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenMP flag of Fortran compiler" >&5 $as_echo_n "checking for OpenMP flag of Fortran compiler... " >&6; } if test "${ax_cv_fc_openmp+set}" = set; then : $as_echo_n "(cached) " >&6 else saveFCFLAGS=$FCFLAGS ax_cv_fc_openmp=unknown # Flags to try: -fopenmp (gcc), -openmp (icc), -mp (SGI & PGI), # -xopenmp (Sun), -omp (Tru64), -qsmp=omp (AIX), none ax_openmp_flags="-fopenmp -openmp -mp -xopenmp -omp -qsmp=omp none" if test "x$OPENMP_FCFLAGS" != x; then ax_openmp_flags="$OPENMP_FCFLAGS $ax_openmp_flags" fi for ax_openmp_flag in $ax_openmp_flags; do case $ax_openmp_flag in none) FCFLAGS=$saveFC ;; *) FCFLAGS="$saveFCFLAGS $ax_openmp_flag" ;; esac cat > conftest.$ac_ext <<_ACEOF program main call omp_set_num_threads end _ACEOF if ac_fn_fc_try_link "$LINENO"; then : ax_cv_fc_openmp=$ax_openmp_flag; break fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done FCFLAGS=$saveFCFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_fc_openmp" >&5 $as_echo "$ax_cv_fc_openmp" >&6; } if test "x$ax_cv_fc_openmp" = "xunknown"; then openmp="no" else if test "x$ax_cv_fc_openmp" != "xnone"; then OPENMP_FCFLAGS=$ax_cv_fc_openmp fi FFLAGS="$FFLAGS $OPENMP_FCFLAGS" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi #Check for the default X stuff ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5 $as_echo_n "checking for X... " >&6; } # Check whether --with-x was given. if test "${with_x+set}" = set; then : withval=$with_x; fi # $have_x is `yes', `no', `disabled', or empty when we do not yet know. if test "x$with_x" = xno; then # The user explicitly disabled X. have_x=disabled else case $x_includes,$x_libraries in #( *\'*) as_fn_error "cannot use X directory names containing '" "$LINENO" 5;; #( *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then : $as_echo_n "(cached) " >&6 else # One or both of the vars are not set, and there is no cached value. ac_x_includes=no ac_x_libraries=no rm -f -r conftest.dir if mkdir conftest.dir; then cd conftest.dir cat >Imakefile <<'_ACEOF' incroot: @echo incroot='${INCROOT}' usrlibdir: @echo usrlibdir='${USRLIBDIR}' libdir: @echo libdir='${LIBDIR}' _ACEOF if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then # GNU make sometimes prints "make[1]: Entering...", which would confuse us. for ac_var in incroot usrlibdir libdir; do eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" done # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. for ac_extension in a so sl dylib la dll; do if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" && test -f "$ac_im_libdir/libX11.$ac_extension"; then ac_im_usrlibdir=$ac_im_libdir; break fi done # Screen out bogus values from the imake configuration. They are # bogus both because they are the default anyway, and because # using them would break gcc on systems where it needs fixed includes. case $ac_im_incroot in /usr/include) ac_x_includes= ;; *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; esac case $ac_im_usrlibdir in /usr/lib | /usr/lib64 | /lib | /lib64) ;; *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; esac fi cd .. rm -f -r conftest.dir fi # Standard set of common directories for X headers. # Check X11 before X11Rn because it is often a symlink to the current release. ac_x_header_dirs=' /usr/X11/include /usr/X11R7/include /usr/X11R6/include /usr/X11R5/include /usr/X11R4/include /usr/include/X11 /usr/include/X11R7 /usr/include/X11R6 /usr/include/X11R5 /usr/include/X11R4 /usr/local/X11/include /usr/local/X11R7/include /usr/local/X11R6/include /usr/local/X11R5/include /usr/local/X11R4/include /usr/local/include/X11 /usr/local/include/X11R7 /usr/local/include/X11R6 /usr/local/include/X11R5 /usr/local/include/X11R4 /usr/X386/include /usr/x386/include /usr/XFree86/include/X11 /usr/include /usr/local/include /usr/unsupported/include /usr/athena/include /usr/local/x11r5/include /usr/lpp/Xamples/include /usr/openwin/include /usr/openwin/share/include' if test "$ac_x_includes" = no; then # Guess where to find include files, by looking for Xlib.h. # First, try using that file with no special directory specified. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # We can compile using X headers with no special include directory. ac_x_includes= else for ac_dir in $ac_x_header_dirs; do if test -r "$ac_dir/X11/Xlib.h"; then ac_x_includes=$ac_dir break fi done fi rm -f conftest.err conftest.$ac_ext fi # $ac_x_includes = no if test "$ac_x_libraries" = no; then # Check for the libraries. # See if we find them without any special options. # Don't add to $LIBS permanently. ac_save_LIBS=$LIBS LIBS="-lX11 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { XrmInitialize () ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : LIBS=$ac_save_LIBS # We can link X programs with no special library path. ac_x_libraries= else LIBS=$ac_save_LIBS for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` do # Don't even attempt the hair of trying to link an X program! for ac_extension in a so sl dylib la dll; do if test -r "$ac_dir/libX11.$ac_extension"; then ac_x_libraries=$ac_dir break 2 fi done done fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # $ac_x_libraries = no case $ac_x_includes,$ac_x_libraries in #( no,* | *,no | *\'*) # Didn't find X, or a directory has "'" in its name. ac_cv_have_x="have_x=no";; #( *) # Record where we found X for the cache. ac_cv_have_x="have_x=yes\ ac_x_includes='$ac_x_includes'\ ac_x_libraries='$ac_x_libraries'" esac fi ;; #( *) have_x=yes;; esac eval "$ac_cv_have_x" fi # $with_x != no if test "$have_x" != yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5 $as_echo "$have_x" >&6; } no_x=yes else # If each of the values was on the command line, it overrides each guess. test "x$x_includes" = xNONE && x_includes=$ac_x_includes test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries # Update the cache value to reflect the command line values. ac_cv_have_x="have_x=yes\ ac_x_includes='$x_includes'\ ac_x_libraries='$x_libraries'" { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5 $as_echo "libraries $x_libraries, headers $x_includes" >&6; } fi if test "$no_x" = yes; then # Not all programs may use this symbol, but it does not hurt to define it. $as_echo "#define X_DISPLAY_MISSING 1" >>confdefs.h X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= else if test -n "$x_includes"; then X_CFLAGS="$X_CFLAGS -I$x_includes" fi # It would also be nice to do this for all -L options, not just this one. if test -n "$x_libraries"; then X_LIBS="$X_LIBS -L$x_libraries" # For Solaris; some versions of Sun CC require a space after -R and # others require no space. Words are not sufficient . . . . { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -R must be followed by a space" >&5 $as_echo_n "checking whether -R must be followed by a space... " >&6; } ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" ac_xsave_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } X_LIBS="$X_LIBS -R$x_libraries" else LIBS="$ac_xsave_LIBS -R $x_libraries" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } X_LIBS="$X_LIBS -R $x_libraries" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: neither works" >&5 $as_echo "neither works" >&6; } fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_c_werror_flag=$ac_xsave_c_werror_flag LIBS=$ac_xsave_LIBS fi # Check for system-dependent libraries X programs must link with. # Do this before checking for the system-independent R6 libraries # (-lICE), since we may need -lsocket or whatever for X linking. if test "$ISC" = yes; then X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" else # Martyn Johnson says this is needed for Ultrix, if the X # libraries were built with DECnet support. And Karl Berry says # the Alpha needs dnet_stub (dnet does not exist). ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char XOpenDisplay (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { return XOpenDisplay (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5 $as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; } if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldnet $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dnet_ntoa (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { return dnet_ntoa (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dnet_dnet_ntoa=yes else ac_cv_lib_dnet_dnet_ntoa=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 $as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; } if test "x$ac_cv_lib_dnet_dnet_ntoa" = x""yes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" fi if test $ac_cv_lib_dnet_dnet_ntoa = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5 $as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; } if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldnet_stub $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dnet_ntoa (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { return dnet_ntoa (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dnet_stub_dnet_ntoa=yes else ac_cv_lib_dnet_stub_dnet_ntoa=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 $as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; } if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = x""yes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" fi fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$ac_xsave_LIBS" # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, # to get the SysV transport functions. # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4) # needs -lnsl. # The nsl library prevents programs from opening the X display # on Irix 5.2, according to T.E. Dickey. # The functions gethostbyname, getservbyname, and inet_addr are # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" if test "x$ac_cv_func_gethostbyname" = x""yes; then : fi if test $ac_cv_func_gethostbyname = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 $as_echo_n "checking for gethostbyname in -lnsl... " >&6; } if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnsl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { return gethostbyname (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_nsl_gethostbyname=yes else ac_cv_lib_nsl_gethostbyname=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 $as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" fi if test $ac_cv_lib_nsl_gethostbyname = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5 $as_echo_n "checking for gethostbyname in -lbsd... " >&6; } if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lbsd $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { return gethostbyname (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_bsd_gethostbyname=yes else ac_cv_lib_bsd_gethostbyname=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5 $as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; } if test "x$ac_cv_lib_bsd_gethostbyname" = x""yes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" fi fi fi # lieder@skyler.mavd.honeywell.com says without -lsocket, # socket/setsockopt and other routines are undefined under SCO ODT # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary # on later versions), says Simon Leinen: it contains gethostby* # variants that don't use the name server (or something). -lsocket # must be given before -lnsl if both are needed. We assume that # if connect needs -lnsl, so does gethostbyname. ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect" if test "x$ac_cv_func_connect" = x""yes; then : fi if test $ac_cv_func_connect = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5 $as_echo_n "checking for connect in -lsocket... " >&6; } if test "${ac_cv_lib_socket_connect+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsocket $X_EXTRA_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char connect (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { return connect (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_socket_connect=yes else ac_cv_lib_socket_connect=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5 $as_echo "$ac_cv_lib_socket_connect" >&6; } if test "x$ac_cv_lib_socket_connect" = x""yes; then : X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" fi fi # Guillermo Gomez says -lposix is necessary on A/UX. ac_fn_c_check_func "$LINENO" "remove" "ac_cv_func_remove" if test "x$ac_cv_func_remove" = x""yes; then : fi if test $ac_cv_func_remove = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5 $as_echo_n "checking for remove in -lposix... " >&6; } if test "${ac_cv_lib_posix_remove+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lposix $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char remove (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { return remove (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_posix_remove=yes else ac_cv_lib_posix_remove=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5 $as_echo "$ac_cv_lib_posix_remove" >&6; } if test "x$ac_cv_lib_posix_remove" = x""yes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" fi fi # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat" if test "x$ac_cv_func_shmat" = x""yes; then : fi if test $ac_cv_func_shmat = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5 $as_echo_n "checking for shmat in -lipc... " >&6; } if test "${ac_cv_lib_ipc_shmat+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lipc $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shmat (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { return shmat (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_ipc_shmat=yes else ac_cv_lib_ipc_shmat=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5 $as_echo "$ac_cv_lib_ipc_shmat" >&6; } if test "x$ac_cv_lib_ipc_shmat" = x""yes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" fi fi fi # Check for libraries that X11R6 Xt/Xaw programs need. ac_save_LDFLAGS=$LDFLAGS test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to # check for ICE first), but we must link in the order -lSM -lICE or # we get undefined symbols. So assume we have SM if we have ICE. # These have to be linked with before -lX11, unlike the other # libraries we check for below, so use a different variable. # John Interrante, Karl Berry { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5 $as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; } if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lICE $X_EXTRA_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char IceConnectionNumber (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { return IceConnectionNumber (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_ICE_IceConnectionNumber=yes else ac_cv_lib_ICE_IceConnectionNumber=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 $as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; } if test "x$ac_cv_lib_ICE_IceConnectionNumber" = x""yes; then : X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" fi LDFLAGS=$ac_save_LDFLAGS fi # We also need Motif. If we don't find it, X is not useful for us # so we set the same no_x variable as the above macro #Now we want to check to see is Motif is installed { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XmCreateMainWindow in -lXm" >&5 $as_echo_n "checking for XmCreateMainWindow in -lXm... " >&6; } if test "${ac_cv_lib_Xm_XmCreateMainWindow+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lXm $X_PRE_LIBS $X_LIBS -lXt -lX11 $X_EXTRA_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char XmCreateMainWindow (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { return XmCreateMainWindow (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_Xm_XmCreateMainWindow=yes else ac_cv_lib_Xm_XmCreateMainWindow=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xm_XmCreateMainWindow" >&5 $as_echo "$ac_cv_lib_Xm_XmCreateMainWindow" >&6; } if test "x$ac_cv_lib_Xm_XmCreateMainWindow" = x""yes; then : X_LIBS="$X_LIBS -lXm -lXt -lX11" else no_x=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi CFLAGS="$CPPFLAGS $CFLAGS" if test x$ENABLE_PLAUT = xyes; then PLAUT=plaut else PLAUT="" fi if test x$no_x != xyes && test x$ENABLE_GUI = xyes; then GUI=gui else GUI="" fi if test x$ENABLE_TEK2PS = xyes; then TEK2PS=tek2ps else TEK2PS="" fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : HAVE_CXX="yes" else HAVE_CXX="no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext PLAUT04_TEST=yes # Extract the first word of "coin-config", so it can be a program name with args. set dummy coin-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_HAVE_COIN_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$HAVE_COIN_CONFIG"; then ac_cv_prog_HAVE_COIN_CONFIG="$HAVE_COIN_CONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_HAVE_COIN_CONFIG="true" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_HAVE_COIN_CONFIG" && ac_cv_prog_HAVE_COIN_CONFIG="false" fi fi HAVE_COIN_CONFIG=$ac_cv_prog_HAVE_COIN_CONFIG if test -n "$HAVE_COIN_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_COIN_CONFIG" >&5 $as_echo "$HAVE_COIN_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi COIN_LIBS="-lCoin" COIN_LDFLAGS= COIN_INCLUDES= if test x$HAVE_COIN_CONFIG = "xtrue"; then COIN_LIBS="`coin-config --libs`" COIN_LDFLAGS="`coin-config --ldflags`" COIN_INCLUDES="`coin-config --cppflags`" fi tmp_LIBS=$LIBS LIBS="$LIBS $DEPS_LIBS $COIN_LIBS" tmp_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $COIN_LDFLAGS" tmp_CPPFLAGS=$CPPFLAGS CPPFLAGS="$CPPFLAGS $COIN_INCLUDES" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main(void){SoDB::init();} _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : COIN3D="yes" else COIN3D="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test x$COIN3D = "xno" && test x$CXX = "xg++"; then tmp_CXX=$CXX # for 64-bit Mac OS try with -m32 to link with 32bit coin CXX="g++ -m32" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main(void){SoDB::init();} _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : COIN3D="yes" else COIN3D="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test x$COIN3D = "xno"; then CXX=$tmp_CXX fi fi LIBS=$tmp_LIBS LDFLAGS=$tmp_LDFLAGS CPPFLAGS=$tmp_CPPFLAGS if test x$COIN3D = "xno"; then { echo "configure: error: COIN3D is not installed"; { $as_echo "$as_me:${as_lineno-$LINENO}: checking for abort in -lInventor" >&5 $as_echo_n "checking for abort in -lInventor... " >&6; } if test "${ac_cv_lib_Inventor_abort+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lInventor $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char abort (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { return abort (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_Inventor_abort=yes else ac_cv_lib_Inventor_abort=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Inventor_abort" >&5 $as_echo "$ac_cv_lib_Inventor_abort" >&6; } if test "x$ac_cv_lib_Inventor_abort" = x""yes; then : OI="yes" else OI="no" fi if test x$OI = "xno"; then { echo "configure: error: OI is not installed"; PLAUT04_TEST=no } else { DEPS_LIBS="$DEPS_LIBS -lInventor" echo "configure: SGI Open Inventor OK. $DEPS_LIBS"; { $as_echo "$as_me:${as_lineno-$LINENO}: checking for abort in -lInventorXt" >&5 $as_echo_n "checking for abort in -lInventorXt... " >&6; } if test "${ac_cv_lib_InventorXt_abort+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lInventorXt $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char abort (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { return abort (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_InventorXt_abort=yes else ac_cv_lib_InventorXt_abort=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_InventorXt_abort" >&5 $as_echo "$ac_cv_lib_InventorXt_abort" >&6; } if test "x$ac_cv_lib_InventorXt_abort" = x""yes; then : OIXTLIB="yes" else OIXTLIB="no" fi if test x$OIXTLIB = "xno"; then { echo "configure: error: SGI Open Inventor Xt Library is not installed"; PLAUT04_TEST=no; } else { DEPS_LIBS="$DEPS_LIBS -lInventorXt" echo "configure: SGI Open Inventor Xt OK. $DEPS_LIBS"; } fi } fi } else { echo "configure: Coin3d OK."; SOXT_LDFLAGS=$COIN_LDFLAGS SOXT_LIBS=$COIN_LIBS SOXT_INCLUDES=$COIN_INCLUDES SOXTLIB="no" if test x$ENABLE_PLAUT04_QT = xyes; then # Extract the first word of "soqt-config", so it can be a program name with args. set dummy soqt-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_HAVE_SOQT_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$HAVE_SOQT_CONFIG"; then ac_cv_prog_HAVE_SOQT_CONFIG="$HAVE_SOQT_CONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_HAVE_SOQT_CONFIG="true" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_HAVE_SOQT_CONFIG" && ac_cv_prog_HAVE_SOQT_CONFIG="false" fi fi HAVE_SOQT_CONFIG=$ac_cv_prog_HAVE_SOQT_CONFIG if test -n "$HAVE_SOQT_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_SOQT_CONFIG" >&5 $as_echo "$HAVE_SOQT_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x$HAVE_SOQT_CONFIG = "xtrue"; then SOXT_LIBS="`soqt-config --libs`" SOXT_LDFLAGS="`soqt-config --ldflags`" SOXT_INCLUDES="`soqt-config --cppflags` -DSOQT_DLL" fi tmp_LIBS=$LIBS LIBS="$LIBS $DEPS_LIBS $SOXT_LIBS" tmp_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $SOXT_LDFLAGS" tmp_CPPFLAGS=$CPPFLAGS CPPFLAGS="$CPPFLAGS $SOXT_INCLUDES" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main(void){(void)SoQt::init((const char *)0L);} _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : SOXTLIB="SoQt" else # -lXi is a workaround for Fedora Core 5 LIBS="$LIBS -lXi" SOXT_LIBS="$SOXT_LIBS -lXi" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main(void){(void)SoQt::init((const char *)0L);} _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : SOXTLIB="SoQt" else SOXTLIB="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$tmp_LIBS LDFLAGS=$tmp_LDFLAGS CPPFLAGS=$tmp_CPPFLAGS fi if test x$SOXTLIB = xno; then # Extract the first word of "soxt-config", so it can be a program name with args. set dummy soxt-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_HAVE_SOXT_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$HAVE_SOXT_CONFIG"; then ac_cv_prog_HAVE_SOXT_CONFIG="$HAVE_SOXT_CONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_HAVE_SOXT_CONFIG="true" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_HAVE_SOXT_CONFIG" && ac_cv_prog_HAVE_SOXT_CONFIG="false" fi fi HAVE_SOXT_CONFIG=$ac_cv_prog_HAVE_SOXT_CONFIG if test -n "$HAVE_SOXT_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_SOXT_CONFIG" >&5 $as_echo "$HAVE_SOXT_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x$HAVE_SOXT_CONFIG = "xtrue"; then SOXT_LIBS="`soxt-config --libs`" SOXT_LDFLAGS="`soxt-config --ldflags`" SOXT_INCLUDES="`soxt-config --cppflags`" fi tmp_LIBS=$LIBS LIBS="$LIBS $DEPS_LIBS $SOXT_LIBS" tmp_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $SOXT_LDFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for abort in -lSoXt" >&5 $as_echo_n "checking for abort in -lSoXt... " >&6; } if test "${ac_cv_lib_SoXt_abort+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lSoXt $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char abort (); #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1; } #endif #endif int main () { return abort (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_SoXt_abort=yes else ac_cv_lib_SoXt_abort=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_SoXt_abort" >&5 $as_echo "$ac_cv_lib_SoXt_abort" >&6; } if test "x$ac_cv_lib_SoXt_abort" = x""yes; then : SOXTLIB="SoXt" else SOXTLIB="no" fi LIBS=$tmp_LIBS LDFLAGS=$tmp_LDFLAGS fi if test x$SOXTLIB = "xno"; then { echo "configure: error: Coin3d SoQt/SoXt Library is not installed"; PLAUT04_TEST=no; } else { if test x$HAVE_SOXT_CONFIG = "xfalse"; then SOXT_LIBS="-lCoin -l$SOXTLIB" if test x$HAVE_COIN_CONFIG = "xtrue"; then SOXT_LIBS="$COIN_LIBS -l$SOXTLIB" SOXT_LDFLAGS=$COIN_LDFLAGS fi fi DEPS_LIBS="$SOXT_LDFLAGS $DEPS_LIBS $SOXT_LIBS" DEPS_INCLUDES="$DEPS_INCLUDES $SOXT_INCLUDES" echo "configure: Coin3d $SOXTLIB OK. $DEPS_INCLUDES $DEPS_LIBS"; } fi } fi if (test x$HAVE_SOXT_CONFIG = "xtrue" || test x$HAVE_SOQT_CONFIG = "xtrue" || \ test x$no_x != xyes) && \ test x$ENABLE_PLAUT04 = xyes && test x$PLAUT04_TEST = xyes; then PLAUT04=plaut04 if test x$SOXTLIB = "xSoXt"; then DEPS_LIBS="$X_PRE_LIBS $DEPS_LIBS $X_LIBS $X_EXTRA_LIBS" SOXT_OBJS=gmainxt.o SOXT_OBJS_R3B=gmainxt.o else MOCNAMES="moc-qt3 moc" if ( echo $SOXT_LIBS | grep QtGui > /dev/null ); then MOCNAMES="moc-qt4 moc" fi if test -n "$QTDIR"; then mocpath=$QTDIR/bin:$PATH else mocpath=$PATH fi for ac_prog in $MOCNAMES do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MOC+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MOC in [\\/]* | ?:[\\/]*) ac_cv_path_MOC="$MOC" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $mocpath do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MOC="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MOC=$ac_cv_path_MOC if test -n "$MOC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MOC" >&5 $as_echo "$MOC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$MOC" && break done test -n "$MOC" || MOC="false" if test x"$MOC" = x"false"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ''moc'' Qt preprocessor not found" >&5 $as_echo "$as_me: WARNING: ''moc'' Qt preprocessor not found" >&2;} if test -z "$QTDIR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: (QTDIR environment variable not set)" >&5 $as_echo "$as_me: WARNING: (QTDIR environment variable not set)" >&2;} fi PLAUT04="" PLAUT04_TEST="no" else SOXT_OBJS="gmainqt.moc.o gmainqt.o" SOXT_OBJS_R3B="../gmainqt.moc.o gmainqt.o" X_CFLAGS="$X_CFLAGS -DUSE_SOQT" fi fi else PLAUT04="" PLAUT04_TEST="no" fi ac_config_files="$ac_config_files Makefile src/Makefile util/Makefile gui/Makefile tek2ps/Makefile plaut/Makefile plaut04/Makefile plaut04/src/Makefile cmds/cmds.make cmds/Makefile gui/auto.makefile cmds/compat.sh" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error ERROR [LINENO LOG_FD] # --------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with status $?, using 1 if that was 0. as_fn_error () { as_status=$?; test $as_status -eq 0 && as_status=1 if test "$3"; then as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 fi $as_echo "$as_me: error: $1" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by $as_me, which was generated by GNU Autoconf 2.65. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.65, with options \\"\$ac_cs_config\\" Copyright (C) 2009 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "include/config.h") CONFIG_HEADERS="$CONFIG_HEADERS include/config.h" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "util/Makefile") CONFIG_FILES="$CONFIG_FILES util/Makefile" ;; "gui/Makefile") CONFIG_FILES="$CONFIG_FILES gui/Makefile" ;; "tek2ps/Makefile") CONFIG_FILES="$CONFIG_FILES tek2ps/Makefile" ;; "plaut/Makefile") CONFIG_FILES="$CONFIG_FILES plaut/Makefile" ;; "plaut04/Makefile") CONFIG_FILES="$CONFIG_FILES plaut04/Makefile" ;; "plaut04/src/Makefile") CONFIG_FILES="$CONFIG_FILES plaut04/src/Makefile" ;; "cmds/cmds.make") CONFIG_FILES="$CONFIG_FILES cmds/cmds.make" ;; "cmds/Makefile") CONFIG_FILES="$CONFIG_FILES cmds/Makefile" ;; "gui/auto.makefile") CONFIG_FILES="$CONFIG_FILES gui/auto.makefile" ;; "cmds/compat.sh") CONFIG_FILES="$CONFIG_FILES cmds/compat.sh" ;; *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || as_fn_error "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_t=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_t"; then break elif $ac_last_try; then as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || as_fn_error "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" } >"$tmp/config.h" \ || as_fn_error "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$tmp/config.h" "$ac_file" \ || as_fn_error "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error "could not create -" "$LINENO" 5 fi ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit $? fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi if test x$no_x = xyes && test x$ENABLE_GUI = xyes; then echo "***************************************************" echo "It was requested that the GUI front end be compiled" echo "but the proper X libraries (libX and libXt) and/or " echo "Motif libraries (libXm) could not be found. The " echo "compilation of the GUI had been disabled. " echo "***************************************************" fi if test x$ENABLE_PLAUT04 = xyes && test x$PLAUT04_TEST = xno; then echo "***************************************************" echo "It was requested that the plotting utility PLAUT04 " echo "be compiled but the proper libraries (Coin3D and " echo "SoQt or SoXt or Open Inventor and Open Inventor Xt)" echo "and perhaps Motif libraries (libXm) could not be " echo "found. The compilation of PLAUT04 is disabled. " if test x$HAVE_CXX = xno; then echo "You will also need to install a C++ compiler, e.g. g++." fi echo "***************************************************" fi if test x$openmp = "xyes" && test x$MPI != "xyes"; then echo "***************************************************" echo "AUTO has been configured with support for OpenMP" echo "***************************************************" fi if test x$openmp != "xyes" && test x$MPI = "xyes"; then echo "***************************************************" echo "AUTO has been configured with support for MPI" echo "***************************************************" fi if test x$openmp = "xyes" && test x$MPI = "xyes"; then echo "***************************************************" echo "AUTO has been configured with support for" echo "OpenMP and MPI" echo "***************************************************" fi auto-07p-0.9.1+dfsg/07p/configure.ac000066400000000000000000000266441206161447600167330ustar00rootroot00000000000000AC_INIT(plaut04/src/gmain.c++) AC_CONFIG_HEADERS(include/config.h) AC_ARG_VAR(FC, [Choose a Fortran (>=90) compiler other than the default]) AC_ARG_VAR(MPIFC, [Command to use to compile MPI programs (default: mpif90)]) AC_ARG_WITH(optimization-flags, [ --with-optimization-flags=FLAGS Choose an optimization flag to give to the compilers (default: -O)], [OPT_FLAG=$withval],[OPT_FLAG="-O"]) AC_ARG_WITH(openmp, [ --with-openmp Try to use OpenMP (default: yes)], [openmp=$withval],[openmp="yes"]) AC_ARG_WITH(mpi, [ --with-mpi Try to use MPI (default: no)], [mpi=$withval],[mpi="no"]) AC_ARG_ENABLE(plaut, [ --enable-plaut Compile the Plaut plotting package (default: yes)], [ENABLE_PLAUT=$enableval],ENABLE_PLAUT=yes) AC_ARG_ENABLE(plaut04, [ --enable-plaut04 Compile the Plaut04 plotting package (default: yes)], [ENABLE_PLAUT04=$enableval],ENABLE_PLAUT04=yes) AC_ARG_ENABLE(plaut04-qt, [ --enable-plaut04-qt Try to use QT instead of Motif/LessTif for Plaut04 (default: yes)], [ENABLE_PLAUT04_QT=$enableval],ENABLE_PLAUT04_QT=yes) AC_ARG_ENABLE(gui, [ --enable-gui Compile the Motif based GUI package (default: no)], [ENABLE_GUI=$enableval],ENABLE_GUI=no) AC_ARG_ENABLE(tek2ps, [ --enable-tek2ps Compile the Tek2ps conversion utility (default: yes)], [ENABLE_TEK2PS=$enableval],ENABLE_TEK2PS=yes) AC_SUBST(OPT_FLAG) dnl Checks for programs. MPIFILE=nompi.f90 if test x$mpi = "xyes"; then # We first check for the MPI compilation script. If it exists # we try and us it to override the default compiler. if test x$MPIFC = "x"; then # sometimes (FC4/5) mpif77 actually calls f95... AC_CHECK_PROGS(MPIFC,[mpif90 mpif95 mpif77],"no") if test x$MPIFC = "xmpif77"; then if ! ( $MPIFC -v 2>&1 | grep f95 > /dev/null ) ; then MPIFC=no fi fi fi if test x$MPIFC != "xno"; then MPI="yes" MPIFILE=mpi.f90 FC=$MPIFC fi fi AC_SUBST(MPIFILE) AC_PROG_CC # adjust include path if gfortran is installed without MinGW on Windows AC_COMPILE_IFELSE([#include ],, [CPPFLAGS="$CPPFLAGS -iwithprefix ../../../../include"]) AC_PROG_INSTALL AC_LANG_PUSH(Fortran) if test x$FCFLAGS != "x"; then FFLAGS=$FCFLAGS fi AC_PROG_FC AC_FC_SRCEXT(f90) AC_FC_FREEFORM(, echo Fortran 77 compilers no longer work to compile AUTO. echo Please check with the manual. exit 1 ) # ifc needs -Vaxlib to use FLUSH and ETIME. COMPAT="f2003" AC_DEFUN([F2KPROG], [ program main real t character*80 s print *,'hello' flush(6) call cpu_time(t) t=command_argument_count() call get_command_argument(0,s) end ]) AC_DEFUN([UNIXPROG], [ program main real t(2),r,etime character*80 s print *,'hello' call flush(6) r=etime(t) t=iargc() call getarg(0,s) end ]) AC_MSG_CHECKING([for F2003 or pre-F2003 compatibility functions]) AC_LINK_IFELSE([F2KPROG],,[ COMPAT="unix"; AC_LINK_IFELSE([UNIXPROG],, [tmp=$FCFLAGS; FCFLAGS="$FCFLAGS -Vaxlib" AC_LINK_IFELSE([UNIXPROG], FFLAGS="$FFLAGS -Vaxlib",[FCFLAGS=$tmp;COMPAT="compat"])])]) AC_SUBST(COMPAT) AC_MSG_RESULT([$COMPAT.f90]) AC_FC_DUMMY_MAIN([fc_dummy="yes"],[fc_dummy="no"]) realcc=$CC if test x$fc_dummy = "xno"; then # Use gfortran/g95 to link wrapper functions if possible. # It appears that otherwise AC_FC_WRAPPERS gets confused on Windows, # because of spaces in names such as 'Program Files' CC=$FC # avoid caching previous result $as_unset ac_cv_fc_dummy_main AC_FC_DUMMY_MAIN([fc_dummy="yes"],[fc_dummy="no"]) fi if test x$fc_dummy = "xno"; then AC_MSG_WARN(["Warning: can't link C with Fortran"]) fi AC_FC_WRAPPERS CC=$realcc if test x$openmp = "xyes"; then # Check for OpenMP. If it exists we try to use it. AX_OPENMP(FFLAGS="$FFLAGS $OPENMP_FCFLAGS",openmp="no") fi AC_LANG_POP AC_PROG_MAKE_SET dnl Checks for libraries. #Check for the default X stuff AC_PATH_XTRA # We also need Motif. If we don't find it, X is not useful for us # so we set the same no_x variable as the above macro #Now we want to check to see is Motif is installed AC_CHECK_LIB(Xm,XmCreateMainWindow,X_LIBS="$X_LIBS -lXm -lXt -lX11", no_x=yes,$X_PRE_LIBS $X_LIBS -lXt -lX11 $X_EXTRA_LIBS) dnl Checks for header files. AC_HEADER_STDC AC_SUBST(FFLAGS) CFLAGS="$CPPFLAGS $CFLAGS" if test x$ENABLE_PLAUT = xyes; then PLAUT=plaut else PLAUT="" fi AC_SUBST(PLAUT) if test x$no_x != xyes && test x$ENABLE_GUI = xyes; then GUI=gui else GUI="" fi AC_SUBST(GUI) if test x$ENABLE_TEK2PS = xyes; then TEK2PS=tek2ps else TEK2PS="" fi AC_SUBST(TEK2PS) dnl AC_HAVE_LIBRARY([m]) AC_PROG_CXX AC_LANG(C++) AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],[HAVE_CXX="yes"],[HAVE_CXX="no"]) PLAUT04_TEST=yes AC_CHECK_PROG(HAVE_COIN_CONFIG, coin-config, true, false) COIN_LIBS="-lCoin" COIN_LDFLAGS= COIN_INCLUDES= if test x$HAVE_COIN_CONFIG = "xtrue"; then COIN_LIBS="`coin-config --libs`" COIN_LDFLAGS="`coin-config --ldflags`" COIN_INCLUDES="`coin-config --cppflags`" fi tmp_LIBS=$LIBS LIBS="$LIBS $DEPS_LIBS $COIN_LIBS" tmp_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $COIN_LDFLAGS" tmp_CPPFLAGS=$CPPFLAGS CPPFLAGS="$CPPFLAGS $COIN_INCLUDES" AC_LINK_IFELSE([#include int main(void){SoDB::init();}], [COIN3D="yes"],[COIN3D="no"]) if test x$COIN3D = "xno" && test x$CXX = "xg++"; then tmp_CXX=$CXX # for 64-bit Mac OS try with -m32 to link with 32bit coin CXX="g++ -m32" AC_LINK_IFELSE([#include int main(void){SoDB::init();}], [COIN3D="yes"],[COIN3D="no"]) if test x$COIN3D = "xno"; then CXX=$tmp_CXX fi fi LIBS=$tmp_LIBS LDFLAGS=$tmp_LDFLAGS CPPFLAGS=$tmp_CPPFLAGS if test x$COIN3D = "xno"; then { echo "configure: error: COIN3D is not installed"; AC_CHECK_LIB([Inventor], abort, OI="yes", OI="no") if test x$OI = "xno"; then { echo "configure: error: OI is not installed"; PLAUT04_TEST=no } else { DEPS_LIBS="$DEPS_LIBS -lInventor" echo "configure: SGI Open Inventor OK. $DEPS_LIBS"; AC_CHECK_LIB([InventorXt],abort,OIXTLIB="yes",OIXTLIB="no") if test x$OIXTLIB = "xno"; then { echo "configure: error: SGI Open Inventor Xt Library is not installed"; PLAUT04_TEST=no; } else { DEPS_LIBS="$DEPS_LIBS -lInventorXt" echo "configure: SGI Open Inventor Xt OK. $DEPS_LIBS"; } fi } fi } else { echo "configure: Coin3d OK."; SOXT_LDFLAGS=$COIN_LDFLAGS SOXT_LIBS=$COIN_LIBS SOXT_INCLUDES=$COIN_INCLUDES SOXTLIB="no" if test x$ENABLE_PLAUT04_QT = xyes; then AC_CHECK_PROG(HAVE_SOQT_CONFIG, soqt-config, true, false) if test x$HAVE_SOQT_CONFIG = "xtrue"; then SOXT_LIBS="`soqt-config --libs`" SOXT_LDFLAGS="`soqt-config --ldflags`" SOXT_INCLUDES="`soqt-config --cppflags` -DSOQT_DLL" fi tmp_LIBS=$LIBS LIBS="$LIBS $DEPS_LIBS $SOXT_LIBS" tmp_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $SOXT_LDFLAGS" tmp_CPPFLAGS=$CPPFLAGS CPPFLAGS="$CPPFLAGS $SOXT_INCLUDES" AC_LINK_IFELSE([#include int main(void){(void)SoQt::init((const char *)0L);}], [SOXTLIB="SoQt"], # -lXi is a workaround for Fedora Core 5 [LIBS="$LIBS -lXi" SOXT_LIBS="$SOXT_LIBS -lXi" AC_LINK_IFELSE([#include int main(void){(void)SoQt::init((const char *)0L);}], [SOXTLIB="SoQt"], [SOXTLIB="no"])]) LIBS=$tmp_LIBS LDFLAGS=$tmp_LDFLAGS CPPFLAGS=$tmp_CPPFLAGS fi if test x$SOXTLIB = xno; then AC_CHECK_PROG(HAVE_SOXT_CONFIG, soxt-config, true, false) if test x$HAVE_SOXT_CONFIG = "xtrue"; then SOXT_LIBS="`soxt-config --libs`" SOXT_LDFLAGS="`soxt-config --ldflags`" SOXT_INCLUDES="`soxt-config --cppflags`" fi tmp_LIBS=$LIBS LIBS="$LIBS $DEPS_LIBS $SOXT_LIBS" tmp_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $SOXT_LDFLAGS" AC_CHECK_LIB([SoXt],abort,SOXTLIB="SoXt",SOXTLIB="no") LIBS=$tmp_LIBS LDFLAGS=$tmp_LDFLAGS fi if test x$SOXTLIB = "xno"; then { echo "configure: error: Coin3d SoQt/SoXt Library is not installed"; PLAUT04_TEST=no; } else { if test x$HAVE_SOXT_CONFIG = "xfalse"; then SOXT_LIBS="-lCoin -l$SOXTLIB" if test x$HAVE_COIN_CONFIG = "xtrue"; then SOXT_LIBS="$COIN_LIBS -l$SOXTLIB" SOXT_LDFLAGS=$COIN_LDFLAGS fi fi DEPS_LIBS="$SOXT_LDFLAGS $DEPS_LIBS $SOXT_LIBS" DEPS_INCLUDES="$DEPS_INCLUDES $SOXT_INCLUDES" echo "configure: Coin3d $SOXTLIB OK. $DEPS_INCLUDES $DEPS_LIBS"; } fi } fi if (test x$HAVE_SOXT_CONFIG = "xtrue" || test x$HAVE_SOQT_CONFIG = "xtrue" || \ test x$no_x != xyes) && \ test x$ENABLE_PLAUT04 = xyes && test x$PLAUT04_TEST = xyes; then PLAUT04=plaut04 if test x$SOXTLIB = "xSoXt"; then DEPS_LIBS="$X_PRE_LIBS $DEPS_LIBS $X_LIBS $X_EXTRA_LIBS" SOXT_OBJS=gmainxt.o SOXT_OBJS_R3B=gmainxt.o else MOCNAMES="moc-qt3 moc" if ( echo $SOXT_LIBS | grep QtGui > /dev/null ); then MOCNAMES="moc-qt4 moc" fi if test -n "$QTDIR"; then mocpath=$QTDIR/bin:$PATH else mocpath=$PATH fi AC_PATH_PROGS(MOC,[$MOCNAMES],false,$mocpath) if test x"$MOC" = x"false"; then AC_MSG_WARN([''moc'' Qt preprocessor not found]) if test -z "$QTDIR"; then AC_MSG_WARN([(QTDIR environment variable not set)]) fi PLAUT04="" PLAUT04_TEST="no" else SOXT_OBJS="gmainqt.moc.o gmainqt.o" SOXT_OBJS_R3B="../gmainqt.moc.o gmainqt.o" X_CFLAGS="$X_CFLAGS -DUSE_SOQT" fi fi else PLAUT04="" PLAUT04_TEST="no" fi AC_SUBST(PLAUT04) AC_SUBST(MOC) AC_SUBST(SOXT_OBJS) AC_SUBST(SOXT_OBJS_R3B) AC_SUBST(DEPS_LIBS) AC_SUBST(DEPS_INCLUDES) AC_OUTPUT(Makefile src/Makefile util/Makefile gui/Makefile tek2ps/Makefile plaut/Makefile plaut04/Makefile plaut04/src/Makefile cmds/cmds.make cmds/Makefile gui/auto.makefile cmds/compat.sh) if test x$no_x = xyes && test x$ENABLE_GUI = xyes; then echo "***************************************************" echo "It was requested that the GUI front end be compiled" echo "but the proper X libraries (libX and libXt) and/or " echo "Motif libraries (libXm) could not be found. The " echo "compilation of the GUI had been disabled. " echo "***************************************************" fi if test x$ENABLE_PLAUT04 = xyes && test x$PLAUT04_TEST = xno; then echo "***************************************************" echo "It was requested that the plotting utility PLAUT04 " echo "be compiled but the proper libraries (Coin3D and " echo "SoQt or SoXt or Open Inventor and Open Inventor Xt)" echo "and perhaps Motif libraries (libXm) could not be " echo "found. The compilation of PLAUT04 is disabled. " if test x$HAVE_CXX = xno; then echo "You will also need to install a C++ compiler, e.g. g++." fi echo "***************************************************" fi if test x$openmp = "xyes" && test x$MPI != "xyes"; then echo "***************************************************" echo "AUTO has been configured with support for OpenMP" echo "***************************************************" fi if test x$openmp != "xyes" && test x$MPI = "xyes"; then echo "***************************************************" echo "AUTO has been configured with support for MPI" echo "***************************************************" fi if test x$openmp = "xyes" && test x$MPI = "xyes"; then echo "***************************************************" echo "AUTO has been configured with support for" echo "OpenMP and MPI" echo "***************************************************" fi auto-07p-0.9.1+dfsg/07p/demos/000077500000000000000000000000001206161447600155405ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/ab/000077500000000000000000000000001206161447600161225ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/ab/ab.auto000066400000000000000000000010341206161447600173740ustar00rootroot00000000000000 #============= # AUTO Demo ab #============= print "\n***Generate starting data***" start=run(e='ab',c='ab.1') print "\n***Compute stationary solution families***" ab = [] for solution in start(): ab = ab + run(solution,c='ab.2') print "\n***Relabel and save the output files***" ab=rl(ab) sv(ab,'ab') print "\n***Compute periodic solution families***" for solution in ab("HB"): ab = ab + run(solution,c='ab.3') print "\n***Relabel and save the output files***" ab=rl(ab) sv(ab,'ab') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/ab/ab.f90000066400000000000000000000045351206161447600170330ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! ab : The A --> B reaction !---------------------------------------------------------------------- !---------------------------------------------------------------------- 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 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) IMPLICIT NONE INTEGER NDIM, IJAC, ICP(*) DOUBLE PRECISION U(NDIM), PAR(*), F(NDIM), DFDU(*), DFDP(*) DOUBLE PRECISION U1,U2,E U1=U(1) U2=U(2) E=EXP(U2) F(1)=-U1 + PAR(1)*(1-U1)*E F(2)=-U2 + PAR(1)*PAR(2)*(1-U1)*E - PAR(3)*U2 END SUBROUTINE FUNC !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- ! Input arguments : ! NDIM : Dimension of the ODE system ! Values to be returned : ! U : A starting solution vector ! PAR : The corresponding equation-parameter values ! T : Not used here IMPLICIT NONE INTEGER NDIM DOUBLE PRECISION U(NDIM), PAR(*), T ! Initialize the equation parameters PAR(1)=0. PAR(2)=8. PAR(3)=3. ! Initialize the solution U(1)=0. U(2)=0. END SUBROUTINE STPNT !---------------------------------------------------------------------- !---------------------------------------------------------------------- ! The following subroutines are not used here, ! but they must be supplied as dummy routines SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS !---------------------------------------------------------------------- !---------------------------------------------------------------------- auto-07p-0.9.1+dfsg/07p/demos/ab/autorc000077500000000000000000000037201206161447600173470ustar00rootroot00000000000000[AUTO_plotter] default_option="d1" d1 = {"grid": 1, "use_labels": 1, "use_symbols": 1, "stability": 1} # similarly you can redefine d0, d2, d3, d4. grid = 1 stability = 0 use_labels = 1 use_symbols = 0 top_title = 'The A $\to$ B reaction' top_title_fontsize = 12 xlabel = None # None uses *_coordnames xlabel_fontsize = 12 ylabel = None # None uses *_coordnames ylabel_fontsize = 12 labelnames = {"U(1)": "$u_1$", "U(2)": "$u_2$", "PAR(1)": "$p_1$", "PAR(2)": "$p_2$", "PAR(3)": "$p_3$", "L2-NORM": "L2-norm"} solution_indepvarname = "time" #solution_coordnames = ["$u_1$","$u_2$"] #bifurcation_coordnames = ["$p_1$", "L2-norm"] line_width = 2.0 dashes = (6.0,6.0) background = "white" foreground = "black" color_list = "black red green green blue blue yellow yellow gray gray gray brown brown orange orange orange" coloring_method = "branch" symbol_color = "red" symbol_font = "-misc-fixed-*-*-*-*-*-*-*-*-*-*-*-*" decorations = 1 smart_label = 1 minx = 0 maxx = 0 miny = 0 maxy = 0 width = 800 height = 800 left_margin = 80 right_margin = 40 top_margin = 40 bottom_margin = 40 xticks = 5 yticks = 5 tick_label_template = "%.2e" tick_length = 0.2 odd_tick_length = 0.4 even_tick_length = 0.2 ps_colormode = "color" mark_t = 0.5 type = "bifurcation" # or "solution" bifurcation_x = [0] bifurcation_y = [1] solution_x = [0] solution_y = [1] # Sets of columns that the user is likely to want to use bifurcation_column_defaults = [[0,1],[0,2],[0,3]] solution_column_defaults = [[0],[1]] # The label(s) of the solution we wish to draw label = [1,2,3] label_defaults = [[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17], [18,19,20,21,22,23,24]] # The index/indices of the solution we wish to draw index = [0] bifurcation_diagram_filename = 'fort.7' solution_filename = 'fort.8' bifurcation_symbol = "square" limit_point_symbol = None hopf_symbol = "fillsquare" period_doubling_symbol = "doubletriangle" torus_symbol = "filldiamond" user_point_symbol = "U" error_symbol = None auto-07p-0.9.1+dfsg/07p/demos/ab/c.ab000066400000000000000000000006121206161447600166470ustar00rootroot00000000000000NDIM= 2, IPS = 1, IRS = 0, ILP = 1 ICP = [2] NTST= 50, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.1, DSMIN= 0.001, DSMAX= 0.2, IADS= 1 NPAR= 3, THL = {11: 0.0}, THU = {} UZR = {2: [14.0, 15.0, 16.0, 17.0]} UZSTOP={2: 18.0} auto-07p-0.9.1+dfsg/07p/demos/ab/c.ab.1000066400000000000000000000006121206161447600170060ustar00rootroot00000000000000NDIM= 2, IPS = 1, IRS = 0, ILP = 1 ICP = [2] NTST= 50, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.1, DSMIN= 0.001, DSMAX= 0.2, IADS= 1 NPAR= 3, THL = {11: 0.0}, THU = {} UZR = {2: [14.0, 15.0, 16.0, 17.0]} UZSTOP={2: 18.0} auto-07p-0.9.1+dfsg/07p/demos/ab/c.ab.2000066400000000000000000000005471206161447600170160ustar00rootroot00000000000000NDIM= 2, IPS = 1, IRS = 0, ILP = 1 ICP = [1] NTST= 50, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 400, NPR= 400, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.1, DSMIN= 0.001, DSMAX= 0.05, IADS= 1 NPAR= 3, THL = {11: 0.0}, THU = {} UZSTOP = {1: 0.25} auto-07p-0.9.1+dfsg/07p/demos/ab/c.ab.3000066400000000000000000000005671206161447600170210ustar00rootroot00000000000000NDIM= 2, IPS = 2, IRS = 4, ILP = 0 ICP = [1, 11] NTST= 50, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 500, NPR= 500, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.01, DSMIN= 0.001, DSMAX= 0.5, IADS= 1 NPAR= 3, THL = {11: 0.0}, THU = {} UZSTOP = {1: 0.25, 11: 1000.0} auto-07p-0.9.1+dfsg/07p/demos/ab/clean.auto000066400000000000000000000001411206161447600200720ustar00rootroot00000000000000 #============= # AUTO Demo ab #============= print "\n***Clean the directory***" dl('ab') cl() auto-07p-0.9.1+dfsg/07p/demos/ab/plaut04.rc000066400000000000000000000070001206161447600177360ustar00rootroot00000000000000#version 0.0 # Line colors are represented by RGB values from 0 to 1.0. # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and highlighting the solutions # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Initialize the default options: Highlight Orbit = No Orbit Animation = No Normalize Data = Yes Draw Background = No Draw Labels = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahead Coordinate Type = 3 # Draw Scale: Draw Scale = Yes # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 1 # Initialize the default graph style # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 1 #Set the window width and height: Window Width = 1000 Window Height = 600 # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 1 Y Axis Solution = 2 Z Axis Solution = 3 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 1 Z Axis Bifurcation = 2 #Labeled solutions: #-3 = Show all labeled solutions #-2 = Show HALF labeled solutions #-1 = Show SPEC labeled solutions #0 = Show NONE of the solutions #Otherwise, show the specified solution(s) Labels = -3 #Set coloring method: # -6 --- STABILITY # -5 --- POINT # -4 --- BRANCH # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. Coloring Method = -6 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 1.0 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Background color: Background Color = 0., 0., 0. # Background transparency: Background Transparency = 0.9 # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # UnStable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 # Color of the animation object: Object Color = 1.0, 1.0, 1.0 # Set the radius of the animation object: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Object Radius = 1.0 # Set the maximum and minimum animation speed: Object Max Animation Speed = 100 Object Min Animation Speed = 0 # Set the maximum and minimum highlighting animation speed: Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 # Set the active AUTO parameter indices: parameter ID = 10 # Choose 3D or 2D graph: 3D = No # Set the number of periods animated. # The value should be the power of 2. Number of Period Animated = 1 auto-07p-0.9.1+dfsg/07p/demos/abc/000077500000000000000000000000001206161447600162655ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/abc/abc.auto000066400000000000000000000005401206161447600177030ustar00rootroot00000000000000 #============== # AUTO Demo abc #============== print "\n***Compute a stationary solution family***" abc=run(e='abc',c='abc.1') print "\n***Compute periodic solution families***" for solution in abc('HB'): abc=abc+run(solution,c='abc.2') print "\n***Relabel the output***" abc=rl(abc) save(abc,'abc') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/abc/abc.f90000066400000000000000000000033311206161447600173320ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! abc : The A --> B --> C reaction !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION X1,X2,X3,D,ALPHA,BETA,B,S,E,X1C X1=U(1) X2=U(2) X3=U(3) D=PAR(1) ALPHA=PAR(2) BETA=PAR(3) B=PAR(4) S=PAR(5) E=DEXP(X3) X1C=1-X1 F(1)=-X1 + D*X1C*E F(2)=-X2 + D*E*(X1C - S*X2) F(3)=-X3 - BETA*X3 + D*B*E*(X1C + ALPHA*S*X2) END SUBROUTINE FUNC !---------------------------------------------------------------------- SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T PAR(1)=0.0 PAR(2)=1.0 PAR(3)=1.55 PAR(4)=8. PAR(5)=0.04 U(1)=0. U(2)=0. U(3)=0. END SUBROUTINE STPNT !---------------------------------------------------------------------- SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/abc/c.abc000066400000000000000000000005451206161447600171620ustar00rootroot00000000000000NDIM= 3, IPS = 1, IRS = 0, ILP = 1 ICP = [1] NTST= 15, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 130, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.02, DSMIN= 0.001, DSMAX= 0.1, IADS= 1 NPAR = 5, THL = {11: 0.0}, THU = {} UZSTOP = {1: 0.4} auto-07p-0.9.1+dfsg/07p/demos/abc/c.abc.1000066400000000000000000000005451206161447600173210ustar00rootroot00000000000000NDIM= 3, IPS = 1, IRS = 0, ILP = 1 ICP = [1] NTST= 15, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 130, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.02, DSMIN= 0.001, DSMAX= 0.1, IADS= 1 NPAR = 5, THL = {11: 0.0}, THU = {} UZSTOP = {1: 0.4} auto-07p-0.9.1+dfsg/07p/demos/abc/c.abc.2000066400000000000000000000005521206161447600173200ustar00rootroot00000000000000NDIM= 3, IPS = 2, IRS = 2, ILP = 1 ICP = [1, 11] NTST= 25, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.02, DSMIN= 0.001, DSMAX= 0.1, IADS= 1 NPAR = 5, THL = {11: 0.0}, THU = {} UZSTOP = {1: 0.25} auto-07p-0.9.1+dfsg/07p/demos/abc/c.abc.3000066400000000000000000000005521206161447600173210ustar00rootroot00000000000000NDIM= 3, IPS = 2, IRS = 3, ILP = 1 ICP = [1, 11] NTST= 25, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.02, DSMIN= 0.001, DSMAX= 0.1, IADS= 1 NPAR = 5, THL = {11: 0.0}, THU = {} UZSTOP = {1: 0.25} auto-07p-0.9.1+dfsg/07p/demos/abc/c.abc.4000066400000000000000000000005521206161447600173220ustar00rootroot00000000000000NDIM= 3, IPS = 2, IRS = 4, ILP = 1 ICP = [1, 11] NTST= 25, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.02, DSMIN= 0.001, DSMAX= 0.1, IADS= 1 NPAR = 5, THL = {11: 0.0}, THU = {} UZSTOP = {1: 0.25} auto-07p-0.9.1+dfsg/07p/demos/abc/c.abc.5000066400000000000000000000005521206161447600173230ustar00rootroot00000000000000NDIM= 3, IPS = 2, IRS = 5, ILP = 1 ICP = [1, 11] NTST= 25, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.02, DSMIN= 0.001, DSMAX= 0.1, IADS= 1 NPAR = 5, THL = {11: 0.0}, THU = {} UZSTOP = {1: 0.25} auto-07p-0.9.1+dfsg/07p/demos/abc/clean.auto000066400000000000000000000001601206161447600202360ustar00rootroot00000000000000 #=============== # AUTO Demo abc #=============== pgm="abc" print "\n***Clean the directory***" dl(pgm) cl() auto-07p-0.9.1+dfsg/07p/demos/abc/plaut04.rc000066400000000000000000000070001206161447600201010ustar00rootroot00000000000000#version 0.0 # Line colors are represented by RGB values from 0 to 1.0. # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and highlighting the solutions # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Initialize the default options: Highlight Orbit = No Orbit Animation = No Normalize Data = Yes Draw Background = No Draw Labels = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahead Coordinate Type = 3 # Draw Scale: Draw Scale = Yes # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 1 # Initialize the default graph style # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 1 #Set the window width and height: Window Width = 1000 Window Height = 600 # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 0 Y Axis Solution = 1 Z Axis Solution = 2 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 1 Z Axis Bifurcation = 2 #Labeled solutions: #-3 = Show all labeled solutions #-2 = Show HALF labeled solutions #-1 = Show SPEC labeled solutions #0 = Show NONE of the solutions #Otherwise, show the specified solution(s) Labels = -3 #Set coloring method: # -6 --- STABILITY # -5 --- POINT # -4 --- BRANCH # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. Coloring Method = -6 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 1.0 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Background color: Background Color = 0., 0., 0. # Background transparency: Background Transparency = 0.9 # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # UnStable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 # Color of the animation object: Object Color = 1.0, 1.0, 1.0 # Set the radius of the animation object: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Object Radius = 1.0 # Set the maximum and minimum animation speed: Object Max Animation Speed = 100 Object Min Animation Speed = 0 # Set the maximum and minimum highlighting animation speed: Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 # Set the active AUTO parameter indices: parameter ID = 10 # Choose 3D or 2D graph: 3D = No # Set the number of periods animated. # The value should be the power of 2. Number of Period Animated = 1 auto-07p-0.9.1+dfsg/07p/demos/abcb/000077500000000000000000000000001206161447600164275ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/abcb/abcb.auto000066400000000000000000000023431206161447600202120ustar00rootroot00000000000000 #================================ # AUTO demo abcb # BPCONT for generic periodic BVP #================================ pgm="abcb" ld(pgm) print "\n***"+pgm+": run 1: equilibrium continuation***" r1=run(sv=pgm+'.1') print "\n***"+pgm+": run 2: cycle continuation***" r2=run(r1('HB1'),IPS=2,ICP=[1,11],IPLT=1,sv=pgm+'.2') print "\n***"+pgm+": run 3: switch to LP continuation***" sw3=run(r2('LP1'),ICP=[1,2,11],ISW=2,IPLT=0,NPR=10,sv=pgm+'.3.sw') print "\n***"+pgm+": run 3: LP continuation (fw)***" sw3=load(sw3,ICP=[2,1,11],NMX=50,RL1=10.0) run(sw3,sv=pgm+'.3.fw') print "\n***"+pgm+": run 3: LP continuation (bw)***" sb3=run(sw3,DS='-',sv=pgm+'.3.bw') print "\n***"+pgm+": run 4: cycle continuation (bw)***" sb4=run(sb3('LP1'),ICP=[1,11],ISW=1,NMX=10,NPR=2,sv=pgm+'.4.bw') print "\n***"+pgm+": run 4: cycle continuation (fw)***" sf4=run(sb4('EP1'),ITMX=10,DS='-',sv=pgm+'.4.fw') print "\n***"+pgm+": run 5: switch to BP continuation***" sw5=run(sf4('BP1'),ICP=[1,2,3,11],ISW=3,NMX=50,NPR=10,ISP=1, DS=0.001,DSMAX=0.01,sv=pgm+'.5.sw') print "\n***"+pgm+": run 5: BP continuation (fw)***" run(sw5,sv=pgm+'.5.fw') print "\n***"+pgm+": run 5: BP continuation (bw)***" run(sw5,DS='-',sv=pgm+'.5.bw') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/abcb/abcb.f90000066400000000000000000000040661206161447600176440ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! Example 3: The A->B->C chemical reaction !---------------------------------------------------------------------- !---------------------------------------------------------------------- ! !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) !---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, IJAC, ICP(*) DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM), DFDU(NDIM,*), DFDP(NDIM,*) DOUBLE PRECISION x1,x2,x3,d,alpha,beta,b,s,e,x1c x1 = U(1) x2 = U(2) x3 = U(3) d = PAR(1) alpha = PAR(2) beta = PAR(3) b = PAR(4) s = PAR(5) e = dexp(X3) x1c = 1 - X1 F(1) = -x1 + d*x1c*e F(2) = -x2 + d*e*(x1c - s*x2) F(3) = -x3 - beta*x3 + d*b*e*(x1c + alpha*s*x2) IF(IJAC.EQ.0)RETURN DFDU(1,1) = -1.D0 - d*e DFDU(1,2) = 0.D0 DFDU(1,3) = d*x1c*e DFDU(2,1) = -d*e DFDU(2,2) = -1.D0 - d*e*s DFDU(2,3) = d*e*(x1c - s*x2) DFDU(3,1) = -d*b*e DFDU(3,2) = d*b*e*alpha*s DFDU(3,3) = -1.D0 - beta + d*b*e*(x1c + alpha*s*x2) IF(IJAC.EQ.1)RETURN DFDP(1,1) = x1c*e DFDP(1,2) = 0.D0 DFDP(1,3) = 0.D0 DFDP(1,4) = 0.D0 DFDP(1,5) = 0.D0 DFDP(2,1) = e*(x1c - s*x2) DFDP(2,2) = 0.D0 DFDP(2,3) = 0.D0 DFDP(2,4) = 0.D0 DFDP(2,5) = -d*e*x2 DFDP(3,1) = b*e*(x1c + alpha*s*x2) DFDP(3,2) = d*b*e*s*x2 DFDP(3,3) = -x3 DFDP(3,4) = d*e*(x1c + alpha*s*x2) DFDP(3,5) = d*b*e*alpha*x2 END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) !---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(IN) :: T DOUBLE PRECISION, INTENT(OUT) :: U(NDIM), PAR(*) PAR(1:5)=(/0.0,1.0,1.55,8.,0.04/) U(1:3)=0. END SUBROUTINE STPNT SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/abcb/c.abcb000066400000000000000000000005451206161447600174660ustar00rootroot00000000000000NDIM= 3, IPS = 1, IRS = 0, ILP = 1 ICP = [1] NTST= 50, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 20, MXBF= 0, IID = 2, ITMX= 8, ITNW= 7, NWTN= 5, JAC= 1 EPSL= 1e-08, EPSU = 1e-08, EPSS = 1e-06 DS = 0.01, DSMIN= 1e-10, DSMAX= 0.1, IADS= 1 NPAR = 5, THL = {11: 0.0}, THU = {} UZSTOP = {1: 1.0} auto-07p-0.9.1+dfsg/07p/demos/abcb/clean.auto000066400000000000000000000004041206161447600204010ustar00rootroot00000000000000 #=============== # AUTO Demo abcb #=============== pgm="abcb" print "\n***Clean the directory***" dl(pgm+'.1') dl(pgm+'.2') dl(pgm+'.3.sw') dl(pgm+'.3.fw') dl(pgm+'.3.bw') dl(pgm+'.4.fw') dl(pgm+'.4.bw') dl(pgm+'.5.sw') dl(pgm+'.5.fw') dl(pgm+'.5.bw') cl() auto-07p-0.9.1+dfsg/07p/demos/apbp/000077500000000000000000000000001206161447600164625ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/apbp/apbp.auto000066400000000000000000000012301206161447600202720ustar00rootroot00000000000000 #=============================== # AUTO demo apbp # BPCONT for algebraic equations #=============================== pgm="apbp" print "\n***"+pgm+": run 1: solution continuation***" r1=run(pgm,sv=pgm+'.1') bp=r1('BP1') print "\n***"+pgm+": run 2: BP cont non-generic (fw)***" run(bp,ICP=[1,2],ISW=2,sv=pgm+'.2.fw') print "\n***"+pgm+": run 2: BP cont non-generic (bw)***" run(bp,ICP=[1,2],ISW=2,sv=pgm+'.2.bw',DS='-') print "\n***"+pgm+": run 3: BP cont generic (fw)***" run(bp,ICP=[1,2,3],ISW=3,sv=pgm+'.3.fw') print "\n***"+pgm+": run 3: BP cont generic (bw)***" run(bp,ICP=[1,2,3],ISW=3,sv=pgm+'.3.bw',DS='-') print "\n***Clean the directory***" clean() auto-07p-0.9.1+dfsg/07p/demos/apbp/apbp.f90000066400000000000000000000031011206161447600177170ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! Example 1: The AP BP normal form !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, IJAC, ICP(*) DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM), DFDU(NDIM,*), DFDP(NDIM,*) F(1) = (U(1)-PAR(1))*(U(1)-PAR(2))+PAR(3) IF(IJAC==0)RETURN DFDU(1,1) = U(1)-PAR(1)+U(1)-PAR(2) IF(IJAC==1)RETURN DFDP(1,1) = -(U(1)-PAR(2)) DFDP(1,2) = -(U(1)-PAR(1)) DFDP(1,3) = 1.0d0 END SUBROUTINE FUNC !----------------------------------------------------------------------- !----------------------------------------------------------------------- SUBROUTINE STPNT(NDIM,U,PAR) !--------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(OUT) :: U(NDIM), PAR(*) PAR(1:3) = (/ 1.0d0, 2.0d0, 0.0d0 /) U(1) = 1.0 END SUBROUTINE STPNT !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS !---------------------------------------------------------------------- !---------------------------------------------------------------------- auto-07p-0.9.1+dfsg/07p/demos/apbp/c.apbp000066400000000000000000000005261206161447600175530ustar00rootroot00000000000000NDIM= 1, IPS = 1, IRS = 0, ILP = 1 ICP = [1] NTST= 0, NCOL= 0, IAD = 0, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 50, NPR= 10, MXBF= 2, IID = 2, ITMX= 8, ITNW= 7, NWTN= 5, JAC= 1 EPSL= 1e-08, EPSU = 1e-08, EPSS = 1e-06 DS = 0.01, DSMIN= 1e-10, DSMAX= 0.1, IADS= 1 NPAR = 3, THL = {}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/apbp/clean.auto000066400000000000000000000002671206161447600204430ustar00rootroot00000000000000 #=============== # AUTO Demo apbp #=============== pgm="apbp" print "\n***Clean the directory***" dl(pgm+'.1') dl(pgm+'.2.bw') dl(pgm+'.2.fw') dl(pgm+'.3.bw') dl(pgm+'.3.fw') cl() auto-07p-0.9.1+dfsg/07p/demos/brc/000077500000000000000000000000001206161447600163065ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/brc/brc.auto000066400000000000000000000006311206161447600177460ustar00rootroot00000000000000 #============== # AUTO Demo brc #============== pgm = "brc" print "\nDemo %s is started"%pgm print "\n%s : first run : stationary solutions"%pgm r1 = run(e=pgm,c=pgm) print "\n%s : second run : periodic solutions"%pgm r2 = run(r1("HB1"),IPS=2,ICP=[5,11]) print "\n%s : third run : secondary periodic solutions"%pgm r3 = run(r2("BP1"),ISW=-1) save(r1+r2+r3,pgm) print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/brc/brc.f90000066400000000000000000000137041206161447600174010ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! brc : A parabolic PDE (the Brusselator) !---------------------------------------------------------------------- !---------------------------------------------------------------------- ! (Discretized in space by polynomial collocation at Chebyshev points) !---------------------------------------------------------------------- !---------------------------------------------------------------------- ! NOTE: The value of the constant NE is defined in the module brc below. ! ! NE : the dimension of the PDE system ! ! NN : the number of Chebyshev collocation points in space is ! determined by the AUTO-constant NDIM: ! NN = NDIM/NE !---------------------------------------------------------------------- !---------------------------------------------------------------------- MODULE brc SAVE INTEGER, PARAMETER :: NE=2 DOUBLE PRECISION, ALLOCATABLE :: D2(:,:) END MODULE brc SUBROUTINE FF(NE,U,PAR,F) ! ---------- -- ! Define the nonlinear term IMPLICIT NONE INTEGER, INTENT(IN) :: NE DOUBLE PRECISION, INTENT(IN) :: U(NE),PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NE) DOUBLE PRECISION X,Y,A,B X=U(1) Y=U(2) A=PAR(1) B=PAR(2) F(1)= X**2*Y - (B+1)*X + A F(2)=-X**2*Y + B*X END SUBROUTINE FF SUBROUTINE SETDC(NE,DC,PAR) ! ---------- ----- ! Set the diffusion constants (constant, or in terms of PAR) IMPLICIT NONE INTEGER, INTENT(IN) :: NE DOUBLE PRECISION, INTENT(OUT) :: DC(NE) DOUBLE PRECISION, INTENT(IN) :: PAR(*) DC(1)=PAR(3)/PAR(5)**2 DC(2)=PAR(4)/PAR(5)**2 END SUBROUTINE SETDC SUBROUTINE SETBC(NE,PAR,U0,U1) ! ---------- ----- ! Set the boundary values (to be kept fixed in time) IMPLICIT NONE INTEGER, INTENT(IN) :: NE DOUBLE PRECISION, INTENT(IN) :: PAR(*) DOUBLE PRECISION, INTENT(OUT) :: U0(NE),U1(NE) DOUBLE PRECISION A,B A=PAR(1) B=PAR(2) U0(1)=A U0(2)=B/A U1(1)=A U1(2)=B/A END SUBROUTINE SETBC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- ! Define the starting stationary solution on the spatial mesh USE brc IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM/NE,NE),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T INTEGER I,NN DOUBLE PRECISION A,B,Dx,Dy,RL ! Set the parameter values A=2.d0 B=5.45d0 Dx=0.008d0 Dy=0.004d0 RL=0.4 PAR(1)=A PAR(2)=B PAR(3)=Dx PAR(4)=Dy PAR(5)=RL ! Set the starting solution at the Chebyshev collocation points NN=NDIM/NE DO I=1,NN U(I,1)=A U(I,2)=B/A ENDDO END SUBROUTINE STPNT !---------------------------------------------------------------------- !---------------------------------------------------------------------- ! Problem-independent subroutines !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- USE brc IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM/NE,NE), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM/NE,NE) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION W(NE),FW(NE),DC(NE),U0(NE),U1(NE) INTEGER I,J,K,NN,NP ! Problem-independent initialization : NN=NDIM/NE NP=NN+1 CALL SETDC(NE,DC,PAR) CALL SETBC(NE,PAR,U0,U1) DO I=1,NN DO K=1,NE W(K)=U(I,K) ENDDO CALL FF(NE,W,PAR,FW) DO J=1,NE F(I,J)=FW(J) + DC(J)*(U0(J)*D2(I,0)+U1(J)*D2(I,NP)) DO K=1,NN F(I,J)=F(I,J)+DC(J)*D2(I,K)*U(K,J) ENDDO ENDDO ENDDO END SUBROUTINE FUNC SUBROUTINE GENCF(PAR,NN) ! ---------- ----- USE brc IMPLICIT NONE INTEGER, INTENT(IN) :: NN DOUBLE PRECISION, INTENT(IN) :: PAR(*) DOUBLE PRECISION, ALLOCATABLE :: X(:),XX(:,:),CC(:,:),RI(:,:) INTEGER, ALLOCATABLE :: IR(:),IC(:) DOUBLE PRECISION pi,C,DET INTEGER I,J,K,M,NP NP=NN+1 M=NN+2 ALLOCATE(D2(NN,0:NP)) ALLOCATE(X(M),XX(M,M),CC(M,0:NP),RI(M,M),IR(M),IC(M)) pi=4*ATAN(1.d0) X(1)=0.d0 DO K=2,NP C=COS( (2*K-3)*pi/(2*NN) ) X(K)=(1+C)/2 ENDDO X(M)=1.d0 DO I=1,M DO J=1,M RI(I,J)=0.d0 XX(I,J)=X(I)**(J-1) ENDDO RI(I,I)=1.d0 ENDDO CALL GE(0,M,M,XX,M,M,CC,M,RI,IR,IC,DET) DO I=1,NN DO J=0,NP D2(I,J)=0.d0 DO K=2,M-1 D2(I,J)=D2(I,J)+CC(K+1,J)*K*(K-1)*X(I+1)**(K-2) ENDDO ENDDO ENDDO DEALLOCATE(X,XX,CC,RI,IR,IC) END SUBROUTINE GENCF SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE PVLS(NDIM,U,PAR) ! ---------- ---- USE brc IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(IN) :: U(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: PAR(*) LOGICAL, SAVE :: ifrst = .TRUE. ! Problem-independent initialization : IF(ifrst)THEN CALL GENCF(PAR,NDIM/NE) ifrst=.FALSE. ENDIF END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/brc/c.brc000066400000000000000000000005361206161447600172240ustar00rootroot00000000000000NDIM= 12, IPS = 1, IRS = 0, ILP = 0 ICP = [5] NTST= 10, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.01, DSMIN= 0.001, DSMAX= 0.1, IADS= 1 NPAR = 5, THL = {}, THU = {} UZSTOP = {5: 2.0} auto-07p-0.9.1+dfsg/07p/demos/brc/c.brc.1000066400000000000000000000005361206161447600173630ustar00rootroot00000000000000NDIM= 12, IPS = 1, IRS = 0, ILP = 0 ICP = [5] NTST= 10, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.01, DSMIN= 0.001, DSMAX= 0.1, IADS= 1 NPAR = 5, THL = {}, THU = {} UZSTOP = {5: 2.0} auto-07p-0.9.1+dfsg/07p/demos/brc/c.brc.2000066400000000000000000000005421206161447600173610ustar00rootroot00000000000000NDIM= 12, IPS = 2, IRS = 2, ILP = 0 ICP = [5, 11] NTST= 10, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.01, DSMIN= 0.001, DSMAX= 0.1, IADS= 1 NPAR = 5, THL = {}, THU = {} UZSTOP = {5: 2.0} auto-07p-0.9.1+dfsg/07p/demos/brc/c.brc.3000066400000000000000000000005421206161447600173620ustar00rootroot00000000000000NDIM= 12, IPS = 2, IRS = 7, ILP = 0 ICP = [5, 11] NTST= 10, NCOL= 4, IAD = 3, ISP = 2, ISW =-1, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.01, DSMIN= 0.001, DSMAX= 0.1, IADS= 1 NPAR = 5, THL = {}, THU = {} UZSTOP = {5: 2.0} auto-07p-0.9.1+dfsg/07p/demos/brc/clean.auto000066400000000000000000000002441206161447600202620ustar00rootroot00000000000000 #============== # AUTO Demo brc #============== print "\n***Clean the directory***" import os,glob dl('brc') cl() for f in glob.glob('brc.mod'): os.remove(f) auto-07p-0.9.1+dfsg/07p/demos/brf/000077500000000000000000000000001206161447600163115ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/brf/brf.auto000066400000000000000000000006771206161447600177660ustar00rootroot00000000000000 #============== # AUTO Demo brf #============== pgm = "brf" print "\nDemo %s is started"%pgm print "\n%s : first run : stationary solutions"%pgm r1 = run(e=pgm,c=pgm) print "\n%s : second run : periodic solutions"%pgm r2 = run(r1("HB1"),IPS=2,ICP=[5,11],NMX=120,EPSL=1e-08) print "\n%s : third run : secondary periodic solutions"%pgm r3 = run(r2("BP1"),ISW=-1,NMX=100,EPSL=1e-07) save(r1+r2+r3,pgm) print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/brf/brf.f90000066400000000000000000000141051206161447600174030ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! brf : A parabolic PDE (the Brusselator) !---------------------------------------------------------------------- !---------------------------------------------------------------------- ! (Discretized in space by fourth order finite differences) !---------------------------------------------------------------------- !---------------------------------------------------------------------- ! NOTE: The value of the constant NE is defined below in a module. ! ! NE : the dimension of the PDE system ! ! NX : the number of space intervals for the discretization is ! derived from the AUTO-constant NDIM: ! NX = NDIM/NE + 1 !---------------------------------------------------------------------- !---------------------------------------------------------------------- MODULE brf SAVE INTEGER, PARAMETER :: NE=2 DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:) :: DI,DD END MODULE brf SUBROUTINE FF(NE,U,PAR,F) ! ---------- -- ! Define the nonlinear term IMPLICIT NONE INTEGER, INTENT(IN) :: NE DOUBLE PRECISION, INTENT(IN) :: U(NE),PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NE) DOUBLE PRECISION X,Y,A,B X=U(1) Y=U(2) A=PAR(1) B=PAR(2) F(1)= X**2*Y - (B+1)*X + A F(2)=-X**2*Y + B*X END SUBROUTINE FF SUBROUTINE SETDC(NE,DC,PAR) ! ---------- ----- ! Set the diffusion constants (constant, or in terms of PAR) IMPLICIT NONE INTEGER, INTENT(IN) :: NE DOUBLE PRECISION, INTENT(OUT) :: DC(NE) DOUBLE PRECISION, INTENT(IN) :: PAR(*) DC(1)=PAR(3)/PAR(5)**2 DC(2)=PAR(4)/PAR(5)**2 END SUBROUTINE SETDC SUBROUTINE SETBC(NE,PAR,U0,U1) ! ---------- ----- ! Set the boundary values (to be kept fixed in time) IMPLICIT NONE INTEGER, INTENT(IN) :: NE DOUBLE PRECISION, INTENT(IN) :: PAR(*) DOUBLE PRECISION, INTENT(OUT) :: U0(NE),U1(NE) DOUBLE PRECISION A,B A=PAR(1) B=PAR(2) U0(1)=A U0(2)=B/A U1(1)=A U1(2)=B/A END SUBROUTINE SETBC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- ! Define the starting stationary solution on the spatial mesh USE brf IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM/NE,NE),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T DOUBLE PRECISION A,B,Dx,Dy,RL INTEGER I,NX ! Set the parameter values A=2.d0 B=5.45d0 Dx=0.008d0 Dy=0.004d0 RL=0.4 PAR(1)=A PAR(2)=B PAR(3)=Dx PAR(4)=Dy PAR(5)=RL ! Set the starting solution at space-points i/NX, i=1,2,...,NX-1 NX=NDIM/NE+1 DO I=1,NX-1 U(I,1)=A U(I,2)=B/A ENDDO END SUBROUTINE STPNT !---------------------------------------------------------------------- !---------------------------------------------------------------------- ! Problem-independent subroutines !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- USE brf IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM/NE,NE), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM/NE,NE) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION W(NE),FW(NE),DC(NE) DOUBLE PRECISION U0(NE),U1(NE),F0(NE),F1(NE),V(NDIM/NE,NE) INTEGER I,J,K,NN,NX ! Problem-independent initialization : CALL SETDC(NE,DC,PAR) CALL SETBC(NE,PAR,U0,U1) CALL FF(NE,U0,PAR,F0) CALL FF(NE,U1,PAR,F1) NN=NDIM/NE NX=NN+1 DO I=1,NN DO J=1,NE V(I,J)= DI(I, 1)*( DC(J)*NX**2*U0(J) + F0(J)/12 ) & + DI(I,NN)*( DC(J)*NX**2*U1(J) + F1(J)/12 ) ENDDO ENDDO DO I=1,NN DO K=1,NE W(K)=U(I,K) ENDDO CALL FF(NE,W,PAR,FW) DO J=1,NE F(I,J)=V(I,J) + FW(J) DO K=1,NN F(I,J)=F(I,J)+DC(J)*DD(I,K)*U(K,J) ENDDO ENDDO ENDDO END SUBROUTINE FUNC SUBROUTINE GENCF(PAR,NN) ! ---------- ----- USE brf IMPLICIT NONE INTEGER, INTENT(IN) :: NN DOUBLE PRECISION, INTENT(IN) :: PAR(*) INTEGER NX,I,J,K DOUBLE PRECISION S,DET INTEGER, ALLOCATABLE :: IR(:),IC(:) DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:) :: D0,D2,RI ALLOCATE(DI(NN,NN),DD(NN,NN)) ALLOCATE(IR(NN),IC(NN),D0(NN,NN),D2(NN,NN),RI(NN,NN)) NX=NN+1 D0(:,:)=0 D2(:,:)=0 RI(:,:)=0 DO I=1,NN D0(I,I)=10.d0/12.d0 D2(I,I)=-2*NX**2 RI(I,I)=1 ENDDO DO I=1,NN-1 D0(I+1,I)=1.d0/12.d0 D0(I,I+1)=1.d0/12.d0 D2(I+1,I)=NX**2 D2(I,I+1)=NX**2 ENDDO ! calculate DI = D0^{-1} and DD = D0^{-1} D2 CALL GE(0,NN,NN,D0,NN,NN,DI,NN,RI,IR,IC,DET) DD = MATMUL(DI,D2) DEALLOCATE(IR,IC,D0,D2,RI) END SUBROUTINE GENCF SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE PVLS(NDIM,U,PAR) ! ---------- ---- USE brf IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(IN) :: U(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: PAR(*) LOGICAL, SAVE :: ifrst = .TRUE. ! Problem-independent initialization : IF(ifrst)THEN CALL GENCF(PAR,NDIM/NE) ifrst=.FALSE. ENDIF END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/brf/c.brf000066400000000000000000000005461206161447600172330ustar00rootroot00000000000000NDIM= 10, IPS = 1, IRS = 0, ILP = 0 ICP = [5] NTST= 10, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.01, DSMIN= 0.002, DSMAX= 0.1, IADS= 1 NPAR = 5, THL = {11: 0.0}, THU = {} UZSTOP = {5: 2.05} auto-07p-0.9.1+dfsg/07p/demos/brf/c.brf.1000066400000000000000000000005461206161447600173720ustar00rootroot00000000000000NDIM= 10, IPS = 1, IRS = 0, ILP = 0 ICP = [5] NTST= 10, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.01, DSMIN= 0.002, DSMAX= 0.1, IADS= 1 NPAR = 5, THL = {11: 0.0}, THU = {} UZSTOP = {5: 2.05} auto-07p-0.9.1+dfsg/07p/demos/brf/c.brf.2000066400000000000000000000005521206161447600173700ustar00rootroot00000000000000NDIM= 10, IPS = 2, IRS = 2, ILP = 0 ICP = [5, 11] NTST= 10, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 120, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-08, EPSU = 1e-07, EPSS =0.0001 DS = 0.01, DSMIN= 0.002, DSMAX= 0.1, IADS= 1 NPAR = 5, THL = {11: 0.0}, THU = {} UZSTOP = {5: 2.05} auto-07p-0.9.1+dfsg/07p/demos/brf/c.brf.3000066400000000000000000000005521206161447600173710ustar00rootroot00000000000000NDIM= 10, IPS = 2, IRS = 7, ILP = 0 ICP = [5, 11] NTST= 10, NCOL= 4, IAD = 3, ISP = 2, ISW =-1, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.01, DSMIN= 0.002, DSMAX= 0.1, IADS= 1 NPAR = 5, THL = {11: 0.0}, THU = {} UZSTOP = {5: 2.05} auto-07p-0.9.1+dfsg/07p/demos/brf/clean.auto000066400000000000000000000002441206161447600202650ustar00rootroot00000000000000 #============== # AUTO Demo brf #============== print "\n***Clean the directory***" import os,glob dl('brf') cl() for f in glob.glob('brf.mod'): os.remove(f) auto-07p-0.9.1+dfsg/07p/demos/bru/000077500000000000000000000000001206161447600163305ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/bru/bru.auto000066400000000000000000000003661206161447600200170ustar00rootroot00000000000000 #============== # AUTO Demo bru #============== pgm = "bru" print "\nDemo %s is started"%pgm print "\n%s : first run : time integration towards stationary state"%pgm r1 = run(e=pgm,c=pgm) save(r1,pgm) print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/bru/bru.f90000066400000000000000000000047641206161447600174530ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! bru : Time integration of a scalar nonlinear parabolic PDE !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION X,Y,A,B X=U(1) Y=U(2) A=PAR(1) B=PAR(2) ! *Set the nonlinear term F(1)= X**2*Y - (B+1)*X + A F(2)=-X**2*Y + B*X END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,Z) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: Z DOUBLE PRECISION pi,A,B,Dx,Dy,RL pi=4*DATAN(1.d0) ! *Set the (constant) parameters A = 2. B = 5.45 Dx = 0.008 Dy = 0.004 RL = 0.75 PAR(1)=A PAR(2)=B PAR(3)=RL ! *Set the actual width of the space interval [0,PAR(11)] PAR(11) = 1. ! *Set the initial data in the (scaled) interval [0,1] U(1) = A - 0.5*DSIN(pi*Z) U(2) = B/A + 0.7*DSIN(pi*Z) ! *Also set the space-derivative of the initial data ! *Note the scaling by PAR(11) U(3) = - 0.5*pi*DCOS(pi*Z)/PAR(11) U(4) = 0.7*pi*DCOS(pi*Z)/PAR(11) ! *Set the diffusion constants PAR(15) = Dx/RL**2 PAR(16) = Dy/RL**2 END SUBROUTINE STPNT SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) ! ---------- ---- 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,*) ! *Define the boundary conditions (Dirichlet, in this example). FB(1)=U0(1)-PAR(1) FB(2)=U0(2)-PAR(2)/PAR(1) FB(3)=U1(1)-PAR(1) FB(4)=U1(2)-PAR(2)/PAR(1) END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/bru/c.bru000066400000000000000000000006301206161447600172630ustar00rootroot00000000000000NDIM= 2, IPS = 16, IRS = 0, ILP = 0 ICP = [14] NTST= 10, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 3, NBC= 0, NINT= 0 NMX=10000, NPR= 0, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS = 0.001 DS = 0.01, DSMIN= 0.001, DSMAX= 0.05, IADS= 1 NPAR= 16, THL = {}, THU = {} UZR = {14: [21.0, 21.5, 22.0, 22.5, 23.0, 23.5, 24.0]} UZSTOP={14: 25.0} auto-07p-0.9.1+dfsg/07p/demos/bru/c.bru.1000066400000000000000000000006301206161447600174220ustar00rootroot00000000000000NDIM= 2, IPS = 16, IRS = 0, ILP = 0 ICP = [14] NTST= 10, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 3, NBC= 0, NINT= 0 NMX=10000, NPR= 0, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS = 0.001 DS = 0.01, DSMIN= 0.001, DSMAX= 0.05, IADS= 1 NPAR= 16, THL = {}, THU = {} UZR = {14: [21.0, 21.5, 22.0, 22.5, 23.0, 23.5, 24.0]} UZSTOP={14: 25.0} auto-07p-0.9.1+dfsg/07p/demos/bru/clean.auto000066400000000000000000000001451206161447600203040ustar00rootroot00000000000000 #============== # AUTO Demo bru #============== print "\n***Clean the directory***" dl('bru') cl() auto-07p-0.9.1+dfsg/07p/demos/bvp/000077500000000000000000000000001206161447600163275ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/bvp/README000066400000000000000000000001501206161447600172030ustar00rootroot00000000000000Type "auto bvp.auto" to run the complete demo. Type "auto clean.auto" to clean (back to original state).auto-07p-0.9.1+dfsg/07p/demos/bvp/bvp.auto000066400000000000000000000011641206161447600200120ustar00rootroot00000000000000 #============= # AUTO Demo bvp #============= print "\n***Compute the zero solution branch***" bvp=run(e='bvp',c='bvp') save(bvp,'bvp') print "\n***Compute bifurcating branches***" for bp in bvp("BP"): solution = load(bp,ISW=-1,DSMAX=10,UZR={2:[-6.0,-3.0,3.0,6.0]}, UZSTOP={1:[0.0,5.5], 2:[-9.0,9.0]}) print "\n***Branch " , solution["LAB"] , "***" bvp = bvp + run(solution) bvp = bvp + run(solution,DS='-') print "\n***Relabel and save the output***" bvp=rl(bvp) save(bvp,'bvp') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/bvp/bvp.f90000066400000000000000000000034321206161447600174400ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! bvp : A nonlinear ODE eigenvalue problem !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) !--------- ---- 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,*), DFDP(NDIM,*) DOUBLE PRECISION pi pi = 4.d0*ATAN(1.d0) F(1) = U(2) F(2) = -( PAR(1)*pi )**2 * U(1) + U(1)**2 END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) !--------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(IN) :: T PAR(1:2) = 0.0d0 U = 0.0d0 END SUBROUTINE STPNT SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) !--------- ---- 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,*) FB = (/ U0(1), U1(1) /) END SUBROUTINE BCND SUBROUTINE ICND(NDIM,PAR,ICP,NINT,U,UOLD,UDOT,UPOLD,FI,IJAC,DINT) !--------- ---- 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,*) FI = (/ U(1)-PAR(2) /) END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/bvp/c.bvp000066400000000000000000000005501206161447600172620ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 0, ILP = 1 ICP = [1, 2] NTST= 20, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 2, NINT= 1 NMX= 200, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.2, DSMIN= 0.001, DSMAX= 0.2, IADS= 1 NPAR = 2, THL = {}, THU = {} UZSTOP = {1: [0.0, 5.5]} auto-07p-0.9.1+dfsg/07p/demos/bvp/c.bvp.1000066400000000000000000000005501206161447600174210ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 0, ILP = 1 ICP = [1, 2] NTST= 20, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 2, NINT= 1 NMX= 200, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.2, DSMIN= 0.001, DSMAX= 0.2, IADS= 1 NPAR = 2, THL = {}, THU = {} UZSTOP = {1: [0.0, 5.5]} auto-07p-0.9.1+dfsg/07p/demos/bvp/c.bvp.2000066400000000000000000000006311206161447600174220ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 2, ILP = 1 ICP = [1, 2] NTST= 20, NCOL= 4, IAD = 3, ISP = 2, ISW =-1, IPLT= 0, NBC= 2, NINT= 1 NMX= 200, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.2, DSMIN= 0.001, DSMAX= 10.0, IADS= 1 NPAR = 2, THL = {}, THU = {} UZR = {2: [-3.0, -6.0, 3.0, 6.0]} UZSTOP={1: [0.0, 5.5], 2: [-9.0, 9.0]} auto-07p-0.9.1+dfsg/07p/demos/bvp/clean.auto000066400000000000000000000001431206161447600203010ustar00rootroot00000000000000 #============= # AUTO Demo bvp #============= print "\n***Clean the directory***" dl('bvp') cl() auto-07p-0.9.1+dfsg/07p/demos/bvp/plaut04.rc000066400000000000000000000070031206161447600201460ustar00rootroot00000000000000#version 0.0 # Line colors are represented by RGB values from 0 to 1.0. # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and highlighting the solutions # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Initialize the default options: Highlight Orbit = No Orbit Animation = No Normalize Data = Yes Draw Background = No Draw Labels = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahead Coordinate Type = 3 # Draw Scale: Draw Scale = Yes # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 1 # Initialize the default graph style # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 1 #Set the window width and height: Window Width = 1000 Window Height = 600 # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 0 Y Axis Solution = 1 Z Axis Solution = 2 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 4 Z Axis Bifurcation = 1 #Labeled solutions: #-3 = Show all labeled solutions #-2 = Show HALF labeled solutions #-1 = Show SPEC labeled solutions #0 = Show NONE of the solutions #Otherwise, show the specified solution(s) Labels = -3 #Set coloring method: # -6 --- STABILITY # -5 --- POINT # -4 --- BRANCH # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. Coloring Method = -2 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 1.0 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 2.0 # Background color: Background Color = 0.0, 0.0, 0.0 # Background transparency: Background Transparency = 0.5 # Axes color: X Axis Color = 1.0, 1.0, 1.0 Y Axis Color = 1.0, 1.0, 1.0 Z Axis Color = 1.0, 1.0, 1.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # UnStable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 # Color of the animation object: Object Color = 1.0, 1.0, 1.0 # Set the radius of the animation object: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Object Radius = 2.0 # Set the maximum and minimum animation speed: Object Max Animation Speed = 100 Object Min Animation Speed = 0 # Set the maximum and minimum highlighting animation speed: Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 # Set the active AUTO parameter indices: parameter ID = 10 # Choose 3D or 2D graph: 3D = No # Set the number of periods animated. # The value should be the power of 2. Number of Period Animated = 1 auto-07p-0.9.1+dfsg/07p/demos/c2c/000077500000000000000000000000001206161447600162075ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/c2c/c2c.auto000066400000000000000000000035641206161447600175600ustar00rootroot00000000000000pgm='c2c' print pgm, ": first run : find the Hopf bifurcation" hb = run(e=pgm,NDIM=3,DSMIN=0.00001,ITNW=7,STOP=['HB1'],NPAR=28) print pgm, ": second run : periodic solutions" ps = run(hb,IPS=2,ICP=[1,11],NTST=30,UZR={1:0.25},STOP=['UZ2']) print pgm, ": third run : continue zero eigenfunction until eigenvalue" zero = run(ps,IPS=4,ICP=[11,12,10],NDIM=6,NBC=7,NINT=1,UZR={},STOP=['BP3']) print pgm, ": fourth run : switch to continuation of nontrivial eigenfunction" ef = run(zero,ISW=-1,ILP=0,DS='-',DSMAX=0.2,UZSTOP={10:1.0}) print pgm, ": fifth run : continue zero eigenfunction until eigenvalue" zero1 = run(ef,ISW=1,ICP=[11,4,25,6,26],DS='-',NDIM=12,NBC=14,NINT=2,UZSTOP={},STOP=['BP1']) print pgm, ": sixth run : switch to continuation of nontrivial eigenfunction" ef1 = run(zero1,ISW=-1,UZSTOP={25:1.0}) print pgm, ": seventh run : switch to second zero eigenfunction until eigenvalue" zero2 = run(ef1,ISW=1,ICP=[11,4,5,6,26],UZSTOP={},STOP=['BP3']) print pgm, ": eighth run : switch to continuation of second nontrivial eigenfunction" ef2 = run(zero2,ISW=-1,UZSTOP={26:1.0}) print pgm, ": ninth run : homotopy in T,h11,h21" ti = run(ef2,ISW=1,ISP=0,ICP=[7,11,4,5,6,21,23],NDIM=15,NBC=19,NINT=2,NTST=105, UZR={21:0},UZSTOP={},STOP=['UZ19'],DSMAX=10) print pgm, ": tenth run : homotopy in T and h21" h12 = run(ti,ICP=[7,23,11,4,5,6,8],NTST=150,UZR={23:0},STOP=['UZ1']) print pgm, ": eleventh run : homotopy in T and h12" h21 = run(h12,ICP=[7,22,11,4,5,6,8],UZR={22:0}) print pgm, ": twelfth run : homotopy in T and h22" h22 = run(h21,ICP=[7,24,11,4,5,6,8],UZR={24:0},STOP=['UZ2']) print pgm, ": thirteenth run : increase period (par 7)" inct = run(h22,ICP=[7,11,4,5,6],NTST=200,NINT=0,UZR={7:450},STOP=['UZ1']) print pgm, ": fourteenth run : fw continuation in d2 (par2) until LP: primary homoclinic" d2 = run(inct,ICP=[1,11,4,5,6,35,36],ILP=1,UZR={1:0.2785},STOP=['LP4']) save(d2,'d2') auto-07p-0.9.1+dfsg/07p/demos/c2c/c2c.f90000066400000000000000000000156551206161447600172120ustar00rootroot00000000000000!---------------------------------------------------------------------- ! Redoing the local bifurcation of the model analysed by ! Martin Boer, ch. 4 of thesis. ! Cycle-to-cycle connection 3D food chain ! ! Homoclinic, but set up also for heteroclinic ! ! U(1-3) = limit cycle ! U(4-6) = eigenfunction (ef) stable ! U(7-9) = limit cycle again ("second cycle") ! U(10-12) = ef unstable ! U(13-15) = connecting orbit ! ! George van Voorn, June 20th 2007 ! Bart Oldeman, December 2008 !---------------------------------------------------------------------- SUBROUTINE RHS(N,U,PAR,F,DFDU,IJAC) ! ---------- --- IMPLICIT NONE INTEGER N DOUBLE PRECISION U(N),PAR(*),F(N),DFDU(N,N) LOGICAL IJAC DOUBLE PRECISION f1,f2 DOUBLE PRECISION d1,d2,x,y,z,a1,a2,b1,b2 ! Declaring variables x=U(1) y=U(2) z=U(3) ! Parameter values d1=PAR(1) d2=PAR(2) a1 = 5.d0 a2 = 0.1d0 b1 = 3.d0 b2 = 2.d0 f1=a1/(1d0 + b1*x) f2=a2/(1d0 + b2*y) ! Formulas F(1)= x*(1d0 - x) - f1*x*y F(2)= f1*x*y - d1*y - f2*y*z F(3)= f2*y*z - d2*z IF(.NOT.IJAC)RETURN ! Jacobian elements DFDU(1,1)=1d0-2*x-f1*y+b1*x*y*(f1**2)/a1 DFDU(1,2)=-f1*x DFDU(1,3)=0.0d0 DFDU(2,1)=f1*y-b1*x*y*(f1**2)/a1 DFDU(2,2)=f1*x-d1-f2*z+b2*y*z*(f2**2)/a2 DFDU(2,3)=-f2*y DFDU(3,1)=0.0d0 DFDU(3,2)=f2*z-b2*y*z*(f2**2)/a2 DFDU(3,3)=f2*y-d2 END SUBROUTINE RHS SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- --- IMPLICIT NONE INTEGER NDIM,ICP(*),IJAC DOUBLE PRECISION U(NDIM),PAR(*),F(NDIM),DFDU(NDIM,*),DFDP(NDIM,*) DOUBLE PRECISION A(3,3) CALL RHS(3,U,PAR,F,A,NDIM/=3) IF(NDIM==3)RETURN F(1:3) = PAR(11)*F(1:3) IF(NDIM==6)THEN ! Variational equations ! PAR(11) = cycle period ! PAR(12) = log(FM) F(4:6) = PAR(11)*MATMUL(A(:,:),U(4:6))-PAR(12)*U(4:6) RETURN ENDIF ! Adjoint variational equations ! PAR(11) = cycle period ! PAR(4) = log(FM) F(4:6) = -PAR(11)*MATMUL(TRANSPOSE(A(:,:)),U(4:6))-PAR(4)*U(4:6) ! Functions limit cycle doubled U(7-9) ! We pretend this is a second different cycle CALL RHS(3,U(7:9),PAR,F(7:9),A,.TRUE.) F(7:9) = PAR(6)*F(7:9) ! Period=PAR(6), obviously equal to PAR(11), U(10-12) ! PAR(5) = log(FM) F(10:12) = -PAR(6)*MATMUL(TRANSPOSE(A(:,:)),U(10:12))-PAR(5)*U(10:12) IF(NDIM==12)RETURN ! Connection rescaled, PAR(7) = Tc CALL RHS(3,U(13:15),PAR,F(13:15),A,.FALSE.) F(13:15) = PAR(7)*F(13:15) END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR) ! ---------- --- IMPLICIT NONE INTEGER NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM), PAR(*) DOUBLE PRECISION FLOQ,epsilon IF(NDIM==12)THEN ! extending from NDIM=6 to NDIM=12 U(7:12)=U(1:6) RETURN ELSEIF(NDIM==15)THEN ! extending from NDIM=12 to NDIM=15 epsilon=PAR(13) U(13:15)=PAR(14:16) + epsilon*PAR(17:19) RETURN ENDIF ! 0.160 put initial equilibrium in PAR(11+i), i=1,...,NDIM : PAR(12) = 0.0 PAR(13) = 0.0 PAR(14) = 0.0 END SUBROUTINE STPNT SUBROUTINE PVLS(NDIM,U,PAR) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(IN) :: U(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: PAR(*) ! Homoclinic bifurcations COMMON block needed here : INTEGER ITWIST,ISTART,IEQUIB,NFIXED,NPSI,NUNSTAB,NSTAB,NREV COMMON /BLHOM/ ITWIST,ISTART,IEQUIB,NFIXED,NPSI,NUNSTAB,NSTAB,NREV INTEGER I ! If IEQUIB =0 put analytic equilibrium in PAR(11+i), i=1..NDIM IF(IEQUIB.EQ.0)THEN DO I=1,NDIM PAR(11+I)= 0.0 ENDDO ENDIF END SUBROUTINE PVLS SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT auto-07p-0.9.1+dfsg/07p/demos/cir/clean.auto000066400000000000000000000001531206161447600202700ustar00rootroot00000000000000#============== # AUTO Demo cir #============== print "\n***Clean the directory***" dl("1") dl("2") cl() auto-07p-0.9.1+dfsg/07p/demos/cusp/000077500000000000000000000000001206161447600165125ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/cusp/autorc000066400000000000000000000032331206161447600177330ustar00rootroot00000000000000[AUTO_plotter] #default_option="d1" #d1 = {"grid": "no", "use_labels": 1, "use_symbols": 1, "stability": 1} # similarly you can redefine d0, d2, d3, d4. #grid = "no" #stability = 0 #use_labels = 1 #use_symbols = 0 #top_title = '' #top_title_fontsize = 12 #xlabel = '' #xlabel_fontsize = 12 #ylabel = '' #ylabel_fontsize = 12 #solution_indepvarname = "time" #solution_coordnames = ["$x$","$y$","$z$"] #bifurcation_coordnames = ["?", "L2-norm"] #line_width = 2.0 #dashes = (6.0,6.0) #background = "white" #foreground = "black" #color_list = "black red green blue" #symbol_color = "red" #symbol_font = "-misc-fixed-*-*-*-*-*-*-*-*-*-*-*-*" #decorations = 1 #smart_label = 1 #minx = 0 #maxx = 0 #miny = 0 #maxy = 0 #width = 600 #height = 480 #left_margin = 80 #right_margin = 40 #top_margin = 40 #bottom_margin = 40 #xticks = 5 #yticks = 5 #tick_label_template = "%.2e" #tick_length = 0.2 #odd_tick_length = 0.4 #even_tick_length = 0.2 #ps_colormode = "color" #mark_t = None #or a real value between 0 and 1 #type = "bifurcation" # or "solution" #bifurcation_x = [0] #bifurcation_y = [1] #solution_x = ["t"] #solution_y = [0] ## Sets of columns that the user is likely to want to use #bifurcation_column_defaults = None #solution_column_defaults = None # The label(s) of the solution we wish to draw #label = [1,2,3] #label_defaults = None # The index/indices of the solution we wish to draw #index = [0] #bifurcation_diagram_filename = 'fort.7' #solution_filename = 'fort.8' #bifurcation_symbol = "square" #limit_point_symbol = None #hopf_symbol = "fillsquare" #period_doubling_symbol = "doubletriangle" #torus_symbol = "filldiamond" #user_point_symbol = "U" #error_symbol = None auto-07p-0.9.1+dfsg/07p/demos/cusp/c.cusp000066400000000000000000000006471206161447600176370ustar00rootroot00000000000000parnames = {1:'lambda', 2:'mu'} unames = {1:'x'} NDIM= 1, IPS = 1, IRS = 0, ILP = 1 ICP = ['mu', 'lambda'] NTST= 5, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 20, MXBF= 0, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.01, DSMIN= 0.005, DSMAX= 0.1, IADS= 1 NPAR = 2, THL = {}, THU = {} UZSTOP = {'mu': [-2.0, 2.0]} auto-07p-0.9.1+dfsg/07p/demos/cusp/clean.auto000066400000000000000000000001751206161447600204710ustar00rootroot00000000000000#=============== # AUTO Demo cusp #=============== print "\n***Clean the directory***" delete("mu") delete("cusp") clean() auto-07p-0.9.1+dfsg/07p/demos/cusp/cusp.auto000066400000000000000000000014011206161447600203520ustar00rootroot00000000000000#=============== # AUTO Demo cusp #=============== # Load the files cusp.f90 and c.cusp into the AUTO # command interpreter. cusp = load('cusp') # Run and store the result in the Python variable mu mu = run(cusp) # Run backwards, and append to mu mu = mu + run(cusp,DS='-') # Relabel solutions mu = relabel(mu) # Save to b.mu, s.mu, and d.mu save(mu,'mu') # Plot bifurcation diagram p = plot(mu) p.config(bifurcation_y=['x']) # Set the new start label to the first LP label in b.mu and s.mu lp1 = load(mu('LP1'), ISW=2) # Continue from this label in two parameters cusp = run(lp1) cusp = cusp + run(lp1,DS='-') # save to b.cusp, s.cusp, and d.cusp save(cusp,'cusp') # Plot the cusp p = plot(cusp) p.config(bifurcation_y=['lambda']) #clean the directory clean() wait() auto-07p-0.9.1+dfsg/07p/demos/cusp/cusp.f90000066400000000000000000000166651206161447600200220ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! cusp.f90 - cusp normal form !---------------------------------------------------------------------- !---------------------------------------------------------------------- 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,*) DOUBLE PRECISION x, mu, lambda x = U(1) lambda = PAR(1) mu = PAR(2) F(1)= mu + lambda*x - x**3 END SUBROUTINE FUNC !----------------------------------------------------------------------- !----------------------------------------------------------------------- SUBROUTINE STPNT(NDIM,U,PAR,T) !--------- ----- ! 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 ! 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:2) = (/ 1.0d0, 0.0d0 /) ! Initialize the solution U(1) = 0.0d0 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,*) !X FB(1)= !X 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,*) !X 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(*) !X 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) !X PAR(2)=GETP('NRM',1,U) ! ! Set PAR(3) equal to the minimum of U(2) !X PAR(3)=GETP('MIN',2,U) ! ! Set PAR(4) equal to the value of U(2) at the left boundary. !X PAR(4)=GETP('BV0',2,U) ! ! Set PAR(5) equal to the pseudo-arclength step size used. !X 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 !---------------------------------------------------------------------- !---------------------------------------------------------------------- auto-07p-0.9.1+dfsg/07p/demos/cusp/plaut04.rc000066400000000000000000000070011206161447600203270ustar00rootroot00000000000000#version 0.0 # Line colors are represented by RGB values from 0 to 1.0. # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and highlighting the solutions # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Initialize the default options: Highlight Orbit = No Orbit Animation = No Normalize Data = Yes Draw Background = No Draw Labels = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahead Coordinate Type = 3 # Draw Scale: Draw Scale = Yes # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 1 # Initialize the default graph style # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 0 #Set the window width and height: Window Width = 1000 Window Height = 600 # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 1 Y Axis Solution = 2 Z Axis Solution = 3 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 2 Z Axis Bifurcation = 3 #Labeled solutions: #-3 = Show all labeled solutions #-2 = Show HALF labeled solutions #-1 = Show SPEC labeled solutions #0 = Show NONE of the solutions #Otherwise, show the specified solution(s) Labels = -3 #Set coloring method: # -6 --- STABILITY # -5 --- POINT # -4 --- BRANCH # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. Coloring Method = -6 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 1.0 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Background color: Background Color = 0., 0., 0. # Background transparency: Background Transparency = 0.9 # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # UnStable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 # Color of the animation object: Object Color = 1.0, 1.0, 1.0 # Set the radius of the animation object: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Object Radius = 1.0 # Set the maximum and minimum animation speed: Object Max Animation Speed = 100 Object Min Animation Speed = 0 # Set the maximum and minimum highlighting animation speed: Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 # Set the active AUTO parameter indices: parameter ID = 10 # Choose 3D or 2D graph: 3D = Yes # Set the number of periods animated. # The value should be the power of 2. Number of Period Animated = 1 auto-07p-0.9.1+dfsg/07p/demos/dd2/000077500000000000000000000000001206161447600162115ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/dd2/autorc000077500000000000000000000141211206161447600174330ustar00rootroot00000000000000# Example file for autorc: you need to uncomment settings for them # to take effect! [AUTO_plotter] # Variable name to use instead of 't' for solutions. solution_indepvarname = "time" # A dictionary mapping names to axis labels. labelnames = {"u1": "$u_1$", "u2": "$u_2$", "p1": "$p_1$", "p2": "$p_2$"} # The type of the plot, either "solution" or "bifurcation" #type = "bifurcation" # or "solution" # The column to plot along the X-axis for bifurcation diagrams. #bifurcation_x = [0] # The column to plot along the Y-axis for bifurcation diagrams. bifurcation_y = ["u1"] # The column to plot along the Z-axis for bifurcation diagrams. #bifurcation_z = None # The column to plot along the X-axis for solutions. #solution_x = [0,3,6,9] # The column to plot along the Y-axis for solutions. #solution_y = [1,4,7,10] # The column to plot along the Z-axis for solutions. #solution_z = [2,5,8,11] # A list of colors to use for multiple plots. #color_list = "black red green blue" # color_list index: 'branch' (BR), 'type' (TY), or 'curve' (seq.). #coloring_method = "curve" # or "branch" or "type" # Turn on or off the grid. #grid = False # Turn on or off stability information using dashed curves #stability = False # Whether or not to display label numbers in the graph. #use_labels = True # Whether or not to display bifurcation symbols in the graph. #use_symbols = False # Whether to use letters (True) or symbols (False) for special points. #letter_symbols = True # Default d0, d1, d2, etc. setting to use with PyPLAUT (@pp). #default_option="d1" #d1 = {"grid": False, "use_labels": True, "use_symbols": True, "stability":True} # similarly you can redefine d0, d2, d3, d4. # The label for the top title. #top_title = '' # The font size for the top title. #top_title_fontsize = 12 # The font size for the x-axis label. #xlabel_fontsize = 12 # The font size for the y-axis label. #ylabel_fontsize = 12 # The font size for the z-axis label. #zlabel_fontsize = 12 # Azimuth of the axes in 3D plots. #azimuth = -60 # for 3D plots, in degrees # Elevation of the axes in 3D plots. #elevation = 30 # for 3D plots, in degrees # The lower bound for the x-axis of the plot. #minx = 0 # The upper bound for the x-axis of the plot. #maxx = 0 # The lower bound for the y-axis of the plot. #miny = 0 # The upper bound for the y-axis of the plot. #maxy = 0 # The lower bound for the z-axis of the plot. #minz = 0 # The upper bound for the z-axis of the plot. #maxz = 0 # The label for the x-axis. #xlabel = '' # The label for the y-axis. #ylabel = '' # The label for the z-axis. #zlabel = '' # Width to use for lines and curves. #line_width = 2.0 # List of dash, no-dash lengths for dashed lines. #dashes = (6.0,6.0) # The background color of the plot. #background = "white" # The foreground color of the plot #foreground = "black" # The color to use for the marker symbols. #symbol_color = "red" # The font to use for marker symbols. #symbol_font = "-misc-fixed-*-*-*-*-*-*-*-*-*-*-*-*" # Turn on or off the axis, tick marks, etc. #decorations = True # Whether to use a smart but slower label placement algorithm. #smart_label = True # Width of the graph. #width = 600 # Height of the graph. #height = 480 # The margin between the graph and the left edge. #left_margin = 80 # The margin between the graph and the left edge. #right_margin = 40 # The margin between the graph and the top edge. #top_margin = 40 # The margin between the graph and the bottom edge. #bottom_margin = 40 # The number of ticks on the x-axis. #xticks = 5 # The number of ticks on the y-axis. #yticks = 5 # The number of ticks on the z-axis. #zticks = 5 # A string which defines the format of the tick labels. #tick_label_template = "%.2e" # The length of the tick marks. #tick_length = 0.2 # The length of the odd tick marks. #odd_tick_length = 0.4 # The length of the even tick marks. #even_tick_length = 0.2 # The PostScript output mode: 'color', 'gray' or 'monochrome'. #ps_colormode = "color" # The t value to marker with a small ball. #mark_t = None #or a real value between 0 and 1 # A set of bifurcation columns the user is likely to use. #bifurcation_column_defaults = None # A set of solution columns the user is likely to use. #solution_column_defaults = [[0,3,6,9],[1,4,7,10],[2,5,8,11],['t','t','t','t']] # An array of labels to plot, or 'all' for all labels. #label = [1,2,3] # or "all" # A set of labels that the user is likely to use. #label_defaults = None # The index/indices of the solution we wish to draw #index = [0] # The filename of the bifurcation diagram to plot. #bifurcation_diagram_filename = 'fort.7' # The filename of the solution to plot. #solution_filename = 'fort.8' # The symbol to use for bifurcation points. # Here 8 denotes the size of the square #bifurcation_symbol = "square8" # The symbol to use for limit points. #limit_point_symbol = None # The symbol to use for Hopf bifurcation points. #hopf_symbol = "fillsquare" # The symbol to use for period doubling bifurcation points. #period_doubling_symbol = "doubletriangle" # The symbol to use for torus bifurcation points. #torus_symbol = "filldiamond" # The symbol to use for user defined output points. #user_point_symbol = "U" # The symbol to use for error points. #error_symbol = None # The symbol to use for Cusp points. #cusp_symbol = None # The symbol to use for Bogdanov-Takens points. #bogdanov_takens_symbol = "circle" # The symbol to use for Generalized Hopf points. #generalized_hopf_symbol = "triangle" # The symbol to use for zero-Hopf points. #zero_hopf_symbol = "doubletriangle" # The symbol to use for fold-flip points. #fold_flip_symbol = "doubletriangle" # The symbol to use for fold-torus points. #fold_torus_symbol = "doubletriangle" # The symbol to use for flip-torus points. #flip_torus_symbol = "doubletriangle" # The symbol to use for torus-torus points. #torus_torus_symbol = "doubletriangle" # The symbol to use for 1:1 resonance points. #1_1_resonance_symbol = "filldiamond" # The symbol to use for 1:2 resonance points. #1_2_resonance_symbol = "filldiamond" # The symbol to use for 1:3 resonance points. #1_3_resonance_symbol = "filldiamond" # The symbol to use for 1:4 resonance points. #1_4_resonance_symbol = "filldiamond" auto-07p-0.9.1+dfsg/07p/demos/dd2/c.dd2000066400000000000000000000006571206161447600170360ustar00rootroot00000000000000parnames = {1: "p1", 2: "p2"} unames = {1: "u1", 2: "u2"} NDIM= 2, IPS = -1, IRS = 0, ILP = 0 ICP = ["p1"] NTST= 10, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 100, MXBF= 5, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 1 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.02, DSMIN= 0.01, DSMAX= 0.1, IADS= 1 NPAR = 3, THL = {}, THU = {} UZSTOP = {"p1": [0.0, 5.0]}, A1 = 5.0 auto-07p-0.9.1+dfsg/07p/demos/dd2/c.dd2.1000066400000000000000000000006571206161447600171750ustar00rootroot00000000000000parnames = {1: "p1", 2: "p2"} unames = {1: "u1", 2: "u2"} NDIM= 2, IPS = -1, IRS = 0, ILP = 0 ICP = ["p1"] NTST= 10, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 100, MXBF= 5, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 1 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.02, DSMIN= 0.01, DSMAX= 0.1, IADS= 1 NPAR = 3, THL = {}, THU = {} UZSTOP = {"p1": [0.0, 5.0]}, A1 = 5.0 auto-07p-0.9.1+dfsg/07p/demos/dd2/c.dd2.2000066400000000000000000000006311206161447600171660ustar00rootroot00000000000000parnames = {1: "p1", 2: "p2"} unames = {1: "u1", 2: "u2"} NDIM= 2, IPS = -1, IRS = 5, ILP = 0 ICP = ["p1", "p2"] NTST= 10, NCOL= 4, IAD = 3, ISP = 1, ISW = 2, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 100, MXBF= 5, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 1 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.02, DSMIN= 0.01, DSMAX= 0.1, IADS= 1 NPAR = 3, THL = {}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/dd2/clean.auto000066400000000000000000000001711206161447600201640ustar00rootroot00000000000000 #============== # AUTO Demo dd2 #============== print "\n***Clean the directory***" delete('dd2') delete('pd') clean() auto-07p-0.9.1+dfsg/07p/demos/dd2/dd2.auto000066400000000000000000000010251206161447600175520ustar00rootroot00000000000000 #============== # AUTO Demo dd2 #============== print "\nDemo dd2 is started" print "\ndd2 : first run : fixed point solution branches" r1 = run("dd2") save("dd2") print "\ndd2 : second run : a 2-parameter curve of period-doubling bifurcations" run(r1("PD1"),ICP=[1,2],ISW=2) save("pd") print "\ndd2 : third run : perform a period-doubling" r3 = run(r1("PD1"),ISW=-1) append("dd2") print "\ndd2 : fourth run : perform another period-doubling (period-4)" run(r3("PD1")) append("dd2") print "\n***Clean the directory***" clean() auto-07p-0.9.1+dfsg/07p/demos/dd2/dd2.f90000066400000000000000000000031721206161447600172050ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! dd2 : Basic computations for discrete dynamical systems !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) F(1)=PAR(1)*U(1)*(1-U(1)) - PAR(2)*U(1)*U(2) F(2)=(1-PAR(3))*U(2) + PAR(2)*U(1)*U(2) IF(IJAC.EQ.0)RETURN DFDU(1,1)=PAR(1)*(1-2*U(1))-PAR(2)*U(2) DFDU(1,2)=-PAR(2)*U(1) DFDU(2,1)=PAR(2)*U(2) DFDU(2,2)=1-PAR(3) + PAR(2)*U(1) IF(IJAC.EQ.1)RETURN DFDP(1,1)=U(1)*(1-U(1)) DFDP(2,1)=0.0 DFDP(1,2)=-U(1)*U(2) DFDP(2,2)= U(1)*U(2) END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T PAR(1)=0.0 PAR(2)=0.2 PAR(3)=0.1 U(1)=0.0 U(2)=0.0 END SUBROUTINE STPNT SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/enz/000077500000000000000000000000001206161447600163345ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/enz/autorc000077500000000000000000000141651206161447600175660ustar00rootroot00000000000000# Example file for autorc: you need to uncomment settings for them # to take effect! [AUTO_plotter] # Variable name to use instead of 't' for solutions. solution_indepvarname = "time" # A dictionary mapping names to axis labels. labelnames = {"s0": "$s_0$", "mu": "$\mu$", "rho": "$\rho$", "kappa": "$\kappa$", "s1": "$s_1$", "s2": "$s_2$"} # The type of the plot, either "solution" or "bifurcation" #type = "bifurcation" # or "solution" # The column to plot along the X-axis for bifurcation diagrams. #bifurcation_x = [0] # The column to plot along the Y-axis for bifurcation diagrams. #bifurcation_y = [1] # The column to plot along the Z-axis for bifurcation diagrams. #bifurcation_z = None # The column to plot along the X-axis for solutions. #solution_x = [0,3,6,9] # The column to plot along the Y-axis for solutions. #solution_y = [1,4,7,10] # The column to plot along the Z-axis for solutions. #solution_z = [2,5,8,11] # A list of colors to use for multiple plots. #color_list = "black red green blue" # color_list index: 'branch' (BR), 'type' (TY), or 'curve' (seq.). #coloring_method = "curve" # or "branch" or "type" # Turn on or off the grid. #grid = False # Turn on or off stability information using dashed curves #stability = False # Whether or not to display label numbers in the graph. #use_labels = True # Whether or not to display bifurcation symbols in the graph. #use_symbols = False # Whether to use letters (True) or symbols (False) for special points. #letter_symbols = True # Default d0, d1, d2, etc. setting to use with PyPLAUT (@pp). #default_option="d1" #d1 = {"grid": False, "use_labels": True, "use_symbols": True, "stability":True} # similarly you can redefine d0, d2, d3, d4. # The label for the top title. #top_title = '' # The font size for the top title. #top_title_fontsize = 12 # The font size for the x-axis label. #xlabel_fontsize = 12 # The font size for the y-axis label. #ylabel_fontsize = 12 # The font size for the z-axis label. #zlabel_fontsize = 12 # Azimuth of the axes in 3D plots. #azimuth = -60 # for 3D plots, in degrees # Elevation of the axes in 3D plots. #elevation = 30 # for 3D plots, in degrees # The lower bound for the x-axis of the plot. #minx = 0 # The upper bound for the x-axis of the plot. #maxx = 0 # The lower bound for the y-axis of the plot. #miny = 0 # The upper bound for the y-axis of the plot. #maxy = 0 # The lower bound for the z-axis of the plot. #minz = 0 # The upper bound for the z-axis of the plot. #maxz = 0 # The label for the x-axis. #xlabel = '' # The label for the y-axis. #ylabel = '' # The label for the z-axis. #zlabel = '' # Width to use for lines and curves. #line_width = 2.0 # List of dash, no-dash lengths for dashed lines. #dashes = (6.0,6.0) # The background color of the plot. #background = "white" # The foreground color of the plot #foreground = "black" # The color to use for the marker symbols. #symbol_color = "red" # The font to use for marker symbols. #symbol_font = "-misc-fixed-*-*-*-*-*-*-*-*-*-*-*-*" # Turn on or off the axis, tick marks, etc. #decorations = True # Whether to use a smart but slower label placement algorithm. #smart_label = True # Width of the graph. #width = 600 # Height of the graph. #height = 480 # The margin between the graph and the left edge. #left_margin = 80 # The margin between the graph and the left edge. #right_margin = 40 # The margin between the graph and the top edge. #top_margin = 40 # The margin between the graph and the bottom edge. #bottom_margin = 40 # The number of ticks on the x-axis. #xticks = 5 # The number of ticks on the y-axis. #yticks = 5 # The number of ticks on the z-axis. #zticks = 5 # A string which defines the format of the tick labels. #tick_label_template = "%.2e" # The length of the tick marks. #tick_length = 0.2 # The length of the odd tick marks. #odd_tick_length = 0.4 # The length of the even tick marks. #even_tick_length = 0.2 # The PostScript output mode: 'color', 'gray' or 'monochrome'. #ps_colormode = "color" # The t value to marker with a small ball. #mark_t = None #or a real value between 0 and 1 # A set of bifurcation columns the user is likely to use. #bifurcation_column_defaults = None # A set of solution columns the user is likely to use. #solution_column_defaults = [[0,3,6,9],[1,4,7,10],[2,5,8,11],['t','t','t','t']] # An array of labels to plot, or 'all' for all labels. #label = [1,2,3] # or "all" # A set of labels that the user is likely to use. #label_defaults = None # The index/indices of the solution we wish to draw #index = [0] # The filename of the bifurcation diagram to plot. #bifurcation_diagram_filename = 'fort.7' # The filename of the solution to plot. #solution_filename = 'fort.8' # The symbol to use for bifurcation points. # Here 8 denotes the size of the square #bifurcation_symbol = "square8" # The symbol to use for limit points. #limit_point_symbol = None # The symbol to use for Hopf bifurcation points. #hopf_symbol = "fillsquare" # The symbol to use for period doubling bifurcation points. #period_doubling_symbol = "doubletriangle" # The symbol to use for torus bifurcation points. #torus_symbol = "filldiamond" # The symbol to use for user defined output points. #user_point_symbol = "U" # The symbol to use for error points. #error_symbol = None # The symbol to use for Cusp points. #cusp_symbol = None # The symbol to use for Bogdanov-Takens points. #bogdanov_takens_symbol = "circle" # The symbol to use for Generalized Hopf points. #generalized_hopf_symbol = "triangle" # The symbol to use for zero-Hopf points. #zero_hopf_symbol = "doubletriangle" # The symbol to use for fold-flip points. #fold_flip_symbol = "doubletriangle" # The symbol to use for fold-torus points. #fold_torus_symbol = "doubletriangle" # The symbol to use for flip-torus points. #flip_torus_symbol = "doubletriangle" # The symbol to use for torus-torus points. #torus_torus_symbol = "doubletriangle" # The symbol to use for 1:1 resonance points. #1_1_resonance_symbol = "filldiamond" # The symbol to use for 1:2 resonance points. #1_2_resonance_symbol = "filldiamond" # The symbol to use for 1:3 resonance points. #1_3_resonance_symbol = "filldiamond" # The symbol to use for 1:4 resonance points. #1_4_resonance_symbol = "filldiamond" auto-07p-0.9.1+dfsg/07p/demos/enz/c.enz000066400000000000000000000007071206161447600173000ustar00rootroot00000000000000unames = {1: 's1', 2: 's2'} parnames = {1: 's0', 2: 'mu', 3: 'rho', 4: 'kappa'} NDIM= 2, IPS = 1, IRS = 0, ILP = 1 ICP = ['s0'] NTST= 15, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 250, NPR= 250, MXBF= -1, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.1, DSMIN= 0.01, DSMAX= 0.25, IADS= 1 NPAR = 4, THL = {}, THU = {} UZR = {'mu': [1.0, 5.0]} STOP = ['LP3']auto-07p-0.9.1+dfsg/07p/demos/enz/c.enz.1000066400000000000000000000007071206161447600174370ustar00rootroot00000000000000unames = {1: 's1', 2: 's2'} parnames = {1: 's0', 2: 'mu', 3: 'rho', 4: 'kappa'} NDIM= 2, IPS = 1, IRS = 0, ILP = 1 ICP = ['s0'] NTST= 15, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 250, NPR= 250, MXBF= -1, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.1, DSMIN= 0.01, DSMAX= 0.25, IADS= 1 NPAR = 4, THL = {}, THU = {} UZR = {'mu': [1.0, 5.0]} STOP = ['LP3']auto-07p-0.9.1+dfsg/07p/demos/enz/clean.auto000066400000000000000000000001541206161447600203100ustar00rootroot00000000000000 #============== # AUTO Demo enz #============== print "\n***Clean the directory***" delete('enz') clean() auto-07p-0.9.1+dfsg/07p/demos/enz/enz.auto000066400000000000000000000003021206161447600200150ustar00rootroot00000000000000 #============== # AUTO Demo enz #============== print "\nDemo enz is started" print "\nenz : stationary solution branches" run("enz") save("enz") print "\n***Clean the directory***" clean() auto-07p-0.9.1+dfsg/07p/demos/enz/enz.f90000066400000000000000000000027321206161447600174540ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! enz : A two-cell, one-substrate enzyme model !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION R,s,s1,s2,s0,mu,rho,kappa R(s)=s/(1+s+kappa*s**2) s1=U(1) s2=U(2) s0=PAR(1) mu=PAR(2) rho=PAR(3) kappa=PAR(4) F(1)=(s0 -s1) + (s2-s1) - rho * R(s1) F(2)=(s0+mu-s2) + (s1-s2) - rho * R(s2) END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T PAR(1)=0 PAR(2)=0 PAR(3)=100 PAR(4)=1 U(1)=0 U(2)=0 END SUBROUTINE STPNT SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/exp/000077500000000000000000000000001206161447600163345ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/exp/autorc000066400000000000000000000143551206161447600175640ustar00rootroot00000000000000[AUTO_plotter] ############################ # active settings ############################ # Variable name to use instead of 't' for solutions. solution_indepvarname = "x" # A dictionary mapping names to axis labels. labelnames = {"x": "$x$", "u": "$u$", "v": "$v$", "lambda": "$\lambda$", "INTEGRAL u": "Integral $u$", "MAX u": "max $u$", "MAX v": "max $v$"} # The type of the plot, either "solution" or "bifurcation" type = "bifurcation" # The column to plot along the X-axis for bifurcation diagrams. bifurcation_x = ["lambda"] # The column to plot along the Y-axis for bifurcation diagrams. bifurcation_y = ["INTEGRAL u"] # The column to plot along the Z-axis for bifurcation diagrams. bifurcation_z = None # The column to plot along the X-axis for solutions. solution_x = ["x"] # The column to plot along the Y-axis for solutions. solution_y = ["u"] # The column to plot along the Z-axis for solutions. solution_z = None # A list of colors to use for multiple plots. color_list = "red red red blue blue blue blue blue blue blue blue" # color_list index: 'branch' (BR), 'type' (TY), or 'curve' (seq.). coloring_method = "branch" # Default d0, d1, d2, etc. setting to use with PyPLAUT (@pp). default_option="d1" d1 = {"grid": "yes", "use_labels": 0, "use_symbols": 1, "stability": 0} d2 = {"grid": "yes", "use_labels": 1, "use_symbols": 1, "stability": 0} # similarly you can redefine d0, d2, d3, d4. # The font size for the x-axis label. xlabel_fontsize = 16 # The font size for the y-axis label. ylabel_fontsize = 16 # The font size for the z-axis label. zlabel_fontsize = 16 # Azimuth of the axes in 3D plots, in degrees. azimuth = -120 # Elevation of the axes in 3D plots, in degrees. elevation = 25 # Whether to use letters (True) or symbols (False) for special points. letter_symbols = False ############################ # inactive settings ############################ # Turn on or off the grid. #grid = False # Turn on or off stability information using dashed curves #stability = False # Whether or not to display label numbers in the graph. #use_labels = True # Whether or not to display bifurcation symbols in the graph. #use_symbols = False # The label for the top title. #top_title = '' # The font size for the top title. #top_title_fontsize = 12 # The label for the x-axis. #xlabel = '' # The label for the y-axis. #ylabel = '' # The label for the z-axis. #zlabel = '' # Width to use for lines and curves. #line_width = 2.0 # List of dash, no-dash lengths for dashed lines. #dashes = (6.0,6.0) # The background color of the plot. #background = "white" # The foreground color of the plot #foreground = "black" # The color to use for the marker symbols. #symbol_color = "red" # The font to use for marker symbols. #symbol_font = "-misc-fixed-*-*-*-*-*-*-*-*-*-*-*-*" # Turn on or off the axis, tick marks, etc. #decorations = True # Whether to use a smart but slower label placement algorithm. #smart_label = True # The lower bound for the x-axis of the plot. #minx = 0 # The upper bound for the x-axis of the plot. #maxx = 0 # The lower bound for the y-axis of the plot. #miny = 0 # The upper bound for the y-axis of the plot. #maxy = 0 # The lower bound for the z-axis of the plot. #minz = 0 # The upper bound for the z-axis of the plot. #maxz = 0 # Width of the graph. #width = 600 # Height of the graph. #height = 480 # The margin between the graph and the left edge. #left_margin = 80 # The margin between the graph and the left edge. #right_margin = 40 # The margin between the graph and the top edge. #top_margin = 40 # The margin between the graph and the bottom edge. #bottom_margin = 40 # The number of ticks on the x-axis. #xticks = 5 # The number of ticks on the y-axis. #yticks = 5 # The number of ticks on the z-axis. #zticks = 5 # A string which defines the format of the tick labels. #tick_label_template = "%.2e" # The length of the tick marks. #tick_length = 0.2 # The length of the odd tick marks. #odd_tick_length = 0.4 # The length of the even tick marks. #even_tick_length = 0.2 # The PostScript output mode: 'color', 'gray' or 'monochrome'. #ps_colormode = "color" # The t value to marker with a small ball. #mark_t = None #or a real value between 0 and 1 # A set of bifurcation columns the user is likely to use. #bifurcation_column_defaults = None # A set of solution columns the user is likely to use. #solution_column_defaults = [[0,3,6,9],[1,4,7,10],[2,5,8,11],['t','t','t','t']] # An array of labels to plot, or 'all' for all labels. #label = [1,2,3] # or "all" # A set of labels that the user is likely to use. #label_defaults = None # The index/indices of the solution we wish to draw #index = [0] # The filename of the bifurcation diagram to plot. #bifurcation_diagram_filename = 'fort.7' # The filename of the solution to plot. #solution_filename = 'fort.8' # The symbol to use for bifurcation points. # Here 8 denotes the size of the square #bifurcation_symbol = "square8" # The symbol to use for limit points. #limit_point_symbol = None # The symbol to use for Hopf bifurcation points. #hopf_symbol = "fillsquare" # The symbol to use for period doubling bifurcation points. #period_doubling_symbol = "doubletriangle" # The symbol to use for torus bifurcation points. #torus_symbol = "filldiamond" # The symbol to use for user defined output points. #user_point_symbol = "U" # The symbol to use for error points. #error_symbol = None # The symbol to use for Cusp points. #cusp_symbol = None # The symbol to use for Bogdanov-Takens points. #bogdanov_takens_symbol = "circle" # The symbol to use for Generalized Hopf points. #generalized_hopf_symbol = "triangle" # The symbol to use for zero-Hopf points. #zero_hopf_symbol = "doubletriangle" # The symbol to use for fold-flip points. #fold_flip_symbol = "doubletriangle" # The symbol to use for fold-torus points. #fold_torus_symbol = "doubletriangle" # The symbol to use for flip-torus points. #flip_torus_symbol = "doubletriangle" # The symbol to use for torus-torus points. #torus_torus_symbol = "doubletriangle" # The symbol to use for 1:1 resonance points. #1_1_resonance_symbol = "filldiamond" # The symbol to use for 1:2 resonance points. #1_2_resonance_symbol = "filldiamond" # The symbol to use for 1:3 resonance points. #1_3_resonance_symbol = "filldiamond" # The symbol to use for 1:4 resonance points. #1_4_resonance_symbol = "filldiamond" auto-07p-0.9.1+dfsg/07p/demos/exp/c.exp000066400000000000000000000006701206161447600172770ustar00rootroot00000000000000unames = {1: 'u', 2: 'v'} parnames = {1: 'lambda'} NDIM= 2, IPS = 4, IRS = 0, ILP = 1 ICP = ['lambda'] NTST= 10, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 3, NBC= 2, NINT= 0 NMX= 100, NPR= 100, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.01, DSMIN= 0.001, DSMAX= 0.2, IADS= 1 NPAR = 1, THL = {}, THU = {} UZR = {'lambda': [0.5, 1.0, 1.5, 2.0, 2.5, 3.0]} auto-07p-0.9.1+dfsg/07p/demos/exp/c.exp.1000066400000000000000000000006701206161447600174360ustar00rootroot00000000000000unames = {1: 'u', 2: 'v'} parnames = {1: 'lambda'} NDIM= 2, IPS = 4, IRS = 0, ILP = 1 ICP = ['lambda'] NTST= 10, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 3, NBC= 2, NINT= 0 NMX= 100, NPR= 100, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.01, DSMIN= 0.001, DSMAX= 0.2, IADS= 1 NPAR = 1, THL = {}, THU = {} UZR = {'lambda': [0.5, 1.0, 1.5, 2.0, 2.5, 3.0]} auto-07p-0.9.1+dfsg/07p/demos/exp/c.exp.2000066400000000000000000000006051206161447600174350ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 15, ILP = 1 ICP = ['lambda'] NTST= 20, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 3, NBC= 2, NINT= 0 NMX= 100, NPR= 100, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.01, DSMIN= 0.001, DSMAX= 0.2, IADS= 1 NPAR = 1, THL = {}, THU = {} UZR = {'lambda': [0.5, 1.0, 1.5, 2.0, 2.5, 3.0]} auto-07p-0.9.1+dfsg/07p/demos/exp/clean.auto000066400000000000000000000001451206161447600203100ustar00rootroot00000000000000 #============== # AUTO Demo exp #============== print "\n***Clean the directory***" dl('exp') cl() auto-07p-0.9.1+dfsg/07p/demos/exp/exp.auto000066400000000000000000000003611206161447600200220ustar00rootroot00000000000000 #============== # AUTO Demo exp #============== print "\n***Compute a solution family***" r1=run(e='exp',c='exp') print "\n***Restart the solution family***" r2=run(r1,NTST=20) save(r1+r2,'exp') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/exp/exp.f90000066400000000000000000000035201206161447600174500ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! exp : A boundary value problem (Bratu's equation) !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) F(1)= U(2) F(2)=-PAR(1) * EXP(U(1)) END SUBROUTINE FUNC !---------------------------------------------------------------------- SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T PAR(1)=0 U(1)=0.0 U(2)=0.0 END SUBROUTINE STPNT !---------------------------------------------------------------------- SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) ! ---------- ---- 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,*) FB(1)=U0(1) FB(2)=U1(1) END SUBROUTINE BCND !---------------------------------------------------------------------- SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS !---------------------------------------------------------------------- auto-07p-0.9.1+dfsg/07p/demos/exp/plaut04.rc000066400000000000000000000116341206161447600201600ustar00rootroot00000000000000#version 0.0 ############################### # Primary settings ############################### # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 1 # Choose 3D or 2D graph for the solution diagram: 3DSol = No # Choose 3D or 2D graph for the bifurcation diagram: 3DBif = No # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 0 Y Axis Solution = 1 Z Axis Solution = 2 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 1 Z Axis Bifurcation = 2 #Set coloring method: # -7 --- BRANCH # -6 --- STABILITY # -5 --- POINT # -4 --- CURVE # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. # For the solution diagram: Coloring Method Solution = -2 # For the bifurcation diagram: Coloring Method Bifurcation = -2 # Initialize the default graph style: # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 1 #Set the window width and height: Window Width = 1000 Window Height = 600 # Initialize the default options: Draw Reference Plane = No Draw Reference Sphere = No Highlight Orbit = No Orbit Animation = No Normalize Data = Yes Draw Background = No Draw Labels = Yes Show Label Numbers = No Draw Legend = No # Labeled solutions: # -3 = Show all labeled solutions # -2 = Show HALF labeled solutions # -1 = Show SPEC labeled solutions # 0 = Show NONE of the solutions # Otherwise, show the specified solution(s) Labels = -3 # Colors are represented by RGB values from 0 to 1.0. # Background color: Background Color = 0., 0., 0. # Background transparency ([0.0, 1.0]): Background Transparency = 0.9 # Color of the animation object: Object Color = 1.0, 1.0, 1.0 ############################### # Secondary settings ############################### # Set the radius of the animation object: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Object Radius = 1.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # Unstable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Surface color: Surface Color = 0.0, 1.0, 0.0 # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and highlighting the solutions # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP ALG = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Draw Scale: Draw Scale = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahead # 4 --- always at origin Coordinate Type = 3 # Set the radius of the spheres used for labels: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Label Sphere Radius = 1.0 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 1.0 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Set the maximum and minimum animation speed: Object Animation Speed = 50 Object Max Animation Speed = 100 Object Min Animation Speed = 0 # Set the maximum and minimum highlighting animation speed: Orbit Animation Speed = 50 Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 # Disk Rotation Disk Rotation = 1.000000, 0.000000, 0.000000, 1.570796 # Disk Position Disk Position = 0.000000, 0.000000, 0.000000 # Disk Radius Disk Radius = 1.000000 # Disk Height Disk Height = 0.001000 # Disk Transparency [0, 1] Disk Transparency = 0.7 # Read Disk From File Disk From File = No # Sphere Position Sphere Position = 0.000000, 0.000000, 0.000000 # Sphere Radius Sphere Radius = 1.000000 # Sphere Transparency [0, 1] Sphere Transparency = 0.7 # Read Sphere From File Sphere From File = No # Set the active AUTO parameter indices: parameter ID = 10 # Set the number of periods animated. # The value should be the power of 2. Number of Period Animated = 1 auto-07p-0.9.1+dfsg/07p/demos/ext/000077500000000000000000000000001206161447600163405ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/ext/c.ext000066400000000000000000000005401206161447600173030ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 0, ILP = 0 ICP = [1] NTST= 8, NCOL= 2, IAD = 0, ISP = 2, ISW = 1, IPLT= 0, NBC= 2, NINT= 0 NMX= 500, NPR= 500, MXBF= 3, IID = 2, ITMX= 10, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.1, DSMIN=0.0001, DSMAX= 0.2, IADS= 1 NPAR = 1, THL = {}, THU = {} UZSTOP = {1: 6.0} auto-07p-0.9.1+dfsg/07p/demos/ext/c.ext.1000066400000000000000000000005401206161447600174420ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 0, ILP = 0 ICP = [1] NTST= 8, NCOL= 2, IAD = 0, ISP = 2, ISW = 1, IPLT= 0, NBC= 2, NINT= 0 NMX= 500, NPR= 500, MXBF= 3, IID = 2, ITMX= 10, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.1, DSMIN=0.0001, DSMAX= 0.2, IADS= 1 NPAR = 1, THL = {}, THU = {} UZSTOP = {1: 6.0} auto-07p-0.9.1+dfsg/07p/demos/ext/c.ext.2000066400000000000000000000005301206161447600174420ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 4, ILP = 0 ICP = [1] NTST= 8, NCOL= 3, IAD = 0, ISP = 2, ISW =-1, IPLT= 0, NBC= 2, NINT= 0 NMX= 500, NPR= 500, MXBF= 3, IID = 2, ITMX= 10, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.1, DSMIN=0.0001, DSMAX= 0.2, IADS= 1 NPAR = 1, THL = {}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/ext/clean.auto000066400000000000000000000001451206161447600203140ustar00rootroot00000000000000 #============== # AUTO Demo ext #============== print "\n***Clean the directory***" dl('ext') cl() auto-07p-0.9.1+dfsg/07p/demos/ext/ext.auto000066400000000000000000000005361206161447600200360ustar00rootroot00000000000000 #============== # AUTO Demo ext #============== pgm = "ext" print "\nDemo %s is started"%pgm print "\n%s : first run : detect bifurcations from the trivial solution"%pgm r1 = run(e=pgm,c=pgm) print "\n%s : second run : compute a bifurcating branch"%pgm r2 = run(r1("BP3"),ISW=-1,NCOL=3) save(r1+r2,pgm) print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/ext/ext.f90000066400000000000000000000032301206161447600174560ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! ext : Spurious solutions to a boundary value problem !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION P,S,PI,Q P= U(1) + U(1)**2 + U(1)**3 S=SIN(P) PI=4*ATAN(1.d0) Q=(PAR(1)*PI)**2 F(1)=U(2) F(2)=-Q*S END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T PAR(1)=0.d0 U(1)=0.d0 U(2)=0.d0 END SUBROUTINE STPNT SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) ! ---------- ---- 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,*) FB(1)=U0(1) FB(2)=U1(1) END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/ezp/000077500000000000000000000000001206161447600163365ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/ezp/c.ezp000066400000000000000000000005651206161447600173060ustar00rootroot00000000000000NDIM= 4, IPS = 4, IRS = 0, ILP = 0 ICP = [1] NTST= 5, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 4, NINT= 0 NMX= 50, NPR= 50, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.1, DSMIN= 0.001, DSMAX= 1.0, IADS= 1 NPAR = 1, THL = {}, THU = {} UZR = {1: [2.0, 5.0]} UZSTOP = {1: 6.0} auto-07p-0.9.1+dfsg/07p/demos/ezp/c.ezp.1000066400000000000000000000005651206161447600174450ustar00rootroot00000000000000NDIM= 4, IPS = 4, IRS = 0, ILP = 0 ICP = [1] NTST= 5, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 4, NINT= 0 NMX= 50, NPR= 50, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.1, DSMIN= 0.001, DSMAX= 1.0, IADS= 1 NPAR = 1, THL = {}, THU = {} UZR = {1: [2.0, 5.0]} UZSTOP = {1: 6.0} auto-07p-0.9.1+dfsg/07p/demos/ezp/c.ezp.2000066400000000000000000000005651206161447600174460ustar00rootroot00000000000000NDIM= 4, IPS = 4, IRS = 3, ILP = 0 ICP = [1] NTST= 5, NCOL= 4, IAD = 3, ISP = 2, ISW =-1, IPLT= 0, NBC= 4, NINT= 0 NMX= 50, NPR= 50, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.1, DSMIN= 0.001, DSMAX= 1.0, IADS= 1 NPAR = 1, THL = {}, THU = {} UZR = {1: [2.0, 5.0]} UZSTOP = {1: 6.0} auto-07p-0.9.1+dfsg/07p/demos/ezp/c.ezp.3000066400000000000000000000005651206161447600174470ustar00rootroot00000000000000NDIM= 4, IPS = 4, IRS = 3, ILP = 0 ICP = [1] NTST= 5, NCOL= 4, IAD = 3, ISP = 2, ISW =-1, IPLT= 0, NBC= 4, NINT= 0 NMX= 50, NPR= 50, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = -0.1, DSMIN= 0.001, DSMAX= 1.0, IADS= 1 NPAR = 1, THL = {}, THU = {} UZR = {1: [2.0, 5.0]} UZSTOP = {1: 6.0} auto-07p-0.9.1+dfsg/07p/demos/ezp/clean.auto000066400000000000000000000001451206161447600203120ustar00rootroot00000000000000 #============== # AUTO Demo ezp #============== print "\n***Clean the directory***" dl('ezp') cl() auto-07p-0.9.1+dfsg/07p/demos/ezp/ezp.auto000066400000000000000000000005611206161447600200300ustar00rootroot00000000000000 #============== # AUTO Demo ezp #============== print "\n***Compute a solution family***" ezp=run(e='ezp',c='ezp') print "\n***Compute one leg of the bifurcating family***" ezp=ezp+run(ezp('BP1'),ISW=-1) print "\n***Compute the other leg of the bifurcating family***" ezp=ezp+run(ezp('BP1'),ISW=-1,DS='-') save(ezp,'ezp') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/ezp/ezp.f90000066400000000000000000000033661206161447600174640ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! ezp : Complex bifurcation in a boundary value problem !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC COMPLEX(KIND(1.0D0)), INTENT(IN) :: U(NDIM) DOUBLE PRECISION, INTENT(IN) :: PAR(*) COMPLEX(KIND(1.0D0)), INTENT(OUT) :: F(NDIM) COMPLEX(KIND(1.0D0)), INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) COMPLEX(KIND(1.0D0)) :: U1, U2, RL, E U1=U(1) U2=U(2) RL=PAR(1) E=CDEXP(U1) F(1)=U2 F(2)=-RL*E END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM COMPLEX(KIND(1.0D0)), INTENT(INOUT) :: U(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: PAR(*) DOUBLE PRECISION, INTENT(IN) :: T U(1)=0 U(2)=0 END SUBROUTINE STPNT SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,F,IJAC,DBC) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), NBC, IJAC DOUBLE PRECISION, INTENT(IN) :: PAR(*) COMPLEX(KIND(1.0D0)), INTENT(IN) :: U0(NDIM), U1(NDIM) COMPLEX(KIND(1.0D0)), INTENT(OUT) :: F(NBC) COMPLEX(KIND(1.0D0)), INTENT(INOUT) :: DBC(NBC,*) F(1)=U0(1) F(2)=U1(1) END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/ezp/plaut04.rc000066400000000000000000000070001206161447600201520ustar00rootroot00000000000000#version 0.0 # Line colors are represented by RGB values from 0 to 1.0. # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and highlighting the solutions # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Initialize the default options: Highlight Orbit = No Orbit Animation = No Normalize Data = Yes Draw Background = No Draw Labels = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahead Coordinate Type = 3 # Draw Scale: Draw Scale = Yes # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 1 # Initialize the default graph style # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 1 #Set the window width and height: Window Width = 1000 Window Height = 600 # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 0 Y Axis Solution = 1 Z Axis Solution = 2 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 1 Z Axis Bifurcation = 2 #Labeled solutions: #-3 = Show all labeled solutions #-2 = Show HALF labeled solutions #-1 = Show SPEC labeled solutions #0 = Show NONE of the solutions #Otherwise, show the specified solution(s) Labels = -3 #Set coloring method: # -6 --- STABILITY # -5 --- POINT # -4 --- BRANCH # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. Coloring Method = -2 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 1.0 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Background color: Background Color = 0., 0., 0. # Background transparency: Background Transparency = 0.9 # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # UnStable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 # Color of the animation object: Object Color = 1.0, 1.0, 1.0 # Set the radius of the animation object: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Object Radius = 1.0 # Set the maximum and minimum animation speed: Object Max Animation Speed = 100 Object Min Animation Speed = 0 # Set the maximum and minimum highlighting animation speed: Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 # Set the active AUTO parameter indices: parameter ID = 10 # Choose 3D or 2D graph: 3D = No # Set the number of periods animated. # The value should be the power of 2. Number of Period Animated = 1 auto-07p-0.9.1+dfsg/07p/demos/ffn/000077500000000000000000000000001206161447600163115ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/ffn/autorc000077500000000000000000000141741206161447600175430ustar00rootroot00000000000000# Example file for autorc: you need to uncomment settings for them # to take effect! [AUTO_plotter] # Variable name to use instead of 't' for solutions. solution_indepvarname = "time" # A dictionary mapping names to axis labels. labelnames = {"a": "$a$", "b": "$b$", "c": "$c$", "beta": "$\beta$", "x": "$x$", "y": "$y$", "z": "$z$"} # The type of the plot, either "solution" or "bifurcation" #type = "bifurcation" # or "solution" # The column to plot along the X-axis for bifurcation diagrams. #bifurcation_x = [0] # The column to plot along the Y-axis for bifurcation diagrams. #bifurcation_y = [1] # The column to plot along the Z-axis for bifurcation diagrams. #bifurcation_z = None # The column to plot along the X-axis for solutions. #solution_x = [0,3,6,9] # The column to plot along the Y-axis for solutions. #solution_y = [1,4,7,10] # The column to plot along the Z-axis for solutions. #solution_z = [2,5,8,11] # A list of colors to use for multiple plots. #color_list = "black red green blue" # color_list index: 'branch' (BR), 'type' (TY), or 'curve' (seq.). #coloring_method = "curve" # or "branch" or "type" # Turn on or off the grid. #grid = False # Turn on or off stability information using dashed curves #stability = False # Whether or not to display label numbers in the graph. #use_labels = True # Whether or not to display bifurcation symbols in the graph. #use_symbols = False # Whether to use letters (True) or symbols (False) for special points. #letter_symbols = True # Default d0, d1, d2, etc. setting to use with PyPLAUT (@pp). #default_option="d1" #d1 = {"grid": False, "use_labels": True, "use_symbols": True, "stability":True} # similarly you can redefine d0, d2, d3, d4. # The label for the top title. #top_title = '' # The font size for the top title. #top_title_fontsize = 12 # The font size for the x-axis label. #xlabel_fontsize = 12 # The font size for the y-axis label. #ylabel_fontsize = 12 # The font size for the z-axis label. #zlabel_fontsize = 12 # Azimuth of the axes in 3D plots. #azimuth = -60 # for 3D plots, in degrees # Elevation of the axes in 3D plots. #elevation = 30 # for 3D plots, in degrees # The lower bound for the x-axis of the plot. #minx = 0 # The upper bound for the x-axis of the plot. #maxx = 0 # The lower bound for the y-axis of the plot. #miny = 0 # The upper bound for the y-axis of the plot. #maxy = 0 # The lower bound for the z-axis of the plot. #minz = 0 # The upper bound for the z-axis of the plot. #maxz = 0 # The label for the x-axis. #xlabel = '' # The label for the y-axis. #ylabel = '' # The label for the z-axis. #zlabel = '' # Width to use for lines and curves. #line_width = 2.0 # List of dash, no-dash lengths for dashed lines. #dashes = (6.0,6.0) # The background color of the plot. #background = "white" # The foreground color of the plot #foreground = "black" # The color to use for the marker symbols. #symbol_color = "red" # The font to use for marker symbols. #symbol_font = "-misc-fixed-*-*-*-*-*-*-*-*-*-*-*-*" # Turn on or off the axis, tick marks, etc. #decorations = True # Whether to use a smart but slower label placement algorithm. #smart_label = True # Width of the graph. #width = 600 # Height of the graph. #height = 480 # The margin between the graph and the left edge. #left_margin = 80 # The margin between the graph and the left edge. #right_margin = 40 # The margin between the graph and the top edge. #top_margin = 40 # The margin between the graph and the bottom edge. #bottom_margin = 40 # The number of ticks on the x-axis. #xticks = 5 # The number of ticks on the y-axis. #yticks = 5 # The number of ticks on the z-axis. #zticks = 5 # A string which defines the format of the tick labels. #tick_label_template = "%.2e" # The length of the tick marks. #tick_length = 0.2 # The length of the odd tick marks. #odd_tick_length = 0.4 # The length of the even tick marks. #even_tick_length = 0.2 # The PostScript output mode: 'color', 'gray' or 'monochrome'. #ps_colormode = "color" # The t value to marker with a small ball. #mark_t = None #or a real value between 0 and 1 # A set of bifurcation columns the user is likely to use. #bifurcation_column_defaults = None # A set of solution columns the user is likely to use. #solution_column_defaults = [[0,3,6,9],[1,4,7,10],[2,5,8,11],['t','t','t','t']] # An array of labels to plot, or 'all' for all labels. #label = [1,2,3] # or "all" # A set of labels that the user is likely to use. #label_defaults = None # The index/indices of the solution we wish to draw #index = [0] # The filename of the bifurcation diagram to plot. #bifurcation_diagram_filename = 'fort.7' # The filename of the solution to plot. #solution_filename = 'fort.8' # The symbol to use for bifurcation points. # Here 8 denotes the size of the square #bifurcation_symbol = "square8" # The symbol to use for limit points. #limit_point_symbol = None # The symbol to use for Hopf bifurcation points. #hopf_symbol = "fillsquare" # The symbol to use for period doubling bifurcation points. #period_doubling_symbol = "doubletriangle" # The symbol to use for torus bifurcation points. #torus_symbol = "filldiamond" # The symbol to use for user defined output points. #user_point_symbol = "U" # The symbol to use for error points. #error_symbol = None # The symbol to use for Cusp points. #cusp_symbol = None # The symbol to use for Bogdanov-Takens points. #bogdanov_takens_symbol = "circle" # The symbol to use for Generalized Hopf points. #generalized_hopf_symbol = "triangle" # The symbol to use for zero-Hopf points. #zero_hopf_symbol = "doubletriangle" # The symbol to use for fold-flip points. #fold_flip_symbol = "doubletriangle" # The symbol to use for fold-torus points. #fold_torus_symbol = "doubletriangle" # The symbol to use for flip-torus points. #flip_torus_symbol = "doubletriangle" # The symbol to use for torus-torus points. #torus_torus_symbol = "doubletriangle" # The symbol to use for 1:1 resonance points. #1_1_resonance_symbol = "filldiamond" # The symbol to use for 1:2 resonance points. #1_2_resonance_symbol = "filldiamond" # The symbol to use for 1:3 resonance points. #1_3_resonance_symbol = "filldiamond" # The symbol to use for 1:4 resonance points. #1_4_resonance_symbol = "filldiamond" auto-07p-0.9.1+dfsg/07p/demos/ffn/c.ffn.1000077500000000000000000000007261206161447600173750ustar00rootroot00000000000000parnames = {1: 'a', 2: 'b', 3: 'c', 4: 'amp', 5: 'beta'} unames = {1: 'x', 2: 'y', 3: 'sn', 4: 'cs'} NDIM= 4, IPS = 2, IRS = 0, ILP = 1 ICP = ['amp', 'PERIOD'] NTST= 20, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 9, NBC= 0, NINT= 0 NMX= 20, NPR= 0, MXBF= 5, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-06 DS = 0.01, DSMIN= 0.001, DSMAX= 1.0, IADS= 1 NPAR = 11, THL = {}, THU = {} UZSTOP = {'amp': 0.1} auto-07p-0.9.1+dfsg/07p/demos/ffn/c.ffn.2000077500000000000000000000007641206161447600174000ustar00rootroot00000000000000parnames = {1: 'a', 2: 'b', 3: 'c', 4: 'amp', 5: 'beta'} unames = {1: 'x', 2: 'y', 3: 'sn', 4: 'cs'} NDIM= 4, IPS = 2, IRS = 2, ILP = 1 ICP = ['a', 'PERIOD'] NTST= 25, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 9, NBC= 0, NINT= 0 NMX= 100, NPR= 0, MXBF= 5, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.03, DSMIN= 0.001, DSMAX= 0.03, IADS= 1 NPAR = 11, THL = {}, THU = {} UZR = {'a': [0.25, 0.5]} UZSTOP = {'a': 1.0} LAB = 1 auto-07p-0.9.1+dfsg/07p/demos/ffn/c.ffn.3000077500000000000000000000007371206161447600174010ustar00rootroot00000000000000parnames = {1: 'a', 2: 'b', 3: 'c', 4: 'amp', 5: 'beta'} unames = {1: 'x', 2: 'y', 3: 'sn', 4: 'cs'} NDIM= 4, IPS = 2, IRS = 1, ILP = 1 ICP = ['amp', 'PERIOD'] NTST= 25, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 9, NBC= 0, NINT= 0 NMX= 100, NPR= 10, MXBF= 5, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.05, DSMIN= 0.001, DSMAX= 0.5, IADS= 1 NPAR = 11, THL = {}, THU = {} UZSTOP = {'amp': 10.0} LAB = 1 auto-07p-0.9.1+dfsg/07p/demos/ffn/clean.auto000066400000000000000000000001631206161447600202650ustar00rootroot00000000000000 #============== # AUTO Demo ffn #============== print "\n***Clean the directory***" dl('1') dl('2') dl('3') cl() auto-07p-0.9.1+dfsg/07p/demos/ffn/ffn.auto000077500000000000000000000014021206161447600177540ustar00rootroot00000000000000 #============== # AUTO Demo ffn: Periodically forced FitzHugh-Nagumo equations #============== print "\n***Periodically forced FitzHugh-Nagumo equations***" print " " print "\n***Homotopy in the coupling constant ***" r1 = run(e='ffn', c='ffn.1') save('1') print "\n***Continue with varying FHN parameter 'a'***" r2 = run(r1('UZ1'), ICP=['a','PERIOD'], NTST=25, EPSS=1e-5, DS=0.03, DSMAX=0.03, UZR={'a': [0.25, 0.5]}, UZSTOP={'a': 1.0}, LAB=1, NMX=100) print "\n***Save the solution files***" save('2') print "\n***Increase the coupling constant ***" r3 = run(r1(1), NTST=25, EPSS=1e-5, DS=0.05, DSMAX=0.5, UZSTOP={'amp': 10.0}, LAB=1, NMX=100, NPR=10) print "\n***Save the solution files***" save('3') print "\n***Clean the directory***" clean() auto-07p-0.9.1+dfsg/07p/demos/ffn/ffn.f90000077500000000000000000000041111206161447600174020ustar00rootroot00000000000000!------------------------------------------------------------------------------ !------------------------------------------------------------------------------ ! frc : A periodically forced system !------------------------------------------------------------------------------ !------------------------------------------------------------------------------ SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION a,b,c,amp,beta,x,y,sn,cs,ss ! FHN parameters a = PAR(1) b = PAR(2) c = PAR(3) ! Forcing parameters amp = PAR(4) beta= PAR(5) ! FHN variables x=U(1) y=U(2) ! Forcing variables sn=U(3) cs=U(4) ss = sn**2 + cs**2 ! FHN equations F(1)= c * ( x - x**3/3 + y - amp*cs ) F(2)=-( x - a + b*y ) / c ! Oscillator F(3) = sn + beta*cs - sn*ss F(4) = -beta*sn + cs - cs*ss END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,t) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: t DOUBLE PRECISION a,b,c,amp,beta,TPI ! FHN parameters a = 0. b = 0.8 c = 3. PAR(1)=a PAR(2)=b PAR(3)=c ! Forcing parameters amp=0. beta=10 PAR(4)=amp PAR(5)=beta TPI=8*ATAN(1.d0) PAR(11)=TPI/beta ! Initial FHB stationary solution (assuming a=0) U(1)= 0. U(2)= 0. ! Initialize the oscillator U(3)=SIN(TPI*t) U(4)=COS(TPI*t) END SUBROUTINE STPNT SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/ffn/plaut04.rc000077500000000000000000000070001206161447600201300ustar00rootroot00000000000000#version 0.0 # Line colors are represented by RGB values from 0 to 1.0. # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and highlighting the solutions # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Initialize the default options: Highlight Orbit = No Orbit Animation = No Normalize Data = Yes Draw Background = No Draw Labels = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahead Coordinate Type = 3 # Draw Scale: Draw Scale = Yes # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 1 # Initialize the default graph style # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 1 #Set the window width and height: Window Width = 1000 Window Height = 600 # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 0 Y Axis Solution = 1 Z Axis Solution = 2 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 2 Z Axis Bifurcation = 3 #Labeled solutions: #-3 = Show all labeled solutions #-2 = Show HALF labeled solutions #-1 = Show SPEC labeled solutions #0 = Show NONE of the solutions #Otherwise, show the specified solution(s) Labels = -3 #Set coloring method: # -6 --- STABILITY # -5 --- POINT # -4 --- BRANCH # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. Coloring Method = -6 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 1.0 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Background color: Background Color = 0., 0., 0. # Background transparency: Background Transparency = 0.9 # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # UnStable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 # Color of the animation object: Object Color = 1.0, 1.0, 1.0 # Set the radius of the animation object: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Object Radius = 1.0 # Set the maximum and minimum animation speed: Object Max Animation Speed = 100 Object Min Animation Speed = 0 # Set the maximum and minimum highlighting animation speed: Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 # Set the active AUTO parameter indices: parameter ID = 10 # Choose 3D or 2D graph: 3D = No # Set the number of periods animated. # The value should be the power of 2. Number of Period Animated = 1 auto-07p-0.9.1+dfsg/07p/demos/fhh/000077500000000000000000000000001206161447600163055ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/fhh/c.fhn000066400000000000000000000005451206161447600172300ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 0, ILP = 0 ICP = [11, 17] NTST= 35, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 50, NPR= 10, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.1, DSMIN= 0.001, DSMAX= 2.0, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {17: 0.0} auto-07p-0.9.1+dfsg/07p/demos/fhh/c.fhn.1000066400000000000000000000005601206161447600173640ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 0, ILP = 0 ICP = [11, 17] NTST= 35, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 50, NPR= 10, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.1, DSMIN= 0.001, DSMAX= 2.0, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {17: 0.0} ISTART = 3 auto-07p-0.9.1+dfsg/07p/demos/fhh/c.fhn.10000066400000000000000000000005671206161447600174530ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 16, ILP = 0 ICP = [3, 1, 2] NTST= 35, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 50, NPR= 20, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -0.01, DSMIN=0.0001, DSMAX= 0.02, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {} ITWIST = 0 IFIXED = [2] auto-07p-0.9.1+dfsg/07p/demos/fhh/c.fhn.11000066400000000000000000000005671206161447600174540ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 37, ILP = 0 ICP = [3, 1, 2] NTST= 35, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 75, NPR= 20, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.01, DSMIN=0.0001, DSMAX= 0.02, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {} ITWIST = 0 IFIXED = [2] auto-07p-0.9.1+dfsg/07p/demos/fhh/c.fhn.2000066400000000000000000000005731206161447600173710ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 4, ILP = 0 ICP = [11, 2] NTST= 35, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 50, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.2, DSMIN= 0.001, DSMAX= 5.0, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {11: [300.0, 1000.0]} ISTART = 3 auto-07p-0.9.1+dfsg/07p/demos/fhh/c.fhn.3000066400000000000000000000005731206161447600173720ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 11, ILP = 0 ICP = [11, 2] NTST= 35, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 50, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 1.0, DSMIN= 0.001, DSMAX= 10.0, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {11: [300.0, 1000.0]} ISTART = 0 auto-07p-0.9.1+dfsg/07p/demos/fhh/c.fhn.4000066400000000000000000000006311206161447600173660ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 14, ILP = 1 ICP = [2, 1, 22] NTST= 50, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 200, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -0.01, DSMIN=0.0001, DSMAX= 0.01, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {22: 0.0, 2: [0.0, -0.01, 0.02, 0.05, 0.1, 0.2]} IPSI = [2] auto-07p-0.9.1+dfsg/07p/demos/fhh/c.fhn.5000066400000000000000000000006311206161447600173670ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 16, ILP = 0 ICP = [2, 1, 22] NTST= 50, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 200, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.01, DSMIN=0.0001, DSMAX= 0.01, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {22: 0.0, 2: [0.0, -0.01, 0.02, 0.05, 0.1, 0.2]} IPSI = [2] auto-07p-0.9.1+dfsg/07p/demos/fhh/c.fhn.6000066400000000000000000000005621206161447600173730ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 14, ILP = 0 ICP = [11, 1] NTST= 35, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 2, NPR= 2, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.01, DSMIN=0.0001, DSMAX= 0.01, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {} ITWIST = 1 IPSI = [] auto-07p-0.9.1+dfsg/07p/demos/fhh/c.fhn.7000066400000000000000000000006401206161447600173710ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 16, ILP = 0 ICP = [2, 1, 33] NTST= 35, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 20, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.15, DSMIN=0.0001, DSMAX= 0.15, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {22: 0.0, 29: 0.0, 30: 0.0, 33: 0.0} ITWIST = 1 IPSI = [2,9,10,13] auto-07p-0.9.1+dfsg/07p/demos/fhh/c.fhn.8000066400000000000000000000006711206161447600173760ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 18, ILP = 0 ICP = [3, 1, 2, 22] NTST= 35, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 10, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.02, DSMIN=0.0001, DSMAX= 0.1, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {29: 0.0, 30: 0.0, 33: 0.0} UZSTOP = {22: 0.0} ITWIST = 1 IFIXED = [13] IPSI = [2,9,10] auto-07p-0.9.1+dfsg/07p/demos/fhh/c.fhn.9000066400000000000000000000006451206161447600174000ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 23, ILP = 0 ICP = [3, 1, 2, 22] NTST= 40, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 10, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-08, EPSU = 1e-08, EPSS = 1e-06 DS = -0.02, DSMIN=0.0001, DSMAX= 0.1, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {22: 0.0, 29: 0.0, 30: 0.0} ITWIST = 1 IFIXED = [13] IPSI = [2,9,10] auto-07p-0.9.1+dfsg/07p/demos/fhh/clean.auto000066400000000000000000000002331206161447600202570ustar00rootroot00000000000000#============== # AUTO Demo mtn #============== print "\n***Clean the directory***" dl("1") dl("2") dl("3") dl("4") dl("5") dl("6") dl("7") dl("8") cl() auto-07p-0.9.1+dfsg/07p/demos/fhh/fhn.auto000066400000000000000000000021221206161447600177470ustar00rootroot00000000000000#========= # Demo fhn #========= pgm = 'fhn' print pgm, ": first run : homotopy in PAR(11) and PAR(17)" r1=run('fhn',c='fhn.1',sv='1') print pgm, ": second run : homotopy in PAR(11) and PAR(2)" r2=run(r1('UZ1'),c='fhn.2',sv='2') print pgm, ": third run : continue homoclinic orbit in PAR(11)" r3=run(r2('UZ1'),c='fhn.3',sv='3') print pgm, ": fourth run : continue in PAR(2) and PAR(1) " r4=run(r3('UZ1'),c='fhn.4',sv='4') print pgm, ": fifth run : continue in reverse direction" r4=r4+run(r4('UZ1'),c='fhn.5',ap='4') print pgm, ": sixth run : add adjoint" r5=run(r3('UZ1'),c='fhn.6',sv='5') print pgm, ": seventh run : compute inclination flip" r6=run(r5,c='fhn.7',sv='6') print pgm, ": eighth run : continue inclination flip in PAR(3), PAR(1), PAR(2)" r7=run(r6('UZ1'),c='fhn.8',sv='7') print pgm, ": ninth run : continue in reverse direction" r7=r7+run(r7()[0],c='fhn.9',ap='7') print pgm, ": tenth run : continue Belyakov point in PAR(3), PAR(1) and PAR(2)" r8=run(r4('UZ1'),c='fhn.10',sv='8') print pgm, ": eleventh run : continue in reverse direction" r8=r8+run(r8()[0],c='fhn.11',ap='8') auto-07p-0.9.1+dfsg/07p/demos/fhh/fhn.f90000066400000000000000000000054421206161447600174050ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! fhn : Homoclinic bifurcations in Fitz-Hugh Nagumo System !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) F(1)= U(2) F(2)= PAR(1)*U(2)+U(1)*(U(1)-PAR(2))*(U(1)-1)+U(3) F(3)= PAR(3)*U(1)/PAR(1) IF(IJAC.EQ.0)RETURN DFDU(1,1)= 0 DFDU(1,2)= 1 DFDU(1,3)= 0 DFDU(2,1)= 3*U(1)*U(1)-2*(1+PAR(2))*U(1)+PAR(2) DFDU(2,2)= PAR(1) DFDU(2,3)= 1 DFDU(3,1)= PAR(3)/PAR(1) DFDU(3,2)= 0 DFDU(3,3)= 0 IF(IJAC.EQ.1)RETURN DFDP(1,1)= 0 DFDP(1,2)= 0 DFDP(1,3)= 0 DFDP(2,1)= U(2) DFDP(2,2)= -U(1)*(U(1)-1) DFDP(2,3)= 0 DFDP(3,1)= -PAR(3)*U(1)/PAR(1)**2 DFDP(3,2)= 0 DFDP(3,3)= U(1)/PAR(1) END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------------- ! Sets parameter values for homoclinic bifurcation analysis (IPS=9). IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T ! ! COMMON block needed if IPS=9 (homoclinic bifurcations) : INTEGER ITWIST,ISTART,IEQUIB,NFIXED,NPSI,NUNSTAB,NSTAB,NREV COMMON /BLHOM/ ITWIST,ISTART,IEQUIB,NFIXED,NPSI,NUNSTAB,NSTAB,NREV !---------------------------------------------------------------------- ! Problem parameters (only PAR(1-9) are available to the user) : PAR(1) = 0.21 ! c PAR(2) = 0.2 ! a PAR(3) = 0.0025 ! b = epsilon PAR(11)= 0.1 ! truncated time interval !---------------------------------------------------------------------- ! If IEQUIB=1 then put the equilibrium in PAR(11+i), i=1,...,NDIM : IF (IEQUIB.NE.0) THEN PAR(12) = 0.0 PAR(13) = 0.0 PAR(14) = 0.0 ENDIF !---------------------------------------------------------------------- ! Distance along the unstable manifold : IF (ISTART.EQ.3) THEN PAR(12+NDIM*IEQUIB)=0.00001 ENDIF !---------------------------------------------------------------------- END SUBROUTINE STPNT SUBROUTINE PVLS END SUBROUTINE PVLS SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT auto-07p-0.9.1+dfsg/07p/demos/fhn/000077500000000000000000000000001206161447600163135ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/fhn/c.fhn000066400000000000000000000005451206161447600172360ustar00rootroot00000000000000NDIM= 2, IPS = 1, IRS = 0, ILP = 0 ICP = [1] NTST= 20, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 100, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.01, DSMIN= 0.001, DSMAX= 0.05, IADS= 1 NPAR = 3, THL = {11: 0.0}, THU = {} UZSTOP = {1: 1.0} auto-07p-0.9.1+dfsg/07p/demos/fhn/c.fhn.1000077500000000000000000000005451206161447600174000ustar00rootroot00000000000000NDIM= 2, IPS = 1, IRS = 0, ILP = 0 ICP = [1] NTST= 20, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 100, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.01, DSMIN= 0.001, DSMAX= 0.05, IADS= 1 NPAR = 3, THL = {11: 0.0}, THU = {} UZSTOP = {1: 1.0} auto-07p-0.9.1+dfsg/07p/demos/fhn/c.fhn.2000077500000000000000000000005511206161447600173760ustar00rootroot00000000000000NDIM= 2, IPS = 2, IRS = 2, ILP = 0 ICP = [1, 11] NTST= 20, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 500, NPR= 20, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.05, DSMIN= 0.001, DSMAX= 0.2, IADS= 1 NPAR = 3, THL = {11: 0.0}, THU = {} UZSTOP = {1: 0.0} auto-07p-0.9.1+dfsg/07p/demos/fhn/c.fhn.3000077500000000000000000000005611206161447600174000ustar00rootroot00000000000000NDIM= 2, IPS = 1, IRS = 2, ILP = 0 ICP = [1, 3] NTST= 20, NCOL= 4, IAD = 3, ISP = 1, ISW = 2, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.01, DSMIN= 0.005, DSMAX= 0.05, IADS= 1 NPAR = 3, THL = {11: 0.0}, THU = {} UZSTOP = {1: 0.0, 3: 10.0} auto-07p-0.9.1+dfsg/07p/demos/fhn/c.fhn.4000077500000000000000000000005611206161447600174010ustar00rootroot00000000000000NDIM= 2, IPS = 1, IRS = 2, ILP = 0 ICP = [1, 3] NTST= 20, NCOL= 4, IAD = 3, ISP = 1, ISW = 2, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = -0.01, DSMIN= 0.005, DSMAX= 0.05, IADS= 1 NPAR = 3, THL = {11: 0.0}, THU = {} UZSTOP = {1: 0.0, 3: 10.0} auto-07p-0.9.1+dfsg/07p/demos/fhn/clean.auto000066400000000000000000000001561206161447600202710ustar00rootroot00000000000000 #============== # AUTO Demo fhn #============== print "\n***Clean the directory***" dl('fhn') dl('hb') cl() auto-07p-0.9.1+dfsg/07p/demos/fhn/fhn.auto000077500000000000000000000010511206161447600177600ustar00rootroot00000000000000 #============== # AUTO Demo fhn: The FitzHugh-Nagumo Equations #============== print "\n***Stationary solutions***" r1 = run(e='fhn',c='fhn.1') print "\n***Periodic solutions***" r2 = run(r1("HB"),c='fhn.2') save(r1+r2,'fhn') print "\n***Continue Hopf bifurcations in 2 parameters***" r3 = run(r1("HB"),c='fhn.3') print "\n***Continue Hopf bifurcations in 2 parameters***" r4 = run(r1("HB"),c='fhn.4') hb = r3 + r4 print "\n***Relabel and save the Hopf bifurcations files***" hb = rl(hb) save(hb, 'hb') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/fhn/fhn.f90000077500000000000000000000035601206161447600174150ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! fhn : The FitzHugh - Nagumo Equation !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION a,b,c,x,y a=PAR(1) b=PAR(2) c=PAR(3) x=U(1) y=U(2) F(1)= c * ( x - x**3/3 + y ) F(2)=-( x - a + b*y ) / c END SUBROUTINE FUNC !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T ! ! Initialize the equation parameters PAR(1)=0. PAR(2)=0.8 PAR(3)=3.0 ! Initialize the solution (assuming PAR(1)=0 ) U(1)=0. U(2)=0. END SUBROUTINE STPNT !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS !---------------------------------------------------------------------- !---------------------------------------------------------------------- auto-07p-0.9.1+dfsg/07p/demos/fhn/plaut04.rc000077500000000000000000000070001206161447600201320ustar00rootroot00000000000000#version 0.0 # Line colors are represented by RGB values from 0 to 1.0. # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and highlighting the solutions # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Initialize the default options: Highlight Orbit = No Orbit Animation = No Normalize Data = Yes Draw Background = No Draw Labels = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahead Coordinate Type = 3 # Draw Scale: Draw Scale = Yes # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 1 # Initialize the default graph style # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 1 #Set the window width and height: Window Width = 1000 Window Height = 600 # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 0 Y Axis Solution = 1 Z Axis Solution = 2 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 2 Z Axis Bifurcation = 3 #Labeled solutions: #-3 = Show all labeled solutions #-2 = Show HALF labeled solutions #-1 = Show SPEC labeled solutions #0 = Show NONE of the solutions #Otherwise, show the specified solution(s) Labels = -3 #Set coloring method: # -6 --- STABILITY # -5 --- POINT # -4 --- BRANCH # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. Coloring Method = -6 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 1.0 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Background color: Background Color = 0., 0., 0. # Background transparency: Background Transparency = 0.9 # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # UnStable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 # Color of the animation object: Object Color = 1.0, 1.0, 1.0 # Set the radius of the animation object: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Object Radius = 1.0 # Set the maximum and minimum animation speed: Object Max Animation Speed = 100 Object Min Animation Speed = 0 # Set the maximum and minimum highlighting animation speed: Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 # Set the active AUTO parameter indices: parameter ID = 10 # Choose 3D or 2D graph: 3D = No # Set the number of periods animated. # The value should be the power of 2. Number of Period Animated = 1 auto-07p-0.9.1+dfsg/07p/demos/fnb/000077500000000000000000000000001206161447600163055ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/fnb/c.fhn000066400000000000000000000005741206161447600172320ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 0, ILP = 0 ICP = [11, 17] NTST= 25, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 50, NPR= 10, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.1, DSMIN= 0.001, DSMAX= 2.0, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {17: 0.0} ITWIST = 0, ISTART = 3 auto-07p-0.9.1+dfsg/07p/demos/fnb/c.fhn.1000066400000000000000000000005741206161447600173710ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 0, ILP = 0 ICP = [11, 17] NTST= 25, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 50, NPR= 10, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.1, DSMIN= 0.001, DSMAX= 2.0, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {17: 0.0} ITWIST = 0, ISTART = 3 auto-07p-0.9.1+dfsg/07p/demos/fnb/c.fhn.2000066400000000000000000000006071206161447600173670ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 4, ILP = 0 ICP = [11, 2] NTST= 25, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 50, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.2, DSMIN= 0.001, DSMAX= 5.0, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {11: [300.0, 1000.0]} ITWIST = 0, ISTART = 3 auto-07p-0.9.1+dfsg/07p/demos/fnb/c.fhn.3000066400000000000000000000006071206161447600173700ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 11, ILP = 0 ICP = [11, 2] NTST= 25, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 50, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 1.0, DSMIN= 0.001, DSMAX= 10.0, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {11: [300.0, 1000.0]} ITWIST = 0, ISTART = 0 auto-07p-0.9.1+dfsg/07p/demos/fnb/c.fhn.4000066400000000000000000000006601206161447600173700ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 14, ILP = 1 ICP = [2, 1, 22] NTST= 50, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 200, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -0.01, DSMIN=0.0001, DSMAX= 0.01, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {22: 0.0, 2: [0.0, -0.01, 0.02, 0.05, 0.1, 0.2]} ITWIST = 0, ISTART = 0 IPSI = [2] auto-07p-0.9.1+dfsg/07p/demos/fnb/c.fhn.5000066400000000000000000000006141206161447600173700ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 20, ILP = 0 ICP = [9, 3] NTST= 60, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 2, NPR= 20, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -1.0, DSMIN=0.0001, DSMAX= 15.0, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {22: [-0.1, 0.1]} ITWIST = 1, ISTART = 0 IPSI = [] auto-07p-0.9.1+dfsg/07p/demos/fnb/c.fhn.6000066400000000000000000000005761206161447600174000ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 29, ILP = 0 ICP = [21, 1, 22] NTST= 80, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 1000, NPR= 200, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-08, EPSU = 1e-08, EPSS = 1e-06 DS = -1.3, DSMIN= 1.3, DSMAX= 5.0, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {22: 0.0} ITWIST = 1, ISTART = -2 auto-07p-0.9.1+dfsg/07p/demos/fnb/c.fhn.7000066400000000000000000000006301206161447600173700ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 49, ILP = 1 ICP = [2, 1] NTST= 60, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 20, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -1.0, DSMIN=0.0001, DSMAX= 15.0, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {2: [0.0, -0.01, 0.02, 0.05, 0.1, 0.2]} ITWIST = 0, ISTART = 0 auto-07p-0.9.1+dfsg/07p/demos/fnb/clean.auto000066400000000000000000000002231206161447600202560ustar00rootroot00000000000000#============== # AUTO Demo fnb #============== print "\n***Clean the directory***" dl("1") dl("2") dl("3") dl("4") dl("5") dl("6") dl("7") cl() auto-07p-0.9.1+dfsg/07p/demos/fnb/fhn.auto000066400000000000000000000003611206161447600177520ustar00rootroot00000000000000r1 = run('fhn',sv='1') r2 = run(r1('UZ1'),c='fhn.2',sv='2') r3 = run(r2('UZ1'),c='fhn.3',sv='3') r4 = run(r3('UZ1'),c='fhn.4',sv='4') r5 = run(r4('UZ5'),c='fhn.5',sv='5') r6 = run(r5,c='fhn.6',sv='6') r7 = run(r6('UZ')[-3],c='fhn.7',sv='7') auto-07p-0.9.1+dfsg/07p/demos/fnb/fhn.c000066400000000000000000000070261206161447600172310ustar00rootroot00000000000000#include "auto_f2c.h" extern struct { integer itwist, istart, iequib, nfixed, npsi, nunstab, nstab, nrev; } blhom_1; /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* fhn : Homoclinic bifurcations in Fitz-Hugh Nagumo System */ /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ int func(integer ndim, const doublereal *u, const integer *icp, const doublereal *par, integer ijac, doublereal *f, doublereal *dfdu, doublereal *dfdp) { /* System generated locals */ integer dfdu_dim1 = ndim, dfdp_dim1 = ndim; /* Function Body */ f[0] = u[1]; f[1] = par[0] * u[1] + u[0] * (u[0] - par[1]) * (u[0] - 1.) + u[2]; f[2] = par[2] * u[0] / par[0]; if (ijac == 0) { return 0; } ARRAY2D(dfdu,0,0) = 0.; ARRAY2D(dfdu,0,1) = 1.; ARRAY2D(dfdu,0,2) = 0.; ARRAY2D(dfdu,1,0) = u[0] * 3 * u[0] - (par[1] + 1) * 2 * u[0] + par[1]; ARRAY2D(dfdu,1,1) = par[0]; ARRAY2D(dfdu,1,2) = 1.; ARRAY2D(dfdu,2,0) = par[2] / par[0]; ARRAY2D(dfdu,2,1) = 0.; ARRAY2D(dfdu,2,2) = 0.; if (ijac == 1) { return 0; } ARRAY2D(dfdp,0,0) = 0.; ARRAY2D(dfdp,0,1) = 0.; ARRAY2D(dfdp,0,2) = 0.; ARRAY2D(dfdp,1,0) = u[1]; ARRAY2D(dfdp,1,1) = -u[0] * (u[0] - 1.); ARRAY2D(dfdp,1,2) = 0.; ARRAY2D(dfdp,2,0) = -par[2] * u[0] / (par[0] * par[0]); ARRAY2D(dfdp,2,1) = 0.; ARRAY2D(dfdp,2,2) = u[0] / par[0]; return 0; } /* func */ int stpnt(integer ndim, doublereal t, doublereal *u, doublereal *par) { /* ---------------- */ /* Sets parameter values for homoclinic bifurcation analysis (IPS=9). */ /* COMMON block needed if IPS=9 (homoclinic bifurcations) : */ /* ---------------------------------------------------------------------- */ /* Problem parameters (only PAR(1-9) are available to the user) : */ /* Function Body */ par[0] = .21; /* c */ par[1] = .2; /* a */ par[2] = .0025; /* b = epsilon */ par[10] = .1; /* ---------------------------------------------------------------------- */ /* If IEQUIB=1 then put the equilibrium in PAR(11+i), i=1,...,NDIM : */ /* truncated time interval */ if (blhom_1.iequib != 0) { par[11] = 0.; par[12] = 0.; par[13] = 0.; } /* ---------------------------------------------------------------------- */ /* Distance along the unstable manifold : */ if (blhom_1.istart == 3) { par[ndim * blhom_1.iequib + 11] = 1e-5; } /* ---------------------------------------------------------------------- */ return 0; } /* stpnt */ /* Subroutine */ int pvls(integer ndim, const doublereal *u, doublereal *par) { return 0; } /* pvls */ /* Subroutine */ 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; } /* bcnd */ /* Subroutine */ 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; } /* icnd */ /* Subroutine */ int fopt(integer ndim, const doublereal *u, const integer *icp, const doublereal *par, integer ijac, doublereal *fs, doublereal *dfdu, doublereal *dfdp) { return 0; } /* fopt */ auto-07p-0.9.1+dfsg/07p/demos/fnc/000077500000000000000000000000001206161447600163065ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/fnc/attr/000077500000000000000000000000001206161447600172605ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/fnc/attr/attr.auto000066400000000000000000000014241206161447600211250ustar00rootroot00000000000000 #=================== # AUTO Demo fnc/attr #==================- pgm = "attr" print "\nDemo %s is started"%pgm print '\n%s : first run : Homotopy away from the folded node along the fold curve'%pgm r1 = run(e=pgm,c=pgm) print '\n%s : second run : Homotopy away from the fold curve on the critical manifold'%pgm r2 = run(r1('UZ1'),ICP=['va0','ha0','Ta'],DS='-',NBC=5,UZR={'ha0':-6.0}) print '\n%s : third run: Actual computation of the attracting slow manifold'%pgm start3 = load(r2('UZ1'),ICP=['Ta','va0','sa0','va1','ha1'],STOP=['UZ3'],DS='-', UZR = {'Ta':[56.312667620, 71.853132166, 85.797089436, 98.432124179, 110.04693491, 120.81663908]}) r3 = merge(run(start3) + run(start3,DS='-')) save(r3,pgm) print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/fnc/attr/attr.f90000066400000000000000000000114331206161447600205540ustar00rootroot00000000000000! ---------------------------------------------------------------------- ! ---------------------------------------------------------------------- ! Slow manifolds computation in the self-coupled FitzHugh-Nagumo system ! ---------------------------------------------------------------------- ! C o m p. o f t h e a t t r a c t i n g s l o w m a n i f o l d ! ---------------------------------------------------------------------- ! Homotopy step 1: "away from the folded node along the fold curve" ! followed by ! Homotopy step 2: "away from the fold curve on the critical manifold" ! followed by ! Actual computation of the attracting slow manifold ! ---------------------------------------------------------------------- ! Ref.: Desroches, Krauskopf and Osinga, CHAOS 18, 015107 (2008) ! ---------------------------------------------------------------------- ! ---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION v, h, s, epsilon, gamma, delta, T ! Define the state variables v = U(1) h = U(2) s = U(3) ! Define the system parameters epsilon = PAR(1) gamma = PAR(2) delta = PAR(3) ! Define the integration time as a parameter T = PAR(11) ! Define the right-hand sides F(1) = T * (h - (v**3 - v + 1) / 2 - gamma * s * v) F(2) = T * (-epsilon * (2 * h + 2.6d0 * v)) F(3) = T * (-epsilon * delta * s) END SUBROUTINE FUNC ! ---------------------------------------------------------------------- ! ---------------------------------------------------------------------- SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T ! epsilon gamma delta PAR(1:3) = (/ 0.015d0, 0.5d0, 0.565d0 /) PAR(11) = 0 ! v h s U(1:3) = (/ -0.490d0, 0.61760d0, 0.27970d0 /) PAR(4) = U(1) ! v(0) PAR(5) = U(3) ! s(1) PAR(6) = U(3) ! s(0) PAR(7) = U(2) ! h(0) END SUBROUTINE STPNT ! ---------------------------------------------------------------------- ! ---------------------------------------------------------------------- SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) ! ---------- ---- 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,*) ! Define boundary conditions */ ! Define the critical manifold S as {(v,h,s) ; 2*h-v^3+v-1-v*s=0} ! (we use the fact that gamma is fixed at the value 0.5) FB(1) = 2*U0(2)-U0(1)**3+U0(1)-1-U0(3)*U0(1) FB(2) = U0(1) - PAR(4) ! Initial point is on the intersection between S FB(3) = U0(2) - PAR(7) ! and the plane {h=-6.0} FB(4) = U0(3) - PAR(6) FB(5) = U1(3) - PAR(5) ! End point is in a cross-section containing ! the folded node: Sigma_fn={s=0.27970} IF(NBC==5) RETURN ! FB(1) and FB(6): {(v,h,s) ; s - (1 - 3*v^2=0)} ! together define the folded node F FB(6) = U0(3) - (1 - 3*U0(1)**2) END SUBROUTINE BCND ! ---------------------------------------------------------------------- ! ---------------------------------------------------------------------- SUBROUTINE PVLS(NDIM,U,PAR) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(IN) :: U(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: PAR(*) DOUBLE PRECISION, EXTERNAL :: GETP ! Define external parameter which monitors the v- and the h-coordinate ! of the end point in section Sigma_fn */ PAR(8) = GETP("BV1", 1, U) PAR(9) = GETP("BV1", 2, U) END SUBROUTINE PVLS ! ---------------------------------------------------------------------- ! ---------------------------------------------------------------------- ! ---------------------------------------------------------------------- ! ---------------------------------------------------------------------- SUBROUTINE ICND END SUBROUTINE ICND ! ---------------------------------------------------------------------- ! ---------------------------------------------------------------------- SUBROUTINE FOPT END SUBROUTINE FOPT auto-07p-0.9.1+dfsg/07p/demos/fnc/attr/attrc.auto000066400000000000000000000010611206161447600212650ustar00rootroot00000000000000 #=================== # AUTO Demo fnc/attr #=================== pgm = "attr" print "\nDemo %s is started"%pgm print '\n%s : first run : Homotopy away from the folded node along the fold curve'%pgm r1 = run(e=pgm,c=pgm,sv='1') print '\n%s : second run : Homotopy away from the fold curve on the critical manifold'%pgm r2 = run(c=pgm+'.2',s='1',sv='2') print '\n%s : third run: Actual computation of the attracting slow manifold'%pgm r3 = run(c=pgm+'.3',s='2',sv='3') r4 = run(c=pgm+'.4',s='2',ap='3') merge('3',pgm) print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/fnc/attr/autorc000066400000000000000000000034311206161447600205010ustar00rootroot00000000000000[AUTO_plotter] #default_option="d1" #d1 = {"grid": "no", "use_labels": 1, "use_symbols": 1, "stability": 1} # similarly you can redefine d0, d2, d3, d4. #grid = "no" stability = 0 #use_labels = 1 #use_symbols = 0 top_title = "Lorenz: EtoP connections using Lin's method" #top_title_fontsize = 12 #xlabel = '' #xlabel_fontsize = 12 #ylabel = '' #ylabel_fontsize = 12 #solution_indepvarname = "time" #solution_coordnames = ["$x$","$y$","$z$"] #bifurcation_coordnames = [r"$\rho$", "L2-norm", "max $x$", "max $y$", "max $z$", "$\beta", "$\gamma$"] #line_width = 2.0 #dashes = (6.0,6.0) #background = "white" #foreground = "black" #color_list = "black red green blue" #symbol_color = "red" #symbol_font = "-misc-fixed-*-*-*-*-*-*-*-*-*-*-*-*" #decorations = 1 #smart_label = 1 #minx = 0 #maxx = 0 #miny = 0 #maxy = 0 #width = 600 #height = 480 #left_margin = 80 #right_margin = 40 #top_margin = 40 #bottom_margin = 40 #xticks = 5 #yticks = 5 #tick_label_template = "%.2e" #tick_length = 0.2 #odd_tick_length = 0.4 #even_tick_length = 0.2 #ps_colormode = "color" #mark_t = None #or a real value between 0 and 1 type = "bifurcation" # or "solution" bifurcation_x = ['va1'] bifurcation_y = ['ha1'] solution_x = ['v'] solution_y = ['h'] solution_z = ['s'] ## Sets of columns that the user is likely to want to use #bifurcation_column_defaults = None #solution_column_defaults = None # The label(s) of the solution we wish to draw #label = [1,2,3] #label_defaults = None # The index/indices of the solution we wish to draw #index = [0] #bifurcation_diagram_filename = 'fort.7' #solution_filename = 'fort.8' #bifurcation_symbol = "square" #limit_point_symbol = None #hopf_symbol = "fillsquare" #period_doubling_symbol = "doubletriangle" #torus_symbol = "filldiamond" #user_point_symbol = "U" #error_symbol = None auto-07p-0.9.1+dfsg/07p/demos/fnc/attr/c.attr000066400000000000000000000010401206161447600203710ustar00rootroot00000000000000unames = {1:'v', 2:'h', 3:'s'} parnames = {1: 'epsilon', 2: 'gamma', 3: 'delta', 4: 'va0', 5: 'sa1', 6: 'sa0', 7: 'ha0', 8: 'va1', 9: 'ha1', 11: 'Ta'} NDIM= 3, IPS = 4, IRS = 0, ILP = 0 ICP = ['Ta', 'va0', 'sa0', 'ha0'] NTST= 100, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 6, NINT= 0 NMX= 1200, NPR= 1200, MXBF= 0, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-09, EPSU = 1e-09, EPSS = 1e-07 DS = 0.1, DSMIN= 5e-05, DSMAX= 10.0, IADS= 1 NPAR = 11, THL = {}, THU = {} UZR = {'sa0': 0.6}, STOP = ['UZ1'] auto-07p-0.9.1+dfsg/07p/demos/fnc/attr/c.attr.1000066400000000000000000000010401206161447600205300ustar00rootroot00000000000000unames = {1:'v', 2:'h', 3:'s'} parnames = {1: 'epsilon', 2: 'gamma', 3: 'delta', 4: 'va0', 5: 'sa1', 6: 'sa0', 7: 'ha0', 8: 'va1', 9: 'ha1', 11: 'Ta'} NDIM= 3, IPS = 4, IRS = 0, ILP = 0 ICP = ['Ta', 'va0', 'sa0', 'ha0'] NTST= 100, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 6, NINT= 0 NMX= 1200, NPR= 1200, MXBF= 0, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-09, EPSU = 1e-09, EPSS = 1e-07 DS = 0.1, DSMIN= 5e-05, DSMAX= 10.0, IADS= 1 NPAR = 11, THL = {}, THU = {} UZR = {'sa0': 0.6}, STOP = ['UZ1'] auto-07p-0.9.1+dfsg/07p/demos/fnc/attr/c.attr.2000066400000000000000000000010331206161447600205330ustar00rootroot00000000000000unames = {1:'v', 2:'h', 3:'s'} parnames = {1: 'epsilon', 2: 'gamma', 3: 'delta', 4: 'va0', 5: 'sa1', 6: 'sa0', 7: 'ha0', 8: 'va1', 9: 'ha1', 11: 'Ta'} NDIM= 3, IPS = 4, IRS = UZ1, ILP = 0 ICP = ['va0', 'ha0', 'Ta'] NTST= 100, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 5, NINT= 0 NMX= 1200, NPR= 1200, MXBF= 0, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-09, EPSU = 1e-09, EPSS = 1e-07 DS = -0.1, DSMIN= 5e-05, DSMAX= 10.0, IADS= 1 NPAR = 11, THL = {}, THU = {} UZR = {'ha0': -6.0}, STOP = ['UZ1'] auto-07p-0.9.1+dfsg/07p/demos/fnc/attr/c.attr.3000066400000000000000000000012031206161447600205330ustar00rootroot00000000000000unames = {1:'v', 2:'h', 3:'s'} parnames = {1: 'epsilon', 2: 'gamma', 3: 'delta', 4: 'va0', 5: 'sa1', 6: 'sa0', 7: 'ha0', 8: 'va1', 9: 'ha1', 11: 'Ta'} NDIM= 3, IPS = 4, IRS = UZ1, ILP = 0 ICP = ['Ta', 'va0', 'sa0', 'va1', 'ha1'] NTST= 100, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 5, NINT= 0 NMX= 1200, NPR= 1200, MXBF= 0, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-09, EPSU = 1e-09, EPSS = 1e-07 DS = 0.1, DSMIN= 5e-05, DSMAX= 10.0, IADS= 1 NPAR = 11, THL = {}, THU = {} UZR = {'Ta': [56.312667620, 71.853132166, 85.797089436, 98.432124179, 110.04693491, 120.81663908]} STOP = ['UZ3'] auto-07p-0.9.1+dfsg/07p/demos/fnc/attr/c.attr.4000066400000000000000000000012031206161447600205340ustar00rootroot00000000000000unames = {1:'v', 2:'h', 3:'s'} parnames = {1: 'epsilon', 2: 'gamma', 3: 'delta', 4: 'va0', 5: 'sa1', 6: 'sa0', 7: 'ha0', 8: 'va1', 9: 'ha1', 11: 'Ta'} NDIM= 3, IPS = 4, IRS = UZ1, ILP = 0 ICP = ['Ta', 'va0', 'sa0', 'va1', 'ha1'] NTST= 100, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 5, NINT= 0 NMX= 1200, NPR= 1200, MXBF= 0, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-09, EPSU = 1e-09, EPSS = 1e-07 DS =-0.1, DSMIN= 5e-05, DSMAX= 10.0, IADS= 1 NPAR = 11, THL = {}, THU = {} UZR = {'Ta': [56.312667620, 71.853132166, 85.797089436, 98.432124179, 110.04693491, 120.81663908]} STOP = ['UZ3'] auto-07p-0.9.1+dfsg/07p/demos/fnc/attr/clean.auto000066400000000000000000000002311206161447600212300ustar00rootroot00000000000000 #=================== # AUTO Demo fnc/attr #=================== pgm = "attr" dl('1') dl('2') dl('3') dl(pgm) print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/fnc/attr/plaut04.rc000066400000000000000000000067571206161447600211160ustar00rootroot00000000000000#version 0.0 # Line colors are represented by RGB values from 0 to 1.0. # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and animating the solution change. # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Initialize the default options: Highlight Orbit = No Orbit Animation = No Normalize Data = Yes Draw Background = No Draw Labels = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahea Coordinate Type = 0 # Draw Scale: Draw Scale = Yes # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 0 # initialize the default graph style # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 0 #Set the window width and height: Window Width = 1000 Window Height = 1000 # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 2 Y Axis Solution = 3 Z Axis Solution = 1 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 1 Z Axis Bifurcation = 2 #Labeled solutions: #-3 = Show all labeled solutions #-2 = Show HALF labeled solutions #-1 = Show SPEC labeled solutions #0 = Show NONE of the solutions #Otherwise, show the specified solution(s) Labels = -3 #Set coloring method: # -6 --- STABILITY # -5 --- POINT # -4 --- BRANCH # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. Coloring Method = -2 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 0.2 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Background color: Background Color = 0.8, 0.8, 0.8 # Background transparency: Background Transparency = 0.9 # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # Stable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 #Color of the satellite, large primary, and small primary in animation: satellite Color = 1.0, 0.0, 0.0 # Set the radius of the satellite, large primary, and small primary: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Satellite Radius = 1.0 # Set the maximum and minimum satellite animation speed: Sat Max Animation Speed = 100 Sat Min Animation Speed = 0 #Set the maximum and minimum orbit-change animation speed: Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 #Set the active AUTO parameter indices: parameter ID = 10 #Choose 3D or 2D graph: 3D = Yes auto-07p-0.9.1+dfsg/07p/demos/fnc/autorc000066400000000000000000000034421206161447600175310ustar00rootroot00000000000000[AUTO_plotter] #default_option="d1" #d1 = {"grid": "no", "use_labels": 1, "use_symbols": 1, "stability": 1} # similarly you can redefine d0, d2, d3, d4. #grid = "no" stability = 0 #use_labels = 1 #use_symbols = 0 #top_title = "Continuation of canard orbits in parameter space" #top_title_fontsize = 12 #xlabel = '' #xlabel_fontsize = 12 #ylabel = '' #ylabel_fontsize = 12 #solution_indepvarname = "time" #solution_coordnames = ["$x$","$y$","$z$"] #bifurcation_coordnames = [r"$\rho$", "L2-norm", "max $x$", "max $y$", "max $z$", "$\beta", "$\gamma$"] #line_width = 2.0 #dashes = (6.0,6.0) #background = "white" #foreground = "black" #color_list = "black red green blue" #symbol_color = "red" #symbol_font = "-misc-fixed-*-*-*-*-*-*-*-*-*-*-*-*" #decorations = 1 #smart_label = 1 #minx = 0 #maxx = 0 #miny = 0 #maxy = 0 #width = 600 #height = 480 #left_margin = 80 #right_margin = 40 #top_margin = 40 #bottom_margin = 40 #xticks = 5 #yticks = 5 #tick_label_template = "%.2e" #tick_length = 0.2 #odd_tick_length = 0.4 #even_tick_length = 0.2 #ps_colormode = "color" #mark_t = None #or a real value between 0 and 1 type = "bifurcation" # or "solution" #bifurcation_x = ['epsilon'] #bifurcation_y = ['L2-NORM'] solution_x = ['s'] solution_y = ['h'] solution_z = ['v'] ## Sets of columns that the user is likely to want to use #bifurcation_column_defaults = None #solution_column_defaults = None # The label(s) of the solution we wish to draw #label = [1,2,3] #label_defaults = None # The index/indices of the solution we wish to draw #index = [0] #bifurcation_diagram_filename = 'fort.7' #solution_filename = 'fort.8' bifurcation_symbol = "square" limit_point_symbol = None hopf_symbol = "fillsquare" period_doubling_symbol = "doubletriangle" torus_symbol = "filldiamond" user_point_symbol = None error_symbol = None auto-07p-0.9.1+dfsg/07p/demos/fnc/c.fnc000066400000000000000000000010101206161447600172100ustar00rootroot00000000000000unames = {1:'v', 2:'h', 3:'s'} parnames = {1: 'epsilon', 2: 'gamma', 3: 'delta', 4: 'va0', 6: 'sr1', 7: 'ha0', 11: 'Tc'} NDIM= 3, IPS = 4, ILP = 0 ICP = ['epsilon', 'va0', 'sr1', 'Tc'] NTST= 500, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 6, NINT= 0 NMX= 2000, NPR= 2000, MXBF= 0, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-09, EPSU = 1e-09, EPSS = 1e-07 DS =-1.0, DSMIN= 5e-9, DSMAX= 10.0, IADS= 1 NPAR = 11, THL = {'Tc': 0.0}, THU = {} UZR = {epsilon:[1e-4,1e-6]}, STOP=['UZ2'] auto-07p-0.9.1+dfsg/07p/demos/fnc/c.fnc.epsplus000066400000000000000000000010541206161447600207120ustar00rootroot00000000000000unames = {1:'v', 2:'h', 3:'s'} parnames = {1: 'epsilon', 2: 'gamma', 3: 'delta', 4: 'va0', 6: 'sr1', 7: 'ha0', 11: 'Tc'} NDIM= 3, IPS = 4, ILP = 1 ICP = ['epsilon', 'va0', 'sr1', 'Tc'] NTST= 500, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 6, NINT= 0 NMX= 2000, NPR= 2000, MXBF= 0, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-09, EPSU = 1e-09, EPSS = 1e-07 DS =1.0, DSMIN= 5e-09, DSMAX= 10.0, IADS= 1 NPAR = 11, THL = {'Tc': 0.0}, THU = {} UZR = {epsilon:[0.05,0.06,0.061,0.063]}, UZSTOP = {epsilon:0.075}, A1 = 5.0 auto-07p-0.9.1+dfsg/07p/demos/fnc/clean.auto000066400000000000000000000004731206161447600202660ustar00rootroot00000000000000 #============== # AUTO Demo fnc #============== import os, glob pgm = "fnc" cd("attr") auto("clean.auto") cd("..") cd("rep") auto("clean.auto") cd("..") dl("attrrep") for i in [3,4,5,6,7,8]: dl("xi"+str(i)) dl("xis") for f in glob.glob("*.eps"): os.remove(f) print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/fnc/fnc.auto000066400000000000000000000022701206161447600177470ustar00rootroot00000000000000 #============== # AUTO Demo fnc #============== pgm = "fnc" print "\nDemo %s is started"%pgm cd("attr") auto("attr.auto") attr = loadbd("attr") cd("..") cd("rep") auto("rep.auto") rep = loadbd("rep") cd("..") # for plotting attracting and repelling manifolds save(rl(attr+rep),'attrrep') pgm = "fnc" #reinitialize dl("xis") for i in [3,4,5,6,7,8]: print "calculating orbit for xi"+str(i) uzlabel = "UZ"+str(i-2) sola = attr(uzlabel) solr = rep(uzlabel) Ta = sola.PAR["Ta"] Tr = solr.PAR["Tr"] Tc = Ta + Tr # concatenate manifold coordinates and rescale t t = ([(ti * Ta)/Tc for ti in sola["t"][:-1]] + [(ti * Tr + Ta)/Tc for ti in solr["t"]]) v = list(sola["v"][:-1]) + list(solr["v"]) h = list(sola["h"][:-1]) + list(solr["h"]) s = list(sola["s"][:-1]) + list(solr["s"]) u = [t,v,h,s] p = {} for j in ["epsilon","gamma","delta","va0","ha0"]: p[j] = sola.PAR[j] p["sr1"] = solr.PAR["sr1"] p["Tc"] = Tc rmin = run(u,e=pgm,c=pgm,PAR=p) rplus = run(u,e=pgm,c=pgm+".epsplus",PAR=p) r = merge(rmin+rplus) save(r,"xi"+str(i)) append(r,"xis") rl("xis") print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/fnc/fnc.f90000066400000000000000000000064771206161447600174120ustar00rootroot00000000000000! ---------------------------------------------------------------------- ! ---------------------------------------------------------------------- ! Slow manifolds computation in the self-coupled FitzHugh-Nagumo system ! ---------------------------------------------------------------------- ! Continuation of canard orbits in parameter space ! ---------------------------------------------------------------------- ! Ref.: Desroches, Krauskopf and Osinga, preprint of the UoB, 2009 ! URL : http://rose.bris.ac.uk/dspace/handle/1983/1312 ! ---------------------------------------------------------------------- ! ---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION v, h, s, epsilon, gamma, delta, T ! Define the state variables v = U(1) h = U(2) s = U(3) ! Define the system parameters epsilon = PAR(1) gamma = PAR(2) delta = PAR(3) ! Define the integration time as a parameter T = PAR(11) ! Define the right-hand sides F(1) = T * (h - (v**3 - v + 1) / 2 - gamma * s * v) F(2) = T * (-epsilon * (2 * h + 2.6d0 * v)) F(3) = T * (-epsilon * delta * s) END SUBROUTINE FUNC ! ---------------------------------------------------------------------- ! ---------------------------------------------------------------------- SUBROUTINE STPNT END SUBROUTINE STPNT ! ---------------------------------------------------------------------- ! ---------------------------------------------------------------------- SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) ! ---------- ---- 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,*) ! Define the critical manifold S as {(v,h,s) ; 2*h-v^3+v-1-s*v=0} ! (we use the fact that gamma is fixed at the value 0.5) ! Define boundary conditions */ FB(1) = U0(1) - PAR(4) ! Initial point is on the intersection between S FB(2) = U0(2) - PAR(7) ! and the plane {h=-6.0} FB(3) = 2*U0(2)-U0(1)**3+U0(1)-1-U0(3)*U0(1) FB(4) = U1(1) FB(5) = U1(2) - 0.5 FB(6) = U1(3) - PAR(6) ! End point is in a cross-section containing the ! folded node: Sigma_fn={s=0.27970} END SUBROUTINE BCND ! ---------------------------------------------------------------------- ! ---------------------------------------------------------------------- SUBROUTINE PVLS END SUBROUTINE PVLS ! ---------------------------------------------------------------------- ! ---------------------------------------------------------------------- SUBROUTINE ICND END SUBROUTINE ICND ! ---------------------------------------------------------------------- ! ---------------------------------------------------------------------- SUBROUTINE FOPT END SUBROUTINE FOPT auto-07p-0.9.1+dfsg/07p/demos/fnc/plaut04.rc000066400000000000000000000067571206161447600201440ustar00rootroot00000000000000#version 0.0 # Line colors are represented by RGB values from 0 to 1.0. # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and animating the solution change. # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Initialize the default options: Highlight Orbit = No Orbit Animation = No Normalize Data = Yes Draw Background = No Draw Labels = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahea Coordinate Type = 0 # Draw Scale: Draw Scale = Yes # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 0 # initialize the default graph style # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 0 #Set the window width and height: Window Width = 1000 Window Height = 1000 # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 2 Y Axis Solution = 3 Z Axis Solution = 1 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 1 Z Axis Bifurcation = 2 #Labeled solutions: #-3 = Show all labeled solutions #-2 = Show HALF labeled solutions #-1 = Show SPEC labeled solutions #0 = Show NONE of the solutions #Otherwise, show the specified solution(s) Labels = -3 #Set coloring method: # -6 --- STABILITY # -5 --- POINT # -4 --- BRANCH # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. Coloring Method = -2 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 0.2 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Background color: Background Color = 0.8, 0.8, 0.8 # Background transparency: Background Transparency = 0.9 # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # Stable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 #Color of the satellite, large primary, and small primary in animation: satellite Color = 1.0, 0.0, 0.0 # Set the radius of the satellite, large primary, and small primary: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Satellite Radius = 1.0 # Set the maximum and minimum satellite animation speed: Sat Max Animation Speed = 100 Sat Min Animation Speed = 0 #Set the maximum and minimum orbit-change animation speed: Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 #Set the active AUTO parameter indices: parameter ID = 10 #Choose 3D or 2D graph: 3D = Yes auto-07p-0.9.1+dfsg/07p/demos/fnc/plot.auto000066400000000000000000000037721206161447600201670ustar00rootroot00000000000000 #===================== # AUTO Demo fnc: plots #===================== #use hide=True in the plot options to avoid on screen display p=plot('attrrep',type="solution",label='all',azimuth=70,elevation=20, minx=-0.1,maxx=0.6,miny=0.35,maxy=0.65,minz=-0.8,maxz=0.1, color_list="black red blue green gray orange", solution_x=["s"],solution_y=["h"], solution_z=["v"], xlabel="$s$",ylabel="$h$",zlabel="$v$") p.savefig("fnc_attrrep1.eps") p=plot('attrrep',type="bifurcation", bifurcation_x=["ha1","hr0"], bifurcation_y=["va1","vr0"], xlabel="$h$",ylabel="$v$") p.savefig("fnc_attrrep2.eps") p=plot('xis',type="bifurcation", bifurcation_x=["epsilon"], bifurcation_y=["L2-NORM"], minx=0,maxx=0.075,miny=1,maxy=5, color_list="black red blue green gray orange", xlabel=r"$\varepsilon$",ylabel="$||\cdot||_2$") p.savefig("fnc_canards1.eps") p=plot('xis',label=[4,8,11,16],type="solution", solution_x=["s"], solution_y=["v"],solution_z=None, color_list="black red blue green", minx=-3.6,maxx=0,miny=-3,maxy=2, xlabel="$s$",ylabel="$v$") p.savefig("fnc_canards2.eps") p=plot('attrrep',type="solution",label='all', color_list="black red blue green gray orange", solution_x=["s"],solution_y=["v"], solution_z=None, minx=0,maxx=0.72,miny=-2,maxy=0, xlabel="$s$",ylabel="$v$",hide=True) p.savefig("fnc_canards3.eps") p=plot('xis',label=[17,25,31,37,43,49],type="solution", solution_x=["s"], solution_y=["v"],solution_z=None, color_list="black red blue green gray orange", minx=0.2,maxx=0.56,miny=-2,maxy=0, xlabel="$s$",ylabel="$v$",width=300,hide=True) p.savefig("fnc_canards4.eps") p=plot('xis',label=[18,26,32,38,44,50],type="solution", solution_x=["s"], solution_y=["v"],solution_z=None, color_list="black red blue green gray orange", width=300,minx=0.2,maxx=0.56,miny=-2,maxy=0, xlabel="$s$",ylabel="$v$",width=300,hide=True) p.savefig("fnc_canards5.eps") wait() auto-07p-0.9.1+dfsg/07p/demos/fnc/rep/000077500000000000000000000000001206161447600170745ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/fnc/rep/autorc000066400000000000000000000034311206161447600203150ustar00rootroot00000000000000[AUTO_plotter] #default_option="d1" #d1 = {"grid": "no", "use_labels": 1, "use_symbols": 1, "stability": 1} # similarly you can redefine d0, d2, d3, d4. #grid = "no" stability = 0 #use_labels = 1 #use_symbols = 0 top_title = "Lorenz: EtoP connections using Lin's method" #top_title_fontsize = 12 #xlabel = '' #xlabel_fontsize = 12 #ylabel = '' #ylabel_fontsize = 12 #solution_indepvarname = "time" #solution_coordnames = ["$x$","$y$","$z$"] #bifurcation_coordnames = [r"$\rho$", "L2-norm", "max $x$", "max $y$", "max $z$", "$\beta", "$\gamma$"] #line_width = 2.0 #dashes = (6.0,6.0) #background = "white" #foreground = "black" #color_list = "black red green blue" #symbol_color = "red" #symbol_font = "-misc-fixed-*-*-*-*-*-*-*-*-*-*-*-*" #decorations = 1 #smart_label = 1 #minx = 0 #maxx = 0 #miny = 0 #maxy = 0 #width = 600 #height = 480 #left_margin = 80 #right_margin = 40 #top_margin = 40 #bottom_margin = 40 #xticks = 5 #yticks = 5 #tick_label_template = "%.2e" #tick_length = 0.2 #odd_tick_length = 0.4 #even_tick_length = 0.2 #ps_colormode = "color" #mark_t = None #or a real value between 0 and 1 type = "bifurcation" # or "solution" bifurcation_x = ['vr0'] bifurcation_y = ['hr0'] solution_x = ['v'] solution_y = ['h'] solution_z = ['s'] ## Sets of columns that the user is likely to want to use #bifurcation_column_defaults = None #solution_column_defaults = None # The label(s) of the solution we wish to draw #label = [1,2,3] #label_defaults = None # The index/indices of the solution we wish to draw #index = [0] #bifurcation_diagram_filename = 'fort.7' #solution_filename = 'fort.8' #bifurcation_symbol = "square" #limit_point_symbol = None #hopf_symbol = "fillsquare" #period_doubling_symbol = "doubletriangle" #torus_symbol = "filldiamond" #user_point_symbol = "U" #error_symbol = None auto-07p-0.9.1+dfsg/07p/demos/fnc/rep/c.rep000066400000000000000000000010201206161447600200170ustar00rootroot00000000000000unames = {1:'v', 2:'h', 3:'s'} parnames = {1: 'epsilon', 2: 'gamma', 3: 'delta', 4: 'vr1', 5: 'sr0', 6: 'sr1', 8: 'vr0', 9: 'hr0', 11: 'Tr'} NDIM= 3, IPS = 4, IRS = 0, ILP = 0 ICP = ['Tr', 'vr1', 'sr1'] NTST= 100, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 5, NINT= 0 NMX= 1200, NPR= 1200, MXBF= 0, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-09, EPSU = 1e-09, EPSS = 1e-07 DS = 1.0, DSMIN= 5e-05, DSMAX= 10.0, IADS= 1 NPAR = 11, THL = {}, THU = {} UZR = {'sr1': 0.05}, STOP = ['UZ1'] auto-07p-0.9.1+dfsg/07p/demos/fnc/rep/c.rep.1000066400000000000000000000010201206161447600201560ustar00rootroot00000000000000unames = {1:'v', 2:'h', 3:'s'} parnames = {1: 'epsilon', 2: 'gamma', 3: 'delta', 4: 'vr1', 5: 'sr0', 6: 'sr1', 8: 'vr0', 9: 'hr0', 11: 'Tr'} NDIM= 3, IPS = 4, IRS = 0, ILP = 0 ICP = ['Tr', 'vr1', 'sr1'] NTST= 100, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 5, NINT= 0 NMX= 1200, NPR= 1200, MXBF= 0, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-09, EPSU = 1e-09, EPSS = 1e-07 DS = 1.0, DSMIN= 5e-05, DSMAX= 10.0, IADS= 1 NPAR = 11, THL = {}, THU = {} UZR = {'sr1': 0.05}, STOP = ['UZ1'] auto-07p-0.9.1+dfsg/07p/demos/fnc/rep/c.rep.2000066400000000000000000000010101206161447600201560ustar00rootroot00000000000000unames = {1:'v', 2:'h', 3:'s'} parnames = {1: 'epsilon', 2: 'gamma', 3: 'delta', 4: 'vr1', 5: 'sr0', 6: 'sr1', 8: 'vr0', 9: 'hr0', 11: 'Tr'} NDIM= 3, IPS = 4, IRS = UZ1, ILP = 0 ICP = ['vr1', 'Tr'] NTST= 100, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 4, NINT= 0 NMX= 1200, NPR= 1200, MXBF= 0, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-09, EPSU = 1e-09, EPSS = 1e-07 DS = 0.1, DSMIN= 5e-05, DSMAX= 10.0, IADS= 1 NPAR = 11, THL = {}, THU = {} UZR = {'vr1': 0.0}, STOP = ['UZ1'] auto-07p-0.9.1+dfsg/07p/demos/fnc/rep/c.rep.3000066400000000000000000000011541206161447600201700ustar00rootroot00000000000000unames = {1:'v', 2:'h', 3:'s'} parnames = {1: 'epsilon', 2: 'gamma', 3: 'delta', 4: 'vr1', 5: 'sr0', 6: 'sr1', 8: 'vr0', 9: 'hr0', 11: 'Tr'} NDIM= 3, IPS = 4, IRS = UZ1, ILP = 0 ICP = ['Tr', 'sr1', 'vr0', 'hr0'] NTST= 100, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 4, NINT= 0 NMX= 1200, NPR= 1200, MXBF= 0, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-09, EPSU = 1e-09, EPSS = 1e-07 DS = 0.1, DSMIN= 5e-05, DSMAX= 10.0, IADS= 1 NPAR = 11, THL = {}, THU = {} UZR = {'Tr':[144.10077659,160.62079695,178.59845751, 197.98334090,218.62796126,240.27107973]} STOP = ['UZ2'] auto-07p-0.9.1+dfsg/07p/demos/fnc/rep/c.rep.4000066400000000000000000000011541206161447600201710ustar00rootroot00000000000000unames = {1:'v', 2:'h', 3:'s'} parnames = {1: 'epsilon', 2: 'gamma', 3: 'delta', 4: 'vr1', 5: 'sr0', 6: 'sr1', 8: 'vr0', 9: 'hr0', 11: 'Tr'} NDIM= 3, IPS = 4, IRS = UZ1, ILP = 0 ICP = ['Tr', 'sr1', 'vr0', 'hr0'] NTST= 100, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 4, NINT= 0 NMX= 1200, NPR= 1200, MXBF= 0, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-09, EPSU = 1e-09, EPSS = 1e-07 DS =-0.1, DSMIN= 5e-05, DSMAX= 10.0, IADS= 1 NPAR = 11, THL = {}, THU = {} UZR = {'Tr':[144.10077659,160.62079695,178.59845751, 197.98334090,218.62796126,240.27107973]} STOP = ['UZ4'] auto-07p-0.9.1+dfsg/07p/demos/fnc/rep/clean.auto000066400000000000000000000002251206161447600210470ustar00rootroot00000000000000 #================== # AUTO Demo fnc/rep #================== pgm = "rep" dl('1') dl('2') dl('3') dl(pgm) print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/fnc/rep/plaut04.rc000066400000000000000000000067571206161447600207320ustar00rootroot00000000000000#version 0.0 # Line colors are represented by RGB values from 0 to 1.0. # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and animating the solution change. # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Initialize the default options: Highlight Orbit = No Orbit Animation = No Normalize Data = Yes Draw Background = No Draw Labels = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahea Coordinate Type = 0 # Draw Scale: Draw Scale = Yes # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 0 # initialize the default graph style # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 0 #Set the window width and height: Window Width = 1000 Window Height = 1000 # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 2 Y Axis Solution = 3 Z Axis Solution = 1 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 1 Z Axis Bifurcation = 2 #Labeled solutions: #-3 = Show all labeled solutions #-2 = Show HALF labeled solutions #-1 = Show SPEC labeled solutions #0 = Show NONE of the solutions #Otherwise, show the specified solution(s) Labels = -3 #Set coloring method: # -6 --- STABILITY # -5 --- POINT # -4 --- BRANCH # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. Coloring Method = -2 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 0.2 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Background color: Background Color = 0.8, 0.8, 0.8 # Background transparency: Background Transparency = 0.9 # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # Stable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 #Color of the satellite, large primary, and small primary in animation: satellite Color = 1.0, 0.0, 0.0 # Set the radius of the satellite, large primary, and small primary: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Satellite Radius = 1.0 # Set the maximum and minimum satellite animation speed: Sat Max Animation Speed = 100 Sat Min Animation Speed = 0 #Set the maximum and minimum orbit-change animation speed: Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 #Set the active AUTO parameter indices: parameter ID = 10 #Choose 3D or 2D graph: 3D = Yes auto-07p-0.9.1+dfsg/07p/demos/fnc/rep/rep.auto000066400000000000000000000013671206161447600205630ustar00rootroot00000000000000 #================== # AUTO Demo fnc/rep #================== pgm = "rep" print "\nDemo %s is started"%pgm print '\n%s : first run : Homotopy away from the folded node along the fold curve'%pgm r1 = run(e=pgm,c=pgm) print '\n%s : second run : Homotopy away from the fold curve on the critical manifold'%pgm r2 = run(r1('UZ1'),ICP=['vr1','Tr'],NBC=4,UZR={'vr1':0}) print '\n%s : third run: Actual computation of the repelling slow manifold'%pgm start3 = load(r2('UZ1'),ICP=['Tr','sr1','vr0','hr0'], UZR = {'Tr':[144.10077659,160.62079695,178.59845751, 197.98334090,218.62796126,240.27107973]}) r3 = merge(run(start3,STOP='UZ2') + run(start3,STOP='UZ4',DS='-')) save(r3,pgm) print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/fnc/rep/rep.f90000066400000000000000000000113411206161447600202020ustar00rootroot00000000000000! ---------------------------------------------------------------------- ! ---------------------------------------------------------------------- ! Slow manifolds computation in the self-coupled FitzHugh-Nagumo system ! ---------------------------------------------------------------------- ! C o m p. o f t h e r e p e l l i n g s l o w m a n i f o l d ! ---------------------------------------------------------------------- ! Homotopy step 1: "away from the folded node along the fold curve" ! followed by ! Homotopy step 2: "away from the fold curve on the critical manifold" ! followed by ! Actual computation of the repelling slow manifold ! ---------------------------------------------------------------------- ! Ref.: Desroches, Krauskopf and Osinga, CHAOS 18, 015107 (2008) ! ---------------------------------------------------------------------- ! ---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION v, h, s, epsilon, gamma, delta, T ! Define the state variables v = U(1) h = U(2) s = U(3) ! Define the system parameters epsilon = PAR(1) gamma = PAR(2) delta = PAR(3) ! Define the integration time as a parameter T = PAR(11) ! Define the right-hand sides F(1) = T * (h - (v**3 - v + 1) / 2 - gamma * s * v) F(2) = T * (-epsilon * (2 * h + 2.6d0 * v)) F(3) = T * (-epsilon * delta * s) END SUBROUTINE FUNC ! ---------------------------------------------------------------------- ! ---------------------------------------------------------------------- SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T ! epsilon gamma delta PAR(1:3) = (/ 0.015d0, 0.5d0, 0.565d0 /) PAR(11) = 0 ! v h s U(1:3) = (/ -0.490d0, 0.61760d0, 0.27970d0 /) PAR(4) = U(1) ! v(1) PAR(5) = U(3) ! s(0) PAR(6) = U(3) ! s(1) END SUBROUTINE STPNT ! ---------------------------------------------------------------------- ! ---------------------------------------------------------------------- SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) ! ---------- ---- 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,*) ! Define boundary conditions */ ! Define the critical manifold S as {(v,h,s) ; 2*h-v^3+v-1-v*s=0} ! (we use the fact that gamma is fixed at the value 0.5) FB(1) = 2*U1(2)-U1(1)**3+U1(1)-1-U1(3)*U1(1) FB(2) = U1(1) - PAR(4) ! End point is on the intersection between S FB(3) = U1(3) - PAR(6) ! and the plane {s=0.05/v=0.0} FB(4) = U0(3) - PAR(5) ! Initial point is in a cross-section containing ! the folded node: Sigma_fn={s=0.27970} IF(NBC==4) RETURN ! FB(1) and FB(5): {(v,h,s) ; s - (1 - 3*v^2=0)} ! together define the folded node F FB(5) = U1(3) - (1 - 3*U1(1)**2) END SUBROUTINE BCND ! ---------------------------------------------------------------------- ! ---------------------------------------------------------------------- SUBROUTINE PVLS(NDIM,U,PAR) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(IN) :: U(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: PAR(*) DOUBLE PRECISION, EXTERNAL :: GETP ! Define external parameter which monitors the v- and the h-coordinate ! of the initial point in section Sigma_fn */ PAR(8) = GETP("BV0", 1, U) PAR(9) = GETP("BV0", 2, U) END SUBROUTINE PVLS ! ---------------------------------------------------------------------- ! ---------------------------------------------------------------------- ! ---------------------------------------------------------------------- ! ---------------------------------------------------------------------- SUBROUTINE ICND END SUBROUTINE ICND ! ---------------------------------------------------------------------- ! ---------------------------------------------------------------------- SUBROUTINE FOPT END SUBROUTINE FOPT auto-07p-0.9.1+dfsg/07p/demos/fnc/rep/repc.auto000066400000000000000000000010541206161447600207170ustar00rootroot00000000000000 #================== # AUTO Demo fnc/rep #================== pgm = "rep" print "\nDemo %s is started"%pgm print '\n%s : first run : Homotopy away from the folded node along the fold curve'%pgm r1 = run(e=pgm,c=pgm,sv='1') print '\n%s : second run : Homotopy away from the fold curve on the critical manifold'%pgm r2 = run(c=pgm+'.2',s='1',sv='2') print '\n%s : third run: Actual computation of the repelling slow manifold'%pgm r3 = run(c=pgm+'.3',s='2',sv='3') r4 = run(c=pgm+'.4',s='2',ap='3') merge('3',pgm) print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/frc/000077500000000000000000000000001206161447600163125ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/frc/c.frc000066400000000000000000000005771206161447600172410ustar00rootroot00000000000000NDIM= 4, IPS = 2, IRS = 0, ILP = 1 ICP = [3, 11] NTST= 20, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 9, NBC= 0, NINT= 0 NMX= 10, NPR= 100, MXBF= 5, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.05, DSMIN= 0.001, DSMAX= 1.0, IADS= 1 NPAR = 6, THL = {}, THU = {} UZR = {3: 0.2, 11: [1.0, 2.0, 3.0, 4.0, 5.0]} auto-07p-0.9.1+dfsg/07p/demos/frc/c.frc.1000066400000000000000000000005771206161447600174000ustar00rootroot00000000000000NDIM= 4, IPS = 2, IRS = 0, ILP = 1 ICP = [3, 11] NTST= 20, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 9, NBC= 0, NINT= 0 NMX= 10, NPR= 100, MXBF= 5, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.05, DSMIN= 0.001, DSMAX= 1.0, IADS= 1 NPAR = 6, THL = {}, THU = {} UZR = {3: 0.2, 11: [1.0, 2.0, 3.0, 4.0, 5.0]} auto-07p-0.9.1+dfsg/07p/demos/frc/c.frc.2000066400000000000000000000005771206161447600174010ustar00rootroot00000000000000NDIM= 4, IPS = 2, IRS = 2, ILP = 1 ICP = [5, 11] NTST= 20, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 9, NBC= 0, NINT= 0 NMX= 20, NPR= 100, MXBF= 5, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = -0.5, DSMIN= 0.001, DSMAX= 5.0, IADS= 1 NPAR = 6, THL = {}, THU = {} UZR = {3: 0.2, 11: [1.0, 2.0, 3.0, 4.0, 5.0]} auto-07p-0.9.1+dfsg/07p/demos/frc/clean.auto000066400000000000000000000001551206161447600202670ustar00rootroot00000000000000 #============== # AUTO Demo frc #============== print "\n***Clean the directory***" dl('0') dl('frc') cl() auto-07p-0.9.1+dfsg/07p/demos/frc/frc.auto000066400000000000000000000005541206161447600177620ustar00rootroot00000000000000 #============== # AUTO Demo frc #============== pgm = "frc" print "\nDemo %s is started"%pgm print "\n%s : first run : continuation to nonzero r-value"%pgm r1 = run(e=pgm,c=pgm) save(r1,'0') print "\n%s : second run : compute solution branch"%pgm r2 = run(r1("UZ1"),ICP=[5,11],NMX=20,DS=-0.5,DSMAX=5.0) save(r2,'frc') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/frc/frc.f90000066400000000000000000000036451206161447600174140ustar00rootroot00000000000000!------------------------------------------------------------------------------ !------------------------------------------------------------------------------ ! frc : A periodically forced system !------------------------------------------------------------------------------ !------------------------------------------------------------------------------ SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION FHN,Z,A,B,R,EPS,BET,D,V,W,X,Y,SS FHN(Z) = Z*(Z-A)*(1-Z) A = PAR(1) B = PAR(2) R = PAR(3) EPS= PAR(4) BET= PAR(5) D = PAR(6) V=U(1) W=U(2) X=U(3) Y=U(4) SS = X**2 + Y**2 F(1) = ( FHN(V) - W )/EPS F(2) = V - D*W - ( B + R*X ) F(3) = X + BET*Y - X*SS F(4) = -BET*X + Y - Y*SS END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T DOUBLE PRECISION A,B,R,EPS,BET,D,TPI A =0.5 B = A R =0. EPS=0.005 BET=100 D =1.0 PAR(1)=A PAR(2)=B PAR(3)=R PAR(4)=EPS PAR(5)=BET PAR(6)=D TPI=8*ATAN(1.0D0) PAR(11)=TPI/BET U(1)=B U(2)=B*(B-A)*(1-B) U(3)=SIN(TPI*T) U(4)=COS(TPI*T) END SUBROUTINE STPNT SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/fsh/000077500000000000000000000000001206161447600163205ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/fsh/c.fsh000066400000000000000000000006571206161447600172540ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 0, ILP = 0 ICP = [11, 12, 13, 14] NTST= 25, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT=-1, NBC= 5, NINT= 0 NMX= 200, NPR= 200, MXBF= 8, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.5, DSMIN= 0.01, DSMAX= 50.0, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {2: [1.0, 2.0, 3.0, 5.0, 10.0], 11: [10.0, 50.0, 100.0]} UZSTOP = {11: 200} auto-07p-0.9.1+dfsg/07p/demos/fsh/c.fsh.1000066400000000000000000000006571206161447600174130ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 0, ILP = 0 ICP = [11, 12, 13, 14] NTST= 25, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT=-1, NBC= 5, NINT= 0 NMX= 200, NPR= 200, MXBF= 8, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.5, DSMIN= 0.01, DSMAX= 50.0, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {2: [1.0, 2.0, 3.0, 5.0, 10.0], 11: [10.0, 50.0, 100.0]} UZSTOP = {11: 200} auto-07p-0.9.1+dfsg/07p/demos/fsh/c.fsh.2000066400000000000000000000006431206161447600174070ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 5, ILP = 0 ICP = [2, 11, 12, 13, 14] NTST= 25, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT=-1, NBC= 5, NINT= 1 NMX= 200, NPR= 200, MXBF= 8, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -0.5, DSMIN= 0.01, DSMAX= 50.0, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {2: [1.0, 2.0, 3.0, 5.0, 10.0]} UZSTOP = {2: 0.0}, A0 = -0.1 auto-07p-0.9.1+dfsg/07p/demos/fsh/clean.auto000066400000000000000000000001551206161447600202750ustar00rootroot00000000000000 #============== # AUTO Demo fsh #============== print "\n***Clean the directory***" dl('0') dl('fsh') cl() auto-07p-0.9.1+dfsg/07p/demos/fsh/fsh.auto000066400000000000000000000006541206161447600177770ustar00rootroot00000000000000 #============== # AUTO Demo fsh #============== pgm = "fsh" print "\nDemo %s is started"%pgm print "\n%s : first run : continuation in the period T"%pgm r1 = run(e=pgm,c=pgm) save(r1, '0') print "\n%s : second run : continuation in c and T"%pgm r2 = run(r1("UZ4"),ICP = [2, 11, 12, 13, 14],NINT=1, DS='-',UZR = {2: [1.0,2.0,3.0,5.0,10.0]}, UZSTOP={2: 0.0}, A0=-0.1) save(r2, pgm) print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/fsh/fsh.f90000066400000000000000000000105161206161447600174230ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! fsh : Heteroclinic orbits : a saddle-node copnnection !---------------------------------------------------------------------- !---------------------------------------------------------------------- ! Parameter assignment: ! ! PAR(1) : (unused) ! PAR(2) : c (wave speed) ! PAR(4) : eps-1 1 (radius) ! PAR(11) : period ! PAR(12) : mu-1 (eigenvalue at 1) ! PAR(13) , PAR(14): v(1) , v(2) (eigenvector at 1) !----------------------------------------------------------------------- !----------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION PERIOD,DUMMY(1) INTEGER I CALL FFFF(2,U,ICP,PAR,IJAC,F,DUMMY) PERIOD=PAR(11) DO I=1,NDIM F(I)=PERIOD*F(I) ENDDO END SUBROUTINE FUNC SUBROUTINE FFFF(NDM,U,ICP,PAR,IJAC,F,DFDU) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDM,NDM) DOUBLE PRECISION C C=PAR(2) F(1)= U(2) F(2)= C*U(2) - U(1) * (1-U(1)) IF(IJAC.EQ.0)RETURN DFDU(1,1)= 0 DFDU(1,2)= 1 DFDU(2,1)= -1 + 2*U(1) DFDU(2,2)= C END SUBROUTINE FFFF SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T DOUBLE PRECISION PERIOD, C, EP1, D, RMU1, V11, V12 IF(T==0)THEN ! Set the starting period, wave speed, and radius PERIOD=0.01 C=11. EP1=0.001 D = SQRT(C**2+4) PAR(2)= C PAR(4)= EP1 PAR(11)= PERIOD PAR(12)= (C-D)/2 PAR(13) = 1./SQRT(1+PAR(12)**2) PAR(14)=PAR(12)/SQRT(1+PAR(12)**2) ENDIF C =PAR(2) EP1 =PAR(4) PERIOD=PAR(11) D=SQRT(C**2+4) RMU1= (C-D)/2 V11 = 1./SQRT(1+RMU1**2) V12 =RMU1/SQRT(1+RMU1**2) U(1)=1-EP1*V11 U(2)= -EP1*V12 END SUBROUTINE STPNT SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) ! ---------- ---- 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,*) ! Local INTEGER, PARAMETER :: NDM=2 DOUBLE PRECISION V1(NDM),G1(NDM),DGDU1(NDM,NDM) V1(1)=U1(1) + PAR(4)*PAR(13) V1(2)=U1(2) + PAR(4)*PAR(14) CALL FFFF(NDM,V1,ICP,PAR,1,G1,DGDU1) FB(1)= DGDU1(1,1)*PAR(13) + DGDU1(1,2)*PAR(14)- PAR(12)*PAR(13) FB(2)= DGDU1(2,1)*PAR(13) + DGDU1(2,2)*PAR(14)- PAR(12)*PAR(14) FB(3)= PAR(13)**2 + PAR(14)**2 -1 FB(4)= G1(1) FB(5)= G1(2) END SUBROUTINE BCND SUBROUTINE ICND(NDIM,PAR,ICP,NINT,U,UOLD,UDOT,UPOLD,FI,IJAC,DINT) ! ---------- ---- 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,*) ! Local INTEGER, PARAMETER :: NDM=2 DOUBLE PRECISION F(NDM),F0(NDM),DFDU(NDM,NDM),DUMMY(1) CALL FFFF(NDM,U ,ICP,PAR,1,F ,DFDU) CALL FFFF(NDM,UOLD,ICP,PAR,0,F0,DUMMY) FI(1)= ( F(1) - F0(1) ) * ( DFDU(1,1)*F(1) + DFDU(1,2)*F(2) ) & + ( F(2) - F0(2) ) * ( DFDU(2,1)*F(1) + DFDU(2,2)*F(2) ) END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/hen/000077500000000000000000000000001206161447600163125ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/hen/autorc000066400000000000000000000141641206161447600175400ustar00rootroot00000000000000# Example file for autorc: you need to uncomment settings for them # to take effect! [AUTO_plotter] # Variable name to use instead of 't' for solutions. #solution_indepvarname = "time" # A dictionary mapping names to axis labels. labelnames = {"x": "$x$", "y": "$y$", "alpha": "$\alpha$", "beta": "$\beta$", "L2-NORM": "L2-norm"} # The type of the plot, either "solution" or "bifurcation" #type = "bifurcation" # or "solution" # The column to plot along the X-axis for bifurcation diagrams. bifurcation_x = ["alpha"] # The column to plot along the Y-axis for bifurcation diagrams. bifurcation_y = ["beta"] # The column to plot along the Z-axis for bifurcation diagrams. #bifurcation_z = None # The column to plot along the X-axis for solutions. #solution_x = [0,3,6,9] # The column to plot along the Y-axis for solutions. #solution_y = [1,4,7,10] # The column to plot along the Z-axis for solutions. #solution_z = [2,5,8,11] # A list of colors to use for multiple plots. #color_list = "black red green blue" # color_list index: 'branch' (BR), 'type' (TY), or 'curve' (seq.). #coloring_method = "curve" # or "branch" or "type" # Turn on or off the grid. #grid = False # Turn on or off stability information using dashed curves stability = False # Whether or not to display label numbers in the graph. #use_labels = True # Whether or not to display bifurcation symbols in the graph. #use_symbols = False # Whether to use letters (True) or symbols (False) for special points. #letter_symbols = True # Default d0, d1, d2, etc. setting to use with PyPLAUT (@pp). #default_option="d1" #d1 = {"grid": False, "use_labels": True, "use_symbols": True, "stability":True} # similarly you can redefine d0, d2, d3, d4. # The label for the top title. #top_title = '' # The font size for the top title. #top_title_fontsize = 12 # The font size for the x-axis label. #xlabel_fontsize = 12 # The font size for the y-axis label. #ylabel_fontsize = 12 # The font size for the z-axis label. #zlabel_fontsize = 12 # Azimuth of the axes in 3D plots. #azimuth = -60 # for 3D plots, in degrees # Elevation of the axes in 3D plots. #elevation = 30 # for 3D plots, in degrees # The lower bound for the x-axis of the plot. #minx = 0 # The upper bound for the x-axis of the plot. #maxx = 0 # The lower bound for the y-axis of the plot. #miny = 0 # The upper bound for the y-axis of the plot. #maxy = 0 # The lower bound for the z-axis of the plot. #minz = 0 # The upper bound for the z-axis of the plot. #maxz = 0 # The label for the x-axis. #xlabel = '' # The label for the y-axis. #ylabel = '' # The label for the z-axis. #zlabel = '' # Width to use for lines and curves. #line_width = 2.0 # List of dash, no-dash lengths for dashed lines. #dashes = (6.0,6.0) # The background color of the plot. #background = "white" # The foreground color of the plot #foreground = "black" # The color to use for the marker symbols. #symbol_color = "red" # The font to use for marker symbols. #symbol_font = "-misc-fixed-*-*-*-*-*-*-*-*-*-*-*-*" # Turn on or off the axis, tick marks, etc. #decorations = True # Whether to use a smart but slower label placement algorithm. #smart_label = True # Width of the graph. #width = 600 # Height of the graph. #height = 480 # The margin between the graph and the left edge. #left_margin = 80 # The margin between the graph and the left edge. #right_margin = 40 # The margin between the graph and the top edge. #top_margin = 40 # The margin between the graph and the bottom edge. #bottom_margin = 40 # The number of ticks on the x-axis. #xticks = 5 # The number of ticks on the y-axis. #yticks = 5 # The number of ticks on the z-axis. #zticks = 5 # A string which defines the format of the tick labels. #tick_label_template = "%.2e" # The length of the tick marks. #tick_length = 0.2 # The length of the odd tick marks. #odd_tick_length = 0.4 # The length of the even tick marks. #even_tick_length = 0.2 # The PostScript output mode: 'color', 'gray' or 'monochrome'. #ps_colormode = "color" # The t value to marker with a small ball. #mark_t = None #or a real value between 0 and 1 # A set of bifurcation columns the user is likely to use. #bifurcation_column_defaults = None # A set of solution columns the user is likely to use. #solution_column_defaults = [[0,3,6,9],[1,4,7,10],[2,5,8,11],['t','t','t','t']] # An array of labels to plot, or 'all' for all labels. #label = [1,2,3] # or "all" # A set of labels that the user is likely to use. #label_defaults = None # The index/indices of the solution we wish to draw #index = [0] # The filename of the bifurcation diagram to plot. #bifurcation_diagram_filename = 'fort.7' # The filename of the solution to plot. #solution_filename = 'fort.8' # The symbol to use for bifurcation points. # Here 8 denotes the size of the square #bifurcation_symbol = "square8" # The symbol to use for limit points. #limit_point_symbol = None # The symbol to use for Hopf bifurcation points. #hopf_symbol = "fillsquare" # The symbol to use for period doubling bifurcation points. #period_doubling_symbol = "doubletriangle" # The symbol to use for torus bifurcation points. #torus_symbol = "filldiamond" # The symbol to use for user defined output points. #user_point_symbol = "U" # The symbol to use for error points. #error_symbol = None # The symbol to use for Cusp points. #cusp_symbol = None # The symbol to use for Bogdanov-Takens points. #bogdanov_takens_symbol = "circle" # The symbol to use for Generalized Hopf points. #generalized_hopf_symbol = "triangle" # The symbol to use for zero-Hopf points. #zero_hopf_symbol = "doubletriangle" # The symbol to use for fold-flip points. #fold_flip_symbol = "doubletriangle" # The symbol to use for fold-torus points. #fold_torus_symbol = "doubletriangle" # The symbol to use for flip-torus points. #flip_torus_symbol = "doubletriangle" # The symbol to use for torus-torus points. #torus_torus_symbol = "doubletriangle" # The symbol to use for 1:1 resonance points. #1_1_resonance_symbol = "filldiamond" # The symbol to use for 1:2 resonance points. #1_2_resonance_symbol = "filldiamond" # The symbol to use for 1:3 resonance points. #1_3_resonance_symbol = "filldiamond" # The symbol to use for 1:4 resonance points. #1_4_resonance_symbol = "filldiamond" auto-07p-0.9.1+dfsg/07p/demos/hen/c.hen000066400000000000000000000007141206161447600172320ustar00rootroot00000000000000unames = {1:'x', 2:'y'} parnames = {1:'alpha', 2:'beta'} NDIM= 2, IPS = -1, IRS = 0, ILP = 1 ICP = ['beta'] NTST= 10, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 100, MXBF= 5, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 1 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.02, DSMIN= 0.0005, DSMAX= 0.1, IADS= 1 NPAR = 3, THL = {}, THU = {} STOP = ['TR1'] UZSTOP = {'alpha':[-2.0,4.0],'beta':[-3.0,3.0]} auto-07p-0.9.1+dfsg/07p/demos/hen/clean.auto000066400000000000000000000002131206161447600202620ustar00rootroot00000000000000 #============== # AUTO Demo hen #============== print "\n***Clean the directory***" delete('alpha') delete('beta') delete('hen') clean() auto-07p-0.9.1+dfsg/07p/demos/hen/hen.auto000066400000000000000000000016251206161447600177620ustar00rootroot00000000000000 #============== # AUTO Demo hen #============== print "\nDemo hen is started" print "\nhen : first run : fixed point solution branch for beta (alpha=1)" r1 = run('hen') save('beta') print "\nhen : second run : a 2-parameter curve of Naimark-Sacker bifurcations" run(r1("TR1"),ICP=['alpha','beta'],ISW=2,ILP=0,STOP=['R11','R21']) save('hen') run(DS='-') append('hen') print "\nhen : third run : a 2-parameter curve of Period-Doubling bifurcations" run(r1("PD1"),ICP=['alpha','beta'],ISW=2,ILP=0) append('hen') run(DS='-') append('hen') print "\nhen : fourth run : fixed point solution branch for alpha (beta=1)" r4 = run(c='hen',ICP=['alpha'],DS='-',STOP=['LP1']) save(r4,'alpha') print "\nhen : fifth run : a 2-parameter curve of fold bifurcations" run(r4("LP1"),ICP=['alpha','beta'],ISW=2,ILP=0) append('hen') run(DS='-') append('hen') merge('hen') relabel('hen') print "\n***Clean the directory***" clean() auto-07p-0.9.1+dfsg/07p/demos/hen/hen.f90000066400000000000000000000030241206161447600174030ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! Henon : The Henon map !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION x, y, alpha, beta x=U(1) y=U(2) alpha=PAR(1) beta=PAR(2) F(1)=y F(2)=alpha-beta*x-y**2 IF(IJAC.EQ.0)RETURN DFDU(1,1)=0 DFDU(1,2)=1 DFDU(2,1)=-beta DFDU(2,2)=-2*y IF(IJAC.EQ.1)RETURN DFDP(1,1)=0 DFDP(1,2)=0 DFDP(2,1)=1 DFDP(2,2)=-x END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T PAR(1)=2 ! alpha PAR(2)=0 ! beta U(1)=1 U(2)=1 END SUBROUTINE STPNT SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/int/000077500000000000000000000000001206161447600163325ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/int/c.int000066400000000000000000000005511206161447600172710ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 0, ILP = 1 ICP = [1] NTST= 5, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 1, NINT= 1 NMX= 40, NPR= 40, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 1 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.01, DSMIN= 0.001, DSMAX= 2.0, IADS= 1 NPAR = 3, THL = {2: 0.0}, THU = {} UZR = {1: [1.0, 3.0]} auto-07p-0.9.1+dfsg/07p/demos/int/c.int.1000066400000000000000000000005511206161447600174300ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 0, ILP = 1 ICP = [1] NTST= 5, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 1, NINT= 1 NMX= 40, NPR= 40, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 1 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.01, DSMIN= 0.001, DSMAX= 2.0, IADS= 1 NPAR = 3, THL = {2: 0.0}, THU = {} UZR = {1: [1.0, 3.0]} auto-07p-0.9.1+dfsg/07p/demos/int/c.int.2000066400000000000000000000005541206161447600174340ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 4, ILP = 1 ICP = [1, 2] NTST= 5, NCOL= 4, IAD = 3, ISP = 1, ISW = 2, IPLT= 0, NBC= 1, NINT= 1 NMX= 40, NPR= 40, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 1 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.01, DSMIN= 0.001, DSMAX= 2.0, IADS= 1 NPAR = 3, THL = {2: 0.0}, THU = {} UZR = {1: [1.0, 3.0]} auto-07p-0.9.1+dfsg/07p/demos/int/c.int.3000066400000000000000000000005541206161447600174350ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 8, ILP = 1 ICP = [1, 2] NTST= 5, NCOL= 4, IAD = 3, ISP = 1, ISW = 2, IPLT= 0, NBC= 1, NINT= 1 NMX= 40, NPR= 40, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 1 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.01, DSMIN= 0.001, DSMAX= 2.0, IADS= 1 NPAR = 3, THL = {2: 0.0}, THU = {} UZR = {1: [1.0, 3.0]} auto-07p-0.9.1+dfsg/07p/demos/int/clean.auto000066400000000000000000000001561206161447600203100ustar00rootroot00000000000000 #============== # AUTO Demo int #============== print "\n***Clean the directory***" dl('int') dl('lp') cl() auto-07p-0.9.1+dfsg/07p/demos/int/int.auto000066400000000000000000000006201206161447600200140ustar00rootroot00000000000000 #============== # AUTO Demo int #============== pgm = "int" print "\nDemo %s is started"%pgm print "\n%s : first run : detection of a fold"%pgm r1 = run(e=pgm,c=pgm) save(r1,pgm) print "\n%s : second run : generate starting data"%pgm r2 = run(r1("LP1"),ICP=[1,2],ISW=2) print "\n%s : third run : compute a curve of folds"%pgm r3 = run(r2) save(r3,'lp') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/int/int.f90000066400000000000000000000052261206161447600174510ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! int : An ODE with boundary and integral constraints !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION E E=EXP(U(1)) F(1)=U(2) F(2)=-PAR(1)*E IF(IJAC.EQ.0)RETURN DFDU(1,1)=0.0 DFDU(1,2)=1 DFDU(2,1)=-PAR(1)*E DFDU(2,2)=0.0 IF(IJAC.EQ.1)RETURN ! *Parameter derivatives DFDP(1,1)=0.0 DFDP(2,1)=-E END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T PAR(1)=0 PAR(2)=0 PAR(3)=0 U(1)=0.0 U(2)=0.0 END SUBROUTINE STPNT SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) ! ---------- ---- 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,*) FB(1)=U0(1)-U1(1)-PAR(2) IF(IJAC.EQ.0)RETURN DBC(1,1)=1.0 DBC(1,2)=0.0 DBC(1,3)=-1.0 DBC(1,4)=0.0 IF(IJAC.EQ.1)RETURN ! *Parameter derivatives DBC(1,5)=0.0 DBC(1,6)=-1.0 DBC(1,7)=0.0 END SUBROUTINE BCND SUBROUTINE ICND(NDIM,PAR,ICP,NINT,U,UOLD,UDOT,UPOLD,FI,IJAC,DINT) ! ---------- ---- 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,*) FI(1)=U(1)-PAR(3) IF(IJAC.EQ.0)RETURN DINT(1,1)=1.0 DINT(1,2)=0.0 IF(IJAC.EQ.1)RETURN ! *Parameter derivatives DINT(1,3)=0.0 DINT(1,4)=0.0 DINT(1,5)=-1.0 END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/ivp/000077500000000000000000000000001206161447600163365ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/ivp/c.ivp000066400000000000000000000005271206161447600173040ustar00rootroot00000000000000NDIM= 2, IPS = -2, IRS = 0, ILP = 0 ICP = [14] NTST= 1, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 500, NPR= 0, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.01, DSMIN= 1e-05, DSMAX= 0.05, IADS= 1 NPAR = 4, THL = {}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/ivp/c.ivp.1000066400000000000000000000005271206161447600174430ustar00rootroot00000000000000NDIM= 2, IPS = -2, IRS = 0, ILP = 0 ICP = [14] NTST= 1, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 500, NPR= 0, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.01, DSMIN= 1e-05, DSMAX= 0.05, IADS= 1 NPAR = 4, THL = {}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/ivp/clean.auto000066400000000000000000000001451206161447600203120ustar00rootroot00000000000000 #============== # AUTO Demo ivp #============== print "\n***Clean the directory***" dl('ivp') cl() auto-07p-0.9.1+dfsg/07p/demos/ivp/ivp.auto000066400000000000000000000003351206161447600200270ustar00rootroot00000000000000 #============== # AUTO Demo ivp #============== pgm = "ivp" print "\nDemo %s is started"%pgm print "\n%s : first run : time integration"%pgm r1 = run(e=pgm,c=pgm) save(r1,pgm) print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/ivp/ivp.f90000066400000000000000000000026651206161447600174650ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! ivp : Time integration (using Implicit Euler) !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION E E=EXP(-PAR(3)*U(1)) F(1)=PAR(2)*U(1)*(1-U(1)) - U(1)*U(2) - PAR(1)*(1-E) F(2)=-U(2) + PAR(4)*U(1)*U(2) END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T ! **Set (constant) parameters PAR(1)=0. PAR(2)=3.0 PAR(3)=5.0 PAR(4)=3.0 ! **Set initial values U(1)=0.3 U(2)=0.3 END SUBROUTINE STPNT SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/kar/000077500000000000000000000000001206161447600163155ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/kar/c.kar000066400000000000000000000005371206161447600172430ustar00rootroot00000000000000NDIM= 5, IPS = 4, IRS = 0, ILP = 1 ICP = [1, 2] NTST= 40, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 6, NINT= 0 NMX= 500, NPR= 500, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-07, EPSS =0.0001 DS = -0.01, DSMIN= 0.001, DSMAX= 1.0, IADS= 1 NPAR = 3, THL = {}, THU = {} UZR = {1: 0.0} auto-07p-0.9.1+dfsg/07p/demos/kar/c.kar.1000066400000000000000000000005371206161447600174020ustar00rootroot00000000000000NDIM= 5, IPS = 4, IRS = 0, ILP = 1 ICP = [1, 2] NTST= 40, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 6, NINT= 0 NMX= 500, NPR= 500, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-07, EPSS =0.0001 DS = -0.01, DSMIN= 0.001, DSMAX= 1.0, IADS= 1 NPAR = 3, THL = {}, THU = {} UZR = {1: 0.0} auto-07p-0.9.1+dfsg/07p/demos/kar/clean.auto000066400000000000000000000001451206161447600202710ustar00rootroot00000000000000 #============== # AUTO Demo kar #============== print "\n***Clean the directory***" dl('kar') cl() auto-07p-0.9.1+dfsg/07p/demos/kar/kar.auto000066400000000000000000000003431206161447600177640ustar00rootroot00000000000000 #============== # AUTO Demo kar #============== pgm = "kar" print "\nDemo %s is started"%pgm print "\n%s : computation of the solution branch"%pgm r1 = run(e=pgm,c=pgm) save(r1,pgm) print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/kar/kar.f90000066400000000000000000000045021206161447600174130ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! kar : The Von Karman swirling flow !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION U1,U2,U3,U4,U5,GAMMA,ZINF U1=U(1) U2=U(2) U3=U(3) U4=U(4) U5=U(5) GAMMA=PAR(1) ZINF =PAR(3) F(1)=ZINF*U2 F(2)=ZINF*U3 F(3)=ZINF*( - 2*GAMMA*U4 + U2*U2 - 2*U1*U3 - U4*U4) F(4)=ZINF*U5 F(5)=ZINF*(2*GAMMA*U2 + 2*U2*U4 - 2*U1*U5) END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T DOUBLE PRECISION GAMMA,FINF,ZINF GAMMA=1. FINF =0. ZINF =500. PAR(1)=GAMMA PAR(2)=-FINF PAR(3)=ZINF U(1)=0. U(2)=0. U(3)=0. U(4)=0. U(5)=0. END SUBROUTINE STPNT SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,F,IJAC,DBC) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), NBC, IJAC DOUBLE PRECISION, INTENT(IN) :: PAR(*), U0(NDIM), U1(NDIM) DOUBLE PRECISION, INTENT(OUT) :: F(NBC) DOUBLE PRECISION, INTENT(INOUT) :: DBC(NBC,*) DOUBLE PRECISION GAMMA,FINF,C,A,B GAMMA=PAR(1) FINF=-PAR(2) C=SQRT(FINF**4 + 4*GAMMA**2) A=SQRT(C + FINF**2) / SQRT(2.d0) B=SQRT(C - FINF**2) / SQRT(2.d0) F(1)=U0(1) F(2)=U0(2) F(3)=U0(4)-1+GAMMA F(4)=(FINF+A)*U1(2) + U1(3) - GAMMA*U1(4)/A F(5)=A*B**2*U1(2)/GAMMA + (FINF+A)*U1(4) + U1(5) F(6)=U1(1)-FINF END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/kdv/000077500000000000000000000000001206161447600163245ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/kdv/c.kdv000066400000000000000000000006061206161447600172560ustar00rootroot00000000000000NDIM= 4, IPS = 9, IRS = 0, ILP = 0 ICP = [1, 3] NTST= 30, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 2, NPR= 20, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.01, DSMIN= 1e-08, DSMAX= 0.1, IADS= 1 NPAR = 15, THL = {}, THU = {} UZR = {1: 3.05} IEQUIB = 0, ITWIST = 0, ISTART = 2 auto-07p-0.9.1+dfsg/07p/demos/kdv/c.kdv.1000066400000000000000000000006061206161447600174150ustar00rootroot00000000000000NDIM= 4, IPS = 9, IRS = 0, ILP = 0 ICP = [1, 3] NTST= 30, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 2, NPR= 20, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.01, DSMIN= 1e-08, DSMAX= 0.1, IADS= 1 NPAR = 15, THL = {}, THU = {} UZR = {1: 3.05} IEQUIB = 0, ITWIST = 0, ISTART = 2 auto-07p-0.9.1+dfsg/07p/demos/kdv/c.kdv.2000066400000000000000000000006051206161447600174150ustar00rootroot00000000000000NDIM= 4, IPS = 9, IRS = 2, ILP = 0 ICP = [3, 9] NTST= 30, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 2, NPR= 20, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -0.01, DSMIN= 1e-10, DSMAX= 5.0, IADS= 1 NPAR = 15, THL = {}, THU = {} UZR = {2: 3.0} IEQUIB = 0, ITWIST = 1, ISTART = 2 auto-07p-0.9.1+dfsg/07p/demos/kdv/c.kdv.3000066400000000000000000000006051206161447600174160ustar00rootroot00000000000000NDIM= 4, IPS = 9, IRS = 3, ILP = 0 ICP = [1, 3] NTST= 30, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 40, NPR= 20, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS =-0.001, DSMIN= 1e-08, DSMAX= 2.0, IADS= 1 NPAR = 15, THL = {}, THU = {} UZR = {1: 3.0} IEQUIB = 0, ITWIST = 1, ISTART = 2 auto-07p-0.9.1+dfsg/07p/demos/kdv/c.kdv.4000066400000000000000000000006511206161447600174200ustar00rootroot00000000000000NDIM= 4, IPS = 9, IRS = 5, ILP = 0 ICP = [3, 21, 22, 24] NTST= 30, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 13, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = -0.1, DSMIN= 1e-12, DSMAX= 1.8, IADS= 1 NPAR = 15, THL = {}, THU = {} UZR = {21: 3.5, 22: 0.0}, STOP = ['UZ2'] IEQUIB = 0, ITWIST = 1, ISTART = -3 auto-07p-0.9.1+dfsg/07p/demos/kdv/c.kdv.5000066400000000000000000000006271206161447600174240ustar00rootroot00000000000000NDIM= 4, IPS = 9, IRS = 11, ILP = 0 ICP = [2, 3, 22, 24, 26, 28] NTST= 50, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 20, NPR= 10, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = -0.01, DSMIN= 1e-12, DSMAX= 3.0, IADS= 1 NPAR = 15, THL = {}, THU = {} UZR = {22: 0.0} IEQUIB = 0, ITWIST = 1, ISTART = -3 auto-07p-0.9.1+dfsg/07p/demos/kdv/c.kdv.6000066400000000000000000000006271206161447600174250ustar00rootroot00000000000000NDIM= 4, IPS = 9, IRS = 13, ILP = 0 ICP = [2, 3, 23, 24, 26, 28] NTST= 50, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 70, NPR= 35, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -0.1, DSMIN= 1e-12, DSMAX= 10.0, IADS= 1 NPAR = 15, THL = {}, THU = {} UZR = {24: 0.0} IEQUIB = 0, ITWIST = 1, ISTART = -3 auto-07p-0.9.1+dfsg/07p/demos/kdv/c.kdv.7000066400000000000000000000005761206161447600174310ustar00rootroot00000000000000NDIM= 4, IPS = 9, IRS = 17, ILP = 0 ICP = [2, 3] NTST= 100, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 1 NPR= 10, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = -2.0, DSMIN= 1e-10, DSMAX= 8.0, IADS= 1 NPAR = 15, THL = {}, THU = {} UZR = {} IEQUIB = 0, ITWIST = 0, ISTART = 1 auto-07p-0.9.1+dfsg/07p/demos/kdv/clean.auto000066400000000000000000000002231206161447600202750ustar00rootroot00000000000000#============== # AUTO Demo kdv #============== print "\n***Clean the directory***" dl("1") dl("2") dl("3") dl("4") dl("5") dl("6") dl("7") cl() auto-07p-0.9.1+dfsg/07p/demos/kdv/kdv.auto000066400000000000000000000003221206161447600177770ustar00rootroot00000000000000r1=run('kdv',sv='1') r2=run(r1,c='kdv.2',sv='2') r3=run(r2,c='kdv.3',sv='3') r4=run(r3('UZ2'),c='kdv.4',sv='4') r5=run(r4,c='kdv.5',sv='5') r6=run(r5('UZ1'),c='kdv.6',sv='6') r7=run(r6('UZ2'),c='kdv.7',sv='7') auto-07p-0.9.1+dfsg/07p/demos/kdv/kdv.c000066400000000000000000000142351206161447600172610ustar00rootroot00000000000000/* chamgr.f -- translated by f2c (version 19991025). You must link the resulting object file with the libraries: -lf2c -lm (in that order) */ #include "auto_f2c.h" /* Common Block Declarations */ extern struct { integer itwist, istart, iequib, nfixed, npsi, nunstab, nstab, nrev; } blhom_1; /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* chamgr: Champneys and Groves solitary waves. */ /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ int func (integer ndim, const doublereal *u, const integer *icp, const doublereal *par, integer ijac, doublereal *f, doublereal *dfdu, doublereal *dfdp) { /* System generated locals */ integer dfdu_dim1, dfdp_dim1; /* Local variables */ doublereal dhdp1, dhdq1, dhdq2, dhdp2, a, b, c; /* ---------- ---- */ /* Function Body */ dfdu_dim1 = dfdp_dim1 = ndim; a = par[0]; b = par[1]; c = par[2]; /* The real equation (Hamiltonian) + lambda (PAR(3)) *dH */ dhdq1 = u[0] * -1.5 * u[0] - a * u[0] + u[2] * .5 * u[2]; dhdp1 = u[2]; dhdq2 = u[1] - b * u[2] + u[0] * u[2]; dhdp2 = u[3] * 7.5; /* \dot q_1 = q_2 */ f[0] = dhdp1 + c * dhdq1; /* \dot p_1 = 3/2 q_1^2 + a q_1 - 1/2 q_2^2 */ f[1] = -dhdq1 + c * dhdp1; /* \dot q_2 = 15/2 p_2 */ f[2] = dhdp2 + c * dhdq2; /* \dot p_2 = -p_1+b q_2-q_1 q_2 */ f[3] = -dhdq2 + c * dhdp2; if (ijac == 0) { return 0; } ARRAY2D(dfdu,0,0) = c * (u[0] * -3. - a); ARRAY2D(dfdu,0,1) = 0.; ARRAY2D(dfdu,0,2) = c * u[2] + 1.; ARRAY2D(dfdu,0,3) = 0.; ARRAY2D(dfdu,1,0) = u[0] * 3. + a; ARRAY2D(dfdu,1,1) = 0.; ARRAY2D(dfdu,1,2) = -u[2] + c; ARRAY2D(dfdu,1,3) = 0.; ARRAY2D(dfdu,2,0) = c * u[2]; ARRAY2D(dfdu,2,1) = c; ARRAY2D(dfdu,2,2) = -c * (b - u[0]); ARRAY2D(dfdu,2,3) = 7.5; ARRAY2D(dfdu,3,0) = -u[2]; ARRAY2D(dfdu,3,1) = -1.; ARRAY2D(dfdu,3,2) = b - u[0]; ARRAY2D(dfdu,3,3) = c * 7.5; if (ijac == 1) { return 0; } ARRAY2D(dfdp,0,0) = -c * u[0]; ARRAY2D(dfdp,0,1) = 0; ARRAY2D(dfdp,0,2) = dhdq1; ARRAY2D(dfdp,1,0) = u[0]; ARRAY2D(dfdp,1,1) = 0; ARRAY2D(dfdp,1,2) = dhdp1; ARRAY2D(dfdp,2,0) = 0; ARRAY2D(dfdp,2,1) = -c * u[2]; ARRAY2D(dfdp,2,2) = dhdq2; ARRAY2D(dfdp,3,0) = 0; ARRAY2D(dfdp,3,1) = u[2]; ARRAY2D(dfdp,3,2) = dhdp2; return 0; } /* func_ */ int stpnt(integer ndim, const doublereal t, doublereal *u, doublereal *par) { /* Local variables */ doublereal a, b, f, s, f2, sec2, d1; /* ---------------- */ /* Sets parameter values for homoclinic bifurcation analysis (IPS=9). */ /* COMMON block needed if IPS=9 (homoclinic bifurcations) : */ /* ---------------------------------------------------------------------- */ /* Problem parameters (only PAR(1-9) are available to the user) : */ /* Parameter adjustments */ /* Function Body */ par[1] = (sqrt(65.) + 3.) / 4.; /* B */ par[0] = (par[1] * 2. + 1.) * .6 * (par[1] - 2.); /* A */ par[2] = 0.; /* C or lambda */ par[10] = 20.; /* ---------------------------------------------------------------------- */ /* If IEQUIB=1 then put initial equilibrium in PAR(11+i), i=0,...,NDIM-1 : */ /* truncated time interval */ if (blhom_1.iequib != 0) { par[11] = 0.; par[12] = 0.; par[13] = 0.; par[14] = 0.; } /* ---------------------------------------------------------------------- */ /* IF ISTART=2 then put analytic homoclinic orbit here with T in the */ /* interval [0,1] */ /* test example (a=0,b=1) */ if (blhom_1.istart == 2) { if (blhom_1.nrev == 0) { s = (t - .5) * par[10]; } else { s = (t - 1.) * par[10]; } f = sqrt((par[1] * 2. + 1.) * .75); /* Computing 2nd power */ d1 = cosh(f * s); sec2 = 1 / (d1 * d1); f2 = f * f; u[0] = f2 * 2. * sec2; u[1] = f2 * -.13333333333333333 * f * tanh(f * s) * sec2 * (f2 * 4 - f2 * 12. * sec2 - 15.); u[2] = f2 * -4. * f * tanh(f * s) * sec2; u[3] = f2 * .53333333333333333 * f2 * sec2 * (2. - sec2 * 3.); a = par[0]; b = par[1]; /* H = -0.5D0*(U(1)+A)*U(1)*U(1)+U(2)*U(3)- */ /* + 0.5D0*(B-U(1))*U(3)*U(3)+15D0/4D0*U(4)*U(4) */ /* PRINT *, H */ } /* ---------------------------------------------------------------------- */ /* Distance along the unstable manifold : */ if (blhom_1.istart == 3) { par[ndim * blhom_1.iequib + 11] = -1.e-5; } /* ---------------------------------------------------------------------- */ /* C */ return 0; } /* stpnt_ */ int pvls(integer ndim, const doublereal *u, doublereal *par) { /* Local variables */ integer i; /* COMMON block needed if IPS=9 (homoclinic bifurcations) : */ /* If IEQUIB=0 put analytic equilibrium in PAR(11+i), i=0,...,NDIM-1 : */ /* Parameter adjustments */ /* Function Body */ for (i = 0; i < ndim; ++i) { par[i + 11] = 0.; } return 0; } /* pvls_ */ 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; } /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ auto-07p-0.9.1+dfsg/07p/demos/kpr/000077500000000000000000000000001206161447600163345ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/kpr/c.kpr000066400000000000000000000005611206161447600172760ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 0, ILP = 0 ICP = [11, 17] NTST= 15, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 35, NPR= 100, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.1, DSMIN= 0.001, DSMAX= 2.0, IADS= 1 NPAR = 15, THL = {}, THU = {} UZR = {17: 0.0} ISTART = 3 auto-07p-0.9.1+dfsg/07p/demos/kpr/c.kpr.1000066400000000000000000000005611206161447600174350ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 0, ILP = 0 ICP = [11, 17] NTST= 15, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 35, NPR= 100, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.1, DSMIN= 0.001, DSMAX= 2.0, IADS= 1 NPAR = 15, THL = {}, THU = {} UZR = {17: 0.0} ISTART = 3 auto-07p-0.9.1+dfsg/07p/demos/kpr/c.kpr.10000066400000000000000000000007011206161447600175110ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 7, ILP = 0 ICP = [1, 2, 3, 29, 30, 33] NTST= 25, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 30, NPR= 100, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 4e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.5, DSMIN= 0.001, DSMAX= 5.0, IADS= 1 NPAR = 15, THL = {}, THU = {} UZR = {29: 0.0, 30: 0.0, 33: 0.0} IEQUIB = 1, ITWIST = 1, ISTART = 1 IFIXED = [13], IPSI = [9] auto-07p-0.9.1+dfsg/07p/demos/kpr/c.kpr.11000066400000000000000000000007011206161447600175120ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 8, ILP = 0 ICP = [1, 2, 3, 29, 30, 33] NTST= 30, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 30, NPR= 100, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.1, DSMIN= 0.001, DSMAX= 0.5, IADS= 1 NPAR = 15, THL = {}, THU = {} UZR = {29: 0.0, 30: 0.0, 33: 0.0} IEQUIB = 1, ITWIST = 1, ISTART = 1 IFIXED = [13], IPSI = [9] auto-07p-0.9.1+dfsg/07p/demos/kpr/c.kpr.12000066400000000000000000000006451206161447600175220ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 8, ILP = 0 ICP = [1, 2, 3] NTST= 40, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 50, NPR= 10, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -0.2, DSMIN= 0.001, DSMAX= 0.5, IADS= 1 NPAR = 15, THL = {}, THU = {} UZR = {} NSTAB = 2, IEQUIB = 1, ITWIST = 0, ISTART = 1 IFIXED = [9], IPSI = [] auto-07p-0.9.1+dfsg/07p/demos/kpr/c.kpr.13000066400000000000000000000006451206161447600175230ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 11, ILP = 0 ICP = [1, 2, 3] NTST= 40, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 50, NPR= 10, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -0.2, DSMIN= 0.001, DSMAX= 0.5, IADS= 1 NPAR = 15, THL = {}, THU = {} UZR = {} NSTAB = 2, IEQUIB = 1, ITWIST = 0, ISTART = 1 IFIXED = [9], IPSI = [] auto-07p-0.9.1+dfsg/07p/demos/kpr/c.kpr.2000066400000000000000000000005601206161447600174350ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 2, ILP = 0 ICP = [11, 1] NTST= 15, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 50, NPR= 100, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.1, DSMIN= 0.001, DSMAX= 2.0, IADS= 1 NPAR = 15, THL = {}, THU = {} UZR = {11: 60.0} ISTART = 3 auto-07p-0.9.1+dfsg/07p/demos/kpr/c.kpr.3000066400000000000000000000005641206161447600174420ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 4, ILP = 0 ICP = [11, 1] NTST= 15, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 2, NPR= 100, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.1, DSMIN= 0.001, DSMAX= 2.0, IADS= 1 NPAR = 15, THL = {}, THU = {} UZR = {} ITWIST = 1, ISTART = 1 auto-07p-0.9.1+dfsg/07p/demos/kpr/c.kpr.4000066400000000000000000000006551206161447600174440ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 6, ILP = 0 ICP = [1, 2, 10, 29, 30, 33] NTST= 25, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 50, NPR= 50, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.1, DSMIN= 0.01, DSMAX= 0.2, IADS= 1 NPAR = 15, THL = {}, THU = {} UZR = {29: 0.0, 30: 0.0, 33: 0.0} ITWIST = 1, ISTART = 1 IPSI = [9,10,13] auto-07p-0.9.1+dfsg/07p/demos/kpr/c.kpr.5000066400000000000000000000006551206161447600174450ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 6, ILP = 0 ICP = [1, 2, 10, 29, 30, 33] NTST= 25, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 50, NPR= 50, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -0.1, DSMIN= 0.01, DSMAX= 0.2, IADS= 1 NPAR = 15, THL = {}, THU = {} UZR = {29: 0.0, 30: 0.0, 33: 0.0} ITWIST = 1, ISTART = 1 IPSI = [9,10,13] auto-07p-0.9.1+dfsg/07p/demos/kpr/c.kpr.6000066400000000000000000000006531206161447600174440ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 5, ILP = 0 ICP = [11, 2] NTST= 45, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 40, NPR= 100, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.5, DSMIN= 0.01, DSMAX= 5.0, IADS= 1 NPAR = 15, THL = {11: 0.01}, THU = {} UZR = {11: 1000.0}, UZSTOP = {11: 1100.0} ITWIST = 0, ISTART = 1 IPSI = [9,10] auto-07p-0.9.1+dfsg/07p/demos/kpr/c.kpr.7000066400000000000000000000006311206161447600174410ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 6, ILP = 0 ICP = [1, 2, 29, 30] NTST= 40, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 40, NPR= 50, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.05, DSMIN= 0.01, DSMAX= 0.5, IADS= 1 NPAR = 15, THL = {}, THU = {} UZR = {29: 0.0, 30: 0.0} ITWIST = 0, ISTART = 1 IPSI = [9,10] auto-07p-0.9.1+dfsg/07p/demos/kpr/c.kpr.8000066400000000000000000000006451206161447600174470ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 8, ILP = 0 ICP = [1, 2, 35, 36] NTST= 40, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 80, NPR= 20, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-5 DS = 0.01, DSMIN= 0.001, DSMAX= 0.05, IADS= 1 NPAR = 15, THL = {}, THU = {} UZR = {35: 0.0, 36: 0.0} IEQUIB = 2, ITWIST = 0, ISTART = 1 IPSI = [15,16] auto-07p-0.9.1+dfsg/07p/demos/kpr/c.kpr.9000066400000000000000000000006121206161447600174420ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 11, ILP = 0 ICP = [1, 2] NTST= 40, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 500, NPR= 50, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.1, DSMIN= 0.001, DSMAX= 0.5, IADS= 1 NPAR = 15, THL = {}, THU = {} UZR = {} NSTAB = 2, IEQUIB = 1, ITWIST = 0, ISTART = 1 auto-07p-0.9.1+dfsg/07p/demos/kpr/clean.auto000066400000000000000000000002601206161447600203060ustar00rootroot00000000000000#============== # AUTO Demo san #============== print "\n***Clean the directory***" for name in ["1", "2", "3", "4", "6", "7", "8", "9", "10", "11", "12"]: dl(name) cl() auto-07p-0.9.1+dfsg/07p/demos/kpr/kpr.auto000066400000000000000000000025251206161447600200260ustar00rootroot00000000000000#========= # Demo kpr #========= pgm = 'kpr' print "Starting from analytical solution" print pgm, ": first run : continuation in the period T" r1=run('kpr',c='kpr.1',sv='1') print pgm, ": second run : locate the homoclinic orbit" r2=run(r1('UZ1'),c='kpr.2',sv='2') print pgm, ": third run : generate adjoint variables" r3=run(r2('UZ1'),c='kpr.3',sv='3') print pgm, ": fourth run : continue the homoclinic orbit" r3=r3+run(r3,c='kpr.4',ap='3') print pgm, ": fifth run : continue in reverse direction" r3=r3+run(r3()[0],c='kpr.5',ap='3') print pgm, ": sixth run : increase the period" r6=run(r2('EP1'),c='kpr.6',sv='6') print pgm, ": seventh run : recompute the branch of homoclinic orbits" r7=run(r6('UZ1'),c='kpr.7',sv='7') print pgm, ": eighth run : continue central saddle-node homoclinics" r8=run(r7('UZ1'),c='kpr.8',sv='8') print pgm, ": ninth run : continue homoclinics from codim-2 point" r9=run(r8('UZ1'),c='kpr.9',sv='9') print pgm, ": tenth run : 3-parameter curve of inclination-flips" r10=run(r3('UZ1'),c='kpr.10',sv='10') print pgm, ": eleventh run : another curve of inclination-flips" r11=run(r3('UZ2'),c='kpr.11',sv='11') print pgm, ": twelfth run : non-central saddle-node homoclinics" r12=run(r7('UZ1'),c='kpr.12',sv='12') print pgm, ": thirteenth run : non-central saddle-node homoclinics" r12=r12+run(r8('UZ1'),c='kpr.13',ap='12') auto-07p-0.9.1+dfsg/07p/demos/kpr/kpr.f90000066400000000000000000000056351206161447600174610ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! kpr : Homoclinic bifurcations in Koper's extended Van der Pol model !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM,ICP(*),IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM),DFDP(NDIM,*) F(1)=PAR(3) * ( PAR(2)*U(2) - U(1)**3 + 3.0*U(1) - PAR(1) ) F(2)=U(1) - 2*U(2) + U(3) F(3)=U(2) - U(3) IF(IJAC.EQ.0)RETURN DFDU(1,1)=PAR(3)*(-3.0*U(1)**2 + 3.0) DFDU(1,2)=PAR(3)*PAR(2) DFDU(1,3)=0.0 DFDU(2,1)=1.0 DFDU(2,2)=-2.0 DFDU(2,3)=1.0 DFDU(3,1)=0.0 DFDU(3,2)=1.0 DFDU(3,3)=-1.0 IF(IJAC.EQ.1)RETURN DFDP(1,1)=- PAR(3) DFDP(2,1)=0.d0 DFDP(3,1)=0.d0 DFDP(1,2)=PAR(3) *U(2) DFDP(2,2)=0.d0 DFDP(3,2)=0.d0 DFDP(1,3)=PAR(2)*U(2) - U(1)**3 + 3.0*U(1) - PAR(1) DFDP(2,3)=0.d0 DFDP(3,3)=0.d0 END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------------- ! Sets parameter values for homoclinic bifurcation analysis (IPS=9). IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T ! COMMON block needed if IPS=9 (homoclinic bifurcations) : INTEGER ITWIST,ISTART,IEQUIB,NFIXED,NPSI,NUNSTAB,NSTAB,NREV COMMON /BLHOM/ ITWIST,ISTART,IEQUIB,NFIXED,NPSI,NUNSTAB,NSTAB,NREV !---------------------------------------------------------------------- ! Problem parameters (only PAR(1-9) are available to the user) : PAR(1) = -1.851185124d0 ! lambda PAR(2) = -0.15D0 ! kappa PAR(3) = 10.0d0 ! 1/epsilon_1 PAR(11)= 0.1d0 ! truncated time interval !---------------------------------------------------------------------- ! If IEQUIB=1 then put the equilibrium in PAR(11+i), i=1,...,NDIM : IF (IEQUIB.NE.0) THEN PAR(12) = -0.9591016 PAR(13) = -0.9591016 PAR(14) = -0.9591016 ENDIF !---------------------------------------------------------------------- ! Distance along the unstable manifold : IF (ISTART.EQ.3) THEN PAR(12+NDIM*IEQUIB)=-0.00001 ENDIF !---------------------------------------------------------------------- END SUBROUTINE STPNT SUBROUTINE PVLS END SUBROUTINE PVLS SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT auto-07p-0.9.1+dfsg/07p/demos/lcbp/000077500000000000000000000000001206161447600164605ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/lcbp/c.lcbp000066400000000000000000000005351206161447600175470ustar00rootroot00000000000000NDIM= 2, IPS = 2, IRS = 0, ILP = 1 ICP = [1, 11] NTST= 100, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 2, NINT= 1 NMX= 50, NPR= 10, MXBF= 0, IID = 2, ITMX= 100, ITNW= 7, NWTN= 5, JAC= 1 EPSL= 1e-08, EPSU = 1e-08, EPSS = 1e-06 DS = 0.01, DSMIN= 1e-10, DSMAX= 0.1, IADS= 1 NPAR = 11, THL = {}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/lcbp/clean.auto000066400000000000000000000003471206161447600204400ustar00rootroot00000000000000 #=============== # AUTO Demo lcbp #=============== pgm="lcbp" print "\n***Clean the directory***" dl(pgm+'.1') dl(pgm+'.1.sw') dl(pgm+'.2.sw') dl(pgm+'.2.bw') dl(pgm+'.2.fw') dl(pgm+'.3.sw') dl(pgm+'.3.bw') dl(pgm+'.3.fw') cl() auto-07p-0.9.1+dfsg/07p/demos/lcbp/lcbp.auto000066400000000000000000000015031206161447600202710ustar00rootroot00000000000000 #======================== # AUTO Demo lcbp # BPCONT for limit cycles #======================== pgm="lcbp" load(pgm) print "\n***"+pgm+": run 1: cycle continuation***" r1=run(sv=pgm+'.1') bp=r1('BP1') print "\n***"+pgm+": run 1: branch switch***" run(bp,ISW=-1,NMX=5,NPR=1,sv=pgm+'.1.sw') for isw in [2,3]: if isw==2: msg="\n***"+pgm+": run 2: BP cont non-generic " bp=load(bp,ICP=[1,2,11]) else: msg="\n***"+pgm+": run 3: BP cont generic " bp=load(bp,ICP=[1,2,3,11]) solprefix=pgm+'.'+str(isw)+'.' print msg+"(sw)***" sw=run(bp,ISW=isw,NMX=20,NPR=10,DS=1.e-4,UZSTOP={1:0},sv=solprefix+'sw') print msg+"(fw)***" run(sw,NMX=50,DS=0.01,sv=solprefix+'fw') print msg+"(bw)***" run(sw,NMX=50,DS=-0.01,STOP=['LP1','BP1'],sv=solprefix+'bw') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/lcbp/lcbp.f90000066400000000000000000000045411206161447600177240ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! Demo LCNF: The limit cycle BP normal form !---------------------------------------------------------------------- !---------------------------------------------------------------------- ! !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) !---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, IJAC, ICP(*) DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM), DFDU(NDIM,*), DFDP(NDIM,*) DOUBLE PRECISION pi pi=4*ATAN(1.d0) ! Equations F(1)=-U(1)*(U(1)**2+U(2)**2-(PAR(1)+PAR(2))* & SQRT(U(1)**2+U(2)**2)+PAR(1)*PAR(2)+PAR(3))-2*pi*U(2) F(2)=-U(2)*(U(1)**2+U(2)**2-(PAR(1)+PAR(2))* & SQRT(U(1)**2+U(2)**2)+PAR(1)*PAR(2)+PAR(3))+2*pi*U(1) IF(IJAC.EQ.0)RETURN DFDU(1,1)=-(U(1)**2+U(2)**2-(PAR(1)+PAR(2))* & SQRT(U(1)**2+U(2)**2)+PAR(1)*PAR(2)+PAR(3))-U(1)* & (2*U(1)-U(1)*(PAR(1)+PAR(2))/SQRT(U(1)**2+U(2)**2)) DFDU(1,2)=-U(1)*(2*U(2)-U(2)*(PAR(1)+PAR(2))/ & SQRT(U(1)**2+U(2)**2))-2*pi DFDU(2,1)=-U(2)*(2*U(1)-U(1)*(PAR(1)+PAR(2))/ & SQRT(U(1)**2+U(2)**2))+2*pi DFDU(2,2)=-(U(1)**2+U(2)**2-(PAR(1)+PAR(2))* & SQRT(U(1)**2+U(2)**2)+PAR(1)*PAR(2)+PAR(3))-U(2)* & (2*U(2)-U(2)*(PAR(1)+PAR(2))/SQRT(U(1)**2+U(2)**2)) IF(IJAC.EQ.1)RETURN DFDP(1,1)=-U(1)*(-SQRT(U(1)**2+U(2)**2)+PAR(2)) DFDP(1,2)=-U(1)*(-SQRT(U(1)**2+U(2)**2)+PAR(1)) DFDP(1,3)=-U(1) DFDP(2,1)=-U(2)*(-SQRT(U(1)**2+U(2)**2)+PAR(2)) DFDP(2,2)=-U(2)*(-SQRT(U(1)**2+U(2)**2)+PAR(1)) DFDP(2,3)=-U(2) END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) !---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(IN) :: T DOUBLE PRECISION, INTENT(OUT) :: U(NDIM), PAR(*) DOUBLE PRECISION pi pi=4*ATAN(1.d0) ! Parameters initialization PAR(1:3)=(/1.0,2.0,0.0/) PAR(11)=1.0 U(1)=PAR(1)*COS(2*pi*T) U(2)=PAR(1)*SIN(2*pi*T) END SUBROUTINE STPNT SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/lin/000077500000000000000000000000001206161447600163225ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/lin/c.lin000066400000000000000000000005511206161447600172510ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 0, ILP = 0 ICP = [1, 3] NTST= 5, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 2, NINT= 1 NMX= 100, NPR= 100, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.2, DSMIN= 0.001, DSMAX= 0.2, IADS= 1 NPAR = 3, THL = {}, THU = {} UZSTOP = {3: 1.0, 1: 5.0} auto-07p-0.9.1+dfsg/07p/demos/lin/c.lin.1000066400000000000000000000005511206161447600174100ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 0, ILP = 0 ICP = [1, 3] NTST= 5, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 2, NINT= 1 NMX= 100, NPR= 100, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.2, DSMIN= 0.001, DSMAX= 0.2, IADS= 1 NPAR = 3, THL = {}, THU = {} UZSTOP = {3: 1.0, 1: 5.0} auto-07p-0.9.1+dfsg/07p/demos/lin/c.lin.2000066400000000000000000000005511206161447600174110ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 2, ILP = 0 ICP = [1, 3] NTST= 6, NCOL= 4, IAD = 3, ISP = 2, ISW =-1, IPLT= 0, NBC= 2, NINT= 1 NMX= 100, NPR= 100, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.2, DSMIN= 0.001, DSMAX= 0.5, IADS= 1 NPAR = 3, THL = {}, THU = {} UZR = {3: 1.0}, A1 = 5.0 auto-07p-0.9.1+dfsg/07p/demos/lin/c.lin.3000066400000000000000000000005511206161447600174120ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 7, ILP = 0 ICP = [1, 2] NTST= 5, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 2, NINT= 1 NMX= 100, NPR= 100, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.2, DSMIN= 0.001, DSMAX= 0.5, IADS= 1 NPAR = 3, THL = {}, THU = {} UZR = {3: 1.0}, A1 = 5.0 auto-07p-0.9.1+dfsg/07p/demos/lin/clean.auto000066400000000000000000000001561206161447600203000ustar00rootroot00000000000000 #============== # AUTO Demo lin #============== print "\n***Clean the directory***" dl('lin') dl('2p') cl() auto-07p-0.9.1+dfsg/07p/demos/lin/lin.auto000066400000000000000000000010101206161447600177660ustar00rootroot00000000000000 #============== # AUTO Demo lin #============== pgm = "lin" print "\nDemo %s is started"%pgm print "\n%s : first run : compute trivial solutions and locate eigenvalues"%pgm r1 = run(e=pgm,c=pgm) print "\n%s : second run : compute a few steps on the bifurcating branch"%pgm r2 = run(r1("BP1"),NTST=6,ISW=-1,DSMAX=0.5,A1=5.0) save(r1+r2,'lin') print "\n%s : third run : compute a 2-parameter curve of eigenvalues"%pgm r3 = run(r2("UZ1"),ICP=[1,2],NTST=5,ISW=1) save(r3,'2p') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/lin/lin.f90000066400000000000000000000040701206161447600174250ustar00rootroot00000000000000!--------------------------------------------------------------------- !--------------------------------------------------------------------- ! lin : A linear ODE eigenvalue problem !--------------------------------------------------------------------- !--------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION PI PI=4*ATAN(1.0D0) F(1) = U(2) F(2) = -( PAR(1)*PI )**2 * U(1) END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T PAR(1)=0. PAR(2)=0. PAR(3)=0. U(1)=0.0 U(2)=0.0 END SUBROUTINE STPNT SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) ! ---------- ---- 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,*) FB(1)=U0(1)-PAR(2) FB(2)=U1(1) END SUBROUTINE BCND SUBROUTINE ICND(NDIM,PAR,ICP,NINT,U,UOLD,UDOT,UPOLD,FI,IJAC,DINT) ! ---------- ---- 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,*) FI(1)=U(1)*U(1)-PAR(3) END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/log/000077500000000000000000000000001206161447600163215ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/log/autorc000066400000000000000000000140621206161447600175440ustar00rootroot00000000000000# Example file for autorc: you need to uncomment settings for them # to take effect! [AUTO_plotter] # Variable name to use instead of 't' for solutions. #solution_indepvarname = "time" # A dictionary mapping names to axis labels. labelnames = {"x": "$x$", "mu": "$\mu$"} # The type of the plot, either "solution" or "bifurcation" #type = "bifurcation" # or "solution" # The column to plot along the X-axis for bifurcation diagrams. bifurcation_x = ["mu"] # The column to plot along the Y-axis for bifurcation diagrams. bifurcation_y = ["x"] # The column to plot along the Z-axis for bifurcation diagrams. #bifurcation_z = None # The column to plot along the X-axis for solutions. #solution_x = [0,3,6,9] # The column to plot along the Y-axis for solutions. #solution_y = [1,4,7,10] # The column to plot along the Z-axis for solutions. #solution_z = [2,5,8,11] # A list of colors to use for multiple plots. #color_list = "black red green blue" # color_list index: 'branch' (BR), 'type' (TY), or 'curve' (seq.). #coloring_method = "curve" # or "branch" or "type" # Turn on or off the grid. #grid = False # Turn on or off stability information using dashed curves #stability = False # Whether or not to display label numbers in the graph. #use_labels = True # Whether or not to display bifurcation symbols in the graph. #use_symbols = False # Whether to use letters (True) or symbols (False) for special points. #letter_symbols = True # Default d0, d1, d2, etc. setting to use with PyPLAUT (@pp). #default_option="d1" #d1 = {"grid": False, "use_labels": True, "use_symbols": True, "stability":True} # similarly you can redefine d0, d2, d3, d4. # The label for the top title. #top_title = '' # The font size for the top title. #top_title_fontsize = 12 # The font size for the x-axis label. #xlabel_fontsize = 12 # The font size for the y-axis label. #ylabel_fontsize = 12 # The font size for the z-axis label. #zlabel_fontsize = 12 # Azimuth of the axes in 3D plots. #azimuth = -60 # for 3D plots, in degrees # Elevation of the axes in 3D plots. #elevation = 30 # for 3D plots, in degrees # The lower bound for the x-axis of the plot. #minx = 0 # The upper bound for the x-axis of the plot. #maxx = 0 # The lower bound for the y-axis of the plot. #miny = 0 # The upper bound for the y-axis of the plot. #maxy = 0 # The lower bound for the z-axis of the plot. #minz = 0 # The upper bound for the z-axis of the plot. #maxz = 0 # The label for the x-axis. #xlabel = '' # The label for the y-axis. #ylabel = '' # The label for the z-axis. #zlabel = '' # Width to use for lines and curves. #line_width = 2.0 # List of dash, no-dash lengths for dashed lines. #dashes = (6.0,6.0) # The background color of the plot. #background = "white" # The foreground color of the plot #foreground = "black" # The color to use for the marker symbols. #symbol_color = "red" # The font to use for marker symbols. #symbol_font = "-misc-fixed-*-*-*-*-*-*-*-*-*-*-*-*" # Turn on or off the axis, tick marks, etc. #decorations = True # Whether to use a smart but slower label placement algorithm. #smart_label = True # Width of the graph. #width = 600 # Height of the graph. #height = 480 # The margin between the graph and the left edge. #left_margin = 80 # The margin between the graph and the left edge. #right_margin = 40 # The margin between the graph and the top edge. #top_margin = 40 # The margin between the graph and the bottom edge. #bottom_margin = 40 # The number of ticks on the x-axis. #xticks = 5 # The number of ticks on the y-axis. #yticks = 5 # The number of ticks on the z-axis. #zticks = 5 # A string which defines the format of the tick labels. #tick_label_template = "%.2e" # The length of the tick marks. #tick_length = 0.2 # The length of the odd tick marks. #odd_tick_length = 0.4 # The length of the even tick marks. #even_tick_length = 0.2 # The PostScript output mode: 'color', 'gray' or 'monochrome'. #ps_colormode = "color" # The t value to marker with a small ball. #mark_t = None #or a real value between 0 and 1 # A set of bifurcation columns the user is likely to use. #bifurcation_column_defaults = None # A set of solution columns the user is likely to use. #solution_column_defaults = [[0,3,6,9],[1,4,7,10],[2,5,8,11],['t','t','t','t']] # An array of labels to plot, or 'all' for all labels. #label = [1,2,3] # or "all" # A set of labels that the user is likely to use. #label_defaults = None # The index/indices of the solution we wish to draw #index = [0] # The filename of the bifurcation diagram to plot. #bifurcation_diagram_filename = 'fort.7' # The filename of the solution to plot. #solution_filename = 'fort.8' # The symbol to use for bifurcation points. # Here 8 denotes the size of the square #bifurcation_symbol = "square8" # The symbol to use for limit points. #limit_point_symbol = None # The symbol to use for Hopf bifurcation points. #hopf_symbol = "fillsquare" # The symbol to use for period doubling bifurcation points. #period_doubling_symbol = "doubletriangle" # The symbol to use for torus bifurcation points. #torus_symbol = "filldiamond" # The symbol to use for user defined output points. #user_point_symbol = "U" # The symbol to use for error points. #error_symbol = None # The symbol to use for Cusp points. #cusp_symbol = None # The symbol to use for Bogdanov-Takens points. #bogdanov_takens_symbol = "circle" # The symbol to use for Generalized Hopf points. #generalized_hopf_symbol = "triangle" # The symbol to use for zero-Hopf points. #zero_hopf_symbol = "doubletriangle" # The symbol to use for fold-flip points. #fold_flip_symbol = "doubletriangle" # The symbol to use for fold-torus points. #fold_torus_symbol = "doubletriangle" # The symbol to use for flip-torus points. #flip_torus_symbol = "doubletriangle" # The symbol to use for torus-torus points. #torus_torus_symbol = "doubletriangle" # The symbol to use for 1:1 resonance points. #1_1_resonance_symbol = "filldiamond" # The symbol to use for 1:2 resonance points. #1_2_resonance_symbol = "filldiamond" # The symbol to use for 1:3 resonance points. #1_3_resonance_symbol = "filldiamond" # The symbol to use for 1:4 resonance points. #1_4_resonance_symbol = "filldiamond" auto-07p-0.9.1+dfsg/07p/demos/log/c.log000066400000000000000000000006151206161447600172500ustar00rootroot00000000000000unames = {1:'x'} parnames = {1:'mu'} NDIM= 1, IPS = -1, IRS = 0, ILP = 1 ICP = ['mu'] NTST= 10, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 300, NPR= 0, MXBF= -1, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 1 EPSL= 1e-08, EPSU = 1e-08, EPSS =1e-6 DS = 0.0001, DSMIN= 0.0001, DSMAX= 0.02, IADS= 1 NPAR = 3, THL = {}, THU = {} UZSTOP = {'mu': 3.6} auto-07p-0.9.1+dfsg/07p/demos/log/clean.auto000066400000000000000000000001541206161447600202750ustar00rootroot00000000000000 #============== # AUTO Demo hen #============== print "\n***Clean the directory***" delete('log') clean() auto-07p-0.9.1+dfsg/07p/demos/log/log.auto000066400000000000000000000007771206161447600200070ustar00rootroot00000000000000 #============== # AUTO Demo log #============== print "\nDemo log is started" print "\n%log : first run : fixed point solution branch" r = run("log") save("log") print "\nlog : perform 5 period-doublings" olddiff = 1 for i in range(5): mu = r('PD1')['mu'] r = run(r('PD1'),ISW=-1,SP=['BP0']) append("log") diff = r('PD1')['mu'] - mu feig = olddiff/diff olddiff = diff relabel("log") print('Approximation of Feigenbaum constant: %s'%feig) print "\n***Clean the directory***" clean() auto-07p-0.9.1+dfsg/07p/demos/log/log.f90000066400000000000000000000025011206161447600174200ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! log : The logistic map !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION x, mu x=U(1) mu=PAR(1) F(1)=mu*x*(1-x) IF(IJAC.EQ.0)RETURN DFDU(1,1)=mu*(1-2*x) IF(IJAC.EQ.1)RETURN DFDP(1,1)=x*(1-x) END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T PAR(1)=0 ! mu U(1)=0 ! x END SUBROUTINE STPNT SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/lor/000077500000000000000000000000001206161447600163345ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/lor/c.lor000066400000000000000000000005671206161447600173040ustar00rootroot00000000000000dat = 'lor' NDIM= 3, IPS = 2, IRS = 0, ILP = 0 ICP = [1, 11] NTST= 20, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 4, NBC= 0, NINT= 0 NMX= 50, NPR= 100, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = -0.5, DSMIN= 0.01, DSMAX= 25.0, IADS= 1 NPAR = 3, THL = {11: 0.0}, THU = {} UZSTOP = {1: 200.0} auto-07p-0.9.1+dfsg/07p/demos/lor/c.lor.1000066400000000000000000000005671206161447600174430ustar00rootroot00000000000000dat = 'lor' NDIM= 3, IPS = 2, IRS = 0, ILP = 0 ICP = [1, 11] NTST= 20, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 4, NBC= 0, NINT= 0 NMX= 50, NPR= 100, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = -0.5, DSMIN= 0.01, DSMAX= 25.0, IADS= 1 NPAR = 3, THL = {11: 0.0}, THU = {} UZSTOP = {1: 200.0} auto-07p-0.9.1+dfsg/07p/demos/lor/c.lor.2000066400000000000000000000005531206161447600174370ustar00rootroot00000000000000NDIM= 3, IPS = 2, IRS = 2, ILP = 0 ICP = [1, 11] NTST= 40, NCOL= 4, IAD = 3, ISP = 2, ISW =-1, IPLT= 4, NBC= 0, NINT= 0 NMX= 50, NPR= 100, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = -0.1, DSMIN= 0.01, DSMAX= 25.0, IADS= 1 NPAR = 3, THL = {11: 0.0}, THU = {} UZSTOP = {1: 200.0} auto-07p-0.9.1+dfsg/07p/demos/lor/c.lor.3000066400000000000000000000005531206161447600174400ustar00rootroot00000000000000NDIM= 3, IPS = 2, IRS = 4, ILP = 0 ICP = [1, 11] NTST= 60, NCOL= 4, IAD = 3, ISP = 2, ISW =-1, IPLT= 4, NBC= 0, NINT= 0 NMX= 50, NPR= 100, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.1, DSMIN= 0.01, DSMAX= 25.0, IADS= 1 NPAR = 3, THL = {11: 0.0}, THU = {} UZSTOP = {1: 200.0} auto-07p-0.9.1+dfsg/07p/demos/lor/clean.auto000066400000000000000000000001451206161447600203100ustar00rootroot00000000000000#============== # AUTO Demo lor #============== print "\n***Clean the directory***" dl("lor") cl() auto-07p-0.9.1+dfsg/07p/demos/lor/lor.auto000066400000000000000000000005521206161447600200240ustar00rootroot00000000000000#========= # Demo lor #========= pgm = 'lor' print pgm, ": first run : a solution branch starting from numerical data" lor=run('lor',c='lor.1') print pgm, ": second run : switch branches at a period-doubling" lor=lor+run(lor('PD1'),c='lor.2') print pgm, ": third run : third run : another period-doubling" lor=lor+run(lor('PD2'),c='lor.3') save(lor,'lor') auto-07p-0.9.1+dfsg/07p/demos/lor/lor.dat000066400000000000000000000166651206161447600176400ustar00rootroot00000000000000 0.10002000D+01 -0.40674614D+01 -0.24183805D+02 0.21900338D+03 0.10040000D+01 -0.48346488D+01 -0.25134763D+02 0.21720890D+03 0.10062000D+01 -0.52832089D+01 -0.25781544D+02 0.21621997D+03 0.10084000D+01 -0.57368420D+01 -0.26501316D+02 0.21527021D+03 0.10106000D+01 -0.61970481D+01 -0.27296145D+02 0.21436206D+03 0.10128000D+01 -0.66653405D+01 -0.28168187D+02 0.21349829D+03 0.10152000D+01 -0.71872234D+01 -0.29210201D+02 0.21261035D+03 0.10176000D+01 -0.77225547D+01 -0.30349783D+02 0.21178370D+03 0.10200000D+01 -0.82733655D+01 -0.31590027D+02 0.21102364D+03 0.10224000D+01 -0.88417127D+01 -0.32934076D+02 0.21033620D+03 0.10228000D+01 -0.89382880D+01 -0.33168397D+02 0.21022915D+03 0.10252000D+01 -0.95297283D+01 -0.34637529D+02 0.20963505D+03 0.10276000D+01 -0.10143249D+02 -0.36217223D+02 0.20912929D+03 0.10300000D+01 -0.10780983D+02 -0.37910433D+02 0.20872053D+03 0.10324000D+01 -0.11445082D+02 -0.39719891D+02 0.20841843D+03 0.10348000D+01 -0.12137705D+02 -0.41647996D+02 0.20823371D+03 0.10372000D+01 -0.12861015D+02 -0.43696679D+02 0.20817826D+03 0.10396000D+01 -0.13617161D+02 -0.45867244D+02 0.20826520D+03 0.10442000D+01 -0.15165913D+02 -0.50369061D+02 0.20888363D+03 0.10488000D+01 -0.16857320D+02 -0.55310922D+02 0.21019520D+03 0.10534000D+01 -0.18704181D+02 -0.60662456D+02 0.21233518D+03 0.10580000D+01 -0.20716701D+02 -0.66361947D+02 0.21545738D+03 0.10626000D+01 -0.22900940D+02 -0.72304459D+02 0.21973049D+03 0.10672000D+01 -0.25256756D+02 -0.78328031D+02 0.22532986D+03 0.10718000D+01 -0.27775193D+02 -0.84199160D+02 0.23242270D+03 0.10764000D+01 -0.30435368D+02 -0.89600091D+02 0.24114474D+03 0.10810000D+01 -0.33201038D+02 -0.94122231D+02 0.25156664D+03 0.10856000D+01 -0.36017271D+02 -0.97272039D+02 0.26365071D+03 0.10902000D+01 -0.38807958D+02 -0.98497101D+02 0.27720206D+03 0.10948000D+01 -0.41475185D+02 -0.97239466D+02 0.29182347D+03 0.10994000D+01 -0.43901703D+02 -0.93018631D+02 0.30688990D+03 0.11040000D+01 -0.45957555D+02 -0.85536765D+02 0.32156207D+03 0.11086000D+01 -0.47511279D+02 -0.74784970D+02 0.33485527D+03 0.11132000D+01 -0.48444799D+02 -0.61117202D+02 0.34576645D+03 0.11178000D+01 -0.48669593D+02 -0.45256647D+02 0.35343916D+03 0.11224000D+01 -0.48140512D+02 -0.28214971D+02 0.35732386D+03 0.11270000D+01 -0.46863548D+02 -0.11135442D+02 0.35728220D+03 0.11316000D+01 -0.44895256D+02 0.48974393D+01 0.35359950D+03 0.11362000D+01 -0.42333938D+02 0.19025026D+02 0.34690308D+03 0.11408000D+01 -0.39305109D+02 0.30713378D+02 0.33801881D+03 0.11454000D+01 -0.35945021D+02 0.39768936D+02 0.32781466D+03 0.11500000D+01 -0.32385827D+02 0.46286322D+02 0.31707389D+03 0.11546000D+01 -0.28744690D+02 0.50559946D+02 0.30641948D+03 0.11592000D+01 -0.25117567D+02 0.52990840D+02 0.29628967D+03 0.11638000D+01 -0.21577161D+02 0.54009625D+02 0.28695104D+03 0.11684000D+01 -0.18173893D+02 0.54023925D+02 0.27853183D+03 0.11730000D+01 -0.14938665D+02 0.53389377D+02 0.27106126D+03 0.11776000D+01 -0.11886374D+02 0.52398735D+02 0.26450574D+03 0.11822000D+01 -0.90194700D+01 0.51282643D+02 0.25879782D+03 0.11868000D+01 -0.63311763D+01 0.50216641D+02 0.25385721D+03 0.11914000D+01 -0.38081741D+01 0.49330547D+02 0.24960475D+03 0.11960000D+01 -0.14327426D+01 0.48717908D+02 0.24597083D+03 0.12006000D+01 0.81560118D+00 0.48444300D+02 0.24290011D+03 0.12052000D+01 0.29588740D+01 0.48553981D+02 0.24035370D+03 0.12098000D+01 0.50197143D+01 0.49074801D+02 0.23830988D+03 0.12144000D+01 0.70206935D+01 0.50021441D+02 0.23676395D+03 0.12190000D+01 0.89837708D+01 0.51397138D+02 0.23572774D+03 0.12236000D+01 0.10929818D+02 0.53194010D+02 0.23522884D+03 0.12282000D+01 0.12878151D+02 0.55392101D+02 0.23530954D+03 0.12328000D+01 0.14846015D+02 0.57957216D+02 0.23602551D+03 0.12374000D+01 0.16847966D+02 0.60837640D+02 0.23744370D+03 0.12420000D+01 0.18895115D+02 0.63959905D+02 0.23963921D+03 0.12466000D+01 0.20994197D+02 0.67223869D+02 0.24269052D+03 0.12512000D+01 0.23146452D+02 0.70497668D+02 0.24667248D+03 0.12558000D+01 0.25346350D+02 0.73613391D+02 0.25164654D+03 0.12604000D+01 0.27580210D+02 0.76364826D+02 0.25764774D+03 0.12650000D+01 0.29824859D+02 0.78509079D+02 0.26466862D+03 0.12696000D+01 0.32046557D+02 0.79774224D+02 0.27264104D+03 0.12742000D+01 0.34200481D+02 0.79875112D+02 0.28141821D+03 0.12788000D+01 0.36231151D+02 0.78538675D+02 0.29076050D+03 0.12834000D+01 0.38074188D+02 0.75538248D+02 0.30033038D+03 0.12880000D+01 0.39659674D+02 0.70733513D+02 0.30970169D+03 0.12926000D+01 0.40917165D+02 0.64109212D+02 0.31838735D+03 0.12972000D+01 0.41782019D+02 0.55803037D+02 0.32588576D+03 0.13018000D+01 0.42202267D+02 0.46112751D+02 0.33174036D+03 0.13064000D+01 0.42144901D+02 0.35475960D+02 0.33560132D+03 0.13110000D+01 0.41600355D+02 0.24422877D+02 0.33727498D+03 0.13156000D+01 0.40584203D+02 0.13510616D+02 0.33674835D+03 0.13202000D+01 0.39135680D+02 0.32535889D+01 0.33418246D+03 0.13248000D+01 0.37313345D+02 -0.59343671D+01 0.32987730D+03 0.13294000D+01 0.35188809D+02 -0.13774938D+02 0.32421882D+03 0.13340000D+01 0.32839778D+02 -0.20133756D+02 0.31762152D+03 0.13386000D+01 0.30343542D+02 -0.25006077D+02 0.31047894D+03 0.13432000D+01 0.27771769D+02 -0.28487976D+02 0.30312923D+03 0.13478000D+01 0.25186975D+02 -0.30742214D+02 0.29583756D+03 0.13524000D+01 0.22640667D+02 -0.31966089D+02 0.28879304D+03 0.13570000D+01 0.20172887D+02 -0.32365568D+02 0.28211566D+03 0.13616000D+01 0.17812763D+02 -0.32137208D+02 0.27586862D+03 0.13662000D+01 0.15579697D+02 -0.31457380D+02 0.27007231D+03 0.13708000D+01 0.13484827D+02 -0.30477327D+02 0.26471752D+03 0.13754000D+01 0.11532568D+02 -0.29322311D+02 0.25977648D+03 0.13800000D+01 0.97220526D+01 -0.28093282D+02 0.25521156D+03 0.13846000D+01 0.80483936D+01 -0.26869870D+02 0.25098134D+03 0.13892000D+01 0.65037525D+01 -0.25713862D+02 0.24704493D+03 0.13938000D+01 0.50781956D+01 -0.24672664D+02 0.24336445D+03 0.13984000D+01 0.37603633D+01 -0.23782465D+02 0.23990661D+03 0.14030000D+01 0.25379760D+01 -0.23071002D+02 0.23664331D+03 0.14076000D+01 0.13982030D+01 -0.22559879D+02 0.23355189D+03 0.14122000D+01 0.32791861D+00 -0.22266492D+02 0.23061506D+03 0.14168000D+01 -0.68613097D+00 -0.22205595D+02 0.22782067D+03 0.14214000D+01 -0.16572324D+01 -0.22390570D+02 0.22516151D+03 0.14260000D+01 -0.25986653D+01 -0.22834438D+02 0.22263520D+03 0.14306000D+01 -0.35237047D+01 -0.23550664D+02 0.22024411D+03 0.14308000D+01 -0.35637573D+01 -0.23588202D+02 0.22014331D+03 0.14310000D+01 -0.36038051D+01 -0.23626283D+02 0.22004278D+03 0.14312000D+01 -0.36438493D+01 -0.23664909D+02 0.21994252D+03 0.14314000D+01 -0.36838909D+01 -0.23704081D+02 0.21984253D+03 0.14316000D+01 -0.37239311D+01 -0.23743800D+02 0.21974281D+03 0.14318000D+01 -0.37639709D+01 -0.23784067D+02 0.21964337D+03 0.14320000D+01 -0.38040114D+01 -0.23824884D+02 0.21954420D+03 0.14322000D+01 -0.38440537D+01 -0.23866252D+02 0.21944531D+03 0.14324000D+01 -0.38840990D+01 -0.23908172D+02 0.21934669D+03 0.14326000D+01 -0.39241483D+01 -0.23950645D+02 0.21924834D+03 0.14328000D+01 -0.39642027D+01 -0.23993674D+02 0.21915028D+03 0.14330000D+01 -0.40042633D+01 -0.24037258D+02 0.21905249D+03 0.14332000D+01 -0.40443313D+01 -0.24081400D+02 0.21895498D+03 0.14334000D+01 -0.40674614D+01 -0.24183805D+02 0.21900338D+03 auto-07p-0.9.1+dfsg/07p/demos/lor/lor.f90000066400000000000000000000025171206161447600174550ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! lor : The Lorenz Equations !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) F(1)= PAR(3) * (U(2)- U(1)) F(2)= PAR(1)*U(1) - U(2) - U(1)*U(3) F(3)= U(1)*U(2) - PAR(2)*U(3) END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T ! Parameter values for the starting orbit in lor.dat : PAR(1)=280. PAR(2)= 8.d0/3.d0 PAR(3)=10. END SUBROUTINE STPNT SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/lrz/000077500000000000000000000000001206161447600163475ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/lrz/autorc000077500000000000000000000142121206161447600175720ustar00rootroot00000000000000# Example file for autorc: you need to uncomment settings for them # to take effect! [AUTO_plotter] # Variable name to use instead of 't' for solutions. solution_indepvarname = "time" # A dictionary mapping names to axis labels. labelnames = {"x": "$x$", "y": "$y$", "z": "$z$", "rho": "$\rho$", "beta": "$\beta$", "sigma": "$\sigma$", "L2-NORM": "$L_2$-Norm"} # The type of the plot, either "solution" or "bifurcation" #type = "bifurcation" # or "solution" # The column to plot along the X-axis for bifurcation diagrams. #bifurcation_x = [0] # The column to plot along the Y-axis for bifurcation diagrams. bifurcation_y = [2] # The column to plot along the Z-axis for bifurcation diagrams. #bifurcation_z = None # The column to plot along the X-axis for solutions. #solution_x = [0,3,6,9] # The column to plot along the Y-axis for solutions. #solution_y = [1,4,7,10] # The column to plot along the Z-axis for solutions. #solution_z = [2,5,8,11] # A list of colors to use for multiple plots. #color_list = "black red green blue" # color_list index: 'branch' (BR), 'type' (TY), or 'curve' (seq.). #coloring_method = "curve" # or "branch" or "type" # Turn on or off the grid. #grid = False # Turn on or off stability information using dashed curves #stability = False # Whether or not to display label numbers in the graph. #use_labels = True # Whether or not to display bifurcation symbols in the graph. #use_symbols = False # Whether to use letters (True) or symbols (False) for special points. #letter_symbols = True # Default d0, d1, d2, etc. setting to use with PyPLAUT (@pp). #default_option="d1" #d1 = {"grid": False, "use_labels": True, "use_symbols": True, "stability":True} # similarly you can redefine d0, d2, d3, d4. # The label for the top title. #top_title = '' # The font size for the top title. #top_title_fontsize = 12 # The font size for the x-axis label. #xlabel_fontsize = 12 # The font size for the y-axis label. #ylabel_fontsize = 12 # The font size for the z-axis label. #zlabel_fontsize = 12 # Azimuth of the axes in 3D plots. #azimuth = -60 # for 3D plots, in degrees # Elevation of the axes in 3D plots. #elevation = 30 # for 3D plots, in degrees # The lower bound for the x-axis of the plot. #minx = 0 # The upper bound for the x-axis of the plot. #maxx = 0 # The lower bound for the y-axis of the plot. #miny = 0 # The upper bound for the y-axis of the plot. #maxy = 0 # The lower bound for the z-axis of the plot. #minz = 0 # The upper bound for the z-axis of the plot. #maxz = 0 # The label for the x-axis. #xlabel = '' # The label for the y-axis. #ylabel = '' # The label for the z-axis. #zlabel = '' # Width to use for lines and curves. #line_width = 2.0 # List of dash, no-dash lengths for dashed lines. #dashes = (6.0,6.0) # The background color of the plot. #background = "white" # The foreground color of the plot #foreground = "black" # The color to use for the marker symbols. #symbol_color = "red" # The font to use for marker symbols. #symbol_font = "-misc-fixed-*-*-*-*-*-*-*-*-*-*-*-*" # Turn on or off the axis, tick marks, etc. #decorations = True # Whether to use a smart but slower label placement algorithm. #smart_label = True # Width of the graph. #width = 600 # Height of the graph. #height = 480 # The margin between the graph and the left edge. #left_margin = 80 # The margin between the graph and the left edge. #right_margin = 40 # The margin between the graph and the top edge. #top_margin = 40 # The margin between the graph and the bottom edge. #bottom_margin = 40 # The number of ticks on the x-axis. #xticks = 5 # The number of ticks on the y-axis. #yticks = 5 # The number of ticks on the z-axis. #zticks = 5 # A string which defines the format of the tick labels. #tick_label_template = "%.2e" # The length of the tick marks. #tick_length = 0.2 # The length of the odd tick marks. #odd_tick_length = 0.4 # The length of the even tick marks. #even_tick_length = 0.2 # The PostScript output mode: 'color', 'gray' or 'monochrome'. #ps_colormode = "color" # The t value to marker with a small ball. #mark_t = None #or a real value between 0 and 1 # A set of bifurcation columns the user is likely to use. #bifurcation_column_defaults = None # A set of solution columns the user is likely to use. #solution_column_defaults = [[0,3,6,9],[1,4,7,10],[2,5,8,11],['t','t','t','t']] # An array of labels to plot, or 'all' for all labels. #label = [1,2,3] # or "all" # A set of labels that the user is likely to use. #label_defaults = None # The index/indices of the solution we wish to draw #index = [0] # The filename of the bifurcation diagram to plot. #bifurcation_diagram_filename = 'fort.7' # The filename of the solution to plot. #solution_filename = 'fort.8' # The symbol to use for bifurcation points. # Here 8 denotes the size of the square #bifurcation_symbol = "square8" # The symbol to use for limit points. #limit_point_symbol = None # The symbol to use for Hopf bifurcation points. #hopf_symbol = "fillsquare" # The symbol to use for period doubling bifurcation points. #period_doubling_symbol = "doubletriangle" # The symbol to use for torus bifurcation points. #torus_symbol = "filldiamond" # The symbol to use for user defined output points. #user_point_symbol = "U" # The symbol to use for error points. #error_symbol = None # The symbol to use for Cusp points. #cusp_symbol = None # The symbol to use for Bogdanov-Takens points. #bogdanov_takens_symbol = "circle" # The symbol to use for Generalized Hopf points. #generalized_hopf_symbol = "triangle" # The symbol to use for zero-Hopf points. #zero_hopf_symbol = "doubletriangle" # The symbol to use for fold-flip points. #fold_flip_symbol = "doubletriangle" # The symbol to use for fold-torus points. #fold_torus_symbol = "doubletriangle" # The symbol to use for flip-torus points. #flip_torus_symbol = "doubletriangle" # The symbol to use for torus-torus points. #torus_torus_symbol = "doubletriangle" # The symbol to use for 1:1 resonance points. #1_1_resonance_symbol = "filldiamond" # The symbol to use for 1:2 resonance points. #1_2_resonance_symbol = "filldiamond" # The symbol to use for 1:3 resonance points. #1_3_resonance_symbol = "filldiamond" # The symbol to use for 1:4 resonance points. #1_4_resonance_symbol = "filldiamond" auto-07p-0.9.1+dfsg/07p/demos/lrz/c.lrz000066400000000000000000000007031206161447600173220ustar00rootroot00000000000000parnames = {1: 'rho', 2: 'beta', 3: 'sigma'} unames = {1: 'x', 2: 'y', 3: 'z'} NDIM= 3, IPS = 1, IRS = 0, ILP = 0 ICP = ['rho'] NTST= 35, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 50, NPR= 100, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.1, DSMIN= 0.01, DSMAX= 5.0, IADS= 1 NPAR = 3, THL = {'PERIOD': 0.0}, THU = {} UZSTOP = {'rho': 30.0} auto-07p-0.9.1+dfsg/07p/demos/lrz/c.lrz.1000066400000000000000000000006751206161447600174710ustar00rootroot00000000000000parnames = {1: 'rho', 2: 'beta', 3: 'sigma'} unames = {1: 'x', 2: 'y', 3: 'z'} NDIM= 3, IPS = 1, IRS = 0, ILP = 0 ICP = ['rho'] NTST= 35, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 50, NPR= 100, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.1, DSMIN= 0.01, DSMAX= 5.0, IADS= 1 NPAR = 3, THL = {11: 0.0}, THU = {} UZSTOP = {'rho': 30.0} auto-07p-0.9.1+dfsg/07p/demos/lrz/c.lrz.2000066400000000000000000000007001206161447600174570ustar00rootroot00000000000000parnames = {1: 'rho', 2: 'beta', 3: 'sigma'} unames = {1: 'x', 2: 'y', 3: 'z'} NDIM= 3, IPS = 2, IRS = 4, ILP = 0 ICP = ['rho', 'PERIOD'] NTST= 35, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 35, NPR= 2, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.5, DSMIN= 0.01, DSMAX= 5.0, IADS= 1 NPAR = 3, THL = {'PERIOD': 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/lrz/c.lrz.3000066400000000000000000000007001206161447600174600ustar00rootroot00000000000000parnames = {1: 'rho', 2: 'beta', 3: 'sigma'} unames = {1: 'x', 2: 'y', 3: 'z'} NDIM= 3, IPS = 2, IRS = 6, ILP = 0 ICP = ['rho', 'PERIOD'] NTST= 35, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 35, NPR= 2, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.5, DSMIN= 0.01, DSMAX= 5.0, IADS= 1 NPAR = 3, THL = {'PERIOD': 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/lrz/c.lrz.4000066400000000000000000000006761206161447600174750ustar00rootroot00000000000000parnames = {1: 'rho', 2: 'beta', 3: 'sigma'} unames = {1: 'x', 2: 'y', 3: 'z'} NDIM= 3, IPS = 2, IRS = 9, ILP = 0 ICP = ['rho', 'beta'] NTST= 35, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 35, NPR= 5, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = -0.5, DSMIN= 0.01, DSMAX= 5.0, IADS= 1 NPAR = 3, THL = {'PERIOD': 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/lrz/clean.auto000066400000000000000000000001541206161447600203230ustar00rootroot00000000000000#============== # AUTO Demo lrz #============== print "\n***Clean the directory***" delete("lrz") clean() auto-07p-0.9.1+dfsg/07p/demos/lrz/lrz.auto000066400000000000000000000007031206161447600200500ustar00rootroot00000000000000 #============== # AUTO Demo lrz #============== print "\n***Compute stationary solution families***" lrz=run('lrz') save('lrz') print "\n***Compute the first periodic solution family***" run(lrz('HB1'),IPS=2,ICP=['rho','PERIOD'],NMX=35,NPR=2,DS=0.5) append('lrz') print "\n***Compute the second periodic solution family***" run(lrz('HB2'),IPS=2,ICP=['rho','PERIOD'],NMX=35,NPR=2,DS=0.5) append('lrz') print "\n***Clean the directory***" clean() auto-07p-0.9.1+dfsg/07p/demos/lrz/lrz.f90000066400000000000000000000026551206161447600175060ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! lor : The Lorenz Equations !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION x, y, z, rho, beta, sigma x=U(1) y=U(2) z=U(3) rho=PAR(1) beta=PAR(2) sigma=PAR(3) F(1)= sigma * (y-x) F(2)= rho*x - y - x*z F(3)= x*y - beta*z END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T PAR(1)=0. PAR(2)= 8.d0/3.d0 PAR(3)=10. U(1)=0. U(2)=0. U(3)=0. END SUBROUTINE STPNT SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/lrz/plaut04.rc000066400000000000000000000070001206161447600201630ustar00rootroot00000000000000#version 0.0 # Line colors are represented by RGB values from 0 to 1.0. # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and highlighting the solutions # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Initialize the default options: Highlight Orbit = No Orbit Animation = No Normalize Data = Yes Draw Background = No Draw Labels = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahead Coordinate Type = 3 # Draw Scale: Draw Scale = Yes # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 1 # Initialize the default graph style # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 1 #Set the window width and height: Window Width = 1000 Window Height = 600 # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 1 Y Axis Solution = 2 Z Axis Solution = 2 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 2 Z Axis Bifurcation = 3 #Labeled solutions: #-3 = Show all labeled solutions #-2 = Show HALF labeled solutions #-1 = Show SPEC labeled solutions #0 = Show NONE of the solutions #Otherwise, show the specified solution(s) Labels = -3 #Set coloring method: # -6 --- STABILITY # -5 --- POINT # -4 --- BRANCH # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. Coloring Method = -4 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 1.0 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Background color: Background Color = 0., 0., 0. # Background transparency: Background Transparency = 0.9 # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # UnStable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 # Color of the animation object: Object Color = 1.0, 1.0, 1.0 # Set the radius of the animation object: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Object Radius = 1.0 # Set the maximum and minimum animation speed: Object Max Animation Speed = 100 Object Min Animation Speed = 0 # Set the maximum and minimum highlighting animation speed: Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 # Set the active AUTO parameter indices: parameter ID = 10 # Choose 3D or 2D graph: 3D = No # Set the number of periods animated. # The value should be the power of 2. Number of Period Animated = 1 auto-07p-0.9.1+dfsg/07p/demos/man/000077500000000000000000000000001206161447600163135ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/man/c.man.0000066400000000000000000000007121206161447600173700ustar00rootroot00000000000000NDIM= 3, IPS = 4, IRS = 0, ILP = 0 ICP = [11, 6, 7, 8, 9, 12] NTST= 75, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 7, NINT= 1 NMX= 1000, NPR= 1000, MXBF= 2, IID = 3, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-09, EPSU = 1e-09, EPSS = 1e-05 DS = -0.01, DSMIN=0.0001, DSMAX= 10.0, IADS= 1 NPAR = 12, THL = {6: 0.0, 7: 0.0, 8: 0.0, 9: 0.0, 11: 0.0, 12: 0.0}, THU = {} UZR = {12: [10.0, 25.0, 50.0, 100.0]} UZSTOP = {12: 150.0} auto-07p-0.9.1+dfsg/07p/demos/man/c.man.1000066400000000000000000000006471206161447600174000ustar00rootroot00000000000000NDIM= 3, IPS = 4, IRS = 3, ILP = 0 ICP = [11, 5, 6, 7, 8, 9] NTST= 100, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 7, NINT= 1 NMX= 500, NPR= 2, MXBF= 2, IID = 3, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-09, EPSU = 1e-09, EPSS = 1e-05 DS = 0.2, DSMIN=0.0001, DSMAX= 0.2, IADS= 1 NPAR = 12, THL = {6: 0.0, 7: 0.0, 8: 0.0, 9: 0.0, 10: 0.0, 11: 0.0}, THU = {} UZSTOP = {5: [1.1, -0.9]} auto-07p-0.9.1+dfsg/07p/demos/man/c.man.2000066400000000000000000000006471206161447600174010ustar00rootroot00000000000000NDIM= 3, IPS = 4, IRS = 6, ILP = 0 ICP = [11, 5, 6, 7, 8, 9] NTST= 100, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 7, NINT= 1 NMX= 3000, NPR= 5, MXBF= 2, IID = 3, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-09, EPSU = 1e-09, EPSS = 1e-05 DS = 0.2, DSMIN=0.0001, DSMAX= 0.2, IADS= 1 NPAR = 12, THL = {6: 0.0, 7: 0.0, 8: 0.0, 9: 0.0, 10: 0.0, 11: 0.0}, THU = {} UZSTOP = {5: [1.1, -0.9]} auto-07p-0.9.1+dfsg/07p/demos/man/clean.auto000066400000000000000000000002251206161447600202660ustar00rootroot00000000000000#============== # AUTO Demo man #============== print "\n***Clean the directory***" dl("0") dl("1") dl("2") dl("man1") dl("man2") dl("start") cl() auto-07p-0.9.1+dfsg/07p/demos/man/man.auto000066400000000000000000000004141206161447600177570ustar00rootroot00000000000000 #============== # AUTO Demo man #============== print "\n***Compute an initial orbit in the manifold***" r0=run(e='man',c='man.0') save(r0,'0') print "\n***Compute the manifold***" r1=run(r0('UZ2'),c='man.1') save(r1,'1') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/man/man.f90000066400000000000000000000105111206161447600174040ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! man : Stable manifold of the origen in the Lorenz model !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION Period Period=PAR(11) F(1)= Period * (PAR(3) * (U(2)- U(1))) F(2)= Period * (PAR(1)*U(1) - U(2) - U(1)*U(3)) F(3)= Period * (U(1)*U(2) - PAR(2)*U(3)) END SUBROUTINE FUNC !---------------------------------------------------------------------- SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T DOUBLE PRECISION rad,h,Period,RLength,pi,theta,cs,sn,V1(3),V2(3) PAR(1)=28. PAR(2)=8.d0/3.d0 PAR(3)=10. rad=5.0 h=0.1 Period=1e-5 RLength=0. PAR(4)=rad PAR(5)=h CALL EIGV(NDIM,PAR,V1,V2) ! Set initial approximate solution (for small Period) pi=4*ATAN(1.d0) theta=2*pi*h cs=COS(theta) sn=SIN(theta) U(1)= rad * ( cs*V1(1) + sn*V2(1) ) U(2)= rad * ( cs*V1(2) + sn*V2(2) ) U(3)= rad * ( cs*V1(3) + sn*V2(3) ) PAR(6) = U(1) PAR(7) = U(2) PAR(8) = U(3) PAR(9) = SQRT(U(1)**2 + U(2)**2 + U(3)**2) PAR(11)=Period PAR(12)=RLength END SUBROUTINE STPNT !---------------------------------------------------------------------- SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) ! ---------- ---- 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,*) DOUBLE PRECISION V1(3),V2(3),pi,rad,h,theta,cs,sn CALL EIGV(NDIM,PAR,V1,V2) pi=4*ATAN(1.d0) rad=PAR(4) h=PAR(5) theta=2*pi*h cs=COS(theta) sn=SIN(theta) ! At time=0 FB(1)= U0(1) - rad * ( cs*V1(1) + sn*V2(1) ) FB(2)= U0(2) - rad * ( cs*V1(2) + sn*V2(2) ) FB(3)= U0(3) - rad * ( cs*V1(3) + sn*V2(3) ) ! At time=1 FB(4)= U1(1) - PAR(6) FB(5)= U1(2) - PAR(7) FB(6)= U1(3) - PAR(8) FB(7)= SQRT(U1(1)**2 + U1(2)**2 + U1(3)**2) - PAR(9) END SUBROUTINE BCND !---------------------------------------------------------------------- SUBROUTINE EIGV(NDIM,PAR,V1,V2) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(IN) :: PAR(*) DOUBLE PRECISION, INTENT(OUT) :: V1(NDIM),V2(NDIM) LOGICAL, SAVE :: ifirst = .TRUE. DOUBLE PRECISION e,ss ! Stable eigenvalue/vector 1 V1(1)= 0. V1(2)= 0. V1(3)= 1./2.66667 ! Stable eigenvalue/vector 2 e=-(11+SQRT(1201.d0))/2 V2(1)=1+e V2(2)=PAR(1) V2(3)= 0. ss=SQRT(V2(1)**2+V2(2)**2) V2(1)=V2(1)/(ss*22.8277) V2(2)=V2(2)/(ss*22.8277) IF(ifirst)THEN WRITE(10,*)V2(1),V2(2) ifirst=.FALSE. ENDIF END SUBROUTINE EIGV !---------------------------------------------------------------------- SUBROUTINE ICND(NDIM,PAR,ICP,NINT,U,UOLD,UDOT,UPOLD,FI,IJAC,DINT) ! ---------- ---- 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,*) DOUBLE PRECISION FF(3),DFDU(1),DFDP(1) CALL FUNC(NDIM,U,ICP,PAR,0,FF,DFDU,DFDP) FI(1)=SQRT(FF(1)**2 + FF(2)**2 + FF(3)**2 ) - PAR(12) END SUBROUTINE ICND SUBROUTINE PVLS END SUBROUTINE PVLS SUBROUTINE FOPT END SUBROUTINE FOPT auto-07p-0.9.1+dfsg/07p/demos/man/man1.auto000066400000000000000000000004441206161447600200430ustar00rootroot00000000000000 #============== # AUTO Demo man #============== print "\n***Compute an initial orbit in the manifold***" start = run(e='man',c='man.0') save(start,'start') print "\n***Compute the manifold***" man1 = run(start('UZ2'),c='man.1') save(man1,'man1') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/man/man2.auto000066400000000000000000000003421206161447600200410ustar00rootroot00000000000000 #============== # AUTO Demo man #============== print "\n**Compute a bigger portion of the manifold***" start = loadbd('start') man2 = run(start('UZ5'),c='man.2') save(man2,'man2') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/man/plaut04.rc000066400000000000000000000067571206161447600201510ustar00rootroot00000000000000#version 0.0 # Line colors are represented by RGB values from 0 to 1.0. # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and animating the solution change. # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Initialize the default options: Highlight Orbit = No Orbit Animation = No Normalize Data = Yes Draw Background = No Draw Labels = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahea Coordinate Type = 0 # Draw Scale: Draw Scale = Yes # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 0 # initialize the default graph style # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 0 #Set the window width and height: Window Width = 1000 Window Height = 1000 # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 2 Y Axis Solution = 3 Z Axis Solution = 1 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 1 Z Axis Bifurcation = 2 #Labeled solutions: #-3 = Show all labeled solutions #-2 = Show HALF labeled solutions #-1 = Show SPEC labeled solutions #0 = Show NONE of the solutions #Otherwise, show the specified solution(s) Labels = -3 #Set coloring method: # -6 --- STABILITY # -5 --- POINT # -4 --- BRANCH # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. Coloring Method = -2 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 0.2 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Background color: Background Color = 0.8, 0.8, 0.8 # Background transparency: Background Transparency = 0.9 # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # Stable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 #Color of the satellite, large primary, and small primary in animation: satellite Color = 1.0, 0.0, 0.0 # Set the radius of the satellite, large primary, and small primary: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Satellite Radius = 1.0 # Set the maximum and minimum satellite animation speed: Sat Max Animation Speed = 100 Sat Min Animation Speed = 0 #Set the maximum and minimum orbit-change animation speed: Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 #Set the active AUTO parameter indices: parameter ID = 10 #Choose 3D or 2D graph: 3D = Yes auto-07p-0.9.1+dfsg/07p/demos/mtn/000077500000000000000000000000001206161447600163365ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/mtn/c.mtn000066400000000000000000000006321206161447600173010ustar00rootroot00000000000000dat = 'mtn' NDIM= 2, IPS = 9, IRS = 0, ILP = 0 ICP = [1, 2, 35, 36] NTST= 100, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 30, NPR= 10, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.01, DSMIN= 0.001, DSMAX= 0.05, IADS= 1 NPAR = 13, THL = {}, THU = {} UZR = {35: 0.0, 36: 0.0} IEQUIB = 2 IPSI = [15,16] auto-07p-0.9.1+dfsg/07p/demos/mtn/c.mtn.1000066400000000000000000000006321206161447600174400ustar00rootroot00000000000000dat = 'mtn' NDIM= 2, IPS = 9, IRS = 0, ILP = 0 ICP = [1, 2, 35, 36] NTST= 100, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 30, NPR= 10, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.01, DSMIN= 0.001, DSMAX= 0.05, IADS= 1 NPAR = 13, THL = {}, THU = {} UZR = {35: 0.0, 36: 0.0} IEQUIB = 2 IPSI = [15,16] auto-07p-0.9.1+dfsg/07p/demos/mtn/c.mtn.2000066400000000000000000000006161206161447600174430ustar00rootroot00000000000000NDIM= 2, IPS = 9, IRS = 1, ILP = 0 ICP = [1, 2, 35, 36] NTST= 50, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 40, NPR= 10, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -0.01, DSMIN= 0.001, DSMAX= 0.05, IADS= 1 NPAR = 13, THL = {}, THU = {} UZR = {35: 0.0, 36: 0.0} IEQUIB = 2 IPSI = [15,16] auto-07p-0.9.1+dfsg/07p/demos/mtn/c.mtn.3000066400000000000000000000006301206161447600174400ustar00rootroot00000000000000NDIM= 2, IPS = 9, IRS = 4, ILP = 0 ICP = [1, 2, 29, 30] NTST= 50, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 40, NPR= 10, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.02, DSMIN= 0.001, DSMAX= 0.5, IADS= 1 NPAR = 13, THL = {}, THU = {} UZR = {29: 0.0, 30: 0.0} NSTAB = 1, IEQUIB = 1 IPSI = [9,10] auto-07p-0.9.1+dfsg/07p/demos/mtn/c.mtn.4000066400000000000000000000006151206161447600174440ustar00rootroot00000000000000NDIM= 2, IPS = 9, IRS = 15, ILP = 0 ICP = [1, 2, 29, 30] NTST= 50, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 40, NPR= 40, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -0.02, DSMIN= 0.001, DSMAX= 0.5, IADS= 1 NPAR = 13, THL = {}, THU = {} UZR = {29: 0.0, 30: 0.0} IEQUIB = 1 IPSI = [9,10] auto-07p-0.9.1+dfsg/07p/demos/mtn/c.mtn.5000066400000000000000000000006301206161447600174420ustar00rootroot00000000000000NDIM= 2, IPS = 9, IRS = 6, ILP = 0 ICP = [1, 2, 29, 30] NTST= 50, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 40, NPR= 10, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -0.02, DSMIN= 0.001, DSMAX= 0.5, IADS= 1 NPAR = 13, THL = {}, THU = {} UZR = {29: 0.0, 30: 0.0} NSTAB = 1, IEQUIB = 1 IPSI = [9,10] auto-07p-0.9.1+dfsg/07p/demos/mtn/c.mtn.6000066400000000000000000000005771206161447600174550ustar00rootroot00000000000000NDIM= 2, IPS = 9, IRS = 4, ILP = 1 ICP = [3, 1, 2] NTST= 50, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 40, NPR= 40, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.01, DSMIN= 0.001, DSMAX= 0.1, IADS= 1 NPAR = 13, THL = {}, THU = {} UZR = {3: 0.01} IEQUIB = 2 IFIXED = [15] auto-07p-0.9.1+dfsg/07p/demos/mtn/clean.auto000066400000000000000000000001631206161447600203120ustar00rootroot00000000000000#============== # AUTO Demo mtn #============== print "\n***Clean the directory***" dl("1") dl("4") dl("6") cl() auto-07p-0.9.1+dfsg/07p/demos/mtn/mtn.auto000066400000000000000000000012151206161447600200250ustar00rootroot00000000000000#========= # Demo mtn #========= pgm = 'mtn' print pgm, ": first run : continue saddle-node homoclinic orbit" r1=run('mtn',c='mtn.1',sv='1') print pgm, ": second run : continue in opposite direction" r1=r1+run(r1(1),c='mtn.2',ap='1') print pgm, ": third run : switch to saddle homoclinic orbit" r1=r1+run(r1('UZ1'),c='mtn.3',ap='1') print pgm, ": fourth run : continue in reverse direction" r4=run(r1,c='mtn.4',sv='4') print pgm, ": fifth run : other saddle homoclinic orbit branch" r1=r1+run(r1('UZ3'),c='mtn.5',ap='1') print pgm, ": sixth run : 3-parameter continuation of non-central saddle-node homoclinic" r6=run(r1('UZ1'),c='mtn.6',sv='6') auto-07p-0.9.1+dfsg/07p/demos/mtn/mtn.dat000066400000000000000000000202331206161447600176260ustar00rootroot000000000000000.0000000 5.6856 0.56351 0.0012333 5.6905 0.56372 0.0016157 5.6915 0.56378 0.0029605 5.6939 0.56402 0.0035326 5.6945 0.56413 0.0050423 5.6954 0.56441 0.0058425 5.6956 0.56456 0.007596 5.6957 0.5649 0.0086822 5.6957 0.56511 0.010806 5.6955 0.56553 0.012279 5.6953 0.56582 0.015001 5.6949 0.56637 0.017049 5.6945 0.5668 0.020829 5.6939 0.5676 0.023844 5.6934 0.56825 0.029722 5.6924 0.56957 0.034639 5.6915 0.57071 0.043004 5.6898 0.57277 0.051435 5.6881 0.575 0.059549 5.6863 0.57729 0.067065 5.6845 0.57956 0.074235 5.6827 0.58188 0.081293 5.6808 0.58432 0.088335 5.6787 0.58692 0.095385 5.6765 0.58972 0.10244 5.6741 0.59273 0.10951 5.6716 0.59597 0.11658 5.6688 0.59949 0.12365 5.6658 0.6033 0.13073 5.6625 0.60745 0.1378 5.659 0.61198 0.14488 5.6551 0.61695 0.15194 5.6508 0.62241 0.15899 5.646 0.62844 0.16602 5.6408 0.63512 0.173 5.6349 0.64253 0.17994 5.6284 0.65078 0.1868 5.6212 0.65999 0.19355 5.6131 0.67028 0.20018 5.604 0.68178 0.20664 5.5938 0.69464 0.21291 5.5825 0.70899 0.21895 5.5699 0.725 0.22476 5.5558 0.74283 0.23031 5.5401 0.76265 0.23559 5.5227 0.78464 0.24059 5.5033 0.80899 0.24532 5.4819 0.83592 0.24979 5.4581 0.86562 0.254 5.4319 0.89834 0.25797 5.403 0.9343 0.2617 5.371 0.97375 0.26522 5.3358 1.017 0.26853 5.2971 1.0642 0.27165 5.2545 1.1157 0.2746 5.2076 1.1717 0.27739 5.156 1.2326 0.28004 5.0993 1.2987 0.28255 5.037 1.3701 0.28495 4.9684 1.4472 0.28724 4.8929 1.5303 0.28943 4.8096 1.6197 0.29154 4.7175 1.7158 0.29358 4.6155 1.8188 0.29555 4.5018 1.9293 0.29748 4.3744 2.0478 0.29937 4.2304 2.175 0.30125 4.0653 2.312 0.30314 3.8719 2.4605 0.3051 3.6362 2.6246 0.3073 3.3182 2.8172 0.30927 2.9705 2.9914 0.31114 2.5699 3.1471 0.31317 2.0329 3.2834 0.31466 1.5577 3.3349 0.31582 1.1492 3.3203 0.31676 0.80728 3.2499 0.31745 0.57678 3.1518 0.31811 0.39155 3.0131 0.31869 0.27078 2.8575 0.31921 0.19575 2.6956 0.31959 0.15876 2.5705 0.32005 0.12902 2.4153 0.32045 0.11326 2.282 0.32092 0.10274 2.1253 0.32138 0.098761 1.9816 0.32193 0.099477 1.8183 0.3225 0.1049 1.6625 0.32317 0.11638 1.4943 0.32386 0.13344 1.3406 0.32462 0.15925 1.1907 0.32539 0.19484 1.0578 0.32626 0.24901 0.93198 0.32721 0.33263 0.81891 0.32821 0.46051 0.72461 0.32907 0.61613 0.6617 0.32992 0.82643 0.61357 0.33069 1.0774 0.58024 0.33145 1.3958 0.55487 0.33219 1.7693 0.53656 0.33297 2.2231 0.52248 0.33378 2.7471 0.51193 0.33481 3.4377 0.5029 0.33556 3.9034 0.49861 0.33654 4.4343 0.49481 0.33736 4.7927 0.49273 0.33802 5.0212 0.49157 0.33871 5.2086 0.49069 0.33932 5.3381 0.49013 0.33997 5.4432 0.4897 0.34057 5.5187 0.4894 0.3412 5.5793 0.48918 0.34182 5.6236 0.48902 0.34247 5.6587 0.4889 0.34312 5.6846 0.48882 0.34381 5.7046 0.48877 0.34451 5.7193 0.48874 0.34526 5.7304 0.48872 0.34603 5.7384 0.48871 0.34686 5.7442 0.48872 0.34773 5.7482 0.48873 0.34867 5.7511 0.48875 0.34967 5.7529 0.48878 0.35076 5.7542 0.48881 0.35193 5.7549 0.48884 0.35322 5.7554 0.48888 0.35464 5.7556 0.48893 0.35623 5.7557 0.48898 0.358 5.7558 0.48904 0.36003 5.7557 0.4891 0.36236 5.7557 0.48917 0.36512 5.7556 0.48926 0.36843 5.7556 0.48936 0.37255 5.7555 0.48949 0.3778 5.7553 0.48965 0.38471 5.7552 0.48986 0.39302 5.755 0.4901 0.40121 5.7548 0.49033 0.40869 5.7546 0.49054 0.41574 5.7545 0.49074 0.42263 5.7543 0.49092 0.42949 5.7542 0.4911 0.43635 5.754 0.49128 0.44321 5.7539 0.49146 0.45007 5.7538 0.49163 0.45693 5.7536 0.4918 0.4638 5.7535 0.49196 0.47066 5.7534 0.49213 0.47753 5.7533 0.49229 0.48439 5.7531 0.49244 0.49126 5.753 0.4926 0.49812 5.7529 0.49275 0.50499 5.7528 0.4929 0.51185 5.7526 0.49305 0.51872 5.7525 0.49319 0.52559 5.7524 0.49334 0.53245 5.7523 0.49348 0.53932 5.7522 0.49362 0.54619 5.7521 0.49375 0.55306 5.752 0.49389 0.55992 5.7519 0.49402 0.56679 5.7518 0.49415 0.57366 5.7517 0.49427 0.58053 5.7516 0.4944 0.5874 5.7515 0.49452 0.59427 5.7514 0.49465 0.60114 5.7513 0.49477 0.60801 5.7512 0.49488 0.61488 5.7511 0.495 0.62175 5.751 0.49512 0.62862 5.7509 0.49523 0.63549 5.7508 0.49534 0.64236 5.7508 0.49545 0.64923 5.7507 0.49556 0.6561 5.7506 0.49567 0.66297 5.7505 0.49577 0.66984 5.7504 0.49588 0.67671 5.7503 0.49598 0.68359 5.7503 0.49608 0.69046 5.7502 0.49618 0.69733 5.7501 0.49628 0.7042 5.75 0.49638 0.71108 5.7499 0.49647 0.71795 5.7499 0.49657 0.72482 5.7498 0.49666 0.7317 5.7497 0.49675 0.73857 5.7497 0.49685 0.74544 5.7496 0.49694 0.75232 5.7495 0.49702 0.75919 5.7494 0.49711 0.76606 5.7494 0.4972 0.77294 5.7493 0.49728 0.77981 5.7492 0.49737 0.78669 5.7492 0.49745 0.79356 5.7491 0.49753 0.80044 5.749 0.49762 0.80731 5.749 0.4977 0.81419 5.7489 0.49778 0.82106 5.7489 0.49785 0.82794 5.7488 0.49793 0.83481 5.7487 0.49801 0.84169 5.7487 0.49808 0.84856 5.7486 0.49816 0.85544 5.7486 0.49823 0.86232 5.7485 0.49831 0.86919 5.7484 0.49838 0.87607 5.7484 0.49845 0.88295 5.7483 0.49852 0.88982 5.7483 0.49859 0.8967 5.7482 0.49866 0.90358 5.7482 0.49873 0.91045 5.7481 0.49879 0.91733 5.7481 0.49886 0.92421 5.748 0.49893 0.93108 5.748 0.49899 0.93796 5.7479 0.49906 0.94484 5.7479 0.49912 0.95172 5.7478 0.49918 0.9586 5.7478 0.49925 0.96547 5.7477 0.49931 0.97235 5.7477 0.49937 0.97923 5.7476 0.49943 0.98611 5.7476 0.49949 0.99299 5.7475 0.49955 1.0 5.7475 0.49961 auto-07p-0.9.1+dfsg/07p/demos/mtn/mtn.f90000066400000000000000000000052451206161447600174620ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! mtn : Homoclinic bifurcations in M. Scheffer's preditor-prey model !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION DEM,PSIZ,PSIF,PSIZU1,PSIFU2 DEM=U(2)**2+PAR(4)**2 PSIZ=0.4D0*U(1)/(0.6D0+U(1)) PSIF=PAR(2)*U(2)**2/DEM PSIZU1=0.4D0*((1/(0.6D0+U(1)))- (U(1)/((0.6D0+U(1))**2))) PSIFU2=2*PAR(2)*( (U(2)/DEM) -(U(2)**3/(DEM**2) )) F(1)=0.5D0*U(1)*(1.0D0-U(1)/PAR(1))-U(2)*PSIZ+PAR(3)*PAR(1) F(2)=0.6D0*PSIZ*U(2)-0.15D0*U(2)-PSIF IF(IJAC.EQ.0)RETURN DFDU(1,1)=0.5D0-U(1)/PAR(1) -U(2)*PSIZU1 DFDU(1,2)=-PSIZ DFDU(2,1)=0.6D0*PSIZU1*U(2) DFDU(2,2)=0.6D0*PSIZ-0.15D0-PSIFU2 IF(IJAC.EQ.1)RETURN DFDP(1,1)=0.5D0*(U(1)/PAR(1))**2+PAR(3) DFDP(2,1)=0.d0 DFDP(1,2)=0.0d0 DFDP(2,2)=-U(2)**2/DEM DFDP(1,3)=PAR(1) DFDP(2,3)=0.d0 DFDP(1,4)=0.0d0 DFDP(2,4)=2*PAR(4)*PAR(2)*U(2)**2/DEM**2 END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------------- ! Sets parameter values for homoclinic bifurcation analysis (IPS=9). IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T !---------------------------------------------------------------------- ! Problem parameters (only PAR(1-9) are available to the user) : ! PAR(11) is the trunction interval or `PERIOD' PAR(1) = 6.0D0 ! K PAR(2) = 0.06729762D0 ! GF PAR(3) = 0.01D0 ! D PAR(4) = 0.5D0 ! HZ PAR(11)= 1046.178D0 ! truncated time interval !---------------------------------------------------------------------- ! Since IEQUIB>0 put the equilibrium in PAR(11+i), i=1,...,NDIM : PAR(12) = 5.738626D0 PAR(13) = 0.5108401D0 !---------------------------------------------------------------------- END SUBROUTINE STPNT SUBROUTINE PVLS END SUBROUTINE PVLS SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT auto-07p-0.9.1+dfsg/07p/demos/nag/000077500000000000000000000000001206161447600163055ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/nag/c.nag000066400000000000000000000006331206161447600172200ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 0, ILP = 0 ICP = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] NTST= 25, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC=10, NINT= 1 NMX= 100, NPR= 100, MXBF= 8, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.01, DSMIN= 0.001, DSMAX= 0.05, IADS= 1 NPAR = 12, THL = {}, THU = {} UZR = {1: [0.25, 0.75]} UZSTOP = {1: [0.0, 1.0]} auto-07p-0.9.1+dfsg/07p/demos/nag/c.nag.1000066400000000000000000000006331206161447600173570ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 0, ILP = 0 ICP = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] NTST= 25, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC=10, NINT= 1 NMX= 100, NPR= 100, MXBF= 8, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.01, DSMIN= 0.001, DSMAX= 0.05, IADS= 1 NPAR = 12, THL = {}, THU = {} UZR = {1: [0.25, 0.75]} UZSTOP = {1: [0.0, 1.0]} auto-07p-0.9.1+dfsg/07p/demos/nag/c.nag.2000066400000000000000000000006331206161447600173600ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 0, ILP = 0 ICP = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] NTST= 25, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC=10, NINT= 1 NMX= 100, NPR= 100, MXBF= 8, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = -0.01, DSMIN= 0.001, DSMAX= 0.05, IADS= 1 NPAR = 12, THL = {}, THU = {} UZR = {1: [0.25, 0.75]} UZSTOP = {1: [0.0, 1.0]} auto-07p-0.9.1+dfsg/07p/demos/nag/c.nag.3000066400000000000000000000006331206161447600173610ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 0, ILP = 0 ICP = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] NTST= 25, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC=10, NINT= 1 NMX= 100, NPR= 100, MXBF= 8, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = -0.01, DSMIN= 0.001, DSMAX= 0.05, IADS= 1 NPAR = 12, THL = {}, THU = {} UZR = {1: [0.25, 0.75]} UZSTOP = {1: [0.0, 1.0]} auto-07p-0.9.1+dfsg/07p/demos/nag/c.nag.4000066400000000000000000000006331206161447600173620ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 0, ILP = 0 ICP = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] NTST= 25, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC=10, NINT= 1 NMX= 100, NPR= 100, MXBF= 8, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.01, DSMIN= 0.001, DSMAX= 0.05, IADS= 1 NPAR = 12, THL = {}, THU = {} UZR = {1: [0.25, 0.75]} UZSTOP = {1: [0.0, 1.0]} auto-07p-0.9.1+dfsg/07p/demos/nag/clean.auto000066400000000000000000000001451206161447600202610ustar00rootroot00000000000000 #============== # AUTO Demo nag #============== print "\n***Clean the directory***" dl('nag') cl() auto-07p-0.9.1+dfsg/07p/demos/nag/nag.auto000066400000000000000000000005221206161447600177430ustar00rootroot00000000000000 #============== # AUTO Demo nag #============== pgm = "nag" print "\nDemo %s is started"%pgm print "\n%s : first run : part of a branch of heteroclinic orbits"%pgm r1 = run(e=pgm,c=pgm) print "\n%s : second run : compute in opposite direction"%pgm r2 = run(e=pgm,c=pgm,DS='-') save(r1+r2,pgm) print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/nag/nag.f90000066400000000000000000000121221206161447600173700ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! nag : Heteroclinic orbits : A saddle-saddle connection !---------------------------------------------------------------------- !---------------------------------------------------------------------- ! Parameter assignment: ! ! PAR(1) , PAR(2) : a , c (parameters) ! PAR(3) , PAR(4) : eps-0 , eps-1 (radii) ! PAR(5) , PAR(6) : mu-0 , mu-1 (eigenvalues) ! PAR(7) , PAR(8) : v-0(1) , v-0(2) (eigenvector) ! PAR(9) , PAR(10): v-1(1) , v-1(2) (eigenvector) ! PAR(11) : period !----------------------------------------------------------------------- !----------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION PERIOD, DUMMY(1) CALL FFFF(2,U,ICP,PAR,0,F,DUMMY) PERIOD=PAR(11) F(1)=PERIOD*F(1) F(2)=PERIOD*F(2) END SUBROUTINE FUNC SUBROUTINE FFFF(NDM,U,ICP,PAR,IJAC,F,DFDU) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDM,NDM) DOUBLE PRECISION A,C A=PAR(1) C=PAR(2) F(1)= U(2) F(2)= C*U(2) - U(1) * (1-U(1)) * (U(1)-A) IF(IJAC.EQ.0)RETURN DFDU(1,1)= 0 DFDU(1,2)= 1 DFDU(2,1)= - (1-U(1))*(U(1)-A) + U(1)*(U(1)-A) - U(1)*(1-U(1)) DFDU(2,2)= C END SUBROUTINE FFFF SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T DOUBLE PRECISION PERIOD, SIGN, R, V1, V2, X, E, U0, V0, EPS ! The following initialization is done only in the first call IF(T==0)THEN ! Select period and connection (read from the constants-file) PERIOD=100. SIGN=1.0 R = 0.5*SQRT(2.D0) V1= 1./SQRT(1+R**2) V2= R /SQRT(1+R**2) X = -0.5*PERIOD E = EXP(X/SQRT(2.D0)) U0 = E/(1+E) V0 = ( E/(1+E)**2 ) / SQRT(2.D0) EPS= SQRT( U0**2 + V0**2 ) PAR(1)= 0.5 PAR(2)= 0 PAR(3)= EPS PAR(4)= EPS PAR(5)= R PAR(6)=-R PAR(7)= SIGN*V1 PAR(8)= SIGN*V2 PAR(9)= -SIGN*V1 PAR(10)= SIGN*V2 PAR(11)= PERIOD PAR(12)= SIGN ENDIF ! Specify exact solution as starting point : PERIOD=PAR(11) SIGN =PAR(12) X=PERIOD*SIGN*(T-0.5) E=DEXP(X/DSQRT(2.D0)) U(1)=E/(1+E) U(2)=SIGN*E/(1+E)**2/DSQRT(2.D0) END SUBROUTINE STPNT SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) ! ---------- ---- 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,*) ! Local INTEGER, PARAMETER :: NDM=2 DOUBLE PRECISION V0(NDM),V1(NDM),G0(NDM),G1(NDM) DOUBLE PRECISION DGDU0(NDM,NDM),DGDU1(NDM,NDM) V0(1)=U0(1) - PAR(3)*PAR(7) V0(2)=U0(2) - PAR(3)*PAR(8) V1(1)=U1(1) - PAR(4)*PAR(9) V1(2)=U1(2) - PAR(4)*PAR(10) CALL FFFF(NDM,V0,ICP,PAR,1,G0,DGDU0) CALL FFFF(NDM,V1,ICP,PAR,1,G1,DGDU1) FB(1)= DGDU0(1,1)*PAR(7) + DGDU0(1,2)*PAR(8) - PAR(5)*PAR(7) FB(2)= DGDU0(2,1)*PAR(7) + DGDU0(2,2)*PAR(8) - PAR(5)*PAR(8) FB(3)= DGDU1(1,1)*PAR(9) + DGDU1(1,2)*PAR(10)- PAR(6)*PAR(9) FB(4)= DGDU1(2,1)*PAR(9) + DGDU1(2,2)*PAR(10)- PAR(6)*PAR(10) FB(5)= PAR(7)**2 + PAR(8)**2 -1 FB(6)= PAR(9)**2 + PAR(10)**2 -1 FB(7)= G0(1) FB(8)= G0(2) FB(9)= G1(1) FB(10)=G1(2) END SUBROUTINE BCND SUBROUTINE ICND(NDIM,PAR,ICP,NINT,U,UOLD,UDOT,UPOLD,FI,IJAC,DINT) ! ---------- ---- 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,*) ! Local INTEGER, PARAMETER :: NDM=2 DOUBLE PRECISION F(NDM),F0(NDM),DFDU(NDM,NDM),DUMMY(1) CALL FFFF(NDM,U ,ICP,PAR,1,F ,DFDU) CALL FFFF(NDM,UOLD,ICP,PAR,0,F0,DUMMY) FI(1)= ( F(1) - F0(1) ) * ( DFDU(1,1)*F(1) + DFDU(1,2)*F(2) ) & + ( F(2) - F0(2) ) * ( DFDU(2,1)*F(1) + DFDU(2,2)*F(2) ) END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/nep/000077500000000000000000000000001206161447600163225ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/nep/c.nep000066400000000000000000000006031206161447600172470ustar00rootroot00000000000000NDIM= 3, IPS = 4, IRS = 0, ILP = 1 ICP = [1, 2] NTST= 10, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 3, NBC= 4, NINT= 0 NMX= 100, NPR= 100, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.1, DSMIN= 0.001, DSMAX= 0.5, IADS= 1 NPAR = 2, THL = {}, THU = {} UZR = {1: [2.0, 4.0, 6.0, 8.0]} UZSTOP = {1: 10.0} auto-07p-0.9.1+dfsg/07p/demos/nep/c.nep.1000066400000000000000000000006031206161447600174060ustar00rootroot00000000000000NDIM= 3, IPS = 4, IRS = 0, ILP = 1 ICP = [1, 2] NTST= 10, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 3, NBC= 4, NINT= 0 NMX= 100, NPR= 100, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.1, DSMIN= 0.001, DSMAX= 0.5, IADS= 1 NPAR = 2, THL = {}, THU = {} UZR = {1: [2.0, 4.0, 6.0, 8.0]} UZSTOP = {1: 10.0} auto-07p-0.9.1+dfsg/07p/demos/nep/c.nep.2000066400000000000000000000006031206161447600174070ustar00rootroot00000000000000NDIM= 3, IPS = 4, IRS = 4, ILP = 1 ICP = [1, 2] NTST= 10, NCOL= 4, IAD = 3, ISP = 2, ISW =-1, IPLT= 3, NBC= 4, NINT= 0 NMX= 100, NPR= 100, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.1, DSMIN= 0.001, DSMAX= 0.5, IADS= 1 NPAR = 2, THL = {}, THU = {} UZR = {1: [2.0, 4.0, 6.0, 8.0]} UZSTOP = {1: 10.0} auto-07p-0.9.1+dfsg/07p/demos/nep/clean.auto000066400000000000000000000001451206161447600202760ustar00rootroot00000000000000 #============== # AUTO Demo nep #============== print "\n***Clean the directory***" dl('nep') cl() auto-07p-0.9.1+dfsg/07p/demos/nep/nep.auto000066400000000000000000000004651206161447600200030ustar00rootroot00000000000000 #============== # AUTO Demo nep #============== print "\n***Compute the basic solution family***" nep = run(e='nep',c='nep.1') print "\n***Compute bifurcating solution families***" for solution in nep('BP'): nep = nep + run(solution,c='nep.2') save(nep,'nep') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/nep/nep.f90000066400000000000000000000035701206161447600174310ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! nep : A nonlinear ODE eigenvalue problem !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) F(1) = U(2) F(2) = -PAR(2)*U(1) F(3) = -U(2)**2/2 - PAR(2) END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T PAR(1)=0 PAR(2)=0 U(1)=0.0 U(2)=0.0 U(3)=0.0 END SUBROUTINE STPNT !---------------------------------------------------------------------- SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) ! ---------- ---- 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,*) FB(1)=U0(1) FB(2)=U1(1) FB(3)=U0(3) - PAR(1) FB(4)=U1(3) + PAR(1) END SUBROUTINE BCND !---------------------------------------------------------------------- SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS !---------------------------------------------------------------------- auto-07p-0.9.1+dfsg/07p/demos/nep/plaut04.rc000066400000000000000000000070001206161447600201360ustar00rootroot00000000000000#version 0.0 # Line colors are represented by RGB values from 0 to 1.0. # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and highlighting the solutions # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Initialize the default options: Highlight Orbit = No Orbit Animation = No Normalize Data = Yes Draw Background = No Draw Labels = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahead Coordinate Type = 3 # Draw Scale: Draw Scale = Yes # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 1 # Initialize the default graph style # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 1 #Set the window width and height: Window Width = 1000 Window Height = 600 # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 0 Y Axis Solution = 1 Z Axis Solution = 2 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 5 Z Axis Bifurcation = 2 #Labeled solutions: #-3 = Show all labeled solutions #-2 = Show HALF labeled solutions #-1 = Show SPEC labeled solutions #0 = Show NONE of the solutions #Otherwise, show the specified solution(s) Labels = -3 #Set coloring method: # -6 --- STABILITY # -5 --- POINT # -4 --- BRANCH # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. Coloring Method = -2 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 1.0 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Background color: Background Color = 0., 0., 0. # Background transparency: Background Transparency = 0.9 # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # UnStable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 # Color of the animation object: Object Color = 1.0, 1.0, 1.0 # Set the radius of the animation object: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Object Radius = 1.0 # Set the maximum and minimum animation speed: Object Max Animation Speed = 100 Object Min Animation Speed = 0 # Set the maximum and minimum highlighting animation speed: Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 # Set the active AUTO parameter indices: parameter ID = 10 # Choose 3D or 2D graph: 3D = No # Set the number of periods animated. # The value should be the power of 2. Number of Period Animated = 1 auto-07p-0.9.1+dfsg/07p/demos/non/000077500000000000000000000000001206161447600163325ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/non/c.non000066400000000000000000000005571206161447600172770ustar00rootroot00000000000000NDIM= 3, IPS = 4, IRS = 0, ILP = 1 ICP = [1] NTST= 10, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 3, NINT= 0 NMX= 50, NPR= 50, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.1, DSMIN= 0.001, DSMAX= 5.0, IADS= 1 NPAR = 1, THL = {}, THU = {} UZR = {1: [1.0, 3.0]}, A1 = 100.0 auto-07p-0.9.1+dfsg/07p/demos/non/c.non.1000066400000000000000000000005571206161447600174360ustar00rootroot00000000000000NDIM= 3, IPS = 4, IRS = 0, ILP = 1 ICP = [1] NTST= 10, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 3, NINT= 0 NMX= 50, NPR= 50, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.1, DSMIN= 0.001, DSMAX= 5.0, IADS= 1 NPAR = 1, THL = {}, THU = {} UZR = {1: [1.0, 3.0]}, A1 = 100.0 auto-07p-0.9.1+dfsg/07p/demos/non/clean.auto000066400000000000000000000001451206161447600203060ustar00rootroot00000000000000 #============== # AUTO Demo non #============== print "\n***Clean the directory***" dl('non') cl() auto-07p-0.9.1+dfsg/07p/demos/non/non.auto000066400000000000000000000003321206161447600200140ustar00rootroot00000000000000 #============== # AUTO Demo non #============== pgm = "non" print "\nDemo %s is started"%pgm print "\n%s : compute a solution branch"%pgm r1 = run(e=pgm,c=pgm) save(r1,pgm) print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/non/non.f90000066400000000000000000000032711206161447600174470ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! non : A non-autonomous boundary value problem !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION U1,U2,X,P U1=U(1) U2=U(2) X =U(3) P=PAR(1) F(1)=U2 F(2)=-P*EXP(X**3*U1) F(3)=1.d0 END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,X) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: X PAR(1)=0.d0 U(1)=0.d0 U(2)=0.d0 U(3)=X END SUBROUTINE STPNT SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) ! ---------- ---- 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,*) FB(1)=U0(1) FB(2)=U1(1) FB(3)=U0(3) END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/obv/000077500000000000000000000000001206161447600163265ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/obv/c.obv000066400000000000000000000006161206161447600172630ustar00rootroot00000000000000NDIM= 4, IPS = 4, IRS = 0, ILP = 0 ICP = [10, 1, 16, 17, 18, 13, 14, 15] NTST= 10, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 6, NINT= 5 NMX= 40, NPR= 150, MXBF= 3, IID = 2, ITMX= 10, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = -0.01, DSMIN= 0.01, DSMAX= 0.5, IADS= 1 NPAR = 18, THL = {}, THU = {} UZR = {16: 1.0, 17: 0.0, 18: 0.0} auto-07p-0.9.1+dfsg/07p/demos/obv/c.obv.1000066400000000000000000000006161206161447600174220ustar00rootroot00000000000000NDIM= 4, IPS = 4, IRS = 0, ILP = 0 ICP = [10, 1, 16, 17, 18, 13, 14, 15] NTST= 10, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 6, NINT= 5 NMX= 40, NPR= 150, MXBF= 3, IID = 2, ITMX= 10, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = -0.01, DSMIN= 0.01, DSMAX= 0.5, IADS= 1 NPAR = 18, THL = {}, THU = {} UZR = {16: 1.0, 17: 0.0, 18: 0.0} auto-07p-0.9.1+dfsg/07p/demos/obv/c.obv.2000066400000000000000000000006161206161447600174230ustar00rootroot00000000000000NDIM= 4, IPS = 4, IRS = 2, ILP = 0 ICP = [10, 1, 16, 17, 18, 13, 14, 15] NTST= 10, NCOL= 4, IAD = 3, ISP = 2, ISW =-1, IPLT= 0, NBC= 6, NINT= 5 NMX= 5, NPR= 150, MXBF= 3, IID = 2, ITMX= 10, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = -0.01, DSMIN= 0.01, DSMAX= 0.5, IADS= 1 NPAR = 18, THL = {}, THU = {} UZR = {16: 1.0, 17: 0.0, 18: 0.0} auto-07p-0.9.1+dfsg/07p/demos/obv/c.obv.3000066400000000000000000000006151206161447600174230ustar00rootroot00000000000000NDIM= 4, IPS = 4, IRS = 6, ILP = 0 ICP = [10, 1, 2, 17, 18, 13, 14, 15] NTST= 10, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 6, NINT= 5 NMX= 100, NPR= 150, MXBF= 3, IID = 2, ITMX= 10, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = -0.01, DSMIN= 0.01, DSMAX= 0.5, IADS= 1 NPAR = 18, THL = {}, THU = {} UZR = {16: 1.0, 17: 0.0, 18: 0.0} auto-07p-0.9.1+dfsg/07p/demos/obv/c.obv.4000066400000000000000000000006141206161447600174230ustar00rootroot00000000000000NDIM= 4, IPS = 4, IRS = 8, ILP = 0 ICP = [10, 1, 2, 3, 18, 13, 14, 15] NTST= 10, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 6, NINT= 5 NMX= 25, NPR= 150, MXBF= 3, IID = 2, ITMX= 10, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = -0.01, DSMIN= 0.01, DSMAX= 0.5, IADS= 1 NPAR = 18, THL = {}, THU = {} UZR = {16: 1.0, 17: 0.0, 18: 0.0} auto-07p-0.9.1+dfsg/07p/demos/obv/clean.auto000066400000000000000000000001751206161447600203050ustar00rootroot00000000000000 #============== # AUTO Demo obv #============== print "\n***Clean the directory***" dl('obv') dl('1') dl('2') dl('3') cl() auto-07p-0.9.1+dfsg/07p/demos/obv/obv.auto000066400000000000000000000012011206161447600200000ustar00rootroot00000000000000 #============== # AUTO Demo obv #============== pgm = "obv" print "\nDemo %s is started"%pgm print "\n%s : first run : locate 1-parameter extrema as bifurcation points"%pgm r1 = run(e=pgm,c=pgm) save(r1,'obv') print "\n%s : second run : compute a few step on the first bifurcating branch"%pgm r2 = run(r1("BP1"),ISW=-1,NMX=5) save(r2,'1') print "\n%s : third run : locate 2-parameter extremum"%pgm r3 = run(r2,ICP=[10,1,2,17,18,13,14,15],ISW=1,NMX=100) save(r3,'2') print "\n%s : fourth run : locate 3-parameter extremum"%pgm r4 = run(r3("UZ2"),ICP=[10,1,2,3,18,13,14,15],NMX=25) save(r4,'3') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/obv/obv.f90000066400000000000000000000052771206161447600174470ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! obv : Optimization in a boundary value problem !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION P, E P=U(1) + PAR(2)*U(1)**2 + PAR(3)*U(1)**4 E=EXP(P) F(1)= U(2) F(2)=-PAR(1)*E F(3)= PAR(1)*E*(1+2*PAR(2)*U(1)+4*PAR(3)*U(1)**3 )*U(4) & + PAR(15)*2*(U(1)-1.0) F(4)=-U(3) END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T PAR(1)=0.001 PAR(10)=1.0 U(1)=0.0 U(2)=0.0 U(3)=0.0 U(4)=0.0 END SUBROUTINE STPNT SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) ! ---------- ---- 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,*) FB(1)=U0(1) FB(2)=U1(1) FB(3)=U0(3)-PAR(13) FB(4)=U0(4) FB(5)=U1(3)+PAR(14) FB(6)=U1(4) END SUBROUTINE BCND SUBROUTINE ICND(NDIM,PAR,ICP,NINT,U,UOLD,UDOT,UPOLD,FI,IJAC,DINT) ! ---------- ---- 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,*) DOUBLE PRECISION P, E P=U(1) + PAR(2)*U(1)**2 + PAR(3)*U(1)**4 E=EXP(P) FI(1)=U(3)**2 - PAR(16) FI(2)=PAR(10)-(U(1)-1.0)**2 & - 0.1*( PAR(1)**2+PAR(2)**2+PAR(3)**2 ) FI(3)=-E*U(4)-PAR(15)*0.2*PAR(1) IF(NINT.EQ.3)RETURN FI(4)=-PAR(1)*E*U(1)**2*U(4)-PAR(15)*0.2*PAR(2) - PAR(17) IF(NINT.EQ.4)RETURN FI(5)=-PAR(1)*E*U(1)**4*U(4)-PAR(15)*0.2*PAR(3) - PAR(18) END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/ops/000077500000000000000000000000001206161447600163415ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/ops/c.ops000066400000000000000000000005371206161447600173130ustar00rootroot00000000000000NDIM= 3, IPS = 1, IRS = 0, ILP = 1 ICP = [3] NTST= 15, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 25, NPR= 500, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.01, DSMIN= 0.001, DSMAX= 0.5, IADS= 1 NPAR = 4, THL = {}, THU = {} UZSTOP = {3: 0.95} auto-07p-0.9.1+dfsg/07p/demos/ops/c.ops.1000066400000000000000000000005371206161447600174520ustar00rootroot00000000000000NDIM= 3, IPS = 1, IRS = 0, ILP = 1 ICP = [3] NTST= 15, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 25, NPR= 500, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.01, DSMIN= 0.001, DSMAX= 0.5, IADS= 1 NPAR = 4, THL = {}, THU = {} UZSTOP = {3: 0.95} auto-07p-0.9.1+dfsg/07p/demos/ops/c.ops.2000066400000000000000000000005511206161447600174470ustar00rootroot00000000000000NDIM= 3, IPS = 2, IRS = 2, ILP = 1 ICP = [3, 11] NTST= 15, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 150, NPR= 500, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.01, DSMIN= 0.001, DSMAX= 0.5, IADS= 1 NPAR = 4, THL = {}, THU = {} UZR = {3: [0.92, 0.93]} auto-07p-0.9.1+dfsg/07p/demos/ops/c.ops.3000066400000000000000000000006001206161447600174430ustar00rootroot00000000000000NDIM= 3, IPS = 15, IRS = 4, ILP = 0 ICP = [3, 11, 12, 22, -22, -23, -31] NTST= 15, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 25, NPR= 500, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = -0.05, DSMIN= 0.001, DSMAX= 0.5, IADS= 1 NPAR = 4, THL = {}, THU = {} UZR = {3: [0.92, 0.93]} auto-07p-0.9.1+dfsg/07p/demos/ops/c.ops.4000066400000000000000000000006001206161447600174440ustar00rootroot00000000000000NDIM= 3, IPS = 15, IRS = 9, ILP = 0 ICP = [3, 11, 12, 22, -22, -23, -31] NTST= 15, NCOL= 4, IAD = 3, ISP = 0, ISW =-1, IPLT= 0, NBC= 0, NINT= 0 NMX= 5, NPR= 500, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = -0.05, DSMIN= 0.001, DSMAX= 0.5, IADS= 1 NPAR = 4, THL = {}, THU = {} UZR = {3: [0.92, 0.93]} auto-07p-0.9.1+dfsg/07p/demos/ops/c.ops.5000066400000000000000000000006101206161447600174460ustar00rootroot00000000000000NDIM= 3, IPS = 15, IRS = 11, ILP = 0 ICP = [3, 2, 11, 22, -22, -23, -31] NTST= 15, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 150, NPR= 500, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.05, DSMIN= 0.001, DSMAX= 0.5, IADS= 1 NPAR = 4, THL = {}, THU = {} UZR = {3: [0.92, 0.93], 22: 0.0} auto-07p-0.9.1+dfsg/07p/demos/ops/c.ops.6000066400000000000000000000006211206161447600174510ustar00rootroot00000000000000NDIM= 3, IPS = 15, IRS = 15, ILP = 0 ICP = [3, 2, 1, 11, -22, -23, -31] NTST= 50, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 150, NPR= 500, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.05, DSMIN= 0.001, DSMAX= 0.5, IADS= 1 NPAR = 4, THL = {}, THU = {} UZR = {1: [0.1, 0.05, 0.01, 0.005, 0.001]} auto-07p-0.9.1+dfsg/07p/demos/ops/clean.auto000066400000000000000000000001731206161447600203160ustar00rootroot00000000000000 #============== # AUTO Demo ops #============== print "\n***Clean the directory***" dl('0') dl('1') dl('2') dl('3') cl() auto-07p-0.9.1+dfsg/07p/demos/ops/ops.auto000066400000000000000000000020671206161447600200410ustar00rootroot00000000000000 #============== # AUTO Demo ops #============== pgm = "ops" print "\nDemo %s is started"%pgm print "\n%s : first run : locate a Hopf bifurcation"%pgm r1 = run(e=pgm,c=pgm) print "\n%s : second run : compute a branch of periodic solutions"%pgm uzr = {3: [0.92, 0.93]} r2 = run(r1("HB1"),IPS=2,ICP=[3,11],NMX=150,RL0=0.9,UZR=uzr,UZSTOP={}) save(r1+r2,'0') print "\n%s : third run : locate a 1-parameter extremum as a bifurcation"%pgm icp=[3,11,12,22,-22,-23,-31] r3 = run(r2("UZ1"),IPS=15,ILP=0,ICP=icp,ISP=2,NMX=25,ITNW=7,DS=-0.05) print "\n%s : fourth run : switch branches to generate adjoint variables"%pgm r4 = run(r3("BP1"),ISW=-1,ISP=0,NMX=5) save(r3+r4,'1') print "\n%s : fifth run : a 2-parameter branch of 1-parameter extrema"%pgm icp[1:3]=[2,11] uzr[22]=0.0 r5 = run(r4,ICP=icp,ISW=1,NMX=150,RL0=0.8,RL1=1.9,DS='-',UZR=uzr) save(r5,'2') print "\n%s : sixth run : a 3-parameter branch of 2-parameter extrema"%pgm icp[2:4]=[1,11] r6 = run(r5("UZ4"),IRS=15,ICP=icp,NTST=50,UZR={1:[0.1,0.05,0.01,0.005,0.001]}) save(r6,'3') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/ops/ops.f90000066400000000000000000000054321206161447600174660ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! ops : Optimization of periodic solutions !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION x,y,z,p1,p2,p3,p4 INTEGER I,J x=U(1) y=U(2) z=U(3) p1=PAR(1) p2=PAR(2) p3=PAR(3) p4=PAR(4) F(1)=( -p4*(x**3/3-x) + (z-x)/p2 - y ) / p1 F(2)=x-p3 F(3)=-(z-x)/p2 IF(IJAC.EQ.0)RETURN DFDU(1,1)=( -p4*(x**2-1) - 1/p2 ) /p1 DFDU(1,2)=-1/p1 DFDU(1,3)=1/(p2*p1) DFDU(2,1)=1 DFDU(2,2)=0 DFDU(2,3)=0 DFDU(3,1)=1/p2 DFDU(3,2)=0 DFDU(3,3)=-1/p2 IF(IJAC.EQ.1)RETURN ! *Parameter derivatives DO I=1,3 DO J=1,9 DFDP(I,J)=0.d0 ENDDO ENDDO DFDP(1,1)=-( -p4*(x**3/3-x) + (z-x)/p2 - y )/p1**2 DFDP(1,2)=-(z-x)/(p2**2*p1) DFDP(1,3)=0 DFDP(1,4)=-(x**3/3-x)/p1 DFDP(2,1)=0 DFDP(2,2)=0 DFDP(2,3)=-1 DFDP(2,4)=0 DFDP(3,1)=0 DFDP(3,2)=(z-x)/p2**2 DFDP(3,3)=0 DFDP(3,4)=0 END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T DOUBLE PRECISION p1,p2,p3,p4 p1=0.5 p2=4 p3=0.9 p4=2. U(1)=p3 U(2)=-p4*(p3**3/3-p3) U(3)=p3 PAR(1)=p1 PAR(2)=p2 PAR(3)=p3 PAR(4)=p4 END SUBROUTINE STPNT SUBROUTINE FOPT(NDIM,U,ICP,PAR,IJAC,FS,DFDU,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(*) INTEGER I FS=PAR(3) IF(IJAC.EQ.0)RETURN DO I=1,NDIM DFDU(I)=0.d0 ENDDO IF(IJAC.EQ.1)RETURN ! *Parameter derivatives DO I=1,9 DFDP(I)=0.d0 ENDDO DFDP(3)=1.d0 END SUBROUTINE FOPT SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/opt/000077500000000000000000000000001206161447600163425ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/opt/c.opt000066400000000000000000000005431206161447600173120ustar00rootroot00000000000000NDIM= 1, IPS = 5, IRS = 0, ILP = 1 ICP = [10, 1, 2, 3, 4] NTST= 10, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 25, NPR= 25, MXBF= 5, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 1 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.05, DSMIN= 0.001, DSMAX= 0.2, IADS= 1 NPAR = 4, THL = {}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/opt/c.opt.1000066400000000000000000000005431206161447600174510ustar00rootroot00000000000000NDIM= 1, IPS = 5, IRS = 0, ILP = 1 ICP = [10, 1, 2, 3, 4] NTST= 10, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 25, NPR= 25, MXBF= 5, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 1 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.05, DSMIN= 0.001, DSMAX= 0.2, IADS= 1 NPAR = 4, THL = {}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/opt/c.opt.2000066400000000000000000000005431206161447600174520ustar00rootroot00000000000000NDIM= 1, IPS = 5, IRS = 2, ILP = 1 ICP = [10, 1, 2, 3, 4] NTST= 10, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 25, NPR= 25, MXBF= 5, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 1 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.05, DSMIN= 0.001, DSMAX= 0.2, IADS= 1 NPAR = 4, THL = {}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/opt/c.opt.3000066400000000000000000000005431206161447600174530ustar00rootroot00000000000000NDIM= 1, IPS = 5, IRS = 4, ILP = 1 ICP = [10, 1, 2, 3, 4] NTST= 10, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 25, NPR= 25, MXBF= 5, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 1 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.05, DSMIN= 0.001, DSMAX= 0.2, IADS= 1 NPAR = 4, THL = {}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/opt/c.opt.4000066400000000000000000000005431206161447600174540ustar00rootroot00000000000000NDIM= 1, IPS = 5, IRS = 6, ILP = 1 ICP = [10, 1, 2, 3, 4] NTST= 10, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 25, NPR= 25, MXBF= 5, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 1 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.05, DSMIN= 0.001, DSMAX= 0.2, IADS= 1 NPAR = 4, THL = {}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/opt/clean.auto000066400000000000000000000001731206161447600203170ustar00rootroot00000000000000 #============== # AUTO Demo opt #============== print "\n***Clean the directory***" dl('1') dl('2') dl('3') dl('4') cl() auto-07p-0.9.1+dfsg/07p/demos/opt/opt.auto000066400000000000000000000010071206161447600200340ustar00rootroot00000000000000 #============== # AUTO Demo opt #============== pgm = "opt" print "\nDemo %s is started"%pgm print "\n%s : first run : one free equation parameter"%pgm r1 = run(e=pgm,c=pgm) save(r1,'1') print "\n%s : second run : two free equation parameters"%pgm r2 = run(r1("LP1")) save(r2,'2') print "\n%s : third run : three free equation parameters"%pgm r3 = run(r2("LP1")) save(r3,'3') print "\n%s : fourth run : four free equation parameters"%pgm r4 = run(r3("LP1")) save(r4,'4') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/opt/opt.f90000066400000000000000000000044661206161447600174760ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! opt : A model algebraic optimization problem !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION X1,X2,X3,X4,X5 X1=U(1) X2=PAR(1) X3=PAR(2) X4=PAR(3) X5=PAR(4) F(1)=X1*X1 + X2*X2 + X3*X3 + X4*X4 + X5*X5 - 1 IF(IJAC.EQ.0)RETURN DFDU(1,1)=2*X1 IF(IJAC.EQ.1)RETURN ! *Parameter derivatives DFDP(1,1)=2*X2 DFDP(1,2)=2*X3 DFDP(1,3)=2*X4 DFDP(1,4)=2*X5 END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T DOUBLE PRECISION X1,X2,X3,X4,X5 X1=1.0 X2=0.0 X3=0.0 X4=0.0 X5=0.0 U(1)=X1 PAR(1)=X2 PAR(2)=X3 PAR(3)=X4 PAR(4)=X5 END SUBROUTINE STPNT SUBROUTINE FOPT(NDIM,U,ICP,PAR,IJAC,FS,DFDU,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(*) DOUBLE PRECISION X1,X2,X3,X4,X5 X1=U(1) X2=PAR(1) X3=PAR(2) X4=PAR(3) X5=PAR(4) FS=X1 + X2 + X3 + X4 + X5 IF(IJAC.EQ.0)RETURN DFDU(1)=1.0 IF(IJAC.EQ.1)RETURN ! *Parameter derivatives DFDP(1)=1.0 DFDP(2)=1.0 DFDP(3)=1.0 DFDP(4)=1.0 END SUBROUTINE FOPT SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/p2c/000077500000000000000000000000001206161447600162245ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/p2c/clean.auto000066400000000000000000000000201206161447600201700ustar00rootroot00000000000000dl('cont') cl() auto-07p-0.9.1+dfsg/07p/demos/p2c/p2c.auto000066400000000000000000000027121206161447600176040ustar00rootroot00000000000000# initial part print "find the Branch point" r = run(e='p2c',NDIM=3,ILP=0,STOP="BP1",MXBF=0,DS=0.3,DSMAX=25,NPAR=23) # initial part print "find the Hopf bifurcation" r = r + run(r('BP1'),ISW=-1,STOP="HB1") print "a solution branch starting from the Hopf bifurcation" sol = run(r('HB1'),IPS=2,ICP=[1,11],NTST=50,UZSTOP={1:21}) print "continue zero eigenfunction until eigenvalue" zero = run(sol, NDIM=6,IPS=4,ICP=[12,11,10],NBC=7,NINT=1, DS=1.e-3,DSMIN=1.e-5,DSMAX=1.e-2,STOP=["BP2"]) bp = zero('BP1') print "switch to continuation of nontrivial eigenfunction" norm1 = run(bp,ISW=-1,UZSTOP={10:1.0},STOP=[]) # Add initial "connection" into the last three dimensions and do # the first homotopy print "homotopy in (T,h1)" h1 = run(norm1, NDIM=9,ICP=[13,11,12,21,14,15,16,17,18,19,20,22],ISW=1,ISP=0, NBC=19,THL={13:0,11:0}, DS=0.1,DSMIN=1e-10,DSMAX=500, UZR={21:0},UZSTOP={},STOP=["UZ3"]) print "homotopy in (r,h2)" h2 = run(h1('UZ3'),NINT=0, ICP=[11,1,12,14,15,16,17,18,19,20,22],DS=-1,DSMIN=1.e-5,NBC=19, UZR={22:0},STOP=["UZ1"]) print "homotopy in (T,r)" h3 = run(h2,DS=1, ICP=[13,1,11,12,14,15,16,17,18,19,20],NBC=19, UZR={13:[3,4]}, UZSTOP={13:5}, STOP=[]) print "fwd continuation in two system parameters" cont = load(h3('UZ1'),DS=1.e-5,DSMIN=1.e-7,DSMAX=0.5, ICP=[1,3,11,12,14,15,16,17,18,19,20],UZR={},UZSTOP={}, NTST=50,NMX=450,NPR=60) contb = run(cont) print "bwd continuation in two system parameters" contf = run(cont,DS='-') save(mb(rl(contf+contb)),'cont') cl() auto-07p-0.9.1+dfsg/07p/demos/p2c/p2c.f90000066400000000000000000000135531206161447600172370ustar00rootroot00000000000000!---------------------------------------------------------------------- ! lor: Point-to-cycle connection in the Lorenz model via homotopy !---------------------------------------------------------------------- !---------------------------------------------------------------------- ! Adjoint scaled eigenfunction of the cycle in the Lorenz model ! ! PAR(10)=square norm of the eigenfunction at T=0 ! PAR(12)=log(FM) !---------------------------------------------------------------------- SUBROUTINE RHS(N,U,PAR,F,DFDU,IJAC) ! ---------- ---- IMPLICIT NONE INTEGER N DOUBLE PRECISION U(N),PAR(*),F(N),DFDU(N,N) LOGICAL IJAC DOUBLE PRECISION x,y,z,r,b,sigma ! System parameters ! PAR(1) ! r ! PAR(2) ! b ! PAR(3) ! sigma ! Variables x=U(1) y=U(2) z=U(3) ! Parameters r=PAR(1) b=PAR(2) sigma=PAR(3) ! RHS F(1)=sigma*(y-x) F(2)=r*x-y-x*z F(3)=x*y-b*z IF(.NOT.IJAC)RETURN ! Jacobian elements DFDU(1,1)=-sigma DFDU(1,2)=sigma DFDU(1,3)=0.0d0 DFDU(2,1)=r-z DFDU(2,2)=-1.d0 DFDU(2,3)=-x DFDU(3,1)=y DFDU(3,2)=x DFDU(3,3)=-b END SUBROUTINE RHS SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- 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,*), DFDP(NDIM,*) DOUBLE PRECISION A(3,3) ! Variables ! U(1)-U(3) = limit cycle ! U(4)-U(6) = adjoint eigenfunction ! U(7)-U(9) = connecting orbit ! Cycle equations CALL RHS(3,U,PAR,F,A,NDIM/=3) IF(NDIM==3)RETURN F(1:3) = PAR(11)*F(1:3) ! Adjoint variational equations ! PAR(11) = cycle period ! PAR(12) = log(FM) F(4:6) = -PAR(11)*MATMUL(TRANSPOSE(A(:,:)),U(4:6))-PAR(12)*U(4:6) IF(NDIM==6)RETURN ! Connecting orbit equations CALL RHS(3,U(7),PAR,F(7),A,.FALSE.) ! PAR(13) = connection interval F(7:9) = PAR(13)*F(7:9) END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(IN) :: T DOUBLE PRECISION r,b,sigma,v1,v2,v3,vnorm,eps,i IF (NDIM==9) THEN !extend system eps=PAR(23) U(7:9)=PAR(14:16) + eps*PAR(17:19) RETURN ENDIF ! Parameter values for the starting equilibrium r=0.d0 b=8.0d0/3.0d0 sigma=10.0d0 U(1:3)=0. PAR(1)=r PAR(2)=b PAR(3)=sigma ! Eigenvalue approx PAR(12)=-1.0d0 ! Initial connection time PAR(13)=0.0d0 ! Equilibrium coordinates PAR(14:16)=U(1:3) ! Normalized exit eigenvector of the equilibrium r=21.0d0 v1=1.0-sigma+SQRT((1.0-sigma)**2+4.0*r*sigma) v2=2.0*r v3=0.0D0 vnorm=SQRT(v1**2+v2**2+v3**2) PAR(17)=v1/vnorm PAR(18)=v2/vnorm PAR(19)=v3/vnorm ! Exit eigenvalue PAR(20)=(-1.0d0-sigma+SQRT((1.0d0-sigma)**2+4.0d0*r*sigma))/2.0d0 ! epsilon for the starting point y0 PAR(23)=-1d-4 END SUBROUTINE STPNT SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) ! ---------- ---- 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,*) DOUBLE PRECISION X(3),R(3),A(3,3),V(3),H(3),epsilon,rlambda ! Periodic boundary conditions ! ---------------------------- FB(1:3) = U0(1:3) - U1(1:3) FB(4:6) = U1(4:6) - U0(4:6) ! Eigenfunction normalisation FB(7) = DOT_PRODUCT(U0(4:6),U0(4:6)) - PAR(10) IF(NBC == 7)RETURN ! Exit eigenvector V(:) = PAR(17:19) ! Connecting orbit starting point epsilon = PAR(23) FB(8:10) = U0(7:9)-PAR(14:16)-epsilon*V(:) ! Equilibrium coordinates CALL RHS(3,PAR(14:16),PAR,FB(11:13),A,.TRUE.) ! Exit eigenvalue rlambda = PAR(20) FB(14:16) = MATMUL(A(:,:),V(:))-rlambda*V(:) ! Exit vector normalization FB(17) = DOT_PRODUCT(V(:),V(:)) - 1.0d0 ! Connection endpoint in the orthogonal plane to velocity H(:) = U1(7:9) - U0(1:3) CALL RHS(3,U0,PAR,R,A,.FALSE.) FB(18) = DOT_PRODUCT(H(:),R(:)) - PAR(21) ! Projection boundary condition at the endpoint FB(19) = DOT_PRODUCT(H(:),U0(4:6)) - PAR(22) END SUBROUTINE BCND SUBROUTINE PVLS(NDIM,U,PAR) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(IN) :: U(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: PAR(*) DOUBLE PRECISION GETP DOUBLE PRECISION X(3),W(3),F(3),A(3,3),H(3),length IF(NDIM==6)THEN ! Initial values for homotopy parameters ! Base point on the cycle X(1)=GETP('BV0',1,U) X(2)=GETP('BV0',2,U) X(3)=GETP('BV0',3,U) ! End point of the initial connection length=PAR(23)*EXP(PAR(20)*PAR(13)) H(1:3)=PAR(14:16)+length*PAR(17:19)-X(1:3) CALL RHS(3,X,PAR,F,A,.FALSE.) ! Homotopy parameter PAR(21) = DOT_PRODUCT(H,F) ! Eigenfunction at t=0 W(1)=GETP('BV0',4,U) W(2)=GETP('BV0',5,U) W(3)=GETP('BV0',6,U) ! Homotopy parameter PAR(22) = DOT_PRODUCT(H,W) ENDIF END SUBROUTINE PVLS SUBROUTINE ICND(NDIM,PAR,ICP,NINT,U,UOLD,UDOT,UPOLD,FI,IJAC,DINT) ! ---------- ---- 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,*) ! Integral phase condition ! ------------------------ FI(1) = DOT_PRODUCT(U(:3),UPOLD(:3)) END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT auto-07p-0.9.1+dfsg/07p/demos/p2c/plaut04.rc000066400000000000000000000070141206161447600200450ustar00rootroot00000000000000#version 0.0 # Line colors are represented by RGB values from 0 to 1.0. # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and highlighting the solutions # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Initialize the default options: Highlight Orbit = No Orbit Animation = No Normalize Data = Yes Draw Background = No Draw Labels = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahead Coordinate Type = 3 # Draw Scale: Draw Scale = Yes # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 0 # Initialize the default graph style # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 1 #Set the window width and height: Window Width = 1000 Window Height = 600 # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 1,4,7 Y Axis Solution = 2,5,8 Z Axis Solution = 3,6,9 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 1 Z Axis Bifurcation = 2 #Labeled solutions: #-3 = Show all labeled solutions #-2 = Show HALF labeled solutions #-1 = Show SPEC labeled solutions #0 = Show NONE of the solutions #Otherwise, show the specified solution(s) Labels = -3 #Set coloring method: # -6 --- STABILITY # -5 --- POINT # -4 --- BRANCH # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. Coloring Method = -5 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 1.0 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Background color: Background Color = 0., 0., 0. # Background transparency: Background Transparency = 0.9 # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # UnStable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 # Color of the animation object: Object Color = 1.0, 1.0, 1.0 # Set the radius of the animation object: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Object Radius = 1.0 # Set the maximum and minimum animation speed: Object Max Animation Speed = 100 Object Min Animation Speed = 0 # Set the maximum and minimum highlighting animation speed: Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 # Set the active AUTO parameter indices: parameter ID = 10 # Choose 3D or 2D graph: 3D = Yes # Set the number of periods animated. # The value should be the power of 2. Number of Period Animated = 1 auto-07p-0.9.1+dfsg/07p/demos/pcl/000077500000000000000000000000001206161447600163165ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/pcl/autorc000066400000000000000000000034341206161447600175420ustar00rootroot00000000000000[AUTO_plotter] #default_option="d1" #d1 = {"grid": "no", "use_labels": 1, "use_symbols": 1, "stability": 1} # similarly you can redefine d0, d2, d3, d4. #grid = "no" stability = 0 #use_labels = 1 #use_symbols = 0 top_title = "Lorenz: EtoP connections using Lin's method" #top_title_fontsize = 12 #xlabel = '' #xlabel_fontsize = 12 #ylabel = '' #ylabel_fontsize = 12 #solution_indepvarname = "time" #solution_coordnames = ["$x$","$y$","$z$"] #bifurcation_coordnames = [r"$\rho$", "L2-norm", "max $x$", "max $y$", "max $z$", "$\beta", "$\gamma$"] #line_width = 2.0 #dashes = (6.0,6.0) #background = "white" #foreground = "black" #color_list = "black red green blue" #symbol_color = "red" #symbol_font = "-misc-fixed-*-*-*-*-*-*-*-*-*-*-*-*" #decorations = 1 #smart_label = 1 #minx = 0 #maxx = 0 #miny = 0 #maxy = 0 #width = 600 #height = 480 #left_margin = 80 #right_margin = 40 #top_margin = 40 #bottom_margin = 40 #xticks = 5 #yticks = 5 #tick_label_template = "%.2e" #tick_length = 0.2 #odd_tick_length = 0.4 #even_tick_length = 0.2 #ps_colormode = "color" #mark_t = None #or a real value between 0 and 1 type = "solution" # or "bifurcation" bifurcation_x = [0] bifurcation_y = [2] solution_x = ['xgamma','x+','x-'] solution_y = ['zgamma','z+','z-'] ## Sets of columns that the user is likely to want to use #bifurcation_column_defaults = None #solution_column_defaults = None # The label(s) of the solution we wish to draw #label = [1,2,3] #label_defaults = None # The index/indices of the solution we wish to draw #index = [0] #bifurcation_diagram_filename = 'fort.7' #solution_filename = 'fort.8' #bifurcation_symbol = "square" #limit_point_symbol = None #hopf_symbol = "fillsquare" #period_doubling_symbol = "doubletriangle" #torus_symbol = "filldiamond" #user_point_symbol = "U" #error_symbol = None auto-07p-0.9.1+dfsg/07p/demos/pcl/c.pcl.1000066400000000000000000000007301206161447600173770ustar00rootroot00000000000000unames={1: 'xgamma', 2: 'ygamma', 3: 'zgamma'} parnames={1: 'rho', 2: 'beta', 3: 'sigma'} NDIM= 3, IPS = 1, IRS = 0, ILP = 0 ICP = ['rho'] NTST= 20, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX=99999, NPR=99999, MXBF= 10, IID = 2, ITMX= 9, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.1, DSMIN= 0.005, DSMAX= 2.0, IADS= 1 NPAR= 26, THL = {11: 0.0}, THU = {} UZSTOP = {'rho': 31.6} STOP= ['HB1'] auto-07p-0.9.1+dfsg/07p/demos/pcl/c.pcl.2000066400000000000000000000007321206161447600174020ustar00rootroot00000000000000unames={1: 'xgamma', 2: 'ygamma', 3: 'zgamma'} parnames={1: 'rho', 2: 'beta', 3: 'sigma', 11: 'T'} NDIM= 3, IPS = 2, IRS = HB2, ILP = 0 ICP = ['rho', 'T'] NTST= 50, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX=99999, NPR=99999, MXBF= 10, IID = 2, ITMX= 9, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.1, DSMIN= 0.005, DSMAX= 2.0, IADS= 1 NPAR= 26, THL = {11: 0.0}, THU = {} UZSTOP = {'rho': 24.0579} auto-07p-0.9.1+dfsg/07p/demos/pcl/c.pcl.3000066400000000000000000000010101206161447600173710ustar00rootroot00000000000000unames={1: 'xgamma', 2: 'ygamma', 3: 'zgamma', 4: 'x', 5: 'y', 6: 'z'} parnames={1: 'rho', 2: 'beta', 3: 'sigma', 11: 'T', 12: 'mu', 13: 'h'} NDIM= 6, IPS = 4, IRS = UZ1, ILP = 0 ICP = ['mu', 'h', 'T'] NTST= 50, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 7, NINT= 1 NMX=99999, NPR=99999, MXBF= 10, IID = 2, ITMX= 9, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -0.1, DSMIN= 1e-07, DSMAX= 1.0, IADS= 1 NPAR= 26, THL = {11: 0.0}, THU = {} UZR = {} STOP= ['BP1'] auto-07p-0.9.1+dfsg/07p/demos/pcl/c.pcl.4000066400000000000000000000010041206161447600173750ustar00rootroot00000000000000unames={1: 'xgamma', 2: 'ygamma', 3: 'zgamma', 4: 'x', 5: 'y', 6: 'z'} parnames={1: 'rho', 2: 'beta', 3: 'sigma', 11: 'T', 12: 'mu', 13: 'h'} NDIM= 6, IPS = 4, IRS = BP1, ILP = 0 ICP = ['mu', 'h', 'T'] NTST= 50, NCOL= 4, IAD = 3, ISP = 2, ISW =-1, IPLT= 0, NBC= 7, NINT= 1 NMX=99999, NPR=99999, MXBF= 10, IID = 2, ITMX= 9, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 1, DSMIN= 1e-05, DSMAX= 100, IADS= 1 NPAR= 26, THL = {11: 0.0}, THU = {} UZSTOP = {'h': 1.0} auto-07p-0.9.1+dfsg/07p/demos/pcl/c.pcl.5000066400000000000000000000011061206161447600174010ustar00rootroot00000000000000unames={1: 'xgamma', 2: 'ygamma', 3: 'zgamma', 4: 'x', 5: 'y', 6: 'z', 7: 'x+', 8: 'y+', 9: 'z+'} parnames={1: 'rho', 2: 'beta', 3: 'sigma', 11: 'T', 12: 'mu', 13: 'h', 14: 'T+', 21: 'sigma+'} NDIM= 9, IPS = 4, IRS = UZ1, ILP = 0 ICP = ['T+', 'mu', 'T', 'sigma+'] NTST= 50, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC=11, NINT= 1 NMX=99999, NPR=99999, MXBF= 10, IID = 2, ITMX= 9, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 1.0, DSMIN= 1e-05, DSMAX= 100, IADS= 1 NPAR= 26, THL = {11: 0.0}, THU = {} UZSTOP = {'sigma+': 0} auto-07p-0.9.1+dfsg/07p/demos/pcl/c.pcl.6000066400000000000000000000012021206161447600173770ustar00rootroot00000000000000unames={1: 'xgamma', 2: 'ygamma', 3: 'zgamma', 4: 'x', 5: 'y', 6: 'z', 7: 'x+', 8: 'y+', 9: 'z+', 10: 'x-', 11: 'y-', 12: 'z-'} parnames={1: 'rho', 2: 'beta', 3: 'sigma', 11: 'T', 12: 'mu', 13: 'h', 14: 'T+', 16: 'T-', 21: 'sigma+', 22: 'sigma-'} NDIM= 12, IPS = 4, IRS = UZ1, ILP = 0 ICP = ['T-', 'sigma-', 'T+', 'mu', 'T'] NTST= 50, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC=15, NINT= 1 NMX=99999, NPR=99999, MXBF= 10, IID = 2, ITMX= 9, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 1.0, DSMIN= 1e-05, DSMAX= 100, IADS= 1 NPAR= 26, THL = {11: 0.0}, THU = {} UZSTOP = {'sigma-': 0} auto-07p-0.9.1+dfsg/07p/demos/pcl/c.pcl.7000066400000000000000000000013351206161447600174070ustar00rootroot00000000000000unames={1: 'xgamma', 2: 'ygamma', 3: 'zgamma', 4: 'x', 5: 'y', 6: 'z', 7: 'x+', 8: 'y+', 9: 'z+', 10: 'x-', 11: 'y-', 12: 'z-'}, parnames={1: 'rho', 2: 'beta', 3: 'sigma', 11: 'T', 12: 'mu', 13: 'h', 14: 'T+', 15: 'delta', 16: 'T-', 17: 'eps', 21: 'sigma+', 22: 'sigma-', 23: 'eta', 25: 'Zx', 26: 'Zy'} NDIM= 12, IPS = 4, IRS = UZ2, ILP = 0 ICP = ['eta', 'rho', 'delta', 'eps', 'T-', 'T+', 'mu', 'T'] NTST= 50, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC=17, NINT= 2 NMX=99999, NPR= 10, MXBF= 10, IID = 2, ITMX= 9, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -0.01, DSMIN= 1e-07, DSMAX= 0.1, IADS= 1 NPAR= 26, THL = {'T-': 0, 'T': 0, 'T+': 0}, THU = {} UZSTOP = {'eta': 0} auto-07p-0.9.1+dfsg/07p/demos/pcl/c.pcl.8000066400000000000000000000014071206161447600174100ustar00rootroot00000000000000unames={1: 'xgamma', 2: 'ygamma', 3: 'zgamma', 4: 'x', 5: 'y', 6: 'z', 7: 'x+', 8: 'y+', 9: 'z+', 10: 'x-', 11: 'y-', 12: 'z-'}, parnames={1: 'rho', 2: 'beta', 3: 'sigma', 11: 'T', 12: 'mu', 13: 'h', 14: 'T+', 15: 'delta', 16: 'T-', 17: 'eps', 21: 'sigma+', 22: 'sigma-', 23: 'eta', 25: 'Zx', 26: 'Zy'} NDIM= 12, IPS = 4, IRS = UZ1, ILP = 1 ICP = ['rho', 'beta', 'delta', 'eps', 'T-', 'T+', 'mu', 'T'] NTST= 50, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC=17, NINT= 2 NMX=99999, NPR= 200, MXBF= 10, IID = 2, ITMX= 9, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.1, DSMIN= 1e-07, DSMAX= 1, IADS= 1 NPAR= 26, THL = {'T-': 0, 'T': 0, 'T+': 0}, THU = {} UZR = {'rho': [25, 80]} STOP= ['UZ2', 'LP1'] auto-07p-0.9.1+dfsg/07p/demos/pcl/clean.auto000066400000000000000000000001271206161447600202720ustar00rootroot00000000000000for suffix in ['closegap','cont','1','2','3','4','5','6','7','8']: dl(suffix) cl() auto-07p-0.9.1+dfsg/07p/demos/pcl/pcl.auto000066400000000000000000000045171206161447600177750ustar00rootroot00000000000000# AUTO demo pcl # # Lorenz system # compute the EtoP connection via Lin's method print "\n1st run - continue equilibrium 0 and branches of secondary equilibria" r1 = run(e='pcl',ICP=['rho'],NDIM=3,ILP=0,ITNW=7, STOP=['HB1'],UZSTOP={1:31.6},DS=0.1,DSMAX=2.0, unames={1:'xgamma',2:'ygamma',3:'zgamma',4:'x',5:'y',6:'z', 7:'x+',8:'y+',9:'z+',10:'x-',11:'y-',12:'z-'}, parnames={1:'rho',2:'beta',3:'sigma', 11:'T',12:'mu',13:'h',14:'T+',15:'delta',16:'T-',17:'eps', 21:'sigma+',22:'sigma-',23:'eta',25:'Zx',26:'Zy'}) print "\n2nd run - switch to the periodic orbit and continue in rho up to 24.0579" r2 = run(r1('HB2'),ICP=['rho','T'],IPS=2,NTST=50, STOP=[],UZSTOP={'rho':24.0579}) print "\n3rd run - extend the system" r3 = run(r2('UZ1'),ICP=['mu','h','T'],IPS=4,NDIM=6,NBC=7,NINT=1, STOP=['BP1'],UZSTOP={},DS=-0.1,DSMIN=1e-7,DSMAX=1.0) print "\n4th run - normalize the Floquet bundle" r4 = run(r3('BP1'),ISW=-1, STOP=[],UZSTOP={'h':1.0},DS=1,DSMIN=1e-5,DSMAX=100) print "\n5th run - integrate backwards from the periodic orbit" print "measures the distance to Sigma = { x=10 } in sigma+" print "UZ point corresponds to an intersection with Sigma" r5 = run(r4('UZ1'),ICP=['T+','mu','T','sigma+'],ISW=1,NDIM=9,NBC=11, STOP=['UZ1'],UZR={'sigma+':0},UZSTOP={},DS=1.0) print "\n6th run - integrate away from the equilibrium up to Sigma" print "(second UZ is the one we want)" r6 = run(r5('UZ1'),ICP=['T-','sigma-','T+','mu','T'],NDIM=12,NBC=15, STOP=['UZ2'],UZR={'sigma-':0}) print "\n7th run - put starting data for Lin vector and Lin gap in" print "Zx, Zy, Zz and eta" print "close the gap (with some intermediate solutions)" r7 = run(r6('UZ2'),ICP=['eta','rho','delta','eps','T-','T+','mu','T'], NBC=17,NINT=2,NPR=10,THL={'T':0,'T+':0,'T-':0}, STOP=['UZ1'],UZR={'eta':0},DS=-0.01,DSMIN=1e-7,DSMAX=0.1) save(r7,'closegap') # plot this, have a look at the solution coordinates 'x-'-vs-'z-' and 'x+'-vs-'z+' #plot(r7) #wait() print "\n8th run - keep the gap closed and continue in rho,beta" start8 = load(r7('UZ1'),ICP=['rho','beta','delta','eps','T-','T+','mu','T'], STOP=['LP1'],UZR={'rho':25},UZSTOP={'rho':80},ILP=1,NPR=200,DS=0.1,DSMAX=1) r8 = merge(run(start8) + run(start8,DS='-')) save(r8,'cont') clean() print "\nDone." auto-07p-0.9.1+dfsg/07p/demos/pcl/pcl.f90000066400000000000000000000150341206161447600174170ustar00rootroot00000000000000!--------------------------------------------------------------------- !--------------------------------------------------------------------- ! pcl: Finding a point-to-cycle heteroclinic connection in the ! Lorenz equations ! ! Parameters: ! PAR(1) : rho ! PAR(2) : beta ! PAR(3) : sigma ! ! PAR(11) : T: period of the cycle ! PAR(12) : mu: log of the Floquet multiplier ! PAR(13) : h: norm of eigenfunction for cycle at 0 ! PAR(14) : T^+: time for connection from section to cycle (U(7:9)) ! PAR(15) : delta: distance from end connection to cycle ! PAR(16) : T^-: time for connection from point to section (U(10:12)) ! PAR(17) : eps: distance from point to start connection ! PAR(21) : sigma+: U0(7)-10 (x-distance W^s(P) from section x=10) ! PAR(22) : sigma-: U1(10)-10 (x-distance W^u(E) from section x=10) ! PAR(23) : eta: gap size for Lin vector ! PAR(24) : Z_x: Lin vector (x-coordinate) ! PAR(25) : Z_y: Lin vector (y-coordinate) ! PAR(26) : Z_z: Lin vector (z-coordinate) !--------------------------------------------------------------------- !--------------------------------------------------------------------- SUBROUTINE RHS(U,PAR,F,JAC,A) IMPLICIT NONE DOUBLE PRECISION, INTENT(IN) :: U(3), PAR(*) LOGICAL, INTENT(IN) :: JAC DOUBLE PRECISION, INTENT(OUT) :: F(3), A(3,3) DOUBLE PRECISION rho, beta, sigma DOUBLE PRECISION x, y, z rho = PAR(1) beta = PAR(2) sigma = PAR(3) x = U(1) y = U(2) z = U(3) F(1) = sigma * (y - x) F(2) = rho * x - y - x * z F(3) = x * y - beta * z IF(JAC)THEN A(1,1) = -sigma A(1,2) = sigma A(1,3) = 0 A(2,1) = rho - z A(2,2) = -1 A(2,3) = -x A(3,1) = y A(3,2) = x A(3,3) = -beta ENDIF END SUBROUTINE RHS SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- --- 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,*) DOUBLE PRECISION T,mu DOUBLE PRECISION A(3,3) CALL RHS(U,PAR,F,NDIM>3,A) IF(NDIM==3)RETURN F(4:6) = MATMUL(A,U(4:6)) T = PAR(11) F(1:6) = F(1:6) * T ! log of Floquet multiplier in PAR(12) mu = PAR(12) F(4:6) = F(4:6) - mu*U(4:6) IF (NDIM==6) RETURN CALL RHS(U(7:9),PAR,F(7:9),.FALSE.,A) T = PAR(14) F(7:9) = F(7:9) * T IF (NDIM==9) RETURN CALL RHS(U(10:12),PAR,F(10:12),.FALSE.,A) T = PAR(16) F(10:12) = F(10:12) * T END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) !--------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T DOUBLE PRECISION, PARAMETER :: delta = 1d-7, eps = 1d-7 DOUBLE PRECISION rho, beta, sigma, ev(3), nev DOUBLE PRECISION, SAVE :: s(6) IF(NDIM==9)THEN IF(T==0)THEN s(1:6) = U(1:6) ENDIF U(7:9) = s(1:3) + delta*s(4:6) RETURN ELSEIF(NDIM==12)THEN rho = PAR(1) beta = PAR(2) sigma = PAR(3) ! unstable eigenvector at the 0 equilibrium ev(1) = rho/(-0.5+0.5*sigma+0.5*sqrt(1-2*sigma+sigma*sigma+4*rho*sigma)) ev(2) = 1 ev(3) = 0 nev = sqrt(DOT_PRODUCT(ev,ev)) ev(1:3) = ev(1:3) / nev U(10:12) = eps*ev(1:3) RETURN ENDIF rho = 0 beta = 8d0/3d0 sigma = 10d0 PAR(1:3) = (/rho,beta,sigma/) PAR(15) = delta PAR(17) = eps PAR(21:22) = 0 U(1:3) = 0 END SUBROUTINE STPNT SUBROUTINE PVLS(NDIM,U,PAR) !--------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(IN) :: U(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: PAR(*) DOUBLE PRECISION, EXTERNAL :: GETP DOUBLE PRECISION d(3),normlv INTEGER i, NBC LOGICAL, SAVE :: FIRST = .TRUE. IF (FIRST) THEN ! initialization for BCND FIRST = .FALSE. IF (NDIM==9) THEN PAR(21) = GETP("BV0",7,U) - 10 ELSEIF (NDIM == 12) THEN NBC = AINT(GETP("NBC",0,U)) IF (NBC == 15) THEN PAR(22) = GETP("BV1",10,U) - 10 ELSE ! check if Lin vector initialized: IF (DOT_PRODUCT(PAR(24:26),PAR(24:26)) > 0) RETURN DO i=1,3 d(i) = GETP("BV0",6+i,U) - GETP("BV1",9+i,U) ENDDO normlv = sqrt(DOT_PRODUCT(d,d)) ! gap size in PAR(23) PAR(23) = normlv ! Lin vector in PAR(24)-PAR(26) PAR(24:26) = d(1:3)/normlv ENDIF ENDIF RETURN ENDIF END SUBROUTINE PVLS SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) !--------- ---- 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,*) DOUBLE PRECISION rho, beta, sigma, delta, eps, ev(3), nev, eta ! Periodicity boundary conditions on state variables FB(1:3) = U0(1:3) - U1(1:3) ! Floquet boundary condition FB(4:6) = U1(4:6) - U0(4:6) ! normalization FB(7) = PAR(13) - DOT_PRODUCT(U0(4:6),U0(4:6)) IF (NBC==7) RETURN delta = PAR(15) FB(8:10) = U1(7:9) - (U0(1:3) + delta*U0(4:6)) FB(11) = U0(7) - 10 - PAR(21) IF (NBC==11) RETURN rho = PAR(1) beta = PAR(2) sigma = PAR(3) eps = PAR(17) ! unstable eigenvector at the 0 equilibrium ev(1) = rho/(-0.5+0.5*sigma+0.5*sqrt(1-2*sigma+sigma*sigma+4*rho*sigma)) ev(2) = 1 ev(3) = 0 nev = sqrt(DOT_PRODUCT(ev,ev)) ev(1:3) = ev(1:3) / nev FB(12:14) = U0(10:12) - eps*ev(1:3) IF (NBC==15) THEN FB(15) = U1(10) - 10 - PAR(22) RETURN ENDIF eta = PAR(23) FB(15:17) = U0(7:9) - U1(10:12) - eta*PAR(24:26) END SUBROUTINE BCND SUBROUTINE ICND(NDIM,PAR,ICP,NINT,U,UOLD,UDOT,UPOLD,FI,IJAC,DINT) !--------- ---- 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,*) ! Integral phase condition FI(1) = DOT_PRODUCT(U(1:3),UPOLD(1:3)) IF (NINT==1) RETURN FI(2) = DOT_PRODUCT(UPOLD(10:12),U(10:12)-UOLD(10:12)) END SUBROUTINE ICND SUBROUTINE FOPT(NDIM,U,ICP,PAR,IJAC,FS,DFDU,DFDP) END SUBROUTINE FOPT auto-07p-0.9.1+dfsg/07p/demos/pcl/pclc.auto000066400000000000000000000024121206161447600201300ustar00rootroot00000000000000# AUTO demo pcl using constants files # # Lorenz system # compute the EtoP connection via Lin's method print "\n1st run - continue equilibrium 0 and branches of secondary equilibria" run(e='pcl',c='pcl.1',sv='1') print "\n2nd run - switch to the periodic orbit and continue in rho up to 24.0579" run(c='pcl.2',s='1',sv='2') print "\n3rd run - extend the system" run(c='pcl.3',s='2',sv='3') print "\n4th run - normalize the Floquet bundle" run(c='pcl.4',s='3',sv='4') print "\n5th run - integrate backwards from the periodic orbit" print "measures the distance to Sigma = { x=10 } in sigma+" print "UZ point corresponds to an intersection with Sigma" run(c='pcl.5',s='4',sv='5') print "\n6th run - integrate away from the equilibrium up to Sigma" print "(second UZ is the one we want)" run(c='pcl.6',s='5',sv='6') print "\n7th run - put starting data for Lin vector and Lin gap in" print "Zx, Zy, Zz and eta" print "close the gap (with some intermediate solutions)" run(c='pcl.7',s='6',sv='7') cp('7','closegap') # plot this, have a look at the solution coordinates 'x-'-vs-'z-' and 'x+'-vs-'z+' #plot(r7) #wait() print "\n8th run - keep the gap closed and continue in rho,beta" load(c='pcl.8',s='7',sv='8') run(sv='8') run(DS='-',ap='8') merge('8','cont') clean() print "\nDone." auto-07p-0.9.1+dfsg/07p/demos/pcl/plaut04.rc000066400000000000000000000070371206161447600201440ustar00rootroot00000000000000#version 0.0 # Line colors are represented by RGB values from 0 to 1.0. # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and highlighting the solutions # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Initialize the default options: Highlight Orbit = No Orbit Animation = No Normalize Data = Yes Draw Background = No Draw Labels = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahead Coordinate Type = 3 # Draw Scale: Draw Scale = Yes # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 0 # Initialize the default graph style # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 1 #Set the window width and height: Window Width = 1000 Window Height = 600 # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 1,7,10 Y Axis Solution = 2,8,11 Z Axis Solution = 3,9,12 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 1 Z Axis Bifurcation = 2 #Labeled solutions: #-3 = Show all labeled solutions #-2 = Show HALF labeled solutions #-1 = Show SPEC labeled solutions #0 = Show NONE of the solutions #Otherwise, show the specified solution(s) Labels = -3 #Set coloring method: # -6 --- STABILITY # -5 --- POINT # -4 --- BRANCH # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. Coloring Method = -5 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 1.0 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Background color: Background Color = 0., 0., 0. # Background transparency: Background Transparency = 0.9 # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # UnStable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 # Color of the animation object: Object Color = 1.0, 1.0, 1.0 # Set the radius of the animation object: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Object Radius = 1.0 # Set the maximum and minimum animation speed: Object Max Animation Speed = 100 Object Min Animation Speed = 0 # Set the maximum and minimum highlighting animation speed: Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 # Set the active AUTO parameter indices: parameter ID = 10 # Choose 3D or 2D graph: 3DBif = No 3DSol = Yes # Set the number of periods animated. # The value should be the power of 2. Number of Period Animated = 1 auto-07p-0.9.1+dfsg/07p/demos/pd1/000077500000000000000000000000001206161447600162245ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/pd1/c.pd1000066400000000000000000000005421206161447600170550ustar00rootroot00000000000000NDIM= 1, IPS = 16, IRS = 0, ILP = 0 ICP = [14] NTST= 10, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 500, NPR= 50, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS = 0.001 DS = 0.01, DSMIN= 0.001, DSMAX= 0.05, IADS= 1 NPAR = 15, THL = {}, THU = {} UZSTOP = {14: 10.0} auto-07p-0.9.1+dfsg/07p/demos/pd1/c.pd1.1000066400000000000000000000005421206161447600172140ustar00rootroot00000000000000NDIM= 1, IPS = 16, IRS = 0, ILP = 0 ICP = [14] NTST= 10, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 500, NPR= 50, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS = 0.001 DS = 0.01, DSMIN= 0.001, DSMAX= 0.05, IADS= 1 NPAR = 15, THL = {}, THU = {} UZSTOP = {14: 10.0} auto-07p-0.9.1+dfsg/07p/demos/pd1/c.pd1.2000066400000000000000000000005271206161447600172200ustar00rootroot00000000000000NDIM= 1, IPS = 17, IRS = 6, ILP = 0 ICP = [1] NTST= 20, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 25, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS = 0.001 DS = 0.1, DSMIN= 0.001, DSMAX= 0.5, IADS= 1 NPAR = 15, THL = {}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/pd1/clean.auto000066400000000000000000000001531206161447600201770ustar00rootroot00000000000000 #============== # AUTO Demo pd1 #============== print "\n***Clean the directory***" dl('1') dl('2') cl() auto-07p-0.9.1+dfsg/07p/demos/pd1/pd1.auto000066400000000000000000000006201206161447600176000ustar00rootroot00000000000000 #============== # AUTO Demo pd1 #============== pgm = "pd1" print "\nDemo %s is started"%pgm print "\n%s : first run : time integration towards stationary state"%pgm r1 = run(e=pgm,c=pgm) save(r1,'1') print "\n%s : second run : continuation of stationary state"%pgm r2 = run(r1,IPS=17,ICP=[1],NTST=20,NMX=100,RL1=50,NPR=25,DS=0.1,DSMAX=0.5) save(r2,'2') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/pd1/pd1.f90000066400000000000000000000040641206161447600172340ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! pd1 : Time integration of a scalar nonlinear parabolic PDE !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) ! ! *Set the nonlinear term F(1)= PAR(1) * U(1) * ( 1. - U(1) ) END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,X) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: X DOUBLE PRECISION pi pi=4*ATAN(1.d0) ! *Set the (constant) parameter PAR(1) = 1. ! *Set the actual width of the space interval [0,PAR(11)] PAR(11) = 10. ! *Set the initial data in the (scaled) interval [0,1] U(1) = SIN(pi*X) ! *Also set the space-derivative of the initial data ! *Note the scaling by 1/PAR(11) ! U(2) = pi * COS(pi*X)/PAR(11) ! *Set the diffusion constant PAR(15) = 0.1 END SUBROUTINE STPNT SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) ! ---------- ---- 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,*) ! *Define the boundary conditions (Dirichlet, in this demo). FB(1)=U0(1) FB(2)=U1(1) END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/pd2/000077500000000000000000000000001206161447600162255ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/pd2/c.pd2000066400000000000000000000005301206161447600170540ustar00rootroot00000000000000NDIM= 2, IPS = 16, IRS = 0, ILP = 0 ICP = [14] NTST= 10, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 3, NBC= 0, NINT= 0 NMX= 35, NPR= 10, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.1, DSMIN= 0.001, DSMAX= 5.0, IADS= 1 NPAR = 16, THL = {}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/pd2/c.pd2.1000066400000000000000000000005301206161447600172130ustar00rootroot00000000000000NDIM= 2, IPS = 16, IRS = 0, ILP = 0 ICP = [14] NTST= 10, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 3, NBC= 0, NINT= 0 NMX= 35, NPR= 10, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.1, DSMIN= 0.001, DSMAX= 5.0, IADS= 1 NPAR = 16, THL = {}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/pd2/c.pd2.2000066400000000000000000000005371206161447600172230ustar00rootroot00000000000000NDIM= 2, IPS = 17, IRS = 5, ILP = 0 ICP = [1] NTST= 10, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 3, NBC= 0, NINT= 0 NMX= 15, NPR= 50, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = -0.1, DSMIN= 0.001, DSMAX= 1.0, IADS= 1 NPAR = 16, THL = {}, THU = {} UZSTOP = {1: 0.0} auto-07p-0.9.1+dfsg/07p/demos/pd2/clean.auto000066400000000000000000000001531206161447600202000ustar00rootroot00000000000000 #============== # AUTO Demo pd2 #============== print "\n***Clean the directory***" dl('1') dl('2') cl() auto-07p-0.9.1+dfsg/07p/demos/pd2/pd2.auto000066400000000000000000000006261206161447600176100ustar00rootroot00000000000000 #============== # AUTO Demo pd2 #============== pgm = "pd2" print "\nDemo %s is started"%pgm print "\n%s : first run : time integration towards stationary state"%pgm r1 = run(e=pgm,c=pgm) save(r1,'1') print "\n%s : second run : continuation of stationary state"%pgm r2 = run(r1,IPS=17,ICP=[1],ISP=2,NMX=15,NPR=50,DS=-0.1,DSMAX=1.0,UZSTOP={1:0.0}) save(r2,'2') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/pd2/pd2.f90000066400000000000000000000042611206161447600172350ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! pd1 : Time integration of a scalar nonlinear parabolic PDE !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) ! ! *Set the nonlinear term F(1)= PAR(1)*U(1)*( 1. - U(1) ) - U(1)*U(2) F(2)= -U(2) + U(1)*U(2) END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,X) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: X DOUBLE PRECISION pi pi=4*ATAN(1.d0) ! *Set the (constant) parameter PAR(1) = 12. ! *Set the actual width of the space interval [0,PAR(11)] PAR(11) = 1. ! *Set the initial data in the (scaled) interval [0,1] U(1) = SIN(pi*X) U(2) = 1. ! *Also set the space-derivative of the initial data ! *Note the scaling by 1/PAR(11) ! U(3) = pi * COS(pi*X) /PAR(11) U(4) = 0. / PAR(11) ! *Set the diffusion constants PAR(15) = 1. PAR(16) = 1. END SUBROUTINE STPNT SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) ! ---------- ---- 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,*) ! *Define the boundary conditions. FB(1)=U0(1) FB(2)=U0(2)-1. FB(3)=U1(1) FB(4)=U1(2)-1. END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/pen/000077500000000000000000000000001206161447600163225ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/pen/c.pen000066400000000000000000000005701206161447600172520ustar00rootroot00000000000000dat = 'pen' NDIM= 4, IPS = 2, IRS = 0, ILP = 0 ICP = [3, 11] NTST= 15, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = -0.1, DSMIN= 0.01, DSMAX= 0.1, IADS= 1 NPAR = 11, THL = {11: 0.0}, THU = {} UZSTOP = {11: 30.0} auto-07p-0.9.1+dfsg/07p/demos/pen/c.pen.1000066400000000000000000000005701206161447600174110ustar00rootroot00000000000000dat = 'pen' NDIM= 4, IPS = 2, IRS = 0, ILP = 0 ICP = [3, 11] NTST= 15, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = -0.1, DSMIN= 0.01, DSMAX= 0.1, IADS= 1 NPAR = 11, THL = {11: 0.0}, THU = {} UZSTOP = {11: 30.0} auto-07p-0.9.1+dfsg/07p/demos/pen/c.pen.2000066400000000000000000000005541206161447600174140ustar00rootroot00000000000000NDIM= 4, IPS = 2, IRS = 2, ILP = 0 ICP = [3, 11] NTST= 30, NCOL= 4, IAD = 3, ISP = 2, ISW =-1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = -0.1, DSMIN= 0.01, DSMAX= 0.5, IADS= 1 NPAR = 11, THL = {11: 0.0}, THU = {} UZSTOP = {11: 30.0} auto-07p-0.9.1+dfsg/07p/demos/pen/c.pen.3000066400000000000000000000005541206161447600174150ustar00rootroot00000000000000NDIM= 4, IPS = 2, IRS = 4, ILP = 0 ICP = [3, 11] NTST= 30, NCOL= 4, IAD = 3, ISP = 1, ISW =-1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = -0.1, DSMIN= 0.01, DSMAX= 0.5, IADS= 1 NPAR = 11, THL = {11: 0.0}, THU = {} UZSTOP = {11: 30.0} auto-07p-0.9.1+dfsg/07p/demos/pen/c.pen.4000066400000000000000000000005541206161447600174160ustar00rootroot00000000000000NDIM= 4, IPS = 2, IRS = 5, ILP = 0 ICP = [3, 11] NTST= 30, NCOL= 4, IAD = 3, ISP = 1, ISW =-1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = -0.1, DSMIN= 0.01, DSMAX= 0.5, IADS= 1 NPAR = 11, THL = {11: 0.0}, THU = {} UZSTOP = {11: 30.0} auto-07p-0.9.1+dfsg/07p/demos/pen/c.pen.5000066400000000000000000000005571206161447600174220ustar00rootroot00000000000000NDIM= 4, IPS = 2, IRS = 2, ILP = 0 ICP = [2, 3, 11] NTST= 15, NCOL= 4, IAD = 3, ISP = 1, ISW = 2, IPLT= 0, NBC= 0, NINT= 0 NMX= 50, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.1, DSMIN= 0.01, DSMAX= 0.5, IADS= 1 NPAR = 11, THL = {11: 0.0}, THU = {} UZSTOP = {11: 30.0} auto-07p-0.9.1+dfsg/07p/demos/pen/c.pen.6000066400000000000000000000005571206161447600174230ustar00rootroot00000000000000NDIM= 4, IPS = 2, IRS = 9, ILP = 0 ICP = [2, 3, 11] NTST= 15, NCOL= 4, IAD = 3, ISP = 1, ISW = 2, IPLT= 0, NBC= 0, NINT= 0 NMX= 50, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.1, DSMIN= 0.01, DSMAX= 0.5, IADS= 1 NPAR = 11, THL = {11: 0.0}, THU = {} UZSTOP = {11: 30.0} auto-07p-0.9.1+dfsg/07p/demos/pen/clean.auto000066400000000000000000000001561206161447600203000ustar00rootroot00000000000000#============== # AUTO Demo pen #============== print "\n***Clean the directory***" dl("pen") dl("pd") cl() auto-07p-0.9.1+dfsg/07p/demos/pen/pen.auto000066400000000000000000000013461206161447600200020ustar00rootroot00000000000000#========= # Demo pen #========= pgm = 'pen' print pgm, ": first run : locate a period doubling bifurcation" pen=run(pgm,c='pen.1') print pgm, ": second run : a bifurcating branch of out-of-phase rotations" pen=pen+run(pen('PD1'),c='pen.2') print pgm, ": third run : a secondary bifurcating branch (without bifurcation detection)" pen=pen+run(pen('BP1'),c='pen.3') print pgm, ": fourth run : another secondary bifurcating branch (without bifurcation detection)" pen=pen+run(pen('BP2'),c='pen.4') save(pen,'pen') print pgm, ": fifth run : generate starting data for period doubling continuation" t=run(pen('PD1'),c='pen.5') print pgm, ": sixth run : compute a locus of period doubling bifurcations; restart from t" pd=run(t,sv='pd') auto-07p-0.9.1+dfsg/07p/demos/pen/pen.dat000066400000000000000000000170171206161447600176040ustar00rootroot00000000000000 0.0000000000E+00 1.2403680193E+00 1.2403680193E+00 4.0783200778E+00 4.0783200778E+00 1.2412355801E-02 1.3198568477E+00 1.3198568477E+00 4.0594741698E+00 4.0594741698E+00 2.4824711603E-02 1.3989739194E+00 1.3989739194E+00 4.0402808315E+00 4.0402808315E+00 3.7237067404E-02 1.4777136344E+00 1.4777136344E+00 4.0208615884E+00 4.0208615884E+00 4.9649423206E-02 1.5560727639E+00 1.5560727639E+00 4.0013376727E+00 4.0013376727E+00 6.1782092165E-02 1.6322975681E+00 1.6322975681E+00 3.9822678366E+00 3.9822678366E+00 7.3914761124E-02 1.7081592516E+00 1.7081592516E+00 3.9633234056E+00 3.9633234056E+00 8.6047430084E-02 1.7836612451E+00 1.7836612451E+00 3.9446126088E+00 3.9446126088E+00 9.8180099043E-02 1.8588090185E+00 1.8588090185E+00 3.9262408124E+00 3.9262408124E+00 1.1069257885E-01 1.9359461575E+00 1.9359461575E+00 3.9077569252E+00 3.9077569252E+00 1.2320505866E-01 2.0127247996E+00 2.0127247996E+00 3.8898496855E+00 3.8898496855E+00 1.3571753847E-01 2.0891573171E+00 2.0891573171E+00 3.8726218201E+00 3.8726218201E+00 1.4823001828E-01 2.1652580537E+00 2.1652580537E+00 3.8561707779E+00 3.8561707779E+00 1.6159008277E-01 2.2461658726E+00 2.2461658726E+00 3.8395664333E+00 3.8395664333E+00 1.7495014727E-01 2.3267358870E+00 2.3267358870E+00 3.8240565489E+00 3.8240565489E+00 1.8831021177E-01 2.4069921286E+00 2.4069921286E+00 3.8097371716E+00 3.8097371716E+00 2.0167027626E-01 2.4869605594E+00 2.4869605594E+00 3.7966958685E+00 3.7966958685E+00 2.1655359577E-01 2.5757416715E+00 2.5757416715E+00 3.7837686750E+00 3.7837686750E+00 2.3143691527E-01 2.6642406519E+00 2.6642406519E+00 3.7726211247E+00 3.7726211247E+00 2.4632023478E-01 2.7525001618E+00 2.7525001618E+00 3.7633350127E+00 3.7633350127E+00 2.6120355428E-01 2.8405646111E+00 2.8405646111E+00 3.7559778329E+00 3.7559778329E+00 2.7728936315E-01 2.9355778046E+00 2.9355778046E+00 3.7502561518E+00 3.7502561518E+00 2.9337517202E-01 3.0304759890E+00 3.0304759890E+00 3.7468972374E+00 3.7468972374E+00 3.0946098089E-01 3.1253193594E+00 3.1253193594E+00 3.7459289259E+00 3.7459289259E+00 3.2554678976E-01 3.2201685618E+00 3.2201685618E+00 3.7473590169E+00 3.7473590169E+00 3.3956988778E-01 3.3029072109E+00 3.3029072109E+00 3.7505534652E+00 3.7505534652E+00 3.5359298579E-01 3.3857362098E+00 3.3857362098E+00 3.7555411405E+00 3.7555411405E+00 3.6761608380E-01 3.4686947949E+00 3.4686947949E+00 3.7622900225E+00 3.7622900225E+00 3.8163918182E-01 3.5518213697E+00 3.5518213697E+00 3.7707566435E+00 3.7707566435E+00 3.9464445690E-01 3.6290971875E+00 3.6290971875E+00 3.7800963502E+00 3.7800963502E+00 4.0764973199E-01 3.7065783826E+00 3.7065783826E+00 3.7908140649E+00 3.7908140649E+00 4.2065500707E-01 3.7842925492E+00 3.7842925492E+00 3.8028492150E+00 3.8028492150E+00 4.3366028216E-01 3.8622659588E+00 3.8622659588E+00 3.8161331609E+00 3.8161331609E+00 4.4603656863E-01 3.9367316670E+00 3.9367316670E+00 3.8298644516E+00 3.8298644516E+00 4.5841285510E-01 4.0114746053E+00 4.0114746053E+00 3.8445849551E+00 3.8445849551E+00 4.7078914156E-01 4.0865132828E+00 4.0865132828E+00 3.8602161365E+00 3.8602161365E+00 4.8316542803E-01 4.1618646217E+00 4.1618646217E+00 3.8766735838E+00 3.8766735838E+00 4.9533534475E-01 4.2362791680E+00 4.2362791680E+00 3.8935750414E+00 3.8935750414E+00 5.0750526146E-01 4.3110235462E+00 4.3110235462E+00 3.9110977992E+00 3.9110977992E+00 5.1967517818E-01 4.3861087490E+00 4.3861087490E+00 3.9291466803E+00 3.9291466803E+00 5.3184509490E-01 4.4615439057E+00 4.4615439057E+00 3.9476222807E+00 3.9476222807E+00 5.4464972206E-01 4.5412989906E+00 4.5412989906E+00 3.9674087134E+00 3.9674087134E+00 5.5745434923E-01 4.6214554009E+00 4.6214554009E+00 3.9874290208E+00 3.9874290208E+00 5.7025897639E-01 4.7020165672E+00 4.7020165672E+00 4.0075556709E+00 4.0075556709E+00 5.8306360356E-01 4.7829833236E+00 4.7829833236E+00 4.0276584980E+00 4.0276584980E+00 5.9484036020E-01 4.8578071601E+00 4.8578071601E+00 4.0460131440E+00 4.0460131440E+00 6.0661711684E-01 4.9329691829E+00 4.9329691829E+00 4.0641325041E+00 4.0641325041E+00 6.1839387347E-01 5.0084640716E+00 5.0084640716E+00 4.0819131180E+00 4.0819131180E+00 6.3017063011E-01 5.0842845937E+00 5.0842845937E+00 4.0992521194E+00 4.0992521194E+00 6.4120831128E-01 5.1556343689E+00 5.1556343689E+00 4.1150116901E+00 4.1150116901E+00 6.5224599245E-01 5.2272531767E+00 5.2272531767E+00 4.1302118991E+00 4.1302118991E+00 6.6328367362E-01 5.2991306022E+00 5.2991306022E+00 4.1447726804E+00 4.1447726804E+00 6.7432135479E-01 5.3712548620E+00 5.3712548620E+00 4.1586165179E+00 4.1586165179E+00 6.8524495454E-01 5.4428638348E+00 5.4428638348E+00 4.1715383134E+00 4.1715383134E+00 6.9616855430E-01 5.5146878035E+00 5.5146878035E+00 4.1836162093E+00 4.1836162093E+00 7.0709215405E-01 5.5867116991E+00 5.5867116991E+00 4.1947854144E+00 4.1947854144E+00 7.1801575380E-01 5.6589193760E+00 5.6589193760E+00 4.2049855187E+00 4.2049855187E+00 7.2950518546E-01 5.7350468113E+00 5.7350468113E+00 4.2146073016E+00 4.2146073016E+00 7.4099461711E-01 5.8113375379E+00 5.8113375379E+00 4.2230370607E+00 4.2230370607E+00 7.5248404877E-01 5.8877695283E+00 5.8877695283E+00 4.2302232829E+00 4.2302232829E+00 7.6397348042E-01 5.9643198900E+00 5.9643198900E+00 4.2361218013E+00 4.2361218013E+00 7.7754651141E-01 6.0548727929E+00 6.0548727929E+00 4.2413815167E+00 4.2413815167E+00 7.9111954239E-01 6.1455178883E+00 6.1455178883E+00 4.2447480313E+00 4.2447480313E+00 8.0469257337E-01 6.2362144029E+00 6.2362144029E+00 4.2461920311E+00 4.2461920311E+00 8.1826560436E-01 6.3269211148E+00 6.3269211148E+00 4.2457008159E+00 4.2457008159E+00 8.2949053835E-01 6.4019140799E+00 6.4019140799E+00 4.2438349549E+00 4.2438349549E+00 8.4071547234E-01 6.4768624820E+00 6.4768624820E+00 4.2406589777E+00 4.2406589777E+00 8.5194040634E-01 6.5517433344E+00 6.5517433344E+00 4.2361915777E+00 4.2361915777E+00 8.6316534033E-01 6.6265340476E+00 6.6265340476E+00 4.2304590316E+00 4.2304590316E+00 8.7405668198E-01 6.6989950137E+00 6.6989950137E+00 4.2237193401E+00 4.2237193401E+00 8.8494802363E-01 6.7713307704E+00 6.7713307704E+00 4.2158573577E+00 4.2158573577E+00 8.9583936528E-01 6.8435224444E+00 6.8435224444E+00 4.2069161734E+00 4.2069161734E+00 9.0673070693E-01 6.9155519495E+00 6.9155519495E+00 4.1969445335E+00 4.1969445335E+00 9.1785196725E-01 6.9889167939E+00 6.9889167939E+00 4.1857552758E+00 4.1857552758E+00 9.2897322757E-01 7.0620773287E+00 7.0620773287E+00 4.1736107947E+00 4.1736107947E+00 9.4009448789E-01 7.1350174224E+00 7.1350174224E+00 4.1605787006E+00 4.1605787006E+00 9.5121574821E-01 7.2077221645E+00 7.2077221645E+00 4.1467309338E+00 4.1467309338E+00 9.6341181116E-01 7.2871666863E+00 7.2871666863E+00 4.1306971601E+00 4.1306971601E+00 9.7560787410E-01 7.3662957279E+00 7.3662957279E+00 4.1138780874E+00 4.1138780874E+00 9.8780393705E-01 7.4450952516E+00 7.4450952516E+00 4.0963819709E+00 4.0963819709E+00 1.0000000000E+00 7.5235533265E+00 7.5235533265E+00 4.0783200778E+00 4.0783200778E+00 auto-07p-0.9.1+dfsg/07p/demos/pen/pen.f90000066400000000000000000000033371206161447600174320ustar00rootroot00000000000000!------------------------------------------------------------------------------ !------------------------------------------------------------------------------ ! pen : Coupled pendula (or rotations in coupled Josephson junctions) !------------------------------------------------------------------------------ !------------------------------------------------------------------------------ SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION GAMMA,EPS,RI,PH1,PH2,PS1,PS2 GAMMA = PAR(1) EPS = PAR(2) RI = PAR(3) PH1=U(1) PH2=U(2) PS1=U(3) PS2=U(4) F(1)= PS1 F(2)= PS2 F(3)= -EPS*PS1 - SIN(PH1) + RI + GAMMA*(PH2-PH1) F(4)= -EPS*PS2 - SIN(PH2) + RI + GAMMA*(PH1-PH2) END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T DOUBLE PRECISION GAMMA,EPS,RI GAMMA=0.175 EPS=0.1 RI=0.4 PAR(1)=GAMMA PAR(2)=EPS PAR(3)=RI ! Set the actual period (since the data in pen.dat have scaled time variable) PAR(11)=1.5738797205 END SUBROUTINE STPNT SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/ph1/000077500000000000000000000000001206161447600162305ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/ph1/c.ph1000066400000000000000000000005431206161447600170660ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 6, ILP = 0 ICP = [11, 9] NTST= 25, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 2, NINT= 0 NMX= 200, NPR= 15, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-08, EPSU = 1e-08, EPSS = 1e-06 DS = 0.1, DSMIN= 1e-06, DSMAX= 3.0, IADS= 1 NPAR = 11, THL = {}, THU = {} UZSTOP = {9: 30.0} auto-07p-0.9.1+dfsg/07p/demos/ph1/c.ph1.ps000066400000000000000000000005521206161447600175070ustar00rootroot00000000000000NDIM= 2, IPS = 2, IRS = 2, ILP = 1 ICP = [4, 11] NTST= 25, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 500, NPR= 500, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-08, EPSU = 1e-08, EPSS = 1e-06 DS = 0.1, DSMIN=0.0001, DSMAX= 3.0, IADS= 1 NPAR = 11, THL = {11: 0.0}, THU = {} UZSTOP = {4: 4.0} auto-07p-0.9.1+dfsg/07p/demos/ph1/c.ph1.ss000066400000000000000000000005371206161447600175150ustar00rootroot00000000000000NDIM= 2, IPS = 1, IRS = 0, ILP = 1 ICP = [4] NTST= 25, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-08, EPSU = 1e-08, EPSS = 1e-06 DS = 0.1, DSMIN= 0.01, DSMAX= 3.0, IADS= 1 NPAR = 11, THL = {}, THU = {} UZSTOP = {4: 6.0} auto-07p-0.9.1+dfsg/07p/demos/ph1/clean.auto000066400000000000000000000001561206161447600202060ustar00rootroot00000000000000#============== # AUTO Demo ph1 #============== print "\n***Clean the directory***" dl("sa") dl("ph1") cl() auto-07p-0.9.1+dfsg/07p/demos/ph1/ph1.auto000066400000000000000000000006671206161447600176230ustar00rootroot00000000000000 #========== # Demo ph1 #========== print "\n***Compute stationary solutions***" sa = run(e='ph1',c='ph1.ss') print "\n***Compute periodic solutions***" for hb in sa('HB'): sa = sa + run(hb,c='ph1.ps') print "\n***Relabel and save the sa output files***" sa = rl(sa) save(sa, 'sa') print "\n***Phase shift of Solution 6 in s.sa***" ph1 = run(sa(6),c='ph1') ph1 = rl(ph1) save(ph1, 'ph1') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/ph1/ph1.f90000066400000000000000000000051401206161447600172400ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! ph1 : A one-cell, two-substrate enzyme model (also plp) !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM,ICP(*),IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,*),DFDP(NDIM,*) DOUBLE PRECISION S,A,S0,A0,Al,RH,RK,T,D,R S=U(1) A=U(2) S0=PAR(1) A0=PAR(2) AL=PAR(3) RH=PAR(4) RK=PAR(5) T =1d0 IF(ICP(1)==11)THEN IF(ICP(2)==9)THEN ! only use when doing the phase shift T =PAR(11) ENDIF ENDIF D=1+S+RK*S**2 R=S*A/D F(1)=T*( (S0-S) - RH*R) F(2)=T*(AL*(A0-A) - RH*R) END SUBROUTINE FUNC !---------------------------------------------------------------------- SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) ! ---------- ---- 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,*) FB(1)=U0(1) - U1(1) FB(2)=U0(2) - U1(2) END SUBROUTINE BCND !---------------------------------------------------------------------- SUBROUTINE PVLS(NDIM,U,PAR) IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(IN) :: U(NDIM,*) DOUBLE PRECISION, INTENT(INOUT) :: PAR(*) DOUBLE PRECISION, EXTERNAL :: GETP PAR(9)=GETP('BV0',1,U) END SUBROUTINE PVLS !---------------------------------------------------------------------- SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T PAR(1)=110. PAR(2)=500. PAR(3)=0.2 PAR(4)=2.021628 PAR(5)=0.1 U(1)=4.555974E+01 U(2)=1.777987E+02 END SUBROUTINE STPNT SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT !---------------------------------------------------------------------- !---------------------------------------------------------------------- auto-07p-0.9.1+dfsg/07p/demos/ph1/plaut04.rc000066400000000000000000000070001206161447600200440ustar00rootroot00000000000000#version 0.0 # Line colors are represented by RGB values from 0 to 1.0. # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and highlighting the solutions # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Initialize the default options: Highlight Orbit = No Orbit Animation = No Normalize Data = Yes Draw Background = No Draw Labels = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahead Coordinate Type = 3 # Draw Scale: Draw Scale = Yes # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 1 # Initialize the default graph style # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 0 #Set the window width and height: Window Width = 1000 Window Height = 600 # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 1 Y Axis Solution = 2 Z Axis Solution = 2 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 2 Z Axis Bifurcation = 3 #Labeled solutions: #-3 = Show all labeled solutions #-2 = Show HALF labeled solutions #-1 = Show SPEC labeled solutions #0 = Show NONE of the solutions #Otherwise, show the specified solution(s) Labels = -3 #Set coloring method: # -6 --- STABILITY # -5 --- POINT # -4 --- BRANCH # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. Coloring Method = -6 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 1.0 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Background color: Background Color = 0., 0., 0. # Background transparency: Background Transparency = 0.9 # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # UnStable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 # Color of the animation object: Object Color = 1.0, 1.0, 1.0 # Set the radius of the animation object: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Object Radius = 1.0 # Set the maximum and minimum animation speed: Object Max Animation Speed = 100 Object Min Animation Speed = 0 # Set the maximum and minimum highlighting animation speed: Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 # Set the active AUTO parameter indices: parameter ID = 10 # Choose 3D or 2D graph: 3D = No # Set the number of periods animated. # The value should be the power of 2. Number of Period Animated = 1 auto-07p-0.9.1+dfsg/07p/demos/phs/000077500000000000000000000000001206161447600163325ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/phs/c.phs.1000066400000000000000000000005551206161447600174340ustar00rootroot00000000000000NDIM= 2, IPS = 1, IRS = 0, ILP = 1 ICP = [1] NTST= 50, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 50, NPR= 50, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.02, DSMIN= 0.01, DSMAX= 0.05, IADS= 1 NPAR = 1, THL = {11: 0.0}, THU = {} UZSTOP = {1: [-1.0, 1.0]} auto-07p-0.9.1+dfsg/07p/demos/phs/c.phs.2000066400000000000000000000005541206161447600174340ustar00rootroot00000000000000NDIM= 2, IPS = 2, IRS = 2, ILP = 0 ICP = [1, 11] NTST= 110, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 1, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.01, DSMIN= 1e-05, DSMAX= 0.5, IADS= 1 NPAR = 1, THL = {11: 0.0}, THU = {} UZSTOP = {11: 1e+08} auto-07p-0.9.1+dfsg/07p/demos/phs/clean.auto000066400000000000000000000001561206161447600203100ustar00rootroot00000000000000 #============== # AUTO Demo pp3 #============== print "\n***Clean the directory***" dl('pp2') dl('ps') cl() auto-07p-0.9.1+dfsg/07p/demos/phs/phs.auto000066400000000000000000000004161206161447600200170ustar00rootroot00000000000000 #============== # AUTO Demo phs #============== print "\n***Compute stationary solution families***" r1=run(e='phs',c='phs.1') print "\n***Compute a periodic solution family***" r2=run(r1('HB1'),c='phs.2') save(r1+r2,'phs') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/phs/phs.f90000066400000000000000000000023601206161447600174450ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! phs : A Hopf bifurcation leading to a homoclinic orbit !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) F(1)=-PAR(1)*U(1) - U(2) F(2)= U(1) * (1 - U(1)) END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T PAR(1)=-1.0 U(1)=0.0 U(2)=0.0 END SUBROUTINE STPNT SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/pla/000077500000000000000000000000001206161447600163145ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/pla/c.pla000066400000000000000000000005521206161447600172360ustar00rootroot00000000000000NDIM= 5, IPS = 1, IRS = 0, ILP = 1 ICP = [1] NTST= 150, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 9000, NPR= 9999, MXBF= 5, IID = 2, ITMX=12, ITNW= 6, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = -0.1, DSMIN=0.0001, DSMAX= 0.5, IADS= 1 NPAR= 3, THL = {11: 0.0}, THU = {} UZSTOP = {1: -120.0} auto-07p-0.9.1+dfsg/07p/demos/pla/c.pla.1000066400000000000000000000005511206161447600173740ustar00rootroot00000000000000NDIM= 5, IPS = 1, IRS = 0, ILP = 1 ICP = [1] NTST= 150, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 9000, NPR= 9999, MXBF= 5, IID = 2, ITMX=12, ITNW= 6, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = -0.1, DSMIN=0.0001, DSMAX= 0.5, IADS= 1 NPAR= 3, THL = {11: 0.0}, THU = {} UZSTOP = {1: -120.0} auto-07p-0.9.1+dfsg/07p/demos/pla/c.pla.2000066400000000000000000000005571206161447600174030ustar00rootroot00000000000000NDIM= 5, IPS = 2, IRS = HB1, ILP = 0 ICP = [1, 11] NTST= 150, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 9000, NPR= 9999, MXBF= 5, IID = 2, ITMX=12, ITNW= 6, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = -0.1, DSMIN=0.0001, DSMAX= 0.5, IADS= 1 NPAR= 3, THL = {11: 0.0}, THU = {} UZSTOP = {11: 10000.0} auto-07p-0.9.1+dfsg/07p/demos/pla/c.pla.3000066400000000000000000000006301206161447600173740ustar00rootroot00000000000000NDIM= 5, IPS = 2, IRS = HB2, ILP = 0 ICP = [1, 11] NTST= 150, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 9000, NPR= 9999, MXBF= 5, IID = 2, ITMX=12, ITNW= 6, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = -0.1, DSMIN=0.0001, DSMAX= 0.5, IADS= 1 NPAR= 3, THL = {11: 0.0}, THU = {} UZR = {1: [1.25, 1.5, 1.75, 2.1, 2.62]} UZSTOP = {11: 50000.0} auto-07p-0.9.1+dfsg/07p/demos/pla/clean.auto000066400000000000000000000001451206161447600202700ustar00rootroot00000000000000 #============== # AUTO Demo pla #============== print "\n***Clean the directory***" dl('pla') cl() auto-07p-0.9.1+dfsg/07p/demos/pla/pla.auto000066400000000000000000000010421206161447600177570ustar00rootroot00000000000000 #============== # AUTO Demo pla #============== pgm = "pla" print "\nDemo %s is started"%pgm print "\n%s : first run : stationary solutions"%pgm r1 = run(e=pgm,c=pgm) print "\n%s : second run : periodic solutions (1st branch)"%pgm r2 = run(r1('HB1'),IPS=2,ICP=[1,11],ILP=0,ISP=1,UZSTOP={11:1e4}) print "\n%s : third run : periodic solutions (2nd branch)"%pgm r3 = run(r1('HB2'),IPS=2,ICP=[1,11],ILP=0,ISP=1, UZR={1:[1.25,1.5,1.75,2.1,2.62]},UZSTOP={11:5e4}) all = r1+r2+r3 save(all, 'pla') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/pla/pla.f90000066400000000000000000000050151206161447600174110ustar00rootroot00000000000000!------------------------------------------------------------ !------------------------------------------------------------ ! pla : Plant's Model of Bursting Nerve Cells !------------------------------------------------------------ !------------------------------------------------------------ SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION VI,VK,VL,VCa,gK,gL,Kp,Kc,rho,txT,zeta,gi,gP,gT DOUBLE PRECISION V,xT,xK,yI,c,a,b,Vs,am,ah,an,bm,bh,bn,si,sK DOUBLE PRECISION txK,tyI,zI,sT VI=30 VK=-75 VL=-40 VCa=140 gK=0.3 gL=0.003 Kp=0.5 Kc=0.0085 rho=0.0003 txT=235 zeta=1 gI=PAR(1) gP=PAR(2) gT=PAR(3) V =U(1) xT=U(2) xK=U(3) yI=U(4) c =U(5) a=127/(VI-VK) b=(115*VK+12*VI)/(VI-VK) Vs=a*V-b am=0.1*(50-Vs)/(DEXP((50-Vs)/10)-1) ah=0.07*DEXP((25-Vs)/20) an=0.01*(55-Vs)/(DEXP((55-Vs)/10)-1) bm=4*DEXP((25-Vs)/18) bh=1./(DEXP((55-Vs)/10)+1) bn=0.125*DEXP((45-Vs)/80) sI=am/(am+bm) sK=an/(an+bn) txK=12.5/(an+bn) tyI=12.5/(ah+bh) zI=ah/(ah+bh) sT=1./(DEXP(0.15*(-50-V))+1) F(1)= (gI*sI**3*yI + gT*xT) * (VI-V) & + (gK*xK**4 + gP*c/(Kp+c)) * (VK-V) & + gL * (VL-V) F(2)= (sT-xT) / (txT*zeta) F(3)= (sK-xK) / (txK*zeta) F(4)= (zI-yI) / (tyI*zeta) F(5)= rho * (Kc*xT*(VCa-V) - c) END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T DOUBLE PRECISION gI,gP,gT gI=50. gP=0.03 gT=0.01 PAR(1)=gI PAR(2)=gP PAR(3)=gT U(1)=-2.329601E+00 U(2)= 9.992162E-01 U(3)= 7.373314E-01 U(4)= 6.135948E-03 U(5)= 1.208853E+00 END SUBROUTINE STPNT SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/plp/000077500000000000000000000000001206161447600163335ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/plp/c.plp.hb000066400000000000000000000005431206161447600176640ustar00rootroot00000000000000NDIM= 2, IPS = 1, IRS = 2, ILP = 1 ICP = [4, 1] NTST= 20, NCOL= 4, IAD = 3, ISP = 1, ISW = 2, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-06 DS = 0.1, DSMIN=0.0001, DSMAX= 3.0, IADS= 1 NPAR = 5, THL = {}, THU = {} UZSTOP = {1: 109.0} auto-07p-0.9.1+dfsg/07p/demos/plp/c.plp.iso000066400000000000000000000005611206161447600200650ustar00rootroot00000000000000NDIM= 2, IPS = 2, IRS = 9, ILP = 1 ICP = [4, 11] NTST= 20, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 200, MXBF= 10, IID = 2, ITMX= 12, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-08, EPSU = 1e-08, EPSS = 1e-06 DS = 0.1, DSMIN= 0.01, DSMAX= 2.0, IADS= 1 NPAR = 5, THL = {}, THU = {} UZR = {4: 4.0}, STOP = ['LP1'] auto-07p-0.9.1+dfsg/07p/demos/plp/c.plp.plp000066400000000000000000000005711206161447600200670ustar00rootroot00000000000000NDIM= 2, IPS = 2, IRS = 5, ILP = 1 ICP = [4, 1, 11] NTST= 20, NCOL= 4, IAD = 3, ISP = 1, ISW = 2, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-06 DS = 0.1, DSMIN=0.0001, DSMAX= 3.0, IADS= 1 NPAR = 5, THL = {}, THU = {} UZR = {1: 111.0} UZSTOP = {1: 109.0} auto-07p-0.9.1+dfsg/07p/demos/plp/c.plp.ps000066400000000000000000000005511206161447600177140ustar00rootroot00000000000000NDIM= 2, IPS = 2, IRS = 2, ILP = 1 ICP = [4, 11] NTST= 20, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 500, NPR= 500, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 1 EPSL= 1e-08, EPSU = 1e-08, EPSS = 1e-06 DS = 0.1, DSMIN=0.0001, DSMAX= 3.0, IADS= 1 NPAR = 5, THL = {11: 0.0}, THU = {} UZSTOP = {4: 4.0} auto-07p-0.9.1+dfsg/07p/demos/plp/c.plp.ss000066400000000000000000000005361206161447600177220ustar00rootroot00000000000000NDIM= 2, IPS = 1, IRS = 0, ILP = 1 ICP = [4] NTST= 20, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 1 EPSL= 1e-09, EPSU = 1e-09, EPSS = 1e-07 DS = 0.1, DSMIN= 0.01, DSMAX= 3.0, IADS= 1 NPAR = 5, THL = {}, THU = {} UZSTOP = {4: 6.0} auto-07p-0.9.1+dfsg/07p/demos/plp/clean.auto000066400000000000000000000001721206161447600203070ustar00rootroot00000000000000#============== # AUTO Demo plp #============== print "\n***Clean the directory***" dl("plp") dl("loci") dl("iso") cl() auto-07p-0.9.1+dfsg/07p/demos/plp/plaut04.rc000066400000000000000000000070001206161447600201470ustar00rootroot00000000000000#version 0.0 # Line colors are represented by RGB values from 0 to 1.0. # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and highlighting the solutions # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Initialize the default options: Highlight Orbit = No Orbit Animation = No Normalize Data = Yes Draw Background = No Draw Labels = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahead Coordinate Type = 3 # Draw Scale: Draw Scale = Yes # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 1 # Initialize the default graph style # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 0 #Set the window width and height: Window Width = 1000 Window Height = 600 # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 1 Y Axis Solution = 2 Z Axis Solution = 2 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 2 Z Axis Bifurcation = 3 #Labeled solutions: #-3 = Show all labeled solutions #-2 = Show HALF labeled solutions #-1 = Show SPEC labeled solutions #0 = Show NONE of the solutions #Otherwise, show the specified solution(s) Labels = -3 #Set coloring method: # -6 --- STABILITY # -5 --- POINT # -4 --- BRANCH # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. Coloring Method = -6 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 1.0 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Background color: Background Color = 0., 0., 0. # Background transparency: Background Transparency = 0.9 # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # UnStable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 # Color of the animation object: Object Color = 1.0, 1.0, 1.0 # Set the radius of the animation object: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Object Radius = 1.0 # Set the maximum and minimum animation speed: Object Max Animation Speed = 100 Object Min Animation Speed = 0 # Set the maximum and minimum highlighting animation speed: Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 # Set the active AUTO parameter indices: parameter ID = 10 # Choose 3D or 2D graph: 3D = No # Set the number of periods animated. # The value should be the power of 2. Number of Period Animated = 1 auto-07p-0.9.1+dfsg/07p/demos/plp/plp.auto000066400000000000000000000017241206161447600200240ustar00rootroot00000000000000 #========= # Demo plp #========= print "\n***Compute stationary solutions***" plp = run(e='plp',c='plp.ss') print "\n***Compute periodic solutions***" for hb in plp('HB'): ps = run(hb,c='plp.ps') plp = plp + ps print "\n***Relabel and save the plp output files***" plp = rl(plp) save(plp, 'plp') print "\n***Follow Hopf bifurcation***" hbstart = load(plp("HB1"), c='plp.hb') loci = run(hbstart) loci = loci + run(hbstart, DS='-') loci = merge(loci) print "\n***Follow periodic orbit folds: Starting data***" lpstart = run(plp('LP1'),c='plp.plp') print "\n***Follow periodic orbit folds***" loci = loci + merge(run(lpstart) + run(lpstart, DS='-')) print "\n***Relabel and save the loci output files***" loci = rl(loci) save(loci, 'loci') print "\n***Compute an isola of periodic solutions***" isostart = load(loci('UZ4'), c='plp.iso') iso = merge(run(isostart) + run(isostart, DS='-')) iso = relabel(iso) save(iso, 'iso') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/plp/plp.f90000066400000000000000000000040031206161447600174430ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! 1cl : A one-cell, two-substrate enzyme model !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION S,A,S0,A0,AL,RH,RK,D,R,DRDS,DRDA,DRDK S=U(1) A=U(2) S0=PAR(1) A0=PAR(2) AL=PAR(3) RH=PAR(4) RK=PAR(5) D=1+S+RK*S**2 R=S*A/D F(1)= (S0-S) - RH*R F(2)=AL*(A0-A) - RH*R IF(IJAC.EQ.0)RETURN DRDS=( A*D - S*A*(1+2*RK*S) ) / D**2 DRDA=S/D DRDK=-S**3*A/D**2 DFDU(1,1)=-1 - RH*DRDS DFDU(1,2)= - RH*DRDA DFDU(2,1)= - RH*DRDS DFDU(2,2)=-AL- RH*DRDA IF(IJAC.EQ.1)RETURN ! *Parameter derivatives DFDP(1,1)=1 DFDP(1,2)=0 DFDP(1,3)=0 DFDP(1,4)=-R DFDP(1,5)=-RH*DRDK DFDP(2,1)=0 DFDP(2,2)=AL DFDP(2,3)=A0-A DFDP(2,4)=-R DFDP(2,5)=-RH*DRDK END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T PAR(1)=110. PAR(2)=500. PAR(3)=0.2 PAR(4)=2.021628 PAR(5)=0.1 U(1)=4.555974E+01 U(2)=1.777987E+02 END SUBROUTINE STPNT SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/pp2/000077500000000000000000000000001206161447600162415ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/pp2/autorc000066400000000000000000000142621206161447600174660ustar00rootroot00000000000000[AUTO_plotter] ############################ # active settings ############################ # A dictionary mapping names to axis labels. labelnames = {"L2-NORM": "L2-norm", "MAX fish": "max fish", "MAX sharks": "max sharks"} # The type of the plot, either "solution" or "bifurcation" type = "bifurcation" # The column to plot along the X-axis for bifurcation diagrams. bifurcation_x = ['quota'] # The column to plot along the Y-axis for bifurcation diagrams. bifurcation_y = ['MAX fish'] #bifurcation_y = ['MAX sharks'] # The column to plot along the Z-axis for bifurcation diagrams. #bifurcation_z = ['MAX fish'] # The column to plot along the X-axis for solutions. solution_x = ['fish'] # The column to plot along the Y-axis for solutions. solution_y = ['sharks'] # The column to plot along the Z-axis for solutions. solution_z = None # A list of colors to use for multiple plots. color_list = "red" # color_list index: 'branch' (BR), 'type' (TY), or 'curve' (seq.). coloring_method = "branch" # Default d0, d1, d2, etc. setting to use with PyPLAUT (@pp). #default_option="d1" #d1 = {"grid": "yes", "use_labels": 0, "use_symbols": 1, "stability": 1} #d2 = {"grid": "yes", "use_labels": 1, "use_symbols": 1, "stability": 1} # similarly you can redefine d0, d3, d4. # The font size for the x-axis label. xlabel_fontsize = 16 # The font size for the y-axis label. ylabel_fontsize = 16 # The font size for the z-axis label. zlabel_fontsize = 16 # Azimuth of the axes in 3D plots, in degrees. azimuth = -120 # Elevation of the axes in 3D plots, in degrees. elevation = 25 # Whether to use letters (True) or symbols (False) for special points. letter_symbols = False ############################ # inactive settings ############################ # Turn on or off the grid. #grid = False # Turn on or off stability information using dashed curves #stability = False # Whether or not to display label numbers in the graph. #use_labels = True # Whether or not to display bifurcation symbols in the graph. #use_symbols = False # The label for the top title. #top_title = '' # The font size for the top title. #top_title_fontsize = 12 # The label for the x-axis. #xlabel = '' # The label for the y-axis. #ylabel = '' # The label for the z-axis. #zlabel = '' # Variable name to use instead of 't' for solutions. #solution_indepvarname = "time" # Width to use for lines and curves. #line_width = 2.0 # List of dash, no-dash lengths for dashed lines. #dashes = (6.0,6.0) # The background color of the plot. #background = "white" # The foreground color of the plot #foreground = "black" # The color to use for the marker symbols. #symbol_color = "red" # The font to use for marker symbols. #symbol_font = "-misc-fixed-*-*-*-*-*-*-*-*-*-*-*-*" # Turn on or off the axis, tick marks, etc. #decorations = True # Whether to use a smart but slower label placement algorithm. #smart_label = True # The lower bound for the x-axis of the plot. #minx = 0 # The upper bound for the x-axis of the plot. #maxx = 0 # The lower bound for the y-axis of the plot. #miny = 0 # The upper bound for the y-axis of the plot. #maxy = 0 # The lower bound for the z-axis of the plot. #minz = 0 # The upper bound for the z-axis of the plot. #maxz = 0 # Width of the graph. #width = 600 # Height of the graph. #height = 480 # The margin between the graph and the left edge. #left_margin = 80 # The margin between the graph and the left edge. #right_margin = 40 # The margin between the graph and the top edge. #top_margin = 40 # The margin between the graph and the bottom edge. #bottom_margin = 40 # The number of ticks on the x-axis. #xticks = 5 # The number of ticks on the y-axis. #yticks = 5 # The number of ticks on the z-axis. #zticks = 5 # A string which defines the format of the tick labels. #tick_label_template = "%.2e" # The length of the tick marks. #tick_length = 0.2 # The length of the odd tick marks. #odd_tick_length = 0.4 # The length of the even tick marks. #even_tick_length = 0.2 # The PostScript output mode: 'color', 'gray' or 'monochrome'. #ps_colormode = "color" # The t value to marker with a small ball. #mark_t = None #or a real value between 0 and 1 # A set of bifurcation columns the user is likely to use. #bifurcation_column_defaults = None # A set of solution columns the user is likely to use. #solution_column_defaults = [[0,3,6,9],[1,4,7,10],[2,5,8,11],['t','t','t','t']] # An array of labels to plot, or 'all' for all labels. #label = [1,2,3] # or "all" # A set of labels that the user is likely to use. #label_defaults = None # The index/indices of the solution we wish to draw #index = [0] # The filename of the bifurcation diagram to plot. #bifurcation_diagram_filename = 'fort.7' # The filename of the solution to plot. #solution_filename = 'fort.8' # The symbol to use for bifurcation points. # Here 8 denotes the size of the square #bifurcation_symbol = "square8" # The symbol to use for limit points. #limit_point_symbol = None # The symbol to use for Hopf bifurcation points. #hopf_symbol = "fillsquare" # The symbol to use for period doubling bifurcation points. #period_doubling_symbol = "doubletriangle" # The symbol to use for torus bifurcation points. #torus_symbol = "filldiamond" # The symbol to use for user defined output points. #user_point_symbol = "U" # The symbol to use for error points. #error_symbol = None # The symbol to use for Cusp points. #cusp_symbol = None # The symbol to use for Bogdanov-Takens points. #bogdanov_takens_symbol = "circle" # The symbol to use for Generalized Hopf points. #generalized_hopf_symbol = "triangle" # The symbol to use for zero-Hopf points. #zero_hopf_symbol = "doubletriangle" # The symbol to use for fold-flip points. #fold_flip_symbol = "doubletriangle" # The symbol to use for fold-torus points. #fold_torus_symbol = "doubletriangle" # The symbol to use for flip-torus points. #flip_torus_symbol = "doubletriangle" # The symbol to use for torus-torus points. #torus_torus_symbol = "doubletriangle" # The symbol to use for 1:1 resonance points. #1_1_resonance_symbol = "filldiamond" # The symbol to use for 1:2 resonance points. #1_2_resonance_symbol = "filldiamond" # The symbol to use for 1:3 resonance points. #1_3_resonance_symbol = "filldiamond" # The symbol to use for 1:4 resonance points. #1_4_resonance_symbol = "filldiamond" auto-07p-0.9.1+dfsg/07p/demos/pp2/c.pp2000066400000000000000000000024101206161447600171030ustar00rootroot00000000000000############################ # important primary settings ############################ # Problem Constants NDIM=2 # Output Control unames={1: 'fish', 2: 'sharks'} parnames={1: 'quota', 9: 'fish'} NPR=100 # Free Parameters ICP=['quota'] # Limits UZSTOP={'quota': [0.0, 1.0], 'fish': -0.25}, NMX=100 # Computation Constants IPS=1, IRS=0 # Continuation Step Size DS=0.02, DSMIN=0.01, DSMAX=0.06 # Discretization Constants NTST=90 ################################ # default secondary settings ################################ # Problem Constants #NPAR=36, JAC=0 # Discretization Constants #NCOL=4, IAD=3 # Tolerances #EPSL=1e-7, EPSU=1e-7, EPSS=1e-5, ITMX=9, NWTN=3, ITNW=5 # Continuation Step Size #IADS=1, THL={'PERIOD': 0.0}, THU={} # Limits #STOP = [] #RL0=-1.7976e+308, RL1=1.7976e+308, A0=-1.7976e+308, A1=1.7976e+308 # Computation Constants #ILP=1, SP=[], ISP=2, ISW=1, MXBF=10, s='', dat='', U={}, PAR={}, TY='' # Output Control #e = '', sv='', IBR=0, LAB=0, IIS=3, IID=2, IPLT=0, UZR={} ################### # inactive settings ################### # Problem Constants #NBC=0, NINT=0 ################################ # HomCont settings ################################ #NUNSTAB = -1, NSTAB = -1, IEQUIB = 1, ITWIST = 0, ISTART = 5 #IREV = [], IFIXED = [], IPSI = [] auto-07p-0.9.1+dfsg/07p/demos/pp2/clean.auto000066400000000000000000000001661206161447600202200ustar00rootroot00000000000000 #============== # AUTO Demo pp2 #============== print "\n***Clean the directory***" delete('pp2') delete('ps') cl() auto-07p-0.9.1+dfsg/07p/demos/pp2/plaut04.rc000066400000000000000000000116361206161447600200670ustar00rootroot00000000000000#version 0.0 ############################### # Primary settings ############################### # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 1 # Choose 3D or 2D graph for the solution diagram: 3DSol = No # Choose 3D or 2D graph for the bifurcation diagram: 3DBif = No # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 0 Y Axis Solution = 1 Z Axis Solution = 2 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 2 Z Axis Bifurcation = 3 #Set coloring method: # -7 --- BRANCH # -6 --- STABILITY # -5 --- POINT # -4 --- CURVE # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. # For the solution diagram: Coloring Method Solution = -2 # For the bifurcation diagram: Coloring Method Bifurcation = -6 # Initialize the default graph style: # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 1 #Set the window width and height: Window Width = 1000 Window Height = 600 # Initialize the default options: Draw Reference Plane = No Draw Reference Sphere = No Highlight Orbit = No Orbit Animation = No Normalize Data = Yes Draw Background = No Draw Labels = Yes Show Label Numbers = No Draw Legend = No # Labeled solutions: # -3 = Show all labeled solutions # -2 = Show HALF labeled solutions # -1 = Show SPEC labeled solutions # 0 = Show NONE of the solutions # Otherwise, show the specified solution(s) Labels = -3 # Colors are represented by RGB values from 0 to 1.0. # Background color: Background Color = 0.8, 0.8, 1. # Background transparency ([0.0, 1.0]): Background Transparency = 0.9 # Color of the animation object: Object Color = 1.0, 1.0, 1.0 ############################### # Secondary settings ############################### # Set the radius of the animation object: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Object Radius = 1.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # Unstable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Surface color: Surface Color = 0.0, 1.0, 0.0 # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and highlighting the solutions # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP ALG = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Draw Scale: Draw Scale = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahead # 4 --- always at origin Coordinate Type = 3 # Set the radius of the spheres used for labels: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Label Sphere Radius = 1.0 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 1.0 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Set the maximum and minimum animation speed: Object Animation Speed = 50 Object Max Animation Speed = 100 Object Min Animation Speed = 0 # Set the maximum and minimum highlighting animation speed: Orbit Animation Speed = 50 Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 # Disk Rotation Disk Rotation = 1.000000, 0.000000, 0.000000, 1.570796 # Disk Position Disk Position = 0.000000, 0.000000, 0.000000 # Disk Radius Disk Radius = 1.000000 # Disk Height Disk Height = 0.001000 # Disk Transparency [0, 1] Disk Transparency = 0.7 # Read Disk From File Disk From File = No # Sphere Position Sphere Position = 0.000000, 0.000000, 0.000000 # Sphere Radius Sphere Radius = 1.000000 # Sphere Transparency [0, 1] Sphere Transparency = 0.7 # Read Sphere From File Sphere From File = No # Set the active AUTO parameter indices: parameter ID = 10 # Set the number of periods animated. # The value should be the power of 2. Number of Period Animated = 1 auto-07p-0.9.1+dfsg/07p/demos/pp2/pp2.auto000066400000000000000000000005521206161447600176360ustar00rootroot00000000000000 #============== # AUTO Demo pp2 #============== print "\n***Compute stationary solution families***" pp2 = run('pp2') save('pp2') print "\n***Compute periodic solution families***" run(pp2('HB1'), ICP=['quota','PERIOD'], IPS=2, NPR=2, UZSTOP={'quota': [0.0, 1.0], 'PERIOD': 36.0}) save('ps') append('pp2') print "\n***Clean the directory***" clean() auto-07p-0.9.1+dfsg/07p/demos/pp2/pp2.f90000066400000000000000000000032051206161447600172620ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! pp2 : Basic computations for continuous dynamical systems !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) !--------- ---- 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,*), DFDP(NDIM,*) DOUBLE PRECISION e e=EXP(-PAR(3)*U(1)) F(1) = PAR(2)*U(1)*(1-U(1)) - U(1)*U(2) - PAR(1)*(1-e) F(2) = -U(2) + PAR(4)*U(1)*U(2) END SUBROUTINE FUNC !---------------------------------------------------------------------- SUBROUTINE STPNT(NDIM,U,PAR,T) !--------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(IN) :: T PAR(:4) = (/ 0.0, 3.0, 5.0, 3.0 /) U = 0.0 END SUBROUTINE STPNT !---------------------------------------------------------------------- SUBROUTINE PVLS(NDIM,U,PAR) !--------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(IN) :: U(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: PAR(*) DOUBLE PRECISION GETP ! Set PAR(9) equal to U1 PAR(9)=GETP('BV0',1,U) END SUBROUTINE PVLS SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT !---------------------------------------------------------------------- auto-07p-0.9.1+dfsg/07p/demos/pp3/000077500000000000000000000000001206161447600162425ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/pp3/c.pp3000066400000000000000000000005641206161447600171150ustar00rootroot00000000000000NDIM= 3, IPS = 1, IRS = 0, ILP = 1 ICP = [1] NTST= 20, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 200, MXBF= 2, IID = 2, ITMX= 9, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-08, EPSU = 1e-08, EPSS = 1e-06 DS = 0.01, DSMIN=0.0001, DSMAX= 0.02, IADS= 1 NPAR = 9, THL = {11: 0.0}, THU = {} UZSTOP = {1: [1.0, 0.0], 9: 1.2} auto-07p-0.9.1+dfsg/07p/demos/pp3/clean.auto000066400000000000000000000001561206161447600202200ustar00rootroot00000000000000 #============== # AUTO Demo pp3 #============== print "\n***Clean the directory***" dl('pp3') dl('hb') cl() auto-07p-0.9.1+dfsg/07p/demos/pp3/plaut04.rc000066400000000000000000000070421206161447600200640ustar00rootroot00000000000000#version 0.0 # Line colors are represented by RGB values from 0 to 1.0. # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and highlighting the solutions # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Initialize the default options: Highlight Orbit = No Orbit Animation = No Normalize Data = Yes Draw Background = No Draw Labels = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahead Coordinate Type = 3 # Draw Scale: Draw Scale = Yes # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 1 # Initialize the default graph style # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 1 #Set the window width and height: Window Width = 1000 Window Height = 600 # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 0 Y Axis Solution = 1 Z Axis Solution = 2 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 2 Z Axis Bifurcation = 3 #Labeled solutions: #-3 = Show all labeled solutions #-2 = Show HALF labeled solutions #-1 = Show SPEC labeled solutions #0 = Show NONE of the solutions #Otherwise, show the specified solution(s) Labels = -3 #Set coloring method: # -6 --- STABILITY # -5 --- POINT # -4 --- BRANCH # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. Coloring Method Solution = -2 Coloring Method Bifurcation = -6 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 1.0 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Background color: Background Color = 0., 0., 0. # Background transparency: Background Transparency = 0.9 # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # UnStable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 # Color of the animation object: Object Color = 1.0, 1.0, 1.0 # Set the radius of the animation object: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Object Radius = 1.0 # Set the maximum and minimum animation speed: Object Max Animation Speed = 100 Object Min Animation Speed = 0 # Set the maximum and minimum highlighting animation speed: Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 # Set the active AUTO parameter indices: parameter ID = 10 # Choose 3D or 2D graph: 3D = No # Set the number of periods animated. # The value should be the power of 2. Number of Period Animated = 1 auto-07p-0.9.1+dfsg/07p/demos/pp3/pp3.auto000066400000000000000000000014711206161447600176410ustar00rootroot00000000000000 #============== # AUTO Demo pp3 #============== print "\n***Compute stationary solution families***" r1 = run(e='pp3',c='pp3') pp3 = r1 print "\n***Compute periodic solution families***" for solution in pp3("HB"): print "Computing a periodic solution family from label", solution["LAB"] r=run(solution,IPS=2,ICP=[1,11], UZR ={1:[0.15,0.20,0.25,0.35,0.40]}, UZSTOP={1:[1,0,0.30],9:1.20}) pp3 = pp3 + r print "\n***Relabel the output and save***" pp3 = rl(pp3) save(pp3,'pp3') # get the second Hopf bifurcation from the first run hb2 = r1('HB2') print "\n***Compute a locus of Hopf bifurcations from label ", hb2["LAB"], "***" hb=run(hb2,ICP=[1,4],ISW=2,UZR={},UZSTOP={4:4}) print "\n***Relabel the output and save***" hb=rl(hb) save(hb,'hb') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/pp3/pp3.f90000066400000000000000000000035061206161447600172700ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! pp3 : A continuous dynamical system with period doubling !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) !--------- ---- 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,*), DFDP(NDIM,*) F(1)= U(1)*(1-U(1)) - PAR(4)*U(1)*U(2) F(2)=-PAR(2)*U(2) + PAR(4)*U(1)*U(2) - PAR(5)*U(2)*U(3) & - PAR(1)*(1-EXP(-PAR(6)*U(2))) F(3)=-PAR(3)*U(3) + PAR(5)*U(2)*U(3) END SUBROUTINE FUNC !---------------------------------------------------------------------- SUBROUTINE STPNT(NDIM,U,PAR,T) !--------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T U = (/ 1.0, 0.0, 0.0 /) PAR(:6) = (/ 0.0, 0.25, 0.5, 4.0, 3.0, 5.0 /) END SUBROUTINE STPNT !---------------------------------------------------------------------- SUBROUTINE PVLS(NDIM,U,PAR) !--------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(IN) :: U(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: PAR(*) DOUBLE PRECISION GETP DOUBLE PRECISION r1, r2, r3 ! Set PAR(9) equal to the L2-norm of U r1=GETP('NRM',1,U) r2=GETP('NRM',2,U) r3=GETP('NRM',3,U) PAR(9)=SQRT(r1**2 + r2**2 + r3**2) END SUBROUTINE PVLS SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT !---------------------------------------------------------------------- auto-07p-0.9.1+dfsg/07p/demos/ppp/000077500000000000000000000000001206161447600163375ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/ppp/c.ppp000066400000000000000000000005661206161447600173110ustar00rootroot00000000000000NDIM= 3, IPS = 1, IRS = 0, ILP = 1 ICP = [1] NTST= 10, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 200, MXBF= 2, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.01, DSMIN= 0.002, DSMAX= 0.02, IADS= 1 NPAR = 6, THL = {11: 0.0}, THU = {} UZSTOP = {1: [0.0, 0.6]}, A1 = 2.0 auto-07p-0.9.1+dfsg/07p/demos/ppp/c.ppp.1000066400000000000000000000005661206161447600174500ustar00rootroot00000000000000NDIM= 3, IPS = 1, IRS = 0, ILP = 1 ICP = [1] NTST= 10, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 200, MXBF= 2, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.01, DSMIN= 0.002, DSMAX= 0.02, IADS= 1 NPAR = 6, THL = {11: 0.0}, THU = {} UZSTOP = {1: [0.0, 0.6]}, A1 = 2.0 auto-07p-0.9.1+dfsg/07p/demos/ppp/c.ppp.2000066400000000000000000000005411206161447600174420ustar00rootroot00000000000000NDIM= 3, IPS = 2, IRS = 8, ILP = 0 ICP = [1, 11] NTST= 10, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 15, NPR= 50, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.1, DSMIN= 0.002, DSMAX= 0.5, IADS= 1 NPAR = 6, THL = {11: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/ppp/c.ppp.3000066400000000000000000000005401206161447600174420ustar00rootroot00000000000000NDIM= 3, IPS = 1, IRS = 8, ILP = 0 ICP = [1, 4] NTST= 10, NCOL= 4, IAD = 3, ISP = 2, ISW = 2, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 200, MXBF= 2, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.01, DSMIN= 0.002, DSMAX= 0.1, IADS= 1 NPAR = 6, THL = {11: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/ppp/c.ppp.4000066400000000000000000000005351206161447600174470ustar00rootroot00000000000000NDIM= 3, IPS = 1, IRS = 0, ILP = 1 ICP = [1] NTST= 10, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 200, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.01, DSMIN= 0.002, DSMAX= 0.02, IADS= 1 NPAR = 6, THL = {11: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/ppp/c.ppp.5000066400000000000000000000005411206161447600174450ustar00rootroot00000000000000NDIM= 3, IPS = 2, IRS = 19, ILP = 0 ICP = [1, 11] NTST= 10, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 30, NPR= 10, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.03, DSMIN= 0.002, DSMAX= 0.1, IADS= 1 NPAR = 6, THL = {11: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/ppp/c.ppp.6000066400000000000000000000005411206161447600174460ustar00rootroot00000000000000NDIM= 3, IPS = 2, IRS = 25, ILP = 0 ICP = [1, 11] NTST= 10, NCOL= 4, IAD = 3, ISP = 2, ISW =-1, IPLT= 0, NBC= 0, NINT= 0 NMX= 20, NPR= 10, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.03, DSMIN= 0.002, DSMAX= 0.1, IADS= 1 NPAR = 6, THL = {11: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/ppp/c.ppp.7000066400000000000000000000005411206161447600174470ustar00rootroot00000000000000NDIM= 3, IPS = 2, IRS = 25, ILP = 0 ICP = [1, 11] NTST= 10, NCOL= 4, IAD = 3, ISP = 2, ISW =-1, IPLT= 0, NBC= 0, NINT= 0 NMX= 20, NPR= 10, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = -0.03, DSMIN= 0.002, DSMAX= 0.1, IADS= 1 NPAR = 6, THL = {11: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/ppp/clean.auto000066400000000000000000000001561206161447600203150ustar00rootroot00000000000000 #============== # AUTO Demo lin #============== print "\n***Clean the directory***" dl('ppp') dl('hb') cl() auto-07p-0.9.1+dfsg/07p/demos/ppp/ppp.auto000066400000000000000000000007751206161447600200410ustar00rootroot00000000000000 #============== # AUTO Demo ppp #============== pgm = "ppp" print "\nDemo %s is started"%pgm print "\n%s : first run : stationary solutions"%pgm ppp = run(e=pgm,c=pgm) print "\n%s : second run : periodic solutions"%pgm ppp = ppp+run(ppp("HB2"),IPS=2,ICP=[1,11],ILP=0,NMX=15,NPR=50,DS=0.1,DSMAX=0.5) save(ppp,'ppp') print "\n%s : third run : compute Hopf bifurcation curves"%pgm hb = run(ppp("HB2"),ICP=[1,4],ILP=0,ISW=2,NMX=100,RL1=0.58,DSMAX=0.1) save(hb,'hb') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/ppp/ppp.f90000066400000000000000000000027601206161447600174630ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! ppp : A continuous dynamical system with period doubling !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) F(1)= U(1)*(1-U(1)) - PAR(4)*U(1)*U(2) F(2)=-PAR(2)*U(2) + PAR(4)*U(1)*U(2) - PAR(5)*U(2)*U(3) & - PAR(1)*(1-EXP(-PAR(6)*U(2))) F(3)=-PAR(3)*U(3) + PAR(5)*U(2)*U(3) END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T U(1)=1.0 U(2)=0.0 U(3)=0.0 PAR(1)=0.0 PAR(2)=0.25 PAR(3)=0.5 PAR(4)=3.0 PAR(5)=3.0 PAR(6)=5.0 END SUBROUTINE STPNT SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/pvl/000077500000000000000000000000001206161447600163415ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/pvl/c.pvd000066400000000000000000000005541206161447600173020ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 0, ILP = 1 ICP = [1, 2, 3, 4] NTST= 5, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 2, NINT= 0 NMX= 50, NPR= 50, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.01, DSMIN= 0.001, DSMAX= 1.0, IADS= 1 NPAR = 6, THL = {}, THU = {} UZR = {1: [1.0, 3.0]} auto-07p-0.9.1+dfsg/07p/demos/pvl/c.pvl000066400000000000000000000005701206161447600173100ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 0, ILP = 1 ICP = [1, 2, 3, 4, 5] NTST= 5, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 2, NINT= 0 NMX= 50, NPR= 50, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.01, DSMIN= 0.001, DSMAX= 1.0, IADS= 1 NPAR = 6, THL = {}, THU = {} UZR = {1: 2.0, 2: 3.0, 4: 5.0} auto-07p-0.9.1+dfsg/07p/demos/pvl/c.pvl.1000066400000000000000000000005701206161447600174470ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 0, ILP = 1 ICP = [1, 2, 3, 4, 5] NTST= 5, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC= 2, NINT= 0 NMX= 50, NPR= 50, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.01, DSMIN= 0.001, DSMAX= 1.0, IADS= 1 NPAR = 6, THL = {}, THU = {} UZR = {1: 2.0, 2: 3.0, 4: 5.0} auto-07p-0.9.1+dfsg/07p/demos/pvl/clean.auto000066400000000000000000000001451206161447600203150ustar00rootroot00000000000000 #============== # AUTO Demo pvl #============== print "\n***Clean the directory***" dl('pvl') cl() auto-07p-0.9.1+dfsg/07p/demos/pvl/pvl.auto000066400000000000000000000003321206161447600200320ustar00rootroot00000000000000 #============== # AUTO Demo pvl #============== pgm = "pvl" print "\nDemo %s is started"%pgm print "\n%s : compute a solution branch"%pgm r1 = run(e=pgm,c=pgm) save(r1,pgm) print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/pvl/pvl.f90000066400000000000000000000115241206161447600174650ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! pvl : Setting functional parameter values (for Bratu's equation) !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- 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,*), DFDP(NDIM,*) DOUBLE PRECISION E E=EXP(U(1)) F(1)=U(2) F(2)=-PAR(1)*E END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(IN) :: T PAR(1)=0 U(1)=0.0 U(2)=0.0 END SUBROUTINE STPNT SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) ! ---------- ---- 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,*) FB(1)=U0(1) FB(2)=U1(1) END SUBROUTINE BCND DOUBLE PRECISION FUNCTION GETU2(U,NDX,NTST,NCOL) ! ------ --------- -------- ----- INTEGER, INTENT(IN) :: NDX,NCOL,NTST DOUBLE PRECISION, INTENT(IN) :: U(NDX,0:NCOL*NTST) GETU2 = U(2,0) END FUNCTION GETU2 SUBROUTINE PVLS(NDIM,U,PAR) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(IN) :: U(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: PAR(*) DOUBLE PRECISION, EXTERNAL :: GETP,GETU2 INTEGER NDX,NCOL,NTST !---------------------------------------------------------------------- ! 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 can ! be accessed indirectly by calls to GETP, as illustrated below, or ! by obtaining NDIM, NCOL, NTST via GETP and then dimensioning U as ! U(NDIM,0:NCOL*NTST) in a seperate subroutine that is called by PVLS. !---------------------------------------------------------------------- ! Set PAR(2) equal to the L2-norm of U(1) PAR(2)=GETP('NRM',1,U) ! Set PAR(3) equal to the minimum of U(2) PAR(3)=GETP('MIN',2,U) ! Set PAR(4) equal to the value of U(2) at the left boundary. PAR(4)=GETP('BV0',2,U) ! Set PAR(5) equal to the value of U(2) at the left boundary using ! another method NDX=NINT(GETP('NDX',0,U)) NTST=NINT(GETP('NTST',0,U)) NCOL=NINT(GETP('NCOL',0,U)) PAR(5)=GETU2(U,NDX,NTST,NCOL) !---------------------------------------------------------------------- ! 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). ! 'MNT' (t value for minimum) ! 'MXT' (t value for maximum) ! 'NDIM', 'NDX' (effective (active) number of dimensions) ! 'NTST' (NTST from constant file) ! 'NCOL' (NCOL from constant file) ! 'NBC' (active NBC) ! 'NINT' (active NINT) ! 'DTM' (delta t for all t values, I=1...NTST) ! 'WINT' (integration weights used for interpolation, I=0...NCOL) ! ! 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). ! 'EIG' ( Eigenvalues/multipliers, I=1...2*NDIM, alternates real/imag parts). ! 'STA' ( Number of stable eigenvalues/multipliers). !---------------------------------------------------------------------- END SUBROUTINE PVLS SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT auto-07p-0.9.1+dfsg/07p/demos/python/000077500000000000000000000000001206161447600170615ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/python/branches.auto000066400000000000000000000010361206161447600215400ustar00rootroot00000000000000# get and run the ab demo demo('ab') auto('ab.auto') # load data from b.ab, s.ab, and d.ab ab = loadbd('ab') # change the branch number to either 1 or 2 depending on IPS for branch in ab: branch['BR'] = branch.c['IPS'] # delete the last branch del ab[-1] # subtract the first branch from all other branches with respect to PAR(1) ab = subtract(ab, ab, 'PAR(1)') # plot the branches, coloring by branch number plot(ab, coloring_method='branch', color_list='black red') wait() # save data to b.abnew, s.abnew, and d.abnew save(ab, 'abnew') auto-07p-0.9.1+dfsg/07p/demos/python/demo1.auto000077500000000000000000000001141206161447600207570ustar00rootroot00000000000000demo('ab') ab = load(equation='ab') ab = load(ab, constants='ab.1') run(ab) auto-07p-0.9.1+dfsg/07p/demos/python/demo2.auto000077500000000000000000000006621206161447600207700ustar00rootroot00000000000000demo('bvp') bvp = run('bvp') branchpoints = bvp("BP") for solution in branchpoints: bp = load(solution, ISW=-1, NTST=50) # Compute forwards print "Solution label", bp["LAB"], "forwards" fw = run(bp) # Compute backwards print "Solution label", bp["LAB"], "backwards" bw = run(bp,DS='-') both = fw + bw merged = merge(both) bvp = bvp + merged bvp=relabel(bvp) save(bvp, 'bvp') plot(bvp) wait() auto-07p-0.9.1+dfsg/07p/demos/python/demo3.auto000066400000000000000000000003201206161447600207550ustar00rootroot00000000000000demo('bvp') bvp=r('bvp') for solution in bvp('BP'): bp = ld(solution,NTST=50,ISW=-1) # Compute forwards and backwards bvp = bvp + mb(r(bp)+r(bp,DS='-')) bvp=rl(bvp) pl(bvp) sv(bvp,'bvp') wait() auto-07p-0.9.1+dfsg/07p/demos/python/demo4.auto000066400000000000000000000003131206161447600207600ustar00rootroot00000000000000,demo bvp bvp=r('bvp') for solution in bvp('BP'): bp = ld(solution,NTST=50,ISW=-1) # Compute forwards and backwards bvp = bvp + mb(r(bp)+r(bp,DS='-')) bvp=rl(bvp) pl bvp sv bvp, 'bvp' wait auto-07p-0.9.1+dfsg/07p/demos/python/fullTest.auto000077500000000000000000000112531206161447600215620ustar00rootroot00000000000000# This is a sample AUTO-07P script file. This file uses the # entire AUTO-07P command set, except for the plotting commands. # Accordingly, some of the command sequences are not optimal # (i.e. some of the same functionality can be accomplished # with fewer commands). # The next two commands are sent to the shell ! rm -rf test ! mkdir test # Go into the newly created test directory cd test # Copy the wav demo into the current directory. This command # also loads in the problem definition file wav.c and the # constants file c.wav. Basically, the 'dm' command is # the concatenation of the 'copyDemo' command and the # 'ld' command dm("wav") # Check what files are in the current directory ls # Print out the short online help for all the commands man # Print out the long online help for the 'run' command man run # Print out the contents of the c.wav.1 file cat c.wav # Load the files wav.c, c.wav, s.wav, and h.wav into the AUTO # command interpretor. If either the s.wav or the h.wav file # does not exist it is silently ignored, since they are not # necessarily required to run AUTO. NOTE: in this case this # command is not needed since its functionality is included # in the 'dm' command. It is put here for clarity. ld("wav") # This loop runs the AUTO using each of the constants files # c.wav.2, c.wav.3, c.wav.4, and c.wav.5. The # results of each computation are appended to the file s.wav, # which is read back in to provide starting data for the # next calculation. Note the Python syntax 'c="wav.%d"%i', which # use to generate the constants file names. for i in range(2,5): rn(c="wav.%d"%i,s="wav") ap("wav") # Remove all files from the current directory. ! rm -f * # We set a Python variable to contain the name of the next # demo we want to run. cir = "cir" # We copy and load the demo files. dm(cir) # The 'cir' demo is somewhat non-standard in that it uses # a tabulated file of values for initial data. This command # takes that file and creates a AUTO input file from it. us(cir) # Again, this command is strictly redundant, but is here to # show the different ways that files may be loaded into # the interface. First you may use a 'ld' command with a single # argument to load in the standard files cir.c, c.cir, s.cir, and h.cir. ld(cir) # Or, you may load in the files are part of the 'run' command # itself. In this case we have used the extended form, in which # each filename is given individually. This command loads in # the files c.cir1, and s.dat and then runs AUTO. rn(c="cir.1",s="dat") # Or, you may run without defining any files, and this will # use whatever files were loaded last. run() # We save the data in s.cir sv(cir) # These commands print out various values associated with # solutions to the problem. # The pseudo arclength step-size. st(cir) # The 'secondary periodic' function sc(cir) # Any notes that AUTO entered in the diagnostic file nt(cir) # The 'limit point' function lm(cir) # The number of iterations required for convergence it(cir) # The 'Hopf bifurcation' function hp(cir) # The Floquet multipliers fl(cir) # The eigenvalues of the Jacobian (for algebraic problems) eg(cir) # The 'branch point' function br(cir) # Clean the directory by removing fort.*, o.*, and *.exe cl() # Now remove everything else ! rm -f * # Set a new variable with the name of a third demo. demo = "ab" # Copy and load the demo. dm(demo) # Delete all d.*, b.*, and s.* files dl(demo) # Load just the constants file c.ab.1 and leave the rest of the loaded files # the same. ld(constants="ab.1") # Run the demo run() # Change the constant RL1 to have the value 0.4 ch("RL1",0.4) # And run the demo again. run() # Save the results into d.ab, s.ab, and b.ab (since demo='ab') sv(demo) # Append another copy of the data into the same files ap(demo) # Run the demo, but changing the constants file to c.ab.2 and the # solution file to s.ab run(constants="ab.2",solution="ab") # Copy the files d.ab, s.ab, and b.ab to d.double, s.double, and b.double cp(demo,"double") # 'Double' the solutions in d.double, s.double, and b.double. This # is used to compute period doubling bifurcations. db("double") # Move the files d.double, s.double, and b.double to # d.triple, s.triple, and b.triple mv("double","triple") # 'Triple' the solutions in d.triple, s.triple, and b.triple. This # is used to compute period tripling bifurcations. tr("triple") # Parse the data in fort.8 and return a Python object containing # the data data=sl() # Parse the data in fort.7 and return a Python object containing # the data data=dg() # Parse the data in fort.7 and fort.8 and return a Python object containing # the data data=bt() # Clean the directory ! rm -rf * # Go up one directory level cd .. # Remove the test directory ! rmdir test auto-07p-0.9.1+dfsg/07p/demos/python/n-body/000077500000000000000000000000001206161447600202515ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/python/n-body/.autorc000077500000000000000000000056141206161447600215600ustar00rootroot00000000000000[AUTO_command_aliases] ls =commandLs cd =commandCd shell =commandShell cat =commandCat wait =commandWait copyDemo =commandCopyDemo gui =commandCreateGUI branchPoint =commandQueryBranchPoint eigenvalue =commandQueryEigenvalue floquet =commandQueryFloquet help =commandInteractiveHelp hopf =commandQueryHopf iterations =commandQueryIterations limitpoint =commandQueryLimitpoint note =commandQueryNote secondaryPeriod =commandQuerySecondaryPeriod stepsize =commandQueryStepsize changeConstant =commandRunnerConfigFort2 printConstant =commandRunnerPrintFort2 append =commandAppend diagramAndSolutionGet =commandParseDiagramAndSolutionFile clean =commandClean constantsGet =commandParseConstantsFile copy =commandCopyDataFiles delete =commandDeleteDataFiles deleteFort =commandDeleteFortFiles diagramGet =commandParseDiagramFile double =commandDouble demo =commandCopyAndLoadDemo load =commandRunnerLoadName move =commandMoveFiles plot =commandPlotter plot3 =commandPlotter3D run =commandRun save =commandCopyFortFiles solutionGet =commandParseSolutionFile triple =commandTriple userData =commandUserData br =commandQueryBranchPoint eg =commandQueryEigenvalue fl =commandQueryFloquet hp =commandQueryHopf it =commandQueryIterations lm =commandQueryLimitpoint nt =commandQueryNote sc =commandQuerySecondaryPeriod st =commandQueryStepsize ch =commandRunnerConfigFort2 pr =commandRunnerPrintFort2 ap =commandAppend bt =commandParseDiagramAndSolutionFile cl =commandClean cn =commandParseConstantsFile cp =commandCopyDataFiles dl =commandDeleteDataFiles dg =commandParseDiagramFile db =commandDouble dm =commandCopyAndLoadDemo ld =commandRunnerLoadName mv =commandMoveFiles pl =commandPlotter #FIXME: This doesn't match the rule we use for all other commands p3 =commandPlotter3D rn =commandRun sv =commandCopyFortFiles sl =commandParseSolutionFile tr =commandTriple us =commandUserData man =commandInteractiveHelp bp =commandQueryBranchPoint ev =commandQueryEigenvalue hb =commandQueryHopf lp =commandQueryHopf cc =commandRunnerConfigFort2 pc =commandRunnerPrintFort2 p2 =commandPlotter r =commandRun sp =commandQuerySecondaryPeriod ss =commandQueryStepsize df =commandDeleteFortFiles [AUTO_plotter] #bifurcation_symbol = "square" #limit_point_symbol = None #hopf_symbol = "fillsquare" #period_doubling_symbol = "circle" #torus_symbol = "fillcircle" #user_point_symbol = None #error_symbol = "crosssquare" type = "solution" solution_x = [0] solution_y = [1] solution_column_defaults=[[0,3,6,9],[1,4,7,10],[2,5,8,11],['t','t','t','t']] [AUTO_plotter3D] mark_t = 0.0 mark_t_radius = 0.05 auto_scale = 0 solution_x = [0] solution_y = [1] solution_z = [2] solution_color = [3] bifurcation_x=[0] bifurcation_y=[2] bifurcation_z=[3] type = "bifurcation" solution_column_defaults=[[0,3,6,9],[1,4,7,10],[2,5,8,11],['t','t','t','t']] auto-07p-0.9.1+dfsg/07p/demos/python/n-body/3d.c000066400000000000000000000071621206161447600207310ustar00rootroot00000000000000/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* nb : The restricted 3-body problem */ /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ #include "auto_f2c.h" /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ int func (integer ndim, const double *u, const integer *icp, const double *par, integer ijac, double *f, double *dfdu, double *dfdp) { double mu,p; double x, y, z; double xp, yp, zp; double rone, rone2, rone3; double rtwo, rtwo2, rtwo3; double Cx, Cy, Cz, Cxp, Cyp, Czp; x = u[0]; y = u[1]; z = u[2]; xp = u[3]; yp = u[4]; zp = u[5]; mu = par[0]; p = par[1]; rone = sqrt( (x+mu)*(x+mu) + y*y + z*z ); rone2 = rone*rone; rone3 = rone2*rone; rtwo = sqrt( (x-1+mu)*(x-1+mu) + y*y + z*z ); rtwo2 = rtwo*rtwo; rtwo3 = rtwo2*rtwo; Cx = x - (1-mu)*(x+mu)/rone3 - mu*(x-1+mu)/rtwo3; Cy = y - (1-mu)*y/rone3 - mu*y/rtwo3; Cz = - (1-mu)*z/rone3 - mu*z/rtwo3; Cxp = -2*xp; Cyp = -2*yp; Czp = -2*zp; f[0] = xp; f[1] = yp; f[2] = zp; #ifdef NEGATIVE_U f[3] = 2*yp - x + (1-mu)*(x+mu)/rone3 + mu*(x-1+mu)/rtwo3; f[4] = -2*xp - y + (1-mu)*y/rone3 + mu*y/rtwo3; f[5] = (1-mu)*z/rone3 + mu*z/rtwo3; #else f[3] = 2*yp + x - (1-mu)*(x+mu)/rone3 - mu*(x-1+mu)/rtwo3; f[4] = -2*xp + y - (1-mu)*y/rone3 - mu*y/rtwo3; f[5] = - (1-mu)*z/rone3 - mu*z/rtwo3; #endif #ifdef ALL_UNFOLDING f[0] += p*Cx; f[1] += p*Cy; f[2] += p*Cz; f[3] += p*Cxp; f[4] += p*Cyp; f[5] += p*Czp; #else f[3] += p*Cxp; f[4] += p*Cyp; f[5] += p*Czp; #endif return 0; } /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ int stpnt (integer ndim, double t, double *u, double *par) { double mu; mu =0.0; par[0] = mu; par[1] = 0.; u[0] = 0.14107; u[1] = 0.99; u[2] = 0.0; u[3] = 0.0; u[4] = 0.0; u[5] = 0.0; return 0; } /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ int pvls (integer ndim, const double *u, double *par) { integer tmp; extern double getp(); double x, y, z; double xp, yp, zp; double mu; double rone, rtwo; mu = par[0]; x = getp("BV0", 1, u); y = getp("BV0", 2, u); z = getp("BV0", 3, u); xp = getp("BV0", 4, u); yp = getp("BV0", 5, u); zp = getp("BV0", 6, u); rone = sqrt( (x+mu)*(x+mu) + y*y + z*z ); rtwo = sqrt( (x-1+mu)*(x-1+mu) + y*y + z*z ); par[14]=x*x+y*y+2*(1-mu)/rone+2*mu/rtwo-xp*xp-yp*yp-zp*zp; par[15]=y; return 0; } /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ int bcnd () { return 0; } /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ int icnd () { return 0; } /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ int fopt() { return 0; } /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ auto-07p-0.9.1+dfsg/07p/demos/python/n-body/Makefile000066400000000000000000000000561206161447600217120ustar00rootroot00000000000000clean: rm -f *~ *.o d.* s.* b.* fort.* *.exe auto-07p-0.9.1+dfsg/07p/demos/python/n-body/README000066400000000000000000000060531206161447600211350ustar00rootroot00000000000000This directory contains example scripts for computing period solutions to the N-body problem. 3d.c: This file contains the equations for the circular restricted 3-body problem in a rotating frame. c.3d: This is the basic AUTO constants file which is read in and modified by all of the scripts. There are two "basic" AUTO command line user interface scripts. Basic AUTO CLUI script are run by typing: auto scriptname Basic AUTO CLUI scripts always end with the suffix ".auto", and they provide access to most, but not all, Python syntax. The also allow the use of non-standard Python syntax such as 'cd /tmp'. In addition, there are two "expert" AUTO CLUI scripts. Expert AUTO CLUI script are run by typing: autox scriptname Expert AUTO CLUI scripts always end with the suffix ".autox". Expert AUTO CLUI scripts provide access to the full capabilities of the Python language, at the expense of a slightly more cumbersome syntax. For example, the non-standard Python syntax 'cd /tmp' is not allowed, and must be replaced with 'cd ('/tmp')'. Also, the AUTO CLUI libraries must be explicitly included using the command 'from AUTOclui import *'. ------------------------------------------------------------ compute_lagrange_points_family.auto: This is a basic script which computes and plots all of the lagrange points as a function of the ratio of the masses of the two planets. compute_lagrange_points_0.5.auto: This is a basic script which computes all of the lagrange points for the case where the masses of the two planets are equal, and saves the data. This script is used to compute starting data for the compute_periodic_family.xauto script. compute_periodic_family.xauto: NOTE: This script depends on the results of the compute_lagrange_points_0.5.auto script, so that script must be run before this script is used. This is an expert script which starts at a lagrange point computed by compute_lagrange_points_0.5.auto and continues in the ratio of the masses until a specified mass ratio is reached. It then computes a family of periodic orbits for each pair of purely complex eigenvalues. Finally, for each bifurcation point detected on the primary branch a bifurcating branch is also computed. E.g. the command autox compute_periodic_family.xauto l1 0.0123 computes families of periodic orbits emanating from l1 for mass ratio 0.0123. To run the same problem with branch switching do: autox -- compute_periodic_family.xauto -b l1 0.0123 to_matlab.xauto: This script takes a set of AUTO data files and creates a set of files formatted for importing into Matlab for either plotting or further calculations. E.g. the command autox to_matlab.xauto foo bar will take the solution file 's.foo' and bifurcation diagram file 'b.foo' and create the following files: 'bar_bifur' : This files contains the bifurcation diagram from 'b.foo' 'bar_solution_??' : These files each contain one solution from the file 's.foo'. The '??' is replaced with the solution label number. auto-07p-0.9.1+dfsg/07p/demos/python/n-body/c.3d000066400000000000000000000005371206161447600207300ustar00rootroot00000000000000NDIM= 6, IPS = 0, ILP = 0 ICP = [1, 11, 15, 16] NTST= 50, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 2000, NPR= 2000, MXBF= 0, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-09, EPSU = 1e-09, EPSS =0.0001 DS = 0.001, DSMIN=0.0001, DSMAX= 0.01, IADS= 1 NPAR = 16, THL = {11: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/python/n-body/clean.auto000066400000000000000000000003631206161447600222270ustar00rootroot00000000000000 #======================== # AUTO Demo python/n-body #======================== print "\n***Clean the directory***" import glob import os toclean = glob.glob("b.*") + glob.glob("s.*") + glob.glob("d.*") for f in toclean: os.remove(f) cl() auto-07p-0.9.1+dfsg/07p/demos/python/n-body/compute_lagrange_points_0.5.auto000066400000000000000000000031271206161447600264400ustar00rootroot00000000000000# This script computes the initial circle of solutions for mu=0 # as well as the bifurcating branches which give us the # Lagrange points. # Load 3d.c and c.3d into the AUTO CLUI # Add a stopping condition so we only compute the loop once # We tell AUTO to stop when parameter 16 is 0.991, parameter 1 is -0.1, # or parameter 1 is 1.1. If parameter1 is 0.5 we just report # a point. # We also want to compute branches for the first 3 bifurcation # points. # IPS=0 tells AUTO to compute a family of equilibria. # Compute the circle. circle = run('3d',UZR={-16:0.991, -1:[-0.1,1.1], 1:0.5}, MXBF=-3, IPS=0) # Extract the 5 Lagrange points for each of the branches # which we will use in later calculations. # This command parses the solution file fort.8 and returns # a Python object which contains all of the data in the # file in an easy to use format. i=0 # For every solution in the fort.8 file... # If the solution is a user defined point... for u in circle('UZ'): # We look at the value of one of the components # to determine which Lagrange point it is. # The solution is a Pointset. In this case there is only # one point, at t=0, accessible via u(0), u[0], or via the # u['U(1)'] and u['U(2)'] arrays. [x]=u['U(1)'] [y]=u['U(2)'] if y > 0.01: # When we determine which Lagrange point we have we save it. u.writeFilename("s.l4") elif y < -0.01: u.writeFilename("s.l5") elif x > 0.01: u.writeFilename("s.l2") elif x < -0.01: u.writeFilename("s.l3") else: u.writeFilename("s.l1") auto-07p-0.9.1+dfsg/07p/demos/python/n-body/compute_lagrange_points_family.auto000066400000000000000000000025421206161447600274170ustar00rootroot00000000000000# This script computes the initial circle of solutions for mu=0 # as well as the bifurcating branches which give us the # Lagrange points. It then plots the full bifurcation diagram. # Load 3d.c and c.3d into the AUTO CLUI # Add a stopping condition so we only compute the loop once # We tell AUTO to stop when parameter 16 is 0.991, parameter 1 is -0.1, # or parameter 1 is 1.1. If parameter1 is 0.5 we just report # a point. # We also want to compute branches for the first 4 bifurcation # points. # IPS=0 tells AUTO to compute a family of equilibria. # Compute the circle. # This command parses returns a Python object which contains # all of the data in the file in an easy to use format. circle = run('3d',UZR={-16:0.991, -1:[-0.1,1.1], 1:0.5}, MXBF=-4, IPS=0) # Use the label of the last solution of the previous calculation # and use this solution as the starting point of the next # calculation. # Do not compute any bifurcating branches. # We tell AUTO to stop when parameter 16 is 1.0, parameter 1 is -0.1, # or parameter 1 is 1.1. If parameter1 is 0.5 we just report # a point. # Run the calculation lagrangep = run(circle, MXBF=0, UZR={-16:1.0, -1:[-0.1,1.1], 1:0.5}) # Save the circle and data in b.lagrange_points, s.lagrange_points, # and d.lagrange_points. save(circle + lagrangep, 'lagrange_points') # Plot the solutions p3('lagrange_points') auto-07p-0.9.1+dfsg/07p/demos/python/n-body/compute_periodic_family.xauto000066400000000000000000000152721206161447600262350ustar00rootroot00000000000000# This is an example of an 'expert' AUTO CLUI script. # This scripts takes the Lagrange points computed # by the compute_lagrange_points_0.5.auto and # computes the periodic orbits emanating from them. # In expert scripts we need to explicitly import the # AUTOclui library from AUTOclui import * # There isn't a AUTO CLUI command for diagnostic # file parsing yet, but in a script such as # this we can just as easily import the parsing # class directly. import parseD # We also import a few general Python utility # libraries. import sys import math # We have divided the functionality if this # script into two functions, so that the # same ideas may be more easily used in # other contexts. def compute_periodic_family(starting_point,mu,compute_bifur_flag="no",npr=20): # We load the 3d.c, the starting point file, and # c.3d into the AUTO CLUI # And we parse the starting solution. This # is mainly to determine what label the # file contains. starting_solution=load(starting_point,e='3d',c='3d') # We setup the calculation by setting the # starting solution to be the appropriate label. # And setting the problem type. In this case # we want to compute a family of equilibria. # Our initial calculation it to go from 0.5 # to the desired mu value, so we put in a # stopping condition for the mu value we want. # Since we are starting at mu=0.5 we want to # go down if the desired value is less, and # go up if the desired value is more. ds = starting_solution.c["DS"] if mu < 0.5: ds = -ds # Run and get a parsed solution as well. hopf_bifurcation = run(starting_solution,IPS=1,UZR={-1:mu},DS=ds) # We save this solution save(hopf_bifurcation,'hopf_bifurcation') # Get just the solution hopf_bifurcation = hopf_bifurcation()[-1] # This will eventually become an AUTO2000 internal # NOTE: the interface to the parseD object is # under development and may change significantly # in the final version parseD_object=parseD.parseD('fort.9') # We print out the eigenvalues of the Jacobian. print parseD_object[-2]["Eigenvalues"] # In this loop we look for all eigenvalues # with "zero" (i.e. sufficiently small) real part. # We begin by defining an array in which the periods # of the Hopf bifurcations will be stored. periods = [] # The parseD_object is basically a Python list, # so we use standard Python syntax to iterate # over it. for eigenvalue in parseD_object[-2]["Eigenvalues"]: if math.fabs(eigenvalue[0]) < 1e-8: # If the real part in sufficiently small # we get the imaginary part imag = math.fabs(eigenvalue[1]) print "imaginary part: ",imag print "period : ",2*math.pi/imag # and compute the period. If is is not in our # list of periods (i.e. it is not a complex conjugate # to one we have already computed) we add it. if 2*math.pi/imag not in periods: periods.append(2*math.pi/imag) # Now we have an array which contains the initial periods of all of the # periodic orbits emanating from the Hopf bifurcation. # We iterate over them and calculate each family. for period in periods: # Since we have a parsed version of the initial solution # it is easy to modify it to include the period # we want. In AUTO, the 11th parameter is always # the period. # Now, when this point was computed we had Hopf # bifurcation detection turned off (since all # points were Hopf bifurcations). So, we manually # mark the point as a Hopf bifurcation. hopf_bifurcation = load(hopf_bifurcation,TY="HB",PAR={11:period}) # We set the problem type, in this case we want to # compute a family of periodic orbits. # We turn off torus bifurcation detection, since there are # lots of torus bifurcations. # We want additional solutions to be saved, so we set NPR to # a smaller value. # We want the period, the y value at t=0, and the Jacobi constant to # be printed out, so we add the appropriate parameters, # And we run the calculation. per = run(hopf_bifurcation, IPS=2, ISP=3, NPR=npr, ICP=[2,11,15,16]) # Finally, we save the solution. save(per,'%s_mu_%f_period_%f'%(starting_point,mu,period)) # Now, if there were any bifurcation points detected we want # to compute the branches emanating from them as well. # Since this is a very common task, we have put that functionality # into a subroutine. if compute_bifur_flag == "yes": compute_bifur(per,'%s_mu_%f_period_%f'%(starting_point,mu,period)) # This subroutine takes a bifurcation diagram objec and a solution file name, # and for every bifurcation point in the diagram it attempts to # compute a bifurcating branch. def compute_bifur(problem,solution_file): # Use problem('BP') to get a list of all branch points and # then we can use standard Python syntax to iterate # over it. for solution in problem('BP'): # ISW=-1 is the syntax for telling AUTO to switch branches # at the bifurcation # Compute forward fw=run(solution,ISW=-1) # Save the branch save(fw,solution_file+"_+_"+`solution["LAB"]`) # Compute backward by making the initial step-size negative bw=run(solution,ISW=-1,DS='-') # Save the branch save(bw,solution_file+"_-_"+`solution["LAB"]`) # This is the Python syntax for making a script runable if __name__ == '__main__': # We want to have the option of computing the bifurcating # branches or not, so we use the Python getopt # routines to process command line options. import getopt # This line process the command line options and # looks for a -b option opts_list,args=getopt.getopt(sys.argv[1:],"bn:") # We take the list of options generated by # getopt command and turn it into a dictionary. # This is not strictly necessary, but it makes # it easier to use. opts={} for x in opts_list: opts[x[0]]=x[1] # If you use the -b option then we want to compute the bifurcating # branches. if "-b" in opts: compute_bifur_flag="yes" else: compute_bifur_flag="no" npr = 20 if "-n" in opts: npr = int(opts["-n"]) # The first argument is the name of the file in # which you find the starting point starting_point = args[0] # The second argument is the desired mu value. mu = float(args[1]) compute_periodic_family(starting_point,mu,compute_bifur_flag,npr) auto-07p-0.9.1+dfsg/07p/demos/python/n-body/plaut04.rc000066400000000000000000000103121206161447600220650ustar00rootroot00000000000000#version 0.0 # Line colors are represented by RGB values from 0 to 1.0. # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and highlighting the solutions # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Use r3b mode R3B = Yes # Initialize the default options: Draw Reference Plane = Yes Draw Primaries = Yes Draw Libration Points = Yes Highlight Orbit = No Orbit Animation = No Normalize Data = No Draw Background = No Draw Labels = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahead Coordinate Type = 0 # Draw Scale: Draw Scale = No # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 0 # Initialize the default graph style # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 0 #Set the window width and height: Window Width = 1000 Window Height = 1000 # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 1 Y Axis Solution = 2 Z Axis Solution = 3 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 1 Z Axis Bifurcation = 2 #Labeled solutions: #-3 = Show all labeled solutions #-2 = Show HALF labeled solutions #-1 = Show SPEC labeled solutions #0 = Show NONE of the solutions #Otherwise, show the specified solution(s) Labels = -3 #Set coloring method: # -6 --- STABILITY # -5 --- POINT # -4 --- BRANCH # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. Coloring Method = -2 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 1.0 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Background color: Background Color = 0.8, 0.8, 1. # Background transparency: Background Transparency = 0.0 # Disk transparency # IF you turn Disk From File to "Yes", you should change the transparency there. Disk Transparency = 0.7 # Read Disk From File Disk From File = No # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # Color of the satellite, large primary, and small primary in animation: satellite Color = 1.0, 0.0, 0.0 large primary Color = 0.0, 1.0, 0.0 large primary tail Color = 0.0, 1.0, 1.0 small primary Color = 0.0, 0.0, 1.0 small primary tail Color = 0.5, 0.5, 0.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # UNStable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 # Color of the animation object: Object Color = 1.0, 0.0, 0.0 # Set the radius of the animation object: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Object Radius = 1.0 Large Primary Radius = 3.0 Small Primary Radius = 2.0 Libration Point Size = 0.5 # Set the maximum and minimum animation speed: Object Max Animation Speed = 100 Object Min Animation Speed = 0 # Set the maximum and minimum highlighting animation speed: Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 # Set the active AUTO parameter indices: parameter ID = 10 # Choose 3D or 2D graph: 3D = Yes #3DBif = No #3DSol = Yes # Set the number of periods animated. # The value should be the power of 2. Number of Period Animated = 1 auto-07p-0.9.1+dfsg/07p/demos/python/n-body/to_matlab.xauto000066400000000000000000000033701206161447600233000ustar00rootroot00000000000000# This is an example of an 'expert' AUTO CLUI script. # This script takes a set of AUTO data files and produces # files which can be read into Matlab . # For example, the command: # # autox to_matlab.xauto foo bar # # will take the bifurcation diagram file b.foo and produce # the file bar_bifur, and it will take the solution # file s.foo and, for each solution in the file, # produce a file bar_solution_??, where ?? is # the solution label number. # In expert scripts we need to explicitly import the # AUTOclui library from AUTOclui import * # We also import a few general Python utility # libraries. import sys # This function actually performs the decoding of the # AUTO data files. def to_matlab(filename,prefix): # We parse the bifurcation diagram file and solution file. data=loadbd(filename) # The Python object has a method for taking the # data and writing it out as columns, so # we use that here. data.writeRawFilename(prefix+'_bifur') # Next, we write out the solutions by first using data() to get the # solution list. data=data() # The we iterate over each of the solutions in the file # using the loop. for solution in data: # Just like above, the Python object for solutions # has a method for taking the # data and writing it out as columns, so # we use that here. solution.writeRawFilename(prefix+'_solution_'+`solution["Label"]`) # This is the Python syntax for making a script runnable if __name__ == '__main__': # The first argument is the name of the file that # you wish to parse. filename = sys.argv[1] # The second argument is the prefix to use for the # output files. prefix = sys.argv[2] to_matlab(filename,prefix) auto-07p-0.9.1+dfsg/07p/demos/python/plotter.auto000077500000000000000000000067021206161447600214540ustar00rootroot00000000000000# This script is a demonstration of some of the plotting # capabilities of AUTO 2000 # We create a sub directory ! rm -rf test ! mkdir test # and go into it cd test # We clean it up (in case it happen to exist previously) ! rm -f * # and copy the 'ab' into the current directory. This command # also loads the c.ab and ab.c files into the AUTO command # line user interface. dm("ab") # We now run the demo using the constants file 'c.ab.1' run(c="ab.1") # and save the resulting bifurcation diagram in the file 'b.ab', # the resulting solution in the file 's.ab', and the resulting # diagnostic file in 'd.ab'. sv("ab") # We run AUTO again, this time using the 'c.ab.2' constants file # and the previously saved solution file 's.ab' as starting data. run(c="ab.2",s="ab") # This command plots the bifurcation diagram and solution contained # in the files 'b.ab' and 's.ab' plot1=pl("ab") # This command plots the bifurcation diagram and solution contained # in the files 'fort.7' and 'fort.8' plot2=pl() # Wait for the user to hit a key before proceeding. wait() # We change the background color of plot1 to black and the # foreground color to white. 'color_list" is the list of # colors used for the actual plot. plot1.config(bg="black",fg="white",color_list="white") # We plot solution with label number 2 instead of the bifurcation diagram # in plot2. plot2.config(type="solution",label=[2]) wait() # These two commands put explicit bounds on the plotting # bounds, instead of having them computed automatically # from the data. plot1.config(miny=1.5,maxy=3.4) plot2.config(minx=0.8,maxx=0.9) wait() # This command plots column 0 vs column 3 in plot1 # instead of the default column 0 vs column 1 plot1.config(bifurcation_x=(0,),bifurcation_y=(3,)) # This command plots the value of the independent # variable 'time' vs column 0 in plot2 plot2.config(solution_x=("time",),solution_y=(0,)) wait() # This command changes the row and column labels plot1.config(xlabel="Randy is cool",ylabel="Sebius is cool") plot2.config(index=[1]) wait() # This command goes back to the default plot of column 0 vs column 1 in plot1 plot1.config(bifurcation_x=(0,),bifurcation_y=(1,)) # This command creates two plots in plot2. # The first is the independent variable 't' vs column 0 and the second # is the independent variable 't' vs column 1 plot2.config(solution_x=("time","time"),solution_y=(0,1)) wait() # This command places a marker at all the places where # the independent variable 'time' have value 0.1. plot2.config(mark_t=0.1) wait() # We now try to use the three dimensional plotting capabilities # AUTO2000. NOTE: These commands will only work if # three dimensional plotting has been enabled, and this # is NOT done by default. ##plot1=p3("ab") ##plot2=p3() ##wait() ##plot1.config() ##plot2.config(type="solution",label=[6]) ##wait() # This command is different from the two dimensional case in that # Z and color components can also be chosen. ##plot1.config(bifurcation_x=[0],bifurcation_y=[1],bifurcation_z=[2],bifurcation_color=[3]) ##plot2.config(solution_x=["t"],solution_y=[0]) ##wait() ##plot2.config(index=[4]) ##wait() # Similarity to the previous command, these commands differ # from the two dimensional case in that # Z and color components can also be chosen. ##plot1.config(bifurcation_x=(0,2),bifurcation_y=(1,3),bifurcation_z=(3,3),bifurcation_color=(0,0)) ##plot2.config(solution_x=("t","t"),solution_y=(0,1),solution_z=(0,1),solution_color=(0,1)) ##wait() ##plot2.config(mark_t=0.1) ##wait() auto-07p-0.9.1+dfsg/07p/demos/python/tutorial.auto000077500000000000000000000045441206161447600216300ustar00rootroot00000000000000# This script shows how the tutorial from the AUTO07P manual # can be implemented in the new command line user interface. # In fact it shows two ways. The first uses the standard # ab.auto file which comes with the tutorial, and the second # uses only the problem definition file 'ab.c' # and the constant files 'c.ab.1', 'c.ab.2', and 'c.ab.3' # The next two commands are sent to the shell ! rm -rf test ! mkdir test # Go into the newly created test directory cd test # Copy the ab demo into the current directory. This command # also loads in the problem definition file ab.c and the # constants file c.ab. Basically, the 'dm' command is # the concatenation of the 'copyDemo' command and the # 'ld' command dm("ab") # The next two commands call other scripts auto('ab.auto') auto('clean.auto') # Now, we show how the tutorial can be run without # using scripts. See the manual for specifics. # Load the files ab.c, c.ab, s.ab, and h.ab into the AUTO # command interpretor. If either the s.ab or the h.ab file # does not exist it is silently ignored, since they are not # necessarily required to run AUTO. NOTE: in this case this # command is not needed since its functionality is included # in the 'dm' command. It is put here for clarity. ld("ab") # Run AUTO 2000 using the constants file c.ab.1 rn(c="ab.1") # Save the bifurcation diagram in b.ab, the solution in s.ab, # and the diagnostics in d.ab sv("ab") # Run AUTO 2000 using the constants file c.ab.2 and # the file s.ab as starting data. rn(c="ab.2",solution="ab",IRS=2) # Append the current solution onto the files b.ab, s.ab, and d.ab # as appropriate. ap("ab") # Run AUTO 2000 using the constants file c.ab.3 and # the file s.ab as starting data. rn(constants="ab.3",s="ab",IRS=7) # Save the bifurcation diagram in b.2p, the solution in s.2p, # and the diagnostics in d.2p sv("2p") # Run AUTO 2000 using the constants file c.ab.3 and # the file s.ab as starting data, reversing the direction. # Even though s="ab" # isn't specified, the command uses the last solution # file specified as the default. rn(c="ab.3",IRS=7,DS='-') # Append the current solution onto the files b.ab, s.ab, and d.ab # as appropriate. ap("2p") # Run AUTO 2000 using the constants file c.ab.3 and # the file s.ab as starting data. rn(constants="ab.3",IRS=7) # Append the current solution onto the files b.ab, s.ab, and d.ab # as appropriate. ap("2p") auto-07p-0.9.1+dfsg/07p/demos/python/userScript.py000066400000000000000000000012711206161447600215770ustar00rootroot00000000000000# This is an example script for the AUTO07p command line user # interface. See the "Command Line User Interface" chapter in the # manual for more details. from auto import * def myRun(demoname): demo(demoname) r = run(demoname) branchpoints = r("BP") for solution in branchpoints: bp = load(solution, ISW=-1, NTST=50) # Compute forwards print "Solution label", bp["LAB"], "forwards" fw = run(bp) # Compute backwards print "Solution label", bp["LAB"], "backwards" bw = run(bp,DS='-') both = fw + bw merged = merge(both) r = r + merged r=relabel(r) save(r, demoname) plot(r) wait() auto-07p-0.9.1+dfsg/07p/demos/python/userScript.xauto000077500000000000000000000010531206161447600223100ustar00rootroot00000000000000from auto import * def myRun(demoname): demo(demoname) r = run(demoname) branchpoints = r("BP") for solution in branchpoints: bp = load(solution, ISW=-1, NTST=50) # Compute forwards print "Solution label", bp["LAB"], "forwards" fw = run(bp) # Compute backwards print "Solution label", bp["LAB"], "backwards" bw = run(bp,DS='-') both = fw + bw merged = merge(both) r = r + merged r=relabel(r) save(r, demoname) plot(r) wait() myRun('bvp') auto-07p-0.9.1+dfsg/07p/demos/r3b/000077500000000000000000000000001206161447600162265ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/r3b/H1a.auto000066400000000000000000000016151206161447600175340ustar00rootroot00000000000000 #============================================ # AUTO Demo r3b: Computing unstable manifolds #============================================ import compute_lps,ext,data,os if not os.path.exists('s.H1'): auto('r3b.auto') print "\n***Add the zero adjoint variable***" sext = ext.get('H1',7,-1e-3) print "\n*** Compute the Floquet eigenfunction***" flq = run(sext,c='flq',e='flq',sv='flq') print "\n*** Extract data for the selected orbit from s.flq***" startman = data.get(flq('UZ1')) print "\n*** Time integration using continuation***" startH1a = run(startman,e='man',c='man.H1a.0',sv='startH1a') print "\n*** Compute part of the unstable manifold***" startUZs = startH1a('UZ') startUZ = startUZs[0] for s in startUZs: # find minimum if abs(s.PAR(21)) < abs(startUZ.PAR(21)): startUZ = s H1a = run(startUZ,c='man.H1a.1') save(rl(H1a),'H1a') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/r3b/H1aX.auto000066400000000000000000000005521206161447600176630ustar00rootroot00000000000000 #============================================ # AUTO Demo r3b: Computing unstable manifolds #============================================ auto('H1a.auto') print "\n*** Locate a connecting orbit on the unstable manifold***" startH1a = loadbd('startH1a') hetH1a = run(startH1a,c='man.H1a.2') save(rl(hetH1a),'hetH1a') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/r3b/H1b.auto000066400000000000000000000013561206161447600175370ustar00rootroot00000000000000 #============================================ # AUTO Demo r3b: Computing unstable manifolds #============================================ import compute_lps,ext,data,os if not os.path.exists('s.H1'): auto('r3b.auto') print "\n***Add the zero adjoint variable***" sext = ext.get('H1',3,-1e-5) print "\n*** Compute the Floquet eigenfunction***" flq = run(sext,e='flq',c='flq',sv='flq') print "\n*** Extract data for the selected orbit from s.flq***" startman = data.get(flq('UZ1')) print "\n*** Time integration using continuation***" startH1b = run(startman,e='man',c='man.H1b.0',sv='startH1b') print "\n*** Compute the unstable manifold***" H1b = run(startH1b,c='man.H1b.1') save(rl(H1b),'H1b') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/r3b/H1bX.auto000066400000000000000000000007731206161447600176710ustar00rootroot00000000000000 #============================================ # AUTO Demo r3b: Computing unstable manifolds #============================================ auto('H1b.auto') print "\n*** Locate a connecting orbit on the unstable manifold ***" startH1b = loadbd('startH1b') het1H1b = run(startH1b,c='man.H1b.2') save(rl(het1H1b),'het1H1b') print "\n*** Locate another connecting orbit on the unstable manifold ***" het2H1b = run(startH1b,c='man.H1b.3') save(rl(het2H1b),'het2H1b') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/r3b/H1c.auto000066400000000000000000000013671206161447600175420ustar00rootroot00000000000000 #============================================ # AUTO Demo r3b: Computing unstable manifolds #============================================ import compute_lps,ext,data,os if not os.path.exists('s.H1'): auto('r3b.auto') print "\n***Add the zero adjoint variable***" sext = ext.get('H1',68,-1e-2) print "\n*** Compute the Floquet eigenfunction***" flq = run(sext,c='flq',e='flq',sv='flq') print "\n*** Extract data for the selected orbit from s.flq***" startman = data.get(flq('UZ1')) print "\n*** Time integration using continuation***" startH1c = run(startman,e='man',c='man.H1c.0',sv='startH1c') print "\n*** Compute part of the unstable manifold***" H1c = run(startH1c,c='man.H1c.1') save(rl(H1c),'H1c') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/r3b/L1a.auto000066400000000000000000000013711206161447600175370ustar00rootroot00000000000000 #============================================ # AUTO Demo r3b: Computing unstable manifolds #============================================ import compute_lps,ext,data,os if not os.path.exists('s.H1'): auto('r3b.auto') print "\n***Add the zero adjoint variable***" sext = ext.get('L1',label=3,step=-1e-5) print "\n*** Compute the Floquet eigenfunction***" flq = run(sext,c='flq',e='flq',sv='flq') print "\n*** Extract data for the selected orbit from s.flq***" startman = data.get(flq('UZ1')) print "\n*** Time integration using continuation***" startL1a = run(startman,e='man',c='man.L1a.0',sv='startL1a') print "\n*** Compute the unstable manifold***" L1a = run(startL1a,c='man.L1a.1') save(rl(L1a),'L1a') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/r3b/L1aX.auto000066400000000000000000000005351206161447600176700ustar00rootroot00000000000000 #============================================ # AUTO Demo r3b: Computing unstable manifolds #============================================ auto('L1a.auto') print "\n*** 'Wind up' an orbit on the unstable manifold***" startL1a = loadbd('startL1a') L1a2 = run(startL1a,c='man.L1a.2') save(rl(L1a2),'L1a2') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/r3b/README000066400000000000000000000432001206161447600171050ustar00rootroot00000000000000 Computation of Periodic Solutions of the CR3BP ---------------------------------------------- Running the Python script r3b.auto will generate the families of periodic solutions L1, H1, and V1, for the case of the mass-ratio mu=0.063 : auto r3b.auto | auto('r3b.auto') where as in the following examples, the left hand side command can be used at the shell prompt, and the right hand side command at the Python CLUI prompt. Note that the commands starting with @ work in both interfaces, but cannot be used in the expert scripts with a .py suffix. For example, the data generated for the Lyapunov family L1 will consist of b.L1 - the bifurcation diagram data s.L1 - a selection of periodic orbits d.L1 - diagnostic data, including Floquet multipliers The necessary labeled starting solutions are first computed and stored in the file s.start. Each starting solution is an equilibrium ("libration point"), and its data also contains the period of a bifurcating family of periodic orbits. The Table below shows the label of each of the starting solutions in s.start, indicating which libration point it corresponds to, and which family of periodic orbits it will generate: Label Libration Pt. Family 1 L1 L1 2 L1 V1 3 L2 L2 4 L2 V2 5 L3 L3 6 L3 V3 7 L4 V4 8 L5 V5 Note (by looking at the constant-files c.r3b.*) that actually only the starting solutions labeled 1 and 2 are used in the current calculations, as executed by the Python script. Starting solution for other values of mu can be generated using the script compute_lps.py, for instance by running autox compute_lps.py 0.05 | import compute_lps | compute_lps.compute(0.05) After that, it is necessary to run r3b.auto again to regenerate the families. The demos L1a, H1a, H1b, H1c, V1a, V1b can be run subsequent to the r3b demo to compute 2D unstable manifolds of selected periodic orbits that belong to the L1, V1, and H1 families. Computing Unstable Manifolds of Periodic Orbits in the CR3BP ------------------------------------------------------------ Instructions for computing 2-d unstable manifolds of periodic orbits in the Circular Restricted 3-Body Problem (CR3BP) using AUTO-07p. The instructions below are for the Halo family L1 in AUTO demo L1a. =================================================================== Instructions for computing 2-d unstable manifolds of other periodic orbits in the CR3BP are similar (Demos H1a, H1b, H1c, V1a, V1b), and are given after these instructions. Select a labeled solution which has exactly one Floquet multiplier with absolute value greater than 1. (Floquet multipliers can be found in the file d.L1 generated by demo r3b.) Enter the label of the periodic solution in the file L1a.auto at label= in L1a.auto. Also enter the size of the initial step into the direction of the unstable manifold there at step= Note that representative values of these three quantities have already been entered there. Now run the Python script L1a.auto: auto L1a.auto | auto('L1a.auto') This will run r3b.auto as above if this was not already done. Through various computational steps the execution of the Python script will result in AUTO files b.L1a, s.L1a, and d.L1a, where the orbits in s.L1a constitute the manifold, which can be viewed with the graphics program plaut04 or r3bplaut04 : @pl L1a or @r3b L1a | plot3('L1a',r3b=True) The various steps executed by the Python commands in the script file L1a.auto are explained below, however, showing instead the equivalent Linux versions of these AUTO commands. The Python script L1aX.auto in L1a does the same as L1a.auto, but with additional calculations that generate additional AUTO data files, e.g., to detect heteroclinic connections. Some of these additional runs take quite a bit of CPU time and generate big data files. ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- Detailed AUTO shell and Python commands for the L1a demo. --------------------------------------------------------- mkdir r3b | mkdir r3b cd r3b | cd r3b @dm r3b | demo('r3b') Copy the r3b demo to the local directory r3b. auto r3b.auto | auto('r3b.auto') Generate the CR3BP AUTO data files. autox ext.py L1 3 -1e-5 | import ext | sext=ext.get('L1',3,-1e-5) Convert the data for a selected labeled solution from s.L1, adding a zero adjoint variable. The solution label is 3, and the initial step size into the unstable manifold is -1e-5. The ext.py script looks for the relevant Floquet multiplier in d.L1. The converted solution will be written in the file s.ext or stored in sext. @r flq ext | flq=run(sext,c='flq',e='flq') Compute the Floquet eigenfunction. Free scalar variables in this run (see c.flq) are: PAR(1) = unfolding parameter PAR(4) = multiplier PAR(5) = norm of eigenfunction If this run is successful then PAR(5) should become nonzero, in fact, PAR(5) should reach the value 1. If the run is not successful then see REMARK 1 below. @sv flq | save(flq,'flq') Save the results in b.flq, s.flq, and d.flq . autox data.py | import data | startman=data.get(flq('UZ1')) Extract data for a selected orbit from s.flq. These data are for both the orbit and its Floquet eigenfunction. It is assumed that s.flq contains only one labeled solution, with label 2. If you did the "optional" computation (see Remark 2) then you may need to change the label of the restart solution: autox data.py flq n | startman=data.get(flq(n)) where n is the different label number. The extracted data may be saved in a file called s.startman, which contains a new starting solution that can be used as a base for the manifold computations. The orbit coordinates are at "time zero", and the Floquet eigenfunction are saved at PAR(25:30) and PAR(31:36), respectively. @R man L1a.0 startman | startL1a = run(startman,e='man',c='man.L1a.0') This step does a time integration using continuation in the "period" T, i.e., PAR(11), which here is the "integration time". The labeled solutions from this run all correspond to the same orbit, except that the orbit gets longer and longer. The starting point of the orbit is the point on the periodic orbit at "time zero" plus a small distance (epsilon) into the direction of the unstable manifold. In AUTO, epsilon corresponds to PAR(6). This parameter epsilon is initialized in the file flq.dat . (The sign of epsilon is significant!) The parameters in this run (see c.man.L1a.0) are: PAR(3) = energy PAR(11) = integration time PAR(12) = length of the orbit PAR(21) = x-coord at end point PAR(22) = y-coord at end point PAR(23) = z-coord at end point @sv startL1a | save(startL1a,'startL1a') Save the results in b.startL1a, s.startL1a, and d.startL1a . (*) @R man L1a.1 startL1a | L1a=run(startL1a,c='man.L1a.1') Look at c.man.L1a.1 to see from which label in s.startL1a this run starts. In this run the y-coordinate of the end point (PAR(22)) is kept fixed, while the "period" (PAR(11)), i.e., the total integration time, is allowed to vary, as is the value of epsilon, i.e., PAR(6). Note that if PAR(6) becomes "large" then the manifold may no longer be accurate. The free parameters in this run are: PAR(3) = energy PAR(6) = "starting distance" PAR(11) = integration time PAR(12) = length of the orbit PAR(21) = x-coord at end point PAR(23) = z-coord at end point @sv L1a | save(L1a,'L1a') Save the results in b.L1a, s.L1a, and d.L1a . @R man L1a.2 startL1a | L1a2=run(startL1a,c='man.L1a.2') Another run, starting from a longer initial orbit, which computes part of the manifold. The free parameters are the same as in the preceding run. This computation results in the orbit winding around the selected periodic L1 orbit. @sv L1a2 | save(L1a2,'L1a2') Save the results in b.L1a2, s.L1a2, and d.L1a2 . ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- Use auto clean.auto | auto('clean.auto') to remove all generated files. ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- ----------------------------REMARK 1---------------------------------------- ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- If the run to compute the Floquet eigenfunction is not successful, i.e., if PAR(5) does not become nonzero, then try to compute the Floquet eigenfunction in more stages, as follows: Give the label of the selected solution, and a value that is smaller than the associated Floquet multiplier (magnitude greater than 1) . autox ext.py L1 3 -1e-5 2000 | import ext | sext=ext.get('L1',3,-1e-5,2000) @R flq 2 ext | flq=run(sext,c='flq.2',e='flq') Continue the approximate multiplier; If all goes well then the actual multiplier will be detected as a branch point (BP) with Label 2. Free scalar variables in this run are: PAR(1) = unfolding parameter PAR(4) = multiplier PAR(5) = norm of eigenfunction @sv flq | save(flq,'flq') @R flq 3 | flq=run(flq,e='flq',c='flq.3') Switch branches at the BP, thereby generating the nonzero Floquet eigenfunction. The free scalar variables are : PAR(1) = unfolding parameter PAR(4) = multiplier PAR(5) = norm of eigenfunction If all goes well then PAR(5) should become nonzero, and the corresponding solution should have Label 4. @sv flq | save(flq,'flq') ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- ----------------------------REMARK 2---------------------------------------- ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- One can also follow the orbit, its multiplier and eigenfunction, as follows: @R flq 4 | flq=run(flq,e='flq',c='flq.3') Free scalar variables in this run are PAR(1) = unfolding parameter PAR(4) = multiplier PAR(11) = period The norm, PAR(5), of the eigenfunction is fixed in this run. @sv flq | save(flq,'flq') ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- The instructions below are for the Halo family H1 in AUTO demo H1a. =================================================================== Follow the instructions for L1a above, where you replace L by H throughout, for instance you can run everything in one go using auto H1a.auto | auto('H1a.auto') or with the extra calculations: auto H1aX.auto | auto('H1aX.auto') The Floquet eigenfunction is now computed from label 7 with step size -1e-3. The detailed commands are likewise, except for the manifold calculations following (*) (at @sv startL1a): @R man H1a.1 startH1a | H1a=run(startH1a,e='man',c='man.H1a.1') Look at c.man.H1a.1 to see from which label in s.startH1a this run starts. In this run the x-coordinate of the end point (PAR(21)) is kept fixed, while the "period" (PAR(11)), i.e., the total integration time, is allowed to vary, as is the value of epsilon, i.e., PAR(6). Note that if PAR(6) becomes "large" then the manifold may no longer be accurate. The free parameters in this run are: PAR(3) = energy PAR(6) = "starting distance" PAR(11) = integration time PAR(12) = length of the orbit PAR(22) = y-coord at end point PAR(23) = z-coord at end point @sv H1a | save(H1a,'H1a') Save the results in b.H1a, s.H1a, and d.H1a . @R man H1a.2 startH1a | hetH1a=run(startH1a,e='man',c='man.H1a.2') Another run, starting from a longer initial orbit, which computes part of the manifold. The free parameters are the same as in the preceding run. This computation results in the detection of a connecting orbit. @sv hetH1a | save(hetH1a,'hetH1a') Save the results in b.hetH1a, s.hetH1a, and d.hetH1a . ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- The instructions below are for the Halo family H1 in AUTO demo H1b. =================================================================== Follow the instructions for L1a above, where you replace L by H, and a by b throughout; for instance you can run everything in one go using auto H1b.auto | auto('H1b.auto') or with the extra calculations: auto H1bX.auto | auto('H1bX.auto') The Floquet eigenfunction is now computed from label 3 with step size -1e-5. The detailed commands follow the ones for H1a above, except that there is one extra run: @R man H1b.3 startH1b | het2H1b=run(startH1b,e='man',c='man.H1b.3') Another run, starting from a longer initial orbit, which computes part of the manifold. The free parameters are the same as in the preceding run. This computation results in the detection of another connecting orbit. @sv het2H1b | save(het2H1b,'het2H1b') Save the results in b.het2H1b, s.het2H1b, and d.het2H1b . ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- The instructions below are for the Halo family H1 in AUTO demo H1c. =================================================================== Follow the instructions for L1a above, where you replace L by H, and a by c throughout; for instance you can run everything in one go using auto H1c.auto | auto('H1c.auto') The Floquet eigenfunction is now computed from label 68 with step size -1e-2. The detailed commands follow the ones for H1a above, except that the last run is left out, and so the H1cX.auto script is not necessary. ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- The instructions below are for the Halo family V1 in AUTO demo V1a. =================================================================== Follow the instructions for L1a above, where you replace L by V throughout, for instance you can run everything in one go using auto V1a.auto | auto('V1a.auto') The Floquet eigenfunction is now computed from label 8 with step size -1e-5. The detailed commands are likewise, except for the manifold calculations following (*) (at @sv startL1a): @R man V1a.1 startV1a | V1a=run(startV1a,e='man',c='man.V1a.1') Look at c.man.V1a.1 to see from which label in s.startV1a this run starts. In this run the z-coordinate of the end point (PAR(23)) is kept fixed, while the "period" (PAR(11)), i.e., the total integration time, is allowed to vary, as is the value of epsilon, i.e., PAR(6). Note that if PAR(6) becomes "large" then the manifold may no longer be accurate. The free parameters in this run are: PAR(3) = energy PAR(6) = "starting distance" PAR(11) = integration time PAR(12) = length of the orbit PAR(21) = x-coord at end point PAR(22) = y-coord at end point @sv V1a | save(V1a,'V1a') Save the results in b.V1a, s.V1a, and d.V1a . ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- The instructions below are for the Halo family V1 in AUTO demo V1b. =================================================================== Follow the instructions for L1a above, where you replace L by V, and a by b throughout; for instance you can run everything in one go using auto V1b.auto | auto('V1b.auto') or with the extra calculations: auto V1bX.auto | auto('V1bX.auto') The Floquet eigenfunction is now computed from label 12 with step size 1e-5. The detailed commands are likewise, except for the manifold calculations following (*) (at @sv startL1a): @R man V1b.1 startV1b | V1b=run(startV1b,e='man',c='man.V1b.1') Look at c.man.V1b.1 to see from which label in s.startV1b this run starts. In this run the x-coordinate of the end point (PAR(21)) is kept fixed, while the "period" (PAR(11)), i.e., the total integration time, is allowed to vary, as is the value of epsilon, i.e., PAR(6). Note that if PAR(6) becomes "large" then the manifold may no longer be accurate. The free parameters in this run are: PAR(3) = energy PAR(6) = "starting distance" PAR(11) = integration time PAR(12) = length of the orbit PAR(22) = y-coord at end point PAR(23) = z-coord at end point @sv V1b | save(V1b,'V1b') Save the results in b.V1b, s.V1b, and d.V1b . @R man V1b.2 startV1b | hetV1b=run(startV1b,e='man',c='man.V1b.2') Another run, starting from a longer initial orbit, which computes part of the manifold. The free parameters are the same as in the preceding run. This computation results in the detection of a connecting orbit. @sv hetV1b | save(hetV1b,'hetV1b') Save the results in b.hetV1b, s.hetV1b, and d.hetV1b . ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- auto-07p-0.9.1+dfsg/07p/demos/r3b/V1a.auto000066400000000000000000000013561206161447600175540ustar00rootroot00000000000000 #============================================ # AUTO Demo r3b: Computing unstable manifolds #============================================ import compute_lps,ext,data,os if not os.path.exists('s.V1'): auto('r3b.auto') print "\n***Add the zero adjoint variable***" sext = ext.get('V1',8,-1e-5) print "\n*** Compute the Floquet eigenfunction***" flq = run(sext,e='flq',c='flq',sv='flq') print "\n*** Extract data for the selected orbit from s.flq***" startman = data.get(flq('UZ1')) print "\n*** Time integration using continuation***" startV1a = run(startman,e='man',c='man.V1a.0',sv='startV1a') print "\n*** Compute the unstable manifold***" V1a = run(startV1a,c='man.V1a.1') save(rl(V1a),'V1a') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/r3b/V1b.auto000066400000000000000000000013561206161447600175550ustar00rootroot00000000000000 #============================================ # AUTO Demo r3b: Computing unstable manifolds #============================================ import compute_lps,ext,data,os if not os.path.exists('s.V1'): auto('r3b.auto') print "\n***Add the zero adjoint variable***" sext = ext.get('V1',12,1e-5) print "\n*** Compute the Floquet eigenfunction***" flq = run(sext,c='flq',e='flq',sv='flq') print "\n*** Extract data for the selected orbit from s.flq***" startman = data.get(flq('UZ1')) print "\n*** Time integration using continuation***" startV1b = run(startman,e='man',c='man.V1b.0',sv='startV1b') print "\n*** Compute the unstable manifold***" V1b = run(startV1b,c='man.V1b.1') save(rl(V1b),'V1b') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/r3b/V1bX.auto000066400000000000000000000005521206161447600177020ustar00rootroot00000000000000 #============================================ # AUTO Demo r3b: Computing unstable manifolds #============================================ auto('V1b.auto') print "\n*** Locate a connecting orbit on the unstable manifold***" startV1b = loadbd('startV1b') hetV1b = run(startV1b,c='man.V1b.2') save(rl(hetV1b),'hetV1b') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/r3b/c.flq000066400000000000000000000005541206161447600171600ustar00rootroot00000000000000NDIM= 12, IPS = 4, IRS = 1, ILP = 0 ICP = [1, 4, 5] NTST= 50, NCOL= 4, IAD = 3, ISP = 2, ISW =-1, IPLT= 0, NBC=12, NINT= 2 NMX= 30, NPR= 500, MXBF= 5, IID = 3, ITMX= 9, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS = 1e-05 DS = 0.01, DSMIN= 1e-05, DSMAX= 100.0, IADS= 1 NPAR = 16, THL = {11: 0.0}, THU = {} UZSTOP = {5: 1.0} auto-07p-0.9.1+dfsg/07p/demos/r3b/c.flq.2000066400000000000000000000005441206161447600173170ustar00rootroot00000000000000NDIM= 12, IPS = 4, IRS = 1, ILP = 0 ICP = [1, 4, 5] NTST= 50, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC=12, NINT= 2 NMX= 30, NPR= 500, MXBF= 5, IID = 3, ITMX= 9, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS = 1e-05 DS = 0.01, DSMIN= 1e-05, DSMAX= 100.0, IADS= 1 NPAR = 16, THL = {11: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/r3b/c.flq.3000066400000000000000000000005541206161447600173210ustar00rootroot00000000000000NDIM= 12, IPS = 4, IRS = 2, ILP = 0 ICP = [1, 4, 5] NTST= 50, NCOL= 4, IAD = 3, ISP = 2, ISW =-1, IPLT= 0, NBC=12, NINT= 2 NMX= 30, NPR= 500, MXBF= 5, IID = 3, ITMX= 9, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS = 1e-05 DS = 0.01, DSMIN= 1e-05, DSMAX= 100.0, IADS= 1 NPAR = 16, THL = {11: 0.0}, THU = {} UZSTOP = {5: 1.0} auto-07p-0.9.1+dfsg/07p/demos/r3b/c.flq.4000066400000000000000000000005451206161447600173220ustar00rootroot00000000000000NDIM= 12, IPS = 4, IRS = 4, ILP = 0 ICP = [4, 1, 11] NTST= 50, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC=12, NINT= 2 NMX= 100, NPR= 1, MXBF= 5, IID = 2, ITMX= 9, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS = 1e-05 DS = -0.5, DSMIN= 1e-05, DSMAX= 50.0, IADS= 1 NPAR = 16, THL = {11: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/r3b/c.man.H1a.0000066400000000000000000000006451206161447600177200ustar00rootroot00000000000000NDIM= 6, IPS = 4, IRS = 1, ILP = 0 ICP = [11, 12, 3, 21, 22, 23] NTST= 200, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC=10, NINT= 1 NMX= 400, NPR= 900, MXBF= 5, IID = 3, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.01, DSMIN= 1e-05, DSMAX= 5.0, IADS= 1 NPAR = 16, THL = {21: 0.0, 22: 0.0, 23: 0.0}, THU = {} UZR = {21: [-0.5, -0.25, 0.0, 0.25, 0.5]} auto-07p-0.9.1+dfsg/07p/demos/r3b/c.man.H1a.1000066400000000000000000000006031206161447600177130ustar00rootroot00000000000000NDIM= 6, IPS = 4, IRS = 4, ILP = 0 ICP = [6, 11, 12, 3, 22, 23] NTST= 200, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC=10, NINT= 1 NMX= 90, NPR= 1, MXBF= 5, IID = 3, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = -0.1, DSMIN= 1e-05, DSMAX= 0.1, IADS= 1 NPAR = 16, THL = {21: 0.0, 22: 0.0, 23: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/r3b/c.man.H1a.2000066400000000000000000000006031206161447600177140ustar00rootroot00000000000000NDIM= 6, IPS = 4, IRS = 6, ILP = 0 ICP = [6, 11, 12, 3, 22, 23] NTST= 500, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC=10, NINT= 1 NMX= 2000, NPR= 50, MXBF= 5, IID = 3, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.1, DSMIN= 1e-05, DSMAX= 0.5, IADS= 1 NPAR = 16, THL = {21: 0.0, 22: 0.0, 23: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/r3b/c.man.H1b.0000066400000000000000000000006451206161447600177210ustar00rootroot00000000000000NDIM= 6, IPS = 4, IRS = 1, ILP = 0 ICP = [11, 12, 3, 21, 22, 23] NTST= 200, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC=10, NINT= 1 NMX= 400, NPR= 900, MXBF= 5, IID = 3, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.01, DSMIN= 1e-05, DSMAX= 5.0, IADS= 1 NPAR = 16, THL = {21: 0.0, 22: 0.0, 23: 0.0}, THU = {} UZR = {21: [-0.5, -0.25, 0.0, 0.25, 0.5]} auto-07p-0.9.1+dfsg/07p/demos/r3b/c.man.H1b.1000066400000000000000000000006231206161447600177160ustar00rootroot00000000000000NDIM= 6, IPS = 4, IRS = 4, ILP = 0 ICP = [6, 11, 12, 3, 22, 23] NTST= 200, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC=10, NINT= 1 NMX= 90, NPR= 1, MXBF= 5, IID = 3, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = -0.1, DSMIN= 1e-05, DSMAX= 0.1, IADS= 1 NPAR = 16, THL = {21: 0.0, 22: 0.0, 23: 0.0}, THU = {} UZSTOP = {6: [0.1, -0.1]} auto-07p-0.9.1+dfsg/07p/demos/r3b/c.man.H1b.2000066400000000000000000000006031206161447600177150ustar00rootroot00000000000000NDIM= 6, IPS = 4, IRS = 16, ILP = 0 ICP = [6, 11, 12, 3, 22, 23] NTST= 500, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC=10, NINT= 1 NMX= 4000, NPR= 500, MXBF= 5, IID = 3, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.1, DSMIN= 1e-05, DSMAX= 0.5, IADS= 1 NPAR = 16, THL = {21: 0.0, 22: 0.0, 23: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/r3b/c.man.H1b.3000066400000000000000000000006031206161447600177160ustar00rootroot00000000000000NDIM= 6, IPS = 4, IRS = 15, ILP = 0 ICP = [6, 11, 12, 3, 22, 23] NTST= 500, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC=10, NINT= 1 NMX= 1000, NPR= 500, MXBF= 5, IID = 3, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.1, DSMIN= 1e-05, DSMAX= 0.5, IADS= 1 NPAR = 16, THL = {21: 0.0, 22: 0.0, 23: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/r3b/c.man.H1c.0000066400000000000000000000006041206161447600177150ustar00rootroot00000000000000NDIM= 6, IPS = 4, IRS = 1, ILP = 0 ICP = [11, 12, 3, 21, 22, 23] NTST= 200, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC=10, NINT= 1 NMX= 700, NPR= 100, MXBF= 5, IID = 3, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.1, DSMIN= 1e-05, DSMAX= 5.0, IADS= 1 NPAR = 16, THL = {21: 0.0, 22: 0.0, 23: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/r3b/c.man.H1c.1000066400000000000000000000006031206161447600177150ustar00rootroot00000000000000NDIM= 6, IPS = 4, IRS = 7, ILP = 0 ICP = [6, 11, 12, 3, 22, 23] NTST= 200, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC=10, NINT= 1 NMX= 500, NPR= 5, MXBF= 5, IID = 3, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = -0.1, DSMIN= 1e-05, DSMAX= 0.1, IADS= 1 NPAR = 16, THL = {21: 0.0, 22: 0.0, 23: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/r3b/c.man.H1c.2000066400000000000000000000006031206161447600177160ustar00rootroot00000000000000NDIM= 6, IPS = 4, IRS = 6, ILP = 0 ICP = [6, 11, 12, 3, 22, 23] NTST= 500, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC=10, NINT= 1 NMX= 2000, NPR= 50, MXBF= 5, IID = 3, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.1, DSMIN= 1e-05, DSMAX= 0.5, IADS= 1 NPAR = 16, THL = {21: 0.0, 22: 0.0, 23: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/r3b/c.man.L1a.0000066400000000000000000000006641206161447600177250ustar00rootroot00000000000000NDIM= 6, IPS = 4, IRS = 1, ILP = 0 ICP = [11, 12, 3, 21, 22, 23] NTST= 200, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC=10, NINT= 1 NMX= 700, NPR= 700, MXBF= 5, IID = 3, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.1, DSMIN= 1e-05, DSMAX= 1.0, IADS= 1 NPAR = 16, THL = {21: 0.0, 22: 0.0, 23: 0.0}, THU = {} UZR = {22: 0.0, 21: [-0.25, 0.25]} UZSTOP = {21: 0.75} auto-07p-0.9.1+dfsg/07p/demos/r3b/c.man.L1a.1000066400000000000000000000006031206161447600177170ustar00rootroot00000000000000NDIM= 6, IPS = 4, IRS = 8, ILP = 0 ICP = [6, 11, 12, 3, 21, 23] NTST= 200, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC=10, NINT= 1 NMX= 53, NPR= 1, MXBF= 5, IID = 3, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.05, DSMIN= 1e-05, DSMAX= 0.05, IADS= 1 NPAR = 16, THL = {21: 0.0, 22: 0.0, 23: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/r3b/c.man.L1a.2000066400000000000000000000006031206161447600177200ustar00rootroot00000000000000NDIM= 6, IPS = 4, IRS = 10, ILP = 0 ICP = [6, 11, 12, 3, 21, 23] NTST= 200, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC=10, NINT= 1 NMX= 500, NPR= 5, MXBF= 5, IID = 3, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.05, DSMIN= 1e-05, DSMAX= 0.05, IADS= 1 NPAR = 16, THL = {21: 0.0, 22: 0.0, 23: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/r3b/c.man.V1a.0000066400000000000000000000006131206161447600177310ustar00rootroot00000000000000NDIM= 6, IPS = 4, IRS = 1, ILP = 0 ICP = [11, 12, 3, 21, 22, 23] NTST= 200, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC=10, NINT= 1 NMX= 800, NPR= 800, MXBF= 5, IID = 3, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.1, DSMIN= 1e-05, DSMAX= 1.0, IADS= 1 NPAR = 16, THL = {21: 0.0, 22: 0.0, 23: 0.0}, THU = {} UZR = {23: 0.0} auto-07p-0.9.1+dfsg/07p/demos/r3b/c.man.V1a.1000066400000000000000000000006031206161447600177310ustar00rootroot00000000000000NDIM= 6, IPS = 4, IRS = 13, ILP = 0 ICP = [6, 11, 12, 3, 21, 22] NTST= 200, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC=10, NINT= 1 NMX= 500, NPR= 5, MXBF= 5, IID = 3, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = -0.5, DSMIN= 1e-05, DSMAX= 0.5, IADS= 1 NPAR = 16, THL = {21: 0.0, 22: 0.0, 23: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/r3b/c.man.V1b.0000066400000000000000000000006131206161447600177320ustar00rootroot00000000000000NDIM= 6, IPS = 4, IRS = 1, ILP = 0 ICP = [11, 12, 3, 21, 22, 23] NTST= 200, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC=10, NINT= 1 NMX= 800, NPR= 800, MXBF= 5, IID = 3, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = 0.1, DSMIN= 1e-05, DSMAX= 1.0, IADS= 1 NPAR = 16, THL = {21: 0.0, 22: 0.0, 23: 0.0}, THU = {} UZR = {23: 0.0} auto-07p-0.9.1+dfsg/07p/demos/r3b/c.man.V1b.1000066400000000000000000000006031206161447600177320ustar00rootroot00000000000000NDIM= 6, IPS = 4, IRS = 9, ILP = 0 ICP = [6, 11, 12, 3, 22, 23] NTST= 200, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC=10, NINT= 1 NMX= 112, NPR= 2, MXBF= 5, IID = 3, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = -0.5, DSMIN= 1e-05, DSMAX= 0.5, IADS= 1 NPAR = 16, THL = {21: 0.0, 22: 0.0, 23: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/r3b/c.man.V1b.2000066400000000000000000000006031206161447600177330ustar00rootroot00000000000000NDIM= 6, IPS = 4, IRS = 17, ILP = 0 ICP = [6, 11, 12, 3, 22, 23] NTST= 500, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC=10, NINT= 1 NMX= 4500, NPR= 500, MXBF= 5, IID = 3, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS =0.0001 DS = -0.5, DSMIN= 1e-05, DSMAX= 0.5, IADS= 1 NPAR = 16, THL = {21: 0.0, 22: 0.0, 23: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/r3b/c.r3b000066400000000000000000000006251206161447600170630ustar00rootroot00000000000000NDIM= 6, IPS = 1, IRS = 0, ILP = 0 ICP = [2, 16, 5, 6, 7] NTST= 25, NCOL= 4, IAD = 3, ISP = 3, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 2000, NPR= 2000, MXBF= -3, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.0001, DSMIN=0.0001, DSMAX= 0.1, IADS= 1 NPAR = 16, THL = {11: 0.0}, THU = {} UZSTOP = {16:0.991, 2:[-0.1,1.1]} UZR = {2: 0.063} auto-07p-0.9.1+dfsg/07p/demos/r3b/c.r3b.H1000066400000000000000000000005521206161447600173310ustar00rootroot00000000000000NDIM= 6, IPS = 2, IRS = 5, ILP = 0 ICP = [1, 11, 3, 4] NTST= 50, NCOL= 4, IAD = 3, ISP = 3, ISW =-1, IPLT=15, NBC= 0, NINT= 0 NMX= 137, NPR= 2, MXBF= -5, IID = 2, ITMX= 10, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-08, EPSU = 1e-08, EPSS = 1e-05 DS = 0.05, DSMIN= 1e-05, DSMAX= 0.1, IADS= 1 NPAR = 16, THL = {11: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/r3b/c.r3b.L1000066400000000000000000000005771206161447600173440ustar00rootroot00000000000000NDIM= 6, IPS = 2, IRS = 13, ILP = 0 ICP = [1, 11, 3, 4] NTST= 50, NCOL= 4, IAD = 3, ISP = 3, ISW =-1, IPLT=15, NBC= 0, NINT= 0 NMX= 200, NPR= 1, MXBF= -5, IID = 2, ITMX= 10, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-08, EPSU = 1e-08, EPSS = 1e-05 DS = 0.05, DSMIN= 1e-05, DSMAX= 0.1, IADS= 1 NPAR = 16, THL = {11: 0.0}, THU = {} UZSTOP = {3: -1.14} TY = 'HB5' auto-07p-0.9.1+dfsg/07p/demos/r3b/c.r3b.V1000066400000000000000000000005761206161447600173550ustar00rootroot00000000000000NDIM= 6, IPS = 2, IRS = 13, ILP = 0 ICP = [1, 11, 3, 4] NTST= 50, NCOL= 4, IAD = 3, ISP = 3, ISW =-1, IPLT=15, NBC= 0, NINT= 0 NMX= 200, NPR= 1, MXBF= -5, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-08, EPSU = 1e-08, EPSS = 1e-05 DS = 0.05, DSMIN= 1e-05, DSMAX= 0.1, IADS= 1 NPAR = 16, THL = {11: 0.0}, THU = {} UZSTOP = {3: 0.23} TY = 'HB6' auto-07p-0.9.1+dfsg/07p/demos/r3b/clean.auto000066400000000000000000000007131206161447600202030ustar00rootroot00000000000000 #========================================== # Remove data files that can be regenerated #========================================== print "\n***Clean the directory***" for f in ['L1', 'H1', 'V1', 'H1a', 'H1b', 'H1c', 'V1a', 'V1b', 'L1a', 'L1a2', 'startH1a', 'startH1b', 'startH1c', 'startV1a', 'startV1b', 'startL1a', 'ext', 'flq', 'start', 'startman', 'hetH1a', 'het1H1b', 'het2H1a', 'het2H1b', 'hetV1b']: dl(f) rm -f man.dat *.pyc cl() auto-07p-0.9.1+dfsg/07p/demos/r3b/compute_lps.py000066400000000000000000000020001206161447600211220ustar00rootroot00000000000000# This script computes the initial circle of solutions for mu=0 # as well as the bifurcating branches which give us the # Lagrange points. from AUTOclui import * def write_lagrange(r): # Print all Lagrange points import math ltouz = {1: 7, 2: 8, 3: 6, 4: 2, 5: 4} for lnumber in (1, 2, 3, 4, 5): print("L"+str(lnumber)+":") uzlabel = 'UZ'+str(ltouz[lnumber]) x = r(uzlabel) label = x["LAB"] for parnumber in (5, 6, 7): period = x.PAR(parnumber) if period != 0: print("Label: %2d (%s, TY='HB%s'); imaginary part: %.11f; " "period: %.11f"% (label, uzlabel, parnumber, 2*math.pi/period, period)) def compute(m=0.063): # m is the desired mass ratio r1 = run('r3b', UZR={2:m}) write_lagrange(r1) # This is the Python syntax for making a script runable if __name__ == '__main__': if len(sys.argv) > 1: compute(float(sys.argv[1])) else: compute() auto-07p-0.9.1+dfsg/07p/demos/r3b/data.py000066400000000000000000000015071206161447600175140ustar00rootroot00000000000000from AUTOclui import * def get(solution): #construct a new constant solution based on the flq solution PAR = solution.PAR eps = PAR(6) u = [] s0 = solution(0) for i in range(6): u.append(s0[i]+eps*s0[i+6]) p = {2:PAR(2),3:PAR(3),6:PAR(6),12:0} # init PAR(21:23) to u[:3] for i in range(3): p[21+i] = u[i] # init PAR(25:30) to USTART and PAR(31:36) to VSTART for i in range(12): p[25+i] = s0[i] return load(u,PAR=p) def create(sfile='flq',label=2): solution = loadbd(s=sfile)(label) save(get(solution),'startman') # This is the Python syntax for making a script runable if __name__ == '__main__': if len(sys.argv) > 2: create(sys.argv[1], int(sys.argv[2])) elif len(sys.argv) > 1: create(sys.argv[1]) else: create() auto-07p-0.9.1+dfsg/07p/demos/r3b/ext.py000066400000000000000000000015041206161447600174000ustar00rootroot00000000000000from AUTOclui import * import sys def get(sfile,label,step,floquet=None): s = loadbd(s=sfile) solution = s(label) if floquet is None: floquet = solution.PAR(4) print("Floquet multiplier: %s"%floquet) return load(solution,LAB=1,PAR={4:floquet,5:0,6:step}) def make_s(sfile,label,step,floquet=None): solution = get(sfile,label,step,floquet) save(solution,'ext') # This is the Python syntax for making a script runable if __name__ == '__main__': if len(sys.argv) < 4: print('Not enough arguments given') print('Usage: autox ext.py sfile label step [floquet_multiplier]') elif len(sys.argv) > 4: make_s(sys.argv[1], int(sys.argv[2]), float(sys.argv[3]), float(sys.argv[4])) else: make_s(sys.argv[1], int(sys.argv[2]), float(sys.argv[3])) auto-07p-0.9.1+dfsg/07p/demos/r3b/flq.f90000066400000000000000000000104511206161447600173310ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! r3b : The Restricted 3-Body Problem !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) !---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, IJAC, ICP(*) DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM), DFDU(NDIM,*), DFDP(NDIM,*) DOUBLE PRECISION x,y,z,xp,yp,zp DOUBLE PRECISION rl,rmu,dE,dM,rmc,dE3,dM3,dE5,dM5 DOUBLE PRECISION dEx,dEy,dEz,cx,cy,cz,dx,dy,dz,ex,ey,ez,vx,vy,vz DOUBLE PRECISION vxp,vyp,vzp,dMx,dMy,dMz ! Define the RHS of the dynamical system x = U(1) y = U(2) z = U(3) xp = U(4) yp = U(5) zp = U(6) rl = PAR(1) rmu = PAR(2) dE = SQRT((x+rmu)**2 + y**2 + z**2) dM = SQRT( (x-1+rmu)**2 + y**2 + z**2 ) rmc = 1 - rmu dE3 = 1/dE**3 dM3 = 1/dM**3 dE5 = 1/dE**5 dM5 = 1/dM**5 F(1) = xp F(2) = yp F(3) = zp F(4) = 2*yp + x - rmc*dE3*(x+rmu) - rmu*dM3*(x-1+rmu) F(5) = -2*xp + y - rmc*dE3*y - rmu*dM3*y F(6) = -rmc*dE3*z - rmu*dM3*z F(4:6) = F(4:6) + rl*F(1:3) ! Set up the linearized equations dEx = -3*(x+rmu)*dE5 dEy = -3*y*dE5 dEz = -3*z*dE5 dMx = -3*(x-1+rmu)*dM5 dMy = -3*y*dM5 dMz = -3*z*dM5 cx = 1 - rmc*dE3 - rmc*(x+rmu)*dEx - rmu*dM3 - rmu*(x-1+rmu)*dMx cy = -rmc*(x+rmu)*dEy - rmu*(x-1+rmu)*dMy cz = -rmc*(x+rmu)*dEz - rmu*(x-1+rmu)*dMz dx = -rmc*y*dEx - rmu*y*dMx dy = 1 - rmc*dE3 - rmc*y*dEy - rmu*dM3 - rmu*y*dMy dz = -rmc*y*dEz - rmu*y*dMz ex = -rmc*z*dEx - rmu*z*dMx ey = -rmc*z*dEy - rmu*z*dMy ez = -rmc*dE3 - rmc*z*dEz - rmu*dM3 - rmu*z*dMz vx = U(7) vy = U(8) vz = U(9) vxp= U(10) vyp= U(11) vzp= U(12) F(7) = vxp F(8) = vyp F(9) = vzp F(10)= cx*vx + cy*vy + cz*vz + 2*vyp F(11)= dx*vx + dy*vy + dz*vz - 2*vxp F(12)= ex*vx + ey*vy + ez*vz ! Scale F = F * PAR(11) END SUBROUTINE FUNC !---------------------------------------------------------------------- SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) !---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), NBC, IJAC DOUBLE PRECISION, INTENT(IN) :: PAR(*), U0(NDIM), U1(NDIM) DOUBLE PRECISION, INTENT(OUT) :: FB(NBC), DBC(NBC,*) DOUBLE PRECISION fm ! Periodicity boundary conditions FB(1:6) = U0(1:6) - U1(1:6) ! Floquet eigenvalue/vector boundary relation fm = PAR(4) FB(7:12) = U1(7:12) - fm*U0(7:12) END SUBROUTINE BCND !---------------------------------------------------------------------- SUBROUTINE ICND(NDIM,PAR,ICP,NINT,U,UOLD,UDOT,UPOLD,FI,IJAC,DINT) !---------- ---- 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), DINT(NINT,*) ! Integral phase condition FI(1) = DOT_PRODUCT(U(1:6),UPOLD(1:6)) ! Integral Floquet eigenfunction normalization FI(2) = -PAR(5)+DOT_PRODUCT(U(7:12),U(7:12)) END SUBROUTINE ICND !---------------------------------------------------------------------- SUBROUTINE PVLS(NDIM,U,PAR) !---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(IN) :: U(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: PAR(*) DOUBLE PRECISION GETP,rmu,x,y,z,xp,yp,zp,d1,d2,PE,En rmu = PAR(2) x = GETP("BV0", 1, U) y = GETP("BV0", 2, U) z = GETP("BV0", 3, U) xp= GETP("BV0", 4, U) yp= GETP("BV0", 5, U) zp= GETP("BV0", 6, U) d1 = SQRT((x+rmu)**2 + y**2 + z**2) d2 = SQRT( (x-1+rmu)**2 + y**2 + z**2 ) PE = (x**2 + y**2)/2 + (1-rmu)/d1 + rmu/d2 En = (xp**2 + yp**2 + zp**2)/2 - PE - rmu*(1-rmu)/2 PAR(3) = En END SUBROUTINE PVLS !---------------------------------------------------------------------- SUBROUTINE STPNT END SUBROUTINE STPNT !---------------------------------------------------------------------- SUBROUTINE FOPT END SUBROUTINE FOPT !---------------------------------------------------------------------- !---------------------------------------------------------------------- auto-07p-0.9.1+dfsg/07p/demos/r3b/man.f90000066400000000000000000000061001206161447600173160ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! r3b : The Restricted 3-Body Problem !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) !---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, IJAC, ICP(*) DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM), DFDU(NDIM,*), DFDP(NDIM,*) DOUBLE PRECISION x,y,z,xp,yp,zp,rmu,T,dE,dM,rmc,dE3,dM3 x = U(1) y = U(2) z = U(3) xp = U(4) yp = U(5) zp = U(6) rmu = PAR(2) T = PAR(11) dE = SQRT((x+rmu)**2 + y**2 + z**2) dM = SQRT( (x-1+rmu)**2 + y**2 + z**2 ) rmc = 1 - rmu dE3 = 1./dE**3 dM3 = 1./dM**3 F(1)= xp F(2)= yp F(3)= zp F(4)= 2*yp + x - rmc*dE3*(x+rmu) - rmu*dM3*(x-1+rmu) F(5)=-2*xp + y - rmc*dE3*y - rmu*dM3*y F(6)= - rmc*dE3*z - rmu*dM3*z F = T*F END SUBROUTINE FUNC !---------------------------------------------------------------------- SUBROUTINE STPNT END SUBROUTINE STPNT !---------------------------------------------------------------------- SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) !---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), NBC, IJAC DOUBLE PRECISION, INTENT(IN) :: PAR(*), U0(NDIM), U1(NDIM) DOUBLE PRECISION, INTENT(OUT) :: FB(NBC), DBC(NBC,*) DOUBLE PRECISION eps,x,y,z,xp,yp,zp,rmu,dE,dM,U,E INTEGER m eps=PAR(6) ! PAR(25:30) are USTART and PAR(31:36) are VSTART m=MIN(NBC,NDIM) FB(1:m) = U0(1:m) - ( PAR(25:25+m-1) + eps*PAR(31:31+m-1) ) FB(NDIM+1:NDIM+3) = U1(1:3) - PAR(21:23) x = U1(1) y = U1(2) z = U1(3) xp = U1(4) yp = U1(5) zp = U1(6) rmu = PAR(2) dE = SQRT((x+rmu)**2 + y**2 + z**2) dM = SQRT( (x-1+rmu)**2 + y**2 + z**2 ) U = (x**2 + y**2)/2 + (1-rmu)/dE + rmu/dM E = (xp**2 + yp**2 + zp**2)/2 - U - rmu*(1-rmu)/2 FB(NDIM+4) = PAR(3) - E END SUBROUTINE BCND !---------------------------------------------------------------------- SUBROUTINE ICND(NDIM,PAR,ICP,NINT,U,UOLD,UDOT,UPOLD,FI,IJAC,DINT) !---------- ---- 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), DINT(NINT,*) DOUBLE PRECISION FF(NDIM),DFDU(1),DFDP(1) CALL FUNC(NDIM,U,ICP,PAR,0,FF,DFDU,DFDP) FI(1)=SQRT(FF(1)**2 + FF(2)**2 + FF(3)**2 ) - PAR(12) END SUBROUTINE ICND !---------------------------------------------------------------------- SUBROUTINE FOPT END SUBROUTINE FOPT !---------------------------------------------------------------------- SUBROUTINE PVLS END SUBROUTINE PVLS !---------------------------------------------------------------------- !---------------------------------------------------------------------- auto-07p-0.9.1+dfsg/07p/demos/r3b/plaut04.rc000066400000000000000000000103121206161447600200420ustar00rootroot00000000000000#version 0.0 # Line colors are represented by RGB values from 0 to 1.0. # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and highlighting the solutions # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Use r3b mode R3B = Yes # Initialize the default options: Draw Reference Plane = Yes Draw Primaries = Yes Draw Libration Points = Yes Highlight Orbit = No Orbit Animation = No Normalize Data = No Draw Background = No Draw Labels = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahead Coordinate Type = 0 # Draw Scale: Draw Scale = No # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 0 # Initialize the default graph style # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 0 #Set the window width and height: Window Width = 1000 Window Height = 1000 # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 1 Y Axis Solution = 2 Z Axis Solution = 3 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 1 Z Axis Bifurcation = 2 #Labeled solutions: #-3 = Show all labeled solutions #-2 = Show HALF labeled solutions #-1 = Show SPEC labeled solutions #0 = Show NONE of the solutions #Otherwise, show the specified solution(s) Labels = -3 #Set coloring method: # -6 --- STABILITY # -5 --- POINT # -4 --- BRANCH # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. Coloring Method = -2 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 1.0 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Background color: Background Color = 0.8, 0.8, 1. # Background transparency: Background Transparency = 0.0 # Disk transparency # IF you turn Disk From File to "Yes", you should change the transparency there. Disk Transparency = 0.7 # Read Disk From File Disk From File = No # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # Color of the satellite, large primary, and small primary in animation: satellite Color = 1.0, 0.0, 0.0 large primary Color = 0.0, 1.0, 0.0 large primary tail Color = 0.0, 1.0, 1.0 small primary Color = 0.0, 0.0, 1.0 small primary tail Color = 0.5, 0.5, 0.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # UNStable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 # Color of the animation object: Object Color = 1.0, 0.0, 0.0 # Set the radius of the animation object: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Object Radius = 1.0 Large Primary Radius = 3.0 Small Primary Radius = 2.0 Libration Point Size = 0.5 # Set the maximum and minimum animation speed: Object Max Animation Speed = 100 Object Min Animation Speed = 0 # Set the maximum and minimum highlighting animation speed: Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 # Set the active AUTO parameter indices: parameter ID = 10 # Choose 3D or 2D graph: 3D = Yes #3DBif = No #3DSol = Yes # Set the number of periods animated. # The value should be the power of 2. Number of Period Animated = 1 auto-07p-0.9.1+dfsg/07p/demos/r3b/r3b.auto000066400000000000000000000007661206161447600176170ustar00rootroot00000000000000 #============== # AUTO Demo r3b #============== # mass ratio mu = 0.063 print "\n***Compute libration points" r1=run('r3b',UZR={2:mu}) import compute_lps compute_lps.write_lagrange(r1) print "\n***Lagrange family L1***" L1=run(r1('UZ7'),c='r3b.L1') save(relabel(L1),'L1') print "\n***Halo family H1***" H1=run(L1('BP1'),c='r3b.H1') save(relabel(H1),'H1') print "\n***Vertical family V1***" V1=run(r1('UZ7'),e='r3b',c='r3b.V1') save(relabel(V1),'V1') print "\n***Clean the directory***" clean() auto-07p-0.9.1+dfsg/07p/demos/r3b/r3b.f90000066400000000000000000000076641206161447600172510ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! r3b : The Restricted 3-Body Problem !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) !---------- ---- 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,*), DFDP(NDIM,*) DOUBLE PRECISION x,y,z,xp,yp,zp,rl,rmu,dE,dM,rmc,dE3,dM3 x = U(1) y = U(2) z = U(3) xp = U(4) yp = U(5) zp = U(6) rl = PAR(1) rmu = PAR(2) dE = SQRT((x+rmu)**2 + y**2 + z**2) dM = SQRT( (x-1+rmu)**2 + y**2 + z**2 ) rmc = 1 - rmu dE3 = 1./dE**3 dM3 = 1./dM**3 F(1)= xp F(2)= yp F(3)= zp F(4)= 2*yp + x - rmc*dE3*(x+rmu) - rmu*dM3*(x-1+rmu) + rl*xp F(5)=-2*xp + y - rmc*dE3*y - rmu*dM3*y + rl*yp F(6)= - rmc*dE3*z - rmu*dM3*z + rl*zp END SUBROUTINE FUNC !---------------------------------------------------------------------- SUBROUTINE STPNT(NDIM,U,PAR,T) !---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(IN) :: T DOUBLE PRECISION rl,rmu rl = 0. rmu = 0. PAR(:2) = (/ rl, rmu /) U = (/ 0.14107D0, 0.99D0, 0D0, 0D0, 0D0, 0D0 /) END SUBROUTINE STPNT !---------------------------------------------------------------------- SUBROUTINE PVLS(NDIM,U,PAR) !---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(IN) :: U(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: PAR(*) DOUBLE PRECISION GETP,rmu,x,y,z,xp,yp,zp,d1,d2,EU,E,realfm,imagfm,ncmplx DOUBLE PRECISION routh,pi INTEGER i,j rmu = PAR(2) x = U(1) y = U(2) z = U(3) xp = U(4) yp = U(5) zp = U(6) d1 = SQRT((x+rmu)**2 + y**2 + z**2) d2 = SQRT( (x-1+rmu)**2 + y**2 + z**2 ) EU = (x**2 + y**2)/2 + (1-rmu)/d1 + rmu/d2 E = (xp**2 + yp**2 + zp**2)/2 - EU - rmu*(1-rmu)/2 PAR(3) = E PAR(16)=y ! Maximum real Floquet multiplier: PAR(4) ! If there are two real multipliers with absolute value > 1 ! then PAR(4)=0. PAR(4) = 0 ncmplx = 0 DO i=1,NDIM imagfm = GETP('EIG',I*2,U) IF (imagfm == 0) THEN realfm = GETP('EIG',I*2-1,U) IF (ABS(realfm) > ABS(PAR(4))) THEN PAR(4) = realfm ENDIF ELSE ncmplx = ncmplx + 1 ENDIF ENDDO IF (ncmplx == 0) THEN ! no complex multipliers mean 6 real multipliers: 1,1, two with ! absolute value greater than 1 and two less than one PAR(4) = 0 ELSEIF (ncmplx == 4) THEN ! all non-trivial multipliers complex: must be 1 without rounding ! errors PAR(4) = 1 ENDIF ! Put purely imaginary eigenvalues in PAR(5), PAR(6) and PAR(7) j=1 PAR(5) = 0 PAR(6) = 0 PAR(7) = 0 pi = 4*ATAN(1d0) DO i=1,NDIM imagfm = GETP('EIG',I*2,U) IF (imagfm > 1d-5) THEN realfm = GETP('EIG',I*2-1,U) routh = 0.5d0*(1d0-sqrt(69d0)/9d0) ! above Routh's ratio we have one period for L4/L5, otherwise 3. IF (ABS(realfm) < EPSILON(1d0) .OR. rmu < routh .OR. ABS(y) < 0.1) THEN PAR(4+j) = 2*pi/imagfm j=j+1 ENDIF ENDIF ENDDO END SUBROUTINE PVLS !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT !---------------------------------------------------------------------- !---------------------------------------------------------------------- auto-07p-0.9.1+dfsg/07p/demos/r3b/r3bplaut04.rc000077500000000000000000000100261206161447600204560ustar00rootroot00000000000000#version 0.0 # Line colors are represented by RGB values from 0 to 1.0. # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and animating the solution change. # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Initialize the line pattern for showing stability UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Initialize the default options: Draw Reference Plane = Yes Orbit Animation = No Satellite Animation = No Draw Primaries = Yes Draw Libration Points = Yes Normalize Data = No Draw Background = No # Initialize the default coordinate axes: # 0 --- None, # 1 --- at origin # 2 --- at left and behind # 3 --- at left and ahead Coordinate Type = 0 # Draw Scale on the Axes Draw Scale = Yes # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 0 # Initialize the default graph style: # 0 --- LINES, # 1 --- TUBES, # 2 --- SURFACE Graph Style = 0 #Set the window width and height: Window Width = 1000 Window Height = 1000 # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 1 Y Axis Solution = 2 Z Axis Solution = 3 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 4 Y Axis Bifurcation = 5 Z Axis Bifurcation = 6 #Labeled solutions: #-3 = Show all labeled solutions #-2 = Show HALF labeled solutions #-1 = Show SPEC labeled solutions #0 = Show NONE of the solutions #Otherwise, show the specified solution(s) Labels = -3 #Set coloring method: # -6 --- STABILITY # -5 --- POINT # -4 --- BRANCH # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. Coloring Method = -2 Number of Period Animated = 1 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 1.0 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Background color: Background Color = 0.8, 0.8, 1.0 # Background transparency: Background Transparency = 0.0 # Disk transparency # IF you turn Disk From File to "Yes", you should change the transparency there. Disk Transparency = 0.7 # Read Disk From File Disk From File = No # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # Color of the satellite, large primary, and small primary in animation: satellite Color = 1.0, 0.0, 0.0 large primary Color = 0.0, 1.0, 0.0 large primary tail Color = 0.0, 1.0, 1.0 small primary Color = 0.0, 0.0, 1.0 small primary tail Color = 0.5, 0.5, 0.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # Stable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 # Set the radius of the satellite, large primary, and small primary: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Satellite Radius = 1.0 Large Primary Radius = 3.0 Small Primary Radius = 2.0 Libration Point Size = 0.5 # Set the maximum and minimum satellite animation speed: Sat Max Animation Speed = 100 Sat Min Animation Speed = 0 # Set the maximum and minimum orbit-change animation speed: Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 # Set the active AUTO parameter indices: parameter ID = 10 # Choose 3D or 2D graph: 3DSol = Yes auto-07p-0.9.1+dfsg/07p/demos/rev/000077500000000000000000000000001206161447600163345ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/rev/c.rev000066400000000000000000000006601206161447600172760ustar00rootroot00000000000000dat='rev.dat.1' PAR={11:39.0448429} NDIM= 4, IPS = 9, IRS = 0, ILP = 1 ICP = [1] NTST= 35, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 20, NPR= 20, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.01, DSMIN=0.0001, DSMAX= 0.05, IADS= 1 NPAR = 15, THL = {}, THU = {} UZR = {1: [1.6, 1.7, 1.8, 1.9]} IEQUIB = 0 IREV = [0,1,0,1] auto-07p-0.9.1+dfsg/07p/demos/rev/c.rev.1000066400000000000000000000006601206161447600174350ustar00rootroot00000000000000dat='rev.dat.1' PAR={11:39.0448429} NDIM= 4, IPS = 9, IRS = 0, ILP = 1 ICP = [1] NTST= 35, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 20, NPR= 20, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.01, DSMIN=0.0001, DSMAX= 0.05, IADS= 1 NPAR = 15, THL = {}, THU = {} UZR = {1: [1.6, 1.7, 1.8, 1.9]} IEQUIB = 0 IREV = [0,1,0,1] auto-07p-0.9.1+dfsg/07p/demos/rev/c.rev.2000066400000000000000000000006631206161447600174410ustar00rootroot00000000000000NDIM= 4, IPS = 9, IRS = 2, ILP = 1 ICP = [1, 22] NTST= 35, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 150, NPR= 150, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -0.05, DSMIN=0.0001, DSMAX= 0.1, IADS= 1 NPAR = 15, THL = {}, THU = {} UZR = {22: 0.0, 1: [1.0, 0.0, -1.0]} UZSTOP = {1: -3.0} IEQUIB = 0 IREV = [0,1,0,1] IPSI = [2] auto-07p-0.9.1+dfsg/07p/demos/rev/c.rev.3000066400000000000000000000006661206161447600174450ustar00rootroot00000000000000dat='rev.dat.3' PAR={11:47.4464189} NDIM= 4, IPS = 9, IRS = 0, ILP = 1 ICP = [1] NTST= 35, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 200, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.02, DSMIN=0.0001, DSMAX= 0.1, IADS= 1 NPAR = 15, THL = {}, THU = {} UZR = {1: [-1.0, 0.0, 1.0, 1.6, 1.7]} IEQUIB = 0 IREV = [1,0,1,0] auto-07p-0.9.1+dfsg/07p/demos/rev/c.rev.4000066400000000000000000000006221206161447600174360ustar00rootroot00000000000000NDIM= 4, IPS = 9, IRS = 2, ILP = 1 ICP = [1] NTST= 35, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 200, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -0.02, DSMIN=0.0001, DSMAX= 0.1, IADS= 1 NPAR = 15, THL = {}, THU = {} UZR = {1: [-1.0, 0.0, 1.0, 1.6, 1.7]} IEQUIB = 0 IREV = [1,0,1,0] auto-07p-0.9.1+dfsg/07p/demos/rev/clean.auto000066400000000000000000000001531206161447600203070ustar00rootroot00000000000000#============== # AUTO Demo rev #============== print "\n***Clean the directory***" dl("1") dl("3") cl() auto-07p-0.9.1+dfsg/07p/demos/rev/rev.auto000066400000000000000000000006511206161447600200240ustar00rootroot00000000000000#========= # Demo rev #========= pgm = 'rev' print pgm, ": first run : increase PAR(1)" r1=run('rev',c='rev.1',sv='1') print pgm, ": second run : continue in reverse direction" r1=r1+run(r1('UZ1'),c='rev.2',ap='1') print pgm, ": third run : restart from solution with different reversibility" r3=run('rev',c='rev.3',sv='3') print pgm, ": fourth run : continue in reverse direction" r3=r3+run(r3('UZ1'),c='rev.4',ap='3') auto-07p-0.9.1+dfsg/07p/demos/rev/rev.dat.1000066400000000000000000001032661206161447600177710ustar00rootroot00000000000000 0.00000000E+00 -0.22136854E-05 0.35531626E-05 0.44609028E-05 -0.73184002E-06 0.25000000E-02 -0.18457339E-05 0.39843422E-05 0.43656532E-05 -0.12232607E-05 0.50000000E-02 -0.14362248E-05 0.44038511E-05 0.42214649E-05 -0.17339623E-05 0.75000000E-02 -0.98653334E-06 0.48068263E-05 0.40266372E-05 -0.22601573E-05 0.10000000E-01 -0.49851681E-06 0.51882574E-05 0.37798589E-05 -0.27976647E-05 0.12500000E-01 0.25472706E-07 0.55430267E-05 0.34802452E-05 -0.33419264E-05 0.15000000E-01 0.58258012E-06 0.58659522E-05 0.31273738E-05 -0.38880273E-05 0.17500000E-01 0.11694433E-05 0.61518347E-05 0.27213186E-05 -0.44307217E-05 0.20000000E-01 0.17821938E-05 0.63955079E-05 0.22626806E-05 -0.49644631E-05 0.22500000E-01 0.24164625E-05 0.65918908E-05 0.17526154E-05 -0.54834396E-05 0.25000000E-01 0.30673908E-05 0.67360434E-05 0.11928571E-05 -0.59816143E-05 0.27500000E-01 0.37296472E-05 0.68232238E-05 0.58573839E-06 -0.64527703E-05 0.30000000E-01 0.43974493E-05 0.68489479E-05 -0.65794366E-07 -0.68905599E-05 0.32500000E-01 0.50645921E-05 0.68090495E-05 -0.75817109E-06 -0.72885590E-05 0.35000000E-01 0.57244818E-05 0.66997415E-05 -0.14871932E-05 -0.76403251E-05 0.37500000E-01 0.63701761E-05 0.65176774E-05 -0.22480349E-05 -0.79394595E-05 0.40000000E-01 0.69944298E-05 0.62600119E-05 -0.30352506E-05 -0.81796729E-05 0.42500000E-01 0.75897471E-05 0.59244611E-05 -0.38427889E-05 -0.83548542E-05 0.45000000E-01 0.81484390E-05 0.55093605E-05 -0.46640134E-05 -0.84591416E-05 0.47500000E-01 0.86626864E-05 0.50137209E-05 -0.54917309E-05 -0.84869964E-05 0.50000000E-01 0.91246088E-05 0.44372809E-05 -0.63182260E-05 -0.84332779E-05 0.52500000E-01 0.95263379E-05 0.37805561E-05 -0.71353043E-05 -0.82933188E-05 0.55000000E-01 0.98600952E-05 0.30448833E-05 -0.79343419E-05 -0.80630017E-05 0.57500000E-01 0.10118275E-04 0.22324598E-05 -0.87063431E-05 -0.77388346E-05 0.60000000E-01 0.10293528E-04 0.13463765E-05 -0.94420045E-05 -0.73180244E-05 0.62500000E-01 0.10378853E-04 0.39064448E-06 -0.10131787E-04 -0.67985495E-05 0.65000000E-01 0.10367685E-04 -0.62978562E-06 -0.10765996E-04 -0.61792283E-05 0.67500000E-01 0.10253989E-04 -0.17090126E-05 -0.11334864E-04 -0.54597846E-05 0.70000000E-01 0.10032353E-04 -0.28401821E-05 -0.11828642E-04 -0.46409079E-05 0.72500000E-01 0.96980796E-05 -0.40154932E-05 -0.12237700E-04 -0.37243082E-05 0.75000000E-01 0.92472785E-05 -0.52262144E-05 -0.12552627E-04 -0.27127638E-05 0.77500000E-01 0.86769564E-05 -0.64627109E-05 -0.12764334E-04 -0.16101625E-05 0.80000000E-01 0.79851029E-05 -0.77144808E-05 -0.12864169E-04 -0.42153403E-06 0.82500000E-01 0.71707734E-05 -0.89702038E-05 -0.12844028E-04 0.84692694E-06 0.85000000E-01 0.62341656E-05 -0.10217800E-04 -0.12696469E-04 0.21878472E-05 0.87500000E-01 0.51766908E-05 -0.11444498E-04 -0.12414827E-04 0.35926723E-05 0.90000000E-01 0.40010371E-05 -0.12636923E-04 -0.11993329E-04 0.50516756E-05 0.92500000E-01 0.27112243E-05 -0.13781180E-04 -0.11427208E-04 0.65539790E-05 0.95000000E-01 0.13126494E-05 -0.14862965E-04 -0.10712814E-04 0.80875864E-05 0.97500000E-01 -0.18787871E-06 -0.15867676E-04 -0.98477205E-05 0.96394303E-05 0.10000000E+00 -0.17821166E-05 -0.16780537E-04 -0.88308272E-05 0.11195432E-04 0.10250000E+00 -0.34603753E-05 -0.17586736E-04 -0.76624534E-05 0.12740575E-04 0.10500000E+00 -0.52115240E-05 -0.18271563E-04 -0.63444270E-05 0.14258995E-04 0.10750000E+00 -0.70230069E-05 -0.18820562E-04 -0.48801618E-05 0.15734077E-04 0.11000000E+00 -0.88808765E-05 -0.19219693E-04 -0.32747249E-05 0.17148576E-04 0.11250000E+00 -0.10769841E-04 -0.19455493E-04 -0.15348929E-05 0.18484742E-04 0.11500000E+00 -0.12673331E-04 -0.19515244E-04 0.33080645E-06 0.19724465E-04 0.11750000E+00 -0.14573576E-04 -0.19387150E-04 0.23120663E-05 0.20849429E-04 0.12000000E+00 -0.16451710E-04 -0.19060505E-04 0.43967884E-05 0.21841278E-04 0.12250000E+00 -0.18287879E-04 -0.18525874E-04 0.65710883E-05 0.22681795E-04 0.12500000E+00 -0.20061380E-04 -0.17775262E-04 0.88193173E-05 0.23353088E-04 0.12750000E+00 -0.21750804E-04 -0.16802287E-04 0.11124105E-04 0.23837789E-04 0.13000000E+00 -0.23334206E-04 -0.15602345E-04 0.13466417E-04 0.24119255E-04 0.13250000E+00 -0.24789285E-04 -0.14172765E-04 0.15825642E-04 0.24181779E-04 0.13500000E+00 -0.26093580E-04 -0.12512963E-04 0.18179687E-04 0.24010807E-04 0.13750000E+00 -0.27224679E-04 -0.10624580E-04 0.20505105E-04 0.23593146E-04 0.14000000E+00 -0.28160445E-04 -0.85116028E-05 0.22777234E-04 0.22917191E-04 0.14250000E+00 -0.28879249E-04 -0.61804812E-05 0.24970370E-04 0.21973130E-04 0.14500000E+00 -0.29360216E-04 -0.36402160E-05 0.27057942E-04 0.20753161E-04 0.14750000E+00 -0.29583478E-04 -0.90243582E-06 0.29012727E-04 0.19251696E-04 0.15000000E+00 -0.29530430E-04 0.20185508E-05 0.30807073E-04 0.17465553E-04 0.15250000E+00 -0.29183998E-04 0.51057247E-05 0.32413142E-04 0.15394146E-04 0.15500000E+00 -0.28528901E-04 0.83393511E-05 0.33803169E-04 0.13039650E-04 0.15750000E+00 -0.27551916E-04 0.11697000E-04 0.34949749E-04 0.10407162E-04 0.16000000E+00 -0.26242141E-04 0.15153595E-04 0.35826116E-04 0.75048299E-05 0.16250000E+00 -0.24591245E-04 0.18681492E-04 0.36406458E-04 0.43439735E-05 0.16500000E+00 -0.22593718E-04 0.22250585E-04 0.36666224E-04 0.93917099E-06 0.16750000E+00 -0.20247104E-04 0.25828447E-04 0.36582448E-04 -0.26916751E-05 0.17000000E+00 -0.17552218E-04 0.29380499E-04 0.36134077E-04 -0.65273025E-05 0.17250000E+00 -0.14513346E-04 0.32870216E-04 0.35302295E-04 -0.10543084E-04 0.17500000E+00 -0.11138426E-04 0.36259355E-04 0.34070856E-04 -0.14711054E-04 0.17750000E+00 -0.74392040E-05 0.39508230E-04 0.32426403E-04 -0.18999972E-04 0.18000000E+00 -0.34313550E-05 0.42576002E-04 0.30358783E-04 -0.23375422E-04 0.18250000E+00 0.86541487E-06 0.45421011E-04 0.27861354E-04 -0.27799943E-04 0.18500000E+00 0.54273075E-05 0.48001131E-04 0.24931273E-04 -0.32233209E-04 0.18750000E+00 0.10226406E-04 0.50274157E-04 0.21569763E-04 -0.36632241E-04 0.19000000E+00 0.15230685E-04 0.52198209E-04 0.17782361E-04 -0.40951656E-04 0.19250000E+00 0.20404066E-04 0.53732169E-04 0.13579142E-04 -0.45143966E-04 0.19500000E+00 0.25706512E-04 0.54836133E-04 0.89749029E-05 -0.49159906E-04 0.19750000E+00 0.31094170E-04 0.55471874E-04 0.39893240E-05 -0.52948804E-04 0.20000000E+00 0.36519555E-04 0.55603335E-04 -0.13529180E-05 -0.56458995E-04 0.20250000E+00 0.41931789E-04 0.55197110E-04 -0.70220716E-05 -0.59638258E-04 0.20500000E+00 0.47276884E-04 0.54222948E-04 -0.12983280E-04 -0.62434296E-04 0.20750000E+00 0.52498072E-04 0.52654250E-04 -0.19196600E-04 -0.64795247E-04 0.21000000E+00 0.57536188E-04 0.50468562E-04 -0.25617067E-04 -0.66670218E-04 0.21250000E+00 0.62330097E-04 0.47648056E-04 -0.32194820E-04 -0.68009848E-04 0.21500000E+00 0.66817167E-04 0.44180007E-04 -0.38875278E-04 -0.68766891E-04 0.21750000E+00 0.70933794E-04 0.40057236E-04 -0.45599374E-04 -0.68896812E-04 0.22000000E+00 0.74615961E-04 0.35278539E-04 -0.52303854E-04 -0.68358400E-04 0.22250000E+00 0.77799838E-04 0.29849075E-04 -0.58921626E-04 -0.67114382E-04 0.22500000E+00 0.80422427E-04 0.23780723E-04 -0.65382178E-04 -0.65132043E-04 0.22750000E+00 0.82422231E-04 0.17092393E-04 -0.71612052E-04 -0.62383831E-04 0.23000000E+00 0.83739948E-04 0.98102886E-05 -0.77535377E-04 -0.58847966E-04 0.23250000E+00 0.84319205E-04 0.19681111E-05 -0.83074462E-04 -0.54509014E-04 0.23500000E+00 0.84107285E-04 -0.63927902E-05 -0.88150441E-04 -0.49358443E-04 0.23750000E+00 0.83055888E-04 -0.15223339E-04 -0.92683973E-04 -0.43395152E-04 0.24000000E+00 0.81121880E-04 -0.24466723E-04 -0.96595994E-04 -0.36625948E-04 0.24250000E+00 0.78268049E-04 -0.34058454E-04 -0.99808506E-04 -0.29065987E-04 0.24500000E+00 0.74463846E-04 -0.43926521E-04 -0.10224542E-03 -0.20739158E-04 0.24750000E+00 0.69686110E-04 -0.53991609E-04 -0.10383340E-03 -0.11678400E-04 0.25000000E+00 0.63919766E-04 -0.64167422E-04 -0.10450281E-03 -0.19259562E-05 0.25250000E+00 0.57158488E-04 -0.74361077E-04 -0.10418856E-03 0.84664443E-05 0.25500000E+00 0.49405317E-04 -0.84473602E-04 -0.10283111E-03 0.19437495E-04 0.25750000E+00 0.40673230E-04 -0.94400521E-04 -0.10037736E-03 0.30916304E-04 0.26000000E+00 0.30985641E-04 -0.10403253E-03 -0.96781587E-04 0.42822476E-04 0.26250000E+00 0.20376842E-04 -0.11325624E-03 -0.92006381E-04 0.55066301E-04 0.26500000E+00 0.88923550E-05 -0.12195509E-03 -0.86023529E-04 0.67549038E-04 0.26750000E+00 -0.34108016E-05 -0.13001022E-03 -0.78814884E-04 0.80163315E-04 0.27000000E+00 -0.16463937E-04 -0.13730154E-03 -0.70373179E-04 0.92793629E-04 0.27250000E+00 -0.30186620E-04 -0.14370878E-03 -0.60702794E-04 0.10531696E-03 0.27500000E+00 -0.44486724E-04 -0.14911274E-03 -0.49820455E-04 0.11760352E-03 0.27750000E+00 -0.59260584E-04 -0.15339646E-03 -0.37755854E-04 0.12951756E-03 0.28000000E+00 -0.74393282E-04 -0.15644652E-03 -0.24552186E-04 0.14091836E-03 0.28250000E+00 -0.89759056E-04 -0.15815442E-03 -0.10266582E-04 0.15166126E-03 0.28500000E+00 -0.10522185E-03 -0.15841791E-03 0.50295648E-05 0.16159889E-03 0.28750000E+00 -0.12063598E-03 -0.15714243E-03 0.21250388E-04 0.17058235E-03 0.29000000E+00 -0.13584699E-03 -0.15424249E-03 0.38295476E-04 0.17846267E-03 0.29250000E+00 -0.15069255E-03 -0.14964313E-03 0.56049923E-04 0.18509221E-03 0.29500000E+00 -0.16500359E-03 -0.14328129E-03 0.74384545E-04 0.19032621E-03 0.29750000E+00 -0.17860554E-03 -0.13510723E-03 0.93156229E-04 0.19402440E-03 0.30000000E+00 -0.19131967E-03 -0.12508580E-03 0.11220846E-03 0.19605266E-03 0.30250000E+00 -0.20296457E-03 -0.11319778E-03 0.13137200E-03 0.19628473E-03 0.30500000E+00 -0.21335779E-03 -0.99441061E-04 0.15046574E-03 0.19460395E-03 0.30750000E+00 -0.22231757E-03 -0.83831733E-04 0.16929773E-03 0.19090501E-03 0.31000000E+00 -0.22966462E-03 -0.66405114E-04 0.18766634E-03 0.18509572E-03 0.31250000E+00 -0.23522411E-03 -0.47216617E-04 0.20536169E-03 0.17709875E-03 0.31500000E+00 -0.23882758E-03 -0.26342488E-04 0.22216713E-03 0.16685331E-03 0.31750000E+00 -0.24031511E-03 -0.38803803E-05 0.23786093E-03 0.15431684E-03 0.32000000E+00 -0.23953732E-03 0.20050240E-04 0.25221820E-03 0.13946655E-03 0.32250000E+00 -0.23635761E-03 0.45307875E-04 0.26501282E-03 0.12230094E-03 0.32500000E+00 -0.23065425E-03 0.71728986E-04 0.27601963E-03 0.10284115E-03 0.32750000E+00 -0.22232253E-03 0.99128193E-04 0.28501670E-03 0.81132185E-04 0.33000000E+00 -0.21127690E-03 0.12729871E-03 0.29178767E-03 0.57244010E-04 0.33250000E+00 -0.19745302E-03 0.15601299E-03 0.29612430E-03 0.31272449E-04 0.33500000E+00 -0.18080973E-03 0.18502369E-03 0.29782897E-03 0.33398856E-05 0.33750000E+00 -0.16133091E-03 0.21406477E-03 0.29671735E-03 -0.26404245E-04 0.34000000E+00 -0.13902731E-03 0.24285296E-03 0.29262100E-03 -0.57783199E-04 0.34250000E+00 -0.11393807E-03 0.27108946E-03 0.28539009E-03 -0.90592924E-04 0.34500000E+00 -0.86132188E-04 0.29846182E-03 0.27489601E-03 -0.12460232E-03 0.34750000E+00 -0.55709739E-04 0.32464620E-03 0.26103402E-03 -0.15955380E-03 0.35000000E+00 -0.22802863E-04 0.34930982E-03 0.24372578E-03 -0.19516410E-03 0.35250000E+00 0.12423486E-04 0.37211360E-03 0.22292181E-03 -0.23112547E-03 0.35500000E+00 0.49771069E-04 0.39271518E-03 0.19860381E-03 -0.26710710E-03 0.35750000E+00 0.89008195E-04 0.41077199E-03 0.17078681E-03 -0.30275692E-03 0.36000000E+00 0.12986986E-03 0.42594465E-03 0.13952118E-03 -0.33770370E-03 0.36250000E+00 0.17205823E-03 0.43790050E-03 0.10489435E-03 -0.37155948E-03 0.36500000E+00 0.21524347E-03 0.44631726E-03 0.67032340E-04 -0.40392228E-03 0.36750000E+00 0.25906497E-03 0.45088692E-03 0.26100948E-04 -0.43437922E-03 0.37000000E+00 0.30313289E-03 0.45131960E-03 -0.17693314E-04 -0.46250983E-03 0.37250000E+00 0.34703014E-03 0.44734762E-03 -0.64102668E-04 -0.48788970E-03 0.37500000E+00 0.39031477E-03 0.43872949E-03 -0.11283788E-03 -0.51009441E-03 0.37750000E+00 0.43252268E-03 0.42525397E-03 -0.16356845E-03 -0.52870372E-03 0.38000000E+00 0.47317079E-03 0.40674407E-03 -0.21592325E-03 -0.54330590E-03 0.38250000E+00 0.51176060E-03 0.38306099E-03 -0.26949155E-03 -0.55350238E-03 0.38500000E+00 0.54778205E-03 0.35410788E-03 -0.32382456E-03 -0.55891246E-03 0.38750000E+00 0.58071784E-03 0.31983346E-03 -0.37843739E-03 -0.55917821E-03 0.39000000E+00 0.61004802E-03 0.28023547E-03 -0.43281152E-03 -0.55396943E-03 0.39250000E+00 0.63525493E-03 0.23536377E-03 -0.48639779E-03 -0.54298865E-03 0.39500000E+00 0.65582848E-03 0.18532321E-03 -0.53861975E-03 -0.52597614E-03 0.39750000E+00 0.67127155E-03 0.13027604E-03 -0.58887769E-03 -0.50271487E-03 0.40000000E+00 0.68110576E-03 0.70444040E-04 -0.63655298E-03 -0.47303535E-03 0.40250000E+00 0.68487738E-03 0.61100924E-05 -0.68101294E-03 -0.43682033E-03 0.40500000E+00 0.68216328E-03 -0.62380693E-04 -0.72161620E-03 -0.39400929E-03 0.40750000E+00 0.67257711E-03 -0.13462041E-03 -0.75771842E-03 -0.34460262E-03 0.41000000E+00 0.65577539E-03 -0.21013835E-03 -0.78867842E-03 -0.28866549E-03 0.41250000E+00 0.63146362E-03 -0.28840165E-03 -0.81386469E-03 -0.22633139E-03 0.41500000E+00 0.59940233E-03 -0.36881655E-03 -0.83266223E-03 -0.15780510E-03 0.41750000E+00 0.55941287E-03 -0.45073033E-03 -0.84447958E-03 -0.83365273E-04 0.42000000E+00 0.51138309E-03 -0.53343401E-03 -0.84875619E-03 -0.33663710E-05 0.42250000E+00 0.45527267E-03 -0.61616570E-03 -0.84496986E-03 0.81759978E-04 0.42500000E+00 0.39111805E-03 -0.69811469E-03 -0.83264432E-03 0.17150430E-03 0.42750000E+00 0.31903701E-03 -0.77842636E-03 -0.81135683E-03 0.26527934E-03 0.43000000E+00 0.23923267E-03 -0.85620775E-03 -0.78074575E-03 0.36242085E-03 0.43250000E+00 0.15199692E-03 -0.93053386E-03 -0.74051795E-03 0.46218922E-03 0.43500000E+00 0.57713243E-04 -0.10004547E-02 -0.69045611E-03 0.56377195E-03 0.43750000E+00 -0.43141270E-04 -0.10650032E-02 -0.63042561E-03 0.66628698E-03 0.44000000E+00 -0.14999460E-03 -0.11232031E-02 -0.56038118E-03 0.76878692E-03 0.44250000E+00 -0.26217940E-03 -0.11740788E-02 -0.48037301E-03 0.87026421E-03 0.44500000E+00 -0.37893345E-03 -0.12166642E-02 -0.39055231E-03 0.96965714E-03 0.44750000E+00 -0.49940114E-03 -0.12500131E-02 -0.29117631E-03 0.10658569E-02 0.45000000E+00 -0.62263590E-03 -0.12732098E-02 -0.18261245E-03 0.11577154E-02 0.45250000E+00 -0.74760369E-03 -0.12853800E-02 -0.65341806E-04 0.12440541E-02 0.45500000E+00 -0.87318763E-03 -0.12857021E-02 0.60038412E-04 0.13236735E-02 0.45750000E+00 -0.99819363E-03 -0.12734183E-02 0.19281332E-03 0.13953639E-02 0.46000000E+00 -0.11213573E-02 -0.12478466E-02 0.33214989E-03 0.14579162E-02 0.46250000E+00 -0.12413517E-02 -0.12083919E-02 0.47709760E-03 0.15101344E-02 0.46500000E+00 -0.13567966E-02 -0.11545576E-02 0.62659030E-03 0.15508474E-02 0.46750000E+00 -0.14662687E-02 -0.10859567E-02 0.77944931E-03 0.15789228E-02 0.47000000E+00 -0.15683124E-02 -0.10023225E-02 0.93438783E-03 0.15932800E-02 0.47250000E+00 -0.16614526E-02 -0.90351900E-03 0.10900167E-02 0.15929046E-02 0.47500000E+00 -0.17442076E-02 -0.78955057E-03 0.12448515E-02 0.15768619E-02 0.47750000E+00 -0.18151034E-02 -0.66057071E-03 0.13973211E-02 0.15443119E-02 0.48000000E+00 -0.18726885E-02 -0.51689016E-03 0.15457775E-02 0.14945231E-02 0.48250000E+00 -0.19155498E-02 -0.35898378E-03 0.16885073E-02 0.14268866E-02 0.48500000E+00 -0.19423287E-02 -0.18749640E-03 0.18237441E-02 0.13409301E-02 0.48750000E+00 -0.19517382E-02 -0.32472848E-05 0.19496826E-02 0.12363311E-02 0.49000000E+00 -0.19425797E-02 0.19276681E-03 0.20644939E-02 0.11129298E-02 0.49250000E+00 -0.19137607E-02 0.39937011E-03 0.21663419E-02 0.97074061E-03 0.49500000E+00 -0.18643123E-02 0.61520799E-03 0.22534010E-02 0.80996358E-03 0.49750000E+00 -0.17934064E-02 0.83874884E-03 0.23238743E-02 0.63099395E-03 0.50000000E+00 -0.17003729E-02 0.10682879E-02 0.23760136E-02 0.43443079E-03 0.50250000E+00 -0.15847163E-02 0.13019529E-02 0.24081394E-02 0.22108409E-03 0.50500000E+00 -0.14461319E-02 0.15377120E-02 0.24186616E-02 -0.80197422E-05 0.50750000E+00 -0.12845204E-02 0.17733831E-02 0.24061013E-02 -0.25163422E-03 0.51000000E+00 -0.11000028E-02 0.20066462E-02 0.23691119E-02 -0.50829098E-03 0.51250000E+00 -0.89293225E-03 0.22350572E-02 0.23065010E-02 -0.77630006E-03 0.51500000E+00 -0.66390627E-03 0.24560641E-02 0.22172519E-02 -0.10537524E-02 0.51750000E+00 -0.41377586E-03 0.26670248E-02 0.21005446E-02 -0.13385247E-02 0.52000000E+00 -0.14365349E-03 0.28652280E-02 0.19557769E-02 -0.16282864E-02 0.52250000E+00 0.14508118E-03 0.30479147E-02 0.17825834E-02 -0.19205097E-02 0.52500000E+00 0.45077787E-03 0.32123027E-02 0.15808549E-02 -0.22124814E-02 0.52750000E+00 0.77151459E-03 0.33556124E-02 0.13507553E-02 -0.25013184E-02 0.53000000E+00 0.11050993E-02 0.34750941E-02 0.10927376E-02 -0.27839843E-02 0.53250000E+00 0.14490742E-02 0.35680571E-02 0.80755792E-03 -0.30573101E-02 0.53500000E+00 0.18007228E-02 0.36318997E-02 0.49628714E-03 -0.33180169E-02 0.53750000E+00 0.21570805E-02 0.36641405E-02 0.16032067E-03 -0.35627405E-02 0.54000000E+00 0.25149475E-02 0.36624505E-02 -0.19861474E-03 -0.37880598E-02 0.54250000E+00 0.28709055E-02 0.36246855E-02 -0.57845675E-03 -0.39905261E-02 0.54500000E+00 0.32213372E-02 0.35489191E-02 -0.97680640E-03 -0.41666957E-02 0.54750000E+00 0.35624492E-02 0.34334756E-02 -0.13909302E-02 -0.43131637E-02 0.55000000E+00 0.38902981E-02 0.32769619E-02 -0.18177655E-02 -0.44266002E-02 0.55250000E+00 0.42008197E-02 0.30782999E-02 -0.22539301E-02 -0.45037877E-02 0.55500000E+00 0.44898611E-02 0.28367564E-02 -0.26957345E-02 -0.45416597E-02 0.55750000E+00 0.47532159E-02 0.25519729E-02 -0.31391990E-02 -0.45373407E-02 0.56000000E+00 0.49866621E-02 0.22239927E-02 -0.35800741E-02 -0.44881865E-02 0.56250000E+00 0.51860024E-02 0.18532860E-02 -0.40138653E-02 -0.43918249E-02 0.56500000E+00 0.53471076E-02 0.14407726E-02 -0.44358613E-02 -0.42461962E-02 0.56750000E+00 0.54659605E-02 0.98784138E-03 -0.48411667E-02 -0.40495936E-02 0.57000000E+00 0.55387035E-02 0.49636668E-03 -0.52247382E-02 -0.38007023E-02 0.57250000E+00 0.55616859E-02 -0.31279350E-04 -0.55814252E-02 -0.34986371E-02 0.57500000E+00 0.55315132E-02 -0.59221825E-03 -0.59060126E-02 -0.31429789E-02 0.57750000E+00 0.54450970E-02 -0.11830613E-02 -0.61932690E-02 -0.27338080E-02 0.58000000E+00 0.52997043E-02 -0.17999104E-02 -0.64379962E-02 -0.22717354E-02 0.58250000E+00 0.50930074E-02 -0.24383638E-02 -0.66350829E-02 -0.17579305E-02 0.58500000E+00 0.48231324E-02 -0.30935273E-02 -0.67795599E-02 -0.11941449E-02 0.58750000E+00 0.44887065E-02 -0.37600309E-02 -0.68666586E-02 -0.58273270E-03 0.59000000E+00 0.40889033E-02 -0.44320513E-02 -0.68918698E-02 0.73334806E-04 0.59250000E+00 0.36234861E-02 -0.51033404E-02 -0.68510053E-02 0.77045859E-03 0.59500000E+00 0.30928471E-02 -0.57672592E-02 -0.67402588E-02 0.15044074E-02 0.59750000E+00 0.24980443E-02 -0.64168184E-02 -0.65562679E-02 0.22703191E-02 0.60000000E+00 0.18408331E-02 -0.70447247E-02 -0.62961754E-02 0.30627081E-02 0.60250000E+00 0.11236933E-02 -0.76434329E-02 -0.59576893E-02 0.38754792E-02 0.60500000E+00 0.34985156E-03 -0.82052042E-02 -0.55391416E-02 0.47019492E-02 0.60750000E+00 -0.47670344E-03 -0.87221695E-02 -0.50395443E-02 0.55348744E-02 0.61000000E+00 -0.13512112E-02 -0.91863990E-02 -0.44586424E-02 0.63664860E-02 0.61250000E+00 -0.22681374E-02 -0.95899753E-02 -0.37969629E-02 0.71885331E-02 0.61500000E+00 -0.32211783E-02 -0.99250729E-02 -0.30558599E-02 0.79923328E-02 0.61750000E+00 -0.42032746E-02 -0.10184040E-01 -0.22375540E-02 0.87688280E-02 0.62000000E+00 -0.52066316E-02 -0.10359486E-01 -0.13451653E-02 0.95086522E-02 0.62250000E+00 -0.62227500E-02 -0.10444369E-01 -0.38274035E-03 0.10202202E-01 0.62500000E+00 -0.72424634E-02 -0.10432089E-01 0.64472847E-03 0.10839717E-01 0.62750000E+00 -0.82559868E-02 -0.10316579E-01 0.17312918E-02 0.11411365E-01 0.63000000E+00 -0.92529728E-02 -0.10092400E-01 0.28700408E-02 0.11907335E-01 0.63250000E+00 -0.10222577E-01 -0.97548341E-02 0.40531138E-02 0.12317932E-01 0.63500000E+00 -0.11153535E-01 -0.92999770E-02 0.52717130E-02 0.12633686E-01 0.63750000E+00 -0.12034243E-01 -0.87248271E-02 0.65161313E-02 0.12845454E-01 0.64000000E+00 -0.12852852E-01 -0.80273736E-02 0.77757895E-02 0.12944534E-01 0.64250000E+00 -0.13597370E-01 -0.72066790E-02 0.90392854E-02 0.12922779E-01 0.64500000E+00 -0.14255766E-01 -0.62629564E-02 0.10294453E-01 0.12772710E-01 0.64750000E+00 -0.14816093E-01 -0.51976412E-02 0.11528434E-01 0.12487634E-01 0.65000000E+00 -0.15266602E-01 -0.40134540E-02 0.12727759E-01 0.12061759E-01 0.65250000E+00 -0.15595879E-01 -0.27144566E-02 0.13878444E-01 0.11490311E-01 0.65500000E+00 -0.15792970E-01 -0.13060965E-02 0.14966090E-01 0.10769641E-01 0.65750000E+00 -0.15847524E-01 0.20475750E-03 0.15976003E-01 0.98973348E-02 0.66000000E+00 -0.15749930E-01 0.18097933E-02 0.16893318E-01 0.88723133E-02 0.66250000E+00 -0.15491460E-01 0.34992445E-02 0.17703134E-01 0.76949289E-02 0.66500000E+00 -0.15064410E-01 0.52618944E-02 0.18390657E-01 0.63670511E-02 0.66750000E+00 -0.14462240E-01 0.70850935E-02 0.18941351E-01 0.48921444E-02 0.67000000E+00 -0.13679714E-01 0.89547928E-02 0.19341103E-01 0.32753349E-02 0.67250000E+00 -0.12713034E-01 0.10855593E-01 0.19576379E-01 0.15234650E-02 0.67500000E+00 -0.11559969E-01 0.12770808E-01 0.19634403E-01 -0.35486429E-03 0.67750000E+00 -0.10219975E-01 0.14682549E-01 0.19503323E-01 -0.23492668E-02 0.68000000E+00 -0.86943095E-02 0.16571824E-01 0.19172387E-01 -0.44475584E-02 0.68250000E+00 -0.69861336E-02 0.18418651E-01 0.18632124E-01 -0.66357617E-02 0.68500000E+00 -0.51006012E-02 0.20202193E-01 0.17874511E-01 -0.88981278E-02 0.68750000E+00 -0.30449359E-02 0.21900906E-01 0.16893148E-01 -0.11217176E-01 0.69000000E+00 -0.82849207E-03 0.23492712E-01 0.15683424E-01 -0.13573755E-01 0.69250000E+00 0.15372019E-02 0.24955171E-01 0.14242675E-01 -0.15947118E-01 0.69500000E+00 0.40384178E-02 0.26265689E-01 0.12570336E-01 -0.18315027E-01 0.69750000E+00 0.66592228E-02 0.27401722E-01 0.10668082E-01 -0.20653871E-01 0.70000000E+00 0.93814951E-02 0.28341005E-01 0.85399530E-02 -0.22938810E-01 0.70250000E+00 0.12184963E-01 0.29061787E-01 0.61924668E-02 -0.25143939E-01 0.70500000E+00 0.15047266E-01 0.29543080E-01 0.36347148E-02 -0.27242474E-01 0.70750000E+00 0.17944044E-01 0.29764909E-01 0.87843744E-03 -0.29206958E-01 0.71000000E+00 0.20849045E-01 0.29708580E-01 -0.20619216E-02 -0.31009497E-01 0.71250000E+00 0.23734267E-01 0.29356939E-01 -0.51691839E-02 -0.32622000E-01 0.71500000E+00 0.26570120E-01 0.28694644E-01 -0.84234307E-02 -0.34016454E-01 0.71750000E+00 0.29325615E-01 0.27708432E-01 -0.11802024E-01 -0.35165210E-01 0.72000000E+00 0.31968579E-01 0.26387378E-01 -0.15279658E-01 -0.36041282E-01 0.72250000E+00 0.34465901E-01 0.24723155E-01 -0.18828435E-01 -0.36618665E-01 0.72500000E+00 0.36783791E-01 0.22710283E-01 -0.22417984E-01 -0.36872658E-01 0.72750000E+00 0.38888072E-01 0.20346357E-01 -0.26015596E-01 -0.36780201E-01 0.73000000E+00 0.40744495E-01 0.17632278E-01 -0.29586408E-01 -0.36320205E-01 0.73250000E+00 0.42319066E-01 0.14572442E-01 -0.33093607E-01 -0.35473894E-01 0.73500000E+00 0.43578398E-01 0.11174926E-01 -0.36498674E-01 -0.34225133E-01 0.73750000E+00 0.44490078E-01 0.74516390E-02 -0.39761655E-01 -0.32560752E-01 0.74000000E+00 0.45023050E-01 0.34184471E-02 -0.42841472E-01 -0.30470860E-01 0.74250000E+00 0.45148002E-01 -0.90473199E-03 -0.45696250E-01 -0.27949133E-01 0.74500000E+00 0.44837766E-01 -0.54938688E-02 -0.48283684E-01 -0.24993095E-01 0.74750000E+00 0.44067724E-01 -0.10320799E-01 -0.50561424E-01 -0.21604368E-01 0.75000000E+00 0.42816205E-01 -0.15353240E-01 -0.52487489E-01 -0.17788894E-01 0.75250000E+00 0.41064891E-01 -0.20554844E-01 -0.54020697E-01 -0.13557137E-01 0.75500000E+00 0.38799205E-01 -0.25885304E-01 -0.55121114E-01 -0.89242447E-02 0.75750000E+00 0.36008692E-01 -0.31300492E-01 -0.55750518E-01 -0.39101887E-02 0.76000000E+00 0.32687384E-01 -0.36752654E-01 -0.55872880E-01 0.14601366E-02 0.76250000E+00 0.28834142E-01 -0.42190645E-01 -0.55454839E-01 0.71568443E-02 0.76500000E+00 0.24452972E-01 -0.47560212E-01 -0.54466201E-01 0.13145022E-01 0.76750000E+00 0.19553316E-01 -0.52804332E-01 -0.52880423E-01 0.19384735E-01 0.77000000E+00 0.14150301E-01 -0.57863588E-01 -0.50675103E-01 0.25831068E-01 0.77250000E+00 0.82649531E-02 -0.62676597E-01 -0.47832466E-01 0.32434209E-01 0.77500000E+00 0.19243681E-02 -0.67180488E-01 -0.44339829E-01 0.39139575E-01 0.77750000E+00 -0.48381703E-02 -0.71311418E-01 -0.40190067E-01 0.45887991E-01 0.78000000E+00 -0.11983122E-01 -0.75005138E-01 -0.35382044E-01 0.52615922E-01 0.78250000E+00 -0.19464679E-01 -0.78197596E-01 -0.29921028E-01 0.59255763E-01 0.78500000E+00 -0.27230818E-01 -0.80825584E-01 -0.23819067E-01 0.65736207E-01 0.78750000E+00 -0.35223414E-01 -0.82827416E-01 -0.17095338E-01 0.71982675E-01 0.79000000E+00 -0.43378424E-01 -0.84143635E-01 -0.97764327E-02 0.77917841E-01 0.79250000E+00 -0.51626139E-01 -0.84717753E-01 -0.18966020E-02 0.83462232E-01 0.79500000E+00 -0.59891513E-01 -0.84497007E-01 0.65020692E-02 0.88534934E-01 0.79750000E+00 -0.68094562E-01 -0.83433129E-01 0.15369559E-01 0.93054372E-01 0.80000000E+00 -0.76150841E-01 -0.81483121E-01 0.24647886E-01 0.96939198E-01 0.80250000E+00 -0.83971998E-01 -0.78610032E-01 0.34271178E-01 0.10010924E+00 0.80500000E+00 -0.91466399E-01 -0.74783719E-01 0.44165838E-01 0.10248656E+00 0.80750000E+00 -0.98539831E-01 -0.69981591E-01 0.54250810E-01 0.10399651E+00 0.81000000E+00 -0.10509627E+00 -0.64189315E-01 0.64437961E-01 0.10456886E+00 0.81250000E+00 -0.11103874E+00 -0.57401491E-01 0.74632565E-01 0.10413895E+00 0.81500000E+00 -0.11627017E+00 -0.49622261E-01 0.84733899E-01 0.10264879E+00 0.81750000E+00 -0.12069440E+00 -0.40865862E-01 0.94635950E-01 0.10004810E+00 0.82000000E+00 -0.12421717E+00 -0.31157107E-01 0.10422822E+00 0.96295344E-01 0.82250000E+00 -0.12674718E+00 -0.20531779E-01 0.11339660E+00 0.91358554E-01 0.82500000E+00 -0.12819717E+00 -0.90369338E-02 0.12202438E+00 0.85216119E-01 0.82750000E+00 -0.12848501E+00 0.32688954E-02 0.12999326E+00 0.77857377E-01 0.83000000E+00 -0.12753488E+00 0.16315594E-01 0.13718446E+00 0.69283073E-01 0.83250000E+00 -0.12527835E+00 0.30021474E-01 0.14347983E+00 0.59505670E-01 0.83500000E+00 -0.12165553E+00 0.44293395E-01 0.14876304E+00 0.48549520E-01 0.83750000E+00 -0.11661618E+00 0.59026994E-01 0.15292069E+00 0.36450934E-01 0.84000000E+00 -0.11012075E+00 0.74107033E-01 0.15584353E+00 0.23258176E-01 0.84250000E+00 -0.10214150E+00 0.89407858E-01 0.15742759E+00 0.90314250E-02 0.84500000E+00 -0.92663389E-01 0.10479397E+00 0.15757537E+00 -0.61572425E-02 0.84750000E+00 -0.81685097E-01 0.12012072E+00 0.15619697E+00 -0.22223806E-01 0.85000000E+00 -0.69219818E-01 0.13523509E+00 0.15321130E+00 -0.39072152E-01 0.85250000E+00 -0.55296055E-01 0.14997665E+00 0.14854722E+00 -0.56593794E-01 0.85500000E+00 -0.39958298E-01 0.16417854E+00 0.14214484E+00 -0.74667438E-01 0.85750000E+00 -0.23267584E-01 0.17766865E+00 0.13395674E+00 -0.93158430E-01 0.86000000E+00 -0.53019603E-02 0.19027092E+00 0.12394930E+00 -0.11191810E+00 0.86250000E+00 0.13843208E-01 0.20180674E+00 0.11210417E+00 -0.13078307E+00 0.86500000E+00 0.34055058E-01 0.21209650E+00 0.98419652E-01 -0.14957467E+00 0.86750000E+00 0.55203214E-01 0.22096131E+00 0.82912267E-01 -0.16809854E+00 0.87000000E+00 0.77139949E-01 0.22822483E+00 0.65618277E-01 -0.18614457E+00 0.87250000E+00 0.99700530E-01 0.23371530E+00 0.46595205E-01 -0.20348737E+00 0.87500000E+00 0.12270376E+00 0.23726767E+00 0.25923275E-01 -0.21988745E+00 0.87750000E+00 0.14595277E+00 0.23872587E+00 0.37067009E-02 -0.23509317E+00 0.88000000E+00 0.16923597E+00 0.23794522E+00 -0.19925263E-01 -0.24884370E+00 0.88250000E+00 0.19232832E+00 0.23479493E+00 -0.44817608E-01 -0.26087293E+00 0.88500000E+00 0.21499278E+00 0.22916059E+00 -0.70789297E-01 -0.27091452E+00 0.88750000E+00 0.23698206E+00 0.22094673E+00 -0.97633514E-01 -0.27870774E+00 0.89000000E+00 0.25804057E+00 0.21007929E+00 -0.12511854E+00 -0.28400421E+00 0.89250000E+00 0.27790662E+00 0.19650799E+00 -0.15298930E+00 -0.28657510E+00 0.89500000E+00 0.29631489E+00 0.18020849E+00 -0.18096965E+00 -0.28621853E+00 0.89750000E+00 0.31299900E+00 0.16118433E+00 -0.20876533E+00 -0.28276673E+00 0.90000000E+00 0.32769436E+00 0.13946848E+00 -0.23606766E+00 -0.27609237E+00 0.90250000E+00 0.34014108E+00 0.11512463E+00 -0.26255769E+00 -0.26611390E+00 0.90500000E+00 0.35008703E+00 0.88247853E-01 -0.28791092E+00 -0.25279897E+00 0.90750000E+00 0.35729088E+00 0.58965017E-01 -0.31180215E+00 -0.23616597E+00 0.91000000E+00 0.36152526E+00 0.27434545E-01 -0.33391045E+00 -0.21628320E+00 0.91250000E+00 0.36257976E+00 -0.61542099E-02 -0.35392383E+00 -0.19326554E+00 0.91500000E+00 0.36026394E+00 -0.41582056E-01 -0.37154359E+00 -0.16726882E+00 0.91750000E+00 0.35441013E+00 -0.78601443E-01 -0.38648795E+00 -0.13848217E+00 0.92000000E+00 0.34487614E+00 -0.11693826E+00 -0.39849481E+00 -0.10711883E+00 0.92250000E+00 0.33154777E+00 -0.15629385E+00 -0.40732369E+00 -0.73406177E-01 0.92500000E+00 0.31434107E+00 -0.19634719E+00 -0.41275658E+00 -0.37575975E-01 0.92750000E+00 0.29320443E+00 -0.23675705E+00 -0.41459795E+00 0.14423913E-03 0.93000000E+00 0.26812043E+00 -0.27716421E+00 -0.41267400E+00 0.39537487E-01 0.93250000E+00 0.23910754E+00 -0.31719348E+00 -0.40683147E+00 0.80400395E-01 0.93500000E+00 0.20622153E+00 -0.35645568E+00 -0.39693629E+00 0.12254210E+00 0.93750000E+00 0.16955677E+00 -0.39454941E+00 -0.38287266E+00 0.16577839E+00 0.94000000E+00 0.12924734E+00 -0.43106286E+00 -0.36454283E+00 0.20992087E+00 0.94250000E+00 0.85467952E-01 -0.46557561E+00 -0.34186828E+00 0.25476121E+00 0.94500000E+00 0.38434696E-01 -0.49766060E+00 -0.31479257E+00 0.30005137E+00 0.94750000E+00 -0.11594423E-01 -0.52688655E+00 -0.28328636E+00 0.34548078E+00 0.95000000E+00 -0.64319215E-01 -0.55282091E+00 -0.24735463E+00 0.39065240E+00 0.95250000E+00 -0.11939735E+00 -0.57503370E+00 -0.20704628E+00 0.43505968E+00 0.95500000E+00 -0.17644486E+00 -0.59310228E+00 -0.16246583E+00 0.47806723E+00 0.95750000E+00 -0.23503710E+00 -0.60661751E+00 -0.11378666E+00 0.51889770E+00 0.96000000E+00 -0.29471047E+00 -0.61519107E+00 -0.61265155E-01 0.55662795E+00 0.96250000E+00 -0.35496480E+00 -0.61846431E+00 -0.52546740E-02 0.59019684E+00 0.96500000E+00 -0.41526679E+00 -0.61611832E+00 0.53781928E-01 0.61842664E+00 0.96750000E+00 -0.47505439E+00 -0.60788512E+00 0.11526256E+00 0.64005938E+00 0.97000000E+00 -0.53374237E+00 -0.59355961E+00 0.17848045E+00 0.65380788E+00 0.97250000E+00 -0.59072905E+00 -0.57301180E+00 0.24260431E+00 0.65842027E+00 0.97500000E+00 -0.64540419E+00 -0.54619866E+00 0.30668541E+00 0.65275504E+00 0.97750000E+00 -0.69715806E+00 -0.51317490E+00 0.36967229E+00 0.63586221E+00 0.98000000E+00 -0.74539141E+00 -0.47410204E+00 0.43043340E+00 0.60706500E+00 0.98250000E+00 -0.78952624E+00 -0.42925472E+00 0.48778761E+00 0.56603530E+00 0.98500000E+00 -0.82901703E+00 -0.37902380E+00 0.54054138E+00 0.51285594E+00 0.98750000E+00 -0.86336205E+00 -0.32391558E+00 0.58753112E+00 0.44806299E+00 0.99000000E+00 -0.89211445E+00 -0.26454659E+00 0.62766849E+00 0.37266254E+00 0.99250000E+00 -0.91489256E+00 -0.20163411E+00 0.65998590E+00 0.28811803E+00 0.99500000E+00 -0.93138910E+00 -0.13598218E+00 0.68367929E+00 0.19630678E+00 0.99750000E+00 -0.94137880E+00 -0.68463844E-01 0.69814520E+00 0.99447037E-01 0.10000000E+01 -0.94472411E+00 -0.18626971E-07 0.70300944E+00 -0.85249654E-07 auto-07p-0.9.1+dfsg/07p/demos/rev/rev.dat.3000066400000000000000000001032661206161447600177730ustar00rootroot00000000000000 0.00000000E+00 -0.21401640E-05 0.36101460E-05 0.44234208E-05 -0.81252907E-06 0.25000000E-02 -0.16810916E-05 0.41277270E-05 0.42916954E-05 -0.14134205E-05 0.50000000E-02 -0.11617217E-05 0.46253907E-05 0.40870756E-05 -0.20404971E-05 0.75000000E-02 -0.58493617E-06 0.50943227E-05 0.38068687E-05 -0.26866475E-05 0.10000000E-01 0.45320285E-07 0.55254411E-05 0.34492755E-05 -0.33439277E-05 0.12500000E-01 0.72401550E-06 0.59095083E-05 0.30134857E-05 -0.40036126E-05 0.15000000E-01 0.14450183E-05 0.62372539E-05 0.24997674E-05 -0.46562622E-05 0.17500000E-01 0.22011025E-05 0.64995070E-05 0.19095466E-05 -0.52918036E-05 0.20000000E-01 0.29839669E-05 0.66873381E-05 0.12454771E-05 -0.58996292E-05 0.22500000E-01 0.37842728E-05 0.67922082E-05 0.51149681E-06 -0.64687092E-05 0.25000000E-01 0.45916995E-05 0.68061238E-05 -0.28712891E-06 -0.69877200E-05 0.27500000E-01 0.53950183E-05 0.67217959E-05 -0.11437813E-05 -0.74451867E-05 0.30000000E-01 0.61821855E-05 0.65328016E-05 -0.20504790E-05 -0.78296384E-05 0.32500000E-01 0.69404552E-05 0.62337450E-05 -0.29978887E-05 -0.81297763E-05 0.35000000E-01 0.76565100E-05 0.58204161E-05 -0.39753556E-05 -0.83346517E-05 0.37500000E-01 0.83166111E-05 0.52899445E-05 -0.49709564E-05 -0.84338534E-05 0.40000000E-01 0.89067660E-05 0.46409459E-05 -0.59715741E-05 -0.84177010E-05 0.42500000E-01 0.94129131E-05 0.38736578E-05 -0.69629968E-05 -0.82774436E-05 0.45000000E-01 0.98211209E-05 0.29900624E-05 -0.79300394E-05 -0.80054597E-05 0.47500000E-01 0.10117802E-04 0.19939941E-05 -0.88566897E-05 -0.75954565E-05 0.50000000E-01 0.10289939E-04 0.89122696E-06 -0.97262775E-05 -0.70426650E-05 0.52500000E-01 0.10325316E-04 -0.31045771E-06 -0.10521667E-04 -0.63440287E-05 0.55000000E-01 0.10212763E-04 -0.16012289E-05 -0.11225469E-04 -0.54983813E-05 0.57500000E-01 0.99423985E-05 -0.29691896E-05 -0.11820279E-04 -0.45066112E-05 0.60000000E-01 0.95058732E-05 -0.44003894E-05 -0.12288924E-04 -0.33718085E-05 0.62500000E-01 0.88966131E-05 -0.58788682E-05 -0.12614736E-04 -0.20993912E-05 0.65000000E-01 0.81100527E-05 -0.73867328E-05 -0.12781833E-04 -0.69720802E-06 0.67500000E-01 0.71438584E-05 -0.89042667E-05 -0.12775411E-04 0.82438722E-06 0.70000000E-01 0.59981364E-05 -0.10410077E-04 -0.12582047E-04 0.24524914E-05 0.72500000E-01 0.46756210E-05 -0.11881274E-04 -0.12189998E-04 0.41716418E-05 0.75000000E-01 0.31818397E-05 -0.13293691E-04 -0.11589508E-04 0.59638424E-05 0.77500000E-01 0.15252500E-05 -0.14622137E-04 -0.10773101E-04 0.78086291E-05 0.80000000E-01 -0.28265560E-06 -0.15840681E-04 -0.97358710E-05 0.96831760E-05 0.82500000E-01 -0.22272811E-05 -0.16922981E-04 -0.84757517E-05 0.11562445E-04 0.85000000E-01 -0.42908982E-05 -0.17842625E-04 -0.69937688E-05 0.13419377E-04 0.87500000E-01 -0.64526607E-05 -0.18573522E-04 -0.52942661E-05 0.15225134E-04 0.90000000E-01 -0.86886663E-05 -0.19090300E-04 -0.33850998E-05 0.16949375E-04 0.92500000E-01 -0.10972067E-04 -0.19368737E-04 -0.12777983E-05 0.18560587E-04 0.95000000E-01 -0.13273231E-04 -0.19386202E-04 0.10123207E-05 0.20026450E-04 0.97500000E-01 -0.15559960E-04 -0.19122107E-04 0.34660778E-05 0.21314247E-04 0.10000000E+00 -0.17797758E-04 -0.18558374E-04 0.60604115E-05 0.22391314E-04 0.10250000E+00 -0.19950153E-04 -0.17679884E-04 0.87684122E-05 0.23225515E-04 0.10500000E+00 -0.21979081E-04 -0.16474938E-04 0.11559415E-04 0.23785754E-04 0.10750000E+00 -0.23845313E-04 -0.14935688E-04 0.14399154E-04 0.24042513E-04 0.11000000E+00 -0.25508940E-04 -0.13058554E-04 0.17249985E-04 0.23968402E-04 0.11250000E+00 -0.26929898E-04 -0.10844607E-04 0.20071166E-04 0.23538727E-04 0.11500000E+00 -0.28068544E-04 -0.82999177E-05 0.22819215E-04 0.22732057E-04 0.11750000E+00 -0.28886270E-04 -0.54358567E-05 0.25448332E-04 0.21530795E-04 0.12000000E+00 -0.29346138E-04 -0.22693408E-05 0.27910881E-04 0.19921732E-04 0.12250000E+00 -0.29413559E-04 0.11769810E-05 0.30157947E-04 0.17896580E-04 0.12500000E+00 -0.29056976E-04 0.48746119E-05 0.32139951E-04 0.15452478E-04 0.12750000E+00 -0.28248560E-04 0.87891676E-05 0.33807318E-04 0.12592458E-04 0.13000000E+00 -0.26964909E-04 0.12880419E-04 0.35111202E-04 0.93258547E-05 0.13250000E+00 -0.25187734E-04 0.17102425E-04 0.36004257E-04 0.56686669E-05 0.13500000E+00 -0.22904522E-04 0.21403756E-04 0.36441446E-04 0.16438381E-05 0.13750000E+00 -0.20109171E-04 0.25727819E-04 0.36380873E-04 -0.27185350E-05 0.14000000E+00 -0.16802578E-04 0.30013281E-04 0.35784644E-04 -0.73810851E-05 0.14250000E+00 -0.12993171E-04 0.34194593E-04 0.34619730E-04 -0.12299153E-04 0.14500000E+00 -0.86973712E-05 0.38202619E-04 0.32858829E-04 -0.17420871E-04 0.14750000E+00 -0.39399789E-05 0.41965368E-04 0.30481208E-04 -0.22687359E-04 0.15000000E+00 0.12455377E-05 0.45408817E-04 0.27473520E-04 -0.28033037E-04 0.15250000E+00 0.68168549E-05 0.48457839E-04 0.23830574E-04 -0.33386061E-04 0.15500000E+00 0.12722722E-04 0.51037209E-04 0.19556044E-04 -0.38668881E-04 0.15750000E+00 0.18903012E-04 0.53072696E-04 0.14663109E-04 -0.43798932E-04 0.16000000E+00 0.25288910E-04 0.54492223E-04 0.91749981E-05 -0.48689445E-04 0.16250000E+00 0.31803239E-04 0.55227087E-04 0.31254375E-05 -0.53250387E-04 0.16500000E+00 0.38360936E-04 0.55213225E-04 -0.34410264E-05 -0.57389521E-04 0.16750000E+00 0.44869677E-04 0.54392510E-04 -0.10468833E-04 -0.61013581E-04 0.17000000E+00 0.51230660E-04 0.52714061E-04 -0.17891361E-04 -0.64029551E-04 0.17250000E+00 0.57339543E-04 0.50135551E-04 -0.25631037E-04 -0.66346042E-04 0.17500000E+00 0.63087535E-04 0.46624492E-04 -0.33599617E-04 -0.67874756E-04 0.17750000E+00 0.68362635E-04 0.42159473E-04 -0.41698643E-04 -0.68532010E-04 0.18000000E+00 0.73051017E-04 0.36731338E-04 -0.49820080E-04 -0.68240323E-04 0.18250000E+00 0.77038553E-04 0.30344272E-04 -0.57847151E-04 -0.66930022E-04 0.18500000E+00 0.80212450E-04 0.23016782E-04 -0.65655358E-04 -0.64540876E-04 0.18750000E+00 0.82463000E-04 0.14782540E-04 -0.73113700E-04 -0.61023705E-04 0.19000000E+00 0.83685427E-04 0.56910757E-05 -0.80086075E-04 -0.56341957E-04 0.19250000E+00 0.83781796E-04 -0.41917146E-05 -0.86432869E-04 -0.50473231E-04 0.19500000E+00 0.82662973E-04 -0.14783251E-04 -0.92012722E-04 -0.43410704E-04 0.19750000E+00 0.80250618E-04 -0.25984176E-04 -0.96684454E-04 -0.35164441E-04 0.20000000E+00 0.76479163E-04 -0.37678501E-04 -0.10030914E-03 -0.25762568E-04 0.20250000E+00 0.71297767E-04 -0.49733999E-04 -0.10275231E-03 -0.15252267E-04 0.20500000E+00 0.64672206E-04 -0.62002870E-04 -0.10388626E-03 -0.37005718E-05 0.20750000E+00 0.56586664E-04 -0.74322688E-04 -0.10359246E-03 0.88050645E-05 0.21000000E+00 0.47045401E-04 -0.86517628E-04 -0.10176395E-03 0.22156453E-04 0.21250000E+00 0.36074252E-04 -0.98399990E-04 -0.98307869E-04 0.36224634E-04 0.21500000E+00 0.23721933E-04 -0.10977201E-03 -0.93147850E-04 0.50860141E-04 0.21750000E+00 0.10061112E-04 -0.12042798E-03 -0.86226453E-04 0.65893582E-04 0.22000000E+00 -0.48107862E-05 -0.13015659E-03 -0.77507469E-04 0.81136563E-04 0.22250000E+00 -0.20771072E-04 -0.13874362E-03 -0.66978100E-04 0.96382954E-04 0.22500000E+00 -0.37671615E-04 -0.14597483E-03 -0.54650972E-04 0.11141052E-03 0.22750000E+00 -0.55339021E-04 -0.15163905E-03 -0.40565931E-04 0.12598290E-03 0.23000000E+00 -0.73575198E-04 -0.15553154E-03 -0.24791582E-04 0.13985196E-03 0.23250000E+00 -0.92158321E-04 -0.15745747E-03 -0.74265263E-05 0.15276052E-03 0.23500000E+00 -0.11084422E-03 -0.15723553E-03 0.11399736E-04 0.16444536E-03 0.23750000E+00 -0.12936820E-03 -0.15470163E-03 0.31526293E-04 0.17464061E-03 0.24000000E+00 -0.14744731E-03 -0.14971264E-03 0.52760720E-04 0.18308145E-03 0.24250000E+00 -0.16478305E-03 -0.14215009E-03 0.74879433E-04 0.18950800E-03 0.24500000E+00 -0.18106451E-03 -0.13192387E-03 0.97628528E-04 0.19366957E-03 0.24750000E+00 -0.19597195E-03 -0.11897570E-03 0.12072511E-03 0.19532896E-03 0.25000000E+00 -0.20918078E-03 -0.10328248E-03 0.14385920E-03 0.19426703E-03 0.25250000E+00 -0.22036588E-03 -0.84859400E-04 0.16669609E-03 0.19028726E-03 0.25500000E+00 -0.22920638E-03 -0.63762641E-04 0.18887934E-03 0.18322042E-03 0.25750000E+00 -0.23539059E-03 -0.40091797E-04 0.21003431E-03 0.17292915E-03 0.26000000E+00 -0.23862133E-03 -0.13991780E-04 0.22977215E-03 0.15931244E-03 0.26250000E+00 -0.23862136E-03 0.14345752E-04 0.24769441E-03 0.14230994E-03 0.26500000E+00 -0.23513899E-03 0.44681562E-04 0.26339808E-03 0.12190601E-03 0.26750000E+00 -0.22795374E-03 0.76728607E-04 0.27648116E-03 0.98133427E-04 0.27000000E+00 -0.21688200E-03 0.11015251E-03 0.28654856E-03 0.71076700E-04 0.27250000E+00 -0.20178257E-03 0.14457276E-03 0.29321841E-03 0.40874836E-04 0.27500000E+00 -0.18256204E-03 0.17956465E-03 0.29612869E-03 0.77235737E-05 0.27750000E+00 -0.15917985E-03 0.21466204E-03 0.29494404E-03 -0.28123055E-04 0.28000000E+00 -0.13165303E-03 0.24936095E-03 0.28936273E-03 -0.66351893E-04 0.28250000E+00 -0.10006040E-03 0.28312394E-03 0.27912370E-03 -0.10659062E-03 0.28500000E+00 -0.64546285E-04 0.31538538E-03 0.26401350E-03 -0.14840858E-03 0.28750000E+00 -0.25323460E-04 0.34555745E-03 0.24387317E-03 -0.19131852E-03 0.29000000E+00 0.17324588E-04 0.37303707E-03 0.21860476E-03 -0.23477928E-03 0.29250000E+00 0.63042300E-04 0.39721345E-03 0.18817753E-03 -0.27819953E-03 0.29500000E+00 0.11140162E-03 0.41747641E-03 0.15263363E-03 -0.32094242E-03 0.29750000E+00 0.16190260E-03 0.43322538E-03 0.11209318E-03 -0.36233143E-03 0.30000000E+00 0.21397508E-03 0.44387884E-03 0.66758542E-04 -0.40165703E-03 0.30250000E+00 0.26698154E-03 0.44888437E-03 0.16917848E-04 -0.43818457E-03 0.30500000E+00 0.32022119E-03 0.44772890E-03 -0.37052583E-04 -0.47116300E-03 0.30750000E+00 0.37293522E-03 0.43994932E-03 -0.94686843E-04 -0.49983453E-03 0.31000000E+00 0.42431338E-03 0.42514313E-03 -0.15542926E-03 -0.52344520E-03 0.31250000E+00 0.47350178E-03 0.40297899E-03 -0.21863550E-03 -0.54125618E-03 0.31500000E+00 0.51961201E-03 0.37320713E-03 -0.28357509E-03 -0.55255572E-03 0.31750000E+00 0.56173131E-03 0.33566937E-03 -0.34943535E-03 -0.55667163E-03 0.32000000E+00 0.59893409E-03 0.29030852E-03 -0.41532684E-03 -0.55298421E-03 0.32250000E+00 0.63029441E-03 0.23717712E-03 -0.48029040E-03 -0.54093935E-03 0.32500000E+00 0.65489944E-03 0.17644519E-03 -0.54330566E-03 -0.52006175E-03 0.32750000E+00 0.67186382E-03 0.10840693E-03 -0.60330121E-03 -0.48996798E-03 0.33000000E+00 0.68034474E-03 0.33486064E-04 -0.65916622E-03 -0.45037924E-03 0.33250000E+00 0.67955751E-03 -0.47760199E-04 -0.70976363E-03 -0.40113357E-03 0.33500000E+00 0.66879161E-03 -0.13463895E-03 -0.75394464E-03 -0.34219733E-03 0.33750000E+00 0.64742674E-03 -0.22632108E-03 -0.79056463E-03 -0.27367570E-03 0.34000000E+00 0.61494899E-03 -0.32184282E-03 -0.81850011E-03 -0.19582192E-03 0.34250000E+00 0.57096660E-03 -0.42010926E-03 -0.83666685E-03 -0.10904514E-03 0.34500000E+00 0.51522517E-03 -0.51990014E-03 -0.84403869E-03 -0.13916641E-04 0.34750000E+00 0.44762208E-03 -0.61987788E-03 -0.83966705E-03 0.88825941E-04 0.35000000E+00 0.36821984E-03 -0.71859798E-03 -0.82270088E-03 0.19827637E-03 0.35250000E+00 0.27725803E-03 -0.81452177E-03 -0.79240659E-03 0.31335992E-03 0.35500000E+00 0.17516358E-03 -0.90603150E-03 -0.74818797E-03 0.43283593E-03 0.35750000E+00 0.62559149E-04 -0.99144781E-03 -0.68960555E-03 0.55530298E-03 0.36000000E+00 -0.59730708E-04 -0.10690494E-02 -0.61639528E-03 0.67920683E-03 0.36250000E+00 -0.19067586E-03 -0.11370951E-02 -0.52848598E-03 0.80285118E-03 0.36500000E+00 -0.32903959E-03 -0.11938473E-02 -0.42601547E-03 0.92441135E-03 0.36750000E+00 -0.47338060E-03 -0.12375979E-02 -0.30934479E-03 0.10419510E-02 0.37000000E+00 -0.62205806E-03 -0.12666956E-02 -0.17907035E-03 0.11534414E-02 0.37250000E+00 -0.77324001E-03 -0.12795742E-02 -0.36033551E-04 0.12567844E-02 0.37500000E+00 -0.92491526E-03 -0.12747822E-02 0.11867239E-03 0.13498369E-02 0.37750000E+00 -0.10749087E-02 -0.12510129E-02 0.28369881E-03 0.14304394E-02 0.38000000E+00 -0.12209003E-02 -0.12071348E-02 0.45744134E-03 0.14964455E-02 0.38250000E+00 -0.13604478E-02 -0.11422216E-02 0.63804344E-03 0.15457549E-02 0.38500000E+00 -0.14910125E-02 -0.10555819E-02 0.82340382E-03 0.15763472E-02 0.38750000E+00 -0.16099893E-02 -0.94678763E-03 0.10111880E-02 0.15863177E-02 0.39000000E+00 -0.17147391E-02 -0.81570046E-03 0.11988444E-02 0.15739145E-02 0.39250000E+00 -0.18026248E-02 -0.66249676E-03 0.13836244E-02 0.15375755E-02 0.39500000E+00 -0.18710500E-02 -0.48768938E-03 0.15626072E-02 0.14759663E-02 0.39750000E+00 -0.19175000E-02 -0.29214639E-03 0.17327291E-02 0.13880174E-02 0.40000000E+00 -0.19395851E-02 -0.77106132E-04 0.18908172E-02 0.12729604E-02 0.40250000E+00 -0.19350847E-02 0.15581207E-03 0.20336268E-02 0.11303625E-02 0.40500000E+00 -0.19019934E-02 0.40460182E-03 0.21578834E-02 0.96015934E-03 0.40750000E+00 -0.18385668E-02 0.66686879E-03 0.22603285E-02 0.76268419E-03 0.41000000E+00 -0.17433672E-02 0.93983544E-03 0.23377677E-02 0.53869441E-03 0.41250000E+00 -0.16153087E-02 0.12203517E-02 0.23871227E-02 0.28939325E-03 0.41500000E+00 -0.14537002E-02 0.15049119E-02 0.24054855E-02 0.16447083E-04 0.41750000E+00 -0.12582867E-02 0.17896782E-02 0.23901736E-02 -0.27800283E-03 0.42000000E+00 -0.10292863E-02 0.20705110E-02 0.23387871E-02 -0.59133462E-03 0.42250000E+00 -0.76742445E-03 0.23430053E-02 0.22492655E-02 -0.92044661E-03 0.42500000E+00 -0.47396265E-03 0.26025347E-02 0.21199444E-02 -0.12617652E-02 0.42750000E+00 -0.15072184E-03 0.28443019E-02 0.19496105E-02 -0.16112602E-02 0.43000000E+00 0.19990059E-03 0.30633945E-02 0.17375544E-02 -0.19644682E-02 0.43250000E+00 0.57492086E-03 0.32548489E-02 0.14836206E-02 -0.23165238E-02 0.43500000E+00 0.97076672E-03 0.34137179E-02 0.11882525E-02 -0.26621994E-02 0.43750000E+00 0.13832837E-02 0.35351442E-02 0.85253254E-03 -0.29959530E-02 0.44000000E+00 0.18077502E-02 0.36144390E-02 0.47821671E-03 -0.33119849E-02 0.44250000E+00 0.22389028E-02 0.36471627E-02 0.67760897E-04 -0.36043024E-02 0.44500000E+00 0.26709700E-02 0.36292097E-02 -0.37566019E-03 -0.38667917E-02 0.44750000E+00 0.30977177E-02 0.35568940E-02 -0.84814341E-03 -0.40932979E-02 0.45000000E+00 0.35125035E-02 0.34270359E-02 -0.13450574E-02 -0.42777121E-02 0.45250000E+00 0.39083423E-02 0.32370478E-02 -0.18610534E-02 -0.44140634E-02 0.45500000E+00 0.42779811E-02 0.29850180E-02 -0.23900874E-02 -0.44966176E-02 0.45750000E+00 0.46139845E-02 0.26697912E-02 -0.29254544E-02 -0.45199788E-02 0.46000000E+00 0.49088286E-02 0.22910446E-02 -0.34598345E-02 -0.44791947E-02 0.46250000E+00 0.51550039E-02 0.18493572E-02 -0.39853520E-02 -0.43698636E-02 0.46500000E+00 0.53451265E-02 0.13462716E-02 -0.44936471E-02 -0.41882414E-02 0.46750000E+00 0.54720550E-02 0.78434678E-03 -0.49759600E-02 -0.39313474E-02 0.47000000E+00 0.55290139E-02 0.16719959E-03 -0.54232278E-02 -0.35970674E-02 0.47250000E+00 0.55097212E-02 -0.50046536E-03 -0.58261932E-02 -0.31842520E-02 0.47500000E+00 0.54085182E-02 -0.12128397E-02 -0.61755242E-02 -0.26928082E-02 0.47750000E+00 0.52205008E-02 -0.19630102E-02 -0.64619447E-02 -0.21237833E-02 0.48000000E+00 0.49416498E-02 -0.27429735E-02 -0.66763740E-02 -0.14794382E-02 0.48250000E+00 0.45689585E-02 -0.35436679E-02 -0.68100749E-02 -0.76330872E-03 0.48500000E+00 0.41005553E-02 -0.43550233E-02 -0.68548074E-02 0.19746429E-04 0.48750000E+00 0.35358199E-02 -0.51660296E-02 -0.68029881E-02 0.86351377E-03 0.49000000E+00 0.28754891E-02 -0.59648241E-02 -0.66478518E-02 0.17604101E-02 0.49250000E+00 0.21217527E-02 -0.67387982E-02 -0.63836138E-02 0.27014862E-02 0.49500000E+00 0.12783337E-02 -0.74747231E-02 -0.60056309E-02 0.36764513E-02 0.49750000E+00 0.35055430E-03 -0.81588951E-02 -0.55105582E-02 0.46737179E-02 0.50000000E+00 -0.65461779E-03 -0.87772977E-02 -0.48964985E-02 0.56804701E-02 0.50250000E+00 -0.17285425E-02 -0.93157826E-02 -0.41631436E-02 0.66827547E-02 0.50500000E+00 -0.28609033E-02 -0.97602655E-02 -0.33119022E-02 0.76655953E-02 0.50750000E+00 -0.40397273E-02 -0.10096937E-01 -0.23460133E-02 0.86131318E-02 0.51000000E+00 -0.52514307E-02 -0.10312484E-01 -0.12706417E-02 0.95087824E-02 0.51250000E+00 -0.64808916E-02 -0.10394325E-01 -0.92952848E-04 0.10335429E-01 0.51500000E+00 -0.77115511E-02 -0.10330851E-01 0.11778359E-02 0.11075628E-01 0.51750000E+00 -0.89255426E-02 -0.10111668E-01 0.25304298E-02 0.11711836E-01 0.52000000E+00 -0.10103851E-01 -0.97278436E-02 0.39514594E-02 0.12226660E-01 0.52250000E+00 -0.11226502E-01 -0.91721555E-02 0.54255146E-02 0.12603127E-01 0.52500000E+00 -0.12272774E-01 -0.84393258E-02 0.69352103E-02 0.12824961E-01 0.52750000E+00 -0.13221451E-01 -0.75262511E-02 0.84612869E-02 0.12876878E-01 0.53000000E+00 -0.14051084E-01 -0.64322175E-02 0.99827454E-02 0.12744885E-01 0.53250000E+00 -0.14740295E-01 -0.51590966E-02 0.11477019E-01 0.12416589E-01 0.53500000E+00 -0.15268086E-01 -0.37115198E-02 0.12920180E-01 0.11881500E-01 0.53750000E+00 -0.15614182E-01 -0.20970253E-02 0.14287184E-01 0.11131330E-01 0.54000000E+00 -0.15759381E-01 -0.32617481E-03 0.15552152E-01 0.10160290E-01 0.54250000E+00 -0.15685916E-01 0.15873659E-02 0.16688675E-01 0.89653646E-02 0.54500000E+00 -0.15377826E-01 0.36267846E-02 0.17670168E-01 0.75465692E-02 0.54750000E+00 -0.14821334E-01 0.57721229E-02 0.18470237E-01 0.59071861E-02 0.55000000E+00 -0.14005213E-01 0.80003230E-02 0.19063083E-01 0.40539674E-02 0.55250000E+00 -0.12921151E-01 0.10285323E-01 0.19423920E-01 0.19973056E-02 0.55500000E+00 -0.11564099E-01 0.12598202E-01 0.19529419E-01 -0.24863646E-03 0.55750000E+00 -0.99325963E-02 0.14907382E-01 0.19358158E-01 -0.26658387E-02 0.56000000E+00 -0.80290763E-02 0.17178879E-01 0.18891086E-01 -0.52323859E-02 0.56250000E+00 -0.58601292E-02 0.19376612E-01 0.18111979E-01 -0.79224814E-02 0.56500000E+00 -0.34367320E-02 0.21462767E-01 0.17007900E-01 -0.10706518E-01 0.56750000E+00 -0.77442964E-03 0.23398213E-01 0.15569646E-01 -0.13551207E-01 0.57000000E+00 0.21065360E-02 0.25142969E-01 0.13792170E-01 -0.16419774E-01 0.57250000E+00 0.51811556E-02 0.26656721E-01 0.11674983E-01 -0.19272213E-01 0.57500000E+00 0.84196461E-02 0.27899386E-01 0.92225139E-02 -0.22065617E-01 0.57750000E+00 0.11787513E-01 0.28831715E-01 0.64444372E-02 -0.24754572E-01 0.58000000E+00 0.15245688E-01 0.29415932E-01 0.33559391E-02 -0.27291621E-01 0.58250000E+00 0.18750740E-01 0.29616397E-01 -0.22070328E-04 -0.29627802E-01 0.58500000E+00 0.22255173E-01 0.29400300E-01 -0.36628131E-02 -0.31713249E-01 0.58750000E+00 0.25707801E-01 0.28738358E-01 -0.75335756E-02 -0.33497861E-01 0.59000000E+00 0.29054208E-01 0.27605520E-01 -0.11595723E-01 -0.34932026E-01 0.59250000E+00 0.32237294E-01 0.25981663E-01 -0.15804803E-01 -0.35967410E-01 0.59500000E+00 0.35197896E-01 0.23852276E-01 -0.20110747E-01 -0.36557770E-01 0.59750000E+00 0.37875496E-01 0.21209102E-01 -0.24458168E-01 -0.36659824E-01 0.60000000E+00 0.40208997E-01 0.18050752E-01 -0.28786761E-01 -0.36234122E-01 0.60250000E+00 0.42137573E-01 0.14383257E-01 -0.33031817E-01 -0.35245936E-01 0.60500000E+00 0.43601576E-01 0.10220553E-01 -0.37124828E-01 -0.33666135E-01 0.60750000E+00 0.44543504E-01 0.55848950E-02 -0.40994207E-01 -0.31472042E-01 0.61000000E+00 0.44909002E-01 0.50717170E-03 -0.44566098E-01 -0.28648242E-01 0.61250000E+00 0.44647902E-01 -0.49728782E-02 -0.47765288E-01 -0.25187342E-01 0.61500000E+00 0.43715282E-01 -0.10806562E-01 -0.50516194E-01 -0.21090664E-01 0.61750000E+00 0.42072524E-01 -0.16936253E-01 -0.52743940E-01 -0.16368847E-01 0.62000000E+00 0.39688370E-01 -0.23295541E-01 -0.54375489E-01 -0.11042374E-01 0.62250000E+00 0.36539947E-01 -0.29809518E-01 -0.55340839E-01 -0.51419876E-02 0.62500000E+00 0.32613750E-01 -0.36395217E-01 -0.55574261E-01 0.12909853E-02 0.62750000E+00 0.27906565E-01 -0.42962188E-01 -0.55015565E-01 0.82044251E-02 0.63000000E+00 0.22426316E-01 -0.49413235E-01 -0.53611389E-01 0.15535318E-01 0.63250000E+00 0.16192812E-01 -0.55645300E-01 -0.51316491E-01 0.23209773E-01 0.63500000E+00 0.92383836E-02 -0.61550504E-01 -0.48095034E-01 0.31143166E-01 0.63750000E+00 0.16083861E-02 -0.67017339E-01 -0.43921840E-01 0.39240418E-01 0.64000000E+00 -0.66384491E-02 -0.71932001E-01 -0.38783611E-01 0.47396429E-01 0.64250000E+00 -0.15429828E-01 -0.76179871E-01 -0.32680079E-01 0.55496682E-01 0.64500000E+00 -0.24679892E-01 -0.79647125E-01 -0.25625080E-01 0.63418046E-01 0.64750000E+00 -0.34289412E-01 -0.82222465E-01 -0.17647516E-01 0.71029807E-01 0.65000000E+00 -0.44146198E-01 -0.83798955E-01 -0.87921830E-02 0.78194943E-01 0.65250000E+00 -0.54125730E-01 -0.84275950E-01 0.87957287E-03 0.84771675E-01 0.65500000E+00 -0.64092020E-01 -0.83561087E-01 0.11289394E-01 0.90615312E-01 0.65750000E+00 -0.73898716E-01 -0.81572318E-01 0.22341694E-01 0.95580381E-01 0.66000000E+00 -0.83390449E-01 -0.78239954E-01 0.33923698E-01 0.99523035E-01 0.66250000E+00 -0.92404412E-01 -0.73508687E-01 0.45905799E-01 0.10230371E+00 0.66500000E+00 -0.10077219E+00 -0.67339549E-01 0.58142228E-01 0.10378996E+00 0.66750000E+00 -0.10832182E+00 -0.59711773E-01 0.70472072E-01 0.10385940E+00 0.67000000E+00 -0.11488001E+00 -0.50624509E-01 0.82720646E-01 0.10240267E+00 0.67250000E+00 -0.12027465E+00 -0.40098364E-01 0.94701210E-01 0.99326326E-01 0.67500000E+00 -0.12433742E+00 -0.28176709E-01 0.10621701E+00 0.94555413E-01 0.67750000E+00 -0.12690652E+00 -0.14926733E-01 0.11706362E+00 0.88035861E-01 0.68000000E+00 -0.12782959E+00 -0.44020062E-03 0.12703153E+00 0.79736372E-01 0.68250000E+00 -0.12696664E+00 0.15166107E-01 0.13590896E+00 0.69649884E-01 0.68500000E+00 -0.12419301E+00 0.31750296E-01 0.14348475E+00 0.57794550E-01 0.68750000E+00 -0.11940235E+00 0.49145618E-01 0.14955144E+00 0.44214283E-01 0.69000000E+00 -0.11250954E+00 0.67161082E-01 0.15390832E+00 0.28978949E-01 0.69250000E+00 -0.10345351E+00 0.85582443E-01 0.15636450E+00 0.12184351E-01 0.69500000E+00 -0.92199900E-01 0.10417355E+00 0.15674197E+00 -0.60478425E-02 0.69750000E+00 -0.78743599E-01 0.12267805E+00 0.15487871E+00 -0.25570020E-01 0.70000000E+00 -0.63110986E-01 0.14082147E+00 0.15063177E+00 -0.46208268E-01 0.70250000E+00 -0.45361957E-01 0.15831368E+00 0.14388041E+00 -0.67761588E-01 0.70500000E+00 -0.25591614E-01 0.17485170E+00 0.13452940E+00 -0.90000682E-01 0.70750000E+00 -0.39316013E-02 0.19012292E+00 0.12251245E+00 -0.11266637E+00 0.71000000E+00 0.19448966E-01 0.20380880E+00 0.10779591E+00 -0.13546784E+00 0.71250000E+00 0.44343031E-01 0.21558889E+00 0.90382528E-01 -0.15808115E+00 0.71500000E+00 0.70505644E-01 0.22514546E+00 0.70315530E-01 -0.18014838E+00 0.71750000E+00 0.97654569E-01 0.23216847E+00 0.47682579E-01 -0.20127805E+00 0.72000000E+00 0.12547152E+00 0.23636115E+00 0.22619663E-01 -0.22104749E+00 0.72250000E+00 0.15360410E+00 0.23744586E+00 -0.46854714E-02 -0.23900770E+00 0.72500000E+00 0.18166841E+00 0.23517045E+00 -0.33990625E-01 -0.25469114E+00 0.72750000E+00 0.20925247E+00 0.22931483E+00 -0.64997573E-01 -0.26762278E+00 0.73000000E+00 0.23592045E+00 0.21969759E+00 -0.97351989E-01 -0.27733433E+00 0.73250000E+00 0.26121761E+00 0.20618263E+00 -0.13064522E+00 -0.28338111E+00 0.73500000E+00 0.28467606E+00 0.18868533E+00 -0.16441819E+00 -0.28536077E+00 0.73750000E+00 0.30582120E+00 0.16717824E+00 -0.19816757E+00 -0.28293250E+00 0.74000000E+00 0.32417884E+00 0.14169584E+00 -0.23135413E+00 -0.27583509E+00 0.74250000E+00 0.33928269E+00 0.11233818E+00 -0.26341317E+00 -0.26390210E+00 0.74500000E+00 0.35068239E+00 0.79273224E-01 -0.29376641E+00 -0.24707215E+00 0.74750000E+00 0.35795153E+00 0.42737716E-01 -0.32183474E+00 -0.22539297E+00 0.75000000E+00 0.36069589E+00 0.30364915E-02 -0.34705106E+00 -0.19901797E+00 0.75250000E+00 0.35856130E+00 -0.39459650E-01 -0.36887223E+00 -0.16819525E+00 0.75500000E+00 0.35124134E+00 -0.84317421E-01 -0.38678929E+00 -0.13324961E+00 0.75750000E+00 0.33848448E+00 -0.13104559E+00 -0.40033522E+00 -0.94559367E-01 0.76000000E+00 0.32010061E+00 -0.17910028E+00 -0.40908980E+00 -0.52530592E-01 0.76250000E+00 0.29596700E+00 -0.22789062E+00 -0.41268137E+00 -0.75724908E-02 0.76500000E+00 0.26603350E+00 -0.27678453E+00 -0.41078598E+00 0.39922243E-01 0.76750000E+00 0.23032710E+00 -0.32511421E+00 -0.40312473E+00 0.89587968E-01 0.77000000E+00 0.18895586E+00 -0.37218126E+00 -0.38946048E+00 0.14108404E+00 0.77250000E+00 0.14211228E+00 -0.41726153E+00 -0.36959582E+00 0.19407778E+00 0.77500000E+00 0.90076034E-01 -0.45960983E+00 -0.34337383E+00 0.24821173E+00 0.77750000E+00 0.33216182E-01 -0.49846500E+00 -0.31068376E+00 0.30305647E+00 0.78000000E+00 -0.28007268E-01 -0.53305606E+00 -0.27147285E+00 0.35805297E+00 0.78250000E+00 -0.93042655E-01 -0.56261008E+00 -0.22576545E+00 0.41245047E+00 0.78500000E+00 -0.16124703E+00 -0.58636288E+00 -0.17368921E+00 0.46524852E+00 0.78750000E+00 -0.23188801E+00 -0.60357311E+00 -0.11550756E+00 0.51515311E+00 0.79000000E+00 -0.30414749E+00 -0.61354052E+00 -0.51655885E-01 0.56055781E+00 0.79250000E+00 -0.37712785E+00 -0.61562850E+00 0.17221915E-01 0.59955988E+00 0.79500000E+00 -0.44986103E+00 -0.60929082E+00 0.90241382E-01 0.63001943E+00 0.79750000E+00 -0.52132101E+00 -0.59410159E+00 0.16625517E+00 0.64966544E+00 0.80000000E+00 -0.59043995E+00 -0.56978706E+00 0.24384606E+00 0.65624725E+00 0.80250000E+00 -0.65612814E+00 -0.53625701E+00 0.32134026E+00 0.64772318E+00 0.80500000E+00 -0.71729746E+00 -0.49363330E+00 0.39684455E+00 0.62247118E+00 0.80750000E+00 -0.77288801E+00 -0.44227239E+00 0.46830872E+00 0.57949987E+00 0.81000000E+00 -0.82189679E+00 -0.38277909E+00 0.53361174E+00 0.51863434E+00 0.81250000E+00 -0.86340746E+00 -0.31600886E+00 0.59066724E+00 0.44065005E+00 0.81500000E+00 -0.89661953E+00 -0.24305682E+00 0.63754046E+00 0.34733104E+00 0.81750000E+00 -0.92087547E+00 -0.16523271E+00 0.67256696E+00 0.24143650E+00 0.82000000E+00 -0.93568397E+00 -0.84022195E-01 0.69446138E+00 0.12657010E+00 0.82250000E+00 -0.94073795E+00 -0.10364542E-02 0.70240544E+00 0.69599750E-02 0.82500000E+00 -0.93592598E+00 0.82047000E-01 0.69610538E+00 -0.11283023E+00 0.82750000E+00 -0.92133641E+00 0.16354813E+00 0.67581257E+00 -0.22822830E+00 0.83000000E+00 -0.89725384E+00 0.24184831E+00 0.64230492E+00 -0.33498150E+00 0.83250000E+00 -0.86414824E+00 0.31544983E+00 0.59683109E+00 -0.42944892E+00 0.83500000E+00 -0.82265750E+00 0.38302686E+00 0.54102380E+00 -0.50882627E+00 0.83750000E+00 -0.77356456E+00 0.44346472E+00 0.47679157E+00 -0.57128210E+00 0.84000000E+00 -0.71777074E+00 0.49588564E+00 0.40620010E+00 -0.61599643E+00 0.84250000E+00 -0.65626676E+00 0.53966032E+00 0.33135459E+00 -0.64310655E+00 0.84500000E+00 -0.59010329E+00 0.57440618E+00 0.25429341E+00 -0.65357536E+00 0.84750000E+00 -0.52036235E+00 0.59997406E+00 0.17690070E+00 -0.64900574E+00 0.85000000E+00 -0.44813087E+00 0.61642583E+00 0.10084303E+00 -0.63142767E+00 0.85250000E+00 -0.37447732E+00 0.62400619E+00 0.27531463E-01 -0.60308421E+00 0.85500000E+00 -0.30043183E+00 0.62311126E+00 -0.41891922E-01 -0.56623853E+00 0.85750000E+00 -0.22697015E+00 0.61425694E+00 -0.10654677E+00 -0.52301799E+00 0.86000000E+00 -0.15500120E+00 0.59804914E+00 -0.16579133E+00 -0.47530411E+00 0.86250000E+00 -0.85358033E-01 0.57515731E+00 -0.21918916E+00 -0.42467082E+00 0.86500000E+00 -0.18791626E-01 0.54629241E+00 -0.26647124E+00 -0.37236722E+00 0.86750000E+00 0.44032932E-01 0.51218922E+00 -0.30749825E+00 -0.31933738E+00 0.87000000E+00 0.10253845E+00 0.47359307E+00 -0.34222696E+00 -0.26626678E+00 0.87250000E+00 0.15623627E+00 0.43125008E+00 -0.37068317E+00 -0.21364454E+00 0.87500000E+00 0.20472594E+00 0.38590020E+00 -0.39294235E+00 -0.16183073E+00 0.87750000E+00 0.24769413E+00 0.33827211E+00 -0.40911823E+00 -0.11111975E+00 0.88000000E+00 0.28491308E+00 0.28907897E+00 -0.41935822E+00 -0.61792908E-01 0.88250000E+00 0.31623851E+00 0.23901444E+00 -0.42384424E+00 -0.14155674E-01 0.88500000E+00 0.34160705E+00 0.18874835E+00 -0.42279697E+00 0.31442144E-01 0.88750000E+00 0.36103310E+00 0.13892179E+00 -0.41648145E+00 0.74603037E-01 0.89000000E+00 0.37460517E+00 0.90141514E-01 -0.40521223E+00 0.11489293E+00 0.89250000E+00 0.38248139E+00 0.42973861E-01 -0.38935644E+00 0.15186319E+00 0.89500000E+00 0.38488433E+00 -0.20615160E-02 -0.36933390E+00 0.18507925E+00 0.89750000E+00 0.38209517E+00 -0.44497735E-01 -0.34561365E+00 0.21415114E+00 0.90000000E+00 0.37444705E+00 -0.83926133E-01 -0.31870689E+00 0.23876211E+00 0.90250000E+00 0.36231789E+00 -0.12000070E+00 -0.28915686E+00 0.25869170E+00 0.90500000E+00 0.34612281E+00 -0.15244116E+00 -0.25752647E+00 0.27383113E+00 0.90750000E+00 0.32630616E+00 -0.18103449E+00 -0.22438450E+00 0.28418989E+00 0.91000000E+00 0.30333358E+00 -0.20563480E+00 -0.19029170E+00 0.28989346E+00 0.91250000E+00 0.27768413E+00 -0.22616156E+00 -0.15578750E+00 0.29117316E+00 0.91500000E+00 0.24984267E+00 -0.24259641E+00 -0.12137841E+00 0.28834981E+00 0.91750000E+00 0.22029278E+00 -0.25497860E+00 -0.87528554E-01 0.28181320E+00 0.92000000E+00 0.18951024E+00 -0.26339958E+00 -0.54652866E-01 0.27199972E+00 0.92250000E+00 0.15795718E+00 -0.26799689E+00 -0.23112843E-01 0.25937006E+00 0.92500000E+00 0.12607700E+00 -0.26894769E+00 0.67850762E-02 0.24438882E+00 0.92750000E+00 0.94290058E-01 -0.26646221E+00 0.34788929E-01 0.22750731E+00 0.93000000E+00 0.62990131E-01 -0.26077749E+00 0.60698819E-01 0.20915030E+00 0.93250000E+00 0.32541587E-01 -0.25215135E+00 0.84363194E-01 0.18970696E+00 0.93500000E+00 0.32772526E-02 -0.24085693E+00 0.10567429E+00 0.16952592E+00 0.93750000E+00 -0.24503112E-01 -0.22717783E+00 0.12456319E+00 0.14891387E+00 0.94000000E+00 -0.50533783E-01 -0.21140373E+00 0.14099497E+00 0.12813701E+00 0.94250000E+00 -0.74583578E-01 -0.19382671E+00 0.15496399E+00 0.10742448E+00 0.94500000E+00 -0.96455931E-01 -0.17473793E+00 0.16648986E+00 0.86972946E-01 0.94750000E+00 -0.11598863E+00 -0.15442496E+00 0.17561380E+00 0.66951508E-01 0.95000000E+00 -0.13305323E+00 -0.13316932E+00 0.18239571E+00 0.47506337E-01 0.95250000E+00 -0.14755422E+00 -0.11124446E+00 0.18691166E+00 0.28764532E-01 0.95500000E+00 -0.15942796E+00 -0.88913923E-01 0.18925180E+00 0.10836940E-01 0.95750000E+00 -0.16864140E+00 -0.66429849E-01 0.18951855E+00 -0.61801528E-02 0.96000000E+00 -0.17519066E+00 -0.44031563E-01 0.18782494E+00 -0.22204384E-01 0.96250000E+00 -0.17909942E+00 -0.21944442E-01 0.18429293E+00 -0.37167525E-01 0.96500000E+00 -0.18041723E+00 -0.37895257E-03 0.17905169E+00 -0.51016248E-01 0.96750000E+00 -0.17921767E+00 0.20470102E-01 0.17223580E+00 -0.63713100E-01 0.97000000E+00 -0.17559648E+00 0.40424104E-01 0.16398329E+00 -0.75237362E-01 0.97250000E+00 -0.16966960E+00 0.59320913E-01 0.15443361E+00 -0.85585474E-01 0.97500000E+00 -0.16157123E+00 0.77014920E-01 0.14372566E+00 -0.94770800E-01 0.97750000E+00 -0.15145188E+00 0.93376853E-01 0.13199578E+00 -0.10282257E+00 0.98000000E+00 -0.13947641E+00 0.10829338E+00 0.11937597E+00 -0.10978397E+00 0.98250000E+00 -0.12582226E+00 0.12166648E+00 0.10599247E+00 -0.11570933E+00 0.98500000E+00 -0.11067756E+00 0.13341272E+00 0.91964522E-01 -0.12066072E+00 0.98750000E+00 -0.94239575E-01 0.14346236E+00 0.77403781E-01 -0.12470391E+00 0.99000000E+00 -0.76713037E-01 0.15175843E+00 0.62414078E-01 -0.12790410E+00 0.99250000E+00 -0.58308736E-01 0.15825584E+00 0.47091753E-01 -0.13032174E+00 0.99500000E+00 -0.39242150E-01 0.16292051E+00 0.31526459E-01 -0.13200852E+00 0.99750000E+00 -0.19732180E-01 0.16572866E+00 0.15802409E-01 -0.13300400E+00 0.10000000E+01 0.34041716E-07 0.16666625E+00 -0.27167038E-07 -0.13333300E+00 auto-07p-0.9.1+dfsg/07p/demos/rev/rev.f90000066400000000000000000000054421206161447600174550ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! cir : Homoclinic Bifurcation in an Electronic Circuit ! (the same equations as in demo tor) !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION P P=PAR(1) F(1)= U(2) F(2)= U(3) F(3)= U(4) F(4)= -P*U(3)-U(1)+U(1)**3 IF(IJAC.EQ.0)RETURN DFDU(1,1)=0.0d0 DFDU(1,2)=1.0d0 DFDU(1,3)=0.0d0 DFDU(1,4)=0.0d0 DFDU(2,1)=0.0d0 DFDU(2,2)=0.0d0 DFDU(2,3)=1.0d0 DFDU(2,4)=0.0d0 DFDU(3,1)=0.0d0 DFDU(3,2)=0.0d0 DFDU(3,3)=0.0d0 DFDU(3,4)=1.0d0 DFDU(4,1)=-1.0+3.0d0*U(1)**2 DFDU(4,2)=0.0d0 DFDU(4,3)=-P DFDU(4,4)=0.0d0 IF(IJAC.EQ.1)RETURN ! *Parameter derivatives DFDP(1,1)=0.0d0 DFDP(2,1)=0.0d0 DFDP(3,1)=0.0d0 DFDP(4,1)=-U(3) END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T !---------------------------------------------------------------------- ! Problem parameters (only PAR(1-9) are available to the user) : PAR(1)=1.6 ! P !---------------------------------------------------------------------- ! If IEQUIB >0 put initial equilibrium in PAR(11+i), i=1,...,NDIM : PAR(12) = 0.0 PAR(13) = 0.0 PAR(14) = 0.0 PAR(15) = 0.0 END SUBROUTINE STPNT SUBROUTINE PVLS(NDIM,U,PAR) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(IN) :: U(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: PAR(*) ! Homoclinic bifurcations COMMON block needed here : COMMON /BLHOM/ ITWIST,ISTART,IEQUIB,NFIXED,NPSI,NUNSTAB,NSTAB,NREV INTEGER ITWIST,ISTART,IEQUIB,NFIXED,NPSI,NUNSTAB,NSTAB,NREV INTEGER I ! If IEQUIB =0 put analytic equilibrium in PAR(11+i), i=1..NDIM IF(IEQUIB.EQ.0)THEN DO I=1,NDIM PAR(11+I)= 0.0 ENDDO ENDIF END SUBROUTINE PVLS SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT auto-07p-0.9.1+dfsg/07p/demos/san/000077500000000000000000000000001206161447600163215ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/san/c.san.1000066400000000000000000000005571206161447600174140ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 0, ILP = 0 ICP = [1, 8] NTST= 35, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX=99999, NPR=99999, MXBF= 10, IID = 2, ITMX= 9, ITNW= 7, NWTN= 3, JAC=-1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.05, DSMIN= 0.005, DSMAX= 0.1, IADS= 1 NPAR = 14, THL = {}, THU = {} UZSTOP = {1: 0.25} IEQUIB= 0 auto-07p-0.9.1+dfsg/07p/demos/san/c.san.10000066400000000000000000000005741206161447600174730ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 5, ILP = 0 ICP = [7, 8] NTST= 35, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX=99999, NPR=99999, MXBF= 10, IID = 2, ITMX= 9, ITNW= 7, NWTN= 3, JAC=-1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.05, DSMIN= 0.005, DSMAX= 0.1, IADS= 1 NPAR = 14, THL = {}, THU = {} UZSTOP = {7: 0.25} IEQUIB= 0, ITWIST= 0 auto-07p-0.9.1+dfsg/07p/demos/san/c.san.11000066400000000000000000000006361206161447600174730ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 6, ILP = 0 ICP = [7, 8, 31] NTST= 35, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX=99999, NPR=99999, MXBF= 10, IID = 2, ITMX= 9, ITNW= 7, NWTN= 3, JAC=-1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -0.05, DSMIN= 0.005, DSMAX= 0.1, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {31: 0.0}, UZSTOP = {7: -0.5} IEQUIB= 0, ITWIST= 0 IPSI= [11] auto-07p-0.9.1+dfsg/07p/demos/san/c.san.12000066400000000000000000000005721206161447600174730ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 7, ILP = 0 ICP = [7, 8, 6] NTST= 35, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 20, NPR= 5, MXBF= 10, IID = 2, ITMX= 9, ITNW= 7, NWTN= 3, JAC=-1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.05, DSMIN= 0.005, DSMAX= 0.1, IADS= 1 NPAR = 14, THL = {}, THU = {} IEQUIB= 0, ITWIST= 0 IFIXED= [11] auto-07p-0.9.1+dfsg/07p/demos/san/c.san.2000066400000000000000000000005631206161447600174120ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 2, ILP = 0 ICP = [9, 8] NTST= 35, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 2, NPR=99999, MXBF= 10, IID = 2, ITMX= 9, ITNW= 7, NWTN= 3, JAC=-1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.05, DSMIN= 0.005, DSMAX= 0.1, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {} IEQUIB= 0, ITWIST= 1 auto-07p-0.9.1+dfsg/07p/demos/san/c.san.3000066400000000000000000000006461206161447600174150ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 3, ILP = 0 ICP = [4, 8, 10, 21, 33] NTST= 35, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 50, NPR= 20, MXBF= 10, IID = 2, ITMX= 9, ITNW= 7, NWTN= 3, JAC=-1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.05, DSMIN= 0.005, DSMAX= 0.1, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {33: 0.0, 4: 1.0, 21: 0.0} IEQUIB= 0, ITWIST= 1 IPSI= [1, 13] auto-07p-0.9.1+dfsg/07p/demos/san/c.san.4000066400000000000000000000006251206161447600174130ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 2, ILP = 0 ICP = [4, 8, 10, 21, 33] NTST= 35, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 50, NPR=99999, MXBF= 10, IID = 2, ITMX= 9, ITNW= 7, NWTN= 3, JAC=-1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.05, DSMIN= 0.005, DSMAX= 0.1, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {33: 0.0} IEQUIB= 0, ITWIST= 1 IPSI= [1, 13] auto-07p-0.9.1+dfsg/07p/demos/san/c.san.5000066400000000000000000000006461206161447600174170ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 6, ILP = 0 ICP = [1, 8, 10, 21, 33] NTST= 35, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 20, NPR= 20, MXBF= 10, IID = 2, ITMX= 9, ITNW= 7, NWTN= 3, JAC=-1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -0.05, DSMIN= 0.005, DSMAX= 0.1, IADS= 1 NPAR = 14, THL = {}, THU = {} UZR = {33: 0.0, 4: 1.0, 21: 0.0} IEQUIB= 0, ITWIST= 1 IPSI= [1, 13] auto-07p-0.9.1+dfsg/07p/demos/san/c.san.6000066400000000000000000000005731206161447600174170ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 0, ILP = 0 ICP = [4, 8] NTST= 35, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX=99999, NPR=99999, MXBF= 10, IID = 2, ITMX= 9, ITNW= 7, NWTN= 3, JAC=-1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.05, DSMIN= 0.005, DSMAX= 0.1, IADS= 1 NPAR = 14, THL = {}, THU = {} UZSTOP = {4: 1.0} IEQUIB= 0, ITWIST= 0 auto-07p-0.9.1+dfsg/07p/demos/san/c.san.7000066400000000000000000000005731206161447600174200ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 2, ILP = 0 ICP = [5, 8] NTST= 35, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX=99999, NPR=99999, MXBF= 10, IID = 2, ITMX= 9, ITNW= 7, NWTN= 3, JAC=-1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -0.05, DSMIN= 0.005, DSMAX= 0.1, IADS= 1 NPAR = 14, THL = {}, THU = {} UZSTOP = {5: 0.0} IEQUIB= 0, ITWIST= 0 auto-07p-0.9.1+dfsg/07p/demos/san/c.san.8000066400000000000000000000005731206161447600174210ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 3, ILP = 0 ICP = [1, 8] NTST= 35, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX=99999, NPR=99999, MXBF= 10, IID = 2, ITMX= 9, ITNW= 7, NWTN= 3, JAC=-1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.05, DSMIN= 0.005, DSMAX= 0.1, IADS= 1 NPAR = 14, THL = {}, THU = {} UZSTOP = {1: 0.5} IEQUIB= 0, ITWIST= 0 auto-07p-0.9.1+dfsg/07p/demos/san/c.san.9000066400000000000000000000005731206161447600174220ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 4, ILP = 0 ICP = [2, 8] NTST= 35, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX=99999, NPR=99999, MXBF= 10, IID = 2, ITMX= 9, ITNW= 7, NWTN= 3, JAC=-1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.05, DSMIN= 0.005, DSMAX= 0.1, IADS= 1 NPAR = 14, THL = {}, THU = {} UZSTOP = {2: 3.0} IEQUIB= 0, ITWIST= 0 auto-07p-0.9.1+dfsg/07p/demos/san/clean.auto000066400000000000000000000002351206161447600202750ustar00rootroot00000000000000#============== # AUTO Demo san #============== print "\n***Clean the directory***" dl("1") dl("2") dl("3") dl("4") dl("5") dl("6") dl("11") dl("12") cl() auto-07p-0.9.1+dfsg/07p/demos/san/san.auto000066400000000000000000000030431206161447600177740ustar00rootroot00000000000000#========= # Demo san #========= pgm = 'san' print "Starting from analytical solution" print pgm, ": first run : continuation in PAR(1)" san=load('san',IPS=9,NDIM=3,ISP=0,ILP=0,ITNW=7,JAC=-1,NTST=35,IEQUIB=0,DS=0.05) r1=run(san,ICP=[1,8],UZSTOP={1:0.25}) print pgm, ": second run : generate adjoint variables" r2=run(r1,ICP=[9,8],ITWIST=1,NMX=2,UZSTOP={}) print pgm, ": third run : continue homoclinic orbit and adjoint" r3=run(r2,ICP=[4,8,10,21,33],IPSI=[1,13],NMX=50,NPR=20,UZR={4:1.0,21:0,33:0}) save(r3,'3') print pgm, ": fourth run : no convergence without dummy step" r4=run(r1,ICP=[4,8,10,21,33],ITWIST=1,IPSI=[1,13],NMX=50,UZR={33:0}) print pgm, ": fifth run : continue non-orientable orbit" r5=run(r3('UZ2'),ICP=[1,8,10,21,33],NMX=20,DS='-',sv='5') print pgm, ": sixth run : restart and homotopy to PAR(4)=1.0" r6=run(san,ICP=[4,8],UZSTOP={4:1}) print pgm, ": seventh run : homotopy to PAR(5)=0.0" r7=run(r6,ICP=[5,8],UZSTOP={5:0},DS='-') print pgm, ": eighth run : homotopy to PAR(1)=0.5" r8=run(r7,ICP=[1,8],UZSTOP={1:0.5},DS='-') print pgm, ": ninth run : homotopy to PAR(2)=3.0" r9=run(r8,ICP=[2,8],UZSTOP={2:3.0}) print pgm, ": tenth run : homotopy to PAR(7)=0.25" r10=run(r9,ICP=[7,8],UZSTOP={7:0.25}) print pgm, ": eleventh run : continue in PAR(7) to detect orbit flip" r11=run(r10,ICP=[7,8,31],IPSI=[11],UZR={31:0.0},UZSTOP={7:-0.5},DS='-') save(r11,'11') print pgm, ": twelfth run : three-parameter continuation of orbit flip" of = r11('UZ1') r12=run(of,ICP=[7,8,6],IPSI=[],NPR=5,NMX=20,IFIXED=[11],UZR={},UZSTOP={},DS='-') save(r12,'12') auto-07p-0.9.1+dfsg/07p/demos/san/san.f90000066400000000000000000000100201206161447600174130ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! hom : Homoclinic bifurcations in general test example equation !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) F(1)= PAR(1)*U(1) + PAR(2)*U(2) - PAR(1)*U(1)*U(1) & + (PAR(8) - PAR(4)*U(3)) * U(1)*(2.0D0 - 3.0D0*U(1)) F(2)= PAR(2)*U(1) + PAR(1)*U(2) & - 1.5D0*PAR(2)*U(1)*U(1) - 1.5D0*PAR(1)*U(1)*U(2) & - (PAR(8) - PAR(4)*U(3)) * 2.0D0*U(2) F(3)= PAR(3)*U(3) + PAR(7)*U(1) + PAR(6)*U(1)*U(3) & + PAR(4)*PAR(5)*(U(1)*U(1)*(1.0D0-U(1))-U(2)*U(2)) IF(IJAC.EQ.0)RETURN DFDU(1,1)= PAR(1) - 2.0D0*PAR(1)*U(1) & + (PAR(8)-PAR(4)*U(3)) * (2.0D0-6.0D0*U(1)) DFDU(1,2)= PAR(2) DFDU(1,3)= - PAR(4) * U(1)*(2.0D0-3.0D0*U(1)) DFDU(2,1)= PAR(2) - 3.0D0*PAR(2)*U(1) - 1.5D0*PAR(1)*U(2) DFDU(2,2)= PAR(1) - 1.5D0*PAR(1)*U(1) & - (PAR(8)-PAR(4)*U(3)) * 2.0D0 DFDU(2,3)= 2.0D0*PAR(4)*U(2) DFDU(3,1)= PAR(7) + PAR(6)*U(3) & + PAR(4)*PAR(5) * U(1)*(2.0D0-3.0D0*U(1)) DFDU(3,2)= -2.0D0*PAR(4)*PAR(5) * U(2) DFDU(3,3)= PAR(3) + PAR(6)*U(1) IF(IJAC.EQ.1)RETURN ! No parameter derivatives are specified with this example END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------------- ! Sets parameter values for homoclinic bifurcation analysis (IPS=9). IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T ! ! COMMON block needed if IPS=9 (homoclinic bifurcations) : INTEGER ITWIST,ISTART,IEQUIB,NFIXED,NPSI,NUNSTAB,NSTAB,NREV COMMON /BLHOM/ ITWIST,ISTART,IEQUIB,NFIXED,NPSI,NUNSTAB,NSTAB,NREV DOUBLE PRECISION S !---------------------------------------------------------------------- ! Problem parameters (only PAR(1-9) are available to the user) : PAR(1) = 0.0D0 ! a PAR(2) = 1.0D0 ! b PAR(3) = -2.0D0 ! c PAR(4) = 0.0D0 ! alpha PAR(5) = 1.0D0 ! beta PAR(6) = 0.0D0 ! gamma PAR(7) = 0.0D0 ! mu PAR(8) = 0.0D0 ! tilde mu PAR(11)= 20.0D0 ! truncated time interval !---------------------------------------------------------------------- ! If IEQUIB=1 then put initial equilibrium in PAR(11+i), i=1,...,NDIM : IF (IEQUIB.NE.0) THEN PAR(12) = 0.0 PAR(13) = 0.0 PAR(14) = 0.0 ENDIF !---------------------------------------------------------------------- ! IF ISTART=2 then put analytic homoclinic orbit here with T in the ! interval [0,1] ! ! test example (a=0,b=1) S=(T-0.5)*PAR(11) U(1) = 1.0D0 - ( (1.0D0-DEXP(S))/(1.0D0+DEXP(S)) )**2 U(2) = 4.0D0 * DEXP(S) * (1.0D0-DEXP(S)) / (1.0D0+DEXP(S))**3 U(3) = 0.0D0 END SUBROUTINE STPNT SUBROUTINE PVLS(NDIM,U,PAR) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(IN) :: U(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: PAR(*) INTEGER I ! If IEQUIB=0 put analytic equilibrium in PAR(11+i), i=1,...,NDIM : DO I=1,NDIM PAR(11+i)=0 ENDDO END SUBROUTINE PVLS SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT auto-07p-0.9.1+dfsg/07p/demos/she/000077500000000000000000000000001206161447600163175ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/she/c.she000066400000000000000000000005651206161447600172500ustar00rootroot00000000000000dat = 'she' NDIM= 5, IPS = 9, IRS = 0, ILP = 0 ICP = [3, 1] NTST= 35, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 30, NPR= 5, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-06 DS = -0.02, DSMIN= 1e-05, DSMAX= 0.02, IADS= 1 NPAR = 21, THL = {}, THU = {} UZR = {} IEQUIB = -2 auto-07p-0.9.1+dfsg/07p/demos/she/c.she.1000066400000000000000000000005651206161447600174070ustar00rootroot00000000000000dat = 'she' NDIM= 5, IPS = 9, IRS = 0, ILP = 0 ICP = [3, 1] NTST= 35, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 30, NPR= 5, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-06 DS = -0.02, DSMIN= 1e-05, DSMAX= 0.02, IADS= 1 NPAR = 21, THL = {}, THU = {} UZR = {} IEQUIB = -2 auto-07p-0.9.1+dfsg/07p/demos/she/c.she.2000066400000000000000000000005641206161447600174070ustar00rootroot00000000000000dat = 'she' NDIM= 5, IPS = 9, IRS = 0, ILP = 0 ICP = [3, 1] NTST= 35, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 30, NPR= 5, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-06 DS = -0.02, DSMIN= 1e-05, DSMAX= 0.02, IADS= 1 NPAR = 21, THL = {}, THU = {} UZR = {} IEQUIB = -1 auto-07p-0.9.1+dfsg/07p/demos/she/c.she.3000066400000000000000000000005501206161447600174030ustar00rootroot00000000000000NDIM= 5, IPS = 9, IRS = 2, ILP = 0 ICP = [3, 1] NTST= 35, NCOL= 4, IAD = 1, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 35, NPR= 5, MXBF= 0, IID = 2, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-06 DS = 0.02, DSMIN= 1e-05, DSMAX= 0.02, IADS= 1 NPAR = 21, THL = {}, THU = {} UZR = {} IEQUIB = -1 auto-07p-0.9.1+dfsg/07p/demos/she/clean.auto000066400000000000000000000001531206161447600202720ustar00rootroot00000000000000#============== # AUTO Demo she #============== print "\n***Clean the directory***" dl("1") dl("2") cl() auto-07p-0.9.1+dfsg/07p/demos/she/she.auto000066400000000000000000000004621206161447600177720ustar00rootroot00000000000000#========= # Demo she #========= pgm = 'she' print pgm, ": first run : continue heteroclinic orbit" r1=run('she',c='she.1',sv='1') print pgm, ": second run : repeat with IEQUIB=-1" r2=run('she',c='she.2') print pgm, ": third run : continue in reverse direction" r3=run(r2(2),c='she.3') save(r2+r3,'2') auto-07p-0.9.1+dfsg/07p/demos/she/she.dat000066400000000000000000000074371206161447600176030ustar00rootroot00000000000000 0.000000E+00 0.404815E+00 -.163875E+00 0.730000E-08 0.143000E-07 0.100000E-08 0.728812E-02 0.404815E+00 -.163875E+00 0.840000E-08 0.175000E-07 0.150000E-08 0.161044E-01 0.404815E+00 -.163875E+00 0.103000E-07 0.221000E-07 0.210000E-08 0.266839E-01 0.404815E+00 -.163875E+00 0.133000E-07 0.288000E-07 0.320000E-08 0.393793E-01 0.404815E+00 -.163875E+00 0.183000E-07 0.397000E-07 0.480000E-08 0.546609E-01 0.404815E+00 -.163875E+00 0.267000E-07 0.581000E-07 0.750000E-08 0.729987E-01 0.404815E+00 -.163875E+00 0.422000E-07 0.918000E-07 0.125000E-07 0.948631E-01 0.404815E+00 -.163875E+00 0.731000E-07 0.158900E-06 0.223000E-07 0.115669E+00 0.404815E+00 -.163875E+00 0.123100E-06 0.267500E-06 0.382000E-07 0.140708E+00 0.404815E+00 -.163875E+00 0.230000E-06 0.500000E-06 0.720000E-07 0.170801E+00 0.404815E+00 -.163875E+00 0.487100E-06 0.105900E-05 0.153400E-06 0.206771E+00 0.404815E+00 -.163875E+00 0.119880E-05 0.260620E-05 0.378400E-06 0.240978E+00 0.404815E+00 -.163875E+00 0.282040E-05 0.613160E-05 0.890900E-06 0.273422E+00 0.404815E+00 -.163875E+00 0.635750E-05 0.138215E-04 0.200880E-05 0.312449E+00 0.404815E+00 -.163875E+00 0.168603E-04 0.366550E-04 0.532810E-05 0.349477E+00 0.404815E+00 -.163875E+00 0.425858E-04 0.925833E-04 0.134582E-04 0.384742E+00 0.404815E+00 -.163875E+00 0.102694E-03 0.223261E-03 0.324543E-04 0.418126E+00 0.404815E+00 -.163875E+00 0.236979E-03 0.515202E-03 0.748929E-04 0.458328E+00 0.404814E+00 -.163874E+00 0.646409E-03 0.140532E-02 0.204287E-03 0.496415E+00 0.404807E+00 -.163871E+00 0.167691E-02 0.364568E-02 0.529964E-03 0.532620E+00 0.404768E+00 -.163851E+00 0.414734E-02 0.901673E-02 0.131081E-02 0.567062E+00 0.404552E+00 -.163741E+00 0.979828E-02 0.213053E-01 0.309819E-02 0.599741E+00 0.403470E+00 -.163189E+00 0.221205E-01 0.481301E-01 0.700952E-02 0.630775E+00 0.398537E+00 -.160679E+00 0.474201E-01 0.103489E+00 0.151758E-01 0.660280E+00 0.378726E+00 -.150658E+00 0.935891E-01 0.206860E+00 0.312047E-01 0.688257E+00 0.316247E+00 -.119766E+00 0.153614E+00 0.356008E+00 0.592185E-01 0.702245E+00 0.258616E+00 -.924154E-01 0.173138E+00 0.424981E+00 0.785034E-01 0.715646E+00 0.192413E+00 -.627662E-01 0.171514E+00 0.462111E+00 0.987695E-01 0.728224E+00 0.130914E+00 -.375604E-01 0.149894E+00 0.463004E+00 0.117962E+00 0.743388E+00 0.730023E-01 -.169353E-01 0.109499E+00 0.429118E+00 0.138606E+00 0.757846E+00 0.380931E-01 -.684006E-02 0.717801E-01 0.380693E+00 0.154463E+00 0.771482E+00 0.193232E-01 -.261717E-02 0.443075E-01 0.333030E+00 0.165893E+00 0.784530E+00 0.975833E-02 -.986284E-03 0.265965E-01 0.291156E+00 0.173734E+00 0.800165E+00 0.415231E-02 -.289362E-03 0.137553E-01 0.246983E+00 0.179807E+00 0.814976E+00 0.179885E-02 -.870070E-04 0.711233E-02 0.211023E+00 0.182775E+00 0.829082E+00 0.799625E-03 -.271985E-04 0.372180E-02 0.181678E+00 0.183535E+00 0.842483E+00 0.366081E-03 -.890040E-05 0.198435E-02 0.157578E+00 0.182743E+00 0.855178E+00 0.172778E-03 -.305750E-05 0.108187E-02 0.137650E+00 0.180877E+00 0.867286E+00 0.839430E-04 -.110310E-05 0.604217E-03 0.121056E+00 0.178284E+00 0.881744E+00 0.346799E-04 -.323400E-06 0.298509E-03 0.103763E+00 0.174326E+00 0.895498E+00 0.143697E-04 -.100500E-06 0.152032E-03 0.896279E-01 0.169896E+00 0.908663E+00 0.557240E-05 -.331000E-07 0.797978E-04 0.779874E-01 0.165226E+00 0.921006E+00 0.151170E-05 -.115000E-07 0.431193E-04 0.683324E-01 0.160477E+00 0.932879E+00 -.540500E-06 -.420000E-08 0.239477E-04 0.602696E-01 0.155761E+00 0.946985E+00 -.196620E-05 -.130000E-08 0.117493E-04 0.518400E-01 0.149921E+00 0.960503E+00 -.290040E-05 -.400000E-09 0.590570E-05 0.449266E-01 0.144264E+00 0.973316E+00 -.368600E-05 -.100000E-09 0.300990E-05 0.392147E-01 0.138849E+00 0.985424E+00 -.445880E-05 -.100000E-09 0.152640E-05 0.344626E-01 0.133709E+00 0.100000E+01 -.550920E-05 0.000000E+00 0.598000E-06 0.295139E-01 0.127588E+00 auto-07p-0.9.1+dfsg/07p/demos/she/she.f90000066400000000000000000000102311206161447600174130ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! she : Heteroclinic Orbits In a Model of Shearing Instabilities !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- 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,*) INTEGER I,J DOUBLE PRECISION P11SS,T02CS,P12CS,P01CS,A01CS,MUS,Q,SIGMA,ZETA,PI2 P11SS=U(1) T02CS=U(2) P12CS=U(3) P01CS=U(4) A01CS=U(5) MUS=PAR(1) Q=PAR(2) SIGMA=PAR(3) ZETA=PAR(4) PI2=3.141592654D0*3.141592654D0 F(1)=P11SS*T02CS+P11SS*MUS-P12CS*P01CS F(2)=-(P11SS**2+T02CS) F(3)=P12CS*MUS+P11SS*P01CS-9*SIGMA*P12CS/(4*(SIGMA+1)) F(4)=(-Q*SIGMA*A01CS/PI2-SIGMA*P01CS+(3*P11SS*P12CS*(1+1/SIGMA)))/4 F(5)=ZETA*(P01CS-A01CS)/4 IF(IJAC.EQ.0)RETURN DFDU(1,1)=T02CS+MUS DFDU(1,2)=P11SS DFDU(1,3)=-P01CS DFDU(1,4)=-P12CS DFDU(1,5)=0 DFDU(2,1)=-2*P11SS DFDU(2,2)=-1 DFDU(2,3:5)=0 DFDU(3,1)=P01CS DFDU(3,3)=MUS-9*SIGMA/(4*(SIGMA+1)) DFDU(3,4)=P11SS DFDU(3,5)=0 DFDU(4,1)=3*P12CS*(SIGMA+1)/(4*SIGMA) DFDU(4,2)=0 DFDU(4,3)=3*P11SS*(SIGMA+1)/(4*SIGMA) DFDU(4,4)=-SIGMA/4 DFDU(4,5)=-Q*SIGMA/(4*PI2) DFDU(5,1:3)=0 DFDU(5,4)=ZETA/4 DFDU(5,5)=-ZETA/4 IF(IJAC.EQ.1)RETURN DFDP(1,1)=P11SS DFDP(1,2:4)=0 DFDP(3,1)=P12CS DFDP(3,2)=0 DFDP(3,3)=-9*P12CS/(4*(SIGMA+1)**2) DFDP(3,4)=0 DFDP(4,1)=0 DFDP(4,2)=-SIGMA*A01CS/(4*PI2) DFDP(4,3)=(-Q*A01CS/PI2-P01CS-3*P11SS*P12CS/SIGMA**2)/4 DFDP(4,4)=0 DFDP(5,1:3)=0 DFDP(5,4)=(P01CS-A01CS)/4 END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T ! !---------------------------------------------------------------------- ! Problem parameters (only PAR(1-9) are available to the user) : PAR(1)=0.163875d0 ! mu PAR(2)=0.0d0 ! q PAR(3)=0.5d0 ! sigma PAR(4)=0.2 ! zeta PAR(11)=85.07 ! Truncated time interval !---------------------------------------------------------------------- ! If IEQUIB =-2 put initial approximations to equilibria in ! PAR(11+i), i=1,...,NDIM : left-hand equilibrium ! PAR(11+i), i=NDIM+1,...,2*NDIM right-hand equilibrium PAR(12) = 0.4048147d0 PAR(13) = -0.163875d0 PAR(14) = 0.0 PAR(15) = 0.0 PAR(16) = 0.0 PAR(17) = 0.0 PAR(18) = 0.0 PAR(19) = 0.0 PAR(20) = 0.0 PAR(21) = 0.0 END SUBROUTINE STPNT SUBROUTINE PVLS(NDIM,U,PAR) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(IN) :: U(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: PAR(*) ! Homoclinic bifurcations COMMON block needed here : COMMON /BLHOM/ ITWIST,ISTART,IEQUIB,NFIXED,NPSI,NUNSTAB,NSTAB,NREV INTEGER ITWIST,ISTART,IEQUIB,NFIXED,NPSI,NUNSTAB,NSTAB,NREV INTEGER I ! If IEQUIB =-1 put analytic expressions for equilibria in ! PAR(11+i), i=1,..,NDIM left-hand equilibrium ! PAR(11+i), i=NDIM+1,...,2*NDIM right-hand equilibrium IF(IEQUIB.EQ.-1)THEN PAR(12)=DSQRT(PAR(1)) PAR(13)=-PAR(1) PAR(14)=0.0d0 PAR(15)=0.0d0 PAR(16)=0.0d0 DO I=NDIM+1,2*NDIM PAR(11+I)= 0.0 ENDDO ENDIF END SUBROUTINE PVLS SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT auto-07p-0.9.1+dfsg/07p/demos/sib/000077500000000000000000000000001206161447600163155ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/sib/c.sib000066400000000000000000000005511206161447600172370ustar00rootroot00000000000000NDIM= 3, IPS = 1, IRS = 0, ILP = 0 ICP = [1] NTST= 35, NCOL= 4, IAD = 1, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 10, NPR= 10, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.05, DSMIN= 0.001, DSMAX= 0.1, IADS= 1 NPAR = 5, THL = {11: 0.0}, THU = {} UZSTOP = {1: 0.375} auto-07p-0.9.1+dfsg/07p/demos/sib/c.sib.1000066400000000000000000000005511206161447600173760ustar00rootroot00000000000000NDIM= 3, IPS = 1, IRS = 0, ILP = 0 ICP = [1] NTST= 35, NCOL= 4, IAD = 1, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 10, NPR= 10, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.05, DSMIN= 0.001, DSMAX= 0.1, IADS= 1 NPAR = 5, THL = {11: 0.0}, THU = {} UZSTOP = {1: 0.375} auto-07p-0.9.1+dfsg/07p/demos/sib/c.sib.10000066400000000000000000000006251206161447600174600ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 16, ILP = 0 ICP = [21, 22, 24, 5] NTST= 35, NCOL= 4, IAD = 1, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 300, NPR= 10, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -0.01, DSMIN= 0.001, DSMAX= 1.0, IADS= 1 NPAR = 5, THL = {11: 0.0}, THU = {} UZSTOP = {22: 0.2} ITWIST = 1, ISTART = -3 IPSI = []auto-07p-0.9.1+dfsg/07p/demos/sib/c.sib.11000066400000000000000000000006431206161447600174610ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 29, ILP = 0 ICP = [4, 5, 22, 24] NTST= 35, NCOL= 4, IAD = 1, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 300, NPR= 310, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.01, DSMIN= 0.001, DSMAX= 0.01, IADS= 1 NPAR = 5, THL = {11: 0.0}, THU = {} UZR = {22: 0.0, 4: 0.082}, STOP = ['UZ2'] ITWIST = 1, ISTART = -3 auto-07p-0.9.1+dfsg/07p/demos/sib/c.sib.12000066400000000000000000000006221206161447600174570ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 31, ILP = 0 ICP = [4, 5, 23, 24] NTST= 40, NCOL= 4, IAD = 1, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 32, NPR= 310, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -1.0, DSMIN= 0.001, DSMAX= 1.0, IADS= 1 NPAR = 5, THL = {11: 0.0}, THU = {} UZR = {24: 0.0, 4: 0.18} ITWIST = 1, ISTART = -3 auto-07p-0.9.1+dfsg/07p/demos/sib/c.sib.13000066400000000000000000000006001206161447600174540ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 32, ILP = 0 ICP = [4, 5] NTST= 35, NCOL= 4, IAD = 1, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 30, NPR= 310, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -0.01, DSMIN= 0.001, DSMAX= 0.1, IADS= 1 NPAR = 5, THL = {11: 0.0}, THU = {} UZR = {4: 0.13} ITWIST = 0, ISTART = 1 auto-07p-0.9.1+dfsg/07p/demos/sib/c.sib.14000066400000000000000000000006011206161447600174560ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 34, ILP = 0 ICP = [4, 5] NTST= 35, NCOL= 4, IAD = 1, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 30, NPR= 310, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -0.01, DSMIN= 0.001, DSMAX= 0.1, IADS= 1 NPAR = 5, THL = {11: 0.0}, THU = {} UZR = {4: 0.145} ITWIST = 0, ISTART = 1 auto-07p-0.9.1+dfsg/07p/demos/sib/c.sib.2000066400000000000000000000005511206161447600173770ustar00rootroot00000000000000NDIM= 3, IPS = 1, IRS = 2, ILP = 0 ICP = [4] NTST= 35, NCOL= 4, IAD = 1, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 10, NPR= 10, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.05, DSMIN= 0.001, DSMAX= 0.1, IADS= 1 NPAR = 5, THL = {11: 0.0}, THU = {} UZSTOP = {1: 0.375} auto-07p-0.9.1+dfsg/07p/demos/sib/c.sib.3000066400000000000000000000005551206161447600174040ustar00rootroot00000000000000NDIM= 3, IPS = 2, IRS = 3, ILP = 0 ICP = [5, 11] NTST= 35, NCOL= 4, IAD = 1, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 10, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.01, DSMIN= 0.001, DSMAX= 0.01, IADS= 1 NPAR = 5, THL = {11: 0.0}, THU = {} UZSTOP = {11: 35.0} auto-07p-0.9.1+dfsg/07p/demos/sib/c.sib.4000066400000000000000000000005661206161447600174070ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 13, ILP = 0 ICP = [3, 5] NTST= 35, NCOL= 4, IAD = 1, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 200, NPR= 60, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.01, DSMIN= 0.001, DSMAX= 0.01, IADS= 1 NPAR = 5, THL = {11: 0.0}, THU = {} UZSTOP = {3: -2.0} ISTART = 4 auto-07p-0.9.1+dfsg/07p/demos/sib/c.sib.5000066400000000000000000000006021206161447600173770ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 14, ILP = 0 ICP = [5, 8] NTST= 35, NCOL= 4, IAD = 1, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 2, NPR= 60, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.01, DSMIN= 0.001, DSMAX= 0.01, IADS= 1 NPAR = 5, THL = {11: 0.0}, THU = {} UZSTOP = {3: -2.0} ITWIST = 1, ISTART = 1 auto-07p-0.9.1+dfsg/07p/demos/sib/c.sib.6000066400000000000000000000006431206161447600174050ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 15, ILP = 0 ICP = [4, 5, 33] NTST= 35, NCOL= 4, IAD = 1, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 30, NPR= 60, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -0.01, DSMIN= 0.001, DSMAX= 1.0, IADS= 1 NPAR = 5, THL = {11: 0.0}, THU = {} UZR = {33: 0.0}, UZSTOP = {4: 0.0} ITWIST = 1, ISTART = 1 IPSI = [13] auto-07p-0.9.1+dfsg/07p/demos/sib/c.sib.7000066400000000000000000000006221206161447600174030ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 16, ILP = 0 ICP = [21, 22, 5] NTST= 35, NCOL= 4, IAD = 1, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 300, NPR= 10, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -0.01, DSMIN= 0.001, DSMAX= 1.0, IADS= 1 NPAR = 5, THL = {11: 0.0}, THU = {} UZSTOP = {22: 0.2} ITWIST = 1, ISTART = -2 IPSI = [] auto-07p-0.9.1+dfsg/07p/demos/sib/c.sib.8000066400000000000000000000006371206161447600174120ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 21, ILP = 0 ICP = [4, 5, 22] NTST= 35, NCOL= 4, IAD = 1, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 300, NPR= 310, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.01, DSMIN= 0.001, DSMAX= 0.01, IADS= 1 NPAR = 5, THL = {11: 0.0}, THU = {} UZR = {22: 0.0, 4: 0.074}, STOP = ['UZ2'] ITWIST = 1, ISTART = -2 auto-07p-0.9.1+dfsg/07p/demos/sib/c.sib.9000066400000000000000000000006001206161447600174010ustar00rootroot00000000000000NDIM= 3, IPS = 9, IRS = 23, ILP = 0 ICP = [4, 5] NTST= 35, NCOL= 4, IAD = 1, ISP = 1, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 30, NPR= 310, MXBF= 0, IID = 3, ITMX= 10, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = -0.01, DSMIN= 0.001, DSMAX= 0.1, IADS= 1 NPAR = 5, THL = {11: 0.0}, THU = {} UZR = {4: 0.15} ITWIST = 0, ISTART = 1 auto-07p-0.9.1+dfsg/07p/demos/sib/clean.auto000066400000000000000000000002341206161447600202700ustar00rootroot00000000000000#============== # AUTO Demo sib #============== print "\n***Clean the directory***" dl("1") dl("2") dl("3") dl("4") dl("5") dl("6") dl("7") dl("10") cl() auto-07p-0.9.1+dfsg/07p/demos/sib/sib.auto000066400000000000000000000026251206161447600177710ustar00rootroot00000000000000#first run r1=run(e='sib',c='sib') save(r1,'1') #second run r2=run(r1,ICP=[4]) save(r2,'2') #third run r3=run(r2('HB1'),IPS=2,ICP=[5,11],NMX=200,DS=0.01,DSMAX=0.01,UZSTOP={11:35}) save(r3,'3') plot(r3) #fourth run r4=run(r3,IPS=9,ICP=[3,5],NPR=60,UZSTOP={3:-2.0},ISTART=4) save(r4,'4') #fifth run r5=run(r4,ICP=[5,8],NMX=2,ITWIST=1,ISTART=1) save(r5,'5') #sixth run r6=run(r5,ICP=[4,5,33],NMX=30,DS=-0.01,DSMAX=1.0,UZR={33:0.0}, UZSTOP={4:0.0},IPSI=[13]) #seventh run r7=run(r6('UZ1'),ICP=[21,22,5],NMX=300,NPR=10,UZR={},UZSTOP={22:0.2}, ISTART=-2,IPSI=[]) save(r7,'7') plot(r7) #eighth run r8=run(r7,ICP=[4,5,22],NPR=310,DS=0.01,DSMAX=0.01,UZSTOP={22:0.0}, UZR={4:0.074}) r6=r6+r8 #ninth run r9=run(r8,ICP=[4,5],NMX=30,DS='-',DSMAX=0.1,UZR={4:0.15},ISTART=1,ITWIST=0) r6=r6+r9 #tenth run r10=run(r6('UZ1'),ICP=[21,22,24,5],NMX=300,NPR=10,UZSTOP={22:0.2}, ISTART=-3,IPSI=[]) save(r10,'10') #eleventh run r11=run(r10,ICP=[4,5,22,24],NPR=310,DS=0.01,DSMAX=0.01, UZR={4:0.082},UZSTOP={22:0.0}) r6=r6+r11 #twelfth run r12=run(r11,ICP=[4,5,23,24],NMX=32,NTST=40,DS=-1.0,DSMAX=1.0, UZR={24:0.0,4:0.18},UZSTOP={}) r6=r6+r12 #thirteenth run r13=run(r6('UZ7'),ICP=[4,5],NMX=30,DS=-0.01,DSMAX=0.1,UZR={4:0.13},ISTART=1, ITWIST=0) r6=r6+r13 #fourteenth run r14=run(r6('UZ9'),ICP=[4,5],NMX=30,DS=-0.01,DSMAX=0.1,UZR={4:0.145},ISTART=1, ITWIST=0) r6=r6+r14 save(r6,'6') plot(r6) wait() auto-07p-0.9.1+dfsg/07p/demos/sib/sib.c000066400000000000000000000106201206161447600172350ustar00rootroot00000000000000#include "auto_f2c.h" /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* hom : Homoclinic bifurcations in general test example equation */ /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ int func (integer ndim, const doublereal *u, const integer *icp, const doublereal *par, integer ijac, doublereal *f, doublereal *dfdu, doublereal *dfdp) { /* System generated locals */ integer dfdu_dim1 = ndim; integer dfdp_dim1 = ndim; double a = par[0]; double b = par[1]; double c = par[2]; double alpha = par[3]; double mu = par[4]; double x = u[0]; double y = u[1]; double z = u[2]; f[0] = a * x + b * y - a * x * x - alpha * z * x * (2. - x * 3.); f[1] = b * x + a * y - 1.5 * x * (b * x + a * y) + alpha * z * 2. * y; f[2] = c * z + mu * x + 3.0 * x * z + alpha * (x * x * (1. - x) - y * y); if (ijac == 0) { return 0; } ARRAY2D(dfdu,0,0) = a - a * 2. * x - alpha * z * (2. - x * 6.); ARRAY2D(dfdu,0,1) = b; ARRAY2D(dfdu,0,2) = -alpha * x * (2. - x * 3.); ARRAY2D(dfdu,1,0) = b - b * 3. * x - a * 1.5 * y; ARRAY2D(dfdu,1,1) = a - a * 1.5 * x + alpha * z * 2.; ARRAY2D(dfdu,1,2) = alpha * 2. * y; ARRAY2D(dfdu,2,0) = mu + 3.0 * z + alpha * x * (2. - x * 3.); ARRAY2D(dfdu,2,1) = alpha * -2. * y; ARRAY2D(dfdu,2,2) = c + 3.0 * x; if (ijac == 1) { return 0; } ARRAY2D(dfdp,0,0) = x - x * x; ARRAY2D(dfdp,0,1) = y; ARRAY2D(dfdp,0,2) = 0; ARRAY2D(dfdp,0,3) = -z * x * (2. - x * 3.); ARRAY2D(dfdp,0,4) = 0; ARRAY2D(dfdp,1,0) = y - 1.5 * x * y; ARRAY2D(dfdp,1,1) = x - 1.5 * x * x; ARRAY2D(dfdp,1,2) = 0; ARRAY2D(dfdp,1,3) = z * 2. * y; ARRAY2D(dfdp,1,4) = 0; ARRAY2D(dfdp,2,0) = 0; ARRAY2D(dfdp,2,1) = 0; ARRAY2D(dfdp,2,2) = z; ARRAY2D(dfdp,2,3) = x * x * (1. - x) - y * y; ARRAY2D(dfdp,2,4) = x; return 0; } /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ int stpnt (integer ndim, doublereal t, doublereal *u, doublereal *par) { doublereal s; /* Sets parameter values for homoclinic bifurcation analysis (IPS=9). */ /* COMMON block needed if IPS=9 (homoclinic bifurcations) : */ /* ---------------------------------------------------------------------- */ /* Problem parameters (only PAR(1-9) are available to the user) : */ /* a */ par[0] = 0.; /* b */ par[1] = 0.625; /* c */ par[2] = -2.5; /* alpha */ par[3] = 0; /* mu */ par[4] = 0.; /* initial equilibrium */ u[0] = 2./3.; u[1] = 0; u[2] = 0; return 0; } /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ int pvls (integer ndim, const doublereal *u, doublereal *par) { return 0; } /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ 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; } /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ auto-07p-0.9.1+dfsg/07p/demos/sib/sib_old.auto000066400000000000000000000006761206161447600206330ustar00rootroot00000000000000ld('sib') rn() sv('1') rn(c='sib.2',s='1') sv('2') rn(c='sib.3',s='2') sv('3') #plot('3') wait() rn(c='sib.4',s='3') sv('4') rn(c='sib.5',s='4') sv('5') rn(c='sib.6',s='5') sv('6') rn(c='sib.7',s='6') sv('7') plot('7') wait() rn(c='sib.8',s='7') ap('6') rn(c='sib.9',s='6') ap('6') rn(c='sib.10',s='6') sv('10') rn(c='sib.11',s='10') ap('6') rn(c='sib.12',s='6') ap('6') rn(c='sib.13',s='6') ap('6') rn(c='sib.14',s='6') ap('6') plot('6') wait() auto-07p-0.9.1+dfsg/07p/demos/snh/000077500000000000000000000000001206161447600163305ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/snh/autorc000066400000000000000000000035271206161447600175570ustar00rootroot00000000000000[AUTO_plotter] #default_option="d1" #d1 = {"grid": "no", "use_labels": 1, "use_symbols": 1, "stability": 1} # similarly you can redefine d0, d2, d3, d4. #grid = "no" stability = 0 #use_labels = 1 #use_symbols = 0 #top_title = "SNH with reinjection: EtoP connections using Lin's method" #top_title_fontsize = 12 #xlabel = '' #xlabel_fontsize = 12 #ylabel = '' #ylabel_fontsize = 12 #solution_indepvarname = "time" #solution_coordnames = ["$x$","$y$","$\phi$"] #bifurcation_coordnames = ["$\nu_1$", "L2-norm", "max $x$", "max $y$", "max $z$", "$\nu_2$", "$\gamma$"] #line_width = 2.0 #dashes = (6.0,6.0) #background = "white" #foreground = "black" #color_list = "black red green blue" #symbol_color = "red" #symbol_font = "-misc-fixed-*-*-*-*-*-*-*-*-*-*-*-*" #decorations = 1 #smart_label = 1 #minx = 0 #maxx = 0 #miny = 0 #maxy = 0 #width = 600 #height = 480 #left_margin = 80 #right_margin = 40 #top_margin = 40 #bottom_margin = 40 #xticks = 5 #yticks = 5 #tick_label_template = "%.2e" #tick_length = 0.2 #odd_tick_length = 0.4 #even_tick_length = 0.2 #ps_colormode = "color" #mark_t = None #or a real value between 0 and 1 type = "bifurcation" # or "solution" bifurcation_x = [0] bifurcation_y = [5] solution_x = ['xgamma','x-','x+'] solution_y = ['ygamma','y-','y+'] solution_z = ['phigamma','phi-','phi+'] ## Sets of columns that the user is likely to want to use #bifurcation_column_defaults = None #solution_column_defaults = None # The label(s) of the solution we wish to draw #label = [1,2,3] #label_defaults = None # The index/indices of the solution we wish to draw #index = [0] #bifurcation_diagram_filename = 'fort.7' #solution_filename = 'fort.8' #bifurcation_symbol = "square" #limit_point_symbol = None #hopf_symbol = "fillsquare" #period_doubling_symbol = "doubletriangle" #torus_symbol = "filldiamond" #user_point_symbol = "U" #error_symbol = None auto-07p-0.9.1+dfsg/07p/demos/snh/cb.auto000066400000000000000000000047031206161447600176120ustar00rootroot00000000000000# AUTO demo snh # # Bifurcations of global reinjection orbits near a saddle-node Hopf bifurcation # compute the codimension-one PtoE connection via Lin's method print "\n1st run - find and continue equilibrium a : x=y=0, phi=-acos(-0.5*nu2)" # [ b would be x=y=0, phi=acos(-0.5*nu2) ] r1 = run(e='snh',ICP=['nu1'],NDIM=3,ILP=0,ITNW=7,ITMX=20,IPS=1, UZR={},PAR={},STOP=['HB1'],DS=0.1,DSMAX=1.0,NPAR=26, unames={1:'xgamma',2:'ygamma',3:'phigamma',4:'x',5:'y',6:'phi', 7:'x-',8:'y-',9:'phi-',10:'x+',11:'y+',12:'phi+'}, parnames={1:'nu1',2:'nu2',3:'d', 5:'delta',6:'eps',7:'mu',8:'h',9:'T-',10:'T+',11:'T', 21:'sigma-',22:'sigma+',23:'eta',24:'Zx',25:'Zy',26:'Zz'}) print "\n2nd run - switch to the periodic orbit and continue in nu1 up to 0.74" r2 = run(r1('HB1'),ICP=['nu1','T'],IPS=2,NTST=100, STOP=[],UZSTOP={'nu1':0.74},DSMAX=0.1) print "\n3rd run - extend the system" r3 = run(r2('UZ1'),ICP=['mu','h','T'],IPS=4,NDIM=6,NBC=7,NINT=1, STOP=['BP1'],UZSTOP={},DSMAX=1) print "\n4th run - normalize the Floquet bundle" print "also put a starting value into sigma- (which" print "measures the distance to Sigma = { phi=pi })" r4 = run(r3('BP1'),ISW=-1, STOP=[],UZSTOP={'h':1.0},DSMAX=100) print "\n5th run - integrate away from the periodic orbit, UZ points denote" print " intersections with Sigma" r5 = run(r4('UZ1'),ISW=0,ICP=['T-','mu','T','sigma-'],NDIM=9,NBC=11, UZSTOP={'sigma-':0},DS=1.0) print "\n6th run - integrate backwards from the equilibrium b : x=y=0, phi=acos(-0.5*nu2)" print "up to Sigma + put starting data for Lin vector and Lin gap in Zx, Zy, Zz, and eta." r6 = run(r5('UZ1'),ICP=['T+','sigma+','T-','mu','T'],NDIM=12,NBC=15,NPR=10, UZSTOP={'sigma+':0}) print "\n7th run - close the gap (with some intermediate solutions)" r7 = run(r6('UZ1'),ICP=['eta','nu1','delta','eps','T+','T-','mu','T'], NBC=17,NINT=2,NPR=5,THL={'T':0,'T-':0,'T+':0}, UZSTOP={'eta':0},DS=-0.01,DSMAX=0.01) save(r7,'closegap') # plot this, have a look at the solution coordinates 'x-'-vs-'phi-' and 'x+'-vs-'phi+' #plot(r7) #wait() print "\n8th run - keep the gap closed and continue in nu1,nu2" start8 = load(r7('UZ1'),ICP=['nu1','mu','delta','eps','nu2','T+','T-','T'], UZSTOP={},ILP=1,NPR=100,ISP=0,DS=0.1,DSMAX=0.1) r8 = merge(run(start8,UZSTOP={'delta':-3e-3}) + run(start8,DS='-',STOP=['LP1'])) save(r8,'cb') clean() print "\nDone." auto-07p-0.9.1+dfsg/07p/demos/snh/clean.auto000066400000000000000000000001061206161447600203010ustar00rootroot00000000000000for suffix in ['closegap','cb','tb','h1b','all']: dl(suffix) cl() auto-07p-0.9.1+dfsg/07p/demos/snh/h1b.auto000066400000000000000000000017061206161447600177000ustar00rootroot00000000000000# AUTO demo snh # # Bifurcations of global reinjection orbits near a saddle-node Hopf bifurcation # compute the 1-reinjection homoclinic orbit with respect to equilibrium point # b print "\n1st run - homotopy backwards in time from equilibrium b : x=y=0, phi=acos(-0.5*nu2)" r1 = run(e='snh',ICP=['T','omega'],NDIM=3,ILP=0,ITNW=7,IPS=9,ISTART=3,IEQUIB=-2, PAR={'nu1':0.5,'nu2':-1.88},NPAR=26, UZSTOP={'omega':0},DS=-0.01, unames={1:'xgamma',2:'ygamma',3:'phigamma'}, parnames={1:'nu1',2:'nu2',3:'d',11:'T',20:'omega'}) print "\n2nd run - improve connection" r2 = run(r1('UZ1'),ICP=['T','nu1'],DSMAX=10,UZSTOP={'T':-2000}) print "\n3rd run - follow connection forwards and backwards" st = load(r2('UZ1'),ICP=['nu1','nu2'], IEQUIB=1,ISTART=1,DSMIN=1e-9,DS=-0.005,DSMAX=0.005) r3 = merge(run(st,UZSTOP={},ILP=1,STOP=['LP20'],NTST=200) + run(st,UZSTOP={'nu2':-1.999},NTST=50,DS='-')) save(r3,'h1b') clean() print "\nDone." auto-07p-0.9.1+dfsg/07p/demos/snh/plaut04.rc000066400000000000000000000070371206161447600201560ustar00rootroot00000000000000#version 0.0 # Line colors are represented by RGB values from 0 to 1.0. # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and highlighting the solutions # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Initialize the default options: Highlight Orbit = No Orbit Animation = No Normalize Data = Yes Draw Background = No Draw Labels = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahead Coordinate Type = 3 # Draw Scale: Draw Scale = Yes # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 0 # Initialize the default graph style # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 0 #Set the window width and height: Window Width = 1000 Window Height = 600 # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 1,7,10 Y Axis Solution = 2,8,11 Z Axis Solution = 3,9,12 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 1 Z Axis Bifurcation = 2 #Labeled solutions: #-3 = Show all labeled solutions #-2 = Show HALF labeled solutions #-1 = Show SPEC labeled solutions #0 = Show NONE of the solutions #Otherwise, show the specified solution(s) Labels = -3 #Set coloring method: # -6 --- STABILITY # -5 --- POINT # -4 --- BRANCH # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. Coloring Method = -2 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 1.0 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Background color: Background Color = 0., 0., 0. # Background transparency: Background Transparency = 0.9 # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # UnStable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 # Color of the animation object: Object Color = 1.0, 1.0, 1.0 # Set the radius of the animation object: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Object Radius = 1.0 # Set the maximum and minimum animation speed: Object Max Animation Speed = 100 Object Min Animation Speed = 0 # Set the maximum and minimum highlighting animation speed: Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 # Set the active AUTO parameter indices: parameter ID = 10 # Choose 3D or 2D graph: 3DBif = No 3DSol = Yes # Set the number of periods animated. # The value should be the power of 2. Number of Period Animated = 1 auto-07p-0.9.1+dfsg/07p/demos/snh/snh.auto000066400000000000000000000007011206161447600200100ustar00rootroot00000000000000# AUTO demo snh # # Bifurcations of global reinjection orbits near a saddle-node Hopf bifurcation # compute the homoclinic orbit h^1_b using homotopy and HomCont auto('h1b.auto') # compute the codimension-one PtoE connection via Lin's method auto('cb.auto') # compute the codimension-zero PtoE connection and tangency using homotopy auto('tb.auto') copy('cb','all') append('h1b','all') append('tb','all') relabel('all') clean() print "\nDone." auto-07p-0.9.1+dfsg/07p/demos/snh/snh.f90000066400000000000000000000203661206161447600174470ustar00rootroot00000000000000!--------------------------------------------------------------------- !--------------------------------------------------------------------- ! snh: Bifurcations of global reinjection orbits near a saddle-node ! Hopf bifurcation: cycle-to-point connections ! ! Parameters: ! PAR(1) : nu1 ! PAR(2) : nu2 ! PAR(3) : d ! PAR(4) : codimension of connection (0 or 1) ! ! PAR(5) : delta: distance from cycle to start connection ! PAR(6) : eps: distance from end connection to point ! PAR(7) : mu: log of the Floquet multiplier ! PAR(8) : h: norm of eigenfunction for cycle at 0 ! PAR(9) : T^-: time for connection from cycle (U(7:9)) to section ! PAR(10) : T^+: time for connection from section (U(10:12)) to point ! PAR(11) : T: period of the cycle ! PAR(21) : sigma-: U1(9)-pi (phi-distance W^u(P) from section phi=pi) ! ( distance to W^u(b) for codim 0 connection) ! PAR(22) : sigma+: U0(12)-pi (phi-distance W^s(E) from section phi=pi) ! PAR(23) : eta: gap size for Lin vector ! PAR(24) : Z_x: Lin vector (x-coordinate) ! PAR(25) : Z_y: Lin vector (y-coordinate) ! PAR(26) : Z_z: Lin vector (z-coordinate) !--------------------------------------------------------------------- !--------------------------------------------------------------------- SUBROUTINE RHS(U,PAR,F,JAC,A) IMPLICIT NONE DOUBLE PRECISION, INTENT(IN) :: U(3), PAR(*) LOGICAL, INTENT(IN) :: JAC DOUBLE PRECISION, INTENT(OUT) :: F(3), A(3,3) DOUBLE PRECISION x, y, phi DOUBLE PRECISION nu1, nu2, alpha, beta, omega, c, d, fp, s DOUBLE PRECISION sphi, x2y2, cphinu, cphinu2 nu1 = PAR(1) nu2 = PAR(2) d = PAR(3) fp = 4*atan(1.0d0)*d alpha = -1 s = -1 c = 0 omega = 1 beta = 0 x = U(1) y = U(2) phi = U(3) sphi = sin(phi) x2y2 = x*x + y*y cphinu = 2*cos(phi)+nu2 cphinu2 = cphinu*cphinu F(1) = nu1*x - omega*y - (alpha*x - beta*y)*sphi - x2y2*x + d*cphinu2 F(2) = nu1*y + omega*x - (alpha*y + beta*x)*sphi - x2y2*y + fp*cphinu2 F(3) = nu2 + s*x2y2 + 2.0*cos(phi) + c*x2y2*x2y2 IF(JAC)THEN A(1,1) = nu1 - alpha*sphi - 3*x**2 - y**2 A(1,2) = -omega + beta*sphi - 2*x*y A(1,3) = -(alpha*x - beta*y)*cos(phi) - d*4*(2*cos(phi)+nu2)*sphi A(2,1) = omega - beta*sphi - 2*x*y A(2,2) = nu1 - alpha*sphi - 3*y**2 - x*x A(2,3) = -(alpha*y + beta*x)*cos(phi) - fp*4*(2*cos(phi) + nu2)*sphi A(3,1) = 2*s*x + 4*c*x2y2*x A(3,2) = 2*s*y + 4*c*x2y2*y A(3,3) = -2*sphi ENDIF END SUBROUTINE RHS SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- --- 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,*) DOUBLE PRECISION T,mu DOUBLE PRECISION A(3,3) CALL RHS(U,PAR,F,NDIM>3,A) IF(NDIM==3)RETURN F(4:6) = MATMUL(A,U(4:6)) T = PAR(11) F(1:6) = F(1:6) * T ! log of Floquet multiplier in PAR(7) mu = PAR(7) F(4:6) = F(4:6) - mu*U(4:6) IF (NDIM==6) RETURN CALL RHS(U(7:9),PAR,F(7:9),.FALSE.,A) T = PAR(9) F(7:9) = F(7:9) * T IF (NDIM==9) RETURN CALL RHS(U(10:12),PAR,F(10:12),.FALSE.,A) T = PAR(10) F(10:12) = F(10:12) * T END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) !--------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T INTEGER, PARAMETER :: codim = 1 DOUBLE PRECISION, PARAMETER :: nu1 = 0, nu2 = -1.46d0, d = 0.01d0 DOUBLE PRECISION, PARAMETER :: delta = -1d-5, eps = 1d-6 DOUBLE PRECISION fp(3), ev(3), pi DOUBLE PRECISION, SAVE :: s(6) IF(NDIM==9)THEN IF(T==0)THEN s(1:6) = U(1:6) ENDIF U(7:9) = s(1:3) + PAR(5)*s(4:6) RETURN ELSEIF(NDIM==12)THEN fp = (/0d0, 0d0, acos(-nu2/2)/) ev = (/0d0, 0d0, 1d0/) U(10:12) = fp(1:3) + PAR(6)*ev(1:3) RETURN ENDIF PAR(1:3) = (/nu1,nu2,d/) PAR(4) = codim PAR(5) = delta PAR(6) = eps PAR(21:22) = 0.0 ! homotopy: equilibrium b and its phase-shifted version, to find ! the "heteroclinic" orbit in negative time. pi = 4 * ATAN(1D0) PAR(11) = -0.1 PAR(12) = 0 PAR(13) = 0 PAR(14) = acos(-PAR(2)/2) PAR(15) = 0 PAR(16) = 0 PAR(17) = acos(-PAR(2)/2)+2*pi PAR(18) = 0.01d0 ! epsilon_0 distance ! equilibrium a U(1:3) = (/ 0.0d0, 0.0d0, 2*pi-acos(-nu2/2) /) END SUBROUTINE STPNT SUBROUTINE PVLS(NDIM,U,PAR) !--------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(IN) :: U(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: PAR(*) DOUBLE PRECISION, EXTERNAL :: GETP DOUBLE PRECISION d(3), normlv INTEGER i, NBC, codim DOUBLE PRECISION pi LOGICAL, SAVE :: FIRST = .TRUE. IF (FIRST) THEN FIRST = .FALSE. ! initialization for BCND pi = 4d0 * ATAN(1d0) IF (NDIM==9) THEN codim = NINT(PAR(4)) IF (codim == 0) THEN IF (PAR(21)==0) THEN ! distance to W^u(b) where b is the phase-shifted equilibrium PAR(21) = GETP("BV1",9,U) - PAR(17) ENDIF ELSE PAR(21) = GETP("BV0",9,U) - pi ENDIF ELSEIF (NDIM==12) THEN NBC = AINT(GETP("NBC",0,U)) IF (NBC==15) THEN PAR(22) = GETP("BV0",12,U) - pi ELSE ! check if Lin vector initialized: IF (DOT_PRODUCT(PAR(24:26),PAR(24:26)) > 0) RETURN DO i=1,3 d(i) = GETP("BV1",6+i,U) - GETP("BV0",9+i,U) ENDDO normlv = sqrt(DOT_PRODUCT(d,d)) ! gap size in PAR(23) PAR(23) = normlv ! Lin vector in PAR(24)-PAR(26) PAR(24:26) = d(1:3)/normlv ENDIF ENDIF ENDIF END SUBROUTINE PVLS SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) !--------- ---- 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,*) DOUBLE PRECISION nu2, delta, eps, fp(3), ev(3), eta DOUBLE PRECISION pi INTEGER codim ! Periodicity boundary conditions on state variables FB(1:3) = U0(1:3) - U1(1:3) ! Floquet boundary condition FB(4:6) = U1(4:6) - U0(4:6) ! normalization FB(7) = PAR(8) - DOT_PRODUCT(U0(4:6),U0(4:6)) IF (NBC==7) RETURN delta = PAR(5) FB(8:10) = U0(7:9) - (U0(1:3) + delta*U0(4:6)) pi = 4d0 * ATAN(1d0) codim = NINT(PAR(4)) IF(codim == 0)THEN ! projection boundary condition for codimension-zero connection nu2 = PAR(2) FB(11) = COS(U1(9) - PAR(21)) +nu2/2 RETURN ENDIF FB(11) = U1(9) - pi - PAR(21) IF (NBC==11) RETURN nu2 = PAR(2) eps = PAR(6) IF (abs(nu2) > 2) THEN ! truncate nu2 to [-2,2] to avoid floating point exceptions with acos nu2 = sign(2d0, nu2) ENDIF fp = (/0d0, 0d0, acos(-nu2/2)/) ev = (/0d0, 0d0, 1d0/) FB(12:14) = U1(10:12) - (fp(1:3) + eps*ev(1:3)) IF (NBC==15) THEN FB(15) = U0(12) - pi - PAR(22) RETURN ENDIF eta = PAR(23) FB(15:17) = U1(7:9) - U0(10:12) - eta*PAR(24:26) END SUBROUTINE BCND SUBROUTINE ICND(NDIM,PAR,ICP,NINTS,U,UOLD,UDOT,UPOLD,FI,IJAC,DINT) !--------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), NINTS, IJAC DOUBLE PRECISION, INTENT(IN) :: PAR(*) DOUBLE PRECISION, INTENT(IN) :: U(NDIM), UOLD(NDIM), UDOT(NDIM), UPOLD(NDIM) DOUBLE PRECISION, INTENT(OUT) :: FI(NINTS) DOUBLE PRECISION, INTENT(INOUT) :: DINT(NINTS,*) INTEGER codim ! Integral phase condition FI(1) = DOT_PRODUCT(U(1:3),UPOLD(1:3)) IF (NINTS==1) RETURN codim = NINT(PAR(4)) IF (codim == 0) THEN ! phase condition for codimension-zero connection FI(2) = DOT_PRODUCT(UPOLD(7:9),U(7:9)-UOLD(7:9)) RETURN ENDIF FI(2) = DOT_PRODUCT(UPOLD(10:12),U(10:12)-UOLD(10:12)) END SUBROUTINE ICND SUBROUTINE FOPT(NDIM,U,ICP,PAR,IJAC,FS,DFDU,DFDP) END SUBROUTINE FOPT auto-07p-0.9.1+dfsg/07p/demos/snh/tb.auto000066400000000000000000000042521206161447600176320ustar00rootroot00000000000000# AUTO demo snh # # Bifurcations of global reinjection orbits near a saddle-node Hopf bifurcation # compute the codimension-zero PtoE connection using homotopy print "\n1st run - find and continue equilibrium a : x=y=0, phi=-acos(-0.5*nu2)" # [ b would be x=y=0, phi=acos(-0.5*nu2) ] r1 = run(e='snh',ICP=['nu1'],NDIM=3,ILP=0,ITNW=7,ITMX=10, STOP=['HB1'],DS=0.1,DSMAX=1.0,DSMIN=1e-4,NPAR=26, unames={1:'xgamma',2:'ygamma',3:'phigamma',4:'x',5:'y',6:'phi', 7:'x-',8:'y-',9:'phi-'}, parnames={1:'nu1',2:'nu2',3:'d',4:'codim', 5:'delta',6:'eps',7:'mu',8:'h',9:'T-',10:'T+',11:'T', 21:'sigma-'}) print "\n2nd run - switch to the periodic orbit and continue in nu1 up to 0.74" r2 = run(r1('HB1'),ICP=['nu1','T'],IPS=2,NTST=100, STOP=[],UZSTOP={'nu1':0.74},DSMAX=0.1) print "\n3rd run - extend the system" r3 = run(r2('UZ1'),ICP=['mu','h','T'],IPS=4,NDIM=6,NBC=7,NINT=1, STOP=['BP1'],UZSTOP={},DS=-0.1,DSMAX=1) print "\n4th run - normalize the Floquet bundle" r4 = run(r3('BP1'),ISW=-1,DS=0.1, STOP=[],UZSTOP={'h':1.0},DSMAX=100) print "\n5th run - integrate away from the periodic orbit in negative time." print "puts a starting value into sigma- (which measures the distance to W^u(b))" print "UZ points denote intersections with W^u(b)" r5 = run(r4('UZ1'),ISW=0,ICP=['T-','mu','T','sigma-'],NDIM=9,NBC=11, PAR={'delta':1e-4,'codim':0},UZSTOP={'sigma-':0},DS=-1.0) print "\n6th run - improve the connection" r6 = run(r5('UZ1'),ICP=['T-','mu','T','delta'], THL={'T':0,'T-':0},UZSTOP={'T-':-200}) print "\n7th run - find folds (tangencies of codimension-zero connection)" r7 = run(r6('UZ1'),ICP=['nu1','mu','T','delta','T-'],NINT=2,ILP=1, STOP=['LP2'],UZSTOP={},DS=-0.1,DSMAX=0.1) print "\n8th run - continue left fold (t_b)" t = run(r7('LP1'),ICP=['nu1','T','delta','nu2','T-','mu'],ISW=2,ISP=0,ITMX=20, STOP=['LP1']) r8 = merge(run(t)+run(t,DS='-')) print "\n9th run - continue right fold (t_b)" t = run(r7('LP2'),ICP=['nu1','T','delta','nu2','T-','mu'],ISW=2,ISP=0, STOP=['LP1']) r9 = merge(run(t)+run(t,DS='-')) save(rl(r8+r9),'tb') clean() print "\nDone." auto-07p-0.9.1+dfsg/07p/demos/spb/000077500000000000000000000000001206161447600163245ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/spb/c.spb.0000077500000000000000000000005371206161447600174220ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 0, ILP = 0 ICP = [3] NTST= 10, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 2, NINT= 0 NMX= 100, NPR= 500, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-06 DS = 0.1, DSMIN= 0.001, DSMAX=1000.0, IADS= 1 NPAR= 3, THL = {}, THU = {} UZSTOP = {3: 1.0} auto-07p-0.9.1+dfsg/07p/demos/spb/c.spb.1000066400000000000000000000006061206161447600174150ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 2, ILP = 0 ICP = [2] NTST= 100, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 2, NINT= 0 NMX= 500, NPR= 500, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-06 DS = -0.1, DSMIN= 0.001, DSMAX=1000.0, IADS= 1 NPAR= 3, THL = {}, THU = {} UZR = {2: [0.1, 0.01, 0.001, 0.0001]} UZSTOP={2: 1e-05} auto-07p-0.9.1+dfsg/07p/demos/spb/c.spb.2000066400000000000000000000005401206161447600174130ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 2, ILP = 1 ICP = [1] NTST= 200, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 2, NINT= 0 NMX= 15, NPR= 1, MXBF= 10, IID = 2, ITMX= 8, ITNW= 9, NWTN= 3, JAC= 0 EPSL= 1e-05, EPSU = 1e-05, EPSS =0.0001 DS = -0.1, DSMIN= 0.1, DSMAX= 0.3, IADS= 1 NPAR= 3, THL = {}, THU = {} UZSTOP = {1: -2.2} auto-07p-0.9.1+dfsg/07p/demos/spb/c.spb.3000066400000000000000000000005401206161447600174140ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 19, ILP = 1 ICP = [1] NTST= 200, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 2, NINT= 0 NMX= 2000, NPR= 50, MXBF= 10, IID = 2, ITMX= 8, ITNW= 9, NWTN= 3, JAC= 0 EPSL= 1e-05, EPSU = 1e-05, EPSS = 0.001 DS = -0.1, DSMIN= 0.1, DSMAX=1000.0, IADS= 1 NPAR= 3, THL = {}, THU = {} UZSTOP = {1: -2.2} auto-07p-0.9.1+dfsg/07p/demos/spb/clean.auto000066400000000000000000000001631206161447600203000ustar00rootroot00000000000000 #============== # AUTO Demo spb #============== print "\n***Clean the directory***" dl('0') dl('1') dl('2') cl() auto-07p-0.9.1+dfsg/07p/demos/spb/plaut04.rc000077500000000000000000000070001206161447600201430ustar00rootroot00000000000000#version 0.0 # Line colors are represented by RGB values from 0 to 1.0. # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and highlighting the solutions # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Initialize the default options: Highlight Orbit = No Orbit Animation = No Normalize Data = Yes Draw Background = No Draw Labels = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahead Coordinate Type = 3 # Draw Scale: Draw Scale = Yes # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 1 # Initialize the default graph style # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 1 #Set the window width and height: Window Width = 1000 Window Height = 600 # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 0 Y Axis Solution = 1 Z Axis Solution = 2 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 1 Z Axis Bifurcation = 2 #Labeled solutions: #-3 = Show all labeled solutions #-2 = Show HALF labeled solutions #-1 = Show SPEC labeled solutions #0 = Show NONE of the solutions #Otherwise, show the specified solution(s) Labels = -3 #Set coloring method: # -6 --- STABILITY # -5 --- POINT # -4 --- BRANCH # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. Coloring Method = -2 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 1.0 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Background color: Background Color = 0., 0., 0. # Background transparency: Background Transparency = 0.9 # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # UnStable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 # Color of the animation object: Object Color = 1.0, 1.0, 1.0 # Set the radius of the animation object: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Object Radius = 1.0 # Set the maximum and minimum animation speed: Object Max Animation Speed = 100 Object Min Animation Speed = 0 # Set the maximum and minimum highlighting animation speed: Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 # Set the active AUTO parameter indices: parameter ID = 10 # Choose 3D or 2D graph: 3D = No # Set the number of periods animated. # The value should be the power of 2. Number of Period Animated = 1 auto-07p-0.9.1+dfsg/07p/demos/spb/spb.auto000066400000000000000000000006741206161447600200110ustar00rootroot00000000000000 #============== # AUTO Demo spb #============== print "\n***Homotopy from lambda=0 to lambda=1***" r0=run(e='spb',c='spb.0') save(r0,'0') print "\n***Letting epsilon become small***" r1=run(r0,c='spb.1') r1=rl(r1) save(r1,'1') print "\n***Continuation in gamma: First 15 steps***" r2=run(r1('UZ2'),c='spb.2') print "\n***Continuation in gamma: Restart***" r3=run(r2,c='spb.3') save(rl(r2+r3),'2') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/spb/spb.f90000066400000000000000000000034531206161447600174350ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! spb : A singularly perturbed BVP !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION U1,U2,EPS,RL U1=U(1) U2=U(2) EPS=PAR(2) RL =PAR(3) F(1)=U2 F(2)=RL * ( U1*(U1**2-1)*U2 + U1 ) / EPS END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,X) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: X DOUBLE PRECISION GAMMA,EPS,RL,S GAMMA=1.2 EPS=0.1 RL=0. PAR(1)=GAMMA PAR(2)=EPS PAR(3)=RL S=GAMMA-1.5 U(1)=1.5 + S*X U(2)=S END SUBROUTINE STPNT SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) ! ---------- ---- 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,*) FB(1)=U0(1)-1.5 FB(2)=U1(1)-PAR(1) END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/sspg/000077500000000000000000000000001206161447600165145ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/sspg/c.sspg000066400000000000000000000005261206161447600176370ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 0, ILP = 1 ICP = [1] NTST= 100, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 2, NINT= 0 NMX= 50, NPR= 10, MXBF= 0, IID = 2, ITMX= 8, ITNW= 7, NWTN= 5, JAC= 1 EPSL= 1e-08, EPSU = 1e-08, EPSS = 1e-06 DS = 0.01, DSMIN= 1e-10, DSMAX= 0.1, IADS= 1 NPAR = 2, THL = {}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/sspg/clean.auto000066400000000000000000000002671206161447600204750ustar00rootroot00000000000000 #=============== # AUTO Demo sspg #=============== pgm="sspg" print "\n***Clean the directory***" dl(pgm+'.1') dl(pgm+'.1.sw') dl(pgm+'.2.sw') dl(pgm+'.2.bw') dl(pgm+'.2.fw') cl() auto-07p-0.9.1+dfsg/07p/demos/sspg/sspg.auto000066400000000000000000000012131206161447600203570ustar00rootroot00000000000000 #======================================== # AUTO demo sspg # BPCONT for non-generic non-periodic BVP #======================================== pgm="sspg" print "\n***"+pgm+": run 1: trivial solution***" r1=run(pgm,sv=pgm+'.1') bp=r1('BP1') print "\n***"+pgm+": run 1: branch switch***" run(bp,ISW=-1,NMX=5,NPR=1,sv=pgm+'.1.sw') print "\n***"+pgm+": run 2: switch to BP continuation***" sw=run(bp,ICP=[1,2],ISW=2,NMX=50,NPR=10,sv=pgm+'.2.sw') print "\n***"+pgm+": run 2: BP continuation (fw)***" run(sw,sv=pgm+'.2.fw') print "\n***"+pgm+": run 2: BP continuation (bw)***" run(sw,DS='-',sv=pgm+'.2.bw') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/sspg/sspg.f90000066400000000000000000000041041206161447600200070ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! Demo sspg: Size-structured plant growth !---------------------------------------------------------------------- !---------------------------------------------------------------------- ! !----67--0---------0---------3---------4---------5---------6---------7--- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) !--------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, IJAC, ICP(*) DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM), DFDU(NDIM,*), DFDP(NDIM,*) DOUBLE PRECISION m,s ! Parameters m=PAR(1) s=PAR(2) ! Equations F(1) = -U(2) F(2) = -U(1)*U(2)-m*U(2) IF(IJAC.EQ.0)RETURN DFDU(1,1) = 0.0 DFDU(1,2) = -1.0 DFDU(2,1) = -U(2) DFDU(2,2) = -U(1)-m IF(IJAC.EQ.1)RETURN DFDP(1,1) = 0.0 DFDP(1,2) = 0.0 DFDP(2,1) = -U(2) DFDP(2,2) = 0.0 END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) !---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(IN) :: T DOUBLE PRECISION, INTENT(OUT) :: U(NDIM), PAR(*) ! Parameters initialization PAR(1:2)=(/1.0,4.0/) ! Trivial solution U(1:2)=0.0 END SUBROUTINE STPNT SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) !---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), NBC, IJAC DOUBLE PRECISION, INTENT(IN) :: PAR(*), U0(NDIM), U1(NDIM) DOUBLE PRECISION, INTENT(OUT) :: FB(NBC), DBC(NBC,*) DOUBLE PRECISION m,s ! Parameters m=PAR(1) s=PAR(2) ! Equations FB(1) = U1(1) FB(2) = -U0(2)+s*U0(1) IF(IJAC.EQ.0)RETURN DBC(1,1) = 0.0 DBC(1,2) = 0.0 DBC(1,3) = 1.0 DBC(1,4) = 0.0 DBC(2,1) = s DBC(2,2) = -1.0 DBC(2,3) = 0.0 DBC(2,4) = 0.0 IF(IJAC.EQ.1)RETURN DBC(1,5) = 0.0 DBC(1,6) = 0.0 DBC(2,5) = 0.0 DBC(2,6) = U0(1) END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/stw/000077500000000000000000000000001206161447600163555ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/stw/c.stw000066400000000000000000000006101206161447600173330ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 0, ILP = 0 ICP = [1, 10, 12, 13, 14, 15, 16, 17, 18, 19] NTST= 25, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC=10, NINT= 1 NMX= 20, NPR= 25, MXBF= 10, IID = 2, ITMX= 8, ITNW= 6, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.05, DSMIN= 0.001, DSMAX= 0.2, IADS= 1 NPAR = 19, THL = {11: 0.0}, THU = {} UZR = {1: 1.0} auto-07p-0.9.1+dfsg/07p/demos/stw/c.stw.1000066400000000000000000000006101206161447600174720ustar00rootroot00000000000000NDIM= 2, IPS = 4, IRS = 0, ILP = 0 ICP = [1, 10, 12, 13, 14, 15, 16, 17, 18, 19] NTST= 25, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC=10, NINT= 1 NMX= 20, NPR= 25, MXBF= 10, IID = 2, ITMX= 8, ITNW= 6, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.05, DSMIN= 0.001, DSMAX= 0.2, IADS= 1 NPAR = 19, THL = {11: 0.0}, THU = {} UZR = {1: 1.0} auto-07p-0.9.1+dfsg/07p/demos/stw/clean.auto000066400000000000000000000001451206161447600203310ustar00rootroot00000000000000 #============== # AUTO Demo stw #============== print "\n***Clean the directory***" dl('stw') cl() auto-07p-0.9.1+dfsg/07p/demos/stw/stw.auto000066400000000000000000000003511206161447600200630ustar00rootroot00000000000000 #============== # AUTO Demo stw #============== pgm = "stw" print "\nDemo %s is started"%pgm print "\n%s : continuation of the sharp traveling wave"%pgm r1 = run(e=pgm,c=pgm) save(r1,pgm) print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/stw/stw.f90000066400000000000000000000137561206161447600175260ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! stw : Sharp traveling waves !---------------------------------------------------------------------- !---------------------------------------------------------------------- ! Parameter assignment: ( Components of PAR(.) ) ! ! PAR : (1) : homotopy parameter ! (2) (3) : A0, A1, A2 (problem parameters) ! (4) (5) (6) : B0, B1, B2 (problem parameters) ! (7) (8) (9) : C0, C1, C2 (problem parameters) ! (10) : c (wave speed) ! (11) : T (period) ! (12) (13) : eps-0, eps-1 (radii) ! (14) (15) : mu-0 , mu-1 (eigenvalues) ! (16) (17) : v-0(1), v-0(2) (eigenvector) ! (18) (19) : v-1(1), v-1(2) (eigenvector) !----------------------------------------------------------------------- !----------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION PERIOD PERIOD=PAR(11) CALL FFFF(NDIM,U,ICP,PAR,IJAC,F,DFDU) F(1)=PERIOD*F(1) F(2)=PERIOD*F(2) END SUBROUTINE FUNC SUBROUTINE FFFF(NDIM,U,ICP,PAR,IJAC,F,DFDU) ! ---------- ---- ! ! The reduced system for traveling waves is defined here. A separate subroutine ! is used because the system and the Jacobian are also needed in the subroutines ! BCND and ICND below. The computation should be done with JAC=0. The derivatives ! below are for use in BCND and ICND only. IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM) DOUBLE PRECISION FA,FB,FC,C,DFA,DFB,DFC,P(2:9) ! A0, A1, A2: P(2)= (1-PAR(1))* 2 + PAR(1)* 2 P(3)= (1-PAR(1))* 0 + PAR(1)* 1 ! B0, B1, B2: P(4)= (1-PAR(1))* 2 + PAR(1)* 0 P(5)= (1-PAR(1))* 0 + PAR(1)* 1 P(6)= (1-PAR(1))* 0 + PAR(1)* 0 ! C0, C1, C2: P(7)= (1-PAR(1))* 0 + PAR(1)* 0 P(8)= (1-PAR(1))* 1 + PAR(1)* 1 P(9)= (1-PAR(1))*(-1) + PAR(1)*(-1) FA = P(2)*U(1) + P(3)*U(1)**2 FB = P(4) + P(5)*U(1) + P(6)*U(1)**2 FC = P(7) + P(8)*U(1) + P(9)*U(1)**2 C = PAR(10) F(1)= FA * U(2) F(2)= -C * U(2) - FB * U(2)**2 - FC IF(IJAC.EQ.0)RETURN DFA = P(2) + 2*P(3)*U(1) DFB = P(5) + 2*P(6)*U(1) DFC = P(8) + 2*P(9)*U(1) DFDU(1,1)= DFA*U(2) DFDU(1,2)= FA DFDU(2,1)= -DFB*U(2)**2 - DFC DFDU(2,2)= -C - 2*FB*U(2) END SUBROUTINE FFFF SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T DOUBLE PRECISION PERIOD, TSC, E ! homotopy parameter : PAR(1)= 0 ! starting period PERIOD=100. ! c, T: PAR(10)= 1 PAR(11)= PERIOD ! eps-0, eps-1: PAR(12)= 0.5*DSQRT(5.D0)/(1+EXP(0.5*PERIOD)) PAR(13)= PAR(12) ! mu-0, mu-1: PAR(14)= 1 PAR(15)= -1 ! v-0(1), v-0(2): PAR(16)= 2/DSQRT(5.D0) PAR(17)= 1/DSQRT(5.D0) ! v-1(1), v-1(2): PAR(18)= 1 PAR(19)= 0 ! Exact solution TSC=PERIOD*(T-0.5) E=EXP(TSC) U(1)=1/(1+E) U(2)=-0.5*E/(1+E) END SUBROUTINE STPNT SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) ! ---------- ---- 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,*) ! Local DOUBLE PRECISION V0(2),V1(2),G0(2),G1(2),DGDU0(2,2),DGDU1(2,2) V0(1)=U0(1) - PAR(12)*PAR(16) V0(2)=U0(2) - PAR(12)*PAR(17) V1(1)=U1(1) - PAR(13)*PAR(18) V1(2)=U1(2) - PAR(13)*PAR(19) CALL FFFF(NDIM,V0,ICP,PAR,1,G0,DGDU0) CALL FFFF(NDIM,V1,ICP,PAR,1,G1,DGDU1) ! Define eigenvalues and eigenvectors at t=0: FB(1)= DGDU0(1,1)*PAR(16) + DGDU0(1,2)*PAR(17) - PAR(14)*PAR(16) FB(2)= DGDU0(2,1)*PAR(16) + DGDU0(2,2)*PAR(17) - PAR(14)*PAR(17) ! Define eigenvalues and eigenvectors at t=1: FB(3)= DGDU1(1,1)*PAR(18) + DGDU1(1,2)*PAR(19) - PAR(15)*PAR(18) FB(4)= DGDU1(2,1)*PAR(18) + DGDU1(2,2)*PAR(19) - PAR(15)*PAR(19) ! Normalize the eigenvectors: FB(5)= PAR(16)**2 + PAR(17)**2 -1 FB(6)= PAR(18)**2 + PAR(19)**2 -1 ! Boundary condition at t=0: FB(7)= G0(1) FB(8)= G0(2) ! Boundary condition at t=1: FB(9)= G1(1) FB(10)=G1(2) END SUBROUTINE BCND SUBROUTINE ICND(NDIM,PAR,ICP,NINT,U,UOLD,UDOT,UPOLD,FI,IJAC,DINT) ! ---------- ---- 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,*) ! Local DOUBLE PRECISION DFDU(2,2),F(2),F0(2),DGDU0(1) CALL FFFF(NDIM,U ,ICP,PAR,1,F ,DFDU ) CALL FFFF(NDIM,UOLD,ICP,PAR,0,F0,DGDU0) ! The integral phase condition is defined here: FI(1)= ( F(1) - F0(1) ) * ( DFDU(1,1)*F(1) + DFDU(1,2)*F(2) ) & + ( F(2) - F0(2) ) * ( DFDU(2,1)*F(1) + DFDU(2,2)*F(2) ) END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/tfc/000077500000000000000000000000001206161447600163145ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/tfc/c.tfc000066400000000000000000000005351206161447600172370ustar00rootroot00000000000000NDIM= 3, IPS = 1, IRS = 0, ILP = 1 ICP = [3] NTST= 50, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 50, NPR= 10, MXBF= 0, IID = 2, ITMX= 8, ITNW= 7, NWTN= 5, JAC= 1 EPSL= 1e-08, EPSU = 1e-08, EPSS = 1e-06 DS = -0.01, DSMIN= 1e-10, DSMAX= 0.1, IADS= 1 NPAR = 6, THL = {11: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/tfc/clean.auto000066400000000000000000000004171206161447600202720ustar00rootroot00000000000000 #============== # AUTO Demo tfc #============== print "\n***Clean the directory***" dl('tfc.1') dl('tfc.1') dl('tfc.2') dl('tfc.3') dl('tfc.4.sw') dl('tfc.4.bw') dl('tfc.4.fw') dl('tfc.4.rs') dl('tfc.5') dl('tfc.6.sw') dl('tfc.6.bw') dl('tfc.6.fw') dl('tfc.6.rs') cl() auto-07p-0.9.1+dfsg/07p/demos/tfc/tfc.auto000066400000000000000000000027161206161447600177700ustar00rootroot00000000000000 #============== # AUTO Demo tfc #============== print "\ntfc: run 1: equilibrium continuation" r1 = run(e='tfc',c='tfc',sv='tfc.1') print "\ntfc: run 2: cycle continuation" r2 = run(r1("HB1"),ICP=[3,11,7,8],UZR={3:0.75},IPS=2,IPLT=1, EPSL=1.e-9,EPSU=1.e-9,EPSS=1.e-7,ITMX=12,sv='tfc.2') print "\ntfc: run 3: cycle continuation" r3 = run(r2("UZ1"),ICP=[6,11,7,8],UZR={6:0.013},DS=0.001,DSMAX=0.01,sv='tfc.3') print "\ntfc: run 4: BP continuation (sw)" r4sw = run(r3("BP1"),ICP=[6,3,11,7,8],ISW=2,DS=0.01,DSMAX=0.1,UZR={}) print "\ntfc: run 4: BP continuation (fw)" r4fw = run(r4sw,STOP=['LP1','BP1'],sv='tfc.4.fw') print "\ntfc: run 4: BP continuation (bw)" r4bw = run(r4sw,NMX=300,NPR=50,NTST=70,DSMAX=10.0,DS='-',sv='tfc.4.bw') print "\ntfc: run 4: BP continuation (restart)" r4rs = run(r4fw()[0],NMX=50,NPR=10,DSMAX=0.1,sv='tfc.4.rs') print "\ntfc: run 5: iso-periodic cycle continuation" r5=run(r3("UZ1"),ICP=[3,1],NMX=100,NPR=20,THL={},DS=-0.01,DSMAX=0.1,sv='tfc.5') print "\ntfc: run 6: iso-periodic BP continuation (sw)" r6sw = run(r5("BP2"),ICP=[3,1,6],ISW=2,DS=0.01,DSMAX=0.1,NMX=50,NPR=10, sv='tfc.6.sw') print "\ntfc: run 6: iso-periodic BP continuation (fw)" r6fw = run(r6sw,sv='tfc.6.fw') print "\ntfc: run 6: iso-periodic BP continuation (bw)" r6bw = run(r6sw,STOP=['LP1','BP1'],DS='-',sv='tfc.6.bw') print "\ntfc: run 6: iso-periodic BP continuation (restart)" r6rs = run(r6fw()[1],sv='tfc.6.rs') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/tfc/tfc.f90000066400000000000000000000062551206161447600174200ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! Demo tfc !---------------------------------------------------------------------- !---------------------------------------------------------------------- ! !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) !---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, IJAC, ICP(*) DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM), DFDU(NDIM,*), DFDP(NDIM,*) DOUBLE PRECISION t1,t2,t3,t4,t5,t7,t8,t9,t10,t12,t13,t15,t16,t17,t19 DOUBLE PRECISION t22,t27,t28,t29,t33,t34,t36,t39 DOUBLE PRECISION t42,t43,t44,t50,t51,t54,t56,t58,t64,t65,t66,t68,t69 DOUBLE PRECISION t74,t86 t1 = PAR(2) t2 = U(1) t3 = exp(t2) t4 = t1*t3 t5 = t3**2 t7 = PAR(1) t8 = U(2) t9 = exp(t8) t10 = t7*t9 t12 = 1.D0+t4 t13 = 1.D0/t12 F(1) = -(-1.D0-t4+t3+t1*t5+t10)*t13 t15 = t7*t3 t16 = PAR(5) t17 = t16*t9 t19 = PAR(3) t22 = t19*t1 t27 = PAR(4) t28 = U(3) t29 = t27*t28 t33 = 1.D0+t17 t34 = 1.D0/t33 F(2) = (t15+t15*t17-t19-t19*t16*t9-t22*t3-t22*t3*t16*t9-t29-t29*t4)*t13*t34 t36 = PAR(6) t39 = t27*t9-t36-t36*t16*t9 F(3) = t28*t39*t34 IF(IJAC.EQ.0)RETURN t42 = t1**2 t43 = 2.D0*t2 t44 = exp(t43) t50 = t12**2 t51 = 1.D0/t50 DFDU(1,1) = t3*(-1.D0-2.D0*t4-t42*t44+t1*t7*t9)*t51 DFDU(1,2) = -t10*t13 DFDU(1,3) = 0.D0 t54 = exp(t2+t8) t56 = t3+t16*t54 t58 = t51*t34 DFDU(2,1) = t7*t56*t58 t64 = t33**2 t65 = 1.D0/t64 t66 = (t9+t1*t54)*t13*t65 DFDU(2,2) = t16*t27*t28*t66 DFDU(2,3) = -t27*t34 DFDU(3,1) = 0.D0 t68 = t28*t9 t69 = t27*t65 DFDU(3,2) = t68*t69 DFDU(3,3) = t39*t34 IF(IJAC.EQ.1)RETURN DFDP(1,1) = -t9*t13 DFDP(1,2) = t54*t7*t51 DFDP(1,3) = 0.D0 DFDP(1,4) = 0.D0 DFDP(1,5) = 0.D0 DFDP(1,6) = 0.D0 DFDP(2,1) = t56*t13*t34 t74 = exp(t43+t8) DFDP(2,2) = -t7*(t44+t74*t16)*t58 DFDP(2,3) = -(1.D0+t17+t4+t1*t16*t54)*t13*t34 DFDP(2,4) = -t28*t34 DFDP(2,5) = t29*t66 DFDP(2,6) = 0.D0 DFDP(3,1) = 0.D0 DFDP(3,2) = 0.D0 DFDP(3,3) = 0.D0 DFDP(3,4) = t68*t34 t86 = exp(2.D0*t8) DFDP(3,5) = -t28*t86*t69 DFDP(3,6) = -t28 END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) !---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(IN) :: T DOUBLE PRECISION, INTENT(OUT) :: U(NDIM), PAR(*) PAR(1)=5.0 ! a_1 PAR(2)=3.0 ! b_1 PAR(3)=1.10830E+00 ! d_1 PAR(4)=0.1 ! a_2 PAR(5)=2.0 ! b_2 PAR(6)=0.01 ! d_2 U(1:3)=(/LOG(0.66163D0),LOG(0.20199D0),0.0D0/) END SUBROUTINE STPNT SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT 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(*) DOUBLE PRECISION GETP PAR(7)=EXP(GETP('MIN',1,U)) PAR(8)=EXP(GETP('MIN',2,U)) END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/tim/000077500000000000000000000000001206161447600163315ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/tim/c.tim000066400000000000000000000005261206161447600172710ustar00rootroot00000000000000NDIM= 10, IPS = 4, IRS = 0, ILP = 0 ICP = [1] NTST= 100, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC=10, NINT= 0 NMX= 10, NPR= 10, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL=0.0001, EPSU =0.0001, EPSS =0.0001 DS = 0.01, DSMIN= 0.01, DSMAX= 0.05, IADS= 0 NPAR = 1, THL = {}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/tim/c.tim.1000066400000000000000000000005261206161447600174300ustar00rootroot00000000000000NDIM= 10, IPS = 4, IRS = 0, ILP = 0 ICP = [1] NTST= 100, NCOL= 4, IAD = 3, ISP = 1, ISW = 1, IPLT= 0, NBC=10, NINT= 0 NMX= 10, NPR= 10, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL=0.0001, EPSU =0.0001, EPSS =0.0001 DS = 0.01, DSMIN= 0.01, DSMAX= 0.05, IADS= 0 NPAR = 1, THL = {}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/tim/clean.auto000066400000000000000000000001451206161447600203050ustar00rootroot00000000000000 #============== # AUTO Demo tim #============== print "\n***Clean the directory***" dl('tim') cl() auto-07p-0.9.1+dfsg/07p/demos/tim/tim.auto000066400000000000000000000003131206161447600200110ustar00rootroot00000000000000 #============== # AUTO Demo tim #============== pgm = "tim" print "\nDemo %s is started"%pgm print "\n%s : Timing run"%pgm r1 = run(e=pgm,c=pgm) save(r1,pgm) print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/tim/tim.f90000066400000000000000000000050311206161447600174410ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! tim : A test problem for timing AUTO !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) INTEGER NDIM2,I,I1,I2 DOUBLE PRECISION E DOUBLE PRECISION, EXTERNAL :: FEXP NDIM2=NDIM/2 DO I=1,NDIM2 I1=2*(I-1)+1 I2=I1+1 E=FEXP(U(I1)) F(I1)=U(I2) F(I2)=-PAR(1)*E ENDDO END SUBROUTINE FUNC !---------------------------------------------------------------------- DOUBLE PRECISION FUNCTION FEXP(U) ! ------ --------- -------- ---- DOUBLE PRECISION, INTENT(IN) :: U INTEGER NTERMS,K DOUBLE PRECISION TRM NTERMS=25 FEXP=1.d0 TRM=FEXP DO K=1,NTERMS TRM=TRM*U/K FEXP=FEXP + TRM ENDDO END FUNCTION FEXP !---------------------------------------------------------------------- SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T INTEGER I DO I=1,NDIM U(I)=0.0 ENDDO END SUBROUTINE STPNT !---------------------------------------------------------------------- SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) ! ---------- ---- 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,*) INTEGER NDIM2,I,I1,I2 NDIM2=NDIM/2 DO I=1,NDIM2 I1=2*(I-1)+1 I2=I1+1 FB(I1)=U0(I1) FB(I2)=U1(I1) ENDDO END SUBROUTINE BCND !---------------------------------------------------------------------- SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS !---------------------------------------------------------------------- auto-07p-0.9.1+dfsg/07p/demos/tor/000077500000000000000000000000001206161447600163445ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/tor/autorc000066400000000000000000000033401206161447600175640ustar00rootroot00000000000000[AUTO_plotter] #default_option="d1" #d1 = {"grid": "no", "use_labels": 1, "use_symbols": 1, "stability": 1} # similarly you can redefine d0, d2, d3, d4. #grid = "no" #stability = 0 #use_labels = 1 #use_symbols = 0 top_title = 'Torus bifurcation' #top_title_fontsize = 12 #xlabel = '' #xlabel_fontsize = 12 #ylabel = '' #ylabel_fontsize = 12 solution_indepvarname = "time" solution_coordnames = ["$x$","$y$","$z$"] #bifurcation_coordnames = ["$\nu$", "L2-norm", "max $x$", "max $y$", "max $z$", "beta", "$\gamma$"] #line_width = 2.0 #dashes = (6.0,6.0) #background = "white" #foreground = "black" #color_list = "black red green blue" #symbol_color = "red" #symbol_font = "-misc-fixed-*-*-*-*-*-*-*-*-*-*-*-*" #decorations = 1 #smart_label = 1 #minx = 0 #maxx = 0 #miny = 0 #maxy = 0 #width = 600 #height = 480 #left_margin = 80 #right_margin = 40 #top_margin = 40 #bottom_margin = 40 #xticks = 5 #yticks = 5 #tick_label_template = "%.2e" #tick_length = 0.2 #odd_tick_length = 0.4 #even_tick_length = 0.2 #ps_colormode = "color" #mark_t = None #or a real value between 0 and 1 #type = "bifurcation" # or "solution" bifurcation_x = [0] bifurcation_y = [5] #solution_x = ["t"] #solution_y = [0] ## Sets of columns that the user is likely to want to use #bifurcation_column_defaults = None #solution_column_defaults = None # The label(s) of the solution we wish to draw #label = [1,2,3] #label_defaults = None # The index/indices of the solution we wish to draw #index = [0] #bifurcation_diagram_filename = 'fort.7' #solution_filename = 'fort.8' #bifurcation_symbol = "square" #limit_point_symbol = None #hopf_symbol = "fillsquare" #period_doubling_symbol = "doubletriangle" #torus_symbol = "filldiamond" #user_point_symbol = "U" #error_symbol = None auto-07p-0.9.1+dfsg/07p/demos/tor/c.tor000066400000000000000000000005601206161447600173150ustar00rootroot00000000000000NDIM= 3, IPS = 1, IRS = 0, ILP = 1 ICP = [1] NTST= 25, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 125, NPR= 500, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.001, DSMIN=0.00001, DSMAX= 0.01, IADS= 1 NPAR= 6, THL = {11: 0.0}, THU = {} UZSTOP = {1: [-0.9, -0.4]} auto-07p-0.9.1+dfsg/07p/demos/tor/c.tor.1000066400000000000000000000005601206161447600174540ustar00rootroot00000000000000NDIM= 3, IPS = 1, IRS = 0, ILP = 1 ICP = [1] NTST= 25, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 125, NPR= 500, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.001, DSMIN=0.00001, DSMAX= 0.01, IADS= 1 NPAR= 6, THL = {11: 0.0}, THU = {} UZSTOP = {1: [-0.9, -0.4]} auto-07p-0.9.1+dfsg/07p/demos/tor/c.tor.2000066400000000000000000000005431206161447600174560ustar00rootroot00000000000000NDIM= 3, IPS = 2, IRS = 2, ILP = 1 ICP = [1, 11] NTST= 25, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 125, NPR= 500, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.001, DSMIN=0.00001, DSMAX= 0.01, IADS= 1 NPAR= 6, THL = {11: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/tor/c.tor.3000066400000000000000000000005431206161447600174570ustar00rootroot00000000000000NDIM= 3, IPS = 2, IRS = 8, ILP = 1 ICP = [1, 11] NTST= 25, NCOL= 4, IAD = 3, ISP = 2, ISW =-1, IPLT= 0, NBC= 0, NINT= 0 NMX= 90, NPR= 500, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.001, DSMIN=0.00001, DSMAX= 0.01, IADS= 1 NPAR= 6, THL = {11: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/tor/c.tor.4000066400000000000000000000005461206161447600174630ustar00rootroot00000000000000NDIM= 3, IPS = 2, IRS = 15, ILP = 0 ICP = [1, 2, 11] NTST= 25, NCOL= 4, IAD = 3, ISP = 0, ISW = 2, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 25, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.05, DSMIN=0.00001, DSMAX= 0.1, IADS= 1 NPAR= 6, THL = {11: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/tor/c.tor.5000066400000000000000000000005461206161447600174640ustar00rootroot00000000000000NDIM= 3, IPS = 2, IRS = 23, ILP = 0 ICP = [1, 2, 11] NTST= 25, NCOL= 4, IAD = 3, ISP = 0, ISW = 2, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 25, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.05, DSMIN=0.00001, DSMAX= 0.1, IADS= 1 NPAR= 6, THL = {11: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/tor/c.tor.6000066400000000000000000000005741206161447600174660ustar00rootroot00000000000000NDIM= 3, IPS = 2, IRS = 24, ILP = 0 ICP = [1, 2, 3, 11] NTST= 25, NCOL= 4, IAD = 3, ISP = 0, ISW = 2, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 25, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 1 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.05, DSMIN=0.00001, DSMAX= 0.1, IADS= 1 NPAR= 6, THL = {11: 0.0}, THU = {} UZSTOP = {11:3000} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/tor/clean.auto000066400000000000000000000001701206161447600203160ustar00rootroot00000000000000 #============== # AUTO Demo tor #============== print "\n***Clean the directory***" dl('1') dl('tor') dl('tor3') cl() auto-07p-0.9.1+dfsg/07p/demos/tor/tor.auto000066400000000000000000000014761206161447600200520ustar00rootroot00000000000000 #============== # AUTO Demo tor #============== pgm = "tor" print "\nDemo %s is started"%pgm print "\n%s : first run : stationary solution"%pgm r1 = run(e=pgm,c=pgm) print "\n%s : second run : periodic solutions"%pgm r2 = run(r1("HB1"),IPS=2,ICP=[1,11]) print "\n%s : third run : a bifurcating branch of periodic solutions"%pgm r3 = run(r2("BP1"),ISW=-1,NMX=90) save(r1+r2+r3,'1') print "\n%s : fourth run : a branch of torus bifurcations (start)"%pgm r4 = run(r3("TR1"),ICP=[1,2,11],ISW=2,ILP=0,ISP=0,NPR=25,NMX=100, DS=0.05,DSMAX=0.1) print "\n%s : fifth run : a branch of torus bifurcations"%pgm r5 = run(r4,ITNW=7) save(r5,'tor') print "\n%s : sixth run : a 3-parameter branch fixing the angle"%pgm r6 = run(r4,ITNW=7,ICP=[1,2,3,11],UZSTOP={11:3000}) save(r6,'tor3') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/tor/tor.f90000066400000000000000000000045271206161447600175000ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! tor : Torus Bifurcation in an Electronic Oscillator !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION rn,be,ga,r,a3,b3,x,y,z rn=PAR(1) be=PAR(2) ga=PAR(3) r =PAR(4) a3=PAR(5) b3=PAR(6) x=U(1) y=U(2) z=U(3) F(1)= ( -(be+rn)*x + be*y - a3*x**3 + b3*(y-x)**3 )/r F(2)= be*x - (be+ga)*y - z - b3*(y-x)**3 F(3)= y IF(IJAC.EQ.0)RETURN DFDU(1,1)=( -(be+rn) -3*a3*x**2 - 3*b3*(y-x)**2 )/r DFDU(1,2)=( be + 3*b3*(y-x)**2 )/r DFDU(1,3)=0 DFDU(2,1)=be + 3*b3*(y-x)**2 DFDU(2,2)=-(be+ga) - 3*b3*(y-x)**2 DFDU(2,3)=-1 DFDU(3,1)=0 DFDU(3,2)=1 DFDU(3,3)=0 IF(IJAC.EQ.1)RETURN ! *Parameter derivatives DFDP(1,1)=-x/r DFDP(2,1)=0 DFDP(3,1)=0 DFDP(1,2)=( -x + y )/r DFDP(2,2)=x-y DFDP(3,2)=0 DFDP(1,3)=0 DFDP(2,3)=-y DFDP(3,3)=0 DFDP(1,4)=-F(1)/r DFDP(2,4)=0 DFDP(3,4)=0 DFDP(1,5)=x**3/r DFDP(2,5)=0 DFDP(3,5)=0 DFDP(1,6)=(y-x)**3 / r DFDP(2,6)=-(y-x)**3 DFDP(3,6)=0 END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T PAR(1)=-0.9 PAR(2)=0.5 PAR(3)=-0.6 PAR(4)=0.6 PAR(5)=0.328578 PAR(6)=0.933578 U(1)=0. U(2)=0. U(3)=0. END SUBROUTINE STPNT SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/um2/000077500000000000000000000000001206161447600162435ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/um2/c.um2.1000066400000000000000000000004161206161447600172520ustar00rootroot00000000000000unames={1: 'x', 2: 'y'} parnames={1: 'theta', 2: 'eps', 3: 'r0', 4: 'r1', 11: 'Period'} NDIM= 2, IPS = 4 ICP = ['Period', 'r1'] NTST= 60, IPLT= 3, NBC= 3 ITNW= 7 DS = 0.05, DSMIN= 1e-05, DSMAX= 10.0 NPAR= 11, THL = {'Period': 0.0} UZSTOP = {'r1': 0.6} auto-07p-0.9.1+dfsg/07p/demos/um2/c.um2.2000066400000000000000000000004341206161447600172530ustar00rootroot00000000000000unames={1: 'x', 2: 'y'}, parnames={1: 'theta', 2: 'eps', 3: 'r0', 4: 'r1', 11: 'Period'} NDIM= 2, IPS = 4, IRS = 2 ICP = ['eps', 'Period'] NTST= 60, IPLT= 3, NBC= 3 ITNW= 7 DS = -0.05, DSMIN= 1e-05, DSMAX= 1.0 NPAR= 11, THL = {'Period': 0.0} UZSTOP = {'eps': 0.1} auto-07p-0.9.1+dfsg/07p/demos/um2/c.um2.3000066400000000000000000000004651206161447600172600ustar00rootroot00000000000000unames={1: 'x', 2: 'y'}, parnames={1: 'theta', 2: 'eps', 3: 'r0', 4: 'r1', 11: 'Period'} NDIM= 2, IPS = 4, IRS = 3 ICP = ['theta', 'Period'] NTST= 60, IPLT= 3, NBC= 3 NPR= 1, ITNW= 7 DS = 0.05, DSMIN= 1e-05, DSMAX= 1.0 NPAR= 11, THL = {'Period': 0.0} UZSTOP = {'theta': [1.25, -0.75]} auto-07p-0.9.1+dfsg/07p/demos/um2/clean.auto000066400000000000000000000001631206161447600202170ustar00rootroot00000000000000 #============== # AUTO Demo um2 #============== print "\n***Clean the directory***" dl('1') dl('2') dl('3') cl() auto-07p-0.9.1+dfsg/07p/demos/um2/plaut04.rc000066400000000000000000000070001206161447600200570ustar00rootroot00000000000000#version 0.0 # Line colors are represented by RGB values from 0 to 1.0. # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and highlighting the solutions # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Initialize the default options: Highlight Orbit = No Orbit Animation = No Normalize Data = Yes Draw Background = No Draw Labels = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahead Coordinate Type = 3 # Draw Scale: Draw Scale = Yes # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 0 # Initialize the default graph style # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 0 #Set the window width and height: Window Width = 1000 Window Height = 600 # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 1 Y Axis Solution = 2 Z Axis Solution = 2 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 1 Z Axis Bifurcation = 2 #Labeled solutions: #-3 = Show all labeled solutions #-2 = Show HALF labeled solutions #-1 = Show SPEC labeled solutions #0 = Show NONE of the solutions #Otherwise, show the specified solution(s) Labels = -3 #Set coloring method: # -6 --- STABILITY # -5 --- POINT # -4 --- BRANCH # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. Coloring Method = -2 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 1.0 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Background color: Background Color = 0., 0., 0. # Background transparency: Background Transparency = 0.9 # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # UnStable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 # Color of the animation object: Object Color = 1.0, 1.0, 1.0 # Set the radius of the animation object: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Object Radius = 1.0 # Set the maximum and minimum animation speed: Object Max Animation Speed = 100 Object Min Animation Speed = 0 # Set the maximum and minimum highlighting animation speed: Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 # Set the active AUTO parameter indices: parameter ID = 10 # Choose 3D or 2D graph: 3D = No # Set the number of periods animated. # The value should be the power of 2. Number of Period Animated = 1 auto-07p-0.9.1+dfsg/07p/demos/um2/um2.auto000066400000000000000000000015171206161447600176440ustar00rootroot00000000000000 #============== # Demo um2 #============== print "\n***Grow an initial orbit by continuation***" init = run(e='um2', unames = {1:'x',2:'y'}, parnames = {1:'theta',2:'eps',3:'r0',4:'r1',11:'Period'}, NDIM=2,IPS=4,ICP=['Period','r1'], NTST=60,IPLT=3,NBC=3,ITNW=7, DS=0.05,DSMIN=1e-5,DSMAX=10.0, THL={'Period':0}, UZSTOP={'r1':0.6}, NPAR=11) save(init, '1') print "\n***Decrease the value of the problem parameter eps***" decr = run(init,ICP=['eps','Period'],DS='-',DSMAX=1.0,UZSTOP={'eps':0.1}) save(decr, '2') print "\n***Allow the initial condition to move around a small circle***" circle = run(decr,ICP=['theta','Period'],NPR=1,DS='-',DSMIN=1e-5, UZSTOP={'theta': [1.25, -0.75]}) save(circle, '3') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/um2/um2.f90000066400000000000000000000051161206161447600172710ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! AUTO demo um2 !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM,ICP(*),IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,*),DFDP(NDIM,*) DOUBLE PRECISION eps, Period, x, y eps = PAR(2) Period = PAR(11) x = U(1) y = U(2) F(1) = Period * ( eps * x - y**3 ) F(2) = Period * ( y + x**3 ) END SUBROUTINE FUNC !---------------------------------------------------------------------- SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T DOUBLE PRECISION, PARAMETER :: & theta = 0.25, & eps = 0.5, & r0 = 0.1, & r1 = r0, & Period= 1.d-4 DOUBLE PRECISION PI PI = 4*ATAN(1.D0) PAR(1:4) = (/theta,eps,r0,r1/) PAR(11)= Period U(1) = r0 * COS( 2.0D0 * PI * theta) U(2) = r0 * SIN( 2.0D0 * PI * theta) END SUBROUTINE STPNT !---------------------------------------------------------------------- SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) ! ---------- ---- 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,*) DOUBLE PRECISION x0, y0, x1, y1, PI, theta, r0, r1 x0 = U0(1) y0 = U0(2) x1 = U1(1) y1 = U1(2) PI = 4*ATAN(1.D0) theta = PAR(1) r0 = PAR(3) r1 = PAR(4) FB(1) = x0 - r0 * COS( 2.0 * PI * theta) FB(2) = y0 - r0 * SIN( 2.0 * PI * theta) FB(3) = SQRT(x1**2 + y1**2) - r1 END SUBROUTINE BCND !---------------------------------------------------------------------- SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS !---------------------------------------------------------------------- auto-07p-0.9.1+dfsg/07p/demos/um3/000077500000000000000000000000001206161447600162445ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/um3/c.um3.1000066400000000000000000000004321206161447600172520ustar00rootroot00000000000000unames={1: 'x', 2: 'y'} parnames={1: 'theta', 2: 'eps', 3: 'r0', 4: 'r1', 11: 'Period'} NDIM= 3, IPS = 4, ILP = 0 ICP = ['Period', 'r1'] NTST= 60, ISP = 0, IPLT= 3, NBC= 4 DS = 0.05, DSMIN= 1e-05, DSMAX= 10.0 NPAR= 11, THL = {'Period': 0.0} UZSTOP = {'r1': 1.0} auto-07p-0.9.1+dfsg/07p/demos/um3/c.um3.2000066400000000000000000000004511206161447600172540ustar00rootroot00000000000000unames={1: 'x', 2: 'y'}, parnames={1: 'theta', 2: 'eps', 3: 'r0', 4: 'r1', 11: 'Period'} NDIM= 3, IPS = 4, IRS = 2, ILP = 0 ICP = ['eps', 'Period'] NTST= 60, ISP = 0, IPLT= 3, NBC= 4 DS = -0.05, DSMIN= 1e-05, DSMAX= 1.0 NPAR= 11, THL = {'Period': 0.0} UZSTOP = {'eps': 0.01} auto-07p-0.9.1+dfsg/07p/demos/um3/c.um3.3000066400000000000000000000005231206161447600172550ustar00rootroot00000000000000unames={1: 'x', 2: 'y'}, parnames={1: 'theta', 2: 'eps', 3: 'r0', 4: 'r1', 11: 'Period'} NDIM= 3, IPS = 4, IRS = 3, ILP = 0 ICP = ['theta', 'Period'] NTST= 60, ISP = 0, IPLT= 3, NBC= 4 NPR= 1 DS = 0.05, DSMIN= 1e-05, DSMAX= 1.0 NPAR= 11, THL = {'Period': 0.0} UZSTOP = {'theta': [1.25, -0.75], 'Period': 10000.0} auto-07p-0.9.1+dfsg/07p/demos/um3/c.um3.4000066400000000000000000000005231206161447600172560ustar00rootroot00000000000000unames={1: 'x', 2: 'y'}, parnames={1: 'theta', 2: 'eps', 3: 'r0', 4: 'r1', 11: 'Period'} NDIM= 3, IPS = 4, IRS = 3, ILP = 0 ICP = ['theta', 'Period'] NTST= 60, ISP = 0, IPLT= 3, NBC= 4 NPR= 1 DS = -0.05, DSMIN= 1e-05, DSMAX= 1.0 NPAR= 11, THL = {'Period': 0.0} UZSTOP = {'theta': [1.25, -0.75], 'Period': 10000.0} auto-07p-0.9.1+dfsg/07p/demos/um3/clean.auto000066400000000000000000000001631206161447600202200ustar00rootroot00000000000000 #============== # AUTO Demo um3 #============== print "\n***Clean the directory***" dl('1') dl('2') dl('3') cl() auto-07p-0.9.1+dfsg/07p/demos/um3/plaut04.rc000066400000000000000000000070011206161447600200610ustar00rootroot00000000000000#version 0.0 # Line colors are represented by RGB values from 0 to 1.0. # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and highlighting the solutions # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Initialize the default options: Highlight Orbit = No Orbit Animation = No Normalize Data = Yes Draw Background = No Draw Labels = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahead Coordinate Type = 0 # Draw Scale: Draw Scale = Yes # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 0 # Initialize the default graph style # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 0 #Set the window width and height: Window Width = 1000 Window Height = 600 # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 1 Y Axis Solution = 2 Z Axis Solution = 3 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 1 Z Axis Bifurcation = 2 #Labeled solutions: #-3 = Show all labeled solutions #-2 = Show HALF labeled solutions #-1 = Show SPEC labeled solutions #0 = Show NONE of the solutions #Otherwise, show the specified solution(s) Labels = -3 #Set coloring method: # -6 --- STABILITY # -5 --- POINT # -4 --- BRANCH # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. Coloring Method = -2 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 1.0 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Background color: Background Color = 0., 0., 0. # Background transparency: Background Transparency = 0.9 # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # UnStable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 # Color of the animation object: Object Color = 1.0, 1.0, 1.0 # Set the radius of the animation object: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Object Radius = 1.0 # Set the maximum and minimum animation speed: Object Max Animation Speed = 100 Object Min Animation Speed = 0 # Set the maximum and minimum highlighting animation speed: Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 # Set the active AUTO parameter indices: parameter ID = 10 # Choose 3D or 2D graph: 3D = Yes # Set the number of periods animated. # The value should be the power of 2. Number of Period Animated = 1 auto-07p-0.9.1+dfsg/07p/demos/um3/um3.auto000066400000000000000000000020271206161447600176430ustar00rootroot00000000000000 #============== # Demo um3 #============== print "\n***Grow an initial orbit by continuation***" init = run(e='um3', unames = {1:'x',2:'y',3:'z'}, parnames = {1:'theta',2:'eps',3:'r0',4:'r1',11:'Period'}, NDIM=3,IPS=4,ILP=0,ISP=0,ICP=['Period','r1'], NTST=60,IPLT=3,NBC=4, DS=5e-2,DSMIN=1e-5,DSMAX=1e1, THL={'Period':0.}, UZSTOP={'r1':1.}, NPAR=11) save(init, '1') print "\n***Decrease the value of the problem parameter eps***" decr = run(init,ICP=['eps','Period'],DS='-',DSMAX=1.0,UZSTOP={'eps':0.01}) save(decr, '2') print "\n***Part 1 of the unstable manifold***" startman = load(decr, ICP=['theta','Period'],NPR=1, DS=5e-2,DSMIN=1e-5,DSMAX=1e0, UZSTOP={'theta':[1.25,-0.75],'Period':1e4}) part1 = run(startman) print "\n***Part 2 of the unstable manifold" part2 = run(startman,DS='-') print "\n***Merge, relabel and save the orbits***" save(relabel(merge(part1+part2)),'3') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/um3/um3.f90000066400000000000000000000050171206161447600172730ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! um3: Computing a 2D unstable manifold in 3D (a phase portrait) !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) !---------- ---- 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,*), DFDP(NDIM,*) DOUBLE PRECISION eps, Period, x, y, z eps = PAR(2) Period = PAR(11) x = U(1) y = U(2) z = U(3) F(1) = Period * ( eps*x - y**3 + z**3) F(2) = Period * ( y + x**3 ) F(3) = Period * ( -z + x**2 ) END SUBROUTINE FUNC !---------------------------------------------------------------------- SUBROUTINE STPNT(NDIM,U,PAR,T) !---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(IN) :: T DOUBLE PRECISION, PARAMETER :: & theta = 0.25, & eps = 0.5, & r0 = 0.03, & r1 = r0, & Period= 1.d-4 DOUBLE PRECISION PI PI = 4*ATAN(1.D0) PAR(1:4) = (/theta,eps,r0,r1/) PAR(11) = Period U(1) = r0 * COS( 2.0D0 * PI * theta) U(2) = r0 * SIN( 2.0D0 * PI * theta) U(3) = 0.d0 END SUBROUTINE STPNT !---------------------------------------------------------------------- SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) !---------- ---- 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,*) DOUBLE PRECISION x0,y0,z0 , x1,y1,z1 , PI,theta,r0,r1 x0 = U0(1) y0 = U0(2) z0 = U0(3) x1 = U1(1) y1 = U1(2) z1 = U1(3) PI = 4*ATAN(1.D0) theta = PAR(1) r0 = PAR(3) r1 = PAR(4) FB(1) = x0 - r0 * COS( 2.0 * PI * theta) FB(2) = y0 - r0 * SIN( 2.0 * PI * theta) FB(3) = z0 FB(4) = SQRT(x1**2 + y1**2 + z1**2) - r1 END SUBROUTINE BCND !---------------------------------------------------------------------- SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS !---------------------------------------------------------------------- auto-07p-0.9.1+dfsg/07p/demos/vhb/000077500000000000000000000000001206161447600163175ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/vhb/c.vhb.1000077500000000000000000000005361206161447600174100ustar00rootroot00000000000000NDIM= 2, IPS = 1, IRS = 0, ILP = 0 ICP = [1] NTST= 5, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 100, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.06, DSMIN= 0.001, DSMAX= 0.06, IADS= 1 NPAR = 1, THL = {}, THU = {} UZSTOP = {1: 1.0} auto-07p-0.9.1+dfsg/07p/demos/vhb/c.vhb.2000077500000000000000000000005541206161447600174110ustar00rootroot00000000000000NDIM= 2, IPS = 2, IRS = 2, ILP = 0 ICP = [1, 11] NTST= 50, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 100, NPR= 1, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-07, EPSU = 1e-07, EPSS = 1e-05 DS = 0.1, DSMIN= 0.001, DSMAX= 0.2, IADS= 1 NPAR = 1, THL = {11: 0.0}, THU = {} UZSTOP = {11: 1e+05} auto-07p-0.9.1+dfsg/07p/demos/vhb/clean.auto000066400000000000000000000001451206161447600202730ustar00rootroot00000000000000 #============== # AUTO Demo vhb #============== print "\n***Clean the directory***" dl('vhb') cl() auto-07p-0.9.1+dfsg/07p/demos/vhb/plaut04.rc000077500000000000000000000070001206161447600201360ustar00rootroot00000000000000#version 0.0 # Line colors are represented by RGB values from 0 to 1.0. # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and highlighting the solutions # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Initialize the default options: Highlight Orbit = No Orbit Animation = No Normalize Data = Yes Draw Background = No Draw Labels = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahead Coordinate Type = 3 # Draw Scale: Draw Scale = Yes # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 1 # Initialize the default graph style # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 1 #Set the window width and height: Window Width = 1000 Window Height = 600 # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 0 Y Axis Solution = 1 Z Axis Solution = 2 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 2 Z Axis Bifurcation = 3 #Labeled solutions: #-3 = Show all labeled solutions #-2 = Show HALF labeled solutions #-1 = Show SPEC labeled solutions #0 = Show NONE of the solutions #Otherwise, show the specified solution(s) Labels = -3 #Set coloring method: # -6 --- STABILITY # -5 --- POINT # -4 --- BRANCH # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. Coloring Method = -6 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 1.0 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Background color: Background Color = 0., 0., 0. # Background transparency: Background Transparency = 0.9 # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # UnStable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 # Color of the animation object: Object Color = 1.0, 1.0, 1.0 # Set the radius of the animation object: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Object Radius = 1.0 # Set the maximum and minimum animation speed: Object Max Animation Speed = 100 Object Min Animation Speed = 0 # Set the maximum and minimum highlighting animation speed: Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 # Set the active AUTO parameter indices: parameter ID = 10 # Choose 3D or 2D graph: 3D = No # Set the number of periods animated. # The value should be the power of 2. Number of Period Animated = 1 auto-07p-0.9.1+dfsg/07p/demos/vhb/vhb.auto000077500000000000000000000004411206161447600177720ustar00rootroot00000000000000 #============== # AUTO Demo vhb #============== print "\n***Compute the zero family***" r1 = run(e='vhb',c='vhb.1') print "\n***Compute the bifurcating vertical branch of periodic solutions***" r2 = run(r1('HB1'),c='vhb.2') save(r1+r2,'vhb') print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/vhb/vhb.f90000077500000000000000000000025021206161447600174200ustar00rootroot00000000000000!--------------------------------------------------------------------- !--------------------------------------------------------------------- ! lin : A problem with a "vertical" Hopf bifurcation !--------------------------------------------------------------------- !--------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) F(1) = PAR(1)*U(1) - U(2) F(2) = U(1)*(1-U(1)) END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T PAR(1)=-1. U(1)=0.0 U(2)=0.0 END SUBROUTINE STPNT SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC) RETURN END SUBROUTINE ICND(NDIM,PAR,ICP,NINT,U,UOLD,UDOT,UPOLD,FI,IJAC,DINT) RETURN END SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/demos/wav/000077500000000000000000000000001206161447600163355ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/demos/wav/c.wav000066400000000000000000000005501206161447600172760ustar00rootroot00000000000000NDIM= 2, IPS = 1, IRS = 0, ILP = 1 ICP = [3] NTST= 25, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 500, NPR= 500, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.5, DSMIN= 0.1, DSMAX= 5.0, IADS= 1 NPAR = 16, THL = {11: 0.0}, THU = {} UZSTOP = {3: 800.0} auto-07p-0.9.1+dfsg/07p/demos/wav/c.wav.1000066400000000000000000000005501206161447600174350ustar00rootroot00000000000000NDIM= 2, IPS = 1, IRS = 0, ILP = 1 ICP = [3] NTST= 25, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 500, NPR= 500, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.5, DSMIN= 0.1, DSMAX= 5.0, IADS= 1 NPAR = 16, THL = {11: 0.0}, THU = {} UZSTOP = {3: 800.0} auto-07p-0.9.1+dfsg/07p/demos/wav/c.wav.2000066400000000000000000000005501206161447600174360ustar00rootroot00000000000000NDIM= 2, IPS = 11, IRS = 0, ILP = 1 ICP = [3] NTST= 25, NCOL= 4, IAD = 3, ISP = 2, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 500, NPR= 500, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.5, DSMIN= 0.1, DSMAX= 5.0, IADS= 1 NPAR = 16, THL = {11: 0.0}, THU = {} UZSTOP = {3: 800.0} auto-07p-0.9.1+dfsg/07p/demos/wav/c.wav.3000066400000000000000000000006161206161447600174420ustar00rootroot00000000000000NDIM= 2, IPS = 12, IRS = 4, ILP = 0 ICP = [3, 11] NTST= 25, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 500, NPR= 500, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.1, DSMIN= 0.1, DSMAX= 1.0, IADS= 1 NPAR = 16, THL = {11: 0.0}, THU = {} UZR = {3: [610.0, 638.0], 11: 500.0}, STOP = ['UZ4'] auto-07p-0.9.1+dfsg/07p/demos/wav/c.wav.4000066400000000000000000000005421206161447600174410ustar00rootroot00000000000000NDIM= 2, IPS = 12, IRS = 8, ILP = 0 ICP = [3, 10] NTST= 25, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 500, NPR= 50, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.5, DSMIN= 0.1, DSMAX= 2.0, IADS= 1 NPAR = 16, THL = {11: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/wav/c.wav.5000066400000000000000000000005411206161447600174410ustar00rootroot00000000000000NDIM= 2, IPS = 14, IRS = 8, ILP = 0 ICP = [14] NTST= 25, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 230, NPR= 5, MXBF= 10, IID = 2, ITMX= 8, ITNW= 5, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.5, DSMIN= 0.1, DSMAX= 2.0, IADS= 1 NPAR = 16, THL = {11: 0.0}, THU = {} UZR = {}, auto-07p-0.9.1+dfsg/07p/demos/wav/c.wav.6000066400000000000000000000005421206161447600174430ustar00rootroot00000000000000NDIM= 2, IPS = 13, IRS = 19, ILP = 0 ICP = [3, 10] NTST= 20, NCOL= 4, IAD = 3, ISP = 0, ISW = 1, IPLT= 0, NBC= 0, NINT= 0 NMX= 10, NPR= 10, MXBF= 10, IID = 2, ITMX= 8, ITNW= 7, NWTN= 3, JAC= 0 EPSL= 1e-06, EPSU = 1e-06, EPSS =0.0001 DS = 0.5, DSMIN= 0.1, DSMAX= 10.0, IADS= 1 NPAR = 16, THL = {11: 0.0}, THU = {} UZR = {} auto-07p-0.9.1+dfsg/07p/demos/wav/clean.auto000066400000000000000000000002031206161447600203040ustar00rootroot00000000000000 #============== # AUTO Demo wav #============== print "\n***Clean the directory***" dl('ode') dl('wav') dl('rng') dl('tim') cl() auto-07p-0.9.1+dfsg/07p/demos/wav/plaut04.rc000066400000000000000000000070001206161447600201510ustar00rootroot00000000000000#version 0.0 # Line colors are represented by RGB values from 0 to 1.0. # DEFAULT color is also used when animationLabel == 0, i.e., # when showing all solutions and highlighting the solutions # Point Type RED GREEN BLUE DEFAULT = 1.0, 1.0, 1.0, 0xffff BP = 1.0, 0.0, 0.0, 0xffff LP ALG = 0.0, 1.0, 0.0, 0xffff HB = 0.0, 0.0, 1.0, 0xffff UZ4 = 1.0, 1.0, 0.0, 0xffff UZ-4 = 0.5, 0.5, 0.0, 0xffff LP DIF = 0.0, 0.0, 0.5, 0xffff BP DIF = 0.0, 0.5, 0.5, 0xffff PD = 1.0, 0.0, 1.0, 0xffff TR = 0.0, 1.0, 1.0, 0xffff EP = 0.3, 0.0, 0.3, 0xffff MX = 0.6, 0.0, 0.6, 0xffff OTHERS = 1.0, 1.0, 1.0, 0xffff # Initialize the line pattern for showing stability: UNSTABLE LINE PATTERN = 0xffff STABLE LINE PATTERN = 0xffff # Initialize the default options: Highlight Orbit = No Orbit Animation = No Normalize Data = Yes Draw Background = No Draw Labels = Yes # Initialize the default coordinate axes: # 0 --- None, # 1 --- at geometry center or origin # 2 --- at left and behind # 3 --- at left and ahead Coordinate Type = 3 # Draw Scale: Draw Scale = Yes # Initialize the default graph type: # 0 --- Solution (fort.8) # 1 --- Bifurcation (fort.7) Graph Type = 1 # Initialize the default graph style # 0 --- LINES, 1 --- TUBES, 2 ---- SURFACE Graph Style = 1 #Set the window width and height: Window Width = 1000 Window Height = 600 # Set X, Y, Z axes for the solution diagram: # 0 is Time for X,Y,Z. X Axis Solution = 0 Y Axis Solution = 1 Z Axis Solution = 2 # Set X, Y, Z axes for the bifurcation diagram: X Axis Bifurcation = 0 Y Axis Bifurcation = 1 Z Axis Bifurcation = 2 #Labeled solutions: #-3 = Show all labeled solutions #-2 = Show HALF labeled solutions #-1 = Show SPEC labeled solutions #0 = Show NONE of the solutions #Otherwise, show the specified solution(s) Labels = -3 #Set coloring method: # -6 --- STABILITY # -5 --- POINT # -4 --- BRANCH # -3 --- TYPE # -2 --- LABEL # -1 --- COMPONENT # Otherwise, according to the data in the ith column of the solution file. # It can only be set to an integer value. Coloring Method = -6 # Line Width Scaler adjusts the thickness of curves: Line Width Scaler = 1.0 # The AniLine Thickness Scaler sets the thickness of animated solution curves: AniLine Thickness Scaler = 3.0 # Background color: Background Color = 0., 0., 0. # Background transparency: Background Transparency = 0.9 # Axes color: X Axis Color = 1.0, 0.0, 0.0 Y Axis Color = 0.0, 1.0, 0.0 Z Axis Color = 0.0, 0.0, 1.0 # Stable solution color: Stable Solution Color = 0.0, 0.0, 1.0 # UnStable solution color: Unstable Solution Color = 1.0, 0.0, 0.0 # Color of the animation object: Object Color = 1.0, 1.0, 1.0 # Set the radius of the animation object: # The normal size is 1.0. # For smaller radius, use 0.xxx # For bigger radius, use X.XXX Object Radius = 1.0 # Set the maximum and minimum animation speed: Object Max Animation Speed = 100 Object Min Animation Speed = 0 # Set the maximum and minimum highlighting animation speed: Orbit Max Animation Speed = 100 Orbit Min Animation Speed = 0 # Set the active AUTO parameter indices: parameter ID = 10 # Choose 3D or 2D graph: 3D = No # Set the number of periods animated. # The value should be the power of 2. Number of Period Animated = 1 auto-07p-0.9.1+dfsg/07p/demos/wav/wav.auto000066400000000000000000000016741206161447600200340ustar00rootroot00000000000000 #============== # AUTO Demo wav #============== pgm = "wav" print "\nDemo %s is started"%pgm print "\n%s : first run : stationary solutions of the ODE"%pgm r1 = run(e=pgm,c=pgm) save(r1,"ode") print "\n%s : second run : stationary solutions of the reduced PDE"%pgm r2 = run(e=pgm,c=pgm,IPS=11) print "\n%s : third run : wave train solutions of fixed wave speed"%pgm r3 = run(r2("HB1"),IPS=12,ICP=[3,11],ILP=0,ISP=0,RL1=700,DS=0.1,DSMAX=1.0, UZR={3:[610.0,638.0], 11:500.0}, STOP=['UZ4']) save(r2+r3,pgm) print "\n%s : fourth run : fixed wave length waves on a ring"%pgm uz3 = load(r3("UZ3"),RL1=1000,DS=0.5,DSMAX=2.0,UZR={}) r4 = run(uz3,ICP=[3,10],NPR=50) save(r4,'rng') print "\n%s : fifth run : time evolution computation"%pgm r5 = run(uz3,IPS=14,ICP=[14],NMX=230,NPR=5) save(r5,'tim') #print "\n%s : sixth run : stationary wave continuation"%pgm #r6 = run(r2+r3,c=pgm+'6') #save(r2+r3+r6,pgm) print "\n***Clean the directory***" cl() auto-07p-0.9.1+dfsg/07p/demos/wav/wav.f90000066400000000000000000000031131206161447600174500ustar00rootroot00000000000000!---------------------------------------------------------------------- !---------------------------------------------------------------------- ! wav : Periodic waves in an a nonlinear parabolic PDE !---------------------------------------------------------------------- !---------------------------------------------------------------------- SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP) ! ---------- ---- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*) DOUBLE PRECISION, INTENT(OUT) :: F(NDIM) DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*) DOUBLE PRECISION R R= U(2)/(PAR(5)+U(2)) * U(1)/(1+U(1)+PAR(6)*U(1)*U(1)) F(1)=-PAR(1)*( PAR(4)*R - (PAR(2)-U(1)) ) F(2)=-PAR(1)*( PAR(4)*R - PAR(7)*(PAR(3)-U(2)) ) END SUBROUTINE FUNC SUBROUTINE STPNT(NDIM,U,PAR,T) ! ---------- ----- IMPLICIT NONE INTEGER, INTENT(IN) :: NDIM DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*) DOUBLE PRECISION, INTENT(IN) :: T PAR(1) = 3.0 PAR(2) = 145 PAR(3) = 500. PAR(4) = 210 PAR(5) = 3.4 PAR(6) = 0.023 PAR(7) = 0.2 U(1) = 6.27662E+01 U(2) = 8.88308E+01 PAR(10) = 0.05 PAR(15) = 1.0 PAR(16) = 5.0 END SUBROUTINE STPNT SUBROUTINE BCND END SUBROUTINE BCND SUBROUTINE ICND END SUBROUTINE ICND SUBROUTINE FOPT END SUBROUTINE FOPT SUBROUTINE PVLS END SUBROUTINE PVLS auto-07p-0.9.1+dfsg/07p/doc/000077500000000000000000000000001206161447600151765ustar00rootroot00000000000000auto-07p-0.9.1+dfsg/07p/doc/@tut000077500000000000000000000001501206161447600160340ustar00rootroot00000000000000latex tutorial latex tutorial dvips -x 1500 -t landscape tutorial -o tutorial.ps ghostview tutorial.ps auto-07p-0.9.1+dfsg/07p/doc/Makefile000066400000000000000000000037561206161447600166510ustar00rootroot00000000000000# # Makefile 11/1996 # .SUFFIXES: .fig .ps .eps .pdf RM = rm -f I = include/ FIGS = $(I)ab1.pdf $(I)ab2.pdf $(I)ab3.pdf $(I)cir1.pdf $(I)cir2.pdf \ $(I)kpr10.pdf $(I)kpr1.pdf $(I)kpr2.pdf $(I)kpr4.pdf $(I)kpr5.pdf $(I)kpr6.pdf \ $(I)kpr7.pdf $(I)kpr8.pdf $(I)mtn1.pdf $(I)mtn2.pdf $(I)mtn3.pdf $(I)rev1.pdf \ $(I)rev2.pdf $(I)rev3.pdf $(I)rev4.pdf $(I)san1.pdf $(I)san2.pdf $(I)she1.pdf \ $(I)broken.pdf $(I)cb_snh.pdf $(I)cb_snh_par.pdf $(I)closegap_pcl.pdf \ $(I)closegap_pcl_par.pdf $(I)closegap_snh.pdf $(I)closegap_snh_par.pdf \ $(I)cont_pcl.pdf $(I)cont_pcl_par.pdf $(I)cont_snh_all.pdf \ $(I)cont_snh_all_par.pdf $(I)cusp1.pdf $(I)cusp2.pdf $(I)fnc_attrrep1.pdf \ $(I)fnc_attrrep2.pdf $(I)fnc_canards1.pdf $(I)fnc_canards2.pdf \ $(I)fnc_canards3.pdf $(I)fnc_canards4.pdf $(I)fnc_canards5.pdf $(I)hom2.pdf \ $(I)hom3.pdf $(I)hopfbif.pdf $(I)kdv3hom.pdf $(I)loop.pdf $(I)notshifted.pdf \ $(I)parspace.pdf $(I)pp21.pdf $(I)pp22.pdf $(I)shilgap.pdf PLAUT04_FIGS = $(I)2component.pdf $(I)centerMenu.pdf \ $(I)clrLBMu0.pdf $(I)clrTimeMu0.pdf $(I)clrTyMu0.pdf \ $(I)drawCoordMenu.pdf $(I)emL1Sol.pdf $(I)exit.pdf \ $(I)floquet.pdf $(I)helpMenu.pdf $(I)menubar.pdf \ $(I)optionMenu.pdf $(I)styleMenuNew.pdf $(I)typeMenu.pdf all: manual manual: auto.pdf ../plaut04/doc/userguide.pdf ../cmds/@mn auto.pdf:auto.tex $(FIGS) $(PLAUT04_FIGS) pdflatex auto.tex bibtex auto pdflatex auto.tex pdflatex auto.tex pdflatex auto.tex .fig.pdf: fig2dev -Lpdf $< $@ .ps.pdf: perl ./epstopdf.pl $< .eps.pdf: perl ./epstopdf.pl $< ../plaut04/doc/userguide.pdf: user_guide.tex $(PLAUT04_FIGS) pdflatex user_guide.tex pdflatex user_guide.tex mv user_guide.pdf $@ clean: @echo "Cleaning auto.doc ..." @$(RM) *.aux *.log *.bbl *.blg *.toc *.out @$(RM) $(FIGS) $(PLAUT04_FIGS) @for i in include/*.eps; do $(RM) `echo $$i | sed -e "s/\.eps/.pdf/"`; done @for i in include/*.ps; do $(RM) `echo $$i | sed -e "s/\.ps/.pdf/"`; done @echo "Cleaning ... done" superclean: clean @$(RM) auto.pdf manualclean: auto.pdf clean auto-07p-0.9.1+dfsg/07p/doc/README000066400000000000000000000003531206161447600160570ustar00rootroot00000000000000This directory contains auto.tex: the AUTO user manual TeX file. Type ``make'' to create auto.ps, the PostScript form of the manual. The file auto.ps is used by the GUI and by the @mn command for the display of the on-line manual. auto-07p-0.9.1+dfsg/07p/doc/auto.pdf000066400000000000000000104502651206161447600166560ustar00rootroot00000000000000%PDF-1.4 % 5 0 obj << /S /GoTo /D (chapter.1) >> endobj 8 0 obj (Installing AUTO.) endobj 9 0 obj << /S /GoTo /D (section.1.1) >> endobj 12 0 obj ( Installation.) endobj 13 0 obj << /S /GoTo /D (subsection.1.1.1) >> endobj 16 0 obj (Installation on Linux/Unix) endobj 17 0 obj << /S /GoTo /D (subsection.1.1.2) >> endobj 20 0 obj (Installation on Mac OS X) endobj 21 0 obj << /S /GoTo /D (subsection.1.1.3) >> endobj 24 0 obj (Installation on Windows) endobj 25 0 obj << /S /GoTo /D (section.1.2) >> endobj 28 0 obj ( Restrictions on Problem Size.) endobj 29 0 obj << /S /GoTo /D (section.1.3) >> endobj 32 0 obj ( Compatibility with Earlier Versions.) endobj 33 0 obj << /S /GoTo /D (section.1.4) >> endobj 36 0 obj ( Parallel Version.) endobj 37 0 obj << /S /GoTo /D (chapter.2) >> endobj 40 0 obj ( Overview of Capabilities.) endobj 41 0 obj << /S /GoTo /D (section.2.1) >> endobj 44 0 obj ( Summary.) endobj 45 0 obj << /S /GoTo /D (section.2.2) >> endobj 48 0 obj ( Algebraic Systems.) endobj 49 0 obj << /S /GoTo /D (section.2.3) >> endobj 52 0 obj ( Ordinary Differential Equations.) endobj 53 0 obj << /S /GoTo /D (section.2.4) >> endobj 56 0 obj ( Parabolic PDEs.) endobj 57 0 obj << /S /GoTo /D (section.2.5) >> endobj 60 0 obj ( Discretization.) endobj 61 0 obj << /S /GoTo /D (chapter.3) >> endobj 64 0 obj ( User-Supplied Files.) endobj 65 0 obj << /S /GoTo /D (section.3.1) >> endobj 68 0 obj ( The Equations-File xxx.f90, or xxx.f, or xxx.c) endobj 69 0 obj << /S /GoTo /D (section.3.2) >> endobj 72 0 obj ( The Constants-File c.xxx) endobj 73 0 obj << /S /GoTo /D (section.3.3) >> endobj 76 0 obj ( User-Supplied Routines.) endobj 77 0 obj << /S /GoTo /D (section.3.4) >> endobj 80 0 obj ( User-Supplied Derivatives.) endobj 81 0 obj << /S /GoTo /D (chapter.4) >> endobj 84 0 obj ( Running AUTO using Python Commands.) endobj 85 0 obj << /S /GoTo /D (section.4.1) >> endobj 88 0 obj ( Typographical Conventions ) endobj 89 0 obj << /S /GoTo /D (section.4.2) >> endobj 92 0 obj ( General Overview.) endobj 93 0 obj << /S /GoTo /D (section.4.3) >> endobj 96 0 obj ( First Example ) endobj 97 0 obj << /S /GoTo /D (section.4.4) >> endobj 100 0 obj ( Scripting ) endobj 101 0 obj << /S /GoTo /D (section.4.5) >> endobj 104 0 obj ( Second Example ) endobj 105 0 obj << /S /GoTo /D (section.4.6) >> endobj 108 0 obj ( Extending the AUTO CLUI ) endobj 109 0 obj << /S /GoTo /D (section.4.7) >> endobj 112 0 obj ( Bifurcation Diagram Objects) endobj 113 0 obj << /S /GoTo /D (subsection.4.7.1) >> endobj 116 0 obj ( Solutions) endobj 117 0 obj << /S /GoTo /D (subsection.4.7.2) >> endobj 120 0 obj (Summary and reference) endobj 121 0 obj << /S /GoTo /D (section.4.8) >> endobj 124 0 obj ( Importing data from Python or external tools.) endobj 125 0 obj << /S /GoTo /D (section.4.9) >> endobj 128 0 obj ( Exporting output data for use by Python or external visualization tools.) endobj 129 0 obj << /S /GoTo /D (section.4.10) >> endobj 132 0 obj ( The .autorc or autorc File ) endobj 133 0 obj << /S /GoTo /D (section.4.11) >> endobj 136 0 obj ( Plotting Tool) endobj 137 0 obj << /S /GoTo /D (section.4.12) >> endobj 140 0 obj ( The Plotting Tool PLAUT04) endobj 141 0 obj << /S /GoTo /D (section.4.13) >> endobj 144 0 obj ( Quick Reference ) endobj 145 0 obj << /S /GoTo /D (section.4.14) >> endobj 148 0 obj ( Reference ) endobj 149 0 obj << /S /GoTo /D (subsection.4.14.1) >> endobj 152 0 obj (Basic commands.) endobj 153 0 obj << /S /GoTo /D (subsection.4.14.2) >> endobj 156 0 obj (Plotting commands.) endobj 157 0 obj << /S /GoTo /D (subsection.4.14.3) >> endobj 160 0 obj (File-manipulation.) endobj 161 0 obj << /S /GoTo /D (subsection.4.14.4) >> endobj 164 0 obj (Diagnostics.) endobj 165 0 obj << /S /GoTo /D (subsection.4.14.5) >> endobj 168 0 obj (File-maintenance.) endobj 169 0 obj << /S /GoTo /D (subsection.4.14.6) >> endobj 172 0 obj (Copying a demo.) endobj 173 0 obj << /S /GoTo /D (subsection.4.14.7) >> endobj 176 0 obj (Python data structure manipulation functions.) endobj 177 0 obj << /S /GoTo /D (subsection.4.14.8) >> endobj 180 0 obj (Shell Commands.) endobj 181 0 obj << /S /GoTo /D (chapter.5) >> endobj 184 0 obj ( Running AUTO using Unix Commands.) endobj 185 0 obj << /S /GoTo /D (section.5.1) >> endobj 188 0 obj ( Basic commands.) endobj 189 0 obj << /S /GoTo /D (section.5.2) >> endobj 192 0 obj ( Plotting commands.) endobj 193 0 obj << /S /GoTo /D (section.5.3) >> endobj 196 0 obj ( File-manipulation.) endobj 197 0 obj << /S /GoTo /D (section.5.4) >> endobj 200 0 obj ( Diagnostics.) endobj 201 0 obj << /S /GoTo /D (section.5.5) >> endobj 204 0 obj ( File-editing.) endobj 205 0 obj << /S /GoTo /D (section.5.6) >> endobj 208 0 obj ( File-maintenance.) endobj 209 0 obj << /S /GoTo /D (section.5.7) >> endobj 212 0 obj ( HomCont commands.) endobj 213 0 obj << /S /GoTo /D (section.5.8) >> endobj 216 0 obj ( Copying a demo.) endobj 217 0 obj << /S /GoTo /D (section.5.9) >> endobj 220 0 obj ( Viewing the manual.) endobj 221 0 obj << /S /GoTo /D (chapter.6) >> endobj 224 0 obj ( Output Files.) endobj 225 0 obj << /S /GoTo /D (chapter.7) >> endobj 228 0 obj ( The Graphics Programs PLAUT and PyPLAUT.) endobj 229 0 obj << /S /GoTo /D (section.7.1) >> endobj 232 0 obj ( Basic PLAUT-Commands.) endobj 233 0 obj << /S /GoTo /D (section.7.2) >> endobj 236 0 obj ( Default Options.) endobj 237 0 obj << /S /GoTo /D (section.7.3) >> endobj 240 0 obj ( Other PLAUT-Commands.) endobj 241 0 obj << /S /GoTo /D (section.7.4) >> endobj 244 0 obj ( Printing PLAUT Files.) endobj 245 0 obj << /S /GoTo /D (chapter.8) >> endobj 248 0 obj ( The Graphics Program PLAUT04.) endobj 249 0 obj << /S /GoTo /D (section.8.1) >> endobj 252 0 obj (Quick start) endobj 253 0 obj << /S /GoTo /D (subsection.8.1.1) >> endobj 256 0 obj (Starting and stopping Plaut04) endobj 257 0 obj << /S /GoTo /D (subsection.8.1.2) >> endobj 260 0 obj (Changing the ``Type'') endobj 261 0 obj << /S /GoTo /D (subsection.8.1.3) >> endobj 264 0 obj (Changing the ``Style'') endobj 265 0 obj << /S /GoTo /D (subsection.8.1.4) >> endobj 268 0 obj (Coordinate axes) endobj 269 0 obj << /S /GoTo /D (subsection.8.1.5) >> endobj 272 0 obj (Options) endobj 273 0 obj << /S /GoTo /D (subsection.8.1.6) >> endobj 276 0 obj (CR3BP animation) endobj 277 0 obj << /S /GoTo /D (subsection.8.1.7) >> endobj 280 0 obj (Help) endobj 281 0 obj << /S /GoTo /D (subsection.8.1.8) >> endobj 284 0 obj (Picking a point in the diagram) endobj 285 0 obj << /S /GoTo /D (subsection.8.1.9) >> endobj 288 0 obj (Choosing the variables) endobj 289 0 obj << /S /GoTo /D (subsection.8.1.10) >> endobj 292 0 obj (Choosing labels) endobj 293 0 obj << /S /GoTo /D (subsection.8.1.11) >> endobj 296 0 obj (Coloring) endobj 297 0 obj << /S /GoTo /D (subsection.8.1.12) >> endobj 300 0 obj (Number of periods to be animated) endobj 301 0 obj << /S /GoTo /D (subsection.8.1.13) >> endobj 304 0 obj (Changing the line/tube thickness) endobj 305 0 obj << /S /GoTo /D (subsection.8.1.14) >> endobj 308 0 obj (Changing the animation speed) endobj 309 0 obj << /S /GoTo /D (subsection.8.1.15) >> endobj 312 0 obj (Changing the background picture) endobj 313 0 obj << /S /GoTo /D (section.8.2) >> endobj 316 0 obj (Setting up the resource file) endobj 317 0 obj << /S /GoTo /D (section.8.3) >> endobj 320 0 obj (Example) endobj 321 0 obj << /S /GoTo /D (chapter.9) >> endobj 324 0 obj ( The Graphical User Interface GUI94.) endobj 325 0 obj << /S /GoTo /D (section.9.1) >> endobj 328 0 obj ( General Overview.) endobj 329 0 obj << /S /GoTo /D (subsection.9.1.1) >> endobj 332 0 obj ( The Menu bar.) endobj 333 0 obj << /S /GoTo /D (subsection.9.1.2) >> endobj 336 0 obj ( The Define-Constants-buttons.) endobj 337 0 obj << /S /GoTo /D (subsection.9.1.3) >> endobj 340 0 obj ( The Load-Constants-buttons.) endobj 341 0 obj << /S /GoTo /D (subsection.9.1.4) >> endobj 344 0 obj ( The Stop- and Exit-buttons.) endobj 345 0 obj << /S /GoTo /D (section.9.2) >> endobj 348 0 obj ( The Menu Bar.) endobj 349 0 obj << /S /GoTo /D (subsection.9.2.1) >> endobj 352 0 obj ( Equations-button.) endobj 353 0 obj << /S /GoTo /D (subsection.9.2.2) >> endobj 356 0 obj ( Edit-button.) endobj 357 0 obj << /S /GoTo /D (subsection.9.2.3) >> endobj 360 0 obj ( Write-button.) endobj 361 0 obj << /S /GoTo /D (subsection.9.2.4) >> endobj 364 0 obj ( Define-button.) endobj 365 0 obj << /S /GoTo /D (subsection.9.2.5) >> endobj 368 0 obj ( Run-button.) endobj 369 0 obj << /S /GoTo /D (subsection.9.2.6) >> endobj 372 0 obj ( Save-button.) endobj 373 0 obj << /S /GoTo /D (subsection.9.2.7) >> endobj 376 0 obj ( Append-button.) endobj 377 0 obj << /S /GoTo /D (subsection.9.2.8) >> endobj 380 0 obj ( Plot-button.) endobj 381 0 obj << /S /GoTo /D (subsection.9.2.9) >> endobj 384 0 obj ( Files-button.) endobj 385 0 obj << /S /GoTo /D (subsection.9.2.10) >> endobj 388 0 obj ( Demos-button.) endobj 389 0 obj << /S /GoTo /D (subsection.9.2.11) >> endobj 392 0 obj ( Misc.-button.) endobj 393 0 obj << /S /GoTo /D (subsection.9.2.12) >> endobj 396 0 obj ( Help-button.) endobj 397 0 obj << /S /GoTo /D (section.9.3) >> endobj 400 0 obj ( Using the GUI.) endobj 401 0 obj << /S /GoTo /D (section.9.4) >> endobj 404 0 obj ( Customizing the GUI.) endobj 405 0 obj << /S /GoTo /D (subsection.9.4.1) >> endobj 408 0 obj ( Print-button.) endobj 409 0 obj << /S /GoTo /D (subsection.9.4.2) >> endobj 412 0 obj ( GUI colors.) endobj 413 0 obj << /S /GoTo /D (subsection.9.4.3) >> endobj 416 0 obj ( On-line help.) endobj 417 0 obj << /S /GoTo /D (chapter.10) >> endobj 420 0 obj ( Description of AUTO-Constants.) endobj 421 0 obj << /S /GoTo /D (section.10.1) >> endobj 424 0 obj ( The AUTO-Constants File.) endobj 425 0 obj << /S /GoTo /D (section.10.2) >> endobj 428 0 obj ( Problem Constants.) endobj 429 0 obj << /S /GoTo /D (subsection.10.2.1) >> endobj 432 0 obj (NDIM) endobj 433 0 obj << /S /GoTo /D (subsection.10.2.2) >> endobj 436 0 obj (NBC) endobj 437 0 obj << /S /GoTo /D (subsection.10.2.3) >> endobj 440 0 obj (NINT) endobj 441 0 obj << /S /GoTo /D (subsection.10.2.4) >> endobj 444 0 obj (NPAR) endobj 445 0 obj << /S /GoTo /D (subsection.10.2.5) >> endobj 448 0 obj (JAC) endobj 449 0 obj << /S /GoTo /D (section.10.3) >> endobj 452 0 obj ( Discretization Constants.) endobj 453 0 obj << /S /GoTo /D (subsection.10.3.1) >> endobj 456 0 obj (NTST) endobj 457 0 obj << /S /GoTo /D (subsection.10.3.2) >> endobj 460 0 obj (NCOL) endobj 461 0 obj << /S /GoTo /D (subsection.10.3.3) >> endobj 464 0 obj (IAD) endobj 465 0 obj << /S /GoTo /D (section.10.4) >> endobj 468 0 obj ( Tolerances.) endobj 469 0 obj << /S /GoTo /D (subsection.10.4.1) >> endobj 472 0 obj (EPSL) endobj 473 0 obj << /S /GoTo /D (subsection.10.4.2) >> endobj 476 0 obj (EPSU) endobj 477 0 obj << /S /GoTo /D (subsection.10.4.3) >> endobj 480 0 obj (EPSS) endobj 481 0 obj << /S /GoTo /D (subsection.10.4.4) >> endobj 484 0 obj (ITMX) endobj 485 0 obj << /S /GoTo /D (subsection.10.4.5) >> endobj 488 0 obj (NWTN) endobj 489 0 obj << /S /GoTo /D (subsection.10.4.6) >> endobj 492 0 obj (ITNW) endobj 493 0 obj << /S /GoTo /D (section.10.5) >> endobj 496 0 obj ( Continuation Step Size.) endobj 497 0 obj << /S /GoTo /D (subsection.10.5.1) >> endobj 500 0 obj (DS) endobj 501 0 obj << /S /GoTo /D (subsection.10.5.2) >> endobj 504 0 obj (DSMIN) endobj 505 0 obj << /S /GoTo /D (subsection.10.5.3) >> endobj 508 0 obj (DSMAX) endobj 509 0 obj << /S /GoTo /D (subsection.10.5.4) >> endobj 512 0 obj (IADS) endobj 513 0 obj << /S /GoTo /D (subsection.10.5.5) >> endobj 516 0 obj (THL) endobj 517 0 obj << /S /GoTo /D (subsection.10.5.6) >> endobj 520 0 obj (THU) endobj 521 0 obj << /S /GoTo /D (section.10.6) >> endobj 524 0 obj ( Diagram Limits.) endobj 525 0 obj << /S /GoTo /D (subsection.10.6.1) >> endobj 528 0 obj (STOP) endobj 529 0 obj << /S /GoTo /D (subsection.10.6.2) >> endobj 532 0 obj (NMX) endobj 533 0 obj << /S /GoTo /D (subsection.10.6.3) >> endobj 536 0 obj (RL0) endobj 537 0 obj << /S /GoTo /D (subsection.10.6.4) >> endobj 540 0 obj (RL1) endobj 541 0 obj << /S /GoTo /D (subsection.10.6.5) >> endobj 544 0 obj (A0) endobj 545 0 obj << /S /GoTo /D (subsection.10.6.6) >> endobj 548 0 obj (A1) endobj 549 0 obj << /S /GoTo /D (section.10.7) >> endobj 552 0 obj ( Free Parameters.) endobj 553 0 obj << /S /GoTo /D (subsection.10.7.1) >> endobj 556 0 obj (ICP) endobj 557 0 obj << /S /GoTo /D (subsection.10.7.2) >> endobj 560 0 obj ( Fixed points.) endobj 561 0 obj << /S /GoTo /D (subsection.10.7.3) >> endobj 564 0 obj ( Periodic solutions and rotations.) endobj 565 0 obj << /S /GoTo /D (subsection.10.7.4) >> endobj 568 0 obj ( Folds and Hopf bifurcations.) endobj 569 0 obj << /S /GoTo /D (subsection.10.7.5) >> endobj 572 0 obj ( Folds and period-doublings.) endobj 573 0 obj << /S /GoTo /D (subsection.10.7.6) >> endobj 576 0 obj ( Boundary value problems.) endobj 577 0 obj << /S /GoTo /D (subsection.10.7.7) >> endobj 580 0 obj ( Boundary value folds.) endobj 581 0 obj << /S /GoTo /D (subsection.10.7.8) >> endobj 584 0 obj ( Optimization problems.) endobj 585 0 obj << /S /GoTo /D (subsection.10.7.9) >> endobj 588 0 obj ( Internal free parameters.) endobj 589 0 obj << /S /GoTo /D (subsection.10.7.10) >> endobj 592 0 obj ( Parameter overspecification.) endobj 593 0 obj << /S /GoTo /D (section.10.8) >> endobj 596 0 obj ( Computation Constants.) endobj 597 0 obj << /S /GoTo /D (subsection.10.8.1) >> endobj 600 0 obj (ILP) endobj 601 0 obj << /S /GoTo /D (subsection.10.8.2) >> endobj 604 0 obj (SP) endobj 605 0 obj << /S /GoTo /D (subsection.10.8.3) >> endobj 608 0 obj (ISP) endobj 609 0 obj << /S /GoTo /D (subsection.10.8.4) >> endobj 612 0 obj (ISW) endobj 613 0 obj << /S /GoTo /D (subsection.10.8.5) >> endobj 616 0 obj (MXBF) endobj 617 0 obj << /S /GoTo /D (subsection.10.8.6) >> endobj 620 0 obj (s) endobj 621 0 obj << /S /GoTo /D (subsection.10.8.7) >> endobj 624 0 obj (dat) endobj 625 0 obj << /S /GoTo /D (subsection.10.8.8) >> endobj 628 0 obj (U) endobj 629 0 obj << /S /GoTo /D (subsection.10.8.9) >> endobj 632 0 obj (PAR) endobj 633 0 obj << /S /GoTo /D (subsection.10.8.10) >> endobj 636 0 obj (IRS) endobj 637 0 obj << /S /GoTo /D (subsection.10.8.11) >> endobj 640 0 obj (TY) endobj 641 0 obj << /S /GoTo /D (subsection.10.8.12) >> endobj 644 0 obj (IPS) endobj 645 0 obj << /S /GoTo /D (section.10.9) >> endobj 648 0 obj ( Output Control.) endobj 649 0 obj << /S /GoTo /D (subsection.10.9.1) >> endobj 652 0 obj (unames) endobj 653 0 obj << /S /GoTo /D (subsection.10.9.2) >> endobj 656 0 obj (parnames) endobj 657 0 obj << /S /GoTo /D (subsection.10.9.3) >> endobj 660 0 obj (e) endobj 661 0 obj << /S /GoTo /D (subsection.10.9.4) >> endobj 664 0 obj (sv) endobj 665 0 obj << /S /GoTo /D (subsection.10.9.5) >> endobj 668 0 obj (NPR) endobj 669 0 obj << /S /GoTo /D (subsection.10.9.6) >> endobj 672 0 obj (IBR) endobj 673 0 obj << /S /GoTo /D (subsection.10.9.7) >> endobj 676 0 obj (LAB) endobj 677 0 obj << /S /GoTo /D (subsection.10.9.8) >> endobj 680 0 obj (IIS) endobj 681 0 obj << /S /GoTo /D (subsection.10.9.9) >> endobj 684 0 obj (IID) endobj 685 0 obj << /S /GoTo /D (subsection.10.9.10) >> endobj 688 0 obj (IPLT) endobj 689 0 obj << /S /GoTo /D (subsection.10.9.11) >> endobj 692 0 obj (UZR) endobj 693 0 obj << /S /GoTo /D (subsection.10.9.12) >> endobj 696 0 obj (UZSTOP) endobj 697 0 obj << /S /GoTo /D (section.10.10) >> endobj 700 0 obj ( Quick reference) endobj 701 0 obj << /S /GoTo /D (chapter.11) >> endobj 704 0 obj ( Notes on Using AUTO.) endobj 705 0 obj << /S /GoTo /D (section.11.1) >> endobj 708 0 obj ( Restrictions on the Use of PAR.) endobj 709 0 obj << /S /GoTo /D (section.11.2) >> endobj 712 0 obj ( Efficiency.) endobj 713 0 obj << /S /GoTo /D (section.11.3) >> endobj 716 0 obj ( Correctness of Results.) endobj 717 0 obj << /S /GoTo /D (section.11.4) >> endobj 720 0 obj ( Bifurcation Points and Folds.) endobj 721 0 obj << /S /GoTo /D (section.11.5) >> endobj 724 0 obj ( Floquet Multipliers.) endobj 725 0 obj << /S /GoTo /D (section.11.6) >> endobj 728 0 obj ( Memory Requirements.) endobj 729 0 obj << /S /GoTo /D (chapter.12) >> endobj 732 0 obj ( AUTO Demos : Tutorial.) endobj 733 0 obj << /S /GoTo /D (section.12.1) >> endobj 736 0 obj ( Introduction.) endobj 737 0 obj << /S /GoTo /D (section.12.2) >> endobj 740 0 obj ( cusp : A Tutorial Demo.) endobj 741 0 obj << /S /GoTo /D (section.12.3) >> endobj 744 0 obj ( Copying the Demo Files.) endobj 745 0 obj << /S /GoTo /D (section.12.4) >> endobj 748 0 obj ( Executing all Runs Automatically.) endobj 749 0 obj << /S /GoTo /D (section.12.5) >> endobj 752 0 obj ( Plotting the Results with AUTO.) endobj 753 0 obj << /S /GoTo /D (section.12.6) >> endobj 756 0 obj ( Plotting the Results with AUTO in 3D.) endobj 757 0 obj << /S /GoTo /D (section.12.7) >> endobj 760 0 obj ( Exporting the Results for different plotters.) endobj 761 0 obj << /S /GoTo /D (section.12.8) >> endobj 764 0 obj ( ab : A Programmed Demo.) endobj 765 0 obj << /S /GoTo /D (chapter.13) >> endobj 768 0 obj ( AUTO Demos : Fixed points.) endobj 769 0 obj << /S /GoTo /D (section.13.1) >> endobj 772 0 obj ( enz : Stationary Solutions of an Enzyme Model.) endobj 773 0 obj << /S /GoTo /D (section.13.2) >> endobj 776 0 obj ( dd2 : Fixed Points of a Discrete Dynamical System.) endobj 777 0 obj << /S /GoTo /D (section.13.3) >> endobj 780 0 obj ( log : The Logistic Map.) endobj 781 0 obj << /S /GoTo /D (section.13.4) >> endobj 784 0 obj ( hen: The H\351non Map.) endobj 785 0 obj << /S /GoTo /D (chapter.14) >> endobj 788 0 obj ( AUTO Demos : Periodic solutions.) endobj 789 0 obj << /S /GoTo /D (section.14.1) >> endobj 792 0 obj ( lrz : The Lorenz Equations.) endobj 793 0 obj << /S /GoTo /D (section.14.2) >> endobj 796 0 obj ( abc : The A to B to C Reaction.) endobj 797 0 obj << /S /GoTo /D (section.14.3) >> endobj 800 0 obj ( pp2 : A 2D Predator-Prey Model.) endobj 801 0 obj << /S /GoTo /D (section.14.4) >> endobj 804 0 obj ( lor : Starting an Orbit from Numerical Data.) endobj 805 0 obj << /S /GoTo /D (section.14.5) >> endobj 808 0 obj ( frc : A Periodically Forced System.) endobj 809 0 obj << /S /GoTo /D (section.14.6) >> endobj 812 0 obj ( ppp : Continuation of Hopf Bifurcations.) endobj 813 0 obj << /S /GoTo /D (section.14.7) >> endobj 816 0 obj ( plp : Fold Continuation for Periodic Solutions.) endobj 817 0 obj << /S /GoTo /D (section.14.8) >> endobj 820 0 obj ( ph1 : Phase-Shifting using Continuation.) endobj 821 0 obj << /S /GoTo /D (section.14.9) >> endobj 824 0 obj ( pp3 : Periodic Families and Loci of Hopf Points.) endobj 825 0 obj << /S /GoTo /D (section.14.10) >> endobj 828 0 obj ( tor : Detection of Torus Bifurcations.) endobj 829 0 obj << /S /GoTo /D (section.14.11) >> endobj 832 0 obj ( pen : Rotations of Coupled Pendula.) endobj 833 0 obj << /S /GoTo /D (section.14.12) >> endobj 836 0 obj ( chu : A Non-Smooth System \(Chua's Circuit\).) endobj 837 0 obj << /S /GoTo /D (section.14.13) >> endobj 840 0 obj ( phs : Effect of the Phase Condition.) endobj 841 0 obj << /S /GoTo /D (section.14.14) >> endobj 844 0 obj ( ivp : Time Integration with Euler's Method.) endobj 845 0 obj << /S /GoTo /D (section.14.15) >> endobj 848 0 obj ( r3b : The Circular Restricted 3-Body Problem \(CR3BP\).) endobj 849 0 obj << /S /GoTo /D (subsection.14.15.1) >> endobj 852 0 obj (Computation of Periodic Solutions of the CR3BP) endobj 853 0 obj << /S /GoTo /D (subsection.14.15.2) >> endobj 856 0 obj (Computing Unstable Manifolds of Periodic Orbits in the CR3BP) endobj 857 0 obj << /S /GoTo /D (chapter.15) >> endobj 860 0 obj ( AUTO Demos : BVP.) endobj 861 0 obj << /S /GoTo /D (section.15.1) >> endobj 864 0 obj ( exp : Bratu's Equation.) endobj 865 0 obj << /S /GoTo /D (section.15.2) >> endobj 868 0 obj ( int : Boundary and Integral Constraints.) endobj 869 0 obj << /S /GoTo /D (section.15.3) >> endobj 872 0 obj ( bvp : A Nonlinear ODE Eigenvalue Problem.) endobj 873 0 obj << /S /GoTo /D (section.15.4) >> endobj 876 0 obj ( lin : A Linear ODE Eigenvalue Problem.) endobj 877 0 obj << /S /GoTo /D (section.15.5) >> endobj 880 0 obj ( non : A Non-Autonomous BVP.) endobj 881 0 obj << /S /GoTo /D (section.15.6) >> endobj 884 0 obj ( kar : The Von Karman Swirling Flows.) endobj 885 0 obj << /S /GoTo /D (section.15.7) >> endobj 888 0 obj ( spb : A Singularly-Perturbed BVP.) endobj 889 0 obj << /S /GoTo /D (section.15.8) >> endobj 892 0 obj ( ezp : Complex Bifurcation in a BVP.) endobj 893 0 obj << /S /GoTo /D (section.15.9) >> endobj 896 0 obj ( um2 : Basic computation of a 2D unstable manifold.) endobj 897 0 obj << /S /GoTo /D (section.15.10) >> endobj 900 0 obj ( um3 : A 2D unstable manifold in 3D.) endobj 901 0 obj << /S /GoTo /D (section.15.11) >> endobj 904 0 obj ( p2c : Point to cycle connections.) endobj 905 0 obj << /S /GoTo /D (section.15.12) >> endobj 908 0 obj ( c2c : Cycle to cycle connections.) endobj 909 0 obj << /S /GoTo /D (section.15.13) >> endobj 912 0 obj ( pcl : Lorenz: Point-to-cycle connections with Lin's method.) endobj 913 0 obj << /S /GoTo /D (section.15.14) >> endobj 916 0 obj ( snh : SNH with Global reinjection: Point-to-cycle connections with Lin's method.) endobj 917 0 obj << /S /GoTo /D (subsection.15.14.1) >> endobj 920 0 obj (The homoclinic point-to-point connection.) endobj 921 0 obj << /S /GoTo /D (subsection.15.14.2) >> endobj 924 0 obj (The codimension-one point-to-cycle connection.) endobj 925 0 obj << /S /GoTo /D (subsection.15.14.3) >> endobj 928 0 obj (The codimension-zero point-to-cycle connection.) endobj 929 0 obj << /S /GoTo /D (section.15.15) >> endobj 932 0 obj ( fnc : Canards in the FitzHugh-Nagumo system.) endobj 933 0 obj << /S /GoTo /D (chapter.16) >> endobj 936 0 obj ( AUTO Demos : Parabolic PDEs.) endobj 937 0 obj << /S /GoTo /D (section.16.1) >> endobj 940 0 obj ( pd1 : Stationary States \(1D Problem\).) endobj 941 0 obj << /S /GoTo /D (section.16.2) >> endobj 944 0 obj ( pd2 : Stationary States \(2D Problem\).) endobj 945 0 obj << /S /GoTo /D (section.16.3) >> endobj 948 0 obj ( wav : Periodic Waves.) endobj 949 0 obj << /S /GoTo /D (section.16.4) >> endobj 952 0 obj ( brc : Chebyshev Collocation in Space.) endobj 953 0 obj << /S /GoTo /D (section.16.5) >> endobj 956 0 obj ( brf : Finite Differences in Space.) endobj 957 0 obj << /S /GoTo /D (section.16.6) >> endobj 960 0 obj ( bru : Euler Time Integration \(the Brusselator\).) endobj 961 0 obj << /S /GoTo /D (chapter.17) >> endobj 964 0 obj ( AUTO Demos : Optimization.) endobj 965 0 obj << /S /GoTo /D (section.17.1) >> endobj 968 0 obj ( opt : A Model Algebraic Optimization Problem.) endobj 969 0 obj << /S /GoTo /D (section.17.2) >> endobj 972 0 obj ( ops : Optimization of Periodic Solutions.) endobj 973 0 obj << /S /GoTo /D (section.17.3) >> endobj 976 0 obj ( obv : Optimization for a BVP.) endobj 977 0 obj << /S /GoTo /D (chapter.18) >> endobj 980 0 obj ( AUTO Demos : Connecting orbits.) endobj 981 0 obj << /S /GoTo /D (section.18.1) >> endobj 984 0 obj ( fsh : A Saddle-Node Connection.) endobj 985 0 obj << /S /GoTo /D (section.18.2) >> endobj 988 0 obj ( nag : A Saddle-Saddle Connection.) endobj 989 0 obj << /S /GoTo /D (section.18.3) >> endobj 992 0 obj ( stw : Continuation of Sharp Traveling Waves.) endobj 993 0 obj << /S /GoTo /D (chapter.19) >> endobj 996 0 obj ( AUTO Demos : Miscellaneous.) endobj 997 0 obj << /S /GoTo /D (section.19.1) >> endobj 1000 0 obj ( pvl : Use of the Routine \040PVLS.) endobj 1001 0 obj << /S /GoTo /D (section.19.2) >> endobj 1004 0 obj ( ext : Spurious Solutions to BVP.) endobj 1005 0 obj << /S /GoTo /D (section.19.3) >> endobj 1008 0 obj ( tim : A Test Problem for Timing AUTO.) endobj 1009 0 obj << /S /GoTo /D (chapter.20) >> endobj 1012 0 obj ( HomCont.) endobj 1013 0 obj << /S /GoTo /D (section.20.1) >> endobj 1016 0 obj ( Introduction.) endobj 1017 0 obj << /S /GoTo /D (section.20.2) >> endobj 1020 0 obj (HomCont Files and Routines.) endobj 1021 0 obj << /S /GoTo /D (section.20.3) >> endobj 1024 0 obj ( HomCont-Constants.) endobj 1025 0 obj << /S /GoTo /D (subsection.20.3.1) >> endobj 1028 0 obj (NUNSTAB) endobj 1029 0 obj << /S /GoTo /D (subsection.20.3.2) >> endobj 1032 0 obj (NSTAB) endobj 1033 0 obj << /S /GoTo /D (subsection.20.3.3) >> endobj 1036 0 obj (IEQUIB) endobj 1037 0 obj << /S /GoTo /D (subsection.20.3.4) >> endobj 1040 0 obj (ITWIST) endobj 1041 0 obj << /S /GoTo /D (subsection.20.3.5) >> endobj 1044 0 obj (ISTART) endobj 1045 0 obj << /S /GoTo /D (subsection.20.3.6) >> endobj 1048 0 obj (IREV) endobj 1049 0 obj << /S /GoTo /D (subsection.20.3.7) >> endobj 1052 0 obj (IFIXED) endobj 1053 0 obj << /S /GoTo /D (subsection.20.3.8) >> endobj 1056 0 obj (IPSI) endobj 1057 0 obj << /S /GoTo /D (section.20.4) >> endobj 1060 0 obj ( Restrictions on HomCont Constants.) endobj 1061 0 obj << /S /GoTo /D (section.20.5) >> endobj 1064 0 obj ( Restrictions on the Use of PAR.) endobj 1065 0 obj << /S /GoTo /D (section.20.6) >> endobj 1068 0 obj ( Test Functions.) endobj 1069 0 obj << /S /GoTo /D (section.20.7) >> endobj 1072 0 obj ( Starting Strategies.) endobj 1073 0 obj << /S /GoTo /D (section.20.8) >> endobj 1076 0 obj ( Notes on Running HomCont Demos.) endobj 1077 0 obj << /S /GoTo /D (chapter.21) >> endobj 1080 0 obj ( HomCont Demo : san.) endobj 1081 0 obj << /S /GoTo /D (section.21.1) >> endobj 1084 0 obj ( Sandstede's Model.) endobj 1085 0 obj << /S /GoTo /D (section.21.2) >> endobj 1088 0 obj (Inclination Flip.) endobj 1089 0 obj << /S /GoTo /D (section.21.3) >> endobj 1092 0 obj (Non-orientable Resonant Eigenvalues.) endobj 1093 0 obj << /S /GoTo /D (section.21.4) >> endobj 1096 0 obj (Orbit Flip.) endobj 1097 0 obj << /S /GoTo /D (section.21.5) >> endobj 1100 0 obj ( Detailed AUTO-Commands.) endobj 1101 0 obj << /S /GoTo /D (chapter.22) >> endobj 1104 0 obj ( HomCont Demo : mtn.) endobj 1105 0 obj << /S /GoTo /D (section.22.1) >> endobj 1108 0 obj ( A Predator-Prey Model with Immigration.) endobj 1109 0 obj << /S /GoTo /D (section.22.2) >> endobj 1112 0 obj (Continuation of Central Saddle-Node Homoclinics.) endobj 1113 0 obj << /S /GoTo /D (section.22.3) >> endobj 1116 0 obj (Switching between Saddle-Node and Saddle Homoclinic Orbits.) endobj 1117 0 obj << /S /GoTo /D (section.22.4) >> endobj 1120 0 obj (Three-Parameter Continuation.) endobj 1121 0 obj << /S /GoTo /D (section.22.5) >> endobj 1124 0 obj ( Detailed AUTO-Commands.) endobj 1125 0 obj << /S /GoTo /D (chapter.23) >> endobj 1128 0 obj ( HomCont Demo : kpr.) endobj 1129 0 obj << /S /GoTo /D (section.23.1) >> endobj 1132 0 obj ( Koper's Extended Van der Pol Model.) endobj 1133 0 obj << /S /GoTo /D (section.23.2) >> endobj 1136 0 obj (The Primary Branch of Homoclinics.) endobj 1137 0 obj << /S /GoTo /D (section.23.3) >> endobj 1140 0 obj (More Accuracy and Saddle-Node Homoclinic Orbits.) endobj 1141 0 obj << /S /GoTo /D (section.23.4) >> endobj 1144 0 obj (Three-Parameter Continuation.) endobj 1145 0 obj << /S /GoTo /D (section.23.5) >> endobj 1148 0 obj ( Detailed AUTO-Commands.) endobj 1149 0 obj << /S /GoTo /D (chapter.24) >> endobj 1152 0 obj ( HomCont Demo : cir.) endobj 1153 0 obj << /S /GoTo /D (section.24.1) >> endobj 1156 0 obj ( Electronic Circuit of Freire et al.) endobj 1157 0 obj << /S /GoTo /D (section.24.2) >> endobj 1160 0 obj ( Detailed AUTO-Commands.) endobj 1161 0 obj << /S /GoTo /D (chapter.25) >> endobj 1164 0 obj ( HomCont Demo : she.) endobj 1165 0 obj << /S /GoTo /D (section.25.1) >> endobj 1168 0 obj ( A Heteroclinic Example.) endobj 1169 0 obj << /S /GoTo /D (section.25.2) >> endobj 1172 0 obj ( Detailed AUTO-Commands.) endobj 1173 0 obj << /S /GoTo /D (chapter.26) >> endobj 1176 0 obj ( HomCont Demo : rev.) endobj 1177 0 obj << /S /GoTo /D (section.26.1) >> endobj 1180 0 obj ( A Reversible System.) endobj 1181 0 obj << /S /GoTo /D (section.26.2) >> endobj 1184 0 obj (An R1-Reversible Homoclinic Solution.) endobj 1185 0 obj << /S /GoTo /D (section.26.3) >> endobj 1188 0 obj (An R2-Reversible Homoclinic Solution.) endobj 1189 0 obj << /S /GoTo /D (section.26.4) >> endobj 1192 0 obj ( Detailed AUTO-Commands.) endobj 1193 0 obj << /S /GoTo /D (chapter.27) >> endobj 1196 0 obj ( HomCont Demo : Homoclinic branch switching.) endobj 1197 0 obj << /S /GoTo /D (section.27.1) >> endobj 1200 0 obj ( Branch switching at an inclination flip in Sandstede's model.) endobj 1201 0 obj << /S /GoTo /D (section.27.2) >> endobj 1204 0 obj ( Branch switching for a Shil'nikov type homoclinic orbit in the FitzHugh-Nagumo equations.) endobj 1205 0 obj << /S /GoTo /D (section.27.3) >> endobj 1208 0 obj ( Branch switching to a 3-homoclinic orbit in a 5th-order Korteweg-De Vries model) endobj 1209 0 obj << /S /GoTo /D [1210 0 R /Fit ] >> endobj 1212 0 obj << /Length 601 /Filter /FlateDecode >> stream x]Sr0+XLPŌƤO6]F RG3ɦ^ us}0o.>( 0YӠ$yN 6"ۦ!bq1\M\D .M,7F 61yQmf;h6jf r[GUE&^rJ{ZjGz3#Z.\^.rr;ɦHLqJL}ǫ;1sbSL6@{luhɩ 3 T+ [)N{1ulx&qk%-`М.{$k_I$JpH 2,єOIih8%{٤sd$+@ Z6;v%y—e` Z:]:|(d;:paH7SG% @G-z|ClҾ!`;S ~> endobj 1213 0 obj << /D [1210 0 R /XYZ 57.056 708.045 null] >> endobj 1214 0 obj << /D [1210 0 R /XYZ 57.056 683.138 null] >> endobj 1211 0 obj << /Font << /F16 1215 0 R /F18 1216 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1253 0 obj << /Length 1297 /Filter /FlateDecode >> stream x[SF~g*E{_=.tҁLaa;$0={ 'xwJ ƳIe(QY j//s%c~.Ĝ'i>qCQ|aLY2qF9Ɛ|l l#Pʃl"Ek4uY!Q}Y@tya p}kT QT5hZ"W}lV. {>2ؑIC_ |_ cIt.|%u1-g;*k`BUKZ,禼9ҟRyy k\,E\%=;]W'ke<߆GT"|bgItBs@Ȩ_: C}Z"n?bAQh@jen󢢜Q̝ie]3MƨY,rso=LnMߢ}>x8VW&סPZ-P76o_Fd_]<3S]Xs_)"('jqo*(Yia1o=Į7c=ppǺUOmc$|9 R&5%(/+z뉀9xzBz2Q^@[8v-"$!F;3*ei߷R{=MQ j5}IXǷYZ̒WnQ d >~0Mы'";ƵH(_륎ti|{]M b}NGm6*_ce=[!hFOGliHMQ<.{q-mJbD 6M!~vʵɗ7z4;,~s.^ qoKd*iyk*74,63jSA& X( vYs41zYXe #5)PoYpdUbk [xh> |3sÎM~*"Pygt'vCa\x6g̃GMj(=,QqjRr zف(O;|kc6#5 D{7|Ds/4u6"uLΕ:u$)S.,ͪL'KWMⲩzQ(QS)Q2V]jyD|jPjtCaNKMv"uSv n} /uÍX}SG 5 3 sp2>) endstream endobj 1252 0 obj << /Type /Page /Contents 1253 0 R /Resources 1251 0 R /MediaBox [0 0 612 792] /Parent 1217 0 R /Annots [ 1218 0 R 1219 0 R 1220 0 R 1221 0 R 1222 0 R 1223 0 R 1224 0 R 1225 0 R 1226 0 R 1227 0 R 1228 0 R 1229 0 R 1230 0 R 1231 0 R 1232 0 R 1233 0 R 1234 0 R 1235 0 R 1236 0 R 1237 0 R 1238 0 R 1239 0 R 1240 0 R 1241 0 R 1242 0 R 1243 0 R 1244 0 R 1245 0 R 1246 0 R 1247 0 R 1248 0 R 1249 0 R ] >> endobj 1218 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 522.159 178.363 534.778] /Subtype /Link /A << /S /GoTo /D (chapter.1) >> >> endobj 1219 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 510.037 167.954 520.332] /Subtype /Link /A << /S /GoTo /D (section.1.1) >> >> endobj 1220 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 492.603 278.407 506.551] /Subtype /Link /A << /S /GoTo /D (subsection.1.1.1) >> >> endobj 1221 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 481.146 272.389 491.441] /Subtype /Link /A << /S /GoTo /D (subsection.1.1.2) >> >> endobj 1222 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 466.7 265.305 476.995] /Subtype /Link /A << /S /GoTo /D (subsection.1.1.3) >> >> endobj 1223 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 452.254 257.765 462.549] /Subtype /Link /A << /S /GoTo /D (section.1.2) >> >> endobj 1224 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 435.484 292.068 448.103] /Subtype /Link /A << /S /GoTo /D (section.1.3) >> >> endobj 1225 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 423.363 190.226 433.657] /Subtype /Link /A << /S /GoTo /D (section.1.4) >> >> endobj 1226 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 394.886 228.121 407.505] /Subtype /Link /A << /S /GoTo /D (chapter.2) >> >> endobj 1227 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 380.44 157.813 392.927] /Subtype /Link /A << /S /GoTo /D (section.2.1) >> >> endobj 1228 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 365.994 203.462 378.614] /Subtype /Link /A << /S /GoTo /D (section.2.2) >> >> endobj 1229 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 351.549 272.333 364.168] /Subtype /Link /A << /S /GoTo /D (section.2.3) >> >> endobj 1230 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 339.427 191.362 349.722] /Subtype /Link /A << /S /GoTo /D (section.2.4) >> >> endobj 1231 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 324.982 180.475 335.143] /Subtype /Link /A << /S /GoTo /D (section.2.5) >> >> endobj 1232 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 296.505 198.405 309.124] /Subtype /Link /A << /S /GoTo /D (chapter.3) >> >> endobj 1233 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 282.059 356.43 294.679] /Subtype /Link /A << /S /GoTo /D (section.3.1) >> >> endobj 1234 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 269.938 239.589 280.233] /Subtype /Link /A << /S /GoTo /D (section.3.2) >> >> endobj 1235 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 253.168 229.961 265.787] /Subtype /Link /A << /S /GoTo /D (section.3.3) >> >> endobj 1236 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 238.722 241.667 251.341] /Subtype /Link /A << /S /GoTo /D (section.3.4) >> >> endobj 1237 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 212.57 331.254 225.189] /Subtype /Link /A << /S /GoTo /D (chapter.4) >> >> endobj 1238 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 198.124 250.551 210.744] /Subtype /Link /A << /S /GoTo /D (section.4.1) >> >> endobj 1239 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 186.003 201.141 196.298] /Subtype /Link /A << /S /GoTo /D (section.4.2) >> >> endobj 1240 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 169.233 183.562 181.852] /Subtype /Link /A << /S /GoTo /D (section.4.3) >> >> endobj 1241 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 154.787 156.513 167.273] /Subtype /Link /A << /S /GoTo /D (section.4.4) >> >> endobj 1242 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 140.341 194.718 152.96] /Subtype /Link /A << /S /GoTo /D (section.4.5) >> >> endobj 1243 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 125.895 254.367 138.514] /Subtype /Link /A << /S /GoTo /D (section.4.6) >> >> endobj 1244 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 111.449 255.099 124.069] /Subtype /Link /A << /S /GoTo /D (section.4.7) >> >> endobj 1245 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 99.328 190.785 109.623] /Subtype /Link /A << /S /GoTo /D (subsection.4.7.1) >> >> endobj 1246 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 82.558 260.956 95.177] /Subtype /Link /A << /S /GoTo /D (subsection.4.7.2) >> >> endobj 1247 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 68.112 344.68 80.731] /Subtype /Link /A << /S /GoTo /D (section.4.8) >> >> endobj 1248 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 53.666 477.968 66.285] /Subtype /Link /A << /S /GoTo /D (section.4.9) >> >> endobj 1249 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 41.545 240.199 51.839] /Subtype /Link /A << /S /GoTo /D (section.4.10) >> >> endobj 1254 0 obj << /D [1252 0 R /XYZ 57.056 708.045 null] >> endobj 1256 0 obj << /D [1252 0 R /XYZ 57.056 551.631 null] >> endobj 1251 0 obj << /Font << /F30 1255 0 R /F18 1216 0 R /F49 1257 0 R /F50 1258 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1302 0 obj << /Length 1226 /Filter /FlateDecode >> stream x]sF+4Z. et2cƽi{AYkҸPg< =\&oAIJ,q1Hg 42@i ppާUZ,S)~mO03☵Rs'Kߌ[zEA0j#f޲lT30&&}ꁑLE]Qء4Էm\YY N2.a]rWgK T[3=D|݋0U6\(]L 9e2rZȆ[6tS$i%аq^suYx$pvu,J1jHǕ")fdrs:J]w^}4MB 7W8ϲBU- 4 *-9MS./8o .vf}pWd= c3;#Jӡ@7B< @j|E6j8'G<"I=5BLLs0>Kc7S8FS~Dh?Uf{>)xd¿' 6:׼{#rNlgvwv^b391E}MW*٧T%O1&J(.U>a/q3\i/z}/GXe Q n K"eۭm{b{؝m!1zD'`#7UJ1^6ppnkK'7`ȋ^ԐyeCZe]]}JdqHCv4v9k_.Z6v$&:xZwWEpLǶpjXpa)ЉtIvut쯀L}̍v3&RvڿxJ>:kTz `B^VL|L9XP҈J8/B#v?&? endstream endobj 1301 0 obj << /Type /Page /Contents 1302 0 R /Resources 1300 0 R /MediaBox [0 0 612 792] /Parent 1217 0 R /Annots [ 1250 0 R 1259 0 R 1260 0 R 1261 0 R 1262 0 R 1263 0 R 1264 0 R 1265 0 R 1266 0 R 1267 0 R 1268 0 R 1269 0 R 1270 0 R 1271 0 R 1272 0 R 1273 0 R 1274 0 R 1275 0 R 1276 0 R 1277 0 R 1278 0 R 1279 0 R 1280 0 R 1281 0 R 1282 0 R 1283 0 R 1284 0 R 1285 0 R 1286 0 R 1287 0 R 1288 0 R 1289 0 R 1290 0 R 1291 0 R 1292 0 R 1293 0 R 1294 0 R 1295 0 R 1296 0 R 1297 0 R 1298 0 R ] >> endobj 1250 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 667.862 174.882 680.482] /Subtype /Link /A << /S /GoTo /D (section.4.11) >> >> endobj 1259 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 653.416 255.511 666.036] /Subtype /Link /A << /S /GoTo /D (section.4.12) >> >> endobj 1260 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 638.971 193.417 651.59] /Subtype /Link /A << /S /GoTo /D (section.4.13) >> >> endobj 1261 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 626.849 159.6 637.144] /Subtype /Link /A << /S /GoTo /D (section.4.14) >> >> endobj 1262 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 612.403 228.405 622.698] /Subtype /Link /A << /S /GoTo /D (subsection.4.14.1) >> >> endobj 1263 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 595.633 242.972 608.252] /Subtype /Link /A << /S /GoTo /D (subsection.4.14.2) >> >> endobj 1264 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 581.187 234.128 593.807] /Subtype /Link /A << /S /GoTo /D (subsection.4.14.3) >> >> endobj 1265 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 566.741 201.741 579.228] /Subtype /Link /A << /S /GoTo /D (subsection.4.14.4) >> >> endobj 1266 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 554.62 230.551 564.915] /Subtype /Link /A << /S /GoTo /D (subsection.4.14.5) >> >> endobj 1267 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 537.85 226.488 550.469] /Subtype /Link /A << /S /GoTo /D (subsection.4.14.6) >> >> endobj 1268 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 523.404 379.607 536.023] /Subtype /Link /A << /S /GoTo /D (subsection.4.14.7) >> >> endobj 1269 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 511.283 229.155 521.577] /Subtype /Link /A << /S /GoTo /D (subsection.4.14.8) >> >> endobj 1270 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 482.806 316.711 495.426] /Subtype /Link /A << /S /GoTo /D (chapter.5) >> >> endobj 1271 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 470.685 194.848 480.98] /Subtype /Link /A << /S /GoTo /D (section.5.1) >> >> endobj 1272 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 453.915 209.415 466.534] /Subtype /Link /A << /S /GoTo /D (section.5.2) >> >> endobj 1273 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 439.469 200.571 452.088] /Subtype /Link /A << /S /GoTo /D (section.5.3) >> >> endobj 1274 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 425.023 168.184 437.509] /Subtype /Link /A << /S /GoTo /D (section.5.4) >> >> endobj 1275 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 410.577 168.054 423.196] /Subtype /Link /A << /S /GoTo /D (section.5.5) >> >> endobj 1276 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 398.456 196.994 408.751] /Subtype /Link /A << /S /GoTo /D (section.5.6) >> >> endobj 1277 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 384.01 217.054 394.305] /Subtype /Link /A << /S /GoTo /D (section.5.7) >> >> endobj 1278 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 367.24 192.931 379.859] /Subtype /Link /A << /S /GoTo /D (section.5.8) >> >> endobj 1279 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 352.794 212.437 365.413] /Subtype /Link /A << /S /GoTo /D (section.5.9) >> >> endobj 1280 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 326.642 158.66 339.261] /Subtype /Link /A << /S /GoTo /D (chapter.6) >> >> endobj 1281 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 300.49 369.7 313.11] /Subtype /Link /A << /S /GoTo /D (chapter.7) >> >> endobj 1282 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 288.369 242.96 298.664] /Subtype /Link /A << /S /GoTo /D (section.7.1) >> >> endobj 1283 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 271.599 191.856 284.218] /Subtype /Link /A << /S /GoTo /D (section.7.2) >> >> endobj 1284 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 259.477 245.661 269.772] /Subtype /Link /A << /S /GoTo /D (section.7.3) >> >> endobj 1285 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 242.707 224.521 255.326] /Subtype /Link /A << /S /GoTo /D (section.7.4) >> >> endobj 1286 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 216.555 284.369 229.174] /Subtype /Link /A << /S /GoTo /D (chapter.8) >> >> endobj 1287 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 202.109 160.48 214.729] /Subtype /Link /A << /S /GoTo /D (section.8.1) >> >> endobj 1288 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 187.663 305.668 200.283] /Subtype /Link /A << /S /GoTo /D (subsection.8.1.1) >> >> endobj 1289 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 173.218 250.876 185.837] /Subtype /Link /A << /S /GoTo /D (subsection.8.1.2) >> >> endobj 1290 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 158.772 249.9 171.391] /Subtype /Link /A << /S /GoTo /D (subsection.8.1.3) >> >> endobj 1291 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 146.651 222.651 156.945] /Subtype /Link /A << /S /GoTo /D (subsection.8.1.4) >> >> endobj 1292 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 129.88 180.38 142.367] /Subtype /Link /A << /S /GoTo /D (subsection.8.1.5) >> >> endobj 1293 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 117.759 234.449 127.921] /Subtype /Link /A << /S /GoTo /D (subsection.8.1.6) >> >> endobj 1294 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 100.988 163.727 113.608] /Subtype /Link /A << /S /GoTo /D (subsection.8.1.7) >> >> endobj 1295 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 86.543 297.535 99.162] /Subtype /Link /A << /S /GoTo /D (subsection.8.1.8) >> >> endobj 1296 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 72.097 255.883 84.716] /Subtype /Link /A << /S /GoTo /D (subsection.8.1.9) >> >> endobj 1297 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 57.651 220.115 70.27] /Subtype /Link /A << /S /GoTo /D (subsection.8.1.10) >> >> endobj 1298 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 43.205 183.566 55.824] /Subtype /Link /A << /S /GoTo /D (subsection.8.1.11) >> >> endobj 1303 0 obj << /D [1301 0 R /XYZ 57.056 708.045 null] >> endobj 1300 0 obj << /Font << /F18 1216 0 R /F30 1255 0 R /F51 1304 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1350 0 obj << /Length 1249 /Filter /FlateDecode >> stream xIs8k#!Y598$O?%Clt讀 |6:9 cx%| \Po4}+@n `;HlAߊq!G iX A&#mC2ֽȲJD<1{1 썛 {0_(&IM+ȫ&#P^!K ֨%U,dp f8-4lL$CxQYr~| U;zo xI<lTo#G+kT2+Wä;Bk-"U7H'I0{є䱯6ƣeA+SʃSi}!)Wgں}{ub\5m>;;k=cH6PK⇙k>EufƬhI-ü;D],un·uDguu35a g:gG[{i zfzSN#BAl 2@dR%ޑ.ACY ,d\/'V9,˴08D%MXVwQ dp@[=cDy z7!$&xjniP tC? V endstream endobj 1349 0 obj << /Type /Page /Contents 1350 0 R /Resources 1348 0 R /MediaBox [0 0 612 792] /Parent 1217 0 R /Annots [ 1299 0 R 1305 0 R 1306 0 R 1307 0 R 1308 0 R 1309 0 R 1310 0 R 1311 0 R 1312 0 R 1313 0 R 1314 0 R 1315 0 R 1316 0 R 1317 0 R 1318 0 R 1319 0 R 1320 0 R 1321 0 R 1322 0 R 1323 0 R 1324 0 R 1325 0 R 1326 0 R 1327 0 R 1328 0 R 1329 0 R 1330 0 R 1331 0 R 1332 0 R 1333 0 R 1334 0 R 1335 0 R 1336 0 R 1337 0 R 1338 0 R 1339 0 R 1340 0 R 1341 0 R 1342 0 R 1343 0 R 1344 0 R 1345 0 R 1346 0 R ] >> endobj 1299 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 667.862 317.271 680.482] /Subtype /Link /A << /S /GoTo /D (subsection.8.1.12) >> >> endobj 1305 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 652.752 310.186 666.7] /Subtype /Link /A << /S /GoTo /D (subsection.8.1.13) >> >> endobj 1306 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 638.971 296.464 651.59] /Subtype /Link /A << /S /GoTo /D (subsection.8.1.14) >> >> endobj 1307 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 624.525 311.682 637.144] /Subtype /Link /A << /S /GoTo /D (subsection.8.1.15) >> >> endobj 1308 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 610.079 240.471 622.698] /Subtype /Link /A << /S /GoTo /D (section.8.2) >> >> endobj 1309 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 595.633 147.243 608.252] /Subtype /Link /A << /S /GoTo /D (section.8.3) >> >> endobj 1310 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 569.481 300.627 582.101] /Subtype /Link /A << /S /GoTo /D (chapter.9) >> >> endobj 1311 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 557.36 201.141 567.655] /Subtype /Link /A << /S /GoTo /D (section.9.1) >> >> endobj 1312 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 542.914 220.631 553.209] /Subtype /Link /A << /S /GoTo /D (subsection.9.1.1) >> >> endobj 1313 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 528.468 301.632 538.763] /Subtype /Link /A << /S /GoTo /D (subsection.9.1.2) >> >> endobj 1314 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 514.023 294.804 524.317] /Subtype /Link /A << /S /GoTo /D (subsection.9.1.3) >> >> endobj 1315 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 497.252 290.121 509.871] /Subtype /Link /A << /S /GoTo /D (subsection.9.1.4) >> >> endobj 1316 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 485.131 184.958 495.426] /Subtype /Link /A << /S /GoTo /D (section.9.2) >> >> endobj 1317 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 468.36 236.794 480.98] /Subtype /Link /A << /S /GoTo /D (subsection.9.2.1) >> >> endobj 1318 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 456.239 207.789 466.534] /Subtype /Link /A << /S /GoTo /D (subsection.9.2.2) >> >> endobj 1319 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 441.793 214.128 452.088] /Subtype /Link /A << /S /GoTo /D (subsection.9.2.3) >> >> endobj 1320 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 427.348 217.869 437.642] /Subtype /Link /A << /S /GoTo /D (subsection.9.2.4) >> >> endobj 1321 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 412.902 207.139 423.196] /Subtype /Link /A << /S /GoTo /D (subsection.9.2.5) >> >> endobj 1322 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 398.456 208.604 408.751] /Subtype /Link /A << /S /GoTo /D (subsection.9.2.6) >> >> endobj 1323 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 381.685 225.834 394.305] /Subtype /Link /A << /S /GoTo /D (subsection.9.2.7) >> >> endobj 1324 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 369.564 207.139 379.859] /Subtype /Link /A << /S /GoTo /D (subsection.9.2.8) >> >> endobj 1325 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 355.118 209.48 365.413] /Subtype /Link /A << /S /GoTo /D (subsection.9.2.9) >> >> endobj 1326 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 340.673 219.885 350.967] /Subtype /Link /A << /S /GoTo /D (subsection.9.2.10) >> >> endobj 1327 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 326.227 212.567 336.521] /Subtype /Link /A << /S /GoTo /D (subsection.9.2.11) >> >> endobj 1328 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 309.456 209.25 322.076] /Subtype /Link /A << /S /GoTo /D (subsection.9.2.12) >> >> endobj 1329 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 295.011 184.935 307.63] /Subtype /Link /A << /S /GoTo /D (section.9.3) >> >> endobj 1330 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 280.565 219.732 293.184] /Subtype /Link /A << /S /GoTo /D (section.9.4) >> >> endobj 1331 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 268.443 212.016 278.738] /Subtype /Link /A << /S /GoTo /D (subsection.9.4.1) >> >> endobj 1332 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 253.998 202.563 264.292] /Subtype /Link /A << /S /GoTo /D (subsection.9.4.2) >> >> endobj 1333 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 237.227 210.23 249.847] /Subtype /Link /A << /S /GoTo /D (subsection.9.4.3) >> >> endobj 1334 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 211.075 273.898 223.695] /Subtype /Link /A << /S /GoTo /D (chapter.10) >> >> endobj 1335 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 198.954 246.866 209.249] /Subtype /Link /A << /S /GoTo /D (section.10.1) >> >> endobj 1336 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 184.508 207.854 194.803] /Subtype /Link /A << /S /GoTo /D (section.10.2) >> >> endobj 1337 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 170.063 164.602 179.759] /Subtype /Link /A << /S /GoTo /D (subsection.10.2.1) >> >> endobj 1338 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 155.617 158.45 165.314] /Subtype /Link /A << /S /GoTo /D (subsection.10.2.2) >> >> endobj 1339 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 141.171 164.602 150.868] /Subtype /Link /A << /S /GoTo /D (subsection.10.2.3) >> >> endobj 1340 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 126.725 164.602 136.422] /Subtype /Link /A << /S /GoTo /D (subsection.10.2.4) >> >> endobj 1341 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 112.279 158.45 121.976] /Subtype /Link /A << /S /GoTo /D (subsection.10.2.5) >> >> endobj 1342 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 97.833 235.558 107.995] /Subtype /Link /A << /S /GoTo /D (section.10.3) >> >> endobj 1343 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 83.388 164.602 93.084] /Subtype /Link /A << /S /GoTo /D (subsection.10.3.1) >> >> endobj 1344 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 68.942 164.602 78.639] /Subtype /Link /A << /S /GoTo /D (subsection.10.3.2) >> >> endobj 1345 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 54.496 158.45 64.193] /Subtype /Link /A << /S /GoTo /D (subsection.10.3.3) >> >> endobj 1346 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 40.05 163.406 50.345] /Subtype /Link /A << /S /GoTo /D (section.10.4) >> >> endobj 1351 0 obj << /D [1349 0 R /XYZ 57.056 708.045 null] >> endobj 1348 0 obj << /Font << /F18 1216 0 R /F30 1255 0 R /F49 1257 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1399 0 obj << /Length 1034 /Filter /FlateDecode >> stream xMOH;G`w_4jV"bmRGS'D\,S HRFKqA8!H_D6O<"Tze4_ÈK()HbD|)52!ʼ@GV5ѱXھ6I7 >uY&pv :ЙM_8%Se͜계HU>L\1b7_(}J/0U" bDd&m(.vt7#ƦL(sa;MSܽ[ǽ3wmb^eíļu=ۺ9v a(\g&ɏ27̧y}Tk}&ˑ/1G[>Mؼᚄ%l8z@o{!o{&Yn`?/LT<̪ԹnF|x[.6py wgU: %~?7K&<"7ur*l:+vJ{ö(&za$tPw5|@@ 3A~-fwò#V%3*n'w35jSOôXީ|CK{g iOhb9K?3O&<8/I6G}V@xo~r^WAh8@;?wH07K&*XC5ɚ`:Ɇ@t@[% PL9S1ʽ}}{%m%g Kȕ-JJuWZWUYL^DO 10F^|OQ endstream endobj 1398 0 obj << /Type /Page /Contents 1399 0 R /Resources 1397 0 R /MediaBox [0 0 612 792] /Parent 1217 0 R /Annots [ 1347 0 R 1352 0 R 1353 0 R 1354 0 R 1355 0 R 1356 0 R 1357 0 R 1358 0 R 1359 0 R 1360 0 R 1361 0 R 1362 0 R 1363 0 R 1364 0 R 1365 0 R 1366 0 R 1367 0 R 1368 0 R 1369 0 R 1370 0 R 1371 0 R 1372 0 R 1373 0 R 1374 0 R 1375 0 R 1376 0 R 1377 0 R 1378 0 R 1379 0 R 1380 0 R 1381 0 R 1382 0 R 1383 0 R 1384 0 R 1385 0 R 1386 0 R 1387 0 R 1388 0 R 1389 0 R 1390 0 R 1391 0 R 1392 0 R 1393 0 R 1394 0 R 1395 0 R ] >> endobj 1347 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 670.187 164.602 679.884] /Subtype /Link /A << /S /GoTo /D (subsection.10.4.1) >> >> endobj 1352 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 655.741 164.602 665.438] /Subtype /Link /A << /S /GoTo /D (subsection.10.4.2) >> >> endobj 1353 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 641.295 164.602 650.992] /Subtype /Link /A << /S /GoTo /D (subsection.10.4.3) >> >> endobj 1354 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 626.849 164.602 636.546] /Subtype /Link /A << /S /GoTo /D (subsection.10.4.4) >> >> endobj 1355 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 612.403 164.602 622.1] /Subtype /Link /A << /S /GoTo /D (subsection.10.4.5) >> >> endobj 1356 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 597.958 164.602 607.655] /Subtype /Link /A << /S /GoTo /D (subsection.10.4.6) >> >> endobj 1357 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 581.187 227.399 593.674] /Subtype /Link /A << /S /GoTo /D (section.10.5) >> >> endobj 1358 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 569.066 152.298 578.763] /Subtype /Link /A << /S /GoTo /D (subsection.10.5.1) >> >> endobj 1359 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 554.62 170.754 564.317] /Subtype /Link /A << /S /GoTo /D (subsection.10.5.2) >> >> endobj 1360 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 540.174 170.754 549.871] /Subtype /Link /A << /S /GoTo /D (subsection.10.5.3) >> >> endobj 1361 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 525.729 164.602 535.425] /Subtype /Link /A << /S /GoTo /D (subsection.10.5.4) >> >> endobj 1362 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 511.283 158.45 520.98] /Subtype /Link /A << /S /GoTo /D (subsection.10.5.5) >> >> endobj 1363 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 496.837 158.45 506.534] /Subtype /Link /A << /S /GoTo /D (subsection.10.5.6) >> >> endobj 1364 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 480.066 190.391 492.553] /Subtype /Link /A << /S /GoTo /D (section.10.6) >> >> endobj 1365 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 467.945 164.602 477.642] /Subtype /Link /A << /S /GoTo /D (subsection.10.6.1) >> >> endobj 1366 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 453.499 158.45 463.196] /Subtype /Link /A << /S /GoTo /D (subsection.10.6.2) >> >> endobj 1367 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 439.054 158.45 448.751] /Subtype /Link /A << /S /GoTo /D (subsection.10.6.3) >> >> endobj 1368 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 424.608 158.45 434.305] /Subtype /Link /A << /S /GoTo /D (subsection.10.6.4) >> >> endobj 1369 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 410.162 152.298 419.859] /Subtype /Link /A << /S /GoTo /D (subsection.10.6.5) >> >> endobj 1370 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 395.716 152.298 405.413] /Subtype /Link /A << /S /GoTo /D (subsection.10.6.6) >> >> endobj 1371 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 381.27 192.992 391.432] /Subtype /Link /A << /S /GoTo /D (section.10.7) >> >> endobj 1372 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 366.824 158.45 376.521] /Subtype /Link /A << /S /GoTo /D (subsection.10.7.1) >> >> endobj 1373 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 350.054 211.106 362.673] /Subtype /Link /A << /S /GoTo /D (subsection.10.7.2) >> >> endobj 1374 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 337.933 310.086 348.227] /Subtype /Link /A << /S /GoTo /D (subsection.10.7.3) >> >> endobj 1375 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 321.162 289.532 333.782] /Subtype /Link /A << /S /GoTo /D (subsection.10.7.4) >> >> endobj 1376 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 306.716 285.959 319.336] /Subtype /Link /A << /S /GoTo /D (subsection.10.7.5) >> >> endobj 1377 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 292.271 277.765 304.89] /Subtype /Link /A << /S /GoTo /D (subsection.10.7.6) >> >> endobj 1378 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 277.825 255.328 290.444] /Subtype /Link /A << /S /GoTo /D (subsection.10.7.7) >> >> endobj 1379 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 263.379 264.923 275.998] /Subtype /Link /A << /S /GoTo /D (subsection.10.7.8) >> >> endobj 1380 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 248.933 270.447 261.552] /Subtype /Link /A << /S /GoTo /D (subsection.10.7.9) >> >> endobj 1381 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 234.487 288.17 247.107] /Subtype /Link /A << /S /GoTo /D (subsection.10.7.10) >> >> endobj 1382 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 220.042 232.406 232.528] /Subtype /Link /A << /S /GoTo /D (section.10.8) >> >> endobj 1383 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 207.92 158.45 217.617] /Subtype /Link /A << /S /GoTo /D (subsection.10.8.1) >> >> endobj 1384 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 193.474 152.298 203.171] /Subtype /Link /A << /S /GoTo /D (subsection.10.8.2) >> >> endobj 1385 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 179.029 158.45 188.726] /Subtype /Link /A << /S /GoTo /D (subsection.10.8.3) >> >> endobj 1386 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 164.583 158.45 174.28] /Subtype /Link /A << /S /GoTo /D (subsection.10.8.4) >> >> endobj 1387 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 150.137 164.602 159.834] /Subtype /Link /A << /S /GoTo /D (subsection.10.8.5) >> >> endobj 1388 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 135.691 146.146 145.388] /Subtype /Link /A << /S /GoTo /D (subsection.10.8.6) >> >> endobj 1389 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 121.245 158.45 130.942] /Subtype /Link /A << /S /GoTo /D (subsection.10.8.7) >> >> endobj 1390 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 106.799 146.146 116.496] /Subtype /Link /A << /S /GoTo /D (subsection.10.8.8) >> >> endobj 1391 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 92.354 158.45 102.051] /Subtype /Link /A << /S /GoTo /D (subsection.10.8.9) >> >> endobj 1392 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 77.908 158.45 87.605] /Subtype /Link /A << /S /GoTo /D (subsection.10.8.10) >> >> endobj 1393 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 63.462 152.298 73.159] /Subtype /Link /A << /S /GoTo /D (subsection.10.8.11) >> >> endobj 1394 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 49.016 158.45 58.713] /Subtype /Link /A << /S /GoTo /D (subsection.10.8.12) >> >> endobj 1395 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 32.246 190.005 44.865] /Subtype /Link /A << /S /GoTo /D (section.10.9) >> >> endobj 1400 0 obj << /D [1398 0 R /XYZ 57.056 708.045 null] >> endobj 1397 0 obj << /Font << /F18 1216 0 R /F49 1257 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1444 0 obj << /Length 1493 /Filter /FlateDecode >> stream xMwFt'(y81ٴBSHj`pD i ,ɒy}ѳHc7PbFT #Izq%QoϩZ2KuMt[-Eqy.X<=?A!XN17@4/ƛyS8Sp_ ccEIcHL%&.,?[O7Zc<o ]ѡ|@6ѿ<>b3WG^n^m'_8·7u'MM+S!-fw,Gؓ m_ w|c8JXLq0Be{g},G#'"&hFԟ0@GwH1Y0=2E@*z]ֺEe^Uyq ލ30c4_; +bd4Umˢr> ^kmxg&]DbG] I(x]TXSGJ';gij/t':v:+qOJctV@^WS''֕=@UGYG:Z1Y 62/XF'c܊X˧Sr +X]YinB}lrgj O*|'v}j֬lGFM]Hx#oguԞҩۦ&|ښl NCNlG&ιFk`xNB->9>Ԯ:+&+L؂ /LOȩ ŏPmP(6fIiq[ mq疧 p\SaC˃5l7!~l-:8omSIbEBŗU!-_fr;tϊ/73 $c=mMquO$|ΚϚp9}Bȫ:䅛"Ys\TpE3 3-V>(4WU^pmSNOX?׺ \rS˸x6Iot6i1sVv$|uM͗u7cgQ*)um@uQW\,W"bcEadabH{4ո@—T;m=dOe=NaVޥ=yYF48]w;!zb`Rm߽nfk}:i;G" vytbδmw5\+(7YH:mR1lo>(ZY;)]sY~!'=-Z)`&s3qm@7~l_hi endstream endobj 1443 0 obj << /Type /Page /Contents 1444 0 R /Resources 1442 0 R /MediaBox [0 0 612 792] /Parent 1217 0 R /Annots [ 1396 0 R 1401 0 R 1402 0 R 1403 0 R 1404 0 R 1405 0 R 1406 0 R 1407 0 R 1408 0 R 1409 0 R 1410 0 R 1411 0 R 1412 0 R 1413 0 R 1414 0 R 1415 0 R 1416 0 R 1417 0 R 1418 0 R 1419 0 R 1420 0 R 1421 0 R 1422 0 R 1423 0 R 1424 0 R 1425 0 R 1426 0 R 1427 0 R 1428 0 R 1429 0 R 1430 0 R 1431 0 R 1432 0 R 1433 0 R 1434 0 R 1435 0 R 1436 0 R 1437 0 R 1438 0 R 1439 0 R 1440 0 R ] >> endobj 1396 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 670.187 176.906 679.884] /Subtype /Link /A << /S /GoTo /D (subsection.10.9.1) >> >> endobj 1401 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 653.084 189.21 665.438] /Subtype /Link /A << /S /GoTo /D (subsection.10.9.2) >> >> endobj 1402 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 641.295 146.146 650.992] /Subtype /Link /A << /S /GoTo /D (subsection.10.9.3) >> >> endobj 1403 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 626.849 152.298 636.546] /Subtype /Link /A << /S /GoTo /D (subsection.10.9.4) >> >> endobj 1404 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 612.403 158.45 622.1] /Subtype /Link /A << /S /GoTo /D (subsection.10.9.5) >> >> endobj 1405 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 597.958 158.45 607.655] /Subtype /Link /A << /S /GoTo /D (subsection.10.9.6) >> >> endobj 1406 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 583.512 158.45 593.209] /Subtype /Link /A << /S /GoTo /D (subsection.10.9.7) >> >> endobj 1407 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 569.066 158.45 578.763] /Subtype /Link /A << /S /GoTo /D (subsection.10.9.8) >> >> endobj 1408 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 554.62 158.45 564.317] /Subtype /Link /A << /S /GoTo /D (subsection.10.9.9) >> >> endobj 1409 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 540.174 164.602 549.871] /Subtype /Link /A << /S /GoTo /D (subsection.10.9.10) >> >> endobj 1410 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 525.729 158.45 535.425] /Subtype /Link /A << /S /GoTo /D (subsection.10.9.11) >> >> endobj 1411 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 511.283 176.906 520.98] /Subtype /Link /A << /S /GoTo /D (subsection.10.9.12) >> >> endobj 1412 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 494.512 185.452 507.132] /Subtype /Link /A << /S /GoTo /D (section.10.10) >> >> endobj 1413 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 468.36 218.538 480.98] /Subtype /Link /A << /S /GoTo /D (chapter.11) >> >> endobj 1414 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 456.239 265.899 466.534] /Subtype /Link /A << /S /GoTo /D (section.11.1) >> >> endobj 1415 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 439.469 157.974 452.088] /Subtype /Link /A << /S /GoTo /D (section.11.2) >> >> endobj 1416 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 427.348 223.592 437.642] /Subtype /Link /A << /S /GoTo /D (section.11.3) >> >> endobj 1417 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 412.902 256.625 423.196] /Subtype /Link /A << /S /GoTo /D (section.11.4) >> >> endobj 1418 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 396.131 208.761 408.751] /Subtype /Link /A << /S /GoTo /D (section.11.5) >> >> endobj 1419 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 381.685 225.669 394.172] /Subtype /Link /A << /S /GoTo /D (section.11.6) >> >> endobj 1420 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 357.858 228.931 368.153] /Subtype /Link /A << /S /GoTo /D (chapter.12) >> >> endobj 1421 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 343.412 173.742 353.707] /Subtype /Link /A << /S /GoTo /D (section.12.1) >> >> endobj 1422 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 326.642 232.498 339.261] /Subtype /Link /A << /S /GoTo /D (section.12.2) >> >> endobj 1423 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 312.196 233.638 324.815] /Subtype /Link /A << /S /GoTo /D (section.12.3) >> >> endobj 1424 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 297.75 283.059 310.37] /Subtype /Link /A << /S /GoTo /D (section.12.4) >> >> endobj 1425 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 283.305 278.242 295.924] /Subtype /Link /A << /S /GoTo /D (section.12.5) >> >> endobj 1426 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 268.859 310.594 281.478] /Subtype /Link /A << /S /GoTo /D (section.12.6) >> >> endobj 1427 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 254.413 329.692 267.032] /Subtype /Link /A << /S /GoTo /D (section.12.7) >> >> endobj 1428 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 239.967 246.575 252.586] /Subtype /Link /A << /S /GoTo /D (section.12.8) >> >> endobj 1429 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 213.815 255.088 226.435] /Subtype /Link /A << /S /GoTo /D (chapter.13) >> >> endobj 1430 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 199.369 353.46 211.989] /Subtype /Link /A << /S /GoTo /D (section.13.1) >> >> endobj 1431 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 184.924 373.585 197.543] /Subtype /Link /A << /S /GoTo /D (section.13.2) >> >> endobj 1432 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 170.478 227.945 183.097] /Subtype /Link /A << /S /GoTo /D (section.13.3) >> >> endobj 1433 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 156.032 220.237 168.651] /Subtype /Link /A << /S /GoTo /D (section.13.4) >> >> endobj 1434 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 132.205 286.421 142.499] /Subtype /Link /A << /S /GoTo /D (chapter.14) >> >> endobj 1435 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 115.434 248.921 128.054] /Subtype /Link /A << /S /GoTo /D (section.14.1) >> >> endobj 1436 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 103.313 277.965 113.608] /Subtype /Link /A << /S /GoTo /D (section.14.2) >> >> endobj 1437 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 86.543 280.874 99.162] /Subtype /Link /A << /S /GoTo /D (section.14.3) >> >> endobj 1438 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 72.097 338.437 84.716] /Subtype /Link /A << /S /GoTo /D (section.14.4) >> >> endobj 1439 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 57.651 286.961 70.27] /Subtype /Link /A << /S /GoTo /D (section.14.5) >> >> endobj 1440 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 43.205 316.391 55.824] /Subtype /Link /A << /S /GoTo /D (section.14.6) >> >> endobj 1445 0 obj << /D [1443 0 R /XYZ 57.056 708.045 null] >> endobj 1442 0 obj << /Font << /F18 1216 0 R /F49 1257 0 R /F30 1255 0 R /F37 1446 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1490 0 obj << /Length 1823 /Filter /FlateDecode >> stream xZK{FWX033~4i $]4]1'``$gν3_l(F`̗?0d|3 $0B82|:NSQKIJTSu21 e3z$@^8=d`@_A("Y0cNjJiN}kaj1x煡HF[6aj$Eg6Gri޼Q G2fe*؄1[d"Le!3ag i$Or99/fmT g,*|ؚM ۈ-}*Ƚ&S1 ~6bQ d.6mM8RX ZQNlȲB.#]G˺Ir}J˝WP}Tc3+w ~7e 40Heꐎ+,cY>88SMv&pgQ"7 Ҷ{Ny4ɡVF1ń޻c4Y$j>ؽ$u Rl}&[xnΞ|Q%[M[:PĦ>ī޽O$ճνx܃myx.]_Ax{9!a!Y ׋% endstream endobj 1489 0 obj << /Type /Page /Contents 1490 0 R /Resources 1488 0 R /MediaBox [0 0 612 792] /Parent 1492 0 R /Annots [ 1441 0 R 1447 0 R 1448 0 R 1449 0 R 1450 0 R 1451 0 R 1452 0 R 1453 0 R 1454 0 R 1455 0 R 1456 0 R 1457 0 R 1458 0 R 1459 0 R 1460 0 R 1461 0 R 1462 0 R 1463 0 R 1464 0 R 1465 0 R 1466 0 R 1467 0 R 1468 0 R 1469 0 R 1470 0 R 1471 0 R 1472 0 R 1473 0 R 1474 0 R 1475 0 R 1476 0 R 1477 0 R 1478 0 R 1479 0 R 1480 0 R 1481 0 R 1482 0 R 1483 0 R 1484 0 R 1485 0 R 1486 0 R ] >> endobj 1441 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 667.862 345.82 680.482] /Subtype /Link /A << /S /GoTo /D (section.14.7) >> >> endobj 1447 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 653.416 316.46 666.036] /Subtype /Link /A << /S /GoTo /D (section.14.8) >> >> endobj 1448 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 638.971 354.982 651.59] /Subtype /Link /A << /S /GoTo /D (section.14.9) >> >> endobj 1449 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 626.849 298.411 637.144] /Subtype /Link /A << /S /GoTo /D (section.14.10) >> >> endobj 1450 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 610.079 295.094 622.698] /Subtype /Link /A << /S /GoTo /D (section.14.11) >> >> endobj 1451 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 594.969 344.906 608.917] /Subtype /Link /A << /S /GoTo /D (section.14.12) >> >> endobj 1452 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 581.187 291.582 593.807] /Subtype /Link /A << /S /GoTo /D (section.14.13) >> >> endobj 1453 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 566.741 334.596 579.361] /Subtype /Link /A << /S /GoTo /D (section.14.14) >> >> endobj 1454 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 551.631 400.765 565.579] /Subtype /Link /A << /S /GoTo /D (section.14.15) >> >> endobj 1455 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 537.85 394.006 550.469] /Subtype /Link /A << /S /GoTo /D (subsection.14.15.1) >> >> endobj 1456 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 523.404 472.818 536.023] /Subtype /Link /A << /S /GoTo /D (subsection.14.15.2) >> >> endobj 1457 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 499.577 209.552 509.772] /Subtype /Link /A << /S /GoTo /D (chapter.15) >> >> endobj 1458 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 482.806 228.11 495.426] /Subtype /Link /A << /S /GoTo /D (section.15.1) >> >> endobj 1459 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 468.36 315.48 480.98] /Subtype /Link /A << /S /GoTo /D (section.15.2) >> >> endobj 1460 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 453.915 338.914 466.534] /Subtype /Link /A << /S /GoTo /D (section.15.3) >> >> endobj 1461 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 439.469 315.992 452.088] /Subtype /Link /A << /S /GoTo /D (section.15.4) >> >> endobj 1462 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 427.348 271.341 437.509] /Subtype /Link /A << /S /GoTo /D (section.15.5) >> >> endobj 1463 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 410.577 306.631 423.196] /Subtype /Link /A << /S /GoTo /D (section.15.6) >> >> endobj 1464 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 396.131 287.443 408.751] /Subtype /Link /A << /S /GoTo /D (section.15.7) >> >> endobj 1465 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 381.685 296.811 394.305] /Subtype /Link /A << /S /GoTo /D (section.15.8) >> >> endobj 1466 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 367.24 376.776 379.859] /Subtype /Link /A << /S /GoTo /D (section.15.9) >> >> endobj 1467 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 355.118 299.317 365.413] /Subtype /Link /A << /S /GoTo /D (section.15.10) >> >> endobj 1468 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 338.348 273.473 350.967] /Subtype /Link /A << /S /GoTo /D (section.15.11) >> >> endobj 1469 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 323.902 272.987 336.521] /Subtype /Link /A << /S /GoTo /D (section.15.12) >> >> endobj 1470 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 309.456 412.38 322.076] /Subtype /Link /A << /S /GoTo /D (section.15.13) >> >> endobj 1471 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 295.011 525.908 307.63] /Subtype /Link /A << /S /GoTo /D (section.15.14) >> >> endobj 1472 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 280.565 356.23 293.184] /Subtype /Link /A << /S /GoTo /D (subsection.15.14.1) >> >> endobj 1473 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 266.119 383.934 278.738] /Subtype /Link /A << /S /GoTo /D (subsection.15.14.2) >> >> endobj 1474 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 251.673 387.185 264.292] /Subtype /Link /A << /S /GoTo /D (subsection.15.14.3) >> >> endobj 1475 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 237.227 350.984 249.847] /Subtype /Link /A << /S /GoTo /D (section.15.15) >> >> endobj 1476 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 213.4 275.283 223.695] /Subtype /Link /A << /S /GoTo /D (chapter.16) >> >> endobj 1477 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 195.965 304.849 209.913] /Subtype /Link /A << /S /GoTo /D (section.16.1) >> >> endobj 1478 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 181.52 304.849 195.467] /Subtype /Link /A << /S /GoTo /D (section.16.2) >> >> endobj 1479 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 170.063 219.816 180.357] /Subtype /Link /A << /S /GoTo /D (section.16.3) >> >> endobj 1480 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 153.292 302.252 165.911] /Subtype /Link /A << /S /GoTo /D (section.16.4) >> >> endobj 1481 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 138.846 273.308 151.466] /Subtype /Link /A << /S /GoTo /D (section.16.5) >> >> endobj 1482 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 123.736 349.133 137.684] /Subtype /Link /A << /S /GoTo /D (section.16.6) >> >> endobj 1483 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 98.249 258.929 110.868] /Subtype /Link /A << /S /GoTo /D (chapter.17) >> >> endobj 1484 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 83.803 354.362 96.422] /Subtype /Link /A << /S /GoTo /D (section.17.1) >> >> endobj 1485 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 69.357 316.46 81.976] /Subtype /Link /A << /S /GoTo /D (section.17.2) >> >> endobj 1486 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 54.911 263.484 67.53] /Subtype /Link /A << /S /GoTo /D (section.17.3) >> >> endobj 1491 0 obj << /D [1489 0 R /XYZ 57.056 708.045 null] >> endobj 1488 0 obj << /Font << /F18 1216 0 R /F30 1255 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1535 0 obj << /Length 1477 /Filter /FlateDecode >> stream x[S6[^,4m(1lg:0OqCL٥S \%z~Oڋw>h@(jDX: Q#'~|Y9WHyeQiy@p= O#W+,$DCiSi#]oԟASFDb$IS K?K}yPоKBl{f84QZ4ErݍF6M )rQwL_3- d Y WJ vPT}uD-|@yeMn~}*O_jY}+-%NߖZaA]@bwHSI!˅n24@HM$yw.lmg~qgBj(#[A85OiP I+ʇ4F;G_#LnU: Zs{IB^)kYWƺrVe.g֕ re3gTR15gg{[ZδS*?CBulrMcuF5kf K\EGtR,.n"mYeYn$/:4ЛҐMT4 ynƢ5(u$rH9hf?I :,d4Azg ҷι 7!dmA!ڎ{|^7;<{f[x~޴Ë5&YkiTM@ڔ_" "=xN"B-D˙U6]&^gt}xAʍoXm\Ώjeo3="z^ie $Bl0ɬ#^ 7,IT27יI@U-6qYGq|(~17xƼaC'SZ2b/ΊDE!Vd['IkJUSKesbŹ带\V4ϊFr<% 8dEPV!\VE:9̮Sw>^/>@Eg;tlS6|HD>6tsY'Y.N[_fJ_K!8~%ƶ,!OYfY256#n%*Ӥ.@}j+vGtƳYv]% E;!lC#l]w.X%/64s,!' v;v,eK͙Y|ɇG1Is:LpCW7nGR%3Yj^q<CJ3w]WOon+HLӎ5{ykW_jYM\E}0mk\J{Z;iIV_^֯aL̓cQqLvoz endstream endobj 1534 0 obj << /Type /Page /Contents 1535 0 R /Resources 1533 0 R /MediaBox [0 0 612 792] /Parent 1492 0 R /Annots [ 1487 0 R 1493 0 R 1494 0 R 1495 0 R 1496 0 R 1497 0 R 1498 0 R 1499 0 R 1500 0 R 1501 0 R 1502 0 R 1503 0 R 1504 0 R 1505 0 R 1506 0 R 1507 0 R 1508 0 R 1509 0 R 1510 0 R 1511 0 R 1512 0 R 1513 0 R 1514 0 R 1515 0 R 1516 0 R 1517 0 R 1518 0 R 1519 0 R 1520 0 R 1521 0 R 1522 0 R 1523 0 R 1524 0 R 1525 0 R 1526 0 R 1527 0 R 1528 0 R 1529 0 R 1530 0 R 1531 0 R ] >> endobj 1487 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 667.862 286.872 680.482] /Subtype /Link /A << /S /GoTo /D (chapter.18) >> >> endobj 1493 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 655.741 275.58 666.036] /Subtype /Link /A << /S /GoTo /D (section.18.1) >> >> endobj 1494 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 638.971 286.25 651.59] /Subtype /Link /A << /S /GoTo /D (section.18.2) >> >> endobj 1495 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 624.525 341.008 637.144] /Subtype /Link /A << /S /GoTo /D (section.18.3) >> >> endobj 1496 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 600.698 262.801 610.992] /Subtype /Link /A << /S /GoTo /D (chapter.19) >> >> endobj 1497 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 583.927 277.406 596.546] /Subtype /Link /A << /S /GoTo /D (section.19.1) >> >> endobj 1498 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 569.481 275.32 582.101] /Subtype /Link /A << /S /GoTo /D (section.19.2) >> >> endobj 1499 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 555.035 318.658 567.655] /Subtype /Link /A << /S /GoTo /D (section.19.3) >> >> endobj 1500 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 531.208 141.046 541.403] /Subtype /Link /A << /S /GoTo /D (chapter.20) >> >> endobj 1501 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 516.762 173.742 527.057] /Subtype /Link /A << /S /GoTo /D (section.20.1) >> >> endobj 1502 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 502.317 254.835 512.611] /Subtype /Link /A << /S /GoTo /D (section.20.2) >> >> endobj 1503 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 487.871 214.193 498.033] /Subtype /Link /A << /S /GoTo /D (section.20.3) >> >> endobj 1504 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 473.425 183.058 483.122] /Subtype /Link /A << /S /GoTo /D (subsection.20.3.1) >> >> endobj 1505 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 458.979 170.754 468.676] /Subtype /Link /A << /S /GoTo /D (subsection.20.3.2) >> >> endobj 1506 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 442.873 176.906 454.23] /Subtype /Link /A << /S /GoTo /D (subsection.20.3.3) >> >> endobj 1507 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 430.087 176.906 439.784] /Subtype /Link /A << /S /GoTo /D (subsection.20.3.4) >> >> endobj 1508 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 415.642 176.906 425.339] /Subtype /Link /A << /S /GoTo /D (subsection.20.3.5) >> >> endobj 1509 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 401.196 164.602 410.893] /Subtype /Link /A << /S /GoTo /D (subsection.20.3.6) >> >> endobj 1510 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 386.75 176.906 396.447] /Subtype /Link /A << /S /GoTo /D (subsection.20.3.7) >> >> endobj 1511 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.543 372.304 164.602 382.001] /Subtype /Link /A << /S /GoTo /D (subsection.20.3.8) >> >> endobj 1512 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 357.858 295.125 368.02] /Subtype /Link /A << /S /GoTo /D (section.20.4) >> >> endobj 1513 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 343.412 265.899 353.707] /Subtype /Link /A << /S /GoTo /D (section.20.5) >> >> endobj 1514 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 328.967 185.093 339.129] /Subtype /Link /A << /S /GoTo /D (section.20.6) >> >> endobj 1515 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 312.196 205.353 324.683] /Subtype /Link /A << /S /GoTo /D (section.20.7) >> >> endobj 1516 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 297.75 294.176 310.237] /Subtype /Link /A << /S /GoTo /D (section.20.8) >> >> endobj 1517 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 273.923 213.42 284.118] /Subtype /Link /A << /S /GoTo /D (chapter.21) >> >> endobj 1518 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 259.477 204.763 269.772] /Subtype /Link /A << /S /GoTo /D (section.21.1) >> >> endobj 1519 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 242.707 185.284 255.326] /Subtype /Link /A << /S /GoTo /D (section.21.2) >> >> endobj 1520 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 228.261 295.806 240.88] /Subtype /Link /A << /S /GoTo /D (section.21.3) >> >> endobj 1521 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 213.815 158.299 226.435] /Subtype /Link /A << /S /GoTo /D (section.21.4) >> >> endobj 1522 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 201.694 252.329 211.989] /Subtype /Link /A << /S /GoTo /D (section.21.5) >> >> endobj 1523 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 175.542 217.641 185.737] /Subtype /Link /A << /S /GoTo /D (chapter.22) >> >> endobj 1524 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 158.772 324.932 171.391] /Subtype /Link /A << /S /GoTo /D (section.22.1) >> >> endobj 1525 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 146.651 362.074 156.945] /Subtype /Link /A << /S /GoTo /D (section.22.2) >> >> endobj 1526 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 129.88 427.108 142.499] /Subtype /Link /A << /S /GoTo /D (section.22.3) >> >> endobj 1527 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 117.759 263.653 128.054] /Subtype /Link /A << /S /GoTo /D (section.22.4) >> >> endobj 1528 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 103.313 252.329 113.608] /Subtype /Link /A << /S /GoTo /D (section.22.5) >> >> endobj 1529 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 74.837 214.168 87.456] /Subtype /Link /A << /S /GoTo /D (chapter.23) >> >> endobj 1530 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 60.391 302.235 73.01] /Subtype /Link /A << /S /GoTo /D (section.23.1) >> >> endobj 1531 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 45.945 291.513 58.564] /Subtype /Link /A << /S /GoTo /D (section.23.2) >> >> endobj 1536 0 obj << /D [1534 0 R /XYZ 57.056 708.045 null] >> endobj 1533 0 obj << /Font << /F30 1255 0 R /F18 1216 0 R /F49 1257 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1556 0 obj << /Length 920 /Filter /FlateDecode >> stream xXKs6WxDoII'V{i{IĄ"]J#j-ؓx|DpłoOY0FRƏD4^|3?T)^PF3$G~H`!>΃ ^&Hl'lc+ u̮# 10eO:H޲2=XiTbkV 5CEsvd"n: R*#,mL"\cBW]\ߌf{5gP=]~ֻz^(gΔ_e}}B_oȍ3B=ZXʝeXcZ>jlQO>򂧗(r޺U>Ԁ?|7cz۸6qr\Th.|9[_]uwrx1 þARFB/x&A)en˸*Q%oO)?>pEwvN+RDs*i^dq/4F endstream endobj 1555 0 obj << /Type /Page /Contents 1556 0 R /Resources 1554 0 R /MediaBox [0 0 612 792] /Parent 1492 0 R /Annots [ 1532 0 R 1537 0 R 1538 0 R 1539 0 R 1540 0 R 1541 0 R 1542 0 R 1543 0 R 1544 0 R 1545 0 R 1546 0 R 1547 0 R 1548 0 R 1549 0 R 1550 0 R 1551 0 R 1552 0 R 1561 0 R 1553 0 R ] >> endobj 1532 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 667.862 372.146 680.482] /Subtype /Link /A << /S /GoTo /D (section.23.3) >> >> endobj 1537 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 655.741 263.653 666.036] /Subtype /Link /A << /S /GoTo /D (section.23.4) >> >> endobj 1538 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 641.295 252.329 651.59] /Subtype /Link /A << /S /GoTo /D (section.23.5) >> >> endobj 1539 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 615.143 209.311 625.438] /Subtype /Link /A << /S /GoTo /D (chapter.24) >> >> endobj 1540 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 600.698 273.873 610.992] /Subtype /Link /A << /S /GoTo /D (section.24.1) >> >> endobj 1541 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 586.252 252.329 596.546] /Subtype /Link /A << /S /GoTo /D (section.24.2) >> >> endobj 1542 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 560.1 213.018 570.395] /Subtype /Link /A << /S /GoTo /D (chapter.25) >> >> endobj 1543 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 543.329 232.103 555.949] /Subtype /Link /A << /S /GoTo /D (section.25.1) >> >> endobj 1544 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 531.208 252.329 541.503] /Subtype /Link /A << /S /GoTo /D (section.25.2) >> >> endobj 1545 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 505.056 212.833 515.252] /Subtype /Link /A << /S /GoTo /D (chapter.26) >> >> endobj 1546 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 488.286 215.329 500.905] /Subtype /Link /A << /S /GoTo /D (section.26.1) >> >> endobj 1547 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 474.371 302.065 486.459] /Subtype /Link /A << /S /GoTo /D (section.26.2) >> >> endobj 1548 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 459.926 302.065 472.014] /Subtype /Link /A << /S /GoTo /D (section.26.3) >> >> endobj 1549 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 447.273 252.329 457.568] /Subtype /Link /A << /S /GoTo /D (section.26.4) >> >> endobj 1550 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 418.797 364.298 431.416] /Subtype /Link /A << /S /GoTo /D (chapter.27) >> >> endobj 1551 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 404.351 418.302 416.97] /Subtype /Link /A << /S /GoTo /D (section.27.1) >> >> endobj 1552 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 389.905 544.052 402.524] /Subtype /Link /A << /S /GoTo /D (section.27.2) >> >> endobj 1561 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [56.06 375.459 154.301 387.711] /Subtype /Link /A << /S /GoTo /D (section.27.2) >> >> endobj 1553 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [73.619 361.013 525.369 373.633] /Subtype /Link /A << /S /GoTo /D (section.27.3) >> >> endobj 1557 0 obj << /D [1555 0 R /XYZ 57.056 708.045 null] >> endobj 1554 0 obj << /Font << /F18 1216 0 R /F30 1255 0 R /F52 1558 0 R /F34 1559 0 R /F32 1560 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1564 0 obj << /Length 2311 /Filter /FlateDecode >> stream xڕXKs8W䢪Gd{f (S$R.׷_I@t7@ ެ^~aI]6Ef~XUިR/z]__,$\\EKj-4QxT)}+c-(^Q)'Խ*qX.=5Wyik/[0fp儳wѻ\b:$Uܫ Ӳj^xaJ{\cu(]|^ns /xgJg`,XEuÌ2<1 HIt&3u+e.4kgqۯA/ <~CvJmIۏf\v-rtb9Y(p\Eمr[CU`wt~Jwq[g`t߬iB{zC^p2gbZ6^h4TtO@f]BXL9fnSTz̦'tq2 $Qh;y (xs!F{ԼV)eMmkLGwZp~FQB6 &X`~Ȗb9L~Gw0%-=-;-lR?qmix=a4EMزu{2uOB44>?Vp.)N ޢX@Ô) {Qjz٦k=1 W7(GR9O< b .qu_qݶ!b"F0_[[k{\;hI5V)xM>kuX%DR^yV! h,-(qW]q|ذ H&pxB֟MYH)0ZNG~#0ΰlwY;h2>f»M,e *әFCJ`> `(5)~;ݳCćaEhK@ cli; U,|h2|^2ŧ|Du8YO||Pվ6e31r%Y ,l4CM`j.Ai9@I9 40yӨc3b^M %l!Fꠡ:F@1<i I!xJa+* t35J?o$ zz_á*e endstream endobj 1563 0 obj << /Type /Page /Contents 1564 0 R /Resources 1562 0 R /MediaBox [0 0 612 792] /Parent 1492 0 R >> endobj 1565 0 obj << /D [1563 0 R /XYZ 57.056 708.045 null] >> endobj 1566 0 obj << /D [1563 0 R /XYZ 57.056 609.529 null] >> endobj 1567 0 obj << /D [1563 0 R /XYZ 57.056 350.182 null] >> endobj 1562 0 obj << /Font << /F30 1255 0 R /F18 1216 0 R /F52 1558 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1570 0 obj << /Length 1864 /Filter /FlateDecode >> stream xڭXIFϯr*Km m˜U؜?Ǝ^ʜ1o۽ͩeYefI Fsm>5iis{UaM;:H,:˽315w&t>aikCT1/SHqak5պO sTEƚ~vEwr6 @gkU(YudU]ȾL?pPP-vA{M(KL!'&\m^byn q~,ڮ)^]QWص$CT6gI!3m}n^*kr9Й,W (NRه ËaH7ƿ9]K&v^ҽf]۵3-L,OBuu,0r˚:qfL-¸ܺ2`ͬ Q`[lgzUG0sɻ +ƴ8f/"aO%WugS ɥ, CP! Uu [`ʬ8] m`CkY:՜_ 2&ɑRD3$w,s6 |d_@,C@Fq P% cAiز{mτf}3/&%he6ĩJ ."+%7նAB 붒+I¼$4G? yu }$cQfG1j,^ƻ(D=OVP~j(p}BÞd2й-5 B/akQ:bH֘i tG!m^r '*aB%ωJ(fh@ E(Fl2Itz8!]&|7.&'GxUxe%ʺGJe> endobj 1571 0 obj << /D [1569 0 R /XYZ 57.056 708.045 null] >> endobj 1572 0 obj << /D [1569 0 R /XYZ 57.056 628.8 null] >> endobj 1568 0 obj << /Font << /F30 1255 0 R /F18 1216 0 R /F8 1573 0 R /F37 1446 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1580 0 obj << /Length 2740 /Filter /FlateDecode >> stream xڽYKWlrV7Sű7%Y2(,(+}1x fuoeOYoou76$fwf]io#y?o⛕IE"5︯>׷ZF7 酒 8.Rەq<ܒeS2R֪pR9'vl Gr8K4Um Q48ulWW}m\]8U-%~Hz$Rv¥EU/nsH#F_ /.I.*k\rѦloD~E;]|TT ^l^uGؐDE^!1suiߕ9KDIhYL3&_q?yLjƽys8%VxޏޝJJү2焌Gljj dW׉0B[ fקm#%<痦+L}.]aݩB?5}27|a6s]|0R$J[ =hI_G k/_i!_x=qYbXG%s%b7o&WHy A3+(GZ{8ջ&9i:26b÷ɸ/pKҺTX7Rw/K C ";/t2x # ={:QŁ?rA[ bG#.G'kK;+} Âr5vMdTasY%$uTnJaI AMz6V"X +Y65!Ȳ(a}2H ΂:! ]X9VfۇX` m[\Iء^ 7NƘaCy\цWؠ& ̲& nӡ>FS32It˨Yܨㅸej=DEwWNLxSO&T(6:fD YMm(mx\L51#&1 m`B(ї]6p0<-FH mXDΒ"K{`3F $4;gp FPOhUU ` jjq5W >7p(rc ] 1t`bCn祻H﾿*h&I\Ӎ@j&k, 0s"V @#7 )Nz98>6>˾W-0sFsS=5:7qŹHRM43Ō>}^M|νȇJw,p}Y͈4'/P&!:E?jCG&Ա{?<ܧ&fpV@bflųz Xa]ao=a7f [qmTIr=D-'K@t}[18-jռ<&cP6\@*Ҁk'b 8]cDoFl|6w:7)X F FK,=J; n LRN!f\cYX [kK'<4!XļkcP~bRtuF~xMeJ A9v _eť*0*߷٩\v#N'Wk?o`X?rUXz> WFڝΫ4dz35Ĥ975{Ι;; m9@irp|C'1 k}xpؼpN>*xOqć[+7P '&ihH>ZX YN'y)i4:a<=X٥ Q)! Ioҩ`.x/HSBVEv2$gf3叡}[X=Q߈eo  eM ޠ.яevtmjct<ZSE}F;窶+@* ?Yʦ41d\o} endstream endobj 1579 0 obj << /Type /Page /Contents 1580 0 R /Resources 1578 0 R /MediaBox [0 0 612 792] /Parent 1492 0 R /Annots [ 1574 0 R 1575 0 R 1576 0 R 1582 0 R ] >> endobj 1574 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [313.28 449.963 512.134 462.914] /Subtype/Link/A<> >> endobj 1575 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [152.766 74.039 290.101 87.987] /Subtype/Link/A<> >> endobj 1576 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [431.325 74.039 544.052 87.987] /Subtype/Link/A<> >> endobj 1582 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [56.06 59.593 156.483 73.541] /Subtype/Link/A<> >> endobj 1581 0 obj << /D [1579 0 R /XYZ 57.056 708.045 null] >> endobj 6 0 obj << /D [1579 0 R /XYZ 57.056 683.138 null] >> endobj 10 0 obj << /D [1579 0 R /XYZ 57.056 496.998 null] >> endobj 1578 0 obj << /Font << /F30 1255 0 R /F18 1216 0 R /F50 1258 0 R /F49 1257 0 R /F52 1558 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1588 0 obj << /Length 3248 /Filter /FlateDecode >> stream xڕYs=BO 4cŝ*vRi $~ׂ H3 ?|~+2M*(ͮ\6Wz$iIv ػv s=k]V`i6~um嚿/g[ ڡv*/FkzUtRI$<̃ ˰oA>3lځ/:Lx^D>^vјp#B Leܱ@xaƕp ׅf&8p_7ME:p "8TLB><8~{˭\4 $:oyt{kt;Q!)I9W$MCD~+Y`S^^ݑ Fas%U* "ӊٸ*093 q eּF ~y3}vhj mޠ8N-jjRT''K֌ GʈiZӰ2(D|U`gkؙٞ p08!MG ߩMD=>GW4yUO‚/``iP}㬘ӀSĜ0)%[M؅N5Oy]xx0_ nWzw>gE$238”  OaL7abQHQ'Dh ׁY^ -arpTg"~n˻o*3,hlxª?I!  肔h)$DdHp|] 6tU!F'RUM1ZW Iaǘ2 <C˿Ug=9DA8; ]Cz9). ~Mk*d/c,Sh0(M<5uC_YbAN{,@C.RL(4$~9HaGxj/#&c ~s0N]*̣L,!KcȆRѪVn"o-*${1⛢  h#B0CFNNL:/1(Ts5s&Ƨ I;]* nererI,¸л 5_mo|$SЎh~4Q(/jzL`Dk3QmXlq1 \F7TakP>%M Ib`V(8ĥ8AYV;XxPε=`X,ʔ{ZQcrps8UY>/-`~ұ߳sH8tV/Gb؄Ph4n7zcfLj8i7@Y8,"˿rQ~r;qT_aN61^x(a'ZhH yN3et^WOqU)PD^QN^潕j6Σ0MԅQ"g$擶ˆPSJagյzG:Yx=qzȝx9i1O =RVe&y/:$TєR÷J'uc`PG(syN m/C*%Btl^sfJOR[(Lr %RQi1q2v`?e:L3=%Dgݝm  z0\328M Hz. xpAʉvi1ԍ) Q$Z9z۠ 3,xX 7=-H_As d@嘅(I\RqEeqd Y230̡Z?yLfE>rZ^0ѹJU 뮪i$PNkP񻪾J"|,48F@`p$K'(@It'V(ڂey C+{˜w"lq$- 6t KpHǚ)ReJɜ.G}Z=Fcs2}yAf%`k˅ LK׃=F#n>b6~aGaCpa~jn|7>wEB8g o@_ql 9ܷ[ v#wp@6T?ڦ *܃E5=`F,f9Gu q G·gA0klcC~9CYAj5JL<tU4;| RL9_RVbZfPU A`kOv0[ȿokT۩  ;t2ŝ?lf`(k; ޒ ύN +&^_6жuطcWSDUAcXQ9Ey[чuy i7QW^)*#yMC| A輖@/PHI0 Z˝ath)+ uF1tйǑ2fyS2y!S+-<;aI SX*5#~]?OnMTr,Q%Y*4m[ܻ}Eupu7Ss 4BaQ7j endstream endobj 1587 0 obj << /Type /Page /Contents 1588 0 R /Resources 1586 0 R /MediaBox [0 0 612 792] /Parent 1595 0 R /Annots [ 1577 0 R 1590 0 R 1583 0 R 1594 0 R 1584 0 R 1585 0 R ] >> endobj 1577 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [511.3 638.306 544.052 652.254] /Subtype/Link/A<> >> endobj 1590 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [56.06 623.861 174.939 637.808] /Subtype/Link/A<> >> endobj 1583 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [480.54 441.022 544.052 453.974] /Subtype/Link/A<> >> endobj 1594 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [85.325 426.577 302.635 439.528] /Subtype/Link/A<> >> endobj 1584 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [152.144 101.847 344.847 115.794] /Subtype/Link/A<> >> endobj 1585 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [137.085 31.153 335.94 45.101] /Subtype/Link/A<> >> endobj 1589 0 obj << /D [1587 0 R /XYZ 57.056 708.045 null] >> endobj 1591 0 obj << /D [1587 0 R /XYZ 57.056 567.892 null] >> endobj 1592 0 obj << /D [1587 0 R /XYZ 57.056 527.837 null] >> endobj 1593 0 obj << /D [1587 0 R /XYZ 57.056 463.54 null] >> endobj 14 0 obj << /D [1587 0 R /XYZ 57.056 86.695 null] >> endobj 1586 0 obj << /Font << /F18 1216 0 R /F49 1257 0 R /F50 1258 0 R /F30 1255 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1609 0 obj << /Length 2309 /Filter /FlateDecode >> stream xYKs6WȩҀx$㬶؉-8$5C ɱ ,Xʖk{ ^\#RܻTD 0bidޯ~摟Y^EF[qm6U;V3KkZJ#6yk""\홿Q٭P QCkjSӍ2$ nd6ߗM_ui* ^5ßs|Tc)x2'5甄J@'YY7?,s 8:dڪSG{;mW4ug)Mf]R["#ZR].?[>xQoXH8 a a 4FS0R5tA)fZ]'n]ѻ훲ੂ  z_n+wwmSЦe~AYF2_DŽr=I/'/k5ࡎ߬yusXa7Ge)h.x >;e co}c5qC~:&ɉ.˼f#[pvAG7Vͣ#?EHHk8Pw@eNU!9Β(vvc,?$z\n3|5+:A w>`+EO0*,Se| .· l |ۤwH:)GQbǰd5`gnY6+V۳as0Ǜ|S$RT"Gd=|ÈlEM% $PdTO@(S>D]]"ތ7vA]CeP=(9aSm}F<ް %2PR7ߛOv7 nգ6yWv_vuo}1qkn1))wm'b-~1 BCU3..C{Y޺+`ӏ`87ynᬝq֩p|ɪBIaaZR ~<,4r ScZ.9YsAԱG%(-SyuSLz $?˩ 7ɿ$վBw]6- NSw>0S (v^o(8<8I ;\6QM˝ac<;\`tAHt{YC?-սv.Av{d+M/Y#m_N}h͆2#tf?P9MD'[HkAZco$_0cb(G My1 endstream endobj 1608 0 obj << /Type /Page /Contents 1609 0 R /Resources 1607 0 R /MediaBox [0 0 612 792] /Parent 1595 0 R /Annots [ 1596 0 R 1611 0 R 1597 0 R 1598 0 R 1612 0 R 1599 0 R 1600 0 R 1601 0 R 1602 0 R 1603 0 R 1604 0 R 1613 0 R 1605 0 R 1614 0 R ] >> endobj 1596 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [474.388 605.254 544.052 619.201] /Subtype/Link/A<> >> endobj 1611 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [85.325 590.808 105.773 604.756] /Subtype/Link/A<> >> endobj 1597 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [163.443 185.577 411.513 198.528] /Subtype/Link/A<> >> endobj 1598 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [517.452 185.577 544.052 198.528] /Subtype/Link/A<> >> endobj 1612 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [85.325 171.131 179.596 184.082] /Subtype/Link/A<> >> endobj 1599 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [197.962 171.131 353.753 184.082] /Subtype/Link/A<> >> endobj 1600 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [85.325 118.16 173.444 131.112] /Subtype/Link/A<> >> endobj 1601 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [178.605 118.16 272.877 131.112] /Subtype/Link/A<> >> endobj 1602 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [300.8 118.16 407.375 131.112] /Subtype/Link/A<> >> endobj 1603 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [85.325 89.269 494.341 102.22] /Subtype/Link/A<> >> endobj 1604 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [85.325 74.823 544.052 87.774] /Subtype/Link/A<> >> endobj 1613 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [85.325 60.377 253.918 73.328] /Subtype/Link/A<> >> endobj 1605 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [106.786 45.931 544.052 58.883] /Subtype/Link/A<> >> endobj 1614 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [85.325 31.485 464.578 44.437] /Subtype/Link/A<> >> endobj 1610 0 obj << /D [1608 0 R /XYZ 57.056 708.045 null] >> endobj 18 0 obj << /D [1608 0 R /XYZ 57.056 279.316 null] >> endobj 1607 0 obj << /Font << /F18 1216 0 R /F37 1446 0 R /F50 1258 0 R /F49 1257 0 R /F32 1560 0 R /F30 1255 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1630 0 obj << /Length 2384 /Filter /FlateDecode >> stream xڭY۸= iWCM=l[E[%j(;álɑ\_VphV/7x(gdgO q'Iq8~m:NAw*/߷y £]Dt+κki"piO SѬmu^yy\&~WL)sW{aE "_'(T---oӦ J5ȫTDzV6.7vc7%R~wh쑞@m%M_gm2{ʛ5nQJjXKK:ecrW1 j=O97Yqh؎P+.88&{lP7.?eIؽ֒86):mzGGwc6]Do4VFh~Vө& zЂ{ToڨE9L{ѳ4 )ę8?L"%DSS!ƭ`뚴^qVy繍Gs F7"l!"nDgsʣj]M[{6NKa"dtض#o .#m[\.?>f12e^ʼn^~ fhPi#>5&b>yU ,I0w,MuT ;&<-qEYqC6Kr&*p61)Ս묌g"2U`sHMF' E/~H&j&shn\o[xx[=w~0LAz0ڐ\gޣSExf<%2HfNfDI8 *Ҵta!~j@3ry7$E9.jSNb܊t$sE8\ ݑoۚ$\pΰ6.i+y a~B^ نIf. |&c'baı&11vIQ#$>)BX܋B $BȨ-SJ e%ZB_lViI>㌬ds#iO (J-Ji@1{T5)) ޒFOן؆ HSb`2=ZݔtY_' 㳈]w-~8s]ק8~].(C;yL>[H{E]I__-$0 Zkuh׏0+oYU@i4EoF*?>eZw~;+Scy钣Za0d- 辴tC(4 A߇ ;T]ʴ]OimF谅Ykw(xIB8 tP17_n?E=HzG f7BuF@&3} u"6Ź fшhBp&X m>A|(^`;7G: ȏEmjT9d?Gn3k2c\fv^_-֙UCIfJ%v<-0GynfHcF$Rhjp}u jhtT0Cz|ZcP m3yus}B9Q9݌H d&T<#ZjاUO{k']A;^Mϥb>tQ-ض0Iem'}>P _sRt]=ğ@8݄#2 ^ Ψ*n)C]e%(AO)A0}Xr<3=T0$ivzvjcfF,Zpt 8!_:41Q`B}Ô;qvS'c^ɠك}BRMpyDL(5zQHQ8ĀHHAKmn%zV@~ுGOl|ݼnm~}##~2s0_GR|WOgX({r<7T`AIB9 -xB>¨+g7pz+5htnj^r,(y "b[{aǒ=guǚ!ǩh7@;6+oá6 EjqD cɻ XS5>q#ǖuPp(DRmb|mHǴ  #v'B5j ^Y> endstream endobj 1629 0 obj << /Type /Page /Contents 1630 0 R /Resources 1628 0 R /MediaBox [0 0 612 792] /Parent 1595 0 R /Annots [ 1606 0 R 1615 0 R 1616 0 R 1617 0 R 1618 0 R 1619 0 R 1632 0 R 1620 0 R 1633 0 R 1621 0 R 1634 0 R 1622 0 R 1623 0 R 1624 0 R 1625 0 R 1626 0 R 1627 0 R ] >> endobj 1606 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [100.105 638.638 206.68 651.59] /Subtype/Link/A<> >> endobj 1615 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [85.325 556.447 559.347 569.398] /Subtype/Link/A<> >> endobj 1616 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [337.707 542.001 401.218 554.952] /Subtype/Link/A<> >> endobj 1617 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [366.833 527.223 430.345 541.171] /Subtype/Link/A<> >> endobj 1618 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [112.861 513.109 491.118 526.061] /Subtype/Link/A<> >> endobj 1619 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [498.996 513.109 544.052 526.061] /Subtype/Link/A<> >> endobj 1632 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [85.325 498.663 421.016 511.615] /Subtype/Link/A<> >> endobj 1620 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [446.598 498.663 544.052 511.615] /Subtype/Link/A<> >> endobj 1633 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [85.325 484.218 296.981 497.169] /Subtype/Link/A<> >> endobj 1621 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [351.35 411.49 544.052 424.442] /Subtype/Link/A<> >> endobj 1634 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [85.325 397.044 259.571 409] /Subtype/Link/A<> >> endobj 1622 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [159.611 140.133 284.642 154.081] /Subtype/Link/A<> >> endobj 1623 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [118.492 126.019 249.675 138.97] /Subtype/Link/A<> >> endobj 1624 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [452.681 101.279 540.801 115.226] /Subtype/Link/A<> >> endobj 1625 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [153.829 87.165 248.1 100.116] /Subtype/Link/A<> >> endobj 1626 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [357.658 87.165 464.233 100.116] /Subtype/Link/A<> >> endobj 1627 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [199.599 33.865 324.63 46.816] /Subtype/Link/A<> >> endobj 1631 0 obj << /D [1629 0 R /XYZ 57.056 708.045 null] >> endobj 22 0 obj << /D [1629 0 R /XYZ 57.056 196.339 null] >> endobj 1628 0 obj << /Font << /F18 1216 0 R /F49 1257 0 R /F50 1258 0 R /F37 1446 0 R /F32 1560 0 R /F30 1255 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1642 0 obj << /Length 3289 /Filter /FlateDecode >> stream xڝZYܶ~ظ` HXS,{W]q"9!9{ק,FgWRdZ 8H2.~ YW2.fɋW]yۯ*U۫wR ˶L)rXhCΌE _̇oVH%NH:J3౽0O$H$^/K&4ϑv #8tPKf1נMPnwxJh&&rt|1F7̳2yV޼xиmsnuu,82-mOvh\i𘭻>s&Щph3LjpJa{S pؼwU 8^.߯Zn㵉Vwh`R& KLeN.ȫᖭ۸3V[b_}W$[WQ4\r2B.(?&4Mv쉲nтc;8o>ٖޢA-;(xG4 a- 2*P  Gߔ^_?XOm/6g(<&)ɗ&JMD9<s,ppOl9=XA`y !t_`+_ZxC,ccM/|[ AB G͑_s#M}B伾+ 詾eҨc Fd |T۲uW߉BAEdHwc=P5mٺȎ E[=s/\Ko˶J*%9U,F3Eن>3`8.ᇆƇ>+irj}wey=]lDdm-,ypc3ipVv ^ ue<2ᄀ tѡ;%p2l o  Ɂo4 8'1f9e?#cAi?FW0‡@p[x<[J]y%D'kt@2 \œf@̀Gۣ5Z%x R{.W:KNzu3 y2' b2zC~V;5ww wI-'0zKH?!TheAH[q[2\1ik_9ݹnԒj?(S7<)!Ν AI #<0Gp+Eh-wQfh-Ow_|뒻ұIGy"@p _>YzX$4)bl9ܺhm˓γSѢHjJba"7Iv:x /A :Z/k χz ^bqqwVy@%@@qG OMH0,4e;I1)`Rårs͜G@[T(m[J+ {MqgW!TX`eFq.osl1&|#w1*hbI̥  -ăNΤ*"M(]}#l'y%v8J*M+ N!@\ 68W6/p" L+0Nt8cHٹњ_Nd<~_"" , mM~(i; .iyϵ{[)#Pg\r-2"N-hN׻Kv?.\C|?3Da Tf@R26X1"Ͼu- endstream endobj 1641 0 obj << /Type /Page /Contents 1642 0 R /Resources 1640 0 R /MediaBox [0 0 612 792] /Parent 1595 0 R /Annots [ 1635 0 R 1636 0 R 1644 0 R 1637 0 R 1638 0 R ] >> endobj 1635 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [78.818 466.44 210.001 480.388] /Subtype/Link/A<> >> endobj 1636 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [425.173 408.989 544.052 421.94] /Subtype/Link/A<> >> endobj 1644 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [56.06 394.543 224.653 407.494] /Subtype/Link/A<> >> endobj 1637 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [309.871 300.021 332.674 312.64] /Subtype /Link /A << /S /GoTo /D (section.11.1) >> >> endobj 1638 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [341.946 132.606 540.801 145.557] /Subtype/Link/A<> >> endobj 1643 0 obj << /D [1641 0 R /XYZ 57.056 708.045 null] >> endobj 26 0 obj << /D [1641 0 R /XYZ 57.056 377.78 null] >> endobj 30 0 obj << /D [1641 0 R /XYZ 57.056 211.029 null] >> endobj 1640 0 obj << /Font << /F37 1446 0 R /F18 1216 0 R /F34 1559 0 R /F50 1258 0 R /F49 1257 0 R /F30 1255 0 R /F52 1558 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1648 0 obj << /Length 3661 /Filter /FlateDecode >> stream xڭZY۸~CExVř׳1Jv@KЈHjyxfxȔUF_7GO_tEQޭx'W^]oWy{xƁWE(6Սl7v˵QpԇYE+6vY8sn;6Me }-\ps3UZ+ 6uvy w@\ 'X%)JO stdX@y=sSeo@)nOdOnd觾n/Ctҡa:+,i=vv{j>l˃ЊMP^6ܡM@&tID_6 6~nAVVo7]QWg]ʧӯ>$ ?0˄D{iholiXT^Mf}WT%}®{.zï(}Q|QͯI #凞 :#6]ݴx˩lcٖ9A,w\zV2beX%8YX.mWۢ/hc[A!W 6om:kW-( :s_V@AN %"De]^Ⱬ+/Y<zEUtE~X:ζhp:nJi 6:ض˺Zkbǖۆe򵛊r%KȒyW7@@sYd30 Qʁs՛kK|"X X82'CFN[dZҵޭ>h閮dHQBDdX86lNf( ؎D6(e&=-%R O/~Z20* +Il56Y,poAnfAS#PhUOv)6;f%҉Z=r="oe193v XOa\ԍz"@Z vW&r,ʿ?b;s0υuÃ]|-70ÿ= @+.ǠL0aV8+F$ܲ(YbTThVL8BƠa}1mR AuVbehbPG{.dJl˕1dIna9z|f.c9sQm`5+l76_IU-:yB>?.LP̭Ł KC m֟V{$F+vl_m 'Q0eXp׏x@╁:JVo::KW4\i?R(GWL w5ZIi-.=x_y gx  C0l> :3?ӒoRrN3Iqf$T6;~F"?ڍX)/8(Cp] rzr<4 6򚾒jGiLфC gEPU:¢aWj /+~@r^qH=1.A{n*+ڶ̄A=ix&XYJ5*[lr(@a;8MvVlT62:]F i7Mqxy F 黥APp hH)Yu`A|G0; {yӻk&qwͨ#P0dC޹$] CuAI qABtƚ;mA)ՃBeo#F1kV#LE*\sqvKrFq–Na6퀩_Px w%!F:JF;T/o<?wQk룭"KQ!GuL+"=epWejEe#IEp˔W+04I"JG̚mC.kPC]GIʣ)r8X'S`pVZ2w.e R*;)'v^MOIsDt6LEQdcť .7Dr9s(pP:Q~6o JWeSȔ԰+ޣka_\aRtOMy<2E 3Fڑ\4u51,XANc p޾aJO0gjNYZZveeWCfwϟ~Qa1RHH9,^ G: )_Ss+~=ФhhPtw,YyO5jf,Y6s[RZ/|ݷlP yI{w,PMb+d'EBﱧ .|SC(u> endobj 1639 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [481.896 638.306 489.742 652.254] /Subtype /Link /A << /S /GoTo /D (chapter.5) >> >> endobj 1645 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [356.318 422.283 370.017 434.902] /Subtype /Link /A << /S /GoTo /D (chapter.27) >> >> endobj 1649 0 obj << /D [1647 0 R /XYZ 57.056 708.045 null] >> endobj 34 0 obj << /D [1647 0 R /XYZ 57.056 390.154 null] >> endobj 1646 0 obj << /Font << /F18 1216 0 R /F49 1257 0 R /F50 1258 0 R /F30 1255 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1653 0 obj << /Length 1425 /Filter /FlateDecode >> stream xڭWKoFWIIc AݸHsÛYߙ(TS 4M`&~,{zC·AP5_4Hqk\7 ~pݖEk#^*ܓLfQƴ2ms$/q{s|Vm(ph݄ R ѐ  YA:p}ϟ*ti}]iOr3^OaM\!\ԹGY^(o SE@*#0@b:;0+,'x6{=p ,,Vp!L:WUS}ڤe77WoKz[&>{ۻLAbux*욍*|,j24"2u)!_&hN֭>1<.7ͻ\EmKbEUu9"7M^1]p}F6"&84`.m:}:RXjeY“ʡ%,oSJf2.ͩfW{ x6jf`y?x>)v4I J=NQ8b)eʌ>r2;"b<&"|οBpJoޟ!4] a`&^zsP6`@(,-{VIL4N]q$nFdf-<#L"-P@!-P'D6IB3F= ,}Oq*4຦_h_%vyK(@|!IM8.$Lz?6)%-" /VA?3DmB#*1{*gD1>b}a_d29T?aMpFB[a'EG *60X>`/u㏊4jq;~\5".pRk6;IF ̷+&.UX8gLR3FOGJ0ƾ 0A>_> endobj 1650 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [102.531 610.079 110.377 622.698] /Subtype /Link /A << /S /GoTo /D (chapter.5) >> >> endobj 1654 0 obj << /D [1652 0 R /XYZ 57.056 708.045 null] >> endobj 1651 0 obj << /Font << /F18 1216 0 R /F50 1258 0 R /F49 1257 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1658 0 obj << /Length 1694 /Filter /FlateDecode >> stream xXKs6WԡJdzHd&==PmC*v_H:iO@`woww?tFBjJar%yY [z"]%rni7wE~kٺ([zTFp D+i\U5K+pJA3]2|2l$iYTEoq.fuE vYC[o;&_7YivyՆ눩TT bZl1AB-T1rHɇMP>FT =2m0 g:LƥE'ŽJS g4BF&c2GMN}}%L;YTÔ0;rH0թC`]L&I^Mj!E9a8@ƣ nm& ?Z)m`Ϣ~px5滺۠ s#VuV.sSAZ(C| 7pɳ.:ovI9] {v?jc\^8r?|y_khCPBA Mo 2u(N ۼYC8>ơI»[h\UPKÒeROs5zHar@a6M;}.(|U`G$9x@b}੘$/Kg X 'Z>a;Ks<9*JvQo*f|S ;r`i|qMO 3\ \/Р~iSWSJ1y?u]cqc1kF AjcC OcPsP`:Zt%t>jjz՟> endstream endobj 1657 0 obj << /Type /Page /Contents 1658 0 R /Resources 1656 0 R /MediaBox [0 0 612 792] /Parent 1666 0 R /Annots [ 1655 0 R ] >> endobj 1655 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [141.904 123.118 158.854 137.066] /Subtype /Link /A << /S /GoTo /D (equation.2.1) >> >> endobj 1659 0 obj << /D [1657 0 R /XYZ 57.056 708.045 null] >> endobj 38 0 obj << /D [1657 0 R /XYZ 57.056 683.138 null] >> endobj 42 0 obj << /D [1657 0 R /XYZ 57.056 496.998 null] >> endobj 1660 0 obj << /D [1657 0 R /XYZ 392.619 468.061 null] >> endobj 1662 0 obj << /D [1657 0 R /XYZ 328.631 405.264 null] >> endobj 1665 0 obj << /D [1657 0 R /XYZ 369.437 313.574 null] >> endobj 46 0 obj << /D [1657 0 R /XYZ 57.056 175.305 null] >> endobj 1656 0 obj << /Font << /F30 1255 0 R /F18 1216 0 R /F34 1559 0 R /F37 1446 0 R /F35 1661 0 R /F38 1663 0 R /F40 1664 0 R /F52 1558 0 R /F49 1257 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1670 0 obj << /Length 1886 /Filter /FlateDecode >> stream xڽXY4~_G 5/@QT̈ueӭęe)^ן՗wE٦o>Qcټ )ܖtƫRi4xESkC|;x!FrW]>0$<+ +ʎ_M 08W4VIg,Sٙ#%HT,wX8y餻s %,X<̶bl1dc9EL$#_ /Ա/K&%ىO`o2l;g814ʈH8XÐ]A.CƩV] ߝidN] .,03{+Wp~'e^zY\Y\o,Dý `DBşcbn%l//BNfrr 9ũМv%56zߺp[1tn oM55l+o`*G3Two Ube3Dd_sCUk{RQN֚mG _ϓk^}C+Σ=zX_V<xmIJ rW̓u:}Q)W-q^ L[⳴VH lL2雰Ц֡cTbb䎻pz>¶%:}f@:aXn~cTUxNlg`K}Kp  QWX ;8bˇNڱѩN:&ZςDi6GģEw֓7ldΑ#,wbgIqW  endstream endobj 1669 0 obj << /Type /Page /Contents 1670 0 R /Resources 1668 0 R /MediaBox [0 0 612 792] /Parent 1666 0 R /Annots [ 1667 0 R ] >> endobj 1667 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [131.655 368.85 148.605 382.798] /Subtype /Link /A << /S /GoTo /D (equation.2.2) >> >> endobj 1671 0 obj << /D [1669 0 R /XYZ 57.056 708.045 null] >> endobj 50 0 obj << /D [1669 0 R /XYZ 57.056 418.049 null] >> endobj 1668 0 obj << /Font << /F18 1216 0 R /F49 1257 0 R /F34 1559 0 R /F32 1560 0 R /F35 1661 0 R /F30 1255 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1683 0 obj << /Length 2573 /Filter /FlateDecode >> stream xYKsܸWiS`\9d-6ɦv+QN=@ChĄC!YӍ8IWhkW߾z#+Lnn6Eβ<`BjsrP%O.,xbn+G"no-u5I:CB?_{hH3*Wxҍfv JR@xk2߽-m8tK?q wѮ;Iv;{zZ}TTE\ȠR9tDSTHf47uK=  ԌK8]v[ ݺ@DR=ôa).h@。xGӛD~xM^qZmw]'4ؚRv6$Ee2v42K&VDR3$)AbMj>CV qjB[QVh ޶7pmBS[0S-dH 4GV;< \9skb"i|,f! 䖀V @^x ")@["eoQ0͸jC<=s* < /2KtB"adW#VƕYIhve=zP2Wq[CPTE0n"v6 _ ?HE|.-")N J`s(j.AײL{ӆD ^>jʢ=8Kd.¬3\s6]H,;Q~nJ,XZ yf>YRNp4%q9OX H<_1nWuRqC%UAΛkw݁hHmj;8"Jq4n1Z&?W?җ`~&z r8:mMrA_ QJBN7.9:=E7%iRMÚ;Y>I;+ +Q${_"xf%[E +UՃ%ԃLfĄ@Dfbw xJq;,.d!Y.G[Ť_CzП m``(#rR><_TC * .NUf#V 2(eqxuRb`j@'ld9?0zT/y+C!o=S4G^G,q9+Y?+mdB$_/z\QjH0%C\Ko 8.M-, dLY?F|g]B"GgGӨ8SR/B)b*@@v絛)MQ<Ѱ%@9|9\R^oԝA*XAӇǜ5VUTLki5}z_v5fãR6}UG(b>)ܽЮFG$Qs2 8Q+X㞭NKx­~wa ͞ݯF`[$Ҙ) d.XqOXS1g!E:'7 7ėc^6Y@%ד?m>0P2𱕁X 6ϑ ]z(Y ͺZǯ3;1XF<}4uNn6< Po;K3 cBYӗP;~o]S -g2+@WtO7D0,;β`rmwn$#co:uжz W~G|TZ^D/Y2=JH|ɴ WիN+ endstream endobj 1682 0 obj << /Type /Page /Contents 1683 0 R /Resources 1681 0 R /MediaBox [0 0 612 792] /Parent 1666 0 R /Annots [ 1672 0 R 1673 0 R 1674 0 R 1675 0 R 1676 0 R 1677 0 R 1678 0 R 1679 0 R ] >> endobj 1672 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [253.188 496.607 270.138 510.555] /Subtype /Link /A << /S /GoTo /D (equation.2.2) >> >> endobj 1673 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [81.583 277.867 98.533 291.814] /Subtype /Link /A << /S /GoTo /D (equation.2.3) >> >> endobj 1674 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [256.786 241.031 273.736 254.978] /Subtype /Link /A << /S /GoTo /D (equation.2.1) >> >> endobj 1675 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [329.447 103.382 346.397 117.33] /Subtype /Link /A << /S /GoTo /D (equation.2.3) >> >> endobj 1676 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [179.302 89.601 196.252 102.22] /Subtype /Link /A << /S /GoTo /D (equation.2.4) >> >> endobj 1677 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [313.315 74.491 330.265 88.438] /Subtype /Link /A << /S /GoTo /D (equation.2.4) >> >> endobj 1678 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [372.883 60.709 389.833 73.328] /Subtype /Link /A << /S /GoTo /D (equation.2.4) >> >> endobj 1679 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [273.466 45.599 290.416 59.547] /Subtype /Link /A << /S /GoTo /D (equation.2.3) >> >> endobj 1684 0 obj << /D [1682 0 R /XYZ 57.056 708.045 null] >> endobj 54 0 obj << /D [1682 0 R /XYZ 57.056 327.065 null] >> endobj 1685 0 obj << /D [1682 0 R /XYZ 261.972 216.124 null] >> endobj 1681 0 obj << /Font << /F18 1216 0 R /F52 1558 0 R /F34 1559 0 R /F49 1257 0 R /F30 1255 0 R /F38 1663 0 R /F37 1446 0 R /F32 1560 0 R /F40 1664 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1697 0 obj << /Length 2571 /Filter /FlateDecode >> stream xYKϯB %QRr&09΁-67Kk=!\,X$Hqqaenui}8n52 :S]%A;8K{ޫ"XˬmNo?K!¢ww=HީMh Wәm]`BP~=}C($]-vivqf y{`E}nmxxqiB9XZ*?L7L= <޵ 3PJ0+[׮5p[&v=Hg&,f[20 (gJEY>qHE"Iƒ\j+)BeMaMZ+аi;&XF4*oQ|w Kkk<S+SWCmsvcN}2Wܽqp]zgjLodZ#nzE#a@D1~:Ic|ߥE|n83 ?|Tx4Q2re ~zܙ7|syFe`I`huڧbEf\DH6/`zC"SoeP[M i? f}ѸI^z틬:!yrF}a2fu$|~ zbAieF]|W晀|Hg&I5&o/r9L$3ѕ6,sYB@yK0 = Ы=cGo,vWgb:[gG#KCg>h]μ[krV[\bj,5$ kex?p?32'fۋߑUG{[MG8Y߹'$SURn8K{R[҂4ۑu#2xok>;tX-\leX!4.Jw|Ao);3oRwtWօp6{f8a:QR.0:j s/ X 3gxTcg~Z#,D @̊ :Be!Iڋܩ&H(wDսuۨ@EL*:7r(q-D2aOj)l!>Ņɰ1m`:@ͻ@/'ܝ?mn3 [N"xm8?P_kۏC7O%o]zL*}ܿp endstream endobj 1696 0 obj << /Type /Page /Contents 1697 0 R /Resources 1695 0 R /MediaBox [0 0 612 792] /Parent 1666 0 R /Annots [ 1680 0 R 1686 0 R 1687 0 R 1688 0 R 1689 0 R 1690 0 R 1691 0 R 1692 0 R 1693 0 R 1694 0 R ] >> endobj 1680 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [340.45 638.306 357.4 652.254] /Subtype /Link /A << /S /GoTo /D (equation.2.3) >> >> endobj 1686 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [269.276 599.452 286.226 613.4] /Subtype /Link /A << /S /GoTo /D (equation.2.3) >> >> endobj 1687 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [266.375 488.369 283.325 502.316] /Subtype /Link /A << /S /GoTo /D (equation.2.3) >> >> endobj 1688 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [384.984 459.477 401.934 473.425] /Subtype /Link /A << /S /GoTo /D (equation.2.3) >> >> endobj 1689 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [164.233 430.585 181.183 444.533] /Subtype /Link /A << /S /GoTo /D (equation.2.3) >> >> endobj 1690 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [313.477 391.731 330.427 405.679] /Subtype /Link /A << /S /GoTo /D (equation.2.3) >> >> endobj 1691 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [310.125 320.996 327.075 334.944] /Subtype /Link /A << /S /GoTo /D (equation.2.4) >> >> endobj 1692 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [458.367 320.996 475.317 334.944] /Subtype /Link /A << /S /GoTo /D (equation.2.2) >> >> endobj 1693 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [262.778 306.55 279.728 320.498] /Subtype /Link /A << /S /GoTo /D (equation.2.1) >> >> endobj 1694 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [173.485 292.105 190.435 306.052] /Subtype /Link /A << /S /GoTo /D (equation.2.3) >> >> endobj 1698 0 obj << /D [1696 0 R /XYZ 57.056 708.045 null] >> endobj 58 0 obj << /D [1696 0 R /XYZ 57.056 246.858 null] >> endobj 1695 0 obj << /Font << /F18 1216 0 R /F34 1559 0 R /F49 1257 0 R /F30 1255 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1704 0 obj << /Length 1547 /Filter /FlateDecode >> stream xڭWMo6Q"ZHBOtݦ(AD,h؁lhf8|fyiLWJidRΤ]#~v0*~]EP$zۅcV-Hn[Vg(r✥J 4*Dݳ/ *8@mAgi>L kkh[%XIa+!wN~V5hC p=IYM{QZ-D'??xs>T\2)mD"9 *Wt,¶F5nqk#Q84J)KcI&b!WQc 1ʦC<!Sf]N+ۧђDI JcŌIt.iqTc1Gx c#4 frc!fME287%a:9`65t1\q(kyaۇ%됺IdBv(N>Oßgn=.Y],)iOwvQl#LiQ'-"Khh-,sN`XB 9f9XvS@M7{Z04i[Zf:PZ)`B5=P4Ty$ ʡd#G Pp*ii7Wa"k N΋.>,lMMaMt&a\(^hز' }U Paϐ=nK@4S1yPXT b-s)4A=}VLq<9M`V.}?׾]r[ E)md윞bCTH+ lXE`o\4 0 bygZFK}roIuZ+<~GmW( h4" еd؏Uu_Qw.KłÑ zL8Tdi,70hB,7v D75无6 O.3c`eLYdvM ah<۝<>nmnYKaOL><5ރ5L"DsZ"8f c {;9n7r;SN|E@b"*ͱVzSsC @9vuYQք).^1˾e'Ǻe[0B]ǀS\sv^<}} so HH Fڹ}ғ-~I~^K$`;iiw(rfy*N8 kk(N =zn=M]/#M'5yg4+<>ϭD9]:b+dn,{\8&ިRO*]isOPrFrK@4{) |[4hu8@u>{WfunwOkfAD(b͸pF!/Oó4 endstream endobj 1703 0 obj << /Type /Page /Contents 1704 0 R /Resources 1702 0 R /MediaBox [0 0 612 792] /Parent 1666 0 R /Annots [ 1699 0 R 1700 0 R 1701 0 R ] >> endobj 1699 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [115.24 469.606 123.086 482.225] /Subtype /Link /A << /S /GoTo /D (chapter.9) >> >> endobj 1700 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [201.3 301.602 218.25 315.55] /Subtype /Link /A << /S /GoTo /D (section.9.2) >> >> endobj 1701 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [489.762 192.379 503.46 205.33] /Subtype /Link /A << /S /GoTo /D (chapter.10) >> >> endobj 1705 0 obj << /D [1703 0 R /XYZ 57.056 708.045 null] >> endobj 62 0 obj << /D [1703 0 R /XYZ 57.056 683.138 null] >> endobj 66 0 obj << /D [1703 0 R /XYZ 57.056 452.586 null] >> endobj 70 0 obj << /D [1703 0 R /XYZ 57.056 255.691 null] >> endobj 1702 0 obj << /Font << /F30 1255 0 R /F18 1216 0 R /F49 1257 0 R /F52 1558 0 R /F37 1446 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1716 0 obj << /Length 2275 /Filter /FlateDecode >> stream xYKsFWr7dx,Y[L9ʢrsɡ]%%>%ʑS{̠ɷW?]z"™GőUQ1bq4"Fc( n*]*XD*Xl,> 1F8rGc+hͶ܌< ʜbat6i- PQ,yerp2 'hBbZD%㒄Z qR$Z/ J"x!}@ hY}6w[;#X(!ʅxHQ;7gC(NFP (Qbݵec$Q`[:zOT!Fm_$( ЮOp{a_YL8U/$MsM6&\Էe~3Y^&kWex?mL?XX|Tv Wl^pŦ w=Ŧc9fJDc@EMɋ|ۺ̦78Ą8k(~0ekҴ!XX3}cbk0%P?vYFD>O}XF L?޼:0ɠl4$_Fϴ+mOfXv®0_ā#Veʶ k5w i}kmxWpr~c|Y= +0&xȔsfVi~MomSy 9j0_ʬ{ס|pD5hx^cgD^QMSP4;vTz4|QS&ۨ*'>иFI_r\B6=L& /乙~Cᖏ4QᙍӄJ4ܪ6,Fpt:ژs3+_pxn*۩Yh>mNzS I&O3yO*ZqþREkY'k^m6OM .GD   @ NBxw0,;Xc㳭:X<nedbv%ɞi+48&-ӵb=:ŋpn<b<˩S9k!Niq^ f endstream endobj 1715 0 obj << /Type /Page /Contents 1716 0 R /Resources 1714 0 R /MediaBox [0 0 612 792] /Parent 1666 0 R /Annots [ 1706 0 R 1707 0 R 1708 0 R 1709 0 R 1710 0 R 1711 0 R 1712 0 R 1713 0 R ] >> endobj 1706 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [285.378 614.569 302.328 628.516] /Subtype /Link /A << /S /GoTo /D (equation.2.1) >> >> endobj 1707 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [316.594 614.569 333.544 628.516] /Subtype /Link /A << /S /GoTo /D (equation.2.2) >> >> endobj 1708 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [362.117 614.569 379.067 628.516] /Subtype /Link /A << /S /GoTo /D (equation.2.3) >> >> endobj 1709 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [378.018 590.423 415.779 604.371] /Subtype /Link /A << /S /GoTo /D (subsection.10.8.10) >> >> endobj 1710 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [189.246 561.532 221.154 575.479] /Subtype /Link /A << /S /GoTo /D (subsection.10.2.1) >> >> endobj 1711 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [89.877 547.086 106.827 561.034] /Subtype /Link /A << /S /GoTo /D (equation.2.1) >> >> endobj 1712 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [132.149 547.086 149.099 561.034] /Subtype /Link /A << /S /GoTo /D (equation.2.2) >> >> endobj 1713 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [176.041 228.73 207.949 241.349] /Subtype /Link /A << /S /GoTo /D (subsection.10.2.5) >> >> endobj 1717 0 obj << /D [1715 0 R /XYZ 57.056 708.045 null] >> endobj 74 0 obj << /D [1715 0 R /XYZ 57.056 683.138 null] >> endobj 78 0 obj << /D [1715 0 R /XYZ 57.056 292.374 null] >> endobj 1714 0 obj << /Font << /F30 1255 0 R /F18 1216 0 R /F49 1257 0 R /F37 1446 0 R /F34 1559 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1720 0 obj << /Length 323 /Filter /FlateDecode >> stream xڭQAN0>j7^'PU(Ej(IMR=p[͎gg7dB&%"dhc 2X O|)D@qBOY m>FjM&Hq+$ybZyNQhWʜ tn>ʫf" x?N=2]AzM 2 4 P [}>5͛=Ե+̣DŽY<_l"anCy|YCG Ir8p<(480UF_.SpS*ʺFЀ--x|DVP"|e3 endstream endobj 1719 0 obj << /Type /Page /Contents 1720 0 R /Resources 1718 0 R /MediaBox [0 0 612 792] /Parent 1722 0 R >> endobj 1721 0 obj << /D [1719 0 R /XYZ 57.056 708.045 null] >> endobj 1718 0 obj << /Font << /F30 1255 0 R /F18 1216 0 R /F49 1257 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1730 0 obj << /Length 1857 /Filter /FlateDecode >> stream xڵXM6r+D 6Ei=$9вVkI$w;!eQͶ=~pѯVWׯe:jE* TYEÛ9EXT q44c]-xAfzZ cO3Ȣ,/p~7wקbL</,?J|0Ä o m}Q۩9?6O\C]R˽ztmFkB _(7D8NN`ÚvRLf~ݘZdmpIJFdiρ 4x} dyH?gJ`]כ&Ώmk i ~dB aO,E?@Ro_*8(Ɔ8Qe:xoV[VӺY>^pG4hDIښZje:U.OH̅4B7K& Ҧ>4Fp4Dn(:L =&SͅG`ޚS!*?N*8ـsغÜ!6ԚGb 1d0;ѮKx >Y )*`Ws)񷐈O΂u/!$lIɵcByj]^5y endstream endobj 1729 0 obj << /Type /Page /Contents 1730 0 R /Resources 1728 0 R /MediaBox [0 0 612 792] /Parent 1722 0 R /Annots [ 1723 0 R 1724 0 R 1725 0 R ] >> endobj 1723 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [95.837 218.46 103.683 231.079] /Subtype /Link /A << /S /GoTo /D (chapter.5) >> >> endobj 1724 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [265.697 116.675 396.88 130.623] /Subtype/Link/A<> >> endobj 1725 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [112.639 102.561 397.62 115.513] /Subtype/Link/A<> >> endobj 1731 0 obj << /D [1729 0 R /XYZ 57.056 708.045 null] >> endobj 82 0 obj << /D [1729 0 R /XYZ 57.056 683.138 null] >> endobj 86 0 obj << /D [1729 0 R /XYZ 57.056 471.93 null] >> endobj 90 0 obj << /D [1729 0 R /XYZ 57.056 275.463 null] >> endobj 1728 0 obj << /Font << /F30 1255 0 R /F18 1216 0 R /F57 1732 0 R /F49 1257 0 R /F52 1558 0 R /F58 1733 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1752 0 obj << /Length 2940 /Filter /FlateDecode >> stream xڝYYoH~ϯ6`d3݉}H@KE,M*$~P1v .VUBBWUUtK·Wiz V0q_/Nެ|C=B:ZכW|ҡJTnv04E*v)rcW_~=WkwOݾ( ?>l7"Zda7r+k`^:߼aN2_xܟ\,y:sÅwOMqFJo!&\Ȼ~_7oQ>늺RK7@Ux˛l7ue~* _ڇa诧x- E'+Up#x+*rwbMvү.ӡPw>J ڠa&Q^L8XLj%M}蘡ASYfn5pPE_Ut;'t 6=lU[ylcCh<\<&tSADN8(jYFt Nюw.P*X¯SE, dGPGҫ#&u0CQ<=|q|84yDX?+.Czỳ:Lml }FຏW@ eo{wUqT%j4mfeRLwd<5E^m"oؤxk;`]A - =Jdyk%Uad{nMNLLC#дE|{q ɭks %s~O3RAb.:Ld5(ޤIm! ŧ_ EhyVT'wuYHHjqہެ9C{I inaS 2g=l܇#ɦ>*WnɃn"琠8(K XV]>OvK$Pyn.VUuс a w5)81xk /gB@9rs,3I&8p\oiw EVH~OIFGA@RW90i|gϡd@P-rR4΂Kr&bsFM\E2x>N@%UvF;M%_8P '٬s$[Kߡ , 8px }B8ȵᗴC8 B'pS!~*ypX ZzԏH#`""j ", D!APa4@?d?Ბ6\H0`";E,1PG*l3 NE ϙ$6ΐ1o4L$Õd *:1 -]q5kߵWlJ'Aɦ*$G> kZ_샷)KBr&+8u*i; 7Q?mAX'C)p068UɭFR:}sܩ\2gLb$(xaGF4L>]q*\^IK:IqCu S)gje}Vh.8mͩ4QI0HG6*AY-)hR\!~)dդ8ĩ%Pk+Eo]w|Gd`j{Ϳc,,&lX*A989Ps#Hф{6`=T¼_T 18gYu1|iJ rQy*ƜFD>bD2$2)6 g؞g(#rp |RJLR KYШRcvPށIsc^oK4ڹjOyD@n@h:P.w%*WG^%3UlN$#-⸿]Er4 1͡iM| ɣO?K.U?!*= SPcg.5:ۢG ~?MMfbp5 X0858DOgDJ|XFJj `0 GOǖ^5`XwP>º/E 9cϭڥbNܤ楅 G]0[ ñ@;-6>aa<}F}91rBsp%l \$)A&lh;R!d[^dsI(1eX% mQm79tYHW#LwQ qtsq8|<0aS[> endobj 1726 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [418.02 516.845 434.97 530.793] /Subtype /Link /A << /S /GoTo /D (section.1.1) >> >> endobj 1727 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [234.127 487.953 383.766 501.901] /Subtype/Link/A<> >> endobj 1734 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [397.364 430.17 414.314 444.118] /Subtype /Link /A << /S /GoTo /D (table.4.1) >> >> endobj 1735 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [148.766 358.605 165.716 371.225] /Subtype /Link /A << /S /GoTo /D (section.4.3) >> >> endobj 1736 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [233.928 358.605 250.878 371.225] /Subtype /Link /A << /S /GoTo /D (section.4.5) >> >> endobj 1737 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [368.644 329.714 385.595 342.333] /Subtype /Link /A << /S /GoTo /D (section.4.6) >> >> endobj 1744 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [96.904 220.158 119.707 232.777] /Subtype /Link /A << /S /GoTo /D (section.12.8) >> >> endobj 1745 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [284.629 220.158 301.579 232.777] /Subtype /Link /A << /S /GoTo /D (table.4.2) >> >> endobj 1746 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [92.964 191.266 109.914 203.753] /Subtype /Link /A << /S /GoTo /D (figure.4.2) >> >> endobj 1747 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [100.967 161.71 132.875 175.658] /Subtype /Link /A << /S /GoTo /D (subsection.4.14.6) >> >> endobj 1748 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [299.294 147.264 331.202 161.212] /Subtype /Link /A << /S /GoTo /D (subsection.4.14.1) >> >> endobj 1749 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [211.229 61.254 219.075 73.873] /Subtype /Link /A << /S /GoTo /D (chapter.5) >> >> endobj 1753 0 obj << /D [1751 0 R /XYZ 57.056 708.045 null] >> endobj 1754 0 obj << /D [1751 0 R /XYZ 166.297 569.481 null] >> endobj 94 0 obj << /D [1751 0 R /XYZ 57.056 298.248 null] >> endobj 1750 0 obj << /Font << /F57 1732 0 R /F18 1216 0 R /F49 1257 0 R /F50 1258 0 R /F30 1255 0 R /F52 1558 0 R /F58 1733 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1760 0 obj << /Length 1934 /Filter /FlateDecode >> stream xڭZK6 ϯzJZ(ę5Yz"͏H(VDj\!jw|o+JDfWǕaB\y݋5%5nIqoc$S+`^4l_~srDgXyEt%$R}W5Č`0*g2ML#cňի,"C`$my\{-e0zchw&ߑD]ۤP.dx}y5>g䆭g]@ܡM VH{*e6f5]H>L㶄=p z#աT*JR@ ެ}i}(rK! 8?7/` 'o:`쮂d|e[(-Q4:4(e\Vmp3UǤC͔#lmAe6`y7PvF&_v?V_GOM[PpPu]71.NyY;wvۢ,"o_ XYt)o|$ZWЉL> y Pׅ+1_Dz:\ g=Ꚋ5=` s#Q4aQE$wf&L%6 >e{y Sǭ/*/-°?.Ԕ&(wI(45cMJ sB2JdN:cb,9UѹK$%<3(R;VEsL-] f暰[o]}0wC7Hz>by+Q6y1!p#0x 1`Մ=]+-~Υ;TEp;@HgK̲f0g f@l.CCU>.Pt1Ԁ5x@J{ʯ-d@ہ,,vd'?6-cb4 F$eFྜྷk0m^Wt܄ǁ6WwW~T8?]ٓ޵nPn1IW~0l$ ;YF\FǕ0H'etBJ`LuDW3Ƨo8EyFGQݦu@5Fv]|vF6vhG~&_O2vVd 3!NRL2XͻhcɳH2ؙhsp&5֠ODR]rNGFpԌِ)ةk`Eht54}Y6k6ח1E\$y<1*LkIx (EL u{y4j)^#.4K oh c U-|{\>AS()L|scQe!~2)> fCA7$"Dđ"-SyRDᓆRGזn;K#~f4z&ۃv[?@N-I/E.R`@ +> !? e 'MF1f~%ANj ̄G zlǩm å`\Mg4b7㚌ϔ& $$k,,.c16h 叟\xp4"1Q%n:cM endstream endobj 1759 0 obj << /Type /Page /Contents 1760 0 R /Resources 1758 0 R /MediaBox [0 0 612 792] /Parent 1722 0 R /Annots [ 1738 0 R 1739 0 R 1740 0 R 1741 0 R 1742 0 R 1743 0 R ] >> endobj 1738 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [468.141 593.675 485.092 606.294] /Subtype /Link /A << /S /GoTo /D (section.4.3) >> >> endobj 1739 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [472.759 576.672 489.709 589.292] /Subtype /Link /A << /S /GoTo /D (section.4.5) >> >> endobj 1740 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [500.493 559.669 523.296 572.289] /Subtype /Link /A << /S /GoTo /D (figure.4.14) >> >> endobj 1741 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [331.832 530.545 354.635 540.242] /Subtype /Link /A << /S /GoTo /D (figure.4.15) >> >> endobj 1742 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [331.832 501.421 354.635 511.118] /Subtype /Link /A << /S /GoTo /D (figure.4.18) >> >> endobj 1743 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [380.281 397.279 403.085 407.573] /Subtype /Link /A << /S /GoTo /D (section.12.8) >> >> endobj 1761 0 obj << /D [1759 0 R /XYZ 57.056 708.045 null] >> endobj 1755 0 obj << /D [1759 0 R /XYZ 184.095 124.468 null] >> endobj 1758 0 obj << /Font << /F18 1216 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1767 0 obj << /Length 1482 /Filter /FlateDecode >> stream xڵXmoH_aK]ѥRJSR] `Ę67]%A<8~>B:'RGӇF,PrAp?ruT!$ܤfsĹ*>G RjN8p$CqGJ}{&^S!|t.S ,?: X?kQ턗7up>ck p|Fwa)Ymp~k\;-hyJ|(>5O lYOc H)u`&S_cB_[&L#9asjm˚=+7sv!&Kq .꾃+~&aц^6L,%,M3>v<[I:ٲ?OWdNw^I1u[ =鉟fQdv4m OicV|oI#qmj_[1Z[d(ռ$´tw<#+wywGiV qJ(q%6uy/KTs6%SXA&f60sLp4E*{H1,wabgGգB*cyYj` zoyf{<4.*yy<S; ̐P.n{[œrDOZg½i>6TMa.8V' B9o8c""Esջ A!0bL6cYgOG)D y@bwP#]Vy)P:9 Dͭ z"A5yo7sC}ceHp UT8b}19b> xgd^2͜a<[cO^qXJc9QҋilŃJ>r7IA8.wrd$eZy+q'K(^]jmʭNR^u!d4nخ 6A8OlR~jYUsH@\AE㞺;֪G# xbnW-llN[-~af݅sl[n(kO(Z=JxL`x(iۛٝvjCWԻ'01À eSa&bX/L /\J *Z#\esXvZ>+Ŋ9v9:FnPYL 0FDs$`ky&i7|JjgDT+~4}X[}Hjޣ\Lwھ$1#\B+?MLt+.B)m|j=&t\䌖_h 'y6ؙ7Ʃ۷Ḃ5"VxZuk^*0QƠ lmnjQڷǺ(]pb}$o]-{Y9?2zFN'`AU,4h endstream endobj 1766 0 obj << /Type /Page /Contents 1767 0 R /Resources 1765 0 R /MediaBox [0 0 612 792] /Parent 1722 0 R >> endobj 1768 0 obj << /D [1766 0 R /XYZ 57.056 708.045 null] >> endobj 1756 0 obj << /D [1766 0 R /XYZ 259.183 563.492 null] >> endobj 1757 0 obj << /D [1766 0 R /XYZ 121.144 77.076 null] >> endobj 1765 0 obj << /Font << /F18 1216 0 R /F49 1257 0 R /F50 1258 0 R /F57 1732 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1781 0 obj << /Length 2813 /Filter /FlateDecode >> stream xڭZo6_*@H[=mc+[J%{;!ȱ"iÙq8O7>7w c7" 7o2b..v V.aKW$rf1i,4Bgc20Qm@(XȘC"WLA e 9 d;(( дݵx춺۵KPޥض}7ԯ۶%+yiKK_S)HrU=Z׹fN)#brY5 (rX`¨rs|~Yp znZ/^'4]{@P` mʃnׁG2A7,;\`e]ִ&`m^ c-z)q96<`%YPuucwud><@ٶatn|*0_K.z[mU"nf-WFBQx$_XfLo~ms QR{hpwLm۾.1\.{z$vC+fیiܳ=E`-}lޔFdWL`TM~}@-QLشݖL?6>OS($D`iq0\N0S!Zq6m7V2ȧ&=ErU80M3h_2AԲ23)Y:&xeJ,ƥ\-Uf 2 :GNuKԓ,}"1hw!%?LzIT0MT &V y4DQVd&$ZX^szF4vۗ/ͶDĸ$6l}FhأIc g ѹ 54v+~vMQ?orfXj0ఔzV}bG8 W NP I ,2=X%C ѹPYuDiU E~G\CS50Xx˩PJ68ۖuBŦYSa;jH~bϿ~REm>V]Q&1pă'*/!gaRч cpUHq=unBAU3Ş{sq)Z9ݹB24O$R1 /MIՇBa"ˬM82 g,H'*C]JrOW G%3h>@p( LBT^yf\1] ^"o`%Q }Rc·#UH_ I70z=F'_@Y&Tޅ|@<s] 3E]F܎c)i4LJ?u6.Ti05#sg撊Id`匋c8*|`5%OҊ>-Cb1t1_G!,">+ b4ʡJzmo1'3 kT ;~BUʃ0xe8o~K̙l0-@TviV54OH&`$74Ǫ!z W"<&LI)XR+ KBIHlnSO!Mgí:xA5[}644JJ1>Ur,(wcyZB/`3gy# x*ϝȾN,*k>$b SF20~i-uT!em %(X< |YOȳ~V<3Ak7 > ZRpCJ+%Tx8a`B3(2}Z#Hi#z׸>}RigqXLw#ma R^ 1SbL .8G&,WB"aƹ,TBIφ%艙Whh$Q.뜉pBvI7N4A!d؜3퀊1̊"L|Irg1Qi#~?LbsBpVp`۪ؖpt ^}OeI]bFǀvu> b}yF> endobj 1769 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [213.209 652.752 245.116 666.7] /Subtype /Link /A << /S /GoTo /D (subsection.4.14.1) >> >> endobj 1770 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [112.172 566.741 129.122 579.361] /Subtype /Link /A << /S /GoTo /D (figure.4.2) >> >> endobj 1771 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [449.555 551.631 457.401 565.579] /Subtype /Link /A << /S /GoTo /D (chapter.3) >> >> endobj 1772 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [121.693 522.74 129.538 536.687] /Subtype /Link /A << /S /GoTo /D (chapter.6) >> >> endobj 1773 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [356.932 522.74 379.735 536.687] /Subtype /Link /A << /S /GoTo /D (section.20.2) >> >> endobj 1774 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [445.275 451.175 462.225 463.794] /Subtype /Link /A << /S /GoTo /D (table.4.3) >> >> endobj 1775 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [377.963 241.096 394.913 253.715] /Subtype /Link /A << /S /GoTo /D (table.4.3) >> >> endobj 1776 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [93.031 197.759 109.981 210.378] /Subtype /Link /A << /S /GoTo /D (figure.4.3) >> >> endobj 1777 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [390.995 197.759 407.945 210.378] /Subtype /Link /A << /S /GoTo /D (figure.4.4) >> >> endobj 1778 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [229.884 168.867 246.834 181.486] /Subtype /Link /A << /S /GoTo /D (figure.4.5) >> >> endobj 1782 0 obj << /D [1780 0 R /XYZ 57.056 708.045 null] >> endobj 1783 0 obj << /D [1780 0 R /XYZ 114.132 329.099 null] >> endobj 1784 0 obj << /D [1780 0 R /XYZ 253.525 67.842 null] >> endobj 1779 0 obj << /Font << /F52 1558 0 R /F18 1216 0 R /F49 1257 0 R /F50 1258 0 R /F57 1732 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1799 0 obj << /Length 1948 /Filter /FlateDecode >> stream xڵXK6anH`Lv3YIsJr`[rOEɲ[$b,FF d%deVBzI޿DFGrˆ<נwǛnd謈TkB(MDfT{G2ER)RR e(I1=lw?=՝Q&vv|=]ӏo_Nja҂8uuS?Uɛof&"yIϯ\JaֻE( $-2/e To{N,NE.&.O~l|\jK"ӕwek~[2s{E_K=O"2U{L6BO 9Wi=3 'M2uZp/dHE]ʅ*H+-And 4Pvj.|_{xENJƴu-4ˊw2zMyHuvMXv| N2 z!mHopMnb=.Pu!XvEN˜4DcbǎHR@ֹ}j= Ra`r"ר"]L/ɹ"!)w;۷4VJ n-$ϿusS5)a} I ^jՍIGN |PC'q+xannCM!r|j= !i|.Ì3󽐐)r{뫕B&4%=/4 /oT05l-}uS k*΁OݺS-φɗ嵷\v/@SۓcP'`g /nBzGG5p Ǫ P?>ԶXhnZr=IDY)Y)xau'MmuZSP?c"g"4v \A$F1DžT5Qp*Ir闋 wtVLLYT!\㲽3*EWEu,~iAօ;pXxƱpqcyeAQaP´n6*Xo.k*FC6ETxfDrn_UjZK!,!̼oeaTO6]"PHDy]zEsj?Mrm`vnk*HuÅcdcm嫰'Die<뫒WQ."`!jaSLȃ5S5l7<56徑TL.TYd><},61`mt.m wL',~56|/B TdG:L_a*}@+=Z}'>+P|ɤ0}+Lr19囹7ۆ~ὄV$hd"`Iuz/͵Wv*dj# w3= .5WU 68|"_"חkMLa,:UR64aXR u=/o*f'6LGvIKw:ub;uv{FDs [Ɣ蚡] ܰv53gC&rwcU/K1+4i&y I+Q*k|UEFIT$1"?St__Exu~*FK# Ń1c9Ύ%%to)@:rZ^N1LD&K'K9 pi2ǟ OYC0ΓBs=Ԧ$1#LG^oPP3IdږORF޴4x3;v̨#_b[+}6isi!3F?OsJz:_\\6 endstream endobj 1798 0 obj << /Type /Page /Contents 1799 0 R /Resources 1797 0 R /MediaBox [0 0 612 792] /Parent 1802 0 R /Annots [ 1787 0 R 1788 0 R 1789 0 R 1790 0 R 1791 0 R 1793 0 R 1794 0 R ] >> endobj 1787 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [96.334 356.488 113.284 369.108] /Subtype /Link /A << /S /GoTo /D (section.4.3) >> >> endobj 1788 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [97.611 313.151 114.561 325.77] /Subtype /Link /A << /S /GoTo /D (section.4.3) >> >> endobj 1789 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [213.713 298.705 230.663 311.324] /Subtype /Link /A << /S /GoTo /D (figure.4.2) >> >> endobj 1790 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [108.04 284.259 124.99 296.878] /Subtype /Link /A << /S /GoTo /D (figure.4.6) >> >> endobj 1791 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [92.964 269.813 109.914 282.433] /Subtype /Link /A << /S /GoTo /D (figure.4.7) >> >> endobj 1793 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [260.364 151.021 277.314 163.641] /Subtype /Link /A << /S /GoTo /D (figure.4.2) >> >> endobj 1794 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [113.708 55.745 130.658 68.364] /Subtype /Link /A << /S /GoTo /D (section.4.3) >> >> endobj 1800 0 obj << /D [1798 0 R /XYZ 57.056 708.045 null] >> endobj 1785 0 obj << /D [1798 0 R /XYZ 239.998 622.163 null] >> endobj 1786 0 obj << /D [1798 0 R /XYZ 187.614 532.462 null] >> endobj 98 0 obj << /D [1798 0 R /XYZ 57.056 405.687 null] >> endobj 1801 0 obj << /D [1798 0 R /XYZ 116.673 168.788 null] >> endobj 102 0 obj << /D [1798 0 R /XYZ 57.056 104.944 null] >> endobj 1797 0 obj << /Font << /F57 1732 0 R /F18 1216 0 R /F49 1257 0 R /F30 1255 0 R /F50 1258 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1811 0 obj << /Length 1854 /Filter /FlateDecode >> stream xڵWݓ۶P̸3vƙIǭ][76$$6)t׿%ӱm,>  ,ʃ_`g",8{cu,"`]ovi#V:P2L(PyX2y`}d:T(zi4 k)lՋ_`#XJ% Hyn<92ѷv-|ݐ)kC]QW/@n^uvZ"3=4}Eb8k7}}z,[!ՕWk}߸ݗqU.ꓫ'޽vH(Ez6h:Gئ[aWQzZfy;a|dRhH]3KX2RBE٫X,6^݇. x,,FD2"ӧgdko޳1$Ԅ)gRf$و)1+&fh|=Yz4~f͕gj5**f6b\ם-ѱH\YF˙.h4͛d8Y}t=QG"~x A%7&i !& L <.*B-0TEKy"NGZEK9\}wa|.|C㰾̴x ϑ%Vi˝h3+bR')TKאV;, -%X<&)Q&;-CSxNW;}GZ GI>QG-./Pݩ0G-nRv #ضi$|eێ0[iQ#F,"sQj=55Fx_Dz p==zgs,e4tV<͠OCfBaHғ}rpC !%4 mnX=@3mր Jb? ђ}0@;[=۾79?<ɏ04ƣ mN\HO]wn:+f?92e  ,9\nKi'ik_ڹv=>tvڕ LFc ~J+\g1P\Dz_`GYp|sJJȺ6hLm]/C4Q4sSN1-܎ *v#+9uYlǎl-uA`<T#O [S<4@""b7j T5@]n[>uD-m?PWXL\*L7ıP&0?|`W)+i(U,/h%RtI3jiwj\˗zSV,66;\ /7Crj>y{L\#i<`[ZpW8VQk{ `cyӚG+öl8@tfTk#+HrG1HLL56 cNC&>tD`v& .E@*Р&@\ N,lZRgrgZp,Y٣+M9A :F%$ g73}J6Mzp'cB4*OQ|MuA> endobj 1795 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [202.433 187.472 333.616 201.42] /Subtype/Link/A<> >> endobj 1796 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [387.76 173.69 404.71 186.31] /Subtype /Link /A << /S /GoTo /D (figure.4.8) >> >> endobj 1804 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [358.79 159.244 375.74 171.864] /Subtype /Link /A << /S /GoTo /D (figure.4.9) >> >> endobj 1805 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [183.782 144.799 200.732 157.418] /Subtype /Link /A << /S /GoTo /D (figure.4.2) >> >> endobj 1806 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [448.972 144.799 465.922 157.418] /Subtype /Link /A << /S /GoTo /D (section.4.3) >> >> endobj 1807 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [164.82 101.461 172.665 114.08] /Subtype /Link /A << /S /GoTo /D (chapter.5) >> >> endobj 1808 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [239.995 72.237 256.945 85.189] /Subtype /Link /A << /S /GoTo /D (figure.4.9) >> >> endobj 1812 0 obj << /D [1810 0 R /XYZ 57.056 708.045 null] >> endobj 1803 0 obj << /D [1810 0 R /XYZ 117.433 297.891 null] >> endobj 1809 0 obj << /Font << /F57 1732 0 R /F18 1216 0 R /F50 1258 0 R /F49 1257 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1817 0 obj << /Length 809 /Filter /FlateDecode >> stream xڭU[o0~ϯؤ$j vd@udQfи9MA{j>8wΓiunKD9 ƿޝiC > >aRLO,uD8{FXT{)}UvdŕJQ{uv&%؃hfGoM!4fJyy3JI1ET!JHnE87U%% tϟrO>zk/[$}6Ez5g95tD%raa69X(u+!5IVȬ0d[ ű*oH= 3SP2C)J,+eY;Ғğb,UT endstream endobj 1816 0 obj << /Type /Page /Contents 1817 0 R /Resources 1815 0 R /MediaBox [0 0 612 792] /Parent 1802 0 R >> endobj 1818 0 obj << /D [1816 0 R /XYZ 57.056 708.045 null] >> endobj 1813 0 obj << /D [1816 0 R /XYZ 118.337 325.777 null] >> endobj 1814 0 obj << /D [1816 0 R /XYZ 202.124 104.409 null] >> endobj 1815 0 obj << /Font << /F57 1732 0 R /F18 1216 0 R /F50 1258 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1826 0 obj << /Length 2804 /Filter /FlateDecode >> stream xڭYK۸ϯPS` A|c]Ԗ-l(3X"x/!Q$x4F?^^V*6ZޭlBT+X} UWQmoˮ"V]ϭN&[nۼf.{ƞwWMݩXfӴEUoCb<Zi"'ɒ銆{Sԍzȑە X˓(7ۜ{8ia'nZ`i˼/ \z{ jWzmȮ.>} W+#QVQKrLi#&@&JDZ0yeӕUfBL&[%ڒҵl?oϡ /_~ _=حQLւr;*NY?Q3Ygn}=gHMSK9Lw,eLi[~K ~~x'6mbȼq+{ Ġ]$ {-`R!$RTK#`b&N䌊Fl?OYQ;H9'$ق<#iM3ڟ Uf#>R+ZR`e)O PI8ϸ@NId- CrK,T6$㈓\0O⾎gw NeD 5QՆ3 F8Gacd@A :רl z@$ _HL+!P'lhA lP,Z`SIp w7x{9Uxة4Qe ,9 7p3GE7THck _9v6o1 Ց&Įsd*pnybcS\8,F@. *[XċH vL=:ţ5g,`AEٕ*m!M6l0_߿a}acu nZ3X5m";)F!G[(d2VN<;,( V+5@=$@2ec8dAE[J"me'q*ʹ68byJv|c6  *F*/,F@yheB=[.Osb2rh c¾ 6$YW&(tyKV**S K%نU.!DF~19\&1)-\((-äj CRH{FStO=q./0,GKQ< fsʠ b;c6nBr-0$  .".Cl^@ D끆 , Ka@T@.hdkNRp;VpgقB d&Jd3 ؼwQNY+W\3Y4pS6<1'j+6JvɼC}jW钏E1IG7&P}9 O D+,z|=$Ԇ2*qCH((SiMP;fj*Mc\bpQAfGO/} حt> endobj 1819 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [449.309 296.716 466.259 309.336] /Subtype /Link /A << /S /GoTo /D (figure.4.8) >> >> endobj 1820 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [285.491 209.377 317.398 223.325] /Subtype /Link /A << /S /GoTo /D (subsection.10.8.4) >> >> endobj 1821 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [286.954 194.931 318.862 208.879] /Subtype /Link /A << /S /GoTo /D (subsection.10.3.1) >> >> endobj 1822 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [228.669 137.812 251.473 150.432] /Subtype /Link /A << /S /GoTo /D (figure.4.10) >> >> endobj 1823 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [355.871 50.473 387.779 64.421] /Subtype /Link /A << /S /GoTo /D (subsection.10.5.1) >> >> endobj 1827 0 obj << /D [1825 0 R /XYZ 57.056 708.045 null] >> endobj 1828 0 obj << /D [1825 0 R /XYZ 198.222 429.552 null] >> endobj 1824 0 obj << /Font << /F18 1216 0 R /F49 1257 0 R /F57 1732 0 R /F50 1258 0 R /F52 1558 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1840 0 obj << /Length 3026 /Filter /FlateDecode >> stream xڭَF_!%dİ/" Oq(3bL2﷮!Sc/nVWUy};m 3a0r&NTR?l vM:傟a'_x94 3m67>~֨,~at}^4slj^ʮgh\4 J/>4ӍN񋀐|+u vʆh״Xt!fmnuǡWRfJǡgTa!0\ZIhx ZE@4 Ґ%S+[Z^; " Lk{M7[kXS3Ѧ"z/^Mc#f K$QpWyrMujأO qE&qy!qL5o=&f1SY:i!.Ҧbsԗm Utzs+ D6 4@Ifz_md扶6*2 ͻW^ If&ڽ$'(^p (S( ~@EzGQQ?ETk2*:# w ׶ Ƨ-~})>B/oQQ\”Me6.Z|ڂU0P]p?(9o{5~Q8Wg?y?x˻}[;Va ou l-tu6rֹ+}nx,>q0A#MQ6h o889w U+]sllMן[޲/:O\(D:-Zx qlөL'K~D9*gf~䊊qÑ csWu|jG@ȩ*d^9ekdhD"oI>gwS -hA_qKq$P!f| bs+> fyOE1 Bچe5 p\%:'fKxxUѣab‹ _DE,V'ۣC-K cgFA aD\u8&D6&P8 38iBpQw, .JAjjTp U Vw2B#t:8G{f`2ؕC !]-eC+rw"L1څׄ&,dzaJrO(cOhp\!4a4}wN9 c nKKŗr$d (q( iS0܋v 1*ᄂ!9dK)1ZA<:;y/7?~Wch+KE]\bQP}dJt)Qv(>2^𡸁|E2Ux ҇zw#X2'r^Y&Ѩ◉%3j>:g͒ K^¯~ e 7,/r`/yR Y(e;t<>>agLHF=iy"q^\/dK]RHèKT[F mg' QgǙa2PEcO# e9\K,ģTMZaf%#]Ey} -/4ThP8:_Te߆Law5g*34QŮ!? ;8xji3;X*ϱUj|ڜ]YS%(}V7 r$a'Iak!_G33:B쩡Za „EvkfHSa!eM(NF> ?؎ܖ: YTn*_?$N(|mc4T bak{ *l-/7#.RE煰1>f!@%<xewË9O?88-sVXx#Հ ;>q.8D"Ot{ewkBXd&l96ͰnJ9BI#`"?`Xs*`Bv R8XteXt0{5F䠵 TM៕J 4&Y9|@.`F(9 ,El-{0S_kQ j.3S'6: &itш*"1y(։ 'š$.<'(|i[Smz\!ڹ GPm=QOϋ*q#]5`2՛;=JDk~5B5[^ e0%}VʶNP DD pkI#abXKȭ}PvS^0 OTrvD xREj#$]g "i^yCܫdCJyC5I<`F1%I.#x2/L<|v1 _(uo[|~,] MV,̌|zU.7C=jM9f"Mhqf_eL@P$w T2fa)fa)֣ ņŜD axA?}91F .BJ jr U[cI1.%nleHչxt3 Dbo(:o +@9 ]y7a.ؙ ,NbJob#=/7>ڲnqe z!q ZML)Ʀe; _ tx{(N 15Gz!koB3 endstream endobj 1839 0 obj << /Type /Page /Contents 1840 0 R /Resources 1838 0 R /MediaBox [0 0 612 792] /Parent 1802 0 R /Annots [ 1829 0 R 1830 0 R 1831 0 R 1832 0 R 1833 0 R 1834 0 R 1835 0 R 1836 0 R ] >> endobj 1829 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [354.764 477.339 377.567 489.958] /Subtype /Link /A << /S /GoTo /D (figure.4.11) >> >> endobj 1830 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [423.321 447.783 455.229 461.731] /Subtype /Link /A << /S /GoTo /D (subsection.4.14.1) >> >> endobj 1831 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [99.633 419.556 116.583 432.175] /Subtype /Link /A << /S /GoTo /D (table.4.3) >> >> endobj 1832 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [318.78 390.664 341.583 403.284] /Subtype /Link /A << /S /GoTo /D (figure.4.11) >> >> endobj 1833 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [423.851 375.554 455.759 389.502] /Subtype /Link /A << /S /GoTo /D (subsection.4.14.2) >> >> endobj 1834 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [92.964 275.098 115.767 287.584] /Subtype /Link /A << /S /GoTo /D (figure.4.12) >> >> endobj 1835 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [504.066 159.531 526.869 172.15] /Subtype /Link /A << /S /GoTo /D (figure.4.13) >> >> endobj 1836 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [160.551 64.421 177.501 77.04] /Subtype /Link /A << /S /GoTo /D (figure.4.8) >> >> endobj 1841 0 obj << /D [1839 0 R /XYZ 57.056 708.045 null] >> endobj 1842 0 obj << /D [1839 0 R /XYZ 202.482 523.499 null] >> endobj 106 0 obj << /D [1839 0 R /XYZ 57.056 113.62 null] >> endobj 1838 0 obj << /Font << /F49 1257 0 R /F18 1216 0 R /F57 1732 0 R /F50 1258 0 R /F30 1255 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1847 0 obj << /Length 861 /Filter /FlateDecode >> stream xYo1Z):J{ӤpCŷ#*ۗKNrP]`DsO`Z 0y\A1SL [elr< e0m `6 <@-SNTqP6;Pf6Bhevˤ2[.d~Q2*}Ȭ Kd86> ̰)QڥRŃ /NHE) =xU;Ł endstream endobj 1846 0 obj << /Type /Page /Contents 1847 0 R /Resources 1845 0 R /MediaBox [0 0 612 792] /Parent 1802 0 R >> endobj 1848 0 obj << /D [1846 0 R /XYZ 57.056 708.045 null] >> endobj 1843 0 obj << /D [1846 0 R /XYZ 122.62 441.108 null] >> endobj 1844 0 obj << /D [1846 0 R /XYZ 122.35 112.581 null] >> endobj 1845 0 obj << /Font << /F57 1732 0 R /F18 1216 0 R /F50 1258 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1857 0 obj << /Length 1880 /Filter /FlateDecode >> stream xڭnF <4=*6.|1A0Y >E4E*\Z|W(2՘ ToULkHApSyWJIxIh=\%A϶aY7ڼ)Pmi yœ-FYQ%6T -K{$P2\}*'!Ed%2bym|>Y2,plgPhRPYUr-u{(M2,PC2 )*i_,a!mqBf(;JB4L hbf"4fHjQrUʸ> ,1y tnr%o%c}FY݊RF̠jƨu9s(̘K' TzriAzCev@R `C#K$3Y'9*+zƦ|[Iİ٤COٺ)jhp)-9\k}1*Vb` {P/?@ Β/g8d̯ V(&ˢN&R(xn(++5AfEfˬZMУ*/@Kp>?=ßм&qTݡ.*l-ƽud[=iSsѦH6Ѳ6[;|K[q?q}KlN}X=f.?@ F~IR-=_nK.agx~3}Bo{zsI ?=ǥ[{> endobj 1837 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [286.092 667.862 303.042 680.482] /Subtype /Link /A << /S /GoTo /D (figure.4.8) >> >> endobj 1849 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [141.767 610.079 164.571 622.698] /Subtype /Link /A << /S /GoTo /D (figure.4.14) >> >> endobj 1850 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [391.667 610.079 408.617 622.698] /Subtype /Link /A << /S /GoTo /D (figure.4.8) >> >> endobj 1858 0 obj << /D [1856 0 R /XYZ 57.056 708.045 null] >> endobj 1762 0 obj << /D [1856 0 R /XYZ 122.308 82.764 null] >> endobj 1855 0 obj << /Font << /F18 1216 0 R /F50 1258 0 R /F49 1257 0 R /F57 1732 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1877 0 obj << /Length 3733 /Filter /FlateDecode >> stream xڕZKWm8 $Sn-;]lDЦHvw}PE h<|[UR*_=_&uʾrJU_=^O~~l^g69=R%vl*9ksy&UFz' }ĭk?RovᶳI5IWO'lk"D{Qw|zD;[> Bnz{j?楟s)ÞN^wg;I,DFofaFV:OL6*C*)<A1;z5N'u@&e- 6w]W_ܴ<+Yb64D 8雥"5U?umn5dUjEtUD~܊(ɒiv@;ζmOMz(m}jg2O^L(W&T^` k ]EǓdQ2HXI?8pV#]9(gѺp` -TXa#g'4 UE9zD{d/{7ܹh0:;X/$ Nx"-O8@yo?3I%egPҏc/S ,sogd0Ҟ_yA"#ofy 2p8P^X^qʳgp1=&3|J9%(at\ ξ꺂tt%p!Yͅdz|2+S; V0*Qq@hC;ċ3ݛ[`N58E ~PAS|qWo<:44XkKf3ANM zؠ7^_ȫ^ jvnSCPt8O𝍟>*ׇc'7Ap-^v-^n67kU贌: _+^M`tfYݟGBȿMic}\<ٞ5`#i֝aS]>^J9`P6U 5.&ȏM xO= L[1⇑c p0t#(_NC/)^(1D68ӫ~^ L `WK @ q,?\(c'}%淆ziUP=@_&0Bi7r56DZ$eG`ۃ,1gPk_`+KG_uKdF6ـJ1HQKy>>8\/A 2:`E%2qH l[삗zmi)_x gxF]-4HX xo>WCƳSW* )ݮN_WK3+ԟkҽ;k=Hmo#;7KUZ|ͮ VrJWWf~^T[@d[TO2.ٻTDøVtCxoݐ1p_L$!Iw3^&EZ$P֚:Y"\4r-cxrMւ 5s0 !V gʄ/3e!*ʹ]l_L%m BB9j7xUl x^H{n-0WtKnd> ЪL]qoWSbt"NuZPb˜ʕ?QsNF&/tWA)WTY"3s^ⶒV Y- ޥ({=TE*{ug~}桴YۃϗfxEhEӖ.Vyh:[ J/wyctw"%]m c2/2ޱ~p,.# $\`wwt͗u8v "`ς5F -wEyd 0:!p uI,ь{.=qCR#慄-U;/˼Hi5xWv%WA+arĝ}YpͩE94yG3J@@X,2 $m{۵VDQ Ɔ ^H-TMoM6ێT?)f-CL_W@duGAd14 ȑdLVlY^p+T)_@k1!ٳ3"I )%o|4:G"tsRC/ PRP3\N_)Rh endstream endobj 1876 0 obj << /Type /Page /Contents 1877 0 R /Resources 1875 0 R /MediaBox [0 0 612 792] /Parent 1859 0 R /Annots [ 1851 0 R 1852 0 R 1853 0 R 1854 0 R 1862 0 R 1863 0 R 1864 0 R 1865 0 R 1866 0 R ] >> endobj 1851 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [209.802 667.862 232.605 680.482] /Subtype /Link /A << /S /GoTo /D (figure.4.14) >> >> endobj 1852 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [515.648 667.862 532.598 680.482] /Subtype /Link /A << /S /GoTo /D (figure.4.8) >> >> endobj 1853 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [216.374 624.525 239.178 637.144] /Subtype /Link /A << /S /GoTo /D (figure.4.15) >> >> endobj 1854 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [176.734 610.079 199.537 622.698] /Subtype /Link /A << /S /GoTo /D (figure.4.14) >> >> endobj 1862 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [284.216 427.63 316.124 441.577] /Subtype /Link /A << /S /GoTo /D (subsection.4.14.1) >> >> endobj 1863 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [519.298 369.846 536.248 383.794] /Subtype /Link /A << /S /GoTo /D (table.4.3) >> >> endobj 1864 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [178.861 269.39 201.665 282.009] /Subtype /Link /A << /S /GoTo /D (figure.4.16) >> >> endobj 1865 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [382.982 254.944 399.932 267.563] /Subtype /Link /A << /S /GoTo /D (table.4.4) >> >> endobj 1866 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [517.997 96.04 540.801 108.659] /Subtype /Link /A << /S /GoTo /D (figure.4.17) >> >> endobj 1878 0 obj << /D [1876 0 R /XYZ 57.056 708.045 null] >> endobj 110 0 obj << /D [1876 0 R /XYZ 57.056 477.161 null] >> endobj 1875 0 obj << /Font << /F18 1216 0 R /F50 1258 0 R /F49 1257 0 R /F52 1558 0 R /F30 1255 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1884 0 obj << /Length 1077 /Filter /FlateDecode >> stream xڝVmo6_!hbo1CRlp] A ! YcaŎ&Yr$-G^;e ?de83 &F? ,wn$gb6q:6֣F/m`!Xо@0:n'23.tm9 ;(4'S8YAMv,w, in dG%&ObLv;J}I]Wǰp__ EիIS)*EoYrop$P;(-i &S )=bښBj%󳲾ғa@g&,׶BZQ\',Jm&u~e @R([mJsEʤ~B9Rcr ;^ijߚ &`1&EW^H_!&b2bi7m]:泎ј[o{9Ez[{K`U%maϖιuǑF7٣y|{ViG0o7kE(텽}q^ܰrבM8JhLÎ<ơP%yǒ)}?R̩0S{ "(Y٫f8dh{oX0 ^$bo`@p>Z)NN~Rt[QZ>9Յ{G?3`1w$aTh%ČE]{qPE(DkmhOW,udZ酢z_mՐU$^k!!|:xOaJBhE+f)>e)J>+JYX4^q4/d> endobj 1861 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [521.249 76.612 544.052 89.231] /Subtype /Link /A << /S /GoTo /D (figure.4.14) >> >> endobj 1885 0 obj << /D [1883 0 R /XYZ 57.056 708.045 null] >> endobj 1763 0 obj << /D [1883 0 R /XYZ 126.731 94.379 null] >> endobj 1882 0 obj << /Font << /F57 1732 0 R /F18 1216 0 R /F50 1258 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1888 0 obj << /Length 1337 /Filter /FlateDecode >> stream xkoV{~arߏIVՔ5YJ5ML@hN;alDI4'ʽ~'$C"2"L4Y] G8Fa"A$F~}Ƀ O9EP@ 6$")Q$*4Ɨ?vAEoAZ^!Jɿpֳc@|U=o:Mhiσ=qŤn6XEӆN!=<+"$" q"YSMf8N!>е"2g%hg=H 5H .a5|mZs><" C?;6~#߭Y+vn(!lOM6.yqV \;6k+!| *OFԽ*wއt-;gLΨ-E!3j#oxHਸ\Di C6D!g ޤъi@(1B@ ΍ehJp9_Nz CZK "(C$R&UH0f&@(F\+Ię fZ INJ9%k 6C)WAfQ]Q1 :>Wg8m3N^Ph9&d{+*흘\UI_G ϖtgΎ>]R/ fa q^>  CK&r7OA!Q9g-I̡=ǃbたpkͼR?K;`5{LWe)f~]wܸ!eIjLW0Ia@ry*9\zUS,?8/@x|UY"x4B8O YX/ߧyup#WMWӸ9QƲq[jSp{e:AX3/ ʠs`sAe7MvKy endstream endobj 1887 0 obj << /Type /Page /Contents 1888 0 R /Resources 1886 0 R /MediaBox [0 0 612 792] /Parent 1859 0 R >> endobj 1889 0 obj << /D [1887 0 R /XYZ 57.056 708.045 null] >> endobj 1879 0 obj << /D [1887 0 R /XYZ 125.901 80.195 null] >> endobj 1886 0 obj << /Font << /F57 1732 0 R /F18 1216 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1892 0 obj << /Length 2079 /Filter /FlateDecode >> stream xڭZ[o6~ϯdD& Cm7 .+rdixCD8%>3%F 4r}[E @yGQA@3b}:xv;C<_' 2 u/g&, ȓF QB!e}?/?IJjmNۂ3`[7ׄ$//ğ|{&>[ ⷫ/NSWKPWrKeYW^j\L~K|4wHšd@s|{ĶIlK`ArBRa !3Ac5-gsHd ,K㦮Yjsn4.m߫6/Zfi.Z հ/wnj-}{YtU1`1UcXUu[(-A'⸫w97cW^6zhjͥ3նZQ߫NNx1I #R s-N FO(Yad+̥ /{= ]+u4 :ƗQR6,6Nr?1xAN@>_SK쇰n6oBljja|9':V9o 7+?YbY1 Cݓ %4)*0$\L~=nG^?N/i#^XHyL4 `2h($'ŅF նUCqș 9#>NÐa!'QCmՐVRSIRz,¦4srç)iTf9Uo_x a0d]3 lk\VW곐$ k2d\x4aJ#>Z,eÙm\T{UR.@69锅=e7 #uj[9\xz0y$&i(7D(W~DfEW ^=gm[lfy(nQmvι:w}aq@xR2#J(<LjqV~2өi3lϣ-ϖK\wN/#;9H_]Q.Xic Lkz3K 7#$Js2f YϨ`vjv!F)WyϘ] !(p>y!9ST{H`b'̳lcIgRqeD9p@R]ٻF1$0 zQL 绰~wNqpNJQAq.y7-ܶtuv8mt`0N{X6gO8ىB;3%i :_= 4A&  l|o<a(6z$1٨MLN `$ $Ty39?N5b("$q0j$bEL6fxDD@I(uю. ea}BvXB 7b  LF0adnŧ 'ms5.gTABwT Aj{0ݪ,yz) BH+GoDAmCdnO_T*aX1<(=`h¶I=jfNLX!&|%Kc3yS5R m엵ѸEQ HB4*l2H&tU( }8P*:9J_*lG5~7ŧ@ob_\%Qhdn >5Ҁ3g*GuQlV,^WyfQChF 6W-&QhQdn"i~b E <TnЕ2?ÿ 0j}l]?'U q_HH_eDTTQӐ7"6fcv!y7 F+YDx4t1i ]~wv].oLjYjXv\hN\"%?aVS endstream endobj 1891 0 obj << /Type /Page /Contents 1892 0 R /Resources 1890 0 R /MediaBox [0 0 612 792] /Parent 1859 0 R /Annots [ 1868 0 R 1869 0 R 1870 0 R ] >> endobj 1868 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [305.576 561.673 328.379 574.293] /Subtype /Link /A << /S /GoTo /D (figure.4.16) >> >> endobj 1869 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [414.328 474.51 431.278 490.948] /Subtype /Link /A << /S /GoTo /D (table.4.5) >> >> endobj 1870 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [391.176 459.665 408.126 476.104] /Subtype /Link /A << /S /GoTo /D (table.4.5) >> >> endobj 1893 0 obj << /D [1891 0 R /XYZ 57.056 708.045 null] >> endobj 1881 0 obj << /D [1891 0 R /XYZ 128.575 579.44 null] >> endobj 1880 0 obj << /D [1891 0 R /XYZ 112.684 381.226 null] >> endobj 1894 0 obj << /D [1891 0 R /XYZ 113.016 95.839 null] >> endobj 1890 0 obj << /Font << /F57 1732 0 R /F18 1216 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1908 0 obj << /Length 3073 /Filter /FlateDecode >> stream xڵZ[۶~Л3Ad3u3ԵeK I@WYfAw.ɂ_0L/\0zG܏ R/>ەۅLfvx/~{tF3aZ2)3wķ/z ^~ 0f)a ojlsaA?eaA9CYE-ܐ,(?¨%QCJT3Aims)v **)wY覺=뢯 /-5 .0Li"\O h@1ѕH^4ϥG-/  sGRlZϠB/WI{o'1J @\LvԜgσHΒ !(YVʶBƛfK@ dhThb h.&;jp灆㉞ 4kV_ʶYy<%h 8瀓)A4$"JRu4 '@ŜZ]OE(b(Cj$:!+fW֥5!i?8 n}7Yp.9Yz Qʣ'Ws9+#OYG&r=9Bgzb߉ A5'ҙGOM`bF*,g> C`1y뀙wf0S]z)r2}ė"Aӏ5 EQsHR: %@TRb<@dG>(d g.MYU# D)1J9 ؈lGLV/H.&?jaiwVaf7uiݳA2$1?!&2ף|Nt9Q#gyi8F8#gODT6"Z{hL$S1d9uYΒl4ܷ! sY2:Yz NU!S}l0]t\i9S< [Pb,YB*j%914_Hǜz>wwӟ\mkni׺Ûj[: ϸv8;b;Fm  Y}@9+h+|ԇh{}p]˥;g'6էjعԼ>]yp@?GknZ{`Gp5G3'vLxK۫{4ޓC1(J@yaqg=5ڹdYɄh1!e]3HT908>uw=-;7>& ?T5bo[B!nˠD!Jzֶf/`P0Bq_b.kT8^9`eR,}xJ!ʸ8a_5Hy.%@Q 1)H'[( s H쏖긩,r2 +o$lL'%dG>1mxȆE]sETyL _Su㘨vCO9 #⧩aZOO0d~Пu'9ܶ2}f:cke 1} }P} >VtI.T!&hE1t *gPLӰ&RIX%1YvZ&6i $9m9맜`490"ê4q0UŞ+9۴wP󸀷}iD&1!"X)^`3`W-.A0hJ>zX&:!yg4ve}0sXfrmF*AٖZ|ɏ ~1c?ӏ~0;l L gx<2ÀikZkڈdWB0wo, o]Ԓ7@\d:Ҫr/6vOI1R|xyNLL8${b@#b6XK'Cܒ0oýzP77#G;]aw0|_mhPI∧L%O-)sB Sر I[AW [)Yy$գwU^PףW9KF eǨw|%&o3Tƫh]ASChF\O!y%? h Ky,@t3Ûc9dX0'Tl֑:zTn.΍C Pn=,G KSB2|e? endstream endobj 1907 0 obj << /Type /Page /Contents 1908 0 R /Resources 1906 0 R /MediaBox [0 0 612 792] /Parent 1859 0 R /Annots [ 1872 0 R 1873 0 R 1874 0 R 1895 0 R 1896 0 R ] >> endobj 1872 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [479.379 467.182 496.329 479.801] /Subtype /Link /A << /S /GoTo /D (table.4.5) >> >> endobj 1873 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [94.186 379.012 116.989 391.632] /Subtype /Link /A << /S /GoTo /D (figure.4.18) >> >> endobj 1874 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [405.535 363.902 413.38 377.85] /Subtype /Link /A << /S /GoTo /D (chapter.5) >> >> endobj 1895 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [361.168 235.509 383.972 248.128] /Subtype /Link /A << /S /GoTo /D (figure.4.19) >> >> endobj 1896 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [508.951 221.063 525.901 233.682] /Subtype /Link /A << /S /GoTo /D (table.4.7) >> >> endobj 1909 0 obj << /D [1907 0 R /XYZ 57.056 708.045 null] >> endobj 1910 0 obj << /D [1907 0 R /XYZ 111.476 484.948 null] >> endobj 114 0 obj << /D [1907 0 R /XYZ 57.056 348.17 null] >> endobj 1906 0 obj << /Font << /F18 1216 0 R /F49 1257 0 R /F30 1255 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1915 0 obj << /Length 1019 /Filter /FlateDecode >> stream xڝVێ6}WH@MK<$hH_n'gBBeɫKpHrH5Όqs'#ǒ(rl9ẋ<82K+C0 E(ysD Xsq=[K: g9wօq,RHwzҺ j2W= uhkYrIIHIofsxk !t CYCVդ&"Sms 0H.9tA<_|dk}ZMa6=pTk zLӣ1GaKzTuQ;skJBo~6~El8?F% o`9Ɔ[ U&/07KB!4ol 'xh.5'K0WQ]f}p\Da+Za~ UOKu.o=${z}N}~P) g~}*n4ǖx6SZj٥?LDt5ԗhA=%9זgv1,%8Rd|r+wC qˀz_vT?ñ훅SGG7Do5 HuڵɯgGóBQʾ(+zk6WS\ҟF_`p<|<`xMfވ\0> endobj 1916 0 obj << /D [1914 0 R /XYZ 57.056 708.045 null] >> endobj 1764 0 obj << /D [1914 0 R /XYZ 122.512 257.872 null] >> endobj 1913 0 obj << /Font << /F57 1732 0 R /F18 1216 0 R /F49 1257 0 R /F50 1258 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1920 0 obj << /Length 1440 /Filter /FlateDecode >> stream xڝ]OH_avFJ*;<8i}r`;-tf Όox!COE,˃{ aĢP.=.88Xy*DɃ2'@+h|V"o|!RO*xM7#AEPZu _2A7"`٫j¦鷢h5 .!?tC CVe׭M 1! qt9Qqp1[͑?g㫱ޞZ'Kvq˓?)6Ԫjp0J>ەu%hQt۩|~V4*.eR'e3Y IHV ~4eau}h]b}do\y\'Ֆ:-P$$&b>L>GRLIxϒ2;C/W]or{bS%iO4lQԎ#)2B86zUYN?/ѣ2`a{w>w`"CIi8}> هvPXN(6Gdx{5)ݍEtq+ ͥՊx 9$p# 3RzOK Dp/8[ZL<Px,YqmVhUE"ӑlTUmrb|cbc {aA䅣7bapW\ϗqn@r[(~ƒ,Viv2:cU]l? u95XW&l (Gq>h> endobj 1898 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [92.312 60.635 115.115 73.254] /Subtype /Link /A << /S /GoTo /D (figure.4.16) >> >> endobj 1921 0 obj << /D [1919 0 R /XYZ 57.056 708.045 null] >> endobj 1911 0 obj << /D [1919 0 R /XYZ 123.199 107.293 null] >> endobj 1918 0 obj << /Font << /F57 1732 0 R /F18 1216 0 R /F49 1257 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1924 0 obj << /Length 1970 /Filter /FlateDecode >> stream xڭZs8~_83DX?lIfQhI\'.C῿]INVq⋧3-w]RJ$ FrX]|vF\$VNjODZAYDx9x*@tn%5!'gї&-OAUY{Jb> 4<4Y{- [Q~&LpE(NIt~D2f^{., op-U(:֕mR+ybgS75LENGF;5xEvjd"XUxAbw0suVF!E'mJ,)IE="pUjBjy@DC$Z> ?WEDzyt$ 腎HtLA0&J:_~:^ eDsgtDbqGtnEC, r!:#/EPoOs:\eZ-mog\l2CiOq^5Ul`!QS@;ǏLrP#,57vRx6 Jh;Ζ@^1G923LZ'Uhh}+sؖ9vSԩZW(d^FGj{ ǙCaA+a|kt0c% BZ0#SUW@ ׺@ph(sޖ0=z-G2uLM݁ gu8 űq4 !ue,1o}U}7G)]0;$a(oiR|1|Un9.8処i75m"Yۦ.% baVl9J_pOl|r ռ ?jdhP endstream endobj 1923 0 obj << /Type /Page /Contents 1924 0 R /Resources 1922 0 R /MediaBox [0 0 612 792] /Parent 1917 0 R /Annots [ 1899 0 R 1900 0 R 1901 0 R 1902 0 R 1903 0 R 1904 0 R 1905 0 R ] >> endobj 1899 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [427.674 463.488 465.434 476.108] /Subtype /Link /A << /S /GoTo /D (subsection.10.8.12) >> >> endobj 1900 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [217.486 434.364 249.394 444.291] /Subtype /Link /A << /S /GoTo /D (subsection.10.8.4) >> >> endobj 1901 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [304.045 390.379 335.953 400.674] /Subtype /Link /A << /S /GoTo /D (subsection.10.3.2) >> >> endobj 1902 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [217.486 361.255 249.394 371.182] /Subtype /Link /A << /S /GoTo /D (subsection.10.2.1) >> >> endobj 1903 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [283.82 332.131 315.728 342.293] /Subtype /Link /A << /S /GoTo /D (subsection.10.3.1) >> >> endobj 1904 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [249.092 234.962 266.043 248.91] /Subtype /Link /A << /S /GoTo /D (table.4.5) >> >> endobj 1905 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [225.615 202.185 242.566 216.133] /Subtype /Link /A << /S /GoTo /D (table.4.5) >> >> endobj 1925 0 obj << /D [1923 0 R /XYZ 57.056 708.045 null] >> endobj 1912 0 obj << /D [1923 0 R /XYZ 114.351 148.188 null] >> endobj 1922 0 obj << /Font << /F18 1216 0 R /F49 1257 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1930 0 obj << /Length 1851 /Filter /FlateDecode >> stream xڭYYoF~ϯЛ)ypi6A,@?P$mHwiuy^󛙝ջI1MPkuyWmZw8eGpTLQͭ`5?॰ XdBpCM8&{=VVڧAq?ʓLnAg*1 3p7eV ldA8,1q CUG2Y^15 0B#Aql\IeV@m;hd:q͂T[5n{tS ZN NζGGPX e!o1p+[oBĈ>6A^/X` GBM1}@o6 t`7BYh|uƃfS&'Dw[CDGcùov <:(7uxBV$OuIɅߩ!(3` 04GL)D!G ht`{@RDr2,[+&,Jy6YFje w_AdTyҼ3k1~7H[ &$5C-!ɑVLi7(B2BPXȈJEvn,]qf \bmL@ %V?1qcatZ $U# ܫ`{3e4t#.`M y(jg^n1Dh/M76IAK %=r95ETIP-'OUPI%Fxa:,^ НD_?L­(Vb),m`"[2c}=c Շw{ruYJh 0@(ނ*9J.Al[7%R36nQ* yeKy}{~vs9nWQy4:1NC=N!}^=lRhb' OQzVu> |\ɵ}~2uԻB}N/mAqWEm@!$GAֱyEz1Mma_l P_=@mˑeu>:4D8gF3{I >~1껐-\q1 !ᲢjYלjƌg߶XaB3;md5a169q(j8;QNRj+t7}63b v );\ .@/, LLYWj[/̊r$ =rvEϷ?kZ.3ܝiͷ+b"iΐ{ Bp(=QOiiⲿv؁$v82wI=JOoL6ޔ( rng.a6Dk0a0@*fMoVkH}#vPkMLT #Zp<=BN?qa^2?bS) endstream endobj 1929 0 obj << /Type /Page /Contents 1930 0 R /Resources 1928 0 R /MediaBox [0 0 612 792] /Parent 1917 0 R /Annots [ 1926 0 R ] >> endobj 1926 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [151.981 638.971 183.889 651.59] /Subtype /Link /A << /S /GoTo /D (subsection.4.14.5) >> >> endobj 1931 0 obj << /D [1929 0 R /XYZ 57.056 708.045 null] >> endobj 118 0 obj << /D [1929 0 R /XYZ 57.056 579.9 null] >> endobj 1928 0 obj << /Font << /F18 1216 0 R /F49 1257 0 R /F52 1558 0 R /F30 1255 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1936 0 obj << /Length 3159 /Filter /FlateDecode >> stream xڕZKs6W6T/>R5'z+Me<(DIF7&uK?d*~eS*I]}Vki8;>ZFMW6}A}iKhN4nZz}ٞf}CN>[]I)rk#ZD n`M}l[`Z4*ږE_p2=FX֝qFE+^;? CI70F+aM[Dhj׸jm Ocz},N;ZmWL^Nxxy3z87 URmI0|$vt#;PZ"G͙&$d4՘y̰i7US9Z9ߐ[&H)Y {|'?b# 咠e\ypvq'ò\,+P*Q &c/,@DYtW"{roy-۲cE9^@R\<:6SK]e5NCWBZw@3ԓ{NSwGxy3gF<3ϳ껲_$Qў_zQq"B5_%dJqY H-N/l61o/n"Og0yj й!5;/q줎Ce^h8OUR^GE,mp\çKBOǽu&b[Ţ}Y8MG~$cem+LۙU'-FxfN_|#qu]vCi3HYr,AZN3F$p' ^2XgE+8Zdjˡ76v`/Z6S`[ybǷTՓ9[Jae>:F|.dIen0׺0QǗI.f'DG.l `DȐ ԓwK2HneNS &<?g> i8r^|Ywۂ G#!AZ ٣c;V-`!]qJr ;-`9Lm+\|-))X!!1NXF??OqB~$ّJ9ED[`ҊpH236 = \ W ;ת;uWwx66Gjnܹͨ{ gJpɶ.C58uE悯C[2#`YˎP-,@s]y57P#J&+eCE<Д,aw4uC`m(nC#RF6x򶣛-|,\P{e1X4Q ~" /BiT&AǐHW $s LNb~5ц IWeW6*>P:Rp(p|k{,%*F<^pxWiJCBU\T ȭ R5F._໎(hvtӢ#g9 |**f;y7RF*jO$>Ej9ċE,VWOAN3ɠߋ۪.Oű\ dI ^"j7=*) Q r"0܇8\9 J}ERi}9;x&=i9m%I7HmL]CKE1fm'a4G+ W}f:ŋ}S  ˠ?9.Ȥf0{Bh 1Ә9=mBI)tk_d!T$k OMxr~h0Cs)8;Mxa.5sA~T8-2 Uvӯ7q[V&4`f#WЕL\Jsv  '`2"P͐eHN7YjbS_hB5tYlJ:<暘{б6UY =ӨX?ͅ2liP{Wl]J@hw{25iT.c\'"4솞SPF&σJJGH@qJ 6a)u9 &CO.C"ݹѴwM.R>Л`x2$/WۚH|C̵BT~|+=\L脣$BꩡrA5u FN8 b3.߮rOmoY>؉ 99cwprK:QLA-.bw@s9E!%(ʑ^oX։j=S4%&]2u(HY47LwU ň(e[XEb~ 18ta!+s8wg4vI"y~PY:XAO0`3,K}q{ssLB g?F1sTmby$x"Xл#W^Jx&R=d܎tOlP&;ʹ1 +Oˑcap,롱fBgnC wl;c9Px~'&f:G /]}Π0؞~tMC7L=""PR`PNU iCN<沒pBobx {T0:ۮ}<-4 `jg#Hp6,1&S,JpoۘI ^?rW2wbW{6EQ(H((DzH;4XL QKxUX~\}BqX%lULp6 F蟃b3! g@ix;Tĉy05d^@]FuE*j_)4b?gx~~7 endstream endobj 1935 0 obj << /Type /Page /Contents 1936 0 R /Resources 1934 0 R /MediaBox [0 0 612 792] /Parent 1917 0 R /Annots [ 1927 0 R 1932 0 R ] >> endobj 1927 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [110.688 554.238 142.595 568.186] /Subtype /Link /A << /S /GoTo /D (subsection.10.8.9) >> >> endobj 1932 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [166.421 511.565 198.329 524.051] /Subtype /Link /A << /S /GoTo /D (subsection.10.8.7) >> >> endobj 1937 0 obj << /D [1935 0 R /XYZ 57.056 708.045 null] >> endobj 122 0 obj << /D [1935 0 R /XYZ 57.056 683.138 null] >> endobj 126 0 obj << /D [1935 0 R /XYZ 57.056 494.545 null] >> endobj 130 0 obj << /D [1935 0 R /XYZ 57.056 189.39 null] >> endobj 1934 0 obj << /Font << /F30 1255 0 R /F18 1216 0 R /F49 1257 0 R /F37 1446 0 R /F59 1938 0 R /F50 1258 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1943 0 obj << /Length 3527 /Filter /FlateDecode >> stream xڵ˒4v_bCZ-?b j.ESI 옦$ˉs;X:zKmH֚n%**"iqt}UUO95u^l }=c <yAٌTns'l7w]݂Hl?-`tlTb-ep2;(k|V"M*"@9 =V-F0|eR[<k[6 N zrRO[|.=)^uS&uSK'ĩcZDg옉-P#eCXx2v` <(W 80 KdcLrX&p QD wn*̥to6*5LBdb%EF:,yLmvU!WoaccT(9Mvdh}ޣfť?uǷd "D% bw-#6h%M7ZEVbxDxf; TBHO +3&=8iG+`hS^$oŀH8hҌBJ#i a'| 99U/ l&7BC`ES>N&q;բ3 XN/ Lyxp Х@Cxԝ\niSc%ͬ;;| "zuFYșcAf=ƲSfGYQ`rTH0P2<9URx" 8X΂ϩ-Ê{s kfгd6Cj 3Qc7(hD1 mXYrrKIZsSs&q4D#6`,zFxx` Z|O$NqsKj%:8H1rs f-Z7t9bPf# d /c-W6f3O'`CPel R<K/x2H6#maNJ^@K0 qB1Vw;Ͻ;Y~"P6%lŲ A +& [ M/ :e[@ RhE&?'ۯS/T,\}{-ܾ|:̳R;6N !6boILm."$t0\Rݚbb# V9 NOwrTEtY c x Y3; x n Y U_oʆA#ԅT["-=ai=Ȧ%@+q^0lJґ,*i¥}./ϊA`WDᇎ_̬ɂ+zrW -rnrB\vU{ mpd]s5V |6ŭs֍ㆼ2McOkz{Iى,xE`rIͭRkwSq4UfKJ|̋GPyb 1X~SZ^Kh:\`ea>MfTyէRK|/M|7 . rwt{n冷>VYzWF_?glF2*oFZlag ̌߹вX8YZEF.QDgL0cT3vM3@l:%]-P$ G/\ON {Yz :lYRoc[ 2p5c@) G}GD%Ap$>!ڹE 뤼^"E['w/3Y$2#Rg/ endstream endobj 1942 0 obj << /Type /Page /Contents 1943 0 R /Resources 1941 0 R /MediaBox [0 0 612 792] /Parent 1917 0 R /Annots [ 1933 0 R 1939 0 R 1940 0 R ] >> endobj 1933 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [244.396 569.066 267.199 579.361] /Subtype /Link /A << /S /GoTo /D (section.4.14) >> >> endobj 1939 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [87.281 399.402 104.231 412.022] /Subtype /Link /A << /S /GoTo /D (table.4.8) >> >> endobj 1940 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [262.757 384.956 285.56 397.576] /Subtype /Link /A << /S /GoTo /D (figure.4.20) >> >> endobj 1944 0 obj << /D [1942 0 R /XYZ 57.056 708.045 null] >> endobj 134 0 obj << /D [1942 0 R /XYZ 57.056 535.276 null] >> endobj 1945 0 obj << /D [1942 0 R /XYZ 57.056 82.59 null] >> endobj 1941 0 obj << /Font << /F18 1216 0 R /F50 1258 0 R /F49 1257 0 R /F52 1558 0 R /F30 1255 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1949 0 obj << /Length 3481 /Filter /FlateDecode >> stream x]n#7}Лe fx';O;d6`6E6jȒ#s//[b3Uu]Wdd&BΤ"i:{zx0~{i&FZU_B"Ԑ 4GV׷|CT Ag3f|&%AXb\~oo#HY!+DdHtN*&}@z *$J6ͺ^51$@&L>5Uw7TJ${)"cs}è<|ˮ}~!_Qa?k+lC6 MLGN NLq!X8 #_8%C!c.@V6%/+^<2W0|9 @ړ0F qJ@ C*\4mJ 갈  PD1 @+Nye8@@u[=kԼGoj3lÎ(v] Q)'`}9payY/??V $#MgwU h!|prȉIͥn+0g"/7Da"b2M8^ G7}yJK$0#rl_V!Fc{u[}ձ+:ٵ%㼩6Z-_S=oVOPpdd%12IRP>QgD0ӣ#FIv!BIwhnԋbkM L g0{wM}bY?l맡Bod'\b(.|cUq:]cև40;4nSs5eٴS7L{l2}b`$ Io?>Zx0F?K@""J KV}dO'11z>GjCAq7B!I*͋I\,2370@}a:ZѦB>bd¥nLۓU5LpՌ jb712BX2'T6]?7NbmLW\2x Oi1R&gӮ1YzBX<r 3$18*aȥ$LϊK=AlaQ7v!ESC-K9ZijǸ밯[fhZ^!( 0qƏ`!bb.~ݹM?^k2}kO 26C .ז8TMi ~c%q#i>,0:3FlUh' v(GGf}`s>[>MTxZȷ0 Et1e0iqK@frjܣ*샮1!l Čq.([s `_>.[|kg@2Rf>mH4sD4'{|LȒ@>S`@ <<lRl>.ۢ_@znU2'ߟ,%<%le+}rC1=IbZX!00]6}!y='4Nfɑ7[GgfUtw;^;HhQ̡RLWHАU%1K }ºy@O͢USTmw]/CK~6ج_1XΌN=?*no09fX өT2/-L)=%fPV*Ve͍W;m;L0nnrSIJ{X\# vfzCt@toVmۭwޘĎހm#~w76tu$!-i .0m]ŠfaU!bϊ¾!&:Iv"BfbZ2=Z ~qEL( naN9 aj>\ 1G+S;|5d__6m5L67d>ćl#N@+Tɲ "#0}F||n}ё1bva¥~2_HD20F\5b(ۗx]xGaV42!f~?@[[7OM?8{kTbʠZ Ia SAW,ǂ<[֯)ǂ}fZ$7@tWUǝA}OKӾԍ9?[7(IBΊy\*Ba4LƄ+G1Ub=9R?T`f3\ Opi$XGݴ9 7&?e1e*ӟҗ q Gk8A(a v˖;= ;ABQ\\IPqZLb \է6 ؁_u7@‰6TdPiPQfl&yB #d^g掛7pVdz;=B {|¥lݡAeINby],Ì50:J|]C7j:lULqURk`bSQ|xtas 1wHngUK-=24Aeژ'ɑ8>ٯGk z*\ZkuPBoV "vCτ=n/ p/b׭3vJ;g^˻0S|e,,U A`zD!$P2NG~PnwzuUZ]m2+AC|ɶ3'4#"՜p2rE3DldO)hwISO_03ޝ]JmEa~a{ Q=& ժ2gih>wHZ1AZwXHc(ڷzx.SسOuɉ[)\f7BOqjx%6=THfkzcG7A n7-Zb>ʨ(fxI2Y5ZqS%wḅW atXC#Nٓۗ!O, VؾWE_ ݲ^徂fHH\R.P i >G 2hRA}Z ծPڦu~rObĻX#]Il#R+ܺ\nMft[Yą| H%\qp{9`<[ ;Blr!S딃) e.wĆ|-OrzrBCRk_Kjn,Y3omKSh"3? 4$q˓AXf,mwp?4 endstream endobj 1948 0 obj << /Type /Page /Contents 1949 0 R /Resources 1947 0 R /MediaBox [0 0 612 792] /Parent 1951 0 R >> endobj 1950 0 obj << /D [1948 0 R /XYZ 57.056 708.045 null] >> endobj 1947 0 obj << /Font << /F18 1216 0 R /F49 1257 0 R /F50 1258 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1954 0 obj << /Length 3226 /Filter /FlateDecode >> stream xڵKsXA~䶩J{Jj$;{X͌^ϯH( atjfՍF! lP a{ox=]VYt߯dS)i8oD/AF\H0 ) Š,׋_ׯwx@+%R acFreuhWOon>47~X}Ň/} RY; B0]b m \"JG5ZD$ B^b Eo $ z$BH|+A"۠+$i3 PD1A吨w#Hlw֥_< 5P!cCTTdƢأ2Qz  EDUqZEIQwI]Z,CS$ B5p j(FzˠVEMQoY-aMk* ^w^6tOOD\f{G[8ccMВZ1#@4lrzS힚Xl?BM>ۮ)e+Zk A0m!\d0Lc뾣{%`ݷYe@cӧM{9@(&\Cƚۻ}}@?.`kcurZJ"txX5~~o&EMrdEVR]} fM0u ^8BuMdIhʇf^B [{p_>XSXkۧêɾ_#]]^/muB5("Jb̊ePH 7UNC܍F#BYDv:$ls7o a'5Ii}eU.j1̗gj7JӕjT6-5Bd`@ LBti P5{<&Cŏ6<[yYxȶ%lD/Kep 8p⦛ٱQV{t"O(cU@Gyl{a/.zڎB`I_X=Tzn RB)XEI DvԑUTn ` WB'vN`q11\ ݏPC?o Nj+ Y`oejdœcYx 0%5.]~&r21&0 pXSj@&5!^];S} 釋.2odO!i12] S¥77NSWyPCWunNGLG҉FZ]b#`GX=s]q k.۸Y)>$`wȱu:mTHnyX5h8u(`cc?66~y֦Eu2 D)LS :Q揋P+Zj[(0S6;M^}'הQbׇjYMZs`G,0BMflt`j +aarű&s)œ9p>j[,B eЌ7f:wωܔ` 3.`D43z^wB0G͈ɜy^ 2x1V"GŘrQz.j2G3T8 b1Ta?MH7]þ|Lp#(fYLR a0'&]ܞK6i U'i mR -&X]c Sa saSe>IW[=2sMmO鴈`tr>iaTof`<~F؀vv:P ˃{`}-a.gyخΫӱ?n`yMm嵣AFR@d0較~4f/F xܿa7"QTg zOK˜mEBL1H20F\}qMu&x2̇1l@ pOb8LvGE&y̶%URT $)MT]^) 3Έ؍-]bnb{Easau}٬DÇq0=l4s _U[9S7%w72 &glP) SCK3yGx^ŞP{My7[uвbB a=TPۿD(Hr=8ɦ)Ω zBm/9ܞoYi1M28A2@$1X7TN0=/ښ,ZU ^)PB4al2eFl3X{QYJL4[ q(t)f=Qư`Ŝ˰1L{ve{t"M_ azmu%a=xa{Iu{D=sx7߮(bJeIQ4q3j@- I=$@ ECCޑw'>ߞ(Lbeh)U/ $Ѐ?1jGcܒߙ%˞aUQPKmfS"ԇrsW;Fc3X,LDꙞ'ȴ7k /+.^ޒ`VF~͟˖ond1g2꧋Ӭ0PnMX=a Ťz'tѿբjMњmk4#`ʮuaOw~5KiB>8iu uN^ z dX ZމzѰw|[i׽zbm_KUZ 203B]v\^@zDBſt2uʱ٭v().Pw؝:޽Z{o٭v35U2 ER\5.L;p0m20 / iPz4fwTWM{-A_vcN炗rS*BYaZvqϡ7l'&*o.R;8>mg_d{* e[sA᫠%Hۍ!x/_-d:6zXIYR]B=n sMy^ųw<sg@:bk=n6d; endstream endobj 1953 0 obj << /Type /Page /Contents 1954 0 R /Resources 1952 0 R /MediaBox [0 0 612 792] /Parent 1951 0 R >> endobj 1955 0 obj << /D [1953 0 R /XYZ 57.056 708.045 null] >> endobj 1952 0 obj << /Font << /F18 1216 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1959 0 obj << /Length 2498 /Filter /FlateDecode >> stream xڽKs6:RU6B ͱ3SSΎ}@KԈJT(jO@G?4³PYaD9-6WϖpYhg͌,z귫`)h6dNPďOW?||1#,(,M13<{Z~],s?׫(BPiӺPF[oU") lNȢG7=zf7|r.'H09 C"B2eۼ OK2yfB!1LnSΡtVb abE}\S Ѷ`[- F{Wr]-kFFB s)rC V}L 4 Va!|[\a/X7 8œ9҆oUPJO\79'QR8Jk~b #vw8گ׽jhFfkZ[eBH);sP{#L}iVdIMUۯjTrT.J/>6eH&O›!Y"Bs%<ݰj L E'zI$W=j$N|~娟0L.3Vtߪuhu^f H<^.DyT.>Xc߻u ~ 4S;5Ul#حayRw"cX:ol6"72"K%ʎ:E2Dܜl%(ATljQBZA W.ZXuƫV18gn|IY)7KRVd+G:䩺dtwvNQ9xі5vxZlyX( nɇ7B*7w*+^fnUt7ȔS@S(8 fZq_3`єý'T:؀5t'L`Vcn*,Q ]~n5 R媸}e(7IEѲY&."e ,/6LīVun PVx[#zNgB5w/ۛm'3D0qUqUȅpjy Ա -qs~Ք-M[ Z L\d,a@JU1U)B?ZLo LI b;>YV0Vܓ\?9hda3eY&K tp}[熶f'naMa_,MWcs>KMhjTCO%P9ʋ*ݵ,jW <^h<6H +0"܁vF97ی ,= =僓SUn-!X5w[[YNX66pM0lp[zA-{ZXAX\%ddhG//8dY!A$5WZ26oߞ7~mbD˻uy3NM\DdI%A*xcC5Z4׭Ma,\/kތ^Uk[J_!^dp jQ[R7Ae-bQ9g^,b:6(Aek=n(4R}1 DIz"o1!l#H,L$LXO_p+X !²vBU#/R(P_#Q5œlqۚx㡄ᩤM y8C4lN{h~jBU~w7Cm̒xL5Q<aYD3< :I5oB6 ,ϗnSjq@_Ϋ"k/n w_ ]{W=VH r`i_iʦ0DBa}DUSӍ](KSc`>+]Mޝ*+Ri*/IaF23P7V/݌zUALg pY endstream endobj 1958 0 obj << /Type /Page /Contents 1959 0 R /Resources 1957 0 R /MediaBox [0 0 612 792] /Parent 1951 0 R /Annots [ 1956 0 R ] >> endobj 1956 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [378.208 488.419 386.054 501.038] /Subtype /Link /A << /S /GoTo /D (chapter.8) >> >> endobj 1960 0 obj << /D [1958 0 R /XYZ 57.056 708.045 null] >> endobj 138 0 obj << /D [1958 0 R /XYZ 57.056 537.617 null] >> endobj 142 0 obj << /D [1958 0 R /XYZ 57.056 442.175 null] >> endobj 1961 0 obj << /D [1958 0 R /XYZ 57.056 365.413 null] >> endobj 1957 0 obj << /Font << /F18 1216 0 R /F30 1255 0 R /F49 1257 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1964 0 obj << /Length 2706 /Filter /FlateDecode >> stream xڭMw6@:_84m8i; ZmDe6datˇG^d^p2/rd^Wب}\|s`E$s| #AE 1&~;,s[e-Lf_7/~:L" L3e1vnn_+"UsxNBs `HȐ,D#\(ɗe/lFls]OmT#~^ϰB䛍`$AOVGM-=N{~ֽ_;ίu|SSUFyaSwv?.%YMZTW&d F1lmmW&[7;B08|kSWz,N@S@n Q-*ciaTD758YƓ JmF]#aMߚ .B8}AE]T@q&(A,Z5&ڸ嶊899qNmRU#!R$&Ov&vw8%H%(Fɾ+CGRE~Fa[cń4'ja8Qݣ3R4\FAԭzrkXcz=V\&\InGfsoO&qu! >Ŵ/ Asi@מEBUyW86;4(8Ɇ$! 2c4ŖZhD/^>X/sD0'Ng_o2fC1i\L|a&MV% ! e 76pRU*o#g@@>~ݞӪB`9U}O7NΣ[s?b+T h iAUߛ9o/椆Sշ}D_Fis!>g.2Ń١\u3xV6UpC_l^y1VNLn#xi&eVRƣIL_%h7Nͱ7u&;=Hv) *rKNZpr(ߙ>{s2A|>&=a<1x z߮slLo"NҿT&?*Ldݒ` 9Q.g rdSD4,S'SlT'4_ՙeˏc?&.Xy;肾"ݹ6D(*<ҎSSoŲڟ AD|FC 9}$袰F^_{: Q6_*VO?˹گx*T3("9jO ;fhK)oNeWv3:,g+]Oě,gҤAU8I Hpjo%Uv)voW+=[;'zV驟AuomUh͉xc]W1iMnM/& f TCp`!pAP>Hk^gqtS,|He6V X QAD`  (rl>jLj;uPyw[rF|{{aɂ#IlGrP0Q~wY&]n=ǰ}ip_cXN/^~6Vp ɢ$0yVA.LL]D51vE )ueq{̧H! ,9Ysuljm|*ra?l c;Fο]սmw:ܿݑL; B> Ww?sm{^ㅞ;;7 dPa/ F;!Dσ☇H#g_M gWa;>(\*@ #,`c5m1iDY?J|,Kbr=&x웻>mL0 C )%I4Cy>,$H@9"B:q}ܑf>E|_:C 9}9:ShA]r\j #:,GӹuW/v ryDy|.QQzϾ x%-Jm"H=!CD} :zf^;woT|]  {ث2Ƒ3Bj "L8{1[ę ԋ̻dXp3Kue_SwcWmEs2-z0ףp4f6k`#|Nխ2 endstream endobj 1963 0 obj << /Type /Page /Contents 1964 0 R /Resources 1962 0 R /MediaBox [0 0 612 792] /Parent 1951 0 R >> endobj 1965 0 obj << /D [1963 0 R /XYZ 57.056 708.045 null] >> endobj 1962 0 obj << /Font << /F18 1216 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1969 0 obj << /Length 985 /Filter /FlateDecode >> stream xڭXn6WYçD81РEQt.,cGl}/u9VUO%0:<<< (0O BF^Rl>~^ cp!$LGO$UQeiE2H@uH$F6FE*ڬ*sN &W 1$e:&5P I[L+;AN:ۤP OLȟ^| _!͊h&&GVզ:[LSnrU"~D,|c_@2{0 f5NU) Ӭ) 8O3LpPl >u1Z(9N@hӸ`[?@5Pf $} /Nlĸ @mƹZe=kAEQ?X e |liځg/md_]Grq+acxV#m«oέdD:Gv0 WbrcOao endstream endobj 1968 0 obj << /Type /Page /Contents 1969 0 R /Resources 1967 0 R /MediaBox [0 0 612 792] /Parent 1951 0 R /Annots [ 1966 0 R ] >> endobj 1966 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [210.132 526.227 217.978 538.846] /Subtype /Link /A << /S /GoTo /D (chapter.5) >> >> endobj 1970 0 obj << /D [1968 0 R /XYZ 57.056 708.045 null] >> endobj 1967 0 obj << /Font << /F18 1216 0 R /F49 1257 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1973 0 obj << /Length 2253 /Filter /FlateDecode >> stream xڭnF_A%4`M87^xgA[XE\?P-H97rb9|^2^+[/o{rGC» XiFFh^CǃA6HDzO)%"`%z2r7-*E%5 gmpxXWCE"]&}&]١yq5!v&^'͘]f.~\lP8;‹4xs{RZ`#г:I$IXg [Y񗻼!`- w"]ubO':)RmVwgMھ\@;f`m] ߫QS}泗 zaLH29$ܢquh|d%HD͔~ah?'NKpF%-]ʛ|t a;q"`7EA W**Y+dE[:IOth|iϗ E1 tدik]0MsNKn6c<᪪7b)*uf_gͱphVd:X]Y&Ougt %2>#}Ӓ)%ZwyZ1Qֹ[ oQ[t;=s&U!w& Ukdy!7|)Υ{!gdB!u9S̰zѢk9lO  H f8|H~Q\ p8/op8zY}qVk2h'%zrTcd.4Cd\EA//rԗk޴i8E5*VG5Rawq΍G" oapEINXwn g2ڞh OerYe$k?QD7tA/}ff ̑X1C>ŬnM4S|Ur040t9 xUZi; Gz/5 ("瓋#&ePb`֏ogu cȪXWφFJ] N[bOt#xHV+u`\lF3bO7-lEd%B=IPWdnhkx/̰@!>|D4)2)o1 I= }p+Q<ѶUAizm9j%u̍) v@ qS">)0ǪfYVMI*<fٟݝ?a 6wᗊlF Wy Ot5̲͸! :*>ԴH(^-BKaxEq2V㴂gN|%A_ۢZ9U㥅Q8:AN|cTBNZUTlF$ܓwO?l-tx]1MWFq|gs?ٷCnrR~׽^N}a0wBz~] ?lΌqstDfg^"s3Z&Yg~2A 38 $Ǩi?6\{I!6 {-x_ :d{b e_xIhrl5J$f,kQ:a*؏iټ#zi)nXa4ϳKsŞzn" =Q}=bSG5{HI)@/88tHOIHXȽh$'M/G 7oY yUtp@ֳqM[8' |p:pܴ:[Q|^̰rFxv7?'H `s4q endstream endobj 1972 0 obj << /Type /Page /Contents 1973 0 R /Resources 1971 0 R /MediaBox [0 0 612 792] /Parent 1951 0 R >> endobj 1974 0 obj << /D [1972 0 R /XYZ 57.056 708.045 null] >> endobj 1946 0 obj << /D [1972 0 R /XYZ 125.346 554.417 null] >> endobj 146 0 obj << /D [1972 0 R /XYZ 57.056 474.384 null] >> endobj 150 0 obj << /D [1972 0 R /XYZ 57.056 450.589 null] >> endobj 1971 0 obj << /Font << /F57 1732 0 R /F18 1216 0 R /F30 1255 0 R /F49 1257 0 R /F37 1446 0 R /F50 1258 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1977 0 obj << /Length 2195 /Filter /FlateDecode >> stream xڭr>_ hAxʓrƪ!S)H"b`P^/h 6޾Y|I_vW$+1bq^G~z.gL!+qmVvdHINd_Qy@cN$J [&I$ytt"DPaaBNn, W0wnP~OlT佋򜋈(S z;>-ry̟5O ofqE ]1&E!0me~7ʂN$"RVk_hrF,̅hKx!;1/lȒ6c5V<_/RJx'1J)忀$LԐ bi."JP$$)ɚ.Alv&5uu tҋX1~Jcҭy8?#f}V!bבiBᵪ5hDR.ufW IqjHMTi4FhB/ƿ\D%T }uD:åf";X߽A y lƟb53 o#5iu')U AM;U[FQ r`WCzMK\zc7Nq &QU CͯwUQT(s^>3US øRLA5ԖR/&Uh 2,u'}@9d$d"Z=(;:]y5 Y ,u@6a Fz۽F߇> wvVkc:rAzhd /ToRd:=ݑ&Cw"o]kvlX 9G/ޠO0&P  b]ey A3) By 90vee{$ic!/1\o,r%]w1$) _gc;q_c 6i׭i1&|XB >*!BamUWۻ!X]6@D㡨xIdͦzzAl 1CЕ!Ѭ"{Ha&RlOX<aW(#>=F xb| Qf*+zZ#xԡbO}[βf'.q/l[rDx4]AƆhLi6g055]p6}1a@-^ex0`>[QϾ|hVc֑:^2Ch׋SJ#Pz8~*3{ a~!% nt7lko.NX!ՌN5\v^&^ij✏@{"2:qVDyCy蚓0H6qsasL$^00nݩ\)6V;UBH@0Lg>a. #,pn.b­] :F 4V܀njJߨ TD+ja@lZ""H$Bg|(0Bp1۫_,^W c"b6u06BFuC,{pC B9>pH=6I?,9/(XP,0!\&2=Ԥ>G_'9RO~踻o>f΍UL<&b(T2t@xջ endstream endobj 1976 0 obj << /Type /Page /Contents 1977 0 R /Resources 1975 0 R /MediaBox [0 0 612 792] /Parent 1979 0 R >> endobj 1978 0 obj << /D [1976 0 R /XYZ 57.056 708.045 null] >> endobj 1975 0 obj << /Font << /F18 1216 0 R /F49 1257 0 R /F50 1258 0 R /F30 1255 0 R /F37 1446 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1982 0 obj << /Length 1699 /Filter /FlateDecode >> stream xڭYKFWpCXRتRTA*J5=,Z~| y&DJ6Yl&RHҔИOɧ`[,4XϾ,x@'B%$Ű`oUZe _ O'9bUNB L[e,{BdֶHYBxHFZsHo,<ԻCmUPO:%<>ԏpGd7TVUfn2""p#QQ< !hyfl$4}j MUsuuO92S weO>#~P"Wz€ ̚j_ Cg@ xRmHI8k|L":4+Z_ ߎ00@AE@VLu k,6(B=-]3inmuV oF+ JIΞɠ~j/fYl$ƥG3B3Lf hUZK-r(=lQƨH-rf֜,/ + 8Izi#ٍ%:`o]:x0Ur+0b֬Gfyf%6“hfDM("ڵ ىmYm! n=`e+Z_F,BXnt6\T}z4eD[m-zݓB"KAYL%Փv<'ژavSu `i (ڤ 3WЁD){δ`C@T(]lxa38g+Io0l`>}p198]9\C&|!I[G5 utaM/Atdaڌ99kIgAΤ+ c **vP!+G֝Vtfq2= 2}@ ghqPjX_lv7k~x>?){Zà.sv웝>*-qbqnd^,wd2cڮd2n%v 8 ZP'+-Pu3H*hYL/>M!qI6OT;d̾%K)R*jsT-z.yԉ d>e{NU*GrH)^œz|Ke1TGJ|śr} endstream endobj 1981 0 obj << /Type /Page /Contents 1982 0 R /Resources 1980 0 R /MediaBox [0 0 612 792] /Parent 1979 0 R >> endobj 1983 0 obj << /D [1981 0 R /XYZ 57.056 708.045 null] >> endobj 1980 0 obj << /Font << /F30 1255 0 R /F18 1216 0 R /F49 1257 0 R /F50 1258 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1986 0 obj << /Length 2118 /Filter /FlateDecode >> stream xYKϯ020fķ"Hh-4$ ֌Ȗ+wӔsKyxw^9߯ *-O I,BiJhH+J>ekm!=jm7'#/VsnMӘ!1U0g**WGI0a+j@?喬0rZ's;Myk,WCC ӛrD2}FϷ>U% ܧOO?~jvOe^nN=f02p wI`*p 6ܜ-׬i3vST ! qS$+E_ipcWs(-mƢ/#nҸOxpTJvx):]+IU oq+WIB\v,0/= \ق+M( A!o_~;udbX<{S1Y 1\}nPs}})n20ުl6 K TI-} х6E,/|HZq/aLe*q'A!hFRtv v Cq&/ /9vd->'ZN.LNT8;3[' ; >Y'lk@2nx&Z!|DxxIThvmQ#tО<Ȁۈ 0܀KKL !/O{ni GK0 Rze3ZcʫK#2;fÃBxjLͭ p4&mbrcLs:I/6zäu1Ž>$lSPĻR+v 8E1$OCOFf[dVlb"0ē38grbD!2@tNDib$Qs$+ww3_p7.UYN-1.lki#Զ&A$Mn'!f6*$~[^A+a0;9\|BIbLXM3QahFsl(C6 ?9li$> endobj 1987 0 obj << /D [1985 0 R /XYZ 57.056 708.045 null] >> endobj 154 0 obj << /D [1985 0 R /XYZ 57.056 683.138 null] >> endobj 158 0 obj << /D [1985 0 R /XYZ 57.056 250.779 null] >> endobj 1984 0 obj << /Font << /F30 1255 0 R /F18 1216 0 R /F49 1257 0 R /F50 1258 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1990 0 obj << /Length 1717 /Filter /FlateDecode >> stream xڵXK6WDj&s nP@ Akˉ YZXrwԃ)^73㛻a+%[_>BQu>wØ&d2Fb&ubTmٹeEfqh)VBj`8h7)vNML%NM,&on!,1rهs]vp%DxCQMTR 8!fNЮ^r|<"EP[jG/)ԭiUY4=1r#hcWɣXc>5Ҕh>#ˆ4{TB'j1=^Bs!x'p+A8`f,fI0S \Ņ= kD"VH*DZ3+.̩QK'rY10He`xFjDJfItfV0f`\ws2"eI~JRմYHj\}l.$빐HFx,g<f^eumc6":(|TY>1p>؇9@o6*yQ7aÅj}e{E-7>tb "=RY"A;/?C3I~e;OeF3將}N ;^nôi<2A+ 7̔(>q e-@xl'mAd T~Q9'B*$5t y8EYvY8 8?hᔖH~.ڬkaݞW7[~Xoocl>$q¯)XхLQXc<ȹ"& s;?c|䧨܄i ҂KB5XS@<֜a?@sk8uXpX_Q'cO!ӐlC}x3cyOTNJ ߔ#F9u0W5 _dcXs^*o1/ 1%RH{TX: YplHˠI9z¤_2t lbض̐I ί~(MQ}鞤D*sBmv('Mr|\fm`N_,H< 56a^ h`dr_diu3wY`Tu-] @L"W|b6j| lO= ^ AS>Y"ICu]б0y+ASymzJEӞ0"0T 8[aV$6`3o)Nyf @N1<8 wU ]G:CF. 64 LZ WU|λ-Ya:|[!nZz$␘CքIeu^S,>#"py#|lŕS[q-@Jo@J}h61/Dp~F.ǁq21M3@Iᖢ¶; Nrʮ:{^J]L5C?ڕ +-J%574` endstream endobj 1989 0 obj << /Type /Page /Contents 1990 0 R /Resources 1988 0 R /MediaBox [0 0 612 792] /Parent 1979 0 R >> endobj 1991 0 obj << /D [1989 0 R /XYZ 57.056 708.045 null] >> endobj 162 0 obj << /D [1989 0 R /XYZ 57.056 227.555 null] >> endobj 1988 0 obj << /Font << /F49 1257 0 R /F50 1258 0 R /F18 1216 0 R /F30 1255 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1994 0 obj << /Length 1712 /Filter /FlateDecode >> stream xڽYɒ6+TX:0*.'S-FԌxӍ(RۤrXݘOw? :bJl=RPG0¬͖?Ǐv1lO+VO3|ň0:\?<0!Ws3.>nu۾'h* F W~7Hw#(ݸ7{X~gCA +tU`C &Y0(5?W}M%3aHcl,߷.ǁqJ4 ѭlƏxXr6aG'S%upRh1xIaLP٦r=R۲ڬ*2~&XY 4`<6! JbLi )4'"396zqǮhhd Uzɧ`ʎ1E rjwΡ&E\TDqh b^k ag5 м0h|rB#26‘!{߂X' a:Rfr,ZYtWzaLOZU?}S |<l{~o`SʷI IFLg ,`~ݷ 8ZZKxΩ1 _p^Dx|4a6K(huU6 ; Z[~Q-Dk5޵|9CEIu@B@WBZh}›Ը+E>z8O~퍎enIJLq3!ԧ%pp_mgE-$E+W숸(8Jݞ0wV!QTG+aA mymYRM,$wvY4vQ+Z-vաtPѕ2؈/UB˸X_&<[dދNw.@,W*I@k̭$6Uk/j7pT o35=˽1)p$Lu]LP/х Ul K?"j^h1zugWy`/ G^A|]c>W'`wT94%g`XԱ,:4T Gho1 TjcWP M HuI~K WGPow!WE YM=(eTAqbp 5N̉A'lq%aOT@)mk;4^*m~;.8Oh= Ĝ(3=Bׂm)طf'60c9D_BF"&S>-:~vWnd5IU35=ǥ.$\6[Y ja^ijv/ iiU y`b: goF^ QV;nFΣe83ߜp[2 .oq" נ"#,e N8b׻_fE& endstream endobj 1993 0 obj << /Type /Page /Contents 1994 0 R /Resources 1992 0 R /MediaBox [0 0 612 792] /Parent 1979 0 R >> endobj 1995 0 obj << /D [1993 0 R /XYZ 57.056 708.045 null] >> endobj 1992 0 obj << /Font << /F30 1255 0 R /F18 1216 0 R /F49 1257 0 R /F50 1258 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1998 0 obj << /Length 1619 /Filter /FlateDecode >> stream xڵXvF + uN4=]$'"6邒(-M*$Hb|I, A.0g #nfB!,L*fϨm< 6^2TE|V7wq='Q {P9^ꮐ>[Pֳ1Sڷ `)a#sc٭†6|G}ⷎ|`V6 R~+*mѓ` s]]^Tu<ƃ̶t+WvþRA|9_1<)cPѠPBI#c6zQ>I> @4jcfvQT ՁPyUM⎗{Csǣك0K1".` 0 gKQi;)'>M gu0-{!fP)W>4[=gB8"uk_{z gzadԗρ 9P?Wt^m!7_i:bD&K}z#py*Tfm6Xp|}F{, endstream endobj 1997 0 obj << /Type /Page /Contents 1998 0 R /Resources 1996 0 R /MediaBox [0 0 612 792] /Parent 1979 0 R >> endobj 1999 0 obj << /D [1997 0 R /XYZ 57.056 708.045 null] >> endobj 166 0 obj << /D [1997 0 R /XYZ 57.056 312.403 null] >> endobj 1996 0 obj << /Font << /F30 1255 0 R /F18 1216 0 R /F49 1257 0 R /F50 1258 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2003 0 obj << /Length 1927 /Filter /FlateDecode >> stream xڵXmo6_ad fEa$h]lXMd&;H8lCI;>w>RFW(&A$&"&d\Mo 9#MØ(o>M{g!L?bUI YB”Mf4%CؽNgrx:ƝT[cjE!0WGSYˡrx\4֞uC1LN#{IH3]=j5 Շ5c,pZ䙒ء<% ZPEd]lȋSr>CvjLMhLߧ- AvJ3n\.QeP^H=ٔ;E@=y ^'3|UhE#ע ,y?~_UUoLgIZbpc>x0P=>YQuO5@1UeV;$ jpfW.uVʥ=3Dv (U17Clc-q`Ynu7i4!i:w]~wyH spx۬`b#7}E~VUt35qkykLx_s3B%zrڄu*B*{'c&GݽzdLMf.vO&)Md l/\JRG4<3.`BL6j O{ p.lM2E#"#RIp)˿kK.f tiܳߖewgKpwdKHv| P!2R`#՚#󪑯a_No7ٓ֙!mn Hfh!aNor E[&gP̢yr_{=hjhf$ K^jl ,$P-hҷUs t`r*8MT`Q Ѫ6g]ue7}ƍp8MuQ^H"^tَ%VʖvMՋ;#1y^gcrOk],`9bMs\9Z̥6d57d򄰘]q")-ƽ:| 4m?nB]i6]852Шͮ.~IG/cbH\P+N,V–-Էv c}QAMpkcl e=i`> endobj 2000 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [497.883 488.535 529.791 501.154] /Subtype /Link /A << /S /GoTo /D (subsection.10.8.7) >> >> endobj 2004 0 obj << /D [2002 0 R /XYZ 57.056 708.045 null] >> endobj 2001 0 obj << /Font << /F30 1255 0 R /F18 1216 0 R /F49 1257 0 R /F50 1258 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2008 0 obj << /Length 1654 /Filter /FlateDecode >> stream xYo6~_a2`"_* -b.<`XŖcX;HY6n $t<}_Ο<}#JI,W#H(H*JF2_O<}Cu[qBE< Q4"& L"K&4ȍPyr RyE 4$)O@pGwB$;[BMaDT1KQaP=>Nu!G ʬ0N afƃtq_K#qPB NNn O]hȈp.Q} .wuf78ESV"*Xffl05iat|ww7>XBNff 1+ I>iEDs_ecXՒb9d1(<敪"s#Ż|dLQEC[%f&ny3""}`#<1pl)jYQiDՠOGbj$#&!ǒ =>7i\f&jh;p/'s٠` HTtBɌACq;C5Qbc-,[|QgI6n(|xQohuY2 b\7uɜf_c,4ŝ:C,0xʍQ"q8|+ nuD!V6_}9n7E痍U#o O hi7n mz׈ ^vyn RX_SP`Ļ*Ζi Vba{@H'bMdN:ni:z00u"l48 yd(9!1ʯZ| <hxdBN=iJ@Ⱦ9g'}9d=מ/}խ.0n>$2}x"]a>eܖ:<7[ 9iIC?! rUPRs9Z?^W>6ҠO2cӆ DRSgJ+\xyvf~{ \Y!s|K?qPVN_r % >eGiJ-mWP ߨ*6x$a?X& D$jLu%k,q7xXx\ʑVk<#@| =UU/H0Ch}BgL==u1J@cnc)aptm쮡ӱz̵o7 돍1|3y&Z a=y=/Q endstream endobj 2007 0 obj << /Type /Page /Contents 2008 0 R /Resources 2006 0 R /MediaBox [0 0 612 792] /Parent 2005 0 R >> endobj 2009 0 obj << /D [2007 0 R /XYZ 57.056 708.045 null] >> endobj 2006 0 obj << /Font << /F30 1255 0 R /F18 1216 0 R /F49 1257 0 R /F50 1258 0 R /F52 1558 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2012 0 obj << /Length 2110 /Filter /FlateDecode >> stream xڭYݏȋefDRMPMH6@=hmyW=[Z裷_I}7ݛosƱXWbaruwX>6Ow[E̔Ы63ϟ6;)v}mxpB (76 $Zx"_hwNFV2pw+[SѴ0s*4rG $RaP >nP\#>ǜq"DE >VHLҠ8ocGF5; d?Z2 άS2YP(v}q}vP:;i¯7&V۷e,}˼;$cQz Y~ ytbQ3eblO{"KtB:LئPrYT0|_N5dx6}\yl,\5ؔImKW/tJQ6mH8+c﯋AW *ad? KFS&W8#5<2fYN!0m"<.f482A֙,W@cE F:g=*c!} e5o*"M5~)z+z6E;[TdwCN}u>C"yo7cޚ(E_!3 G6©uVP@[ҹ`BWVtXysyk5RMO"Hɰ Ž dnԇMҰ (8Z`wR;RѵfJԮK1)8Blw PFO6P5-՝W>_8S2U ~pB:.9J1kZ Bk{ױd]$ep lB]<%|4mJԹ˞(m5PMaѤÖ $ kЂ`S|$I|D }D-gRo}Z!RN0,ۨ]8rKyuK~x1%|ZFF}r] S:M1ܽ*e+[--ip>*~v;?q{o9bLQ=Gc8O*rBLV1˶8vw2ik4՜ շtIUi7gLt̐& yk)4磯;D/z]#PO`=ץur6b't\wR[,شAN% {dgW(N We\}gd>S4}!2-.)Cw\W6Sk^[ @t Sy!KS稸faIU>=S#ҷ0o'畡 gP+\ *[I A7о(^q8 A8؊d2j(VfrY:'mXDWORts ;30oϨF>p9mi ChWq^8̢A[2sZd2eudbP\ UoVnc𦅎: kQB3FzOAŠǚ%!Dқ endstream endobj 2011 0 obj << /Type /Page /Contents 2012 0 R /Resources 2010 0 R /MediaBox [0 0 612 792] /Parent 2005 0 R >> endobj 2013 0 obj << /D [2011 0 R /XYZ 57.056 708.045 null] >> endobj 2010 0 obj << /Font << /F30 1255 0 R /F18 1216 0 R /F49 1257 0 R /F50 1258 0 R /F52 1558 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2016 0 obj << /Length 1739 /Filter /FlateDecode >> stream xڭXKs6W&j& '7NeN(R%|Ȕ-gr}|B?o^]}+&U$ۅYEsƍ\l`CZs.t>$jZX)l}Vl~9K'G1h7m2f2Q[D<"WFqPT$rdǦi}Q4yՍ?enITtV0.Ś'L ƪpX''U2Y$} u_€ϙL ?A A֛+Ҳ$񗐫2oir{Ǯ ^u$8; mhsA0#bJEǼTk1U+4OiU ')l^P!ugdu%cŖZpC|k.hTyϽSǭͱ 'J'+󴢕oJ|ى7Ai }+ZwB[W}omۉځn!$ l͍Rl.aȔ%N.7sשٻ4{}_WAw=1'sTBU':&bElbɐ3Rż!9( #| }%B܁q%;;P1ͪ0'=ye+*yhm=m'iO D "+`0Op;G `{amr.:ΰ,K;34S9ǰ<<$<4݆O7 5E}CwWW꧝m)V%z{2l΀.a,+ yppY~H TIwi7fvb6%Ű4Oe]!Ѐw76ߞpfՕ4^7v9.n@H 6vySl|H# muB>L{,]^蒺:iQ6&iqf=R{ 3zdta"88|+; KJbQ+= =NXKC!.=[7s°Z0awI h0X){HG]ƌN׋ϫ S%;g(T`&:p˄:Y@V2`PmAM3zY=oYgVm.ґvAi5_=[ut<pSG~iZҜiIy`wpͧ9RAӴCi3xxh xs❅(ʞC_z)GFn9PTql~oؑw]N϶4@PBC$(#n!Wo&qotפ{PăXpr2@owσ:E5Ap! Qƽ7N/,#vs|]ō -*.[})(LEzt;A ?9"%k0<jox}bfT_:ƬZ#.Y%SQHh`0iXz/oW7r|)fI5EqH6ڽt>%9m4Mr:4MB9& pTRKƟFUsZHpۡQqӰ[5iʹH.KNx  N ^$N$.zy?/ endstream endobj 2015 0 obj << /Type /Page /Contents 2016 0 R /Resources 2014 0 R /MediaBox [0 0 612 792] /Parent 2005 0 R >> endobj 2017 0 obj << /D [2015 0 R /XYZ 57.056 708.045 null] >> endobj 170 0 obj << /D [2015 0 R /XYZ 57.056 683.138 null] >> endobj 174 0 obj << /D [2015 0 R /XYZ 57.056 455.616 null] >> endobj 2014 0 obj << /Font << /F30 1255 0 R /F18 1216 0 R /F49 1257 0 R /F50 1258 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2020 0 obj << /Length 1441 /Filter /FlateDecode >> stream xXKo8WX"%j=4mŢXlۃl+[JrjHa>N")q8CήބR &lj'IRB?-'_y=>ݙT!9S:qY%Sg3/TuCg=nE\gS9-8?ΗبնΊ(ꑐN\B44SvfqH #k^wr :|P$SRc#V٨-qUG|i7*zf` "LCgY%&|BuАOga\.| .@!* >!mS!xC5o<&ǢXFG%%2J@ηsVv:Uh򢪳9 I$fA 3PS.<'UWIآ0_ &ٺҪCw7=.3 #B.z[L}1/E#e3P0Yƚc|[Ya~p"vGF=q6 6}$zс:OV1>'"CiG\ۅ#- o sD}`9/ml`$jF5鯅>[*ժT7Gb>I9xw{BW~0GS{Ie_gK%3gaIIt7)ʚ-6YAm~x!E{4eDrՆ̞陲<"I960:4>ݝB0+9OٿTBH1_Q׊a6OC hpj >Oz@My ZܗY7N&:̴)rIamoJC"P7-^ƫ6Xj P]yqQp_Yة*]pLm!Rp k]ͲV{lRS]*ɔ )2B5O £36NU"Rf6V 6e 6ԯ VL ɵ{'H5zf-,ゆ*4=A343W3ؕ!槑2& mK p{xݶl?" f}FFe2bmu7HEt7d#`za6x>7NI m`I7EpT]W!FmBhm[6I<};=9xBFUV't [HUh{VN_KHaQGy]ZqAqEfox}C_&޶Ovm̄C /Jjx†zCGWâ?C󦤶gb3 /!}jJ@-@Xs-ZU> endobj 2021 0 obj << /D [2019 0 R /XYZ 57.056 708.045 null] >> endobj 2018 0 obj << /Font << /F30 1255 0 R /F18 1216 0 R /F49 1257 0 R /F50 1258 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2024 0 obj << /Length 1329 /Filter /FlateDecode >> stream xڵXKs6Wfj7;xꤑ-L)Q!] $r([듈>vWXM0Fd2((!1ŠN_M5QAmm;btwOncze`ɾ29J>.M5!E0**E,c[{6 ]Ŷڏr5S9t HUMgdFh?'0)IMfs0C /)I4C&yZ'1{Cуi)#4J#K(Mqg!_gof:SMnuyXZpT%N5@=z&3L`zBL)Nm )YΟSEڝ-VeCO8V~6گ56:1J]u,<z> K#}}$R;-?at&o7~d;Gu6< P;@ﱅFIVmj۽;?hΉbO/ -X2E4.4u ] 9HQFAh mݍ.oՙ"Lu|=ů-[;JetL: >Tz.Yӑ 8'GLfSubn@ޒXW203Uu&FV1D?OBr tݿ?}GB W_Gl]KjYuue7nޅэ吆 Q& j:P)J'^`}LB!sb|܃:P,=&0L70Y;'OOO 1XaQU\j+ރs}{@`^b, @[VKK5k}{V&oOI(uq8Zx>)R%Rq>+F#F%┝1~1Fc#xa*(am~El~XOhY+;Ŋ@D$fU&d\Avyu Wp1Cm!{mU{Ls%XJAb3y: cНVZGt3n"ːd'(صp4f@vG $Cp>땫_uBԞ P}7ٻnivgX\'c%J&eIӟ.>zȾ?S!(/VΠkD#KrU McoT!E eZ ]{A/p_ۢ%%UB3H}4 6/+ {^1ehwK>? ,t endstream endobj 2023 0 obj << /Type /Page /Contents 2024 0 R /Resources 2022 0 R /MediaBox [0 0 612 792] /Parent 2005 0 R >> endobj 2025 0 obj << /D [2023 0 R /XYZ 57.056 708.045 null] >> endobj 178 0 obj << /D [2023 0 R /XYZ 57.056 401.901 null] >> endobj 2022 0 obj << /Font << /F18 1216 0 R /F49 1257 0 R /F30 1255 0 R /F50 1258 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2031 0 obj << /Length 1904 /Filter /FlateDecode >> stream xڭYK ϯQsK&*ԤAmU%ǔ{KݳsiSw~Q|!5+l! S0nqi+ſ?=+U,s_cV(ZXUqDt Ëu-kkf+M`/.` Ztq_Zgh>y?ORdOMMk S&6>r%o㪞 ɳ?W1~^J/W &`TOc,4ڐ_ 4s%Ρh8 tqM59EލMO|6h ?07''{i$A[qSݞ詊0O~! qQ`&W%"i_0!=h߂F94f'g:l2ٽRChsw:]99~kZPyi X7?`tY^ \T5q`"=G;mMVrI')|OIL_wug>H ba>i,MCGx0AmɇҊ,5Qo%aʨ`xV7- (.`2_TYR~(2~prC4u (?.WTvGgt3 O8] z s! i1F߭uӜf` 'w>$ bWQN9>O9Iw PmbFmvE1k}*:D5&ĄD(LBcE 8À< ՚*2<3&P0i#.$XԘ<5 ?2م9Szp6{Or#ֱ*MٖX9Uo$L7_+lȒET9ǣ67sW} ʊ+9V(7P2דT!=SbҎu$6 u|z-U$Z8ll!54ƅ3655[\뫚.D [Y {׌TTF|`{w1V;1bFEflv3bIKu>-KdFc$W5f5IC{uXN\Cu:BA 1MKȧ mFM8 zLxr o1&&fs\@QY=0١-.w jl?tڄd+.ҭ2&|]PXDvSh.Hr(r}9C:(RLOD^.| cP\K3t mQHK Aв"y@0B^,sNjN(IQE'h\V Knl~^S-|'9kr.._xߞV/Uh.GD'].w>V_txҕ9{%u endstream endobj 2030 0 obj << /Type /Page /Contents 2031 0 R /Resources 2029 0 R /MediaBox [0 0 612 792] /Parent 2033 0 R /Annots [ 2026 0 R 2027 0 R 2028 0 R ] >> endobj 2026 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [235.418 439.718 243.264 452.337] /Subtype /Link /A << /S /GoTo /D (chapter.9) >> >> endobj 2027 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [255.865 410.826 272.815 423.445] /Subtype /Link /A << /S /GoTo /D (section.1.1) >> >> endobj 2028 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [225.86 395.716 233.706 409.664] /Subtype /Link /A << /S /GoTo /D (chapter.3) >> >> endobj 2032 0 obj << /D [2030 0 R /XYZ 57.056 708.045 null] >> endobj 182 0 obj << /D [2030 0 R /XYZ 57.056 683.138 null] >> endobj 186 0 obj << /D [2030 0 R /XYZ 57.056 335.865 null] >> endobj 2029 0 obj << /Font << /F30 1255 0 R /F18 1216 0 R /F49 1257 0 R /F52 1558 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2040 0 obj << /Length 2058 /Filter /FlateDecode >> stream xYK6ﯘ*-K6IeTe+qNIPec̿O$@0fwFt_6o޾ c$Slo4'maVlv7ۿ7?}l~ѷkjstK XcZ1zzzJɐH-nֲU~ ' =_}Ѥvz[bR…&⥉afg%[Ge1׫hNWRL!A;Q뗭!Pfrf$T2PFS{QF!C6!K)ioACΈlpzxgU\qH'Ce!rd3WOTOKt39NCp*9myXVr81 8W8k/!PE溪pkzOdZ*_#.C(ԠwD%1>R2o'l-%x4DQ"VXXi^+_5+"8Z2B4c}5<""gOת²<n`}%K aVͶ. C^yweկUNI6'kb*^i-syMm_W0f?SuT7Tl5Ru*ܩ۰#Շ;4CST4^n:>/.-򝧻P+cqP@9g'lߕUGq=G:NayXMYeB 07`u,dF*œW>m[ yKg;D,pB=lrѸtgJiCNFK&x#|d"OS}]l<{Q?> o ҝRR }CC![DqM_<=K@7^6ty"yI2&t* Qٕ:z!ep0{`oMv_c!ND:&N& +Iebvw2W-d9g2$GX/+))V͆3Ý> \[%7ZpݝG#xCr)4x胋JO=em[$̾`%Ku%*Są &$< x)/(cq_$(nR̸*b&Mѻ ŶZ }(@ |{*/|QCsoO8]aģȓEλt|;2a a",9;`% bo&@nͅMMfM15[0g7Ftx>'ϏAswd )&`HpO`yqgL JX)CU.j~z, df0?^2V,yKaR/# c!56gHzwtlAߺ0j agYh= o~ڼJ endstream endobj 2039 0 obj << /Type /Page /Contents 2040 0 R /Resources 2038 0 R /MediaBox [0 0 612 792] /Parent 2033 0 R /Annots [ 2034 0 R 2035 0 R 2036 0 R 2037 0 R ] >> endobj 2034 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [445.136 402.225 452.981 416.173] /Subtype /Link /A << /S /GoTo /D (chapter.7) >> >> endobj 2035 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [156.211 310.071 164.056 324.018] /Subtype /Link /A << /S /GoTo /D (chapter.8) >> >> endobj 2036 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [273.006 271.216 280.852 285.164] /Subtype /Link /A << /S /GoTo /D (chapter.8) >> >> endobj 2037 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [156.211 232.362 164.056 246.31] /Subtype /Link /A << /S /GoTo /D (chapter.7) >> >> endobj 2041 0 obj << /D [2039 0 R /XYZ 57.056 708.045 null] >> endobj 190 0 obj << /D [2039 0 R /XYZ 57.056 452.088 null] >> endobj 194 0 obj << /D [2039 0 R /XYZ 57.056 162.707 null] >> endobj 2038 0 obj << /Font << /F49 1257 0 R /F18 1216 0 R /F50 1258 0 R /F30 1255 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2044 0 obj << /Length 2167 /Filter /FlateDecode >> stream xZKsϯpDME eJ[6ZfX(E$ή}؜,dn/>$JwFҔP~ܜVkIeV+J]J??DXFqLe\n/u'XA+@A>}&m'9ѹ-mL cD+6m #Fک$UVFFja|'Peh˂erؗeo/TBC(CC-cD x1<<xnᆸ 恣cy)&20M*`[Lx檓jWdSƶAmݻt XFsϱGEla9QHQ@.|!fA]SQpK;͞3qL ՖhVR6KSYP'$&lRq]z>OI좠!iDC d}Y8.fv9K.F )OB-$dl믟>#@*$ 7mՇ$uo%/#k!G?jXQ s<-aYؿ_{nhH R5%=d\SObsKZ"9!qs3oS)֎b' ;|K -H6˜(F#s:C:~߮HmИ-b }1I6GqD l̍+yhf*9K.4v&`X5q,s4heI%cS+#r~F6Uԙ '7O[l9arA`5?U ;h _iZ}X;[eHӂX#"%Gj} +_m'!+})[3NJ-Hɐ吒44,XUh/'->'; ;/j71mx|ó8X@c>~vhcͰ/0exhD6#Ź/ʡ)'6͙ cf%%.BNQ!$YfcFšˇb1_}c[F[IN<:MT)da⮣FwB@'T~NHr.6d'قE.d9-71yu)F$0%gOo󻡐ܦ3\)p~%ФYI)ԩ92[`v#2$|Ͳ#?@35Xw uMIKx. H{nH&W|" %\ %9d$;(V0nT ÎJPCau >4Iai%t-879e/[)=a5uKla &R96i`R3zR1u?c1Y;"EƏ8Ҝv;<-Ҝa~}^bL~CӰ75ۜ z<; xáɧǢ n ){>*8Q529duF{!\LlrDTB7`iMMpKf?S 77Wd6\Amh.}[I>K7b_\ 7Ǫ..[?7{(s> endobj 2045 0 obj << /D [2043 0 R /XYZ 57.056 708.045 null] >> endobj 198 0 obj << /D [2043 0 R /XYZ 57.056 102.565 null] >> endobj 2042 0 obj << /Font << /F49 1257 0 R /F18 1216 0 R /F50 1258 0 R /F30 1255 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2048 0 obj << /Length 1646 /Filter /FlateDecode >> stream xYM8WdO=evS[9ɷM1U 8'- 63S{C# _-w?R=)lŊHf*j>[mg̗0|`zXx.>(L8WD =ܬ9 TΟt&_&bhLŒxgUWz^Sgb'[Ξ\So,b?;:+_- >)kUrqQ}d+-R2GH{և!wo~],U0y@vʜp^cWxH="LK_+o>k EcM J;dns{w/j}4#lc17DRX`pх|dEF$ IdתNoq7/F'y&-aNFݝ>5m }<܃WuˬN.sMLuŕSPw:=Sh'k{nR{ӏ(f95NP^ %gMއi%5aBt1ؘ*X4~U+~dC6;sGr sN&)CG?)"%Ⱦ"&eh0qRT5謟L֔Uٿ~&jt,A*Dz~k 1:) {~,(ՋNEr(F'.IZixLHZ{6#+3sӋv{›4 Zl *\ Ԇ V1RodWrKDc}50s4Yrt`liMˤ ALRbI찟 hv{${JAU>?dEpN?Uq6u.$E60µ0ytN&1s$tdJxj-!hPc t M):=p}wJ:O@ XSőbC0>ksḏ%OO5XKW ^ LԂG@@Bo 9x D:P VUVh? H?瀔SM(QVBπ 2y~~bHGXUfUb 0܎ pI5p\+UJ cU(GK,\s$NGguN kp B5K{`= 1&Uc.7Ѹ$L!Ia qUk_}(UHWqk,)|~ +v3qcb$Anhl+(˃S#sl{j{$ 4ҟ2 /V:p|Fdǖu5!/9F> #fJG*ȭ^. =x 3G}IGQt`70Nc}.e!5 }1 &y&+ cVoy@\ߘ.~/WLC%*XO"}{@v°+6&|F|q ~$VdFea6JE=NXR3E JX_ϰ@g,Nk?P cZaTo,=%]ښ`snYHODw"8GVu~ݡ{.mxW>׍{D^AL"8,u? C{p+q^4l&`g!3􂂍bT-"w10;p]v,V#dPx/{|FQNMUǦ&0#X|!bS+"8%Fk֗x>*3J>7W5a0`<_3uE'1T5_,UouoZOeME{HF["Cw4!pG:荏6'&(lb,%Ƥ}Z7UG~+1w߄6ҫFpE6%X!p~&5!~9lD,UyLaP?Wd8;(cޞ T!,yW gc<"E }eIbP㜘}$vOk.wD{tzH^( ix<@`/|3|Y  ruhKGke3 W& Oz}BgNlߝpzP-aX:fcVD"tQM',>V: <as"OH*8i[uSV&Bh™05*j.. uatzMX ̑O):W?Hq)P(k"!؞RVjn]3vMG2+~_ &Aox{TgBOܐ-ۅzҌ:3upiK;3bͭNeEvV'EGEIOr5}C(+*U#@ 0+_XE{ .g8O祁iunm :߇!(;zi+Up-i炅! j~G@-a4Wټ/AtQ. endstream endobj 2054 0 obj << /Type /Page /Contents 2055 0 R /Resources 2053 0 R /MediaBox [0 0 612 792] /Parent 2033 0 R /Annots [ 2050 0 R 2051 0 R 2052 0 R ] >> endobj 2050 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [330.8 112.944 362.708 126.892] /Subtype /Link /A << /S /GoTo /D (subsection.10.3.1) >> >> endobj 2051 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [389.005 112.944 420.912 126.892] /Subtype /Link /A << /S /GoTo /D (subsection.10.3.2) >> >> endobj 2052 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [497.883 79.915 529.791 92.534] /Subtype /Link /A << /S /GoTo /D (subsection.10.8.7) >> >> endobj 2056 0 obj << /D [2054 0 R /XYZ 57.056 708.045 null] >> endobj 202 0 obj << /D [2054 0 R /XYZ 57.056 683.138 null] >> endobj 206 0 obj << /D [2054 0 R /XYZ 57.056 504.167 null] >> endobj 2053 0 obj << /Font << /F30 1255 0 R /F49 1257 0 R /F18 1216 0 R /F34 1559 0 R /F37 1446 0 R /F50 1258 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2059 0 obj << /Length 2191 /Filter /FlateDecode >> stream xZIo8ׯQlKe,Bh[q/Te~}?.ZCrTaN)>{͏FTn7J}o~$۔q$շ9g"QAAXN#Fd6-c)EJgutqȣw.;><-t2hn$8y1\|96@/{42j"Ҙ]|@a(.jعRhßnP9j<*mGIFg5Irj|9cTU@Ѡ.İj'74LiyapL 6Wy>4MDNV\$Aru5ŃCӇ _~hu>fHAϷ/^5Ç kXnN2< ǟb@xMXeuy kkk@S:WTՌ +b|ϒ4]`L$٥0qa-|$j>1OY|O/oc*P(qݔZw`ήg_ySŖ,RK@"X 5)zOXE-WUUn}K0 MQUnb<$b`XPd/lt8jTt2q愯!3jj( D_%3/o:Mh)iBz \=fQY)H1`'~N9IcA?P' Pؽv\^f $d&L%99#36>j NcBL[ieu9e&:̔HhziLҙ3/IXhͼXi'u{IMԚ.ZR9I RvH>D;bVd(H84)N\qr'S"N吇y-9G!6=sx ;3EjWmy.HFR֧漨ϋPVm\yt #vUK(YE&Jv 1dEVɊ: 1, ^p%nM+XsXKڝ0;7Y'HX 'Wvv~}6zOL{k11U/nɔ%馤]QP W M-:$h̆47 A0f?}8TЀxd~ۜD?08DMonƣgB7rr@yfP6TQYQyߛB7o_ %FZATˑRB^y8b"&`̖E=v(6N^;8'[ ŐUǃݩ L{\t%Woi!G;-P0)mғ<> vmiXЦ[~(a2 00TytNɄWJ' HPkEo6;lav1jò>~?ZwUs5b`+Øy04diCٹII͒EzA7DjxO*7C<`#޸c9YN-<0CzXwҞn~^hW-~Gqoն3C{ZAۺ{uyO*Ky;X|R$i~nIv5bti8ܗ]TfO`0D;$ܮ5J,C!GW>ewV]!miX2ՍyXu'Ō׏{Y> E mWH\ FIRPѸ I Sj@{.tL׻P]{9̌@rz uSc7ȂIR@r}|>v//6p׀﷡L nmY9-l䳙89'MҾ%h9y ["H9wnE endstream endobj 2058 0 obj << /Type /Page /Contents 2059 0 R /Resources 2057 0 R /MediaBox [0 0 612 792] /Parent 2033 0 R >> endobj 2060 0 obj << /D [2058 0 R /XYZ 57.056 708.045 null] >> endobj 2057 0 obj << /Font << /F49 1257 0 R /F18 1216 0 R /F50 1258 0 R /F52 1558 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2064 0 obj << /Length 2484 /Filter /FlateDecode >> stream xZKsϯБxJx'䰙xr-6k%!%O7> ZZVrF?4ջ/]0F|quPPJ3ŒX\m&oW̰)7kч*MUr:9/WCWJ2<==EGobZExڍ+!xu޿[K%ZkoSEUvnΖ,)8[$y@嚠1GAa*Xk+ʿζ[4"X7ImKtdIgm3>IVn|M#=,ݢ'3245 (q mF;L f94'}?Xfl/ؚX(bt̼%8ȠayܯPpƫ] q4>YWEiU%`We[[u`_l=4L7p*ܥ7=N%ՍvbHmQf[ -&sCPq 1}g6_{sT@Է.4DC IE]laaKns{sToڇ[a2 G @Rc#19t »ƪlApXf)Ec76{}R:>euXT&ad!?}VB>>?xњk'}@baA+.qYVQl U$gH žBIo&B#ahx%mu%CCuT7ʮH.a)%uۼiNGb48,42MSHhImK>h4ƮAfJ:kf Υ dK[דg Jv&`9\G+8J &_g#Ў.I޻bCbC"&fSK 0V+ ~`c[@#d>65*gmt_y7AQ{>u/]p֣3X 2ZuAz{䛎\*büa22D$P}_8Sd,URZ"UjR)7qH$xcn܏.i+R>MA#@, 8ۢx%͈H%QDK~N[7l]xms" X]HEԯI -Fkm_Bf3,H`s֜)Q.P5t!Yʈ ,! VR9,3|Y㈩~ߤt$AM\Yڋf Ȇs Fn,[NbU nv h4̀h6q0\iGuC3>DvH tu&6)`b؄ l<D\3S8xbcR$NS' W_=Jq!J? qp2XC!8ot7$6M6Y_g .oDtl~ Hf jB 3ʇϓ@&b4K8mIy !Xqʭ~[F\lrEt,j!%"B: N{^EעST؀10'bZ{p șI[ү 1𙽅SiWX9s [~wU4ݥpOhi(9d9TݶE޼w\5/Zӝ3Ől Is1C> bBP9eUl}.C;p|)jأVq -Jh:9$'!qsD>?"AiZ撺5lٳBt5 4m+U xfp89Vm(Z^p mT'4otSf/;,J1 aXb3v .E0SѴORny\0ı-05熃9+ieH[U跟KΨ/wd+;F 2UE:d۳iW[cGurNa  > endobj 2061 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [489.788 448.958 503.486 462.905] /Subtype /Link /A << /S /GoTo /D (chapter.20) >> >> endobj 2065 0 obj << /D [2063 0 R /XYZ 57.056 708.045 null] >> endobj 210 0 obj << /D [2063 0 R /XYZ 57.056 535.943 null] >> endobj 214 0 obj << /D [2063 0 R /XYZ 57.056 203.24 null] >> endobj 218 0 obj << /D [2063 0 R /XYZ 57.056 93.982 null] >> endobj 2062 0 obj << /Font << /F49 1257 0 R /F18 1216 0 R /F50 1258 0 R /F34 1559 0 R /F37 1446 0 R /F38 1663 0 R /F32 1560 0 R /F30 1255 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2072 0 obj << /Length 2062 /Filter /FlateDecode >> stream xڭZ[6~_# Bgr6JRu*5c*\|dvԂlǼH_$ۻcDRo IB{BQm?&͟ " pħ=u-r3{x%3! Sfät Keivڝjii`|(x->rlso?ĉ\) P.$UP ,1e@(3F4>H3J6VF "LD jO1!H@5LLP5 b;C㕎cݥefԞcTC@5"LL./ -1p!-(YDw;o<3&HJaD Y՝&D5ѿٝa$Ѿ;ۿqUz©zuU9#fPQ%kZLM#[c;by (d?:<&0 Δ2X1! 7 r:bREoBH[nb0/u9d#{m)h`Jnk9 ݔQe+zE$VC3Fj(Hj&+(2;sֿJs*z`IFp**Sm3W. ]8=csR l…s <=n oް[t4?/ >8:.2+Q,Y2&յ2_Y!)Nn}{OluӦuMFzokC>a3 hlnd +p>7yVX5Vy#A1uǴڹsVΆaDѡXK06#,סeK5Ǫ_fc-[~ȿlT!)6a}p>dǣ/u( 04ZVMk+OnQ7_Xj C@JuCu`!^f9?wupNy-w$s-iE&%bBGDJJD7ߴuU>V! ]L`Kaw?Ru@diשL.k/hDC(rhۙ$ endstream endobj 2071 0 obj << /Type /Page /Contents 2072 0 R /Resources 2070 0 R /MediaBox [0 0 612 792] /Parent 2066 0 R /Annots [ 2067 0 R 2068 0 R ] >> endobj 2067 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [330.727 430.751 347.678 443.371] /Subtype /Link /A << /S /GoTo /D (table.6.1) >> >> endobj 2068 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [372.814 430.751 389.764 443.371] /Subtype /Link /A << /S /GoTo /D (table.6.2) >> >> endobj 2073 0 obj << /D [2071 0 R /XYZ 57.056 708.045 null] >> endobj 222 0 obj << /D [2071 0 R /XYZ 57.056 683.138 null] >> endobj 2074 0 obj << /D [2071 0 R /XYZ 287.667 220.407 null] >> endobj 2070 0 obj << /Font << /F30 1255 0 R /F18 1216 0 R /F49 1257 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2078 0 obj << /Length 1575 /Filter /FlateDecode >> stream xŚr6~ . Nf2j$ ZmN%ř  2!'¼qp>d,`9닏q4?d\g_muƱFPKzʑ4s^}5 A}FV+GDl>N=*m+ <#'F+u%(aYl)U|)7Q9E;}Z#^vCy-;ۗ61`4d,?*UUjb1@=WGs~?mf&H_>q1D$y": | M7$jRO{Oz@GpK:"mv6hzBU<1@=DM-VտeK7e2:v{81&F CDth!b@T=1%1 N嶞ߓqu2_>̌HR ČpgD3* gif''u&9Q2i>&2 9Y_UON9 NЧI{˨ pN1ʡ-B:' =:$.rWo͢>l_S0R;ˮhy]q:@T=C||qmUۍSJ:4Ͻ1xC9J@:_R *Jj;Q>0->>viv ڮM1z4`1ffL8n-3oM PҤd&yOS(O. M7>v0oa$',=$H $0$=Q Αb {BCݑ#:qÙphb4zBUG"i %4%G֣A9ciT1hQ4& DʓKciJGTzF@ʌ:y0x&UGMzh%qR('LD_@B.W'(1aw ;#<YK(ی ՓqY|ʞji mf`[f:c"k0-3fǤuWTQs *xgB q1f@=3x*2s`R֠襝_>PH J|vōvrY0PzU=3Vt$%O0S1P-N33 Yb{HB!Qg^%_iSP.*mʜa"Y e-+]uJ'hyL6yȜ9C!ҮdC`| s3Ӓa@qjH]3/hfN"o[12ޗbCŝC<|Rn}z.բXCv~`F`֎pY=WKޝ&ez6NȜZQok<._8UyC\W{ihanoF 2e 3qvH, endstream endobj 2077 0 obj << /Type /Page /Contents 2078 0 R /Resources 2076 0 R /MediaBox [0 0 612 792] /Parent 2066 0 R >> endobj 2079 0 obj << /D [2077 0 R /XYZ 57.056 708.045 null] >> endobj 2075 0 obj << /D [2077 0 R /XYZ 112.405 222.75 null] >> endobj 2076 0 obj << /Font << /F18 1216 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2088 0 obj << /Length 1108 /Filter /FlateDecode >> stream xڭVKo8W=@%B.v7@n/I6~g4lrzhbia?*K(n^eVLIkGb!0$ڗBr*~<]|Q{'F9J$_gOɺ~KE4PpwO ]~$Wx'tg#K|Ubl'%$hd83s!=ox,\EgcNM>c]<&[ARAjhpWp^~@LA/\U`W%w N_#$⅄|a ӝV4ADJd0&HhiB[28ˋ10L@k8VfZ@ħ3[%<޺bGP]@poP ;#87 }88Wd`IqH:"'-h/>d :vX:9VNa4!pI/{9 endstream endobj 2087 0 obj << /Type /Page /Contents 2088 0 R /Resources 2086 0 R /MediaBox [0 0 612 792] /Parent 2066 0 R /Annots [ 2069 0 R 2080 0 R 2081 0 R 2082 0 R 2083 0 R 2084 0 R 2085 0 R ] >> endobj 2069 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [145.22 655.741 177.128 665.903] /Subtype /Link /A << /S /GoTo /D (subsection.10.9.9) >> >> endobj 2080 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [176.677 613.898 214.438 627.846] /Subtype /Link /A << /S /GoTo /D (subsection.10.9.10) >> >> endobj 2081 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [480.903 600.116 518.664 612.736] /Subtype /Link /A << /S /GoTo /D (subsection.10.7.10) >> >> endobj 2082 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [97.031 530.212 104.876 540.374] /Subtype /Link /A << /S /GoTo /D (chapter.5) >> >> endobj 2083 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [434.499 498.995 442.344 511.615] /Subtype /Link /A << /S /GoTo /D (chapter.7) >> >> endobj 2084 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [451.407 498.995 459.253 511.615] /Subtype /Link /A << /S /GoTo /D (chapter.8) >> >> endobj 2085 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [491.077 498.995 498.923 511.615] /Subtype /Link /A << /S /GoTo /D (chapter.4) >> >> endobj 2089 0 obj << /D [2087 0 R /XYZ 57.056 708.045 null] >> endobj 2086 0 obj << /Font << /F18 1216 0 R /F49 1257 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2097 0 obj << /Length 2183 /Filter /FlateDecode >> stream xڍX[ ~_quO.:EYD؆I/)Rd=HES|tȋ\/6^l))䧓km:I/֔8v'O\{=>w͗]_hQQEA>G>?|ŋVnPer 4 H̸R${Wf{0ld߆|3Mt7T ;vͅ%X(4k yh6Wa%I9NjI+`ૃ bP2|lY2 aŚ0Rq5Np1j"it[0i4ZhDtg"STV*NbOv"Uo|_5J !F:H4@ӬX–AҮ)((ӑg\. јiU#&d@'JF 3oU}hF_R:3CIPW7HހU1$8.MV!9L&HБePW P Y4U>j3Ǜ^Im58gfT>]>%8 Oe21V]l K9 A*%tҞę! >AVg/~Wڣl(sZ+'PS É5|N ɸ`zSlhe&ek@J AYzx%&msL\׳mW YڌIYѭe \<5 'hm3Â~Y`9^4>ŀ(-?v[ߘzDZ[_8PMC'N_w>jSDp*]6V?zf8ᐡ (:c(;- qNjf֞p6f<о%DT =c)" !8냊U ˡ0 Y3־5`|@Y-!])w28TJ.g8dSNwkq⨛#Jߜ2}h U,  ,0!ACԃIgw7s|A_/9)EQyR‘8)I R^œb!B$92KOBKy,mRԚ\? o蓓kjڠ]cGNP)ofIMEY`'U]z!B &wCY@  6ԍ"x9F,1lzX ~iɞAbcDyAεej͏FL /< nNG?a+ 'B` ݞina'lY|sۓj:I3T 0 ̥c.ӤuUG`Ap f;Jl9NtGiDf)xoz:.ta^|c+Q6+2|M;U Td"/'UV+ YX8ZOڢ\l}F`=/PJ{O&EJ򙱫ay+MgBi%{mmx#dڋ fݵ涾TTQE~Z"]LOᇸ=]oi!?_j{$50ezgUHbީM~?%/g&fRe~wVwXbp>ǦVZ ?bTX=IeU?xp.Je9!Ua* F8Cb/$b!aʑ(PH:Fy9WM@g/G\sŜ*SЬDdz{bKtQ{ڇ>f endstream endobj 2096 0 obj << /Type /Page /Contents 2097 0 R /Resources 2095 0 R /MediaBox [0 0 612 792] /Parent 2066 0 R /Annots [ 2090 0 R 2091 0 R 2092 0 R 2093 0 R 2094 0 R ] >> endobj 2090 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [306.632 424.608 314.477 438.555] /Subtype /Link /A << /S /GoTo /D (chapter.5) >> >> endobj 2091 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [119.895 381.27 142.698 395.218] /Subtype /Link /A << /S /GoTo /D (section.4.11) >> >> endobj 2092 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [180.896 352.711 203.699 365.662] /Subtype /Link /A << /S /GoTo /D (section.14.3) >> >> endobj 2093 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [228.371 352.711 251.174 365.662] /Subtype /Link /A << /S /GoTo /D (section.14.9) >> >> endobj 2094 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [354.34 338.597 377.144 351.216] /Subtype /Link /A << /S /GoTo /D (section.4.11) >> >> endobj 2098 0 obj << /D [2096 0 R /XYZ 57.056 708.045 null] >> endobj 226 0 obj << /D [2096 0 R /XYZ 57.056 683.138 null] >> endobj 230 0 obj << /D [2096 0 R /XYZ 57.056 307.253 null] >> endobj 2095 0 obj << /Font << /F30 1255 0 R /F18 1216 0 R /F49 1257 0 R /F50 1258 0 R /F52 1558 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2102 0 obj << /Length 2383 /Filter /FlateDecode >> stream xYK6W m?\8SE擱8c„*IIco  ˥C @oXժ0J :X!yl{AA!-4>?^FJ!XA1Csd4F$&:"`jƯŘFT'TaF[cYbD4.Їf8 3!y2L iNHA-S՗NJGzD#N 7!2OqPƀIBG*u::ȴb(簈]k3k߮[uʅ3* Pü r:_-k"cE' \~rM^c^Jh3QIT7 a$wng`'^0yK8pCa/D6qY24yI*poU*4 d 2 1Wݨy6Q*ؚJ)t|Q'g Yx( )kSo9U ,f- YՔE;0Lio<2W}.V{e_kQtr0[`h;^3jh Nne8E)3K)d|^;lv%Z,]TIǬ+<~aS<կ>0lqnKǫ}~bWzXl3ծ9G%L!,B J!n)mW^vx Aq~jބE"EW)WyT=e'b&J.bLXMEנ1L1%Ea iZFL sĔ>陫E; ,ܗs :A:r?)_j3|UU(;-t {̥㻘ϲ*&X߲.ʻ8j A`YGR~Ri:cz$d[[ܶ7ar{ޝ 5!Ph^X-YqYܝ"_Q͎uWw%W NKL4aM }SL26gܓ>`b6U3tTK6ao1Qw%+|g;9:^g[N,DQ23ܣ*F }شrV} $Eu$-O\v=}KȎeA?>(~霟7e=7h/IWk/ڮqqNGNk1 c2ק>B~ ]yu0,U8 d W=yWo_ /7B endstream endobj 2101 0 obj << /Type /Page /Contents 2102 0 R /Resources 2100 0 R /MediaBox [0 0 612 792] /Parent 2066 0 R /Annots [ 2099 0 R ] >> endobj 2099 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [514.162 586.59 531.112 599.541] /Subtype /Link /A << /S /GoTo /D (section.7.4) >> >> endobj 2103 0 obj << /D [2101 0 R /XYZ 57.056 708.045 null] >> endobj 234 0 obj << /D [2101 0 R /XYZ 57.056 474.51 null] >> endobj 2100 0 obj << /Font << /F18 1216 0 R /F49 1257 0 R /F30 1255 0 R /F52 1558 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2106 0 obj << /Length 793 /Filter /FlateDecode >> stream xڭK0)8xuVKHb@dB6f=",E&e\DBbu3&)YweTxCBq%wXE#9q(%Ž|WDěcU m[;EW>%pXM6 s0-`ic1=J@x>h p]2 +$R>ѲLo.SiBtlrıQdc&Pe(;=R` endstream endobj 2105 0 obj << /Type /Page /Contents 2106 0 R /Resources 2104 0 R /MediaBox [0 0 612 792] /Parent 2108 0 R >> endobj 2107 0 obj << /D [2105 0 R /XYZ 57.056 708.045 null] >> endobj 238 0 obj << /D [2105 0 R /XYZ 57.056 683.138 null] >> endobj 242 0 obj << /D [2105 0 R /XYZ 57.056 545.355 null] >> endobj 2104 0 obj << /Font << /F30 1255 0 R /F18 1216 0 R /F49 1257 0 R /F50 1258 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2111 0 obj << /Length 1522 /Filter /FlateDecode >> stream xڝWKF WTK#4mA^ǶPY2חRx|×~X?{F eK\w Dlͤ0Z?ׇfF/x2H&M~:VzG^2]FodRd* **sԆĬYZ Ac/.6TI˕Jh?RF4]T ]6ˢEeOu%+oЮ.K їб[ 8#C>8 g4ʼn_n0FJX}mB1h}l;.V7joY)KŷAd7L;8(S&A=8GC~<~fO/(uV#Trم/PJ d :6$ ,+7U˛B$CVpN F?АSt"v&&[YgPJȄ;èzr_mv!G<ٍ4Tk@|m™} ylP$NtPA2":MGmU<~eU^5Q&gH-Ec!w$T>w<ɏݡfn+OysNlӯEJt ;#;}?u?6 2\aqeJ.R#(F86ˇr;&tyxnȩj:71pW齆k+ǝA-shﰖȘqMXJ)B5 QAhh?l[x[M6јspl4,ҡ_NH2a4ڡi;D vV@vg*G-K߅bfC-FAs㼉ACaLda 00VU v`TAK|Ȱ6nN?(vuv`y"fk;C42P T!Y0)UZtlW6F4O;TF} w³SP cpy7V[D4R^FGT/!VI`ic v 4J$:Ѩv6:M'hu"x5CU7K2sy5Sh V8毓('"^*|c IUn>YۡA)턄ic0`eh endstream endobj 2110 0 obj << /Type /Page /Contents 2111 0 R /Resources 2109 0 R /MediaBox [0 0 612 792] /Parent 2108 0 R >> endobj 2112 0 obj << /D [2110 0 R /XYZ 57.056 708.045 null] >> endobj 246 0 obj << /D [2110 0 R /XYZ 57.056 683.138 null] >> endobj 2113 0 obj << /D [2110 0 R /XYZ 57.056 436.729 null] >> endobj 2114 0 obj << /D [2110 0 R /XYZ 57.056 412.32 null] >> endobj 2115 0 obj << /D [2110 0 R /XYZ 57.056 387.912 null] >> endobj 250 0 obj << /D [2110 0 R /XYZ 57.056 350.469 null] >> endobj 254 0 obj << /D [2110 0 R /XYZ 57.056 315.689 null] >> endobj 2116 0 obj << /D [2110 0 R /XYZ 57.056 268.892 null] >> endobj 2109 0 obj << /Font << /F30 1255 0 R /F18 1216 0 R /F51 1304 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2129 0 obj << /Length 1614 /Filter /FlateDecode >> stream xڝ]o6= Ċ(R_{L P[=-6QYr)IweՖ`}- $"(IiBŦZ| >餛׻O:CfH[VkXP{u]oWq<әZ8 ػ.:5;nm`^ٮX`ep1.t@Q5ˀ+w]T4DY;ۍ0! ՚8 dGd 1^Yq< zq-X5xuΨU!qVޮրP=Z˂][&J˽G\Ȧ`J G.9oEDV+GT`AէoOMд_cNpN]qk׼tSC<_[$B'}@s49}9x:% DPF!&ˣ4_ 3Cvr+"FI)z< ?OEwxX#+ZSmf4C(()6 r{O#j'3`;3^ﯛނɒsNZLୋ7. @4'YE%sy˒0O2O2 ) tVmA冄Υ1ͯ77 j`< "*B$xuܴwolS{;紞J( <Pz?I-{Pl< w>=yszAD'Ci9Iょ< m^fQ>>A2*\t&EGɸM(" h.mhφVFRuX <tݒޘa:Tl!ㅧ9;}s^?IVcؖtyȊ1,m+"9GУjU $]?pz@V gb,]~H~πttHB w,B4v>@[7ҍ)<˘H,/tK8Jm7.VgS-AL_c赾3I}bPo2Lqgyz0T/KxȭQjoC"O.~M&OG%$t_|Btsk;C^vŔGh{w65\}Ќ~L}pFQG,[~ ܣ0܌H8t1 ľf'Yc|ƅpEi.M[ә"=+}t]FgL-nX#59ZX%{qí ?0-b7jiS' j4i:|[|SkA, c ל?{4ބAa}C2KDPDх.6#>։-6@KV^7Ȩҟ"8tgC***NF}sa[XW"M-޺x}2p> endobj 2117 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./include/typeMenu.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 2134 0 R /BBox [0 0 82 42] /Resources << /ProcSet [ /PDF /ImageC ] /ExtGState << /R7 2135 0 R >>/XObject << /R8 2136 0 R >>>> /Length 2137 0 R /Filter /FlateDecode >> stream x+T03T0A(˥d^U`ah 3140## C" |@ 7 endstream endobj 2134 0 obj << /Producer (GPL Ghostscript 8.70) /CreationDate (D:20120127130657-05'00') /ModDate (D:20120127130657-05'00') /Title (include/typeMenu.fig) /Creator (fig2dev Version 3.2 Patchlevel 5) /Author (boldeman@hamster.encs.concordia.ca \(Bart Oldeman\)) >> endobj 2135 0 obj << /Type /ExtGState /OPM 1 >> endobj 2136 0 obj << /Subtype /Image /ColorSpace /DeviceRGB /Width 91 /Height 46 /BitsPerComponent 8 /Filter /FlateDecode /DecodeParms << /Predictor 15 /Columns 91 /Colors 3 >> /Length 451 >> stream x=n1FMK2w "EH9 RpH)(]^5bfefӧ#h6gt8p`xn_$34r.u~JMXpxdnɋJ*q>ӞPUbRȐHj۽~XGcGg fcY0u`| *=.([JGXF="RG!0└{) .1⾥F|yF32hF#Mux~Lh١AhFkD{_o>*{/>SVF*hZ41?"sW15k-=|7]z{$Sejč0ꑍDŕ4W7yވႵ_wVFAhF_F؈FCaS& endstream endobj 2137 0 obj 56 endobj 2118 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./include/styleMenuNew.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 2138 0 R /BBox [0 0 82 99] /Resources << /ProcSet [ /PDF /ImageC ] /ExtGState << /R7 2139 0 R >>/XObject << /R8 2140 0 R >>>> /Length 2141 0 R /Filter /FlateDecode >> stream x+T03T0A(˥d^U`ah 0T53CS#30B%+ endstream endobj 2138 0 obj << /Producer (GPL Ghostscript 8.70) /CreationDate (D:20120127130657-05'00') /ModDate (D:20120127130657-05'00') /Title (include/styleMenuNew.fig) /Creator (fig2dev Version 3.2 Patchlevel 5) /Author (boldeman@hamster.encs.concordia.ca \(Bart Oldeman\)) >> endobj 2139 0 obj << /Type /ExtGState /OPM 1 >> endobj 2140 0 obj << /Subtype /Image /ColorSpace /DeviceRGB /Width 91 /Height 109 /BitsPerComponent 8 /Filter /FlateDecode /DecodeParms << /Predictor 15 /Columns 91 /Colors 3 >> /Length 796 >> stream x=N0MK$J@ X  BH,eV @D$cεo:v&+ 39|w$FbiȠqF>>}<>>2|C#  Un\\\|Sj$KJ٢"#q%ő7j=2HI6?v_Gn~uu\Sr.e3eϑ??IΗfHgN,Ĕ^k}r#ؙp?2Hݶ%?5ޙuB# Y#!G3G#1%;4rFAhdl>fް7g='Ϟl"C437NgOE#5ޏ'\zJB# 4B# 4B# Ff?zN0=ǡAWR,Ӱ6FrPr!44%CY!U?RUX'7L,5RUe8E 4HIuN==yN6mWWsQ#ʞ]gFAhFAhFAhiSztm&E6e:Ј6s$|̢a'ϒH _}j6nGL{#rr0.jB12ޣursVrs#ʮY楆WYYҳԚ*fеrfIGFBy͜YR{^,h4ə%l> >> endobj 2120 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [92.795 230.315 109.746 242.934] /Subtype /Link /A << /S /GoTo /D (figure.8.3) >> >> endobj 2121 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [408.608 130.402 425.558 144.35] /Subtype /Link /A << /S /GoTo /D (figure.8.4) >> >> endobj 2124 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[1 0 0] /Rect [527.102 46.263 544.052 58.883] /Subtype /Link /A << /S /GoTo /D (figure.8.5) >> >> endobj 2130 0 obj << /D [2128 0 R /XYZ 57.056 708.045 null] >> endobj 2131 0 obj << /D [2128 0 R /XYZ 57.056 661.137 null] >> endobj 258 0 obj << /D [2128 0 R /XYZ 57.056 616.434 null] >> endobj 2132 0 obj << /D [2128 0 R /XYZ 167.258 399.192 null] >> endobj 2133 0 obj << /D [2128 0 R /XYZ 410.745 399.192 null] >> endobj 262 0 obj << /D [2128 0 R /XYZ 57.056 356.214 null] >> endobj 266 0 obj << /D [2128 0 R /XYZ 57.056 273.735 null] >> endobj 270 0 obj << /D [2128 0 R /XYZ 57.056 201.054 null] >> endobj 274 0 obj << /D [2128 0 R /XYZ 57.056 115.587 null] >> endobj 2127 0 obj << /Font << /F30 1255 0 R /F18 1216 0 R /F37 1446 0 R /F51 1304 0 R /F52 1558 0 R >> /XObject << /Im1 2117 0 R /Im2 2118 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2151 0 obj << /Length 1237 /Filter /FlateDecode >> stream xڭWo6~_!I&F![.X{P%:&*KD5#e[Kbwǻ>4Re%I<ҌP^F JMppѻ $xJnon社(%ehrJr#!SRhDq&,%lxw"~7T&$074UF%oՈVUg_o~y,! `\0RKF݈zBӂdˌHvSSpÖ!..5,veHɯO3J//s,R*%d K3t- %&eǭ<)м%>n\5?aPnvz;PU.iu}}pbzǸEf a}lx2X!J"U`ɒD$}!"+X4ugeïqP^M2>zez/дZ?2{w?Jì{ 'u? jĸ}̩L >֮ }(r ("G&ԓg`y?t.OԳ'㫿B<2;gT8`S۠]߶gWc68)OA})-ӧk Ci('=GA5 ,t{.nվC?$!_w [RNJ yE y2&$h6+N+/,:."i>\CaR\QcUjDgm{­|qJSO8x]ڲѯXGd 2QСQP>CnMy:)aSm+lhS8q`=tm'-ʨJW;.Lhhp$vrݜƶQQ 7,hg+qN.M;.oϹQ/%cu ǿ5mˍȑ(}p:.`ʥ o].RAivh.Gh}X[te]3\YpO/@ cT*fa1F!9˲ptljW`2*VUEffGN0c {˙c8S d܎q{Y\=^ɀ3mh%^'vR BE?u$a4j endstream endobj 2150 0 obj << /Type /Page /Contents 2151 0 R /Resources 2149 0 R /MediaBox [0 0 612 792] /Parent 2108 0 R /Annots [ 2145 0 R ] >> endobj 2122 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./include/drawCoordMenu.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 2154 0 R /BBox [0 0 99 100] /Resources << /ProcSet [ /PDF /ImageC ] /ExtGState << /R7 2155 0 R >>/XObject << /R8 2156 0 R >>>> /Length 2157 0 R /Filter /FlateDecode >> stream x+T03T0A(˥d^U`iT53CS#3B%+| endstream endobj 2154 0 obj << /Producer (GPL Ghostscript 8.70) /CreationDate (D:20120127130652-05'00') /ModDate (D:20120127130652-05'00') /Title (include/drawCoordMenu.fig) /Creator (fig2dev Version 3.2 Patchlevel 5) /Author (boldeman@hamster.encs.concordia.ca \(Bart Oldeman\)) >> endobj 2155 0 obj << /Type /ExtGState /OPM 1 >> endobj 2156 0 obj << /Subtype /Image /ColorSpace /DeviceRGB /Width 109 /Height 111 /BitsPerComponent 8 /Filter /FlateDecode /DecodeParms << /Predictor 15 /Columns 109 /Colors 3 >> /Length 969 >> stream x1n0EM Q@k9RHe6PpZV;rJj/^^~'}('cEbZy|~uoyǡG )K5ǧƲ'\2lx=渪HK2(Tcc}^,XJ\6? s mUI[ ZqY|k묲Ұܳw:~?Tj?3=bG \%Hy=rucz@=bx\U% X( ZX`kwH(糉GyU+eIekt~d26 ޣZZ{,-ܮs6ͣD)=6cϵǤoc9K"w/]yo9;qU8̜_K< G 1#z@=bG jsd&?$e%Rvocc,V1cݱ\ rr,J&cHw,9*Z?M<>ǾvWNcy=bG 1#WsEyx]=bG 1 fؾUղG'c{R[R=5Zϱs؇Ǚǎjʝey&SMfkF?[2&o-3jJ)9ãi{<9X2cxg׵gɍEX<1#z@Hz8Y=e endstream endobj 2157 0 obj 63 endobj 2123 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./include/optionMenu.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 2158 0 R /BBox [0 0 131 178] /Resources << /ProcSet [ /PDF /ImageC ] /ExtGState << /R7 2159 0 R >>/XObject << /R8 2160 0 R >>>> /Length 2161 0 R /Filter /FlateDecode >> stream x+T03T0A(˥d^U`hl` 4477V53ida`bfaBw endstream endobj 2158 0 obj << /Producer (GPL Ghostscript 8.70) /CreationDate (D:20120127130657-05'00') /ModDate (D:20120127130657-05'00') /Title (include/optionMenu.fig) /Creator (fig2dev Version 3.2 Patchlevel 5) /Author (boldeman@hamster.encs.concordia.ca \(Bart Oldeman\)) >> endobj 2159 0 obj << /Type /ExtGState /OPM 1 >> endobj 2160 0 obj << /Subtype /Image /ColorSpace /DeviceRGB /Width 145 /Height 197 /BitsPerComponent 8 /Filter /FlateDecode /DecodeParms << /Predictor 15 /Columns 145 /Colors 3 >> /Length 2059 >> stream xK6E-0{ +Yc] d8('V30Tl)J*YzEPNθx~,gLV4Έ +;g߾uRD/_ޗ9C˟SzVsn}}ؽm?v֡ђȋZ#5;w^~హsvý.ҟ[vYl+ˑiVus>muhdvۋ6f7"_N»:Q>Wݽkm rVzE{q.#i)A"8ﶕipg@dJ;Z9o Uϒc7|;K5H,+Iez}F9CgBŕߙә܎rƄ!g|rǨhouɜQLlwn9L-A8A53>9C3>9C3>99<ՀOX7pD-F*Ǒ3Rgx3]!g[-@~Ny"->LiV'9<}֣#5ۙrxl9O|Vaቢ:˫0&g-Esɹt![/n[#༭&t9C3>93=8KW?ӱ3>9C3v[@$ƙ gS2;jvjMSrj3#_,{4qiD{1kG;ICw-,qV7lլgyl?mm?H2ճ2g^˝5lr-3ř{pknR>sݗma5I-{a|‡!g|rƇ!g|rƇ!g|G4or]ݹ> |-ѴQ?`8 ϻV[[賓m!ȷuhvTAP~SnȖڭ(@sw;-ַ1:+<@w^9ۮ8יyaW/GR'5-c_y|%`dIgɖ1>oY,9]'W }%HdadW n-=89C3>9C3>9C3>.κ=wL\Gd9]| 1(;UҜjSCge;J:{AmYPd}*Ȝ"grƇ!g|rƇ!g|,GrFu)ᩞ3ZɵyI/ˢ>rƇ!g|r+gϟ@LPpZ:62rƇ!g|Kމ2J8Ln-[3<$NiyRu呝mqA,+nm!l[Ҕ;5'G[]@#g u# g[grƇ!g|ʕc_g?_ endstream endobj 2161 0 obj 67 endobj 2125 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./include/centerMenu.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 2162 0 R /BBox [0 0 142 81] /Resources << /ProcSet [ /PDF /ImageC ] /ExtGState << /R7 2163 0 R >>/XObject << /R8 2164 0 R >>>> /Length 2165 0 R /Filter /FlateDecode >> stream x+T03T0A(˥d^U`hbh 04P53CS#3B%+q endstream endobj 2162 0 obj << /Producer (GPL Ghostscript 8.70) /CreationDate (D:20120127130649-05'00') /ModDate (D:20120127130649-05'00') /Title (include/centerMenu.fig) /Creator (fig2dev Version 3.2 Patchlevel 5) /Author (boldeman@hamster.encs.concordia.ca \(Bart Oldeman\)) >> endobj 2163 0 obj << /Type /ExtGState /OPM 1 >> endobj 2164 0 obj << /Subtype /Image /ColorSpace /DeviceRGB /Width 157 /Height 90 /BitsPerComponent 8 /Filter /FlateDecode /DecodeParms << /Predictor 15 /Columns 157 /Colors 3 >> /Length 1176 >> stream xKn!֛H "%ym)Gr,|,-eLԃU¢5PJ^_+;W4`ڠ˟ ꠇ1\q\1\1UktϿzGaV';5cў[-TVIbX 0 ,4SЎ.5渽sKghYqC2 dYLN|}ATB77_ (t݋pJ")^ *O[ 5Waw̾6rel?,4\CDY1\%xYpD5uVbKϐZU\es:+,6p{"iv2MKh1tEБ\1%rա"鍫CǭC<`힜+++++Z?[4ə7Eƫ%l(<•sqF1wfHVQ[B:D͔Rz$HSV$TrM1rRURzߧEB8Bn;4+qReeK?-/!_MւV/}OdّI_m]i0.v8Y|SSSSSSSSSSĭMx>IQMsOz,qk+(i6{*]u)PAn5-k9föO4*nM1iЭQ>lC% Ouގ,׬XIQ8RUU5w~Zt.?[g* [ A3]^8?KY 7|Ow0+++++++++{0RG?I&9svj:4wXe{q=F}X+{eW\@n./h9fCH6__Yi"kXHXvqef-jc*zi f1 Zf?şQj}U)Ue9Ht:WgN.⏑krTpqÕ]zS#[gQ+&Y]u?IX{@0b):1++++>pL:T<F endstream endobj 2165 0 obj 65 endobj 2126 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./include/helpMenu.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 2166 0 R /BBox [0 0 38 44] /Resources << /ProcSet [ /PDF /ImageC ] /ExtGState << /R7 2167 0 R >>/XObject << /R8 2168 0 R >>>> /Length 2169 0 R /Filter /FlateDecode >> stream x+T03T0A(˥d^U`ln316R53CS#3 B%+x endstream endobj 2166 0 obj << /Producer (GPL Ghostscript 8.70) /CreationDate (D:20120127130656-05'00') /ModDate (D:20120127130656-05'00') /Title (include/helpMenu.fig) /Creator (fig2dev Version 3.2 Patchlevel 5) /Author (boldeman@hamster.encs.concordia.ca \(Bart Oldeman\)) >> endobj 2167 0 obj << /Type /ExtGState /OPM 1 >> endobj 2168 0 obj << /Subtype /Image /ColorSpace /DeviceRGB /Width 42 /Height 48 /BitsPerComponent 8 /Filter /FlateDecode /DecodeParms << /Predictor 15 /Columns 42 /Colors 3 >> /Length 211 >> stream xֱ @  },v 1X{=5d:ΜшiEh|abd4= xGmok >yVn<9)> >> endobj 2152 0 obj << /D [2150 0 R /XYZ 57.056 708.045 null] >> endobj 2142 0 obj << /D [2150 0 R /XYZ 121.949 495.176 null] >> endobj 2143 0 obj << /D [2150 0 R /XYZ 403.234 495.176 null] >> endobj 2144 0 obj << /D [2150 0 R /XYZ 163.356 375.488 null] >> endobj 2153 0 obj << /D [2150 0 R /XYZ 411.56 375.488 null] >> endobj 278 0 obj << /D [2150 0 R /XYZ 57.056 338.792 null] >> endobj 282 0 obj << /D [2150 0 R /XYZ 57.056 285.617 null] >> endobj 2149 0 obj << /Font << /F18 1216 0 R /F30 1255 0 R /F51 1304 0 R /F37 1446 0 R >> /XObject << /Im3 2122 0 R /Im4 2123 0 R /Im5 2125 0 R /Im6 2126 0 R >> /ProcSet [ /PDF /Text ] >> endobj 2173 0 obj << /Length 231 /Filter /FlateDecode >> stream xڥMKA +r9L:Hcт7Zڮw?$ޗu ]@"XۣTs𗰺=2\7qٴ}{.j"% %2P|'ygl~X~~0M}/\ީvHÔ%Xd9wc%L0wHk_Wݷ!g` A/9˞g{ endstream endobj 2172 0 obj << /Type /Page /Contents 2173 0 R /Resources 2171 0 R /MediaBox [0 0 612 792] /Parent 2108 0 R >> endobj 2146 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./include/floquet.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 2176 0 R /BBox [0 0 760 657] /Resources << /ProcSet [ /PDF /ImageC /Text ] /ExtGState << /R7 2177 0 R >>/XObject << /R8 2178 0 R >>/Font << /R9 2179 0 R>> >> /Length 2180 0 R /Filter /FlateDecode >> stream xTN0+|$׻(B-puLiS Uxg2ua ;~>kM4O7w֮SVhKSZ=LUj șɫ9D(0M۳MĿ?`WQLi0ܕ**]O'3   _c^QILK \$4! !HT.{3yRV}'kdg\&Z=̠d(M@j1*W42”MQGkS.&oRJ21)VD <0K]8Q~~{Xߏ B>Qw\N1Zw:ir刘nA endstream endobj 2176 0 obj << /Producer (GPL Ghostscript 8.70) /CreationDate (D:20120127130654-05'00') /ModDate (D:20120127130654-05'00') /Title (include/floquet.fig) /Creator (fig2dev Version 3.2 Patchlevel 5) /Author (boldeman@hamster.encs.concordia.ca \(Bart Oldeman\)) >> endobj 2177 0 obj << /Type /ExtGState /OPM 1 >> endobj 2178 0 obj << /Subtype /Image /ColorSpace /DeviceRGB /Width 844 /Height 730 /BitsPerComponent 8 /Filter /FlateDecode /DecodeParms << /Predictor 15 /Columns 844 /Colors 3 >> /Length 47178 >> stream x >>S<oI5jb4&Q5ٕ HFT. 7 00ssz~~_W7՟}s|gH@=s=o~[~1 >h{ꓝ}}Ld[XNviS+ݕ)??u[o5sr4u. /"c2D9Ws-<*[mڴdGܑ|xϞ=i[>~8{96l@k׎:`+vǽ[oI^3}K$}r'sg[is\I?k;w]vgΞ3gOk̙X̩:5ϞiرөgN:7ś :62gNvi7td4O7u֭LYӭ[zlޣG]}N֞2u}yjfc~Tl5ț 5 TQ͛e9Qh4O2dأuU%Æ8Vk^0DYy`ĨXQcJǚF{4֬?zyGcƌWrh; xhw 5Ǿ?aҁ5 N$,9aҔ%F/Wr21iʴfeg'OIS.V~:e%v>i38Xm4|r3i\Ѭ8v2%O1sk9}h?e0?S`n|e,?yWě߻lmNĚ-X5<ok۸+?ͽ/_tGͲ.ύEٞ \YW.Y%W-X%W_F뮺ͷ^z߷3Y>1Gv/˛͝k_wӦX7[DM4Sl~_s*|2aŇ2in>G5Jާo?K/ >\Ft7gʉ'k[C-..J^Nq2V9.ixg:uhxr; WߥKgë֭U[+u6 |;6p`i;:x0 9j3|Y;gܸ ^')9^&O6<3f793'4B'K o4%[[0.|e{7\[lx{Yr᭻z.Tl۲n CM42.MیL_:oׁ*ɣFѶ]s皩m_W^ye^9M7ݔO8A%1 Zj^_ޮ]ֵ֔;W6|ۯS4mmΞn߾V>xYn c'35)ΆTӽ{t䝬^N)=jx]Rz +  /8\ƛ{7)G  &Od`xS/ f͙O`?r.|ңhRAY|2!ٹo/h͵HBu-XJ]PչKOT>y^{-eG(9g}g?#/w=-O?7s̲yyyo}[?逯}kγ>_l͚5Βg6VZŲcO^qc=9uڞ?W?8]Sw{_=T-^|tQ'/z <^Bmmne;mC4egTuDGO/3E59i܀_:w{i_{tgb1@hwツ8,N3|谼1c /aynGnJ'ˣw+zɌN5XpXcBSsJYVˁ5(ʃzxQcGf\%+%,7zG95j0=cםּCnJƛ,'L ɓ/N8< wRfESd*J_4uC1;)u'GM/8+f'Y;MMCwr,S{yFSOa-3gSfDM4=6O(lM(?`(l{OsGrr,vK-HK.5napWjG%cwdxW^7u2@s\^}>w /1W;ns,׿tӒ16}e|^⍗^{y=Z}ߞm3p`~rLw鼂w/;zu^A֭s䍟4۵;s֨Յ36lMl4-ЩcSbSg4tTssO5śMk Mwۡ#yJس>^QG^\4;UWǛU={ꥹ#oj=˂JVӷJ<k6֟OPɄfCw,? %4PY-@fVh"+]'KRQi4몏:WI= yଟM<7uIhfͪN/A%nML6,$1E~ߙꫯ6n ߹[dŪ4Wߺu+}iuΝ:/]Kk=yg~ow=z8d3cwᔙmᬑyly\0`/lx6aCݴxL.OohrNN3f\eczܺ>=sM6MgjEΝi#,|L[ytv<̧&C.|ΞС#ܙS:Mm&u84vعQ,7Ϝj%W6#S]vzpSeISmݹ,tg١^iXlRwRk3 ս{͘њ} 5+zCO~^uob3/?O(pIh6U0*c-M+xqL]9^/: JgjJXQS8Zs5Zrw7u6a商Y6j;XP} 1(gH£G-(5뫏P0韹Æ嘛Uzz-:*^Su`h9bx}Bܬ88rxcKDM4}jҋjCxc󹳭Zn8q;Rqq/L [o]hɑ*p@8_t?կ~$vmbx>wޜ:uʫQ~S[tM$|R*s nzoժu߼cƵjݚzf,|C765vaC #J u;>NkۺM>yFmӶm}}m5669v//Xr.fxZnOkI|4٦9Fmڜ7϶m6ԗ;v tfNǚgϞ2Sk(xiY-IS$SxSܦ EmcxZ ө9_ܮbKnWOw55tkhfbk n]|VK򦦿nM}5fcMѳg|Py8"^]=\-^Ԉ}j6TҬꥥlźOBO1<۵m}e^^~cuI mp/D~h&7+!m6 Ɵ~OԤHW^ye߲e ={9rY*yo$Nw]?7 1G6hgKnW;,#OMX4DMoMzթsitF~~_mx)eGZdI}9嵵^/"}H"cuooohu˗4BԻjͲU|(6hZpe?εnӊwk֮zhjRF3aAhyM0h&!6H?O_<iř:;]vTUU[ʿy6Ĭu{Zc2N c~[R}i{KD9e]2JjR(]끒GyMl 9dxL B\$)H^9e|9?|ؔcst y'bRɳ<_6SVf|!yD!I.x;n\ݵW!B1h=IQ!~r0<FqogpU4igqπK gᒕ1ZM5Z@ZĊP "uAlP!yħ,] ɋ8ԤH@A yA yV֯_b w7%(qoX%9A 2!} >I%&ѧeYv; vW?|v͚5ǎ{v}֬YÅ@ܪSSSӥK :lz;SZZQkZ zhOp<;:Gf3y$i|Cمc y ,x# ݯ_?>+Wo|5ڵ׿:ܝwYUUE0`^k۶-;3?~w)SlٲVĉy˩=suuu- z'K~ T8A&d,Mz)n{/k?999S;;y$}tڵl59ʮ]ݨ;cǎoܹst;}QZZjS]ǬW0_IJ=&y9=mT8Sry>k,Yĺ[YYY߾}M~i*yskͥ'wmэWףG3gΰϞ=bŊVZQ|'ܲe{7iҤ/O]qر>%\2a„'O999Ǐ?|pEEŹsVXNQ?5م._-z4]+ȇ8f1eNⅧ3.y2NE=3}2$/gKBΉ'zeϲyQccF 薛o\\\L z~d=ko^WWGΣVǪkwAoժ^nڴ$\b{_Bo.\貅mdT(̣֮MI[K_/<nP***,ǡM](MMM=\.]" H4Blڵݺ]|HxvQ'}{gNAEATJ^D|n̙'z|V8JyQf>%x޽+y<'eD% $JH@iw9{nPޚ5k\LkC2 D%$,"Pc$͚5%/82.$$($["w Ԁ$($+Y17$aJ^II $HP,(e׌IWC"ɋp@THV׆ */D"2g@ew *]?@Qɣ`T.ϳ<}O[2yQɣ`T$/T< FDK2v<8&ot/c.yNK*JyeFe;XH@K%4m~%T(t yQ0*H'Z`TNk&qJ ۥ/ y ڈ$I>$ђҦ"zHŎ25>U,<U4%̜[ayL^cH l<3R£~d /p%k០'$OAS3OˌJ$<^~=MURe~ yD&]EEE?3$/@J1+,R@^lrxE<ZYؼPXg\X d, $%Ogs0<HI% e 0<2PiݵcH:B֠%RVRωG"&y^YUNE%f~!QA*yx;6!{:O8J 9ŕ#4K? yb &&c&Ǫ+ N$/TٸӹЪeƝl|h!@+#@AT1<䑘 f: 3шEny.[mq'I[UC{*E`x t5%H^P *y y2@[;Tx* U4*gg;j@Ʒl`7j`x 4"dQɓhDeO&PG͕w'< }{ 쉫)G~^^C^"(exD jg I%6~_R y@-THPLu,k7+o'<"xM+L=L,ETYOՃ၌.yT'ݯoY]\oLzh e*[(XxAt+~X߫D"y.5tD>[}DճՊ= Ƴ5^^ce d c׫9{YgOQ=H^ *yLP)yDsET^E#*[s7<](|NĞU}.uar-,G__T 8I7< 7jm{r}L]Vգ7akBEDmr᣶$T@<ã~a_ HPu$8|33S񨄟GB1yj/,p\bqs ݴ]|Hxv&y C(..Vs,5ES%Wo:!̓HZ{A%o|M\3-S7ojw+L:\mܞ{kң*IWkw-7NGb7+/edҩS!4e-*DFZ7Y5Ӣj&I""jK%aM̥lqߩDyqo%xZKU* xCLq#6+ZH (2b2<\r%pW 9񓰎s|T!E"H ͘_0—<㿌bηkT*I$8vuPaDUv J/x~AnL/S5ɓ*lbW7!/y$PUJ[n{8 So9=: OFŧMֻkM<UL3'׮3_x%*LdVLR]>+Bb(-J8ӑu<^%o|Y y27@@ y-FSl 3$ĩbeRn{Oޝ]W#ljrY/We&x^#43THPZ=OtH:yt#\EΨ[١i-¨Hy)u<<H^!fedH$/}(z g{8шʥ6i-o08ϥ+aXp9TWڊ&3d=oQ~y ɋOg\Bo gK, KhD> $>U=/޳,ш*g-xc'I6u1;F @ y铽QyKO0||w-'^j$q{&\IyGVBŶ C%l[e:M`zq1 aЀ@' B<՟`D#*G,]"_ʋaتzLye+Qϻ s&O铪O0/W<6=yc`%Q%MC YnITҳzUO#g#-OH1+Mg /FW ,@LWؾ6UKY<ɢ9-zT[ʞGXJϋ%i giWKX%I=O촍%݄mȨ3lZH2uOX-K֪z.QKÙVB3y(yy 6 u\w#{[yTh/?~z6+M-$ $£0‹ݮFT),k2DϚ|T<̟m﹭{FUY$8{@Kyd.y5m1lxgKDfư%=6P R[S)-CdZok[K=2=w#z2)KJj@hKFlnd癒yZ4N$E>ۭŇTmg?{pn!Lũv!HynMsWŔK$t}@%/^oybfF6[*0@@ Px>J^xQcW#^1{{F7+Ec}{ņujʦmU)=$LWHy<} *ylڼx-FT@QI@=!Ĵn:ISPs<"LGb)'i+xVi$ `@QI)TRuk =zNS%g]VT=='yDWEy-[̃@ PxB#ZEry$ukFbg~Spn0գϸY=g<K%<K=/Q_YKOl$yT4 VadHH$$(dW׭Ic+Xh ZU{TNcGRӆ]FS< H /QIrum(xBYE4g+v: I=[cS8u|Ix2O;Lb\ oMg; ^$Vݚ&^aR =!zyޚd^ḀRgKD% $J%Wxh~<#=wR)<{$/DeNKdضGJ޲m}Z{!ߖ7ԆA$Hɳ ARAT侄8ފr}+s2R73[5 I(~[msIk^9}{?!3pETo-IrɱZ"`e~RɃN~[{n쿪ݎ v.PwC3)<{FRAT)y?=)Gsu7|DTƌ5k 8|?}yӓ}~A`~ױٹ!OzYC]zmy"w %OFQks}vs<5yؒc cAHFZB.hkU֓|}r?7}&! TDDzAJ+v]zp/FXAރ1V.wpI{zڷ]=uy ./i F=FcZD1Cs=o䎽ф&=[okڽEtlqm&&mx8 y $2KQSbȹ dfX۞+yBs/F2''upEJH^EWZfey:ߙmձ@%z'q=kf<P$^@EYTO2'%o[HԮiպ]k{;n?oDܟ"o3oF=yZU^vnsUI|}3b6<<AE<WD9ݮNDP׺Sr$O$؊| ߼۞*֋#$yp|BG$x y $JɃ3K,^aib\33\!Ij R-Q:eqc܊ <ܼ M[G=}ל y $JɃ9'=O2'*NZw.@wӱ=)yc{1r[z \1~^4odd1xTsO^gwm)IGFs)H !"DeNUS=퉢3Zwږ]˻6$cg{V,pF˱KO=ܢn[[ױE v:{;u='*s{;`%$O4U $oA$^CTx 2>3TTJDY.VG;Xx̔n@اy۾5qFk῔$@!*CT9d>2r|Z۫lOd9s V/ u/IFgl]Ze[9'u[<k< y $2KQ*l//swץ|$(yDcʶǍq>B' -Iʽp%k<gQ䥂)h<.%ኊ (lsl̋-O]~8ZoC $OAPR%^dP=UW\(:]eTK^pF}!m圅^چ $I@H!Cvmfyb\ Jp־䉑[oE"%OVm"Auax@4<PW=am{"\xFmyaH^(#ovB#y 5HɃ@"LTKFDN{.E?/B_t߼墸"Q7objImB<!$^%}کxǞ(r&7@}~I[`Pӵn<r݇҆%"   $OCT y *sͮ?ސk쉱 "[Dg-OHcflEy`4<^5s;[1fS y!H^*ʜ"Pɠzz&WK |qs. @I^x(3*;+{O< =y.{" | y F42v7d@#ysҪc&WtG)řfB$OA=DeH Su}ou=`_ JC[G<3(\]08} $OCTd83yל 4];y7kNXP'N@<<{ʐK yաQJ(y%HˋR2~ $OCT$J^;6W&*CvCD11р , $OAF.EH4P>v'7d3_;Mx@4<?۲B\E'h1MPZЀ)<(P=ȑ? iY/4(uؑr)`uOu;IH2iAH=De 2^{]̕"wv e#C+ܡ;ہH (ٵG8ϤɢwHɃ@"O ri_"1lu@4<&|"?۪\70+v.@4<?ӛ6mۧzj),O7`Ф݀抆auPH {/RAT]P8 \/^lcXyyA y $2KQSq#yqOX;LHn)<{$/DeNA#y{Ra3@ *)<{$/DeNe%Oxp^ ̞GFnSxATq< 禕  @4<U1??6e؄e+@4<0b\ 򵳳3$SxATyeR^$,r;p?mՕ<Tj@4<?wy3LG{۷o뮻V^mR~Ce9jw}7޸M3g+\Af @!*CT9H^q\pg}ٳ8|;^}՛o4y.v7nOM_SxAT$ϒ뿖6s;Lݻ~_7p /(|5\~3k87-HɃ@" yEp饗.\#t{o>f:I\O#_@H+/38H+9dy晏f7lE_O^+EO8<!t8/p$i#8?ڵk=W_Y~ʕ_n)yq+*g[KS yP}f$RǟٟuY'pԩSLw{O~6իW'?9󲍱dod3$/$OAA _<{ҥK+"yVrFr$ɃT1$OA>aC Hb|GLA y $ $RY$U,@@ {˼|.+9g y $ $ y $ $ y $ $ y $ $ y=yP*\pު)pi!y5S$oѢEyP*/9s4:$ y k` y $ $ y $ $ y $ $ y $ $ y $ $ yPư NYo0@%4g_U7$ y%/U3ȍI%yz /lf$/[J$ y"$/r3}l6g27m>b#yk?Fgk9&&odgP5SPoͿȮh 2'ċ=bK^SFoD$O*&% ٤ dh֪V\&Y&y& ydn]bgX\5󋞪lף7 ySZcK&C/cU39l;M\@!&4Oo@ (BL;0U+,l(əDbl'y4 yg#yqaInl&U[@aPHPo=-%WO=qTu=6)5j.*[M櫖f1I J#r $ yܗP1)XXs`2092e#z 29z0q>i]>NpU&(|!1~fbrd}<$ y"]kR/(k _';*x6g#y&0dž^D֜קH_=Sv>,A (B"W2H^`!i*) I1dI\OE&DK5ԗd;O2U $ y*?,3!,=&er"OdK2|a^52dzlQ@|{7HmaFGLj;/,"Xi L:fFcWy]bvz7Hʒ1y=I^`?Dyi˔#yOK`IdFZ%哓c2 $ yܳkT%sH;BvL!1B cVXM}O~J pT"$cx+so7Hu TYD@eLh6i8lhFvbg'W&2Ķ"p +CUOyF i+sTl"ky2T-{#-H@A< $ y $ $ y k! $ y"/ʤJLuuAeHL0)WYS\E$fEhrb"%"\O'&GFo6>7H"%TLJ&6)yL.#{B\adM1?M gsKXI<42UʀYD&B=z?H@AE<֤d%]x7Q,4 hOў`rɅH{*8_9Y˼~1-H@AEH^|M܁MF f׼Z]זɷڄ<nDK5ԗd;slJ}*Po=.Vќ`-j3&~M~M$ yJa3gn6#ysFݕJ*2U $OQ{ɋذoɋ$mr$O! 0 (rAS5E0\$O{vm^JPJɋ< T^ۆ'w 6.&q"AD~l/^8KyDLZܩ6WF=U>a$ y*K^ZJI%Kq<¬s$px̦iz{[,ꉋp;&uc$JS^FL*IWqGH!MH +y ;J?$Ih[f*Po4,EJyrck=r[o%f$/io̕~Ob*!|R~bѨv5/֙YLm EOp>H@hhYIފ//a.pxcի#yFMTYy|*jx=vDlQL:9|2ea?|?H@hhYI?^rx~۶#=4\=oez̛+ G axTnj? yFIe%y߿j yPo4d)ZVwrcK/ߝvam.7.C2&Y] ߴF3lW#yAF,EJ~xrcsM?pS׿*$ 3H@hhYIMxgg4 | Po4d)ZVky樨jk_r$ 3H@hhYIm^W/  Po4d)ZVwǿx䩧:șӦɍsm$ 3H@hhYI]7 7zɣ<2y&$h4R$oÍ7ʍx☨>].$ 3H@hhYI?x`Ӧcpwo yAF,EJ^ZncgpwyH@fl)y:쳑< yFIe%yo7H@fh& K<}_&Y78(7D  yFIe%y7:m{ot j=%/`*2Th4R$\nmG !y& yMF,EJzI N*~Ƀ JX<($ hhYIާ?Y>|3HLP4A yMF,EJ>ټ9I  y0A<  hB4d)Z9Hm1mX=裯"y/'!,<y̙?|"H̢e'y[mϏ*svGGs<(Fd$oܖ ى=ܸ=yn'D=yP2H@<;Ѳgk׭[dI\N: Ƀ ٵP2H@<;Ѳ98w$~jTH^6Ѫax0A $O<$O@ԛKޟDž؀&Z9H$$$JG4w.ӵ yd$/hM{D]wޝE|9R O yu&y"ytO?=C9|c {s0Y$ &Y'm&ɿH@$M-+`&q{L'4vN9T$ &Yyqw^;vN; DIe%y牡!yh4R$oxF1p'̞.01zH@$M-+{opin<DIe%y}7/C.D"hhYI;=$7y.p|C: DIe%yo?DyF,EJ޼~qԳF"hhYIޯWn׃F}G#$ &Y佱a.VXDIe%y[%K<H4d)ZV~&7zcg 818ODIe%y[Sl{nc/} DIe%y/yܸƷ}9 yh4R$np}̈;OB"hhYI3mu|=_E"hhYISNyʟ9F,EJ-Z.i_:F,EJ6YH@$M-+{xjqc͞1#\y#yh4R$HnP$ &Y}_L {A"hhYIޢOCM SƍH@$M-+ɳްZbIK=H49qf0n y5!H@ @A y5!H@ AjPC< /؄%鍊nBʆuE& ӵS;Cnmmmiio)SH&OOzOS%ߧ}|b}>b$u|n;W?GU'ys~d޽'{ >yuQ?ww}侪~??@~?ٳk]ްq#IX%Kӿ]Z"yHĝ-/cBi!y'yf~S[U̶_}uiJwQG=3s:s;ɱf}+v՝0{?|G9]C{|8c֭;i\'IA˛;w}zWjPzICoo}ݺqCݼcy~۶3_|Qs>hޣMk}>)y;?W<ǯ {ny㭷ݼɀ1fp}F'FWFܚMVMI{4)N6vIq'q೟DJN>w Kނ{ǎ1r_f淿u%Oڞ|1'7LG B~>(d"U?T$f ,yc8O3vWoΏ 1ҟ"OmJn?K#y1F9-t#yjC9(YS^x-UOz?vߖc's -%_r=b?<jԐ

> endobj 2180 0 obj 415 endobj 2181 0 obj << /Type /FontDescriptor /FontName /EKFGRN#2BTimes-Roman /FontBBox [ 0 -14 593 676] /Flags 65568 /Ascent 676 /CapHeight 676 /Descent -14 /ItalicAngle 0 /StemV 88 /MissingWidth 500 /CharSet (/E/P/S/T/one/space/three/two) /FontFile3 2182 0 R >> endobj 2182 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1075 >> stream xeQkL[e>|*Jm`(gb]7f% lcJҎ^(ʸcK F5uLN8d.8'&;xa޼}1ax`֠6G(Uf6T8Q(!0PRx=*8nw$MŅZM"s޽/PIjVS@Zo4T"߭ks(ؔoTͱc*ZGhZhv%b#x֐m5SOxSGT*PkzU+W ۉEc a)^Lp ``k,^GMvok +:(5J;e!0@UC"Q$yƁnD[j)u!"Q!B$]'5(\OH Li$LfU@dgGH1{zQt'x $;Ҟ4%G1u-r~/3lܸ?%89`9t@2ԖרYb̄ґ0mQyvkH[A._EHRu-m2^jo%D9d|[\B؋USp\k>_ҵ(ɏG8r {nԐ𵲲*i/bZ Y ~,:$ڸI^$@0AhqY,GGW_1g) V"?OnpXhƖ?irLxudRQ% $+3=#~xWYFn0gW/M} T ), 3[f F<^m[H*@Sܑ(C4\tw=f:h]؆ Q4h'J'܄vUkD҆bgW:`?H endstream endobj 2147 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./include/menubar.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 2183 0 R /BBox [0 0 766 204] /Resources << /ProcSet [ /PDF /ImageC /Text ] /ExtGState << /R7 2184 0 R >>/XObject << /R8 2185 0 R >>/Font << /R9 2186 0 R>> >> /Length 2187 0 R /Filter /FlateDecode >> stream xmVr7+p uo*S|ȵ ɍH}`T*5F ГT*}Ͽcg$c]ȵjTQ͑|3?[I?Q* ƨeG^M2tɭAb2ofB؊ ^Dh!͜qb1{pNM2e[(65\փ̴JNluAl5mq̐lu|uj3+%5)ZmNls9,ӓ:V衪Mt'k:Ǎ3Y؜f*QiTؗѺV /Y'}Sm7SVj}l;oBUVZ(KX(0 <;(SPpzQg,P(` xI"x2T]r& [\—W}y/Ot, g!$VL }y.pVҳ _AϩmA/ /Y'୾ ]42Ll\^ʱ/bek0|(yT254xXRKLdžs yqwm<>'ށOHK^4qX'**(zO ..p>~؟%$moL 9xQnpN].~ ?{?0a endstream endobj 2183 0 obj << /Producer (GPL Ghostscript 8.70) /CreationDate (D:20120127130656-05'00') /ModDate (D:20120127130656-05'00') /Title (include/menubar.fig) /Creator (fig2dev Version 3.2 Patchlevel 5) /Author (boldeman@hamster.encs.concordia.ca \(Bart Oldeman\)) >> endobj 2184 0 obj << /Type /ExtGState /OPM 1 >> endobj 2185 0 obj << /Subtype /Image /ColorSpace /DeviceRGB /Width 851 /Height 148 /BitsPerComponent 8 /Filter /FlateDecode /DecodeParms << /Predictor 15 /Columns 851 /Colors 3 >> /Length 6796 >> stream x}U[Z*btq1)$@Un,Hy!~fkVPZѐ" &-YlaZ]JwoΙ9sf3{߯s9{?{H~ ":M: ?ͼ^8722v6m5kV8 Vy1'bc=M;v(iiiFmo߾}ꫯs9ࠝ;wvtt{Y3fPE"noo7\q2ZEj v-aE]MfI&|yf͚Ç+_!k.-?+°j$ٳ?s~/ҧ?_=O3?O\{UkҤI~ 7022Qo)rZnݺ[N}cN;m…W^yexxX>o|CS Dlr*izP~SL$|e~򓟌7?~;>}3"-^_\~}GGǬY^x۷wuu͜9?'NxWwI':tvǍ78cƌ'x_׿u]Rڻw^M"_;C꒡'xN~O=TD*TOF;"rgWX1a$,ފvGy-Yt~ȑ%Khj믿m!•R D>Qijp4iȈMv׿us)S^ޮǏƍ<;#CbwLC1H1iӦ1E_WkC=$6k_Z&doq;vˑ wyI&2J -ٮ>WijؽZ z)<.P%:VINE=ztէr… /"iӦK/駟>v޽{?]"d( K<v,65۷5Ǐ7dH~ .綾^:rȤI=?_~֭[yW^y=zt„ "t(hO$Bq^=|_γ !jٹs3f$~o[ͣ^zid%I >6m߾=qM?B+W8q P9 *c߶mt}SO=5Ըj*/^{xZſ޲O'N{VUxt-2ypɡCԹ,6l յ| r-2I_ݻnݺK.>@V"-ZH͛7=aOxf5 c͞=;WYj$?JL~2IM6͚5PiO=0FQQ$'O|G TZrG?*2ƍ3$w=TZah!oy 'BUW]uСl/Pm|fim #)O5? c+nlrw~{_,7~:< D&gyfܹw.첚xcڵ_~В9E))@ͧuc˿^h֫@"Fk^E6؂ǡKc"ZbŸqjD8H%Uk"]$Ok4nSCh׫>Yi"^9n֟s-ŋ!aIs&90+[w ǯV;$?"w}g8qbojjv='ebSw\Z>-ӕ5"fII9$zM^$?"s=7?nml댻eg;ݳg~7)%yCԴCNP;/>i҉ h]h/-p/"-hoo"ҮE75n,_/o75th($?FAho…k֬!TZdaOj$?JL~2I$?1(r% dL~u.Q!ν1i$? _Uc=v5{/!} ȉggPn;3@N$?H~.]*_{njj"Ƙ 6Fu2͙3]|ԳO4EQAueZTbR^륋K~%WUG 1O~===K.5_DmٺYܺ,-"Dy(#s~&?_Z$`xJa2wW]߾v[W[keZH1UE&?(~rQH5ɯF߬䗹VH~&R$|9s'vغl\غ̊+-עJSUfy*`S`(ѝxġgX<$?c9Fl]$G>M]&!עSUZy]+aU1vt/bH~&M~_a9A [ϴ4-,PނF#TS^K9e)$?OL K3tۊm4[ǑO"RҢH1UO~U7[q~~?<=E',sVlSeVDY[%5I%TS^K9נH93Ӯ#ouqAFe܊13g2fMϤK$G9?u9L -n%h>x/?nK*i%{ۣ>`3<2`ԣ}o+lgu|(֙ucLɤT +&,s~bՑ X^ks~71=Ώ ~wVzs,*ȇrn]G[O~ظ2-✟Xl^]MK~BoT䗨Y1/U"VSwBL~D g䗨ϑ9D9עWn/Q%?'F(8TOܯ׹AuO'Ń=.KisDNZn򚗮9P1-Yye<s~$MV%2T%9uօ2_dJP&Q[J07R.Ԓsί7IRS^唗<7x7ԚZ4-.y^`$?C׊$'zڵU^ʹ՟m|O+l2+,EͣFUr[h"'}3R9#{32l[LnBiC.³>[PϾ |{[>m+--Yc ۺ̊(-x,P<9L_qi;ԨjݓbUO~_A#C*Fu%p'(oA#IˑbR{(B3Dy#teF\I{X LjVZ\˒NȜ/غ<}ȧ;DEy IZS5V~LN[ vz78Ng{\xGfqa2+,P^*]LU^lL FZB t9<`G !YN~e\xGfqa2+,P^*]LUu?%Lumŝj'p.lk#T__(DB:8ZY˨ 6rG%SKf7ueeZTbR/< g 7Y|H~&\I~XFl]fYlսҥD ᩈ)h4$?L~Vnnn#:N 7<<Ĝsd0J~˖-#SU*VBo޼y".! {{/䒂4uԂz={ԳHq_NYbE=TEAOٳggL~E\ϐL~E-[H~(H~"n/}K9$(V^Vy9E]]]Cz-3?OɿaÆPlw"J~Wn[jhw?s~~7ԜGH!:ϛ)_w7}>!E>485;'p^gH~刼 ~h2Qnjj27GE>0*2~+/)%e˖1P+9|굴x=mvgD?'2߼y:;;I~K~~@m=ajmm^h-zoM _{{{[[[?(&EOM}&MN7|#Lߜ'bdwxޒGp>y?>y*I'8 qw]H~.JL~h ]O;q0")<2'? M~===$@s1<hxuK~}}}s~E:ujA=TL~E̲%$ᦦ։-d48 ڹz{{-[XdIA='$?͛I(GAoҥ"Pkk+Wu(L~\s>;::K~mmm$?r-q%g&?wH~.2I~2;vl&'޶mۦO~]wvm2j,*a[4%%?V\y7ϙ3?,cϟ{ToH~6(5mڴ]vy>5FYx <!9wԧd Fݾ&P#J `02nHK?'̙3}e-8Eۺu3-eyCEݸ>(uww777f'/@8~l>7<<Ԕ8?`NM~0 yq?>_ooer_=uO do޼y$?r_0W |O744&4 KȨwίMtA(Gq~S: 9/U]R!x13dqWu 秞J~2eBO$Hr/xbG0}kcyCI~~ozbWDH~ɟwum&gJ~ݍ)gJ'lH~.[+O:餾>@9d[tM$ endstream endobj 2186 0 obj << /BaseFont /CVJITF#2BTimes-Roman /FontDescriptor 2188 0 R /Type /Font /FirstChar 32 /LastChar 121 /Widths [ 250 0 0 0 0 0 0 0 0 0 0 0 0 564 0 278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 722 667 667 0 0 0 0 0 333 0 0 611 889 722 722 556 0 0 556 611 0 0 0 722 722 611 0 0 0 0 0 0 444 500 444 500 444 333 500 500 278 0 500 278 778 500 500 500 0 333 389 278 500 0 722 500 500] /Encoding 2189 0 R /Subtype /Type1 >> endobj 2187 0 obj 875 endobj 2188 0 obj << /Type /FontDescriptor /FontName /CVJITF#2BTimes-Roman /FontBBox [ -9 -218 863 683] /Flags 32 /Ascent 683 /CapHeight 676 /Descent -218 /ItalicAngle 0 /StemV 129 /MissingWidth 500 /XHeight 460 /CharSet (/A/B/C/I/L/M/N/O/P/S/T/X/Y/Z/a/b/c/d/e/f/g/h/i/k/l/m/minus/n/o/p/r/s/slash/space/t/u/w/x/y) /FontFile3 2190 0 R >> endobj 2189 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus] >> endobj 2190 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4335 >> stream xmWiT׺bHW&&TV8,(` a@FH°I@ ayRZlS{OssqZYoo}yE-X,܌Qܴ