Indicates the end of a block-if control structure.
No options or parameters
Description
A block-if structure consists of one or more alternative sets of statements. The first of these is introduced by an IF
statement. There may then be further sets introduced by ELSIF
statements. Then you can have a final set introduced by an ELSE
statement, and the whole structure is terminated by an ENDIF
statement. Full details are given in the description of the IF
directive.
Options: none.
Parameters: none.
See also
Directives: IF
, ELSIF
, ELSE
, EXIT
.
Commands for: Program control.
Example
" Example PROC-1: Defining a procedure" PROCEDURE 'SQUARERT' " Define the options & parameters of the procedure " OPTION NAME='PRINT','TRACE'; MODE=t; DEFAULT='no' PARAMETER NAME='X','ROOTX'; MODE=p " Check that the option settings are valid and set scalars Sprint and Strace to indicate whether they are set to yes " SCALAR Sprint,Strace FOR Setting=PRINT,TRACE; Sset=Sprint,Strace IF Setting .EQS. 'yes' CALCULATE Sset = 1 ELSIF Setting .EQS. 'no' CALCULATE Sset = 0 ELSE EXIT [CONTROLSTRUCTURE=procedure] ENDIF ENDFOR " Check for invalid setting of parameter X ( i.e. < 0 ) " IF X < 0 PRINT 'X < 0 : square root cannot be calculated' ELSE " Calculate convergence limit & initialize " CALCULATE Clim = X/10000 & ROOTX = X " Loop until convergence " FOR [NTIMES=20] CALCULATE Previous = ROOTX & ROOTX = (X/Previous + Previous)/2 IF Strace PRINT [IPRINT=*] ROOTX ENDIF EXIT ABS(Previous-ROOTX) < Clim ENDFOR IF Sprint PRINT [IPRINT=*] 'square root of ',X,' is ',ROOTX;\ JUSTIFICATION=left ENDIF ENDIF ENDPROCEDURE " Use the procedure" SCALAR Rx SQUARERT X=48; ROOTX=Rx PRINT Rx " Use it and set the option" SQUARERT [PRINT=yes] X=48; ROOTX=Rx SQUARERT [PRINT=yes; TRACE=yes] 81; ROOTX=Rx