1 ;;; Compiled by f2cl version:
2 ;;; ("f2cl1.l,v 95098eb54f13 2013/04/01 00:45:16 toy $"
3 ;;; "f2cl2.l,v 95098eb54f13 2013/04/01 00:45:16 toy $"
4 ;;; "f2cl3.l,v 96616d88fb7e 2008/02/22 22:19:34 rtoy $"
5 ;;; "f2cl4.l,v 96616d88fb7e 2008/02/22 22:19:34 rtoy $"
6 ;;; "f2cl5.l,v 95098eb54f13 2013/04/01 00:45:16 toy $"
7 ;;; "f2cl6.l,v 1d5cbacbb977 2008/08/24 00:56:27 rtoy $"
8 ;;; "macros.l,v 1409c1352feb 2013/03/24 20:44:50 toy $")
10 ;;; Using Lisp CMU Common Lisp snapshot-2013-11 (20E Unicode)
12 ;;; Options: ((:prune-labels nil) (:auto-save t) (:relaxed-array-decls t)
13 ;;; (:coerce-assigns :as-needed) (:array-type ':array)
14 ;;; (:array-slicing t) (:declare-common nil)
15 ;;; (:float-format single-float))
17 (in-package "ODEPACK")
20 (defun dsolpk (neq y savf x ewt wm iwm f psol
)
21 (declare (type (array double-float
(*)) wm ewt x savf y
)
22 (type (array f2cl-lib
:integer4
(*)) iwm neq
))
24 (symbol-macrolet ((el0 (aref (dls001-part-0 *dls001-common-block
*) 210))
25 (h (aref (dls001-part-0 *dls001-common-block
*) 211))
26 (tn (aref (dls001-part-0 *dls001-common-block
*) 216))
27 (iersl (aref (dls001-part-1 *dls001-common-block
*) 14))
28 (miter (aref (dls001-part-1 *dls001-common-block
*) 26))
29 (n (aref (dls001-part-1 *dls001-common-block
*) 31))
30 (delt (aref (dlpk01-part-0 *dlpk01-common-block
*) 0))
31 (epcon (aref (dlpk01-part-0 *dlpk01-common-block
*) 1))
32 (sqrtn (aref (dlpk01-part-0 *dlpk01-common-block
*) 2))
33 (rsqrtn (aref (dlpk01-part-0 *dlpk01-common-block
*) 3))
34 (jpre (aref (dlpk01-part-1 *dlpk01-common-block
*) 0))
35 (locwp (aref (dlpk01-part-1 *dlpk01-common-block
*) 2))
36 (lociwp (aref (dlpk01-part-1 *dlpk01-common-block
*) 3))
37 (kmp (aref (dlpk01-part-1 *dlpk01-common-block
*) 5))
38 (maxl (aref (dlpk01-part-1 *dlpk01-common-block
*) 6))
39 (mnewt (aref (dlpk01-part-1 *dlpk01-common-block
*) 7))
40 (nni (aref (dlpk01-part-1 *dlpk01-common-block
*) 8))
41 (nli (aref (dlpk01-part-1 *dlpk01-common-block
*) 9))
42 (nps (aref (dlpk01-part-1 *dlpk01-common-block
*) 10))
43 (ncfl (aref (dlpk01-part-1 *dlpk01-common-block
*) 12)))
44 (f2cl-lib:with-multi-array-data
45 ((neq f2cl-lib
:integer4 neq-%data% neq-%offset%
)
46 (iwm f2cl-lib
:integer4 iwm-%data% iwm-%offset%
)
47 (y double-float y-%data% y-%offset%
)
48 (savf double-float savf-%data% savf-%offset%
)
49 (x double-float x-%data% x-%offset%
)
50 (ewt double-float ewt-%data% ewt-%offset%
)
51 (wm double-float wm-%data% wm-%offset%
))
52 (prog ((npsl 0) (maxlp1 0) (lz 0) (lwk 0) (lw 0) (lv 0) (lr 0) (lq 0)
53 (lp 0) (lpcg 0) (lgmr 0) (liom 0) (lhes 0) (ldl 0) (lb 0)
54 (iflag 0) (hl0 0.0d0
) (delta 0.0d0
))
55 (declare (type (double-float) delta hl0
)
56 (type (f2cl-lib:integer4
) iflag lb ldl lhes liom lgmr lpcg
57 lp lq lr lv lw lwk lz maxlp1
61 (setf delta
(* delt epcon
))
62 (f2cl-lib:computed-goto
63 (label100 label200 label300 label400 label900 label900 label900
68 (setf lb
(f2cl-lib:int-add lv
(f2cl-lib:int-mul n maxl
)))
69 (setf lhes
(f2cl-lib:int-add lb n
))
70 (setf lwk
(f2cl-lib:int-add lhes
(f2cl-lib:int-mul maxl maxl
)))
72 (f2cl-lib:array-slice wm-%data%
78 (dscal n rsqrtn ewt
1)
80 (var-0 var-1 var-2 var-3 var-4 var-5 var-6 var-7 var-8 var-9
81 var-10 var-11 var-12 var-13 var-14 var-15 var-16 var-17 var-18
82 var-19 var-20 var-21 var-22 var-23 var-24
)
84 (f2cl-lib:array-slice wm-%data%
89 ewt n maxl kmp delta hl0 jpre mnewt f psol npsl x
90 (f2cl-lib:array-slice wm-%data%
95 (f2cl-lib:array-slice wm-%data%
101 (f2cl-lib:array-slice wm-%data%
106 (f2cl-lib:array-slice iwm-%data%
111 (f2cl-lib:array-slice wm-%data%
117 (declare (ignore var-0 var-2 var-3 var-4 var-5 var-11 var-12 var-13
118 var-14 var-16 var-17 var-18 var-19 var-21 var-22
129 (setf nni
(f2cl-lib:int-add nni
1))
130 (setf nli
(f2cl-lib:int-add nli liom
))
131 (setf nps
(f2cl-lib:int-add nps npsl
))
132 (dscal n sqrtn ewt
1)
133 (if (/= iflag
0) (setf ncfl
(f2cl-lib:int-add ncfl
1)))
134 (if (>= iflag
2) (setf iersl
1))
135 (if (< iflag
0) (setf iersl -
1))
138 (setf maxlp1
(f2cl-lib:int-add maxl
1))
140 (setf lb
(f2cl-lib:int-add lv
(f2cl-lib:int-mul n maxl
)))
141 (setf lhes
(f2cl-lib:int-add lb n
1))
142 (setf lq
(f2cl-lib:int-add lhes
(f2cl-lib:int-mul maxl maxlp1
)))
143 (setf lwk
(f2cl-lib:int-add lq
(f2cl-lib:int-mul
2 maxl
)))
145 (f2cl-lib:int-add lwk
147 (min (the f2cl-lib
:integer4
1)
148 (the f2cl-lib
:integer4
149 (f2cl-lib:int-sub maxl kmp
)))
152 (f2cl-lib:array-slice wm-%data%
158 (dscal n rsqrtn ewt
1)
160 (var-0 var-1 var-2 var-3 var-4 var-5 var-6 var-7 var-8 var-9
161 var-10 var-11 var-12 var-13 var-14 var-15 var-16 var-17 var-18
162 var-19 var-20 var-21 var-22 var-23 var-24 var-25 var-26
)
163 (dspigmr neq tn y savf
164 (f2cl-lib:array-slice wm-%data%
169 ewt n maxl maxlp1 kmp delta hl0 jpre mnewt f psol npsl x
170 (f2cl-lib:array-slice wm-%data%
175 (f2cl-lib:array-slice wm-%data%
180 (f2cl-lib:array-slice wm-%data%
186 (f2cl-lib:array-slice wm-%data%
191 (f2cl-lib:array-slice iwm-%data%
196 (f2cl-lib:array-slice wm-%data%
201 (f2cl-lib:array-slice wm-%data%
207 (declare (ignore var-0 var-2 var-3 var-4 var-5 var-7 var-12 var-13
208 var-14 var-15 var-17 var-18 var-19 var-20 var-22
209 var-23 var-24 var-25
))
219 (setf nni
(f2cl-lib:int-add nni
1))
220 (setf nli
(f2cl-lib:int-add nli lgmr
))
221 (setf nps
(f2cl-lib:int-add nps npsl
))
222 (dscal n sqrtn ewt
1)
223 (if (/= iflag
0) (setf ncfl
(f2cl-lib:int-add ncfl
1)))
224 (if (>= iflag
2) (setf iersl
1))
225 (if (< iflag
0) (setf iersl -
1))
229 (setf lp
(f2cl-lib:int-add lr n
))
230 (setf lw
(f2cl-lib:int-add lp n
))
231 (setf lz
(f2cl-lib:int-add lw n
))
232 (setf lwk
(f2cl-lib:int-add lz n
))
234 (f2cl-lib:array-slice wm-%data%
241 (var-0 var-1 var-2 var-3 var-4 var-5 var-6 var-7 var-8 var-9
242 var-10 var-11 var-12 var-13 var-14 var-15 var-16 var-17 var-18
243 var-19 var-20 var-21 var-22 var-23
)
245 (f2cl-lib:array-slice wm-%data%
250 ewt n maxl delta hl0 jpre mnewt f psol npsl x
251 (f2cl-lib:array-slice wm-%data%
256 (f2cl-lib:array-slice wm-%data%
261 (f2cl-lib:array-slice wm-%data%
267 (f2cl-lib:array-slice wm-%data%
272 (f2cl-lib:array-slice iwm-%data%
277 (f2cl-lib:array-slice wm-%data%
283 (declare (ignore var-0 var-2 var-3 var-4 var-5 var-12 var-13 var-15
284 var-16 var-17 var-18 var-20 var-21 var-22
))
304 (setf iflag var-23
)))
305 (setf nni
(f2cl-lib:int-add nni
1))
306 (setf nli
(f2cl-lib:int-add nli lpcg
))
307 (setf nps
(f2cl-lib:int-add nps npsl
))
308 (if (/= iflag
0) (setf ncfl
(f2cl-lib:int-add ncfl
1)))
309 (if (>= iflag
2) (setf iersl
1))
310 (if (< iflag
0) (setf iersl -
1))
314 (setf lp
(f2cl-lib:int-add lr n
))
315 (setf lw
(f2cl-lib:int-add lp n
))
316 (setf lz
(f2cl-lib:int-add lw n
))
317 (setf lwk
(f2cl-lib:int-add lz n
))
319 (f2cl-lib:array-slice wm-%data%
326 (var-0 var-1 var-2 var-3 var-4 var-5 var-6 var-7 var-8 var-9
327 var-10 var-11 var-12 var-13 var-14 var-15 var-16 var-17 var-18
328 var-19 var-20 var-21 var-22 var-23
)
330 (f2cl-lib:array-slice wm-%data%
335 ewt n maxl delta hl0 jpre mnewt f psol npsl x
336 (f2cl-lib:array-slice wm-%data%
341 (f2cl-lib:array-slice wm-%data%
346 (f2cl-lib:array-slice wm-%data%
352 (f2cl-lib:array-slice wm-%data%
357 (f2cl-lib:array-slice iwm-%data%
362 (f2cl-lib:array-slice wm-%data%
368 (declare (ignore var-0 var-2 var-3 var-4 var-5 var-12 var-13 var-15
369 var-16 var-17 var-18 var-20 var-21 var-22
))
389 (setf iflag var-23
)))
390 (setf nni
(f2cl-lib:int-add nni
1))
391 (setf nli
(f2cl-lib:int-add nli lpcg
))
392 (setf nps
(f2cl-lib:int-add nps npsl
))
393 (if (/= iflag
0) (setf ncfl
(f2cl-lib:int-add ncfl
1)))
394 (if (>= iflag
2) (setf iersl
1))
395 (if (< iflag
0) (setf iersl -
1))
399 (setf lwk
(f2cl-lib:int-add lb n
))
401 (f2cl-lib:array-slice wm-%data%
408 (var-0 var-1 var-2 var-3 var-4 var-5 var-6 var-7 var-8 var-9
409 var-10 var-11 var-12 var-13 var-14 var-15 var-16
)
411 (f2cl-lib:array-slice wm-%data%
416 ewt n delta hl0 mnewt psol npsl x
417 (f2cl-lib:array-slice wm-%data%
422 (f2cl-lib:array-slice iwm-%data%
427 (f2cl-lib:array-slice wm-%data%
433 (declare (ignore var-0 var-2 var-3 var-4 var-5 var-6 var-7 var-9
434 var-10 var-12 var-13 var-14 var-15
))
439 (setf nni
(f2cl-lib:int-add nni
1))
440 (setf nps
(f2cl-lib:int-add nps npsl
))
441 (if (/= iflag
0) (setf ncfl
(f2cl-lib:int-add ncfl
1)))
442 (if (= iflag
3) (setf iersl
1))
443 (if (< iflag
0) (setf iersl -
1))
446 (return (values nil nil nil nil nil nil nil nil nil
)))))))
448 (in-package #:cl-user
)
449 #+#.
(cl:if
(cl:find-package
'#:f2cl
) '(and) '(or))
450 (eval-when (:load-toplevel
:compile-toplevel
:execute
)
451 (setf (gethash 'fortran-to-lisp
::dsolpk
452 fortran-to-lisp
::*f2cl-function-info
*)
453 (fortran-to-lisp::make-f2cl-finfo
454 :arg-types
'((array fortran-to-lisp
::integer4
(*))
455 (array double-float
(*)) (array double-float
(*))
456 (array double-float
(*)) (array double-float
(*))
457 (array double-float
(*))
458 (array fortran-to-lisp
::integer4
(*)) t t
)
459 :return-values
'(nil nil nil nil nil nil nil nil nil
)
460 :calls
'(fortran-to-lisp::dusol fortran-to-lisp
::dspigmr
461 fortran-to-lisp
::dspiom fortran-to-lisp
::dscal
462 fortran-to-lisp
::dcopy
))))