code: def _varname(self):
          
          if not self._flags['address']:
              self.log('Unable to assign Varname before allocating address',
                       ERROR)
              return
  
          varname = self.system.varname
          for i in range(self.n):
              iname = str(self.name[i])
  
              for e, var in enumerate(self._states):
                  unamex = self._unamex[e]
                  fnamex = self._fnamex[e]
                  idx = self.__dict__[var][i]
  
                  varname.unamex[idx] = '{} {}'.format(unamex, iname)[:33]
                  varname.fnamex[idx] = '$' + '{}\\ {}'.format(
                      fnamex, iname.replace(' ', '\\ '))[:33] + '$'
  
              for e, var in enumerate(self._algebs):
                  unamey = self._unamey[e]
                  fnamey = self._fnamey[e]
                  idx = self.__dict__[var][i]
  
                  varname.unamey[idx] = '{} {}'.format(unamey, iname)[:33]
                  varname.fnamey[idx] = '$' + '{}\\ {}'.format(
                      fnamey, iname.replace(' ', '\\ '))[:33] + '$'
docs: Set up variable names in ``self.system.varname``.
  
          Variable names follows the convention ``VariableName,Model Name``.
          A maximum of 24 characters are allowed for each variable.
  
          :return: None