<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <!--Converted with LaTeX2HTML 98.1p1 release (March 2nd, 1998) originally by Nikos Drakos (nikos@cbl.leeds.ac.uk), CBLU, University of Leeds * revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan * with significant contributions from: Jens Lippmann, Marek Rouchal, Martin Wilck and others --> <HTML> <HEAD> <TITLE>DO Loops</TITLE> <META NAME="description" CONTENT="DO Loops"> <META NAME="keywords" CONTENT="vol1"> <META NAME="resource-type" CONTENT="document"> <META NAME="distribution" CONTENT="global"> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <LINK REL="STYLESHEET" HREF="vol1.css"> <LINK REL="next" HREF="node42.html"> <LINK REL="previous" HREF="node40.html"> <LINK REL="up" HREF="node38.html"> <LINK REL="next" HREF="node42.html"> </HEAD> <BODY > <!--Navigation Panel--> <A NAME="tex2html1001" HREF="node42.html"> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="icons.gif/next_motif.gif"></A> <A NAME="tex2html997" HREF="node38.html"> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="icons.gif/up_motif.gif"></A> <A NAME="tex2html991" HREF="node40.html"> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="icons.gif/previous_motif.gif"></A> <A NAME="tex2html999" HREF="node1.html"> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="icons.gif/contents_motif.gif"></A> <A NAME="tex2html1000" HREF="node216.html"> <IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="icons.gif/index_motif.gif"></A> <BR> <B> Next:</B> <A NAME="tex2html1002" HREF="node42.html">Local Keywords</A> <B> Up:</B> <A NAME="tex2html998" HREF="node38.html">MIDAS Command Language</A> <B> Previous:</B> <A NAME="tex2html992" HREF="node40.html">Symbol Substitution in Command</A> <BR> <BR> <!--End of Navigation Panel--> <H2><A NAME="SECTION00663000000000000000"> </A> <A NAME="2132"> </A> <BR> DO Loops </H2> <P> Loops<A NAME="2133"> </A> are supported in MIDAS procedures like the <TT>DO</TT> loops in FORTRAN (but note that loops are always executed at least once):<BLOCKQUOTE> <TT>!+ <BR> ! Example 9, MIDAS procedure exa9.prg <BR> !+ <BR> WRITE/KEYWORD N/I/1/1 0 </TT>! keywords serve as loop variables<TT> <BR> DO N = 1 6 2 </TT>! loop from N=1 until N<IMG WIDTH="22" HEIGHT="39" ALIGN="MIDDLE" BORDER="0" SRC="img131.gif" ALT="$\leq$">6 in steps of 2<TT> <BR> WRITE/OUT N = </TT><IMG WIDTH="17" HEIGHT="44" ALIGN="MIDDLE" BORDER="0" SRC="img132.gif" ALT="$\{$"><TT>N</TT><IMG WIDTH="16" HEIGHT="44" ALIGN="MIDDLE" BORDER="0" SRC="img133.gif" ALT="$\}$"><TT> <BR> ENDDO</TT></BLOCKQUOTE>A keyword of integer type (called N in our example) must be used to store the loop variable. The parameters follow the standard FORTRAN conventions with start (=1 in <TT>exa9.prg</TT>), end (=6) and in/decrement (=2) values given as shown above. DO loops may be nested up to 8 levels deep in a procedure. <BR> <BR> The command <TT>@@ exa9</TT> will yield<BLOCKQUOTE> <TT>N = 0001 <BR> N = 0003 <BR> N = 0005 </TT></BLOCKQUOTE>Assume we have images <TT>imag0001.bdf</TT> to <TT>imag0100.bdf</TT> and want to add successive pairs and store the results into images <TT>res0001.bdf</TT> to <TT>res0050.bdf</TT>:<BLOCKQUOTE> <TT>!+ <BR> ! Example 10, MIDAS procedure exa10.prg <BR> !+ <BR> DEFINE/PARAM P1 ? IMA "Enter root_name for input frames: " <BR> DEFINE/PARAM P2 ? IMA "Enter root_name for output frames: " <BR> DEFINE/MAXPAR 2 </TT>! max. 2 parameters expected<TT> <BR> SET/FORMAT I4 </TT>! we need 4 digits<TT> <BR> WRITE/KEYWORD N/I/1/1 0 <BR> WRITE/KEYWORD NN/I/1/2 0,0 <BR> ! <BR> DO N = 1 50 </TT>! default increment is 1 <TT> <BR> NN(1) = 2*N <BR> NN(2) = NN(1)-1 <BR> COMPUTE/IMAGE </TT><IMG WIDTH="17" HEIGHT="44" ALIGN="MIDDLE" BORDER="0" SRC="img134.gif" ALT="$\{$"><TT>P2</TT><IMG WIDTH="16" HEIGHT="44" ALIGN="MIDDLE" BORDER="0" SRC="img135.gif" ALT="$\}$"><IMG WIDTH="17" HEIGHT="44" ALIGN="MIDDLE" BORDER="0" SRC="img136.gif" ALT="$\{$"><TT>N</TT><IMG WIDTH="16" HEIGHT="44" ALIGN="MIDDLE" BORDER="0" SRC="img137.gif" ALT="$\}$"><TT> = </TT><IMG WIDTH="17" HEIGHT="44" ALIGN="MIDDLE" BORDER="0" SRC="img138.gif" ALT="$\{$"><TT>P1</TT><IMG WIDTH="16" HEIGHT="44" ALIGN="MIDDLE" BORDER="0" SRC="img139.gif" ALT="$\}$"><IMG WIDTH="17" HEIGHT="44" ALIGN="MIDDLE" BORDER="0" SRC="img140.gif" ALT="$\{$"><TT>NN(2)</TT><IMG WIDTH="16" HEIGHT="44" ALIGN="MIDDLE" BORDER="0" SRC="img141.gif" ALT="$\}$"><TT>+</TT><IMG WIDTH="17" HEIGHT="44" ALIGN="MIDDLE" BORDER="0" SRC="img142.gif" ALT="$\{$"><TT>P1</TT><IMG WIDTH="16" HEIGHT="44" ALIGN="MIDDLE" BORDER="0" SRC="img143.gif" ALT="$\}$"><IMG WIDTH="17" HEIGHT="44" ALIGN="MIDDLE" BORDER="0" SRC="img144.gif" ALT="$\{$"><TT>NN(1)</TT><IMG WIDTH="16" HEIGHT="44" ALIGN="MIDDLE" BORDER="0" SRC="img145.gif" ALT="$\}$">! sum up<TT> <BR> LOAD/IMAGE </TT><IMG WIDTH="17" HEIGHT="44" ALIGN="MIDDLE" BORDER="0" SRC="img146.gif" ALT="$\{$"><TT>P2</TT><IMG WIDTH="16" HEIGHT="44" ALIGN="MIDDLE" BORDER="0" SRC="img147.gif" ALT="$\}$"><IMG WIDTH="17" HEIGHT="44" ALIGN="MIDDLE" BORDER="0" SRC="img148.gif" ALT="$\{$"><TT>N</TT><IMG WIDTH="16" HEIGHT="44" ALIGN="MIDDLE" BORDER="0" SRC="img149.gif" ALT="$\}$">! display the result frame<TT> <BR> ENDDO</TT></BLOCKQUOTE>Then, the MIDAS command <TT>@@ exa10 imag res</TT> will do the required task. <P> <HR> <!--Navigation Panel--> <A NAME="tex2html1001" HREF="node42.html"> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="icons.gif/next_motif.gif"></A> <A NAME="tex2html997" HREF="node38.html"> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="icons.gif/up_motif.gif"></A> <A NAME="tex2html991" HREF="node40.html"> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="icons.gif/previous_motif.gif"></A> <A NAME="tex2html999" HREF="node1.html"> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="icons.gif/contents_motif.gif"></A> <A NAME="tex2html1000" HREF="node216.html"> <IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="icons.gif/index_motif.gif"></A> <BR> <B> Next:</B> <A NAME="tex2html1002" HREF="node42.html">Local Keywords</A> <B> Up:</B> <A NAME="tex2html998" HREF="node38.html">MIDAS Command Language</A> <B> Previous:</B> <A NAME="tex2html992" HREF="node40.html">Symbol Substitution in Command</A> <!--End of Navigation Panel--> <ADDRESS> <I>Petra Nass</I> <BR><I>1999-06-09</I> </ADDRESS> </BODY> </HTML>