# # # # ******************************************************* # * * # * THIS SOFTWARE WAS DEVELOPED WITH SUPPORT * # * FROM THE NATIONAL INSTITUTES OF HEALTH: * # * NIH CA06927 * # * NIH CA22780 * # * * # * DIRECT INQUIRIES TO: * # * COMPUTER CENTER * # * THE INSTITUTE FOR CANCER RESEARCH * # * 7701 BURHOLME AVENUE * # * PHILADELPHIA, PENNSYLVANIA 19111 * # * * # * NO WARRANTY OR REPRESENTATION, EXPRESS OR * # * IMPLIED, IS MADE WITH RESPECT TO THE * # * CORRECTNESS, COMPLETENESS, OR USEFULNESS * # * OF THIS SOFTWARE, NOR THAT USE OF THIS * # * SOFTWARE MIGHT NOT INFRINGE PRIVATELY * # * OWNED RIGHTS. * # * * # * NO LIABILITY IS ASSUMED WITH RESPECT TO * # * THE USE OF, OR FOR DAMAGES RESULTING FROM * # * THE USE OF THIS SOFTWARE * # * * # ******************************************************* # * * # * THIS SOFTWARE WAS DESIGNED FOR USE ON A * # * PDP-11/70 OPERATING UNDER IAS V3.0 USING * # * THE FORTRAN-IV PLUS COMPILER. * # * * # ******************************************************* # # # define(EFN,1) # runsys - run a task for IAS multi-user systems subroutine runsys(task, tlen, ier) byte task(1), cmd(80), cmdnam(3) integer tlen, ier, i, dsw, icmd, tsknam(2), dottsk, doltsk, iop(4), tsk(16) common /rnsys/ runflg,iesb(8) logical runflg equivalence (cmd, icmd) data iop /0, 0, 0, 0/ data runflg /.false./ data dottsk /3r.../, doltsk /3r$$$/ runflg = .false. ier = -1 if (tlen <= 0 | tlen > 79) return do i = 1,tlen cmd(i) = task(i) do i = 1,3 cmdnam(i) = ' ' for (i = 1; cmd(i) != ' ' & i <= 3; i = i+1) { cmdnam(i) = cmd(i) if (cmdnam(i) >= 'a' & cmdnam(i) <= 'z') cmdnam(i) = cmdnam(i) - 'a' + 'A' } call irad50(3, cmdnam, tsknam(2)) tsknam(1) = dottsk call gettsk(tsk) iop(4) = tsk(16) call spawn(tsknam,iop,EFN,iesb,cmd,tlen,,dsw) if (dsw < 0) { tsknam(1) = doltsk call spawn(tsknam,,EFN,iesb,cmd,tlen,,dsw) # for IAS } if (dsw >= 0) { runflg = .true. ier = 0 } return end # waitsy - wait for task completion - return exit status integer function waitsy common /rnsys/ runflg,iesb(8) logical runflg if (runflg) { call stopfr(EFN) return(iesb(1)) } else return(-1) end