anchor.diff:                  ~4TConcentration = 1 : -1e-6 : 1E20~%~
                   END~%"))
   
  -(defun split-rate-string-equally (str &optional (max-char-size *numerica-rate-string-max-length*))
  +(defun split-rate-string-equally (str max-str-len)
     (let ((term-breaks (sort (nconc (positions #\+ str)
                                     (positions #\- str))
                              #'<)))
  
positive.code:                        (subseq rate-str
                                 1 (1- (length rate-str)))
                       rate-str))))
               (write-functions (i rate)
                 (let ((rate-strs (split-rate-string-equally (rate-str-without-outer-parens rate))))                  
                   (princ #\.)
                   (loop for rate-str in rate-strs
                         for p = (incf npart)
                         collect p into parts
                         do (format file "~%~4Tpart(~S) = ~A;" p rate-str)
                         finally (format file "~%~4T$c(~A) = ~:[0~;~{part(~A)~^+~}~];" (1+ i) parts parts))))
               (scribble (obj pos)
                 (let ((end (file-position file)))
                   (file-position file pos)
  
negative.code:          (klen-pos  nil) ; file position of length of k array
           (part-pos  nil) ; file position of length of part array 
           (npart     0))
  
      (labels ((rate-str-without-outer-parens (rate)
                 (let ((rate-str (format nil "~S" rate)))
                   (with-dimensionless-math (numerica-model-base-units nm)
  