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:          (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)
  
negative.code:           for last-term-pos = 0 then term-pos
            for term-pos in term-breaks
            for expr-len = (- term-pos cur-start-pos)
            when (> expr-len max-str-len)
            collect (subseq str cur-start-pos last-term-pos) into parts
            and do (setf cur-start-pos last-term-pos)
            finally 
  