(defun hc (ind m n pr ar nb s iwk num) (declare (type fixnum ind)) (declare (type fixnum m)) (declare (type fixnum n)) (declare (type (simple-array fixnum (*)) pr)) (declare (type (simple-array fixnum (*)) ar)) (declare (type fixnum nb)) (declare (type (simple-array fixnum (*)) s)) (declare (type (simple-array fixnum (*)) iwk)) (declare (type fixnum num)) (prog ((s0 0) (pc 0) (ac 0) (vr 0) (vc 0) (p 0) (subr 0) (rbus 0) (tor 0) (i 0) (ii 0) (np1 0) ) (declare (type fixnum s0)) (declare (type fixnum pc)) (declare (type fixnum ac)) (declare (type fixnum vr)) (declare (type fixnum vc)) (declare (type fixnum p)) (declare (type fixnum subr)) (declare (type fixnum rbus)) (declare (type fixnum tor)) (declare (type fixnum i)) (declare (type fixnum ii)) (declare (type fixnum np1)) (setf np1 (+ n 1)) (if (or (< ind 0) (> ind 3)) (go label20)) (if (< num (+ (+ m (* 8 n)) 20)) (go label30)) (if (or (/= (fref pr 1) 0) (/= (fref pr np1) m)) (go label40)) (setf s0 20) (setf pc (+ s0 n)) (setf ac (+ pc np1)) (setf vr (+ ac m)) (setf vc (+ vr n)) (setf p (+ vc n)) (setf subr (+ p n)) (setf rbus (+ subr n)) (setf tor (+ rbus n)) (multiple-value-setq (ind m n pr ar nb dummy_var np1 dummy_var dummy_var dummy_var dummy_var dummy_var dummy_var dummy_var dummy_var dummy_var ) (hc1 ind m n pr ar nb (fref iwk s0) np1 (fref iwk pc) (fref iwk ac) (fref iwk vr) (fref iwk vc) (fref iwk p) (fref iwk subr) (fref iwk rbus) (fref iwk tor) (fref iwk 1) )) (if (/= ind 1) (go end_label)) (setf ii s0) (fdo ((i 1 (+ i 1))) ((> i n) nil) (tagbody (fset (fref s i) (fref iwk ii)) (setf ii (+ ii 1))) ) (go end_label) label20 (setf ind (- 1)) (go end_label) label30 (setf ind (- 4)) (go end_label) label40 (setf ind (- 5)) (go end_label) end_label (return (values ind m n pr ar nb s iwk num)) ))