d$!{DO} CYCLE {prog {,cmd_file}} $! Loops EDIT, FOR, LINK, RUN for quick debugging. ,$! $! ..note.. To exit, enter YES of ^C in response to _FINI: prompt $! ..note.. If cmd_file given, then will use it instead of LINK and RUN X$! ..note.. The fortran phase includes the debug lines, $! see HELP FORT/D_ $! ..note.. The link phase uses the DO LINK set of library subroutines. $! ..note.. will not accept 1 character program names. $! L$!-end.of.info- $ $ x$ques: $ on control then exit @$ if( p1.eqs."" ) then inquire p1 "_FINI {Yes,Run,$,PRGM}" $ on control then goto ques $ on error then goto ques l$ if( p1.eqs."Y" .or. p1.eqs."YES" ) then exit $ if( p1.eqs."R" .or. p1.eqs."RUN" ) then goto runit 4$ if( 'f$length(p1) .ne. 1 ) then goto gtone $ p1 := "" $ goto ques ` $ $gtone: ( $ if( "''f$extract(0,1,p1)'".eqs."$" ) then goto dclit $ if( p1.nes."" ) then prog := 'p1 $ p1 := "" T $ inx = 'f$locate(".",prog) $ stem := 'f$extract(0,inx,prog)  $ if( inx.eq.'f$length(prog) ) then prog := 'prog'.for $ $ purge 'stem.* H $ $ assign/user tt: sys$input $ edit 'prog t$ $forit: <$ write sys$output "_Fort" $ fort/d_lines 'prog $ h$ if( p2.eqs."" ) then goto linkit $ $linkit: 0$ write sys$output "_Link" $ do link 'stem $ \$runit: $ p1 := "" $$ runname := 'stem $ if( p2.nes."" ) then runname := 'p2 $ write sys$output "_Run." P$ assign/user tt: sys$input $ run 'runname $ goto ques |$ $dclit: D$ dcl := 'p1 $ p1 := "" $ assign/user tt: sys$input p 'dcl' $ goto ques 8$ $libdef: $ p1 := "" d$ write sys$output "@",p2," ",stem $ @'p2 'stem ,$ goto ques