1 ;;; Compiled by f2cl version:
2 ;;; ("f2cl1.l,v 1.221 2010/05/26 19:25:52 rtoy Exp $"
3 ;;; "f2cl2.l,v 1.37 2008/02/22 22:19:33 rtoy Exp $"
4 ;;; "f2cl3.l,v 1.6 2008/02/22 22:19:33 rtoy Exp $"
5 ;;; "f2cl4.l,v 1.7 2008/02/22 22:19:34 rtoy Exp $"
6 ;;; "f2cl5.l,v 1.204 2010/02/23 05:21:30 rtoy Exp $"
7 ;;; "f2cl6.l,v 1.48 2008/08/24 00:56:27 rtoy Exp $"
8 ;;; "macros.l,v 1.114 2010/05/17 01:42:14 rtoy Exp $")
10 ;;; Using Lisp CMU Common Lisp CVS Head 2010-05-25 18:21:07 (20A 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 double-float))
20 (defun gblock (h gi nrow irow wi vi kd rhsz rhsdmz ipvtw mode
)
21 (declare (type (array f2cl-lib
:integer4
(*)) ipvtw
)
22 (type (array double-float
(*)) rhsdmz rhsz wi
)
23 (type (f2cl-lib:integer4
) mode kd irow nrow
)
24 (type (array double-float
(*)) vi gi
)
25 (type double-float h
))
28 :element-type
'f2cl-lib
:integer4
29 :displaced-to
(colord-part-0 *colord-common-block
*)
30 :displaced-index-offset
5))
33 :element-type
'double-float
34 :displaced-to
(colbas-part-0 *colbas-common-block
*)
35 :displaced-index-offset
0)))
36 (symbol-macrolet ((k (aref (colord-part-0 *colord-common-block
*) 0))
37 (ncomp (aref (colord-part-0 *colord-common-block
*) 1))
38 (mstar (aref (colord-part-0 *colord-common-block
*) 2))
39 (mmax (aref (colord-part-0 *colord-common-block
*) 4))
42 (f2cl-lib:with-multi-array-data
43 ((gi double-float gi-%data% gi-%offset%
)
44 (vi double-float vi-%data% vi-%offset%
)
45 (wi double-float wi-%data% wi-%offset%
)
46 (rhsz double-float rhsz-%data% rhsz-%offset%
)
47 (rhsdmz double-float rhsdmz-%data% rhsdmz-%offset%
)
48 (ipvtw f2cl-lib
:integer4 ipvtw-%data% ipvtw-%offset%
))
49 (prog ((jcomp 0) (ll 0) (jd 0) (rsum 0.0) (ind 0) (jcol 0) (id 0)
50 (mj 0) (icomp 0) (ir 0) (j 0) (l 0) (fact 0.0)
51 (basm (make-array 5 :element-type
'double-float
))
52 (hb (make-array 28 :element-type
'double-float
)))
53 (declare (type (array double-float
(28)) hb
)
54 (type (array double-float
(5)) basm
)
55 (type double-float fact rsum
)
56 (type (f2cl-lib:integer4
) l j ir icomp mj id jcol ind jd ll
59 (setf (f2cl-lib:fref basm
(1) ((1 5))) 1.0)
60 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
63 (setf fact
(/ (* fact h
) (f2cl-lib:dfloat l
)))
64 (setf (f2cl-lib:fref basm
((f2cl-lib:int-add l
1)) ((1 5))) fact
)
65 (f2cl-lib:fdo
(j 1 (f2cl-lib:int-add j
1))
69 (setf (f2cl-lib:fref hb
(j l
) ((1 7) (1 4)))
70 (* fact
(f2cl-lib:fref b
(j l
) ((1 7) (1 4)))))))
72 (f2cl-lib:computed-goto
(label40 label110
) mode
)
74 (f2cl-lib:fdo
(j 1 (f2cl-lib:int-add j
1))
77 (f2cl-lib:fdo
(ir 1 (f2cl-lib:int-add ir
1))
80 (setf (f2cl-lib:fref gi-%data%
82 (f2cl-lib:int-sub irow
1)
89 (setf (f2cl-lib:fref gi-%data%
91 (f2cl-lib:int-sub irow
1)
93 (f2cl-lib:int-add mstar j
))
98 (setf (f2cl-lib:fref gi-%data%
99 ((f2cl-lib:int-add
(f2cl-lib:int-sub irow
1)
101 (f2cl-lib:int-add mstar j
))
106 (f2cl-lib:fdo
(icomp 1 (f2cl-lib:int-add icomp
1))
107 ((> icomp ncomp
) nil
)
109 (setf mj
(f2cl-lib:fref m
(icomp) ((1 20))))
110 (setf ir
(f2cl-lib:int-add ir mj
))
111 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
114 (setf id
(f2cl-lib:int-sub ir l
))
115 (f2cl-lib:fdo
(jcol 1 (f2cl-lib:int-add jcol
1))
120 (f2cl-lib:fdo
(j 1 (f2cl-lib:int-add j
1))
125 (* (f2cl-lib:fref hb
(j l
) ((1 7) (1 4)))
126 (f2cl-lib:fref vi-%data%
131 (setf ind
(f2cl-lib:int-add ind ncomp
))))
132 (setf (f2cl-lib:fref gi-%data%
138 (setf jd
(f2cl-lib:int-sub id irow
))
139 (f2cl-lib:fdo
(ll 1 (f2cl-lib:int-add ll
1))
142 (setf (f2cl-lib:fref gi-%data%
143 (id (f2cl-lib:int-add jd ll
))
147 (f2cl-lib:fref gi-%data%
148 (id (f2cl-lib:int-add jd ll
))
151 (f2cl-lib:fref basm
(ll) ((1 5)))))
157 (dgesl wi kd kd ipvtw rhsdmz
0)
159 (f2cl-lib:fdo
(jcomp 1 (f2cl-lib:int-add jcomp
1))
160 ((> jcomp ncomp
) nil
)
162 (setf mj
(f2cl-lib:fref m
(jcomp) ((1 20))))
163 (setf ir
(f2cl-lib:int-add ir mj
))
164 (f2cl-lib:fdo
(l 1 (f2cl-lib:int-add l
1))
169 (f2cl-lib:fdo
(j 1 (f2cl-lib:int-add j
1))
174 (* (f2cl-lib:fref hb
(j l
) ((1 7) (1 4)))
175 (f2cl-lib:fref rhsdmz-%data%
180 (setf ind
(f2cl-lib:int-add ind ncomp
))))
181 (setf (f2cl-lib:fref rhsz-%data%
182 ((f2cl-lib:int-sub ir l
))
190 (return (values nil nil nil nil nil nil nil nil nil nil nil
)))))))
192 (in-package #:cl-user
)
193 #+#.
(cl:if
(cl:find-package
'#:f2cl
) '(and) '(or))
194 (eval-when (:load-toplevel
:compile-toplevel
:execute
)
195 (setf (gethash 'fortran-to-lisp
::gblock
196 fortran-to-lisp
::*f2cl-function-info
*)
197 (fortran-to-lisp::make-f2cl-finfo
198 :arg-types
'(double-float (array double-float
(*))
199 (fortran-to-lisp::integer4
) (fortran-to-lisp::integer4
)
200 (array double-float
(1)) (array double-float
(*))
201 (fortran-to-lisp::integer4
) (array double-float
(1))
202 (array double-float
(1))
203 (array fortran-to-lisp
::integer4
(1))
204 (fortran-to-lisp::integer4
))
205 :return-values
'(nil nil nil nil nil nil nil nil nil nil nil
)
206 :calls
'(fortran-to-lisp::dgesl
))))