docs: def update_simulation_runtime(self):
          """
          Updates the total simulation duration from
          the m3 file (Vlat_file) and the time step (ZS_TauR).
  
          .. warning:: You need to set the m3 file (Vlat_file) and the
                       time step (ZS_TauR) before runnning this function.
  
  
          Example:
  
          .. code:: python
  
              from RAPIDpy import RAPID
  
              rapid_manager = RAPID(
                  Vlat_file='../rapid-io/input/m3_riv.csv',
                  ZS_TauR=3*3600,
              )
  
              rapid_manager.update_simulation_runtime()
          """
          if not self.Vlat_file or not os.path.exists(self.Vlat_file):
              log("Need Vlat_file to proceed ...",
                  "ERROR")
  
          if self.ZS_TauR <= 0:
              log("Missing routing time step ...",
                  "ERROR")
  
          try:
              self.ZS_TauR = int(self.ZS_TauR)
          except ValueError:
              log("Invalid routing time step: {0} ...".format(self.ZS_TauR),
                  "ERROR")
  
          with RAPIDDataset(self.Vlat_file) as m3_nc:
              self.ZS_TauM = m3_nc.size_time*self.ZS_TauR
              self.ZS_TauO = m3_nc.size_time*self.ZS_TauR