*IF
*IF, VAL1
, Oper1
, VAL2
, Base1
, VAL3
, Oper2
, VAL4
, Base2
Conditionally causes commands to be read.
Argument Descriptions
-
VAL1
First numerical value (or parameter which evaluates to a numerical value) in the conditional comparison operation.
VAL1
,VAL2
,VAL3
, andVAL4
can also be character strings (enclosed in quotes) or parameters forOper
= EQ and NE only.-
Oper1
Operation label. A tolerance of 1.0E-10 is used for comparisons between real numbers:
- EQ --
Equal (for
VAL1
=VAL2
).- NE --
Not equal (for
VAL1
≠VAL2
).- LT --
Less than (for
VAL1
<VAL2
).- GT --
Greater than (for
VAL1
>VAL2
).- LE --
Less than or equal (for
VAL1
VAL2
).- GE --
Greater than or equal (for
VAL1
VAL2
).- ABLT --
Absolute values of
VAL1
andVAL2
before < operation.- ABGT --
Absolute values of
VAL1
andVAL2
before > operation.
-
VAL2
Second numerical value (or parameter which evaluates to a numerical value) in the conditional comparison operation.
-
Base1
Action based on the logical expression (
Oper1
) being true. If false, continue reading at the next line. This is conditional, except for the IF-THEN-ELSE constructs described below; any of the following constructs (throughBase1
= THEN) cause all subsequent fields to be ignored:- :
label --
A user-defined label (beginning with a colon (:), 8 characters maximum). The command reader will skip (and wrap to the beginning of the file, if necessary) to the first line that begins with the matching :
label
.Caution: This label option may not be mixed with do-loop or if-then-else constructs.
- STOP --
This action will cause an exit from the Mechanical APDL program at this line, unless running in interactive mode. In interactive mode, the program will not stop.
- EXIT --
Exit the current do-loop (*EXIT).
- CYCLE --
Skip to the end of the current do-loop (*CYCLE).
- THEN --
Make this *IF an if-then-else construct (see below).
The following optional values determine the connection between the two logical clauses
Oper1
andOper2
- AND --
True if both clauses (
Oper1
andOper2
) are true.- OR --
True if either clause is true.
- XOR --
True if either (but not both) clause is true.
- :
-
VAL3
Third numerical value (or parameter which evaluates to a numerical value).
-
Oper2
Operation label. This will have the same labels as
Oper1
, except it usesVal3
andVal4
. A tolerance of 1.0E-10 is used for comparisons between real numbers.-
VAL4
Fourth numerical value (or parameter value which evaluates to a numerical value).
-
Base2
Action based on the logical expression (
Oper1
andOper2
) being true. They will be the same values asBase1
, except as noted.
Notes
Conditionally causes commands to be read from a specific block
or at a specific location. Twenty levels of nested *IF blocks are allowed. Jumping to a :label
line is not allowed with keyboard entry. Jumping into, out of,
or within a do-loop or an if-then-else construct to a :label
line is not allowed. Using *IF interactively or from the command line prevents rereading the file
to find a label
. To do so, use batch mode
or /INPUT.
Any number of *ELSEIF clauses (or none) may be included (in the location shown). One *ELSE clause (at most) may be included (in the location shown).
The *IF command is executed by evaluating its logical expression. If it is true, the block of commands following it is executed. The construct is considered to be complete and the command following the *ENDIF is executed next.
If the logical expression is false, the next *ELSEIF command (if any) following the block is executed. The execution logic is the same as for *IF. The effect is that the logical expressions in the *IF and the *ELSEIF commands are sequentially tested until one is found to be true. Then the block of commands immediately following the expression is executed, which completes the execution of the if-then-else construct.
If all *IF and *ELSEIF expressions are false, the block following the *ELSE command is executed, if there is one. Only one block of commands (at most) is executed within the if-then-else construct.
If a batch input stream encounters an end-of-file during a false *IF condition, the Mechanical APDL run ends abnormally. You will need to terminate it externally (via the Linux "kill" function or the Windows task manager).
The *IF, *ELSEIF, *ELSE, and *ENDIF commands for each if-then-else construct must all be read from the same file (or keyboard).
This command is valid in any processor.