comparison liboctave/cruft/odepack/slsode.f @ 19627:446c46af4b42 stable

strip trailing whitespace from most source files * Makefile.am, NEWS, build-aux/common.mk, configure.ac, doc/Makefile.am, doc/doxyhtml/Makefile.am, doc/interpreter/Makefile.am, doc/interpreter/arith.txi, doc/interpreter/audio.txi, doc/interpreter/basics.txi, doc/interpreter/bugs.txi, doc/interpreter/container.txi, doc/interpreter/cp-idx.txi, doc/interpreter/data.txi, doc/interpreter/debug.txi, doc/interpreter/diagperm.txi, doc/interpreter/diffeq.txi, doc/interpreter/doccheck/README, doc/interpreter/doccheck/spellcheck, doc/interpreter/emacs.txi, doc/interpreter/errors.txi, doc/interpreter/eval.txi, doc/interpreter/expr.txi, doc/interpreter/external.txi, doc/interpreter/fn-idx.txi, doc/interpreter/func.txi, doc/interpreter/geometry.txi, doc/interpreter/geometryimages.m, doc/interpreter/gpl.txi, doc/interpreter/grammar.txi, doc/interpreter/gui.txi, doc/interpreter/image.txi, doc/interpreter/install.txi, doc/interpreter/interp.txi, doc/interpreter/interpimages.m, doc/interpreter/intro.txi, doc/interpreter/io.txi, doc/interpreter/java.txi, doc/interpreter/linalg.txi, doc/interpreter/macros.texi, doc/interpreter/matrix.txi, doc/interpreter/munge-texi.pl, doc/interpreter/nonlin.txi, doc/interpreter/numbers.txi, doc/interpreter/obsolete.txi, doc/interpreter/octave-config.1, doc/interpreter/octave.texi, doc/interpreter/oop.txi, doc/interpreter/op-idx.txi, doc/interpreter/optim.txi, doc/interpreter/package.txi, doc/interpreter/plot.txi, doc/interpreter/poly.txi, doc/interpreter/preface.txi, doc/interpreter/quad.txi, doc/interpreter/set.txi, doc/interpreter/signal.txi, doc/interpreter/sparse.txi, doc/interpreter/sparseimages.m, doc/interpreter/splineimages.m, doc/interpreter/stats.txi, doc/interpreter/stmt.txi, doc/interpreter/strings.txi, doc/interpreter/system.txi, doc/interpreter/testfun.txi, doc/interpreter/tips.txi, doc/interpreter/var.txi, doc/interpreter/vectorize.txi, doc/liboctave/Makefile.am, doc/liboctave/array.texi, doc/liboctave/bugs.texi, doc/liboctave/cp-idx.texi, doc/liboctave/dae.texi, doc/liboctave/diffeq.texi, doc/liboctave/error.texi, doc/liboctave/factor.texi, doc/liboctave/fn-idx.texi, doc/liboctave/gpl.texi, doc/liboctave/install.texi, doc/liboctave/intro.texi, doc/liboctave/liboctave.texi, doc/liboctave/matvec.texi, doc/liboctave/nleqn.texi, doc/liboctave/nlfunc.texi, doc/liboctave/ode.texi, doc/liboctave/optim.texi, doc/liboctave/preface.texi, doc/liboctave/quad.texi, doc/liboctave/range.texi, doc/refcard/Makefile.am, doc/refcard/refcard.tex, etc/HACKING, etc/NEWS.1, etc/NEWS.2, etc/NEWS.3, etc/OLD-ChangeLogs/ChangeLog, etc/OLD-ChangeLogs/doc-ChangeLog, etc/OLD-ChangeLogs/scripts-ChangeLog, etc/OLD-ChangeLogs/src-ChangeLog, etc/OLD-ChangeLogs/test-ChangeLog, etc/PROJECTS, etc/README.Cygwin, etc/README.MacOS, etc/README.MinGW, etc/README.gnuplot, etc/gdbinit, etc/icons/Makefile.am, examples/@polynomial/end.m, examples/@polynomial/subsasgn.m, examples/Makefile.am, examples/standalonebuiltin.cc, libgui/Makefile.am, libgui/qterminal/libqterminal/README, libgui/qterminal/libqterminal/unix/BlockArray.cpp, libgui/qterminal/libqterminal/unix/BlockArray.h, libgui/qterminal/libqterminal/unix/Character.h, libgui/qterminal/libqterminal/unix/CharacterColor.h, libgui/qterminal/libqterminal/unix/Emulation.cpp, libgui/qterminal/libqterminal/unix/Emulation.h, libgui/qterminal/libqterminal/unix/Filter.cpp, libgui/qterminal/libqterminal/unix/Filter.h, libgui/qterminal/libqterminal/unix/History.cpp, libgui/qterminal/libqterminal/unix/History.h, libgui/qterminal/libqterminal/unix/KeyboardTranslator.cpp, libgui/qterminal/libqterminal/unix/KeyboardTranslator.h, libgui/qterminal/libqterminal/unix/LineFont.h, libgui/qterminal/libqterminal/unix/QUnixTerminalImpl.cpp, libgui/qterminal/libqterminal/unix/QUnixTerminalImpl.h, libgui/qterminal/libqterminal/unix/Screen.cpp, libgui/qterminal/libqterminal/unix/Screen.h, libgui/qterminal/libqterminal/unix/ScreenWindow.cpp, libgui/qterminal/libqterminal/unix/ScreenWindow.h, libgui/qterminal/libqterminal/unix/TerminalCharacterDecoder.cpp, libgui/qterminal/libqterminal/unix/TerminalCharacterDecoder.h, libgui/qterminal/libqterminal/unix/Vt102Emulation.h, libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp, libgui/qterminal/qterminal/main.cpp, libgui/src/m-editor/file-editor-tab.cc, libgui/src/octave-gui.cc, libgui/src/octave-qt-link.cc, libinterp/corefcn/data.cc, libinterp/corefcn/defun-int.h, libinterp/corefcn/det.cc, libinterp/corefcn/gl2ps-renderer.cc, libinterp/corefcn/graphics.cc, libinterp/corefcn/graphics.in.h, libinterp/corefcn/ls-mat5.cc, libinterp/corefcn/lu.cc, libinterp/corefcn/oct-tex-parser.yy, libinterp/corefcn/oct-tex-symbols.in, libinterp/corefcn/quadcc.cc, libinterp/corefcn/zfstream.cc, libinterp/dldfcn/__eigs__.cc, libinterp/dldfcn/__voronoi__.cc, libinterp/gendoc.pl, libinterp/genprops.awk, libinterp/mk-errno-list, libinterp/mk-pkg-add, libinterp/mkbuiltins, libinterp/mkdefs, libinterp/mkdocs, libinterp/mkops, libinterp/octave-value/ov-java.cc, libinterp/parse-tree/lex.ll, libinterp/parse-tree/oct-parse.in.yy, libinterp/parse-tree/octave.gperf, liboctave/Makefile.am, liboctave/array/Array.cc, liboctave/array/module.mk, liboctave/cruft/daspk/datv.f, liboctave/cruft/daspk/dcnst0.f, liboctave/cruft/daspk/dcnstr.f, liboctave/cruft/daspk/ddasic.f, liboctave/cruft/daspk/ddasid.f, liboctave/cruft/daspk/ddasik.f, liboctave/cruft/daspk/ddaspk.f, liboctave/cruft/daspk/ddstp.f, liboctave/cruft/daspk/ddwnrm.f, liboctave/cruft/daspk/dfnrmd.f, liboctave/cruft/daspk/dfnrmk.f, liboctave/cruft/daspk/dhels.f, liboctave/cruft/daspk/dheqr.f, liboctave/cruft/daspk/dinvwt.f, liboctave/cruft/daspk/dlinsd.f, liboctave/cruft/daspk/dlinsk.f, liboctave/cruft/daspk/dmatd.f, liboctave/cruft/daspk/dnedd.f, liboctave/cruft/daspk/dnedk.f, liboctave/cruft/daspk/dnsd.f, liboctave/cruft/daspk/dnsid.f, liboctave/cruft/daspk/dnsik.f, liboctave/cruft/daspk/dnsk.f, liboctave/cruft/daspk/dorth.f, liboctave/cruft/daspk/dslvd.f, liboctave/cruft/daspk/dslvk.f, liboctave/cruft/daspk/dspigm.f, liboctave/cruft/daspk/dyypnw.f, liboctave/cruft/dasrt/ddasrt.f, liboctave/cruft/dasrt/drchek.f, liboctave/cruft/dassl/ddaslv.f, liboctave/cruft/dassl/ddassl.f, liboctave/cruft/misc/blaswrap.c, liboctave/cruft/misc/module.mk, liboctave/cruft/odepack/cfode.f, liboctave/cruft/odepack/dlsode.f, liboctave/cruft/odepack/ewset.f, liboctave/cruft/odepack/intdy.f, liboctave/cruft/odepack/prepj.f, liboctave/cruft/odepack/sintdy.f, liboctave/cruft/odepack/slsode.f, liboctave/cruft/odepack/solsy.f, liboctave/cruft/odepack/ssolsy.f, liboctave/cruft/odepack/stode.f, liboctave/cruft/odepack/vnorm.f, liboctave/cruft/ranlib/Basegen.doc, liboctave/cruft/ranlib/README, liboctave/cruft/ranlib/genbet.f, liboctave/cruft/ranlib/genexp.f, liboctave/cruft/ranlib/gennch.f, liboctave/cruft/ranlib/gennf.f, liboctave/cruft/ranlib/gennor.f, liboctave/cruft/ranlib/getsd.f, liboctave/cruft/ranlib/initgn.f, liboctave/cruft/ranlib/phrtsd.f, liboctave/cruft/ranlib/randlib.fdoc, liboctave/cruft/ranlib/setsd.f, liboctave/cruft/ranlib/tstgmn.for, liboctave/cruft/ranlib/tstmid.for, liboctave/cruft/slatec-fn/atanh.f, liboctave/cruft/slatec-fn/datanh.f, liboctave/cruft/slatec-fn/xgmainc.f, liboctave/cruft/slatec-fn/xsgmainc.f, liboctave/numeric/module.mk, liboctave/operators/mk-ops.awk, liboctave/operators/mx-ops, liboctave/operators/sparse-mk-ops.awk, liboctave/operators/sparse-mx-ops, liboctave/operators/vx-ops, liboctave/util/module.mk, run-octave.in, scripts/@ftp/ftp.m, scripts/audio/wavread.m, scripts/deprecated/java_convert_matrix.m, scripts/deprecated/java_debug.m, scripts/deprecated/java_invoke.m, scripts/deprecated/java_new.m, scripts/deprecated/java_unsigned_conversion.m, scripts/deprecated/javafields.m, scripts/deprecated/javamethods.m, scripts/deprecated/shell_cmd.m, scripts/general/accumarray.m, scripts/general/display.m, scripts/general/fieldnames.m, scripts/general/interp1.m, scripts/general/interp2.m, scripts/general/interp3.m, scripts/general/isa.m, scripts/general/methods.m, scripts/general/sortrows.m, scripts/geometry/convhull.m, scripts/geometry/delaunay.m, scripts/geometry/delaunay3.m, scripts/geometry/delaunayn.m, scripts/geometry/griddata.m, scripts/geometry/griddatan.m, scripts/geometry/voronoi.m, scripts/geometry/voronoin.m, scripts/gui/guihandles.m, scripts/gui/inputdlg.m, scripts/gui/listdlg.m, scripts/gui/msgbox.m, scripts/gui/questdlg.m, scripts/gui/uigetfile.m, scripts/gui/waitbar.m, scripts/gui/warndlg.m, scripts/help/doc.m, scripts/help/help.m, scripts/help/type.m, scripts/image/bone.m, scripts/image/cmpermute.m, scripts/image/cmunique.m, scripts/image/colorcube.m, scripts/image/colormap.m, scripts/image/contrast.m, scripts/image/gray2ind.m, scripts/image/image.m, scripts/image/imshow.m, scripts/image/ind2gray.m, scripts/image/jet.m, scripts/image/rgb2ntsc.m, scripts/image/spinmap.m, scripts/io/importdata.m, scripts/io/strread.m, scripts/io/textread.m, scripts/io/textscan.m, scripts/java/java_get.m, scripts/java/java_set.m, scripts/java/javaaddpath.m, scripts/java/javaclasspath.m, scripts/java/javamem.m, scripts/linear-algebra/linsolve.m, scripts/linear-algebra/qzhess.m, scripts/miscellaneous/debug.m, scripts/miscellaneous/desktop.m, scripts/miscellaneous/dir.m, scripts/miscellaneous/dos.m, scripts/miscellaneous/edit.m, scripts/miscellaneous/fact.m, scripts/miscellaneous/getappdata.m, scripts/miscellaneous/inputname.m, scripts/miscellaneous/license.m, scripts/miscellaneous/ls_command.m, scripts/miscellaneous/run.m, scripts/miscellaneous/setfield.m, scripts/miscellaneous/unix.m, scripts/miscellaneous/ver.m, scripts/mk-pkg-add, scripts/mkdoc.pl, scripts/optimization/fminsearch.m, scripts/optimization/optimset.m, scripts/optimization/sqp.m, scripts/pkg/pkg.m, scripts/pkg/private/create_pkgadddel.m, scripts/pkg/private/fix_depends.m, scripts/pkg/private/install.m, scripts/plot/appearance/axis.m, scripts/plot/appearance/box.m, scripts/plot/appearance/clabel.m, scripts/plot/appearance/daspect.m, scripts/plot/appearance/datetick.m, scripts/plot/appearance/grid.m, scripts/plot/appearance/legend.m, scripts/plot/appearance/orient.m, scripts/plot/appearance/shading.m, scripts/plot/appearance/text.m, scripts/plot/appearance/title.m, scripts/plot/appearance/xlabel.m, scripts/plot/appearance/ylabel.m, scripts/plot/appearance/zlabel.m, scripts/plot/draw/area.m, scripts/plot/draw/bar.m, scripts/plot/draw/barh.m, scripts/plot/draw/colorbar.m, scripts/plot/draw/contour.m, scripts/plot/draw/contour3.m, scripts/plot/draw/contourf.m, scripts/plot/draw/ellipsoid.m, scripts/plot/draw/errorbar.m, scripts/plot/draw/ezcontour.m, scripts/plot/draw/ezcontourf.m, scripts/plot/draw/ezmesh.m, scripts/plot/draw/ezpolar.m, scripts/plot/draw/fill.m, scripts/plot/draw/fplot.m, scripts/plot/draw/hist.m, scripts/plot/draw/meshc.m, scripts/plot/draw/meshz.m, scripts/plot/draw/pareto.m, scripts/plot/draw/patch.m, scripts/plot/draw/peaks.m, scripts/plot/draw/pie.m, scripts/plot/draw/pie3.m, scripts/plot/draw/plot.m, scripts/plot/draw/plotyy.m, scripts/plot/draw/private/__bar__.m, scripts/plot/draw/private/__contour__.m, scripts/plot/draw/private/__errplot__.m, scripts/plot/draw/private/__ezplot__.m, scripts/plot/draw/private/__patch__.m, scripts/plot/draw/private/__stem__.m, scripts/plot/draw/rectangle.m, scripts/plot/draw/ribbon.m, scripts/plot/draw/rose.m, scripts/plot/draw/scatter.m, scripts/plot/draw/scatter3.m, scripts/plot/draw/semilogx.m, scripts/plot/draw/shrinkfaces.m, scripts/plot/draw/sombrero.m, scripts/plot/draw/sphere.m, scripts/plot/draw/stairs.m, scripts/plot/draw/stem.m, scripts/plot/draw/stemleaf.m, scripts/plot/draw/surf.m, scripts/plot/draw/surface.m, scripts/plot/draw/surfc.m, scripts/plot/draw/surfl.m, scripts/plot/draw/surfnorm.m, scripts/plot/draw/tetramesh.m, scripts/plot/draw/trimesh.m, scripts/plot/draw/triplot.m, scripts/plot/draw/trisurf.m, scripts/plot/util/__gnuplot_drawnow__.m, scripts/plot/util/__plt_get_axis_arg__.m, scripts/plot/util/axes.m, scripts/plot/util/clf.m, scripts/plot/util/copyobj.m, scripts/plot/util/figure.m, scripts/plot/util/gcbo.m, scripts/plot/util/graphics_toolkit.m, scripts/plot/util/hggroup.m, scripts/plot/util/meshgrid.m, scripts/plot/util/newplot.m, scripts/plot/util/print.m, scripts/plot/util/private/__add_default_menu__.m, scripts/plot/util/private/__fltk_print__.m, scripts/plot/util/private/__gnuplot_print__.m, scripts/plot/util/private/__print_parse_opts__.m, scripts/plot/util/refreshdata.m, scripts/plot/util/subplot.m, scripts/polynomial/conv.m, scripts/polynomial/poly.m, scripts/polynomial/polyeig.m, scripts/polynomial/polyfit.m, scripts/polynomial/polyval.m, scripts/polynomial/private/__splinefit__.m, scripts/polynomial/spline.m, scripts/prefs/prefdir.m, scripts/prefs/preferences.m, scripts/prefs/private/prefsfile.m, scripts/prefs/rmpref.m, scripts/signal/freqz.m, scripts/signal/module.mk, scripts/sparse/eigs.m, scripts/sparse/pcg.m, scripts/sparse/private/__sprand_impl__.m, scripts/sparse/sprand.m, scripts/sparse/sprandn.m, scripts/sparse/spy.m, scripts/sparse/svds.m, scripts/specfun/expint.m, scripts/specfun/factor.m, scripts/special-matrix/gallery.m, scripts/special-matrix/hankel.m, scripts/special-matrix/toeplitz.m, scripts/startup/inputrc, scripts/statistics/base/kurtosis.m, scripts/statistics/base/moment.m, scripts/statistics/base/qqplot.m, scripts/statistics/base/var.m, scripts/statistics/distributions/betarnd.m, scripts/statistics/distributions/binoinv.m, scripts/statistics/distributions/binopdf.m, scripts/statistics/distributions/binornd.m, scripts/statistics/distributions/cauchy_rnd.m, scripts/statistics/distributions/chi2rnd.m, scripts/statistics/distributions/discrete_pdf.m, scripts/statistics/distributions/discrete_rnd.m, scripts/statistics/distributions/empirical_rnd.m, scripts/statistics/distributions/exprnd.m, scripts/statistics/distributions/frnd.m, scripts/statistics/distributions/gamrnd.m, scripts/statistics/distributions/geornd.m, scripts/statistics/distributions/hygernd.m, scripts/statistics/distributions/kolmogorov_smirnov_cdf.m, scripts/statistics/distributions/laplace_cdf.m, scripts/statistics/distributions/laplace_pdf.m, scripts/statistics/distributions/logistic_cdf.m, scripts/statistics/distributions/logistic_pdf.m, scripts/statistics/distributions/lognrnd.m, scripts/statistics/distributions/nbincdf.m, scripts/statistics/distributions/nbininv.m, scripts/statistics/distributions/nbinpdf.m, scripts/statistics/distributions/nbinrnd.m, scripts/statistics/distributions/normrnd.m, scripts/statistics/distributions/poissinv.m, scripts/statistics/distributions/poissrnd.m, scripts/statistics/distributions/tinv.m, scripts/statistics/distributions/trnd.m, scripts/statistics/distributions/unidcdf.m, scripts/statistics/distributions/unidpdf.m, scripts/statistics/distributions/unidrnd.m, scripts/statistics/distributions/unifrnd.m, scripts/statistics/distributions/wblrnd.m, scripts/statistics/models/module.mk, scripts/statistics/tests/kruskal_wallis_test.m, scripts/strings/base2dec.m, scripts/strings/deblank.m, scripts/strings/dec2base.m, scripts/strings/dec2bin.m, scripts/strings/dec2hex.m, scripts/strings/mat2str.m, scripts/strings/ostrsplit.m, scripts/strings/regexptranslate.m, scripts/strings/str2num.m, scripts/strings/strcat.m, scripts/strings/strjoin.m, scripts/strings/strsplit.m, scripts/strings/strtok.m, scripts/strings/strtrim.m, scripts/strings/strtrunc.m, scripts/strings/substr.m, scripts/testfun/__run_test_suite__.m, scripts/testfun/speed.m, scripts/testfun/test.m, scripts/time/asctime.m, scripts/time/datenum.m, scripts/time/datevec.m, scripts/time/weekday.m, src/Makefile.am, test/Makefile.am, test/build-bc-overload-tests.sh, test/build-sparse-tests.sh, test/jit.tst, test/line-continue.tst: Strip trailing whitespace.
author John W. Eaton <jwe@octave.org>
date Tue, 20 Jan 2015 08:26:57 -0500
parents 648dabbb4c6b
children
comparison
equal deleted inserted replaced
19488:8dbd55742112 19627:446c46af4b42
293 C dy3/dt = 3.E7*y2**2 293 C dy3/dt = 3.E7*y2**2
294 C 294 C
295 C on the interval from t = 0.0 to t = 4.E10, with initial conditions 295 C on the interval from t = 0.0 to t = 4.E10, with initial conditions
296 C y1 = 1.0, y2 = y3 = 0. The problem is stiff. 296 C y1 = 1.0, y2 = y3 = 0. The problem is stiff.
297 C 297 C
298 C The following coding solves this problem with SLSODE, using 298 C The following coding solves this problem with SLSODE, using
299 C MF = 21 and printing results at t = .4, 4., ..., 4.E10. It uses 299 C MF = 21 and printing results at t = .4, 4., ..., 4.E10. It uses
300 C ITOL = 2 and ATOL much smaller for y2 than for y1 or y3 because y2 300 C ITOL = 2 and ATOL much smaller for y2 than for y1 or y3 because y2
301 C has much smaller values. At the end of the run, statistical 301 C has much smaller values. At the end of the run, statistical
302 C quantities of interest are printed. 302 C quantities of interest are printed.
303 C 303 C
304 C EXTERNAL FEX, JEX 304 C EXTERNAL FEX, JEX
305 C INTEGER IOPT, IOUT, ISTATE, ITASK, ITOL, IWORK(23), LIW, LRW, 305 C INTEGER IOPT, IOUT, ISTATE, ITASK, ITOL, IWORK(23), LIW, LRW,
306 C * MF, NEQ 306 C * MF, NEQ
387 C the same problem, except possibly for the conditional and optional 387 C the same problem, except possibly for the conditional and optional
388 C inputs. 388 C inputs.
389 C 389 C
390 C *Portability: 390 C *Portability:
391 C Since NEQ is dimensioned inside SLSODE, some compilers may object 391 C Since NEQ is dimensioned inside SLSODE, some compilers may object
392 C to a call to SLSODE with NEQ a scalar variable. In this event, 392 C to a call to SLSODE with NEQ a scalar variable. In this event,
393 C use DIMENSION NEQ(1). Similar remarks apply to RTOL and ATOL. 393 C use DIMENSION NEQ(1). Similar remarks apply to RTOL and ATOL.
394 C 394 C
395 C Note to Cray users: 395 C Note to Cray users:
396 C For maximum efficiency, use the CFT77 compiler. Appropriate 396 C For maximum efficiency, use the CFT77 compiler. Appropriate
397 C compiler optimization directives have been inserted for CFT77. 397 C compiler optimization directives have been inserted for CFT77.
875 C value is 10. 875 C value is 10.
876 C 876 C
877 C Optional Outputs 877 C Optional Outputs
878 C ---------------- 878 C ----------------
879 C As optional additional output from SLSODE, the variables listed 879 C As optional additional output from SLSODE, the variables listed
880 C below are quantities related to the performance of SLSODE which 880 C below are quantities related to the performance of SLSODE which
881 C are available to the user. These are communicated by way of the 881 C are available to the user. These are communicated by way of the
882 C work arrays, but also have internal mnemonic names as shown. 882 C work arrays, but also have internal mnemonic names as shown.
883 C Except where stated otherwise, all of these outputs are defined on 883 C Except where stated otherwise, all of these outputs are defined on
884 C any successful return from SLSODE, and on any return with ISTATE = 884 C any successful return from SLSODE, and on any return with ISTATE =
885 C -1, -2, -4, -5, or -6. On an illegal input return (ISTATE = -3), 885 C -1, -2, -4, -5, or -6. On an illegal input return (ISTATE = -3),
886 C they will be unchanged from their existing values (if any), except 886 C they will be unchanged from their existing values (if any), except
887 C possibly for TOLSF, LENRW, and LENIW. On any error return, 887 C possibly for TOLSF, LENRW, and LENIW. On any error return,
1019 C ---------------------- 1019 C ----------------------
1020 C 1020 C
1021 C If SLSODE is to be used in an overlay situation, the user must 1021 C If SLSODE is to be used in an overlay situation, the user must
1022 C declare, in the primary overlay, the variables in: 1022 C declare, in the primary overlay, the variables in:
1023 C (1) the call sequence to SLSODE, 1023 C (1) the call sequence to SLSODE,
1024 C (2) the internal COMMON block /SLS001/, of length 255 1024 C (2) the internal COMMON block /SLS001/, of length 255
1025 C (218 single precision words followed by 37 integer words). 1025 C (218 single precision words followed by 37 integer words).
1026 C 1026 C
1027 C If SLSODE is used on a system in which the contents of internal 1027 C If SLSODE is used on a system in which the contents of internal
1028 C COMMON blocks are not preserved between calls, the user should 1028 C COMMON blocks are not preserved between calls, the user should
1029 C declare the above COMMON block in his main program to insure that 1029 C declare the above COMMON block in his main program to insure that
1155 C 19921116 Revised prologue comments regarding Common. (ACH). 1155 C 19921116 Revised prologue comments regarding Common. (ACH).
1156 C 19930326 Added comment about non-reentrancy. (FNF) 1156 C 19930326 Added comment about non-reentrancy. (FNF)
1157 C 19930723 Changed R1MACH to RUMACH. (FNF) 1157 C 19930723 Changed R1MACH to RUMACH. (FNF)
1158 C 19930801 Removed ILLIN and NTREP from Common (affects driver logic); 1158 C 19930801 Removed ILLIN and NTREP from Common (affects driver logic);
1159 C minor changes to prologue and internal comments; 1159 C minor changes to prologue and internal comments;
1160 C changed Hollerith strings to quoted strings; 1160 C changed Hollerith strings to quoted strings;
1161 C changed internal comments to mixed case; 1161 C changed internal comments to mixed case;
1162 C replaced XERRWV with new version using character type; 1162 C replaced XERRWV with new version using character type;
1163 C changed dummy dimensions from 1 to *. (ACH) 1163 C changed dummy dimensions from 1 to *. (ACH)
1164 C 19930809 Changed to generic intrinsic names; changed names of 1164 C 19930809 Changed to generic intrinsic names; changed names of
1165 C subprograms and Common blocks to SLSODE etc. (ACH) 1165 C subprograms and Common blocks to SLSODE etc. (ACH)
1502 IF (NST .EQ. 0) GO TO 626 1502 IF (NST .EQ. 0) GO TO 626
1503 GO TO 520 1503 GO TO 520
1504 280 IF ((TN + H) .NE. TN) GO TO 290 1504 280 IF ((TN + H) .NE. TN) GO TO 290
1505 NHNIL = NHNIL + 1 1505 NHNIL = NHNIL + 1
1506 IF (NHNIL .GT. MXHNIL) GO TO 290 1506 IF (NHNIL .GT. MXHNIL) GO TO 290
1507 CALL XERRWD('SLSODE- Warning..internal T (=R1) and H (=R2) are', 1507 CALL XERRWD('SLSODE- Warning..internal T (=R1) and H (=R2) are',
1508 1 50, 101, 0, 0, 0, 0, 0, 0.0E0, 0.0E0) 1508 1 50, 101, 0, 0, 0, 0, 0, 0.0E0, 0.0E0)
1509 CALL XERRWD( 1509 CALL XERRWD(
1510 1 ' such that in the machine, T + H = T on the next step ', 1510 1 ' such that in the machine, T + H = T on the next step ',
1511 1 60, 101, 0, 0, 0, 0, 0, 0.0E0, 0.0E0) 1511 1 60, 101, 0, 0, 0, 0, 0, 0.0E0, 0.0E0)
1512 CALL XERRWD(' (H = step size). Solver will continue anyway', 1512 CALL XERRWD(' (H = step size). Solver will continue anyway',
1513 1 50, 101, 0, 0, 0, 0, 2, TN, H) 1513 1 50, 101, 0, 0, 0, 0, 2, TN, H)
1514 IF (NHNIL .LT. MXHNIL) GO TO 290 1514 IF (NHNIL .LT. MXHNIL) GO TO 290
1515 CALL XERRWD('SLSODE- Above warning has been issued I1 times. ', 1515 CALL XERRWD('SLSODE- Above warning has been issued I1 times. ',
1516 1 50, 102, 0, 0, 0, 0, 0, 0.0E0, 0.0E0) 1516 1 50, 102, 0, 0, 0, 0, 0, 0.0E0, 0.0E0)
1517 CALL XERRWD(' It will not be issued again for this problem', 1517 CALL XERRWD(' It will not be issued again for this problem',
1518 1 50, 102, 0, 1, MXHNIL, 0, 0, 0.0E0, 0.0E0) 1518 1 50, 102, 0, 1, MXHNIL, 0, 0, 0.0E0, 0.0E0)
1519 290 CONTINUE 1519 290 CONTINUE
1520 C----------------------------------------------------------------------- 1520 C-----------------------------------------------------------------------
1521 C CALL SSTODE(NEQ,Y,YH,NYH,YH,EWT,SAVF,ACOR,WM,IWM,F,JAC,SPREPJ,SSOLSY) 1521 C CALL SSTODE(NEQ,Y,YH,NYH,YH,EWT,SAVF,ACOR,WM,IWM,F,JAC,SPREPJ,SSOLSY)
1522 C----------------------------------------------------------------------- 1522 C-----------------------------------------------------------------------
1585 C If there was an error test or convergence test failure, IMXER is set. 1585 C If there was an error test or convergence test failure, IMXER is set.
1586 C Then Y is loaded from YH and T is set to TN. The optional outputs 1586 C Then Y is loaded from YH and T is set to TN. The optional outputs
1587 C are loaded into the work arrays before returning. 1587 C are loaded into the work arrays before returning.
1588 C----------------------------------------------------------------------- 1588 C-----------------------------------------------------------------------
1589 C The maximum number of steps was taken before reaching TOUT. ---------- 1589 C The maximum number of steps was taken before reaching TOUT. ----------
1590 500 CALL XERRWD('SLSODE- At current T (=R1), MXSTEP (=I1) steps ', 1590 500 CALL XERRWD('SLSODE- At current T (=R1), MXSTEP (=I1) steps ',
1591 1 50, 201, 0, 0, 0, 0, 0, 0.0E0, 0.0E0) 1591 1 50, 201, 0, 0, 0, 0, 0, 0.0E0, 0.0E0)
1592 CALL XERRWD(' taken on this call before reaching TOUT ', 1592 CALL XERRWD(' taken on this call before reaching TOUT ',
1593 1 50, 201, 0, 1, MXSTEP, 0, 1, TN, 0.0E0) 1593 1 50, 201, 0, 1, MXSTEP, 0, 1, TN, 0.0E0)
1594 ISTATE = -1 1594 ISTATE = -1
1595 GO TO 580 1595 GO TO 580
1596 C EWT(I) .LE. 0.0 for some I (not at start of problem). ---------------- 1596 C EWT(I) .LE. 0.0 for some I (not at start of problem). ----------------
1597 510 EWTI = RWORK(LEWT+I-1) 1597 510 EWTI = RWORK(LEWT+I-1)
1598 CALL XERRWD('SLSODE- At T (=R1), EWT(I1) has become R2 .LE. 0.', 1598 CALL XERRWD('SLSODE- At T (=R1), EWT(I1) has become R2 .LE. 0.',
1599 1 50, 202, 0, 1, I, 0, 2, TN, EWTI) 1599 1 50, 202, 0, 1, I, 0, 2, TN, EWTI)
1600 ISTATE = -6 1600 ISTATE = -6
1601 GO TO 580 1601 GO TO 580
1602 C Too much accuracy requested for machine precision. ------------------- 1602 C Too much accuracy requested for machine precision. -------------------
1603 520 CALL XERRWD('SLSODE- At T (=R1), too much accuracy requested ', 1603 520 CALL XERRWD('SLSODE- At T (=R1), too much accuracy requested ',
1604 1 50, 203, 0, 0, 0, 0, 0, 0.0E0, 0.0E0) 1604 1 50, 203, 0, 0, 0, 0, 0, 0.0E0, 0.0E0)
1605 CALL XERRWD(' for precision of machine.. see TOLSF (=R2) ', 1605 CALL XERRWD(' for precision of machine.. see TOLSF (=R2) ',
1606 1 50, 203, 0, 0, 0, 0, 2, TN, TOLSF) 1606 1 50, 203, 0, 0, 0, 0, 2, TN, TOLSF)
1607 RWORK(14) = TOLSF 1607 RWORK(14) = TOLSF
1608 ISTATE = -2 1608 ISTATE = -2
1609 GO TO 580 1609 GO TO 580
1610 C KFLAG = -1. Error test failed repeatedly or with ABS(H) = HMIN. ----- 1610 C KFLAG = -1. Error test failed repeatedly or with ABS(H) = HMIN. -----
1611 530 CALL XERRWD('SLSODE- At T(=R1) and step size H(=R2), the error', 1611 530 CALL XERRWD('SLSODE- At T(=R1) and step size H(=R2), the error',
1612 1 50, 204, 0, 0, 0, 0, 0, 0.0E0, 0.0E0) 1612 1 50, 204, 0, 0, 0, 0, 0, 0.0E0, 0.0E0)
1613 CALL XERRWD(' test failed repeatedly or with ABS(H) = HMIN', 1613 CALL XERRWD(' test failed repeatedly or with ABS(H) = HMIN',
1614 1 50, 204, 0, 0, 0, 0, 2, TN, H) 1614 1 50, 204, 0, 0, 0, 0, 2, TN, H)
1615 ISTATE = -4 1615 ISTATE = -4
1616 GO TO 560 1616 GO TO 560
1617 C KFLAG = -2. Convergence failed repeatedly or with ABS(H) = HMIN. ---- 1617 C KFLAG = -2. Convergence failed repeatedly or with ABS(H) = HMIN. ----
1618 540 CALL XERRWD('SLSODE- At T (=R1) and step size H (=R2), the ', 1618 540 CALL XERRWD('SLSODE- At T (=R1) and step size H (=R2), the ',
1619 1 50, 205, 0, 0, 0, 0, 0, 0.0E0, 0.0E0) 1619 1 50, 205, 0, 0, 0, 0, 0, 0.0E0, 0.0E0)
1620 CALL XERRWD(' corrector convergence failed repeatedly ', 1620 CALL XERRWD(' corrector convergence failed repeatedly ',
1621 1 50, 205, 0, 0, 0, 0, 0, 0.0E0, 0.0E0) 1621 1 50, 205, 0, 0, 0, 0, 0, 0.0E0, 0.0E0)
1622 CALL XERRWD(' or with ABS(H) = HMIN ', 1622 CALL XERRWD(' or with ABS(H) = HMIN ',
1623 1 30, 205, 0, 0, 0, 0, 2, TN, H) 1623 1 30, 205, 0, 0, 0, 0, 2, TN, H)
1624 ISTATE = -5 1624 ISTATE = -5
1625 C Compute IMXER if relevant. ------------------------------------------- 1625 C Compute IMXER if relevant. -------------------------------------------
1626 560 BIG = 0.0E0 1626 560 BIG = 0.0E0
1627 IMXER = 1 1627 IMXER = 1
1647 RETURN 1647 RETURN
1648 C----------------------------------------------------------------------- 1648 C-----------------------------------------------------------------------
1649 C Block I. 1649 C Block I.
1650 C The following block handles all error returns due to illegal input 1650 C The following block handles all error returns due to illegal input
1651 C (ISTATE = -3), as detected before calling the core integrator. 1651 C (ISTATE = -3), as detected before calling the core integrator.
1652 C First the error message routine is called. If the illegal input 1652 C First the error message routine is called. If the illegal input
1653 C is a negative ISTATE, the run is aborted (apparent infinite loop). 1653 C is a negative ISTATE, the run is aborted (apparent infinite loop).
1654 C----------------------------------------------------------------------- 1654 C-----------------------------------------------------------------------
1655 601 CALL XERRWD('SLSODE- ISTATE (=I1) illegal ', 1655 601 CALL XERRWD('SLSODE- ISTATE (=I1) illegal ',
1656 1 30, 1, 0, 1, ISTATE, 0, 0, 0.0E0, 0.0E0) 1656 1 30, 1, 0, 1, ISTATE, 0, 0, 0.0E0, 0.0E0)
1657 IF (ISTATE .LT. 0) GO TO 800 1657 IF (ISTATE .LT. 0) GO TO 800
1658 GO TO 700 1658 GO TO 700
1659 602 CALL XERRWD('SLSODE- ITASK (=I1) illegal ', 1659 602 CALL XERRWD('SLSODE- ITASK (=I1) illegal ',
1660 1 30, 2, 0, 1, ITASK, 0, 0, 0.0E0, 0.0E0) 1660 1 30, 2, 0, 1, ITASK, 0, 0, 0.0E0, 0.0E0)
1661 GO TO 700 1661 GO TO 700
1662 603 CALL XERRWD('SLSODE- ISTATE .GT. 1 but SLSODE not initialized ', 1662 603 CALL XERRWD('SLSODE- ISTATE .GT. 1 but SLSODE not initialized ',
1663 1 50, 3, 0, 0, 0, 0, 0, 0.0E0, 0.0E0) 1663 1 50, 3, 0, 0, 0, 0, 0, 0.0E0, 0.0E0)
1664 GO TO 700 1664 GO TO 700
1665 604 CALL XERRWD('SLSODE- NEQ (=I1) .LT. 1 ', 1665 604 CALL XERRWD('SLSODE- NEQ (=I1) .LT. 1 ',
1666 1 30, 4, 0, 1, NEQ(1), 0, 0, 0.0E0, 0.0E0) 1666 1 30, 4, 0, 1, NEQ(1), 0, 0, 0.0E0, 0.0E0)
1667 GO TO 700 1667 GO TO 700
1668 605 CALL XERRWD('SLSODE- ISTATE = 3 and NEQ increased (I1 to I2) ', 1668 605 CALL XERRWD('SLSODE- ISTATE = 3 and NEQ increased (I1 to I2) ',
1669 1 50, 5, 0, 2, N, NEQ(1), 0, 0.0E0, 0.0E0) 1669 1 50, 5, 0, 2, N, NEQ(1), 0, 0.0E0, 0.0E0)
1670 GO TO 700 1670 GO TO 700
1671 606 CALL XERRWD('SLSODE- ITOL (=I1) illegal ', 1671 606 CALL XERRWD('SLSODE- ITOL (=I1) illegal ',
1672 1 30, 6, 0, 1, ITOL, 0, 0, 0.0E0, 0.0E0) 1672 1 30, 6, 0, 1, ITOL, 0, 0, 0.0E0, 0.0E0)
1673 GO TO 700 1673 GO TO 700
1674 607 CALL XERRWD('SLSODE- IOPT (=I1) illegal ', 1674 607 CALL XERRWD('SLSODE- IOPT (=I1) illegal ',
1675 1 30, 7, 0, 1, IOPT, 0, 0, 0.0E0, 0.0E0) 1675 1 30, 7, 0, 1, IOPT, 0, 0, 0.0E0, 0.0E0)
1676 GO TO 700 1676 GO TO 700
1677 608 CALL XERRWD('SLSODE- MF (=I1) illegal ', 1677 608 CALL XERRWD('SLSODE- MF (=I1) illegal ',
1678 1 30, 8, 0, 1, MF, 0, 0, 0.0E0, 0.0E0) 1678 1 30, 8, 0, 1, MF, 0, 0, 0.0E0, 0.0E0)
1679 GO TO 700 1679 GO TO 700
1680 609 CALL XERRWD('SLSODE- ML (=I1) illegal.. .LT.0 or .GE.NEQ (=I2)', 1680 609 CALL XERRWD('SLSODE- ML (=I1) illegal.. .LT.0 or .GE.NEQ (=I2)',
1681 1 50, 9, 0, 2, ML, NEQ(1), 0, 0.0E0, 0.0E0) 1681 1 50, 9, 0, 2, ML, NEQ(1), 0, 0.0E0, 0.0E0)
1682 GO TO 700 1682 GO TO 700
1683 610 CALL XERRWD('SLSODE- MU (=I1) illegal.. .LT.0 or .GE.NEQ (=I2)', 1683 610 CALL XERRWD('SLSODE- MU (=I1) illegal.. .LT.0 or .GE.NEQ (=I2)',
1684 1 50, 10, 0, 2, MU, NEQ(1), 0, 0.0E0, 0.0E0) 1684 1 50, 10, 0, 2, MU, NEQ(1), 0, 0.0E0, 0.0E0)
1685 GO TO 700 1685 GO TO 700
1686 611 CALL XERRWD('SLSODE- MAXORD (=I1) .LT. 0 ', 1686 611 CALL XERRWD('SLSODE- MAXORD (=I1) .LT. 0 ',
1687 1 30, 11, 0, 1, MAXORD, 0, 0, 0.0E0, 0.0E0) 1687 1 30, 11, 0, 1, MAXORD, 0, 0, 0.0E0, 0.0E0)
1688 GO TO 700 1688 GO TO 700
1689 612 CALL XERRWD('SLSODE- MXSTEP (=I1) .LT. 0 ', 1689 612 CALL XERRWD('SLSODE- MXSTEP (=I1) .LT. 0 ',
1690 1 30, 12, 0, 1, MXSTEP, 0, 0, 0.0E0, 0.0E0) 1690 1 30, 12, 0, 1, MXSTEP, 0, 0, 0.0E0, 0.0E0)
1691 GO TO 700 1691 GO TO 700
1692 613 CALL XERRWD('SLSODE- MXHNIL (=I1) .LT. 0 ', 1692 613 CALL XERRWD('SLSODE- MXHNIL (=I1) .LT. 0 ',
1693 1 30, 13, 0, 1, MXHNIL, 0, 0, 0.0E0, 0.0E0) 1693 1 30, 13, 0, 1, MXHNIL, 0, 0, 0.0E0, 0.0E0)
1694 GO TO 700 1694 GO TO 700
1695 614 CALL XERRWD('SLSODE- TOUT (=R1) behind T (=R2) ', 1695 614 CALL XERRWD('SLSODE- TOUT (=R1) behind T (=R2) ',
1696 1 40, 14, 0, 0, 0, 0, 2, TOUT, T) 1696 1 40, 14, 0, 0, 0, 0, 2, TOUT, T)
1697 CALL XERRWD(' Integration direction is given by H0 (=R1) ', 1697 CALL XERRWD(' Integration direction is given by H0 (=R1) ',
1698 1 50, 14, 0, 0, 0, 0, 1, H0, 0.0E0) 1698 1 50, 14, 0, 0, 0, 0, 1, H0, 0.0E0)
1699 GO TO 700 1699 GO TO 700
1700 615 CALL XERRWD('SLSODE- HMAX (=R1) .LT. 0.0 ', 1700 615 CALL XERRWD('SLSODE- HMAX (=R1) .LT. 0.0 ',
1701 1 30, 15, 0, 0, 0, 0, 1, HMAX, 0.0E0) 1701 1 30, 15, 0, 0, 0, 0, 1, HMAX, 0.0E0)
1702 GO TO 700 1702 GO TO 700
1703 616 CALL XERRWD('SLSODE- HMIN (=R1) .LT. 0.0 ', 1703 616 CALL XERRWD('SLSODE- HMIN (=R1) .LT. 0.0 ',
1704 1 30, 16, 0, 0, 0, 0, 1, HMIN, 0.0E0) 1704 1 30, 16, 0, 0, 0, 0, 1, HMIN, 0.0E0)
1705 GO TO 700 1705 GO TO 700
1706 617 CALL XERRWD( 1706 617 CALL XERRWD(
1707 1 'SLSODE- RWORK length needed, LENRW (=I1), exceeds LRW (=I2)', 1707 1 'SLSODE- RWORK length needed, LENRW (=I1), exceeds LRW (=I2)',
1708 1 60, 17, 0, 2, LENRW, LRW, 0, 0.0E0, 0.0E0) 1708 1 60, 17, 0, 2, LENRW, LRW, 0, 0.0E0, 0.0E0)
1709 GO TO 700 1709 GO TO 700
1710 618 CALL XERRWD( 1710 618 CALL XERRWD(
1711 1 'SLSODE- IWORK length needed, LENIW (=I1), exceeds LIW (=I2)', 1711 1 'SLSODE- IWORK length needed, LENIW (=I1), exceeds LIW (=I2)',
1712 1 60, 18, 0, 2, LENIW, LIW, 0, 0.0E0, 0.0E0) 1712 1 60, 18, 0, 2, LENIW, LIW, 0, 0.0E0, 0.0E0)
1713 GO TO 700 1713 GO TO 700
1714 619 CALL XERRWD('SLSODE- RTOL(I1) is R1 .LT. 0.0 ', 1714 619 CALL XERRWD('SLSODE- RTOL(I1) is R1 .LT. 0.0 ',
1715 1 40, 19, 0, 1, I, 0, 1, RTOLI, 0.0E0) 1715 1 40, 19, 0, 1, I, 0, 1, RTOLI, 0.0E0)
1716 GO TO 700 1716 GO TO 700
1717 620 CALL XERRWD('SLSODE- ATOL(I1) is R1 .LT. 0.0 ', 1717 620 CALL XERRWD('SLSODE- ATOL(I1) is R1 .LT. 0.0 ',
1718 1 40, 20, 0, 1, I, 0, 1, ATOLI, 0.0E0) 1718 1 40, 20, 0, 1, I, 0, 1, ATOLI, 0.0E0)
1719 GO TO 700 1719 GO TO 700
1720 621 EWTI = RWORK(LEWT+I-1) 1720 621 EWTI = RWORK(LEWT+I-1)
1721 CALL XERRWD('SLSODE- EWT(I1) is R1 .LE. 0.0 ', 1721 CALL XERRWD('SLSODE- EWT(I1) is R1 .LE. 0.0 ',
1722 1 40, 21, 0, 1, I, 0, 1, EWTI, 0.0E0) 1722 1 40, 21, 0, 1, I, 0, 1, EWTI, 0.0E0)
1723 GO TO 700 1723 GO TO 700
1724 622 CALL XERRWD( 1724 622 CALL XERRWD(
1725 1 'SLSODE- TOUT (=R1) too close to T(=R2) to start integration', 1725 1 'SLSODE- TOUT (=R1) too close to T(=R2) to start integration',
1726 1 60, 22, 0, 0, 0, 0, 2, TOUT, T) 1726 1 60, 22, 0, 0, 0, 0, 2, TOUT, T)
1727 GO TO 700 1727 GO TO 700
1728 623 CALL XERRWD( 1728 623 CALL XERRWD(
1729 1 'SLSODE- ITASK = I1 and TOUT (=R1) behind TCUR - HU (= R2) ', 1729 1 'SLSODE- ITASK = I1 and TOUT (=R1) behind TCUR - HU (= R2) ',
1730 1 60, 23, 0, 1, ITASK, 0, 2, TOUT, TP) 1730 1 60, 23, 0, 1, ITASK, 0, 2, TOUT, TP)
1731 GO TO 700 1731 GO TO 700
1732 624 CALL XERRWD( 1732 624 CALL XERRWD(
1733 1 'SLSODE- ITASK = 4 OR 5 and TCRIT (=R1) behind TCUR (=R2) ', 1733 1 'SLSODE- ITASK = 4 OR 5 and TCRIT (=R1) behind TCUR (=R2) ',
1734 1 60, 24, 0, 0, 0, 0, 2, TCRIT, TN) 1734 1 60, 24, 0, 0, 0, 0, 2, TCRIT, TN)
1742 CALL XERRWD( 1742 CALL XERRWD(
1743 1 ' requested for precision of machine.. See TOLSF (=R1) ', 1743 1 ' requested for precision of machine.. See TOLSF (=R1) ',
1744 1 60, 26, 0, 0, 0, 0, 1, TOLSF, 0.0E0) 1744 1 60, 26, 0, 0, 0, 0, 1, TOLSF, 0.0E0)
1745 RWORK(14) = TOLSF 1745 RWORK(14) = TOLSF
1746 GO TO 700 1746 GO TO 700
1747 627 CALL XERRWD('SLSODE- Trouble in SINTDY. ITASK = I1, TOUT = R1', 1747 627 CALL XERRWD('SLSODE- Trouble in SINTDY. ITASK = I1, TOUT = R1',
1748 1 50, 27, 0, 1, ITASK, 0, 1, TOUT, 0.0E0) 1748 1 50, 27, 0, 1, ITASK, 0, 1, TOUT, 0.0E0)
1749 C 1749 C
1750 700 ISTATE = -3 1750 700 ISTATE = -3
1751 RETURN 1751 RETURN
1752 C 1752 C
1753 800 CALL XERRWD('SLSODE- Run aborted.. apparent infinite loop ', 1753 800 CALL XERRWD('SLSODE- Run aborted.. apparent infinite loop ',
1754 1 50, 303, 2, 0, 0, 0, 0, 0.0E0, 0.0E0) 1754 1 50, 303, 2, 0, 0, 0, 0, 0.0E0, 0.0E0)
1755 RETURN 1755 RETURN
1756 C----------------------- END OF SUBROUTINE SLSODE ---------------------- 1756 C----------------------- END OF SUBROUTINE SLSODE ----------------------
1757 END 1757 END