docs: def info(self, graintype=True, group=True, reference=False,
               phase=True):
          '''
          This routine gives you informations what kind of grains are
          currently available in your filtered version.  It gives you
          the type of grains available.  More to be implemented upon need.
  
          Parameters
          ----------
          graintype, group, references, phase : boolean
              What do you wanna print for information.  There can be a
              lot of references, hence references default is False.
  
          '''
  
          # create a list with all graintypes
          gtype_info = []
          group_info = []
          ref_info = []
          phase_info = []
  
          # how many grains in database
          print('There are ' + str(len(self.data)) + ' grains in your database.\n')
  
          # graintypes
          if graintype:
              for i in range(len(self.desc)):
                  gtype_tmp = self.desc[i][self.descdict['Type']]
                  wrtchk = True
                  for j in range(len(gtype_info)):
                      if gtype_info[j] == gtype_tmp:
                          wrtchk = False
                          break
                  if wrtchk:
                      gtype_info.append(gtype_tmp)
              print('Available graintypes are:')
              print('-------------------------')
              print(gtype_info)
  
          # groups
          if group:
              for i in range(len(self.desc)):
                  group_tmp = self.desc[i][self.descdict['Group']]
                  wrtchk = True
                  for j in range(len(group_info)):
                      if group_info[j] == group_tmp:
                          wrtchk = False
                          break
                  if wrtchk:
                      group_info.append(group_tmp)
              print('\nAvailable groups of grains (for silicates and oxides) are:')
              print('----------------------------------------------------------')
              print(group_info)
  
          # Phases
          if phase:
              for i in range(len(self.desc)):
                  phase_tmp = self.desc[i][self.descdict['Phase']]
                  wrtchk = True
                  for j in range(len(phase_info)):
                      if phase_info[j] == phase_tmp:
                          wrtchk = False
                          break
                  if wrtchk:
                      phase_info.append(phase_tmp)
              print('\nAvailable Phases of grains are:')
              print('----------------------------------------------------------')
              print(phase_info)
  
  
          # references
          if reference:
              for i in range(len(self.desc)):
                  ref_tmp = self.desc[i][self.descdict['Reference']]
                  wrtchk = True
                  for j in range(len(ref_info)):
                      if ref_info[j] == ref_tmp:
                          wrtchk = False
                          break
                  if wrtchk:
                      ref_info.append(ref_tmp)
              print('\nReferences for grains:')
              print('----------------------')
              print(ref_info)