The following is a description of the process flow for bmst.f, and any codes based on this master.
man chktrc
for more on this subroutine.
{vlist19} c...data loop=======================================.... do 100 jrec=1,ntrace c c...input a trace call BSEGIN(iunit1,ndim, +icall1,npts,s1,fsamin,infil,jrec,iexit) c ntr = ntr + 1 . . . . [ DO SOME COMPUTATIONS ON THE SIGNAL S1 ] c...output trace iunit2=2 call BSEGOUT(iunit2, +icall2,npts,s2,fsamin,outfil,jrec) c...display progress.... call pltbar(bar,invbar,ibar,jrec,ntrace) c...END LOOP========================================.... 100 continuevlist19
where BSEGIN reads a trace, BSEGOUT writes a trace, and PLTBAR writes a progress bar to the screen in real time. You would insert your own code at the “do some computations” location in the trace loop. The secret to supressing a carriage return and line feed for the progress bar is the non standard “$” format for Linux. In other operating systems, it may be different, try “\” if you plan on porting these codes to another OS and “$” doesn't work. This is a simple example, and more complicated flows with multiple loops are possible. The other programs in the BSU package provide examples.