
The father, now no more a father, cries,
Ho Icarus! where are you? as he flies;
Where shall I seek my boy? he cries again,
And saw his feathers scatter'd on the main.
Then curs'd his art; and fun'ral rites confer'd,
Naming the country from the youth interr'd.
Rather than building the report for you from scratch, Icarus allows you to write the report, giving you control over how the information is presented. The default report format is HTML, the standard format used for web pages, which means you can use your normal web browser to view and print your reports. However, many of the keywords may be used in other formats as well; in particular, we use the same keywords to generate our CSV files.
Icarus currently supports many keywords in its report templates. Icarus scans the template file for the keywords, then replaces each one with a calculated value, allowing you a great deal of control over the presentation of your reports.
Notes:
And a final note; although we have listed below all keywords currently supported by Icarus, you may also add your own keywords. If you do, Icarus will prompt you for a value when you generate the report, using the Manage Keywords dialogue described below. We will almost certainly add more keywords in future releases, but we guarantee that any keywords beginning with #USER will be safe.

This dialogue box is accessible from the Report List dialogue box, and lets you edit your keywords and decide on their scope. Keywords may be stored in two places:
Double-click on a keyword to edit the value.
The Clear Thermometer button clears all keywords associated with the thermometer. The next time you generate a report, you will be prompted for these again.

This dialogue box allows you to modify the value of a keyword. Note that for your convenience you can actually refer to a limited range of keywords from within other keywords; these are described in the Post-processing section
The drop-down list allows you to decide whether the value will be saved with the preferences, the thermometer, or not at all.
| Keyword | #INCLUDE.FILE.XTN# |
|---|---|
| Description | Icarus reads file.xtn from the reports directory and inserts it into the report template. |
| Note | Icarus doesn’t check for loops; if you’re daft enough to create a file that includes itself or a pair of files that include each other, you may have a long wait. |
| Keyword | #IF.CONDITION# (required) #ELSE.CONDITION# (optional) #ENDIF.CONDITION# (required) |
|---|---|
| Description | Text between #IF… and #ELSE (or #ENDIF… if there is no #ELSE) will appear in the report only if CONDITION is true. Text between #ELSE and #ENDIF will appear in the report only if CONDITION is false. A list of legal conditions is described below. |
| Note | If a condition doesn’t have a corresponding #ENDIF, Icarus will include/delete to the end of the file |
EQUATION.NEG.EXISTS - a negative equation has been selected for this report
EQUATION.POS.EXISTS - a positive equation has been selected for this report
RWTP.START.VALID - a starting value of R(WTP) has been supplied for this calibration set
TRUE - always true
FALSE - always false
IN_RANGE.HG - the range of either equation covers the Hg triple point
IN_RANGE.GA - the range of either equation covers the Ga melting point
IN_RANGE.AG - the range of either equation covers the Ag freezing point
VALID.W.HG - the value of W(Hg) <= 0.844235
VALID.W.GA - the value of W(Ga) >= 1.11807
VALID.W.AG - the value of W(Ag) >= 4.2844
(Add .POS or .NEG to the end of these conditions to specify the positive or negative equation only.)
| Keyword | #TABLE# #TABLE.POS# #TABLE.NEG# |
|---|---|
| Description | Icarus inserts tables as defined in the Report Builder. #TABLE.NEG# is a table for the range specified for the negative equation, #TABLE.POS# is a table for the range specified for the positive equation, #TABLE# is both, negative then positive. |
| Note | Each table may be inserted as several sections, each with its’ own header. These details are defined in the Report Builder. |
| Keyword | #CURRENT.EQUATION.DESCRIPTION# #CURRENT.EQUATION.REF# #CURRENT.EQUATION.FORMULA# |
|---|---|
| Description | .DESCRIPTION: Start temperature – end temperature (ITS-90 reference) .REF: ITS-90 reference .FORMULA: Equation |
| Note | These keywords are inserted into a specific table section, not the document as a whole. That means you can label a table section with the equation from which it was generated. |
| Keyword | #HEADER# |
|---|---|
| Description | Icarus inserts the header file as defined in the Report Builder. |
| Keyword | #PAGE# |
|---|---|
| Description | Icarus inserts 1 the first time it finds #PAGE#, 2 the second, etc. This provides a fairly simplistic method of numbering pages. #MAX_PAGE# will be replaced by the last page number. |
| Keyword | #PAGE0# |
|---|---|
| Description | Icarus inserts 0 the first time it finds #PAGE0#, 1 the second, etc. #MAX_PAGE0# will be replaced by the last number. |
| Keyword | #COUNTER.1# #COUNTER.2# #COUNTER.3# #COUNTER.4# #COUNTER.5# |
|---|---|
| Description | Five more counters, in case you need them, all starting at 1. Each has a corresponding #MAX_COUNTER.n# |
| Keyword | #THERMOMETER.NAME# #THERMOMETER.TYPE# #THERMOMETER.DESCRIPTION# |
|---|---|
| Description | These correspond to the Name, Type, and Description fields in the Thermometer View dialogue. |
| Keyword | #CALSET.DESCRIPTION# #CALSET.DATE# #CALSET.NAME# |
|---|---|
| Description | These correspond to the Name, Date, and Description fields in the Calibration Set dialogue. |
| Keyword | #RWTP.START# #RWTP.START.UNCERTAINTY# #RWTP.START.SELF_HEAT# #RWTP.END# #RWTP.END.UNCERTAINTY# #RWTP.END.SELF_HEAT# #RWTP.DIFF# |
|---|---|
| Description | Keywords starting RWTP.START correspond to the R(WTP) Starting value in the Calibration Set dialogue. Keywords starting RWTP.END correspond to the R(WTP) Final value in the Calibration Set dialogue. RWTP.DIFF is RWTP.END - RWTP.START |
| Note | You should use #IF.RWTP.START.VALID# to check that RWTP.START has been supplied if you want to use RWTP.DIFF. |
| Keyword | #EQUATION.NEG.TEMP.MIN# #EQUATION.NEG.TEMP.MAX# #EQUATION.NEG.DESCRIPTION# #EQUATION.NEG.REF# #EQUATION.NEG.FORMULA# #EQUATION.POS.TEMP.MIN# #EQUATION.POS.TEMP.MAX# #EQUATION.POS.DESCRIPTION# #EQUATION.POS.REF# #EQUATION.POS.FORMULA# |
|---|---|
| Description | These keywords describe the positive and negative equations selected for this report. TEMP.MIN and TEMP.MAX give the range over which the equation is valid. DESCRIPTION, REF, and FORMULA are text descriptions of the formula as described in the CURRENT.EQUATION keywords. |
| Note | Use #IF. EQUATION.NEG.EXISTS# and #IF. EQUATION.POS.EXISTS# to check that the equations exist before printing their values! |
The #READINGS# keyword is handled specially, since we have a lot of information available, and the odds are that you will only want some of it.
Readings covers all of the calibration points you’ve entered; use the following qualifiers to determine what the table of readings should include.
Qualifiers can be added in any order you like.
| .AS_ROWS .AS_PARA .AS_CSV | Add readings as rows in an HTML table. Add readings as HTML paragraphs Add readings in comma-separated value format |
|---|---|
| .CENTER .LEFT .RIGHT | Applies to .AS_ROWS only; readings may be left justified, right justified, or centred in the table. |
| .RAW .FIX | .FIX will cause Icarus to adjust the reading temperatures to their ideal values, adjusting the resistances accordingly. .RAW will report them as entered. |
| .POS .NEG | If supplied, Icarus will only include readings within range of the positive/negative equation. By default, all readings will be included. |
| .INC_WTP | If present, Icarus will include start and final WTP readings in the table; by default, these are excluded. |
| .NOUNITS | If present, Icarus will exclude the temperature scale and Ω symbol from the table. |
| (Column list) | Once Icarus has checked for these qualifiers, anything else is assumed to be a request to include a column. These are summarised in the next table. |
| = | = sign |
|---|---|
| T | Temperature |
| R | Resistance |
| U | Uncertainty |
| S | SelfHeat |
| V | Temperature formatted as W(Temperature) |
| W | W value |
| D | Calibration point description e.g. Mercury Triple Point |
| C | Compliance |
| 0 | R(WTP) for this reading |
Example
#READINGS.AS_PARA.INC_WTP.V=W#
Sample output:
W(-38.8344°C) = 0.8441732 W(29.7646°C) = 1.1181126
Look in the reports for more real-life examples.
In addition to the above, the following keywords are defined:
| Keyword | #READINGS.TEMP.MIN# #READINGS.TEMP.MAX# #READINGS.NEG.TEMP.MIN# #READINGS.NEG.TEMP.MAX# #READINGS.POS.TEMP.MIN# #READINGS.POS.TEMP.MAX# |
|---|---|
| Description | These keywords describe the ranges of the calibration points used, either for the whole calibration or just for the positive (…POS…) or negative (…NEG…) equation. |
| Note | These are the actual readings, rather than the ranges specified by ITS-90, so may give different results from EQUATION.NEG. TEMP.MIN, etc. Use #IF. EQUATION.NEG.EXISTS# and #IF. EQUATION.POS.EXISTS# to check that the equations exist before printing their readings! |
Like the calibration points, for #COEFFICIENTS# we have put together a flexible – if perhaps confusing – way of letting you get exactly what you want.
| .AS_ROWS .AS_PARA .AS_CSV | Add readings as rows in an HTML table. Add readings as HTML paragraphs Add readings in comma-separated value format |
|---|---|
| .CENTER .LEFT .RIGHT | Applies to .AS_ROWS only; readings may be left justified, right justified, or centered in the table. |
| .POS .NEG | If supplied, Icarus will only include coefficients for the positive/negative equation. By default, all coefficients will be included. |
| (Column list) | Once Icarus has checked for these qualifiers, anything else is assumed to be a request to include a column. These are summarised in the next table. |
| = | = sign |
|---|---|
| D | Description, i.e. name of coefficient |
| V | Coefficient value |
| E | Description of difference equation this value applies to |
| F | Formula – the equation itself. |
Example:
#COEFFICIENTS.AS_PARA.INC_WTP.D=V#
Sample output:
A = -2.126570483e-004 B = -8.405584167e-005
| Keyword | #GRAPH_W_VS_T# #GRAPH_T_VS_W# #GRAPH_WWR_VS_T# |
|---|---|
| Description | These keywords allow you to insert a graph in an HTML report; graphs may be W vs T, T vs W, or (W-Wr) vs T. |
| Note | You can add .LARGE or .SMALL to the end of the keyword for a larger or smaller graph. |
| Keyword | Description |
|---|---|
| #PLUSMINUS# | ± |
| #DEGREE_SYMBOL# | ° |
| #TODAY# | Current Date |
| #R_SYMBOL# | Ω (or ohms where plain text is expected) |
| #T_SCALE# | The current temperature scale, as defined in Preferences |
This is done after the you have had an opportunity to enter text manually for any non-standard keywords.
The first stage is identical to the Symbols above, giving you a chance to enter the keywords for symbols that aren’t readily available on the keyboard.
| Keyword | #LINES=n# |
|---|---|
| Description | Inserts n blank lines in a report, where n is a number between 1 and 10. |
![]() |
![]() |