*compressreal()

Changes how real numbers are written to the output deck.

Syntax

*compressreal (flag)

Type

HyperMesh Template Command

Description

This command changes how real numbers are written to the output deck. The default value is 1. If used along with *realprecision, trailing zeros will be converted to blanks after the digits specified by *realprecision. For example, *realprecision(4) forces four digits to be written, even if they are zeros.

Inputs

flag
Trailing zeros are written as blanks.
Zero is not written to the left of the decimal.
In addition to performing compression, this command will add extra significant digits where applicable, while also rounding off precisely at the last digit. The compression is performed in accordance with the following rules and conditions:
This flag is applicable only for output of real numbers using any of the *field commands that have “real” as their first argument, and also have a non-zero width argument. Thus, the command will have no effect on the output produced using *field(exponential,value,8), or *field(real,value,0), for instance.
For values that are either too large or too small such that use of the ‘E’ is necessary to represent the number within the given width, the following conditions are applied:
By default, ‘E’ is omitted, and an extra significant digit is added, if applicable. However, ‘E’ can be output, by passing a custom export string to the command *feouputwithdata. Please refer to the documentation of that command for more details.
Any leading zeros on the exponential part are always omitted. Instead, additional significant digit(s) are output, where applicable.
For values that do not require the use of ‘E’, the following conditions apply:
For a number whose absolute value is less than 1.0, the zero to the left of the decimal point is omitted if doing so results in adding an extra significant digit.
For a whole number whose absolute value is greater than or equal to 1.0, the zero to the right of the decimal point is omitted if doing so results in a more accurate representation of the number within the given width.
Trailing zeros that do not contribute to the accuracy of a number are always replaced with blanks, leaving only one zero, at the most.
This flag also provides a means of rounding off real numbers whose absolute value is within a specified tolerance, to zero. This option is off by default, but can be turned on by passing a custom export string to the command *feoutputwithdata. Please refer to the documentation of that command for more details.

Example

Using *compressreal(1) causes HyperMesh to write numbers such as 0.0000 as 0.0.

Using *compressreal(2) causes HyperMesh to write numbers such as 0.123456 as .123456.

The table below has examples of output obtained using *compressreal(3). The examples assume default options, that is, without the use of the custom strings mentioned above in *feoutputwithdata.

Actual value Output in field of width 8 Output in field of width 16
0.125 0.125 0.125
0.1254768 .1254768 0.1254768
0.12547687 .1254769 0.12547687
0.125476842 .1254768 0.125476842
1.02356E+015 1.024+15 1.02356+15
-1.02356E+015 -1.02+15 -1.02356+15