anchor.diff:                  ;; write comment
                   (if (numerica-model-ode-comments-p nm)
                       (b-format file "~%~4T# ~A = ~A " v rate)))
  -          collect
  -                ;; write parts
  -                (compute-and-write-parts rate) into eqns
  -          finally 
  -          (format file "~%~2TEQUATION~%")
  -          (loop for eqn in eqns
  -                for e = 1 then (1+ e)
  -                do (format file "~%~4T$c(~A) = ~:[0~;~{part~A~^+~}~];"
  -                           e eqn eqn)))
  +          do
  +                ;; write functions
  +                (write-functions i rate))
   
       ;; now, we've determine the actual # kvars ...
       ;; go back and scribble at klen-pos
  -    (let ((end (file-position file)))
  -      (file-position file klen-pos)
  -      (princ (numerica-model-kvar-count nm) file)
  -      (file-position file end))
  +    (scribble (numerica-model-kvar-count nm) klen-pos)
  +    (scribble npart part-pos)
       (format file "~%END~%~%"))))
   
   
  
positive.code:     (format file "~A) OF REAL~%~
                    ~2TVARIABLE~%~
                      ~4Tc as ARRAY(~S) of Concentration~%~
                    ~2TINTERMEDIATE~%"
              (map 'string (constantly #\space) (format nil "~A" (length allvars)))
              (length ode-vars))
  
      ;; write the rate fns:
      (loop for v in ode-vars
            for i =  0 then (1+ i)
  
negative.code:              (pathname                (numerica-file-path (numerica-model-name nm) path)))
          (unless vars
            (warn "*** No ode vars selected ***~%"))
          (with-open-file (stream pathname :direction :output :if-does-not-exist :create :if-exists :supersede)
            (let ((*math-print-function*   (compute-numerica-math-print-function nm)))
              (write-numerica-code nm stream)))
  