code: def _get_script_nflows(self):
          
          flows_torun = [f for f in self.flows if not f.all_ok]
          if not flows_torun:
              return "", 0
  
          executable = [
              'export _LOG=%s' % self.log_file.path,
              'date1=$(date +"%s")',
              'echo Running abirun.py in batch mode > ${_LOG}',
              " ",
          ]
          app = executable.append
  
          # Build list of abirun commands and save the name of the log files.
          self.sched_logs, num_flows = [], len(flows_torun)
          for i, flow in enumerate(flows_torun):
  
              logfile = os.path.join(self.workdir, "log_" + os.path.basename(flow.workdir))
  
              app("echo Starting flow %d/%d on: `date` >> ${LOG}" % (i+1, num_flows))
              app("\nabirun.py %s scheduler > %s" % (flow.workdir, logfile))
              app("echo Returning from abirun on `date` with retcode $? >> ${_LOG}")
  
              assert logfile not in self.sched_logs
              self.sched_logs.append(logfile)
  
          # Remove the batch pid_file and compute elapsed time.
          executable.extend([
              " ",
              "# Remove batch pid file",
              'rm %s' % self.batch_pidfile.path,
              " ",
              "# Compute elapsed time",
              'date2=$(date +"%s")',
              'diff=$(($date2-$date1))',
              'echo $(($diff / 60)) minutes and $(($diff % 60)) seconds elapsed. >> ${_LOG}'
          ])
  
          return self.qadapter.get_script_str(
              job_name=self.name,
              launch_dir=self.workdir,
              executable=executable,
              qout_path=self.qout_file.path,
              qerr_path=self.qerr_file.path,
          ), num_flows
docs: Write the submission script. Return (script, num_flows_in_batch)