code: def _setup_task(self, geo_subkeys):
          
          self.geo = AdfKey("Geometry", subkeys=geo_subkeys)
          if self.operation.lower() == "energy":
              self.geo.add_option("SinglePoint")
              if self.geo.has_subkey("Frequencies"):
                  self.geo.remove_subkey("Frequencies")
          elif self.operation.lower() == "optimize":
              self.geo.add_option("GeometryOptimization")
              if self.geo.has_subkey("Frequencies"):
                  self.geo.remove_subkey("Frequencies")
          elif self.operation.lower() == "numerical_frequencies":
              self.geo.add_subkey(AdfKey("Frequencies"))
          else:
              self.other_directives.append(AdfKey("AnalyticalFreq"))
              if self.geo.has_subkey("Frequencies"):
                  self.geo.remove_subkey("Frequencies")
docs: Setup the block 'Geometry' given subkeys and the task.
  
          Parameters
          ----------
          geo_subkeys : Sized
              User-defined subkeys for the block 'Geometry'.
  
          Notes
          -----
          Most of the run types of ADF are specified in the Geometry block except
          the 'AnalyticFreq'.