def runfortran(): q = Queue() t = FortranProcess('hello_world', '/Users/Ross/Desktop', q) t.start() while t.isAlive() or not q.empty(): l = q.get().rstrip() print l print t.get_remaining_stdout()
def _execute_fortran(self, name, block=False): if sys.platform != 'darwin': name += '.exe' self.info('excecute fortran program {}'.format(name)) q = Queue() croot = self.clovera_directory if not croot: croot = paths.clovera_root rid = os.path.basename(os.getcwd()) p = FortranProcess(name, croot, rid, q) self.fortran_processes.append(p) if len(self.fortran_processes) > 50: self.fortran_processes.pop(0) p.start() t = Thread(target=self._handle_stdout, args=(name, p, q)) t.start() if block: t.join()