Support / Installation files

STEM 7.1d

14 October 2009

Maintenance release

STEM 7.1d is fully compatible with models created in earlier 7.1 releases and includes the following updates.

ID Description

Issue: The system for encapsulating a STEM version number within a soft licence had an unexpected limitation which necessitated a change of design for version 7.2. Unfortunately the 7.1c code base on general release will choke on a soft-licence with this new format.

Action: A 7.1d patch has been issued alongside 7.2 to enable STEM 7.2 users to work with both systems in parallel. (This patch is not required if you are working only with STEM 7.1.)

STEM 7.1c

The following issues were addressed in the earlier STEM 7.1c maintenance release.

ID Description
Results program performance optimisations

Issue: The collection mechanism is one of the most subtle but beautiful features in STEM where something very, very simple delivers huge benefit in terms of automation of aggregation.  This mechanism miraculously carries over into service/resource allocated results, where it can automatically report on the costs allocated from a collection of resources to a collection of service; e.g., allocation of all network costs to all pre-paid services.

Unfortunately, the creation of the inferred collection/collection, collection/resource and service/collection sets of service-resource combinations is computationally very expensive.  In fact, the logic is something between o(n4) and o(n6), depending on how you count.  The innermost loop, where it has to check if it has already created a given collection before adding a new member, is particularly nasty because the size of the list grows as the task progresses, so it slows and slows down the further it goes. 

Action: Fortunately, it has been possible to code a direct-lookup mechanism which has effectively removed this worst order of complexity.

Additional optimisations include allocating collections in blocks, avoiding redundant searches, and avoiding duplication of standard type strings. 

The creation of service/resource elements and collections is now monitored with a % complete status.

A memory issue with collections of value-chain services has been addressed.

Need to speed up element-matching logic

Issue: A STEM results workspace file keeps a list of all model elements in a model as a reference for the associated lines on graphs. Whenever results are loaded or updated, this list must be matched against the the model input data to keep saved graphs in step with changes to the underlying model structure. However, the original implementation used a brute-force search algorithm which would slow to a crawl with very large models.

Action: The o(n2) algorithm has now been transformed into what will be a straightforward linear walk in most cases, more like just walking the diagonal rather than traversing the square.

Buffer overrun graphing operating charge for lots of services

Issue: The Results program would generate an error if you tried to draw a graph comparing any results for more than 100 separate model elements.

Action: It will now cope with up to 512 separate model elements (and multiple scenarios and/or results per element).

Failed to read external label when set to empty string by formula

Issue: STEM would report a spurious error reading a string from Excel if the string were defined by a formula which returned the empty string, "".

Action: This case is now handled properly, such that a label for defaults linked from Excel will be ignored if it is blank, even if it is defined by a formula.

Spurious circularity reported with sum transformation

Issue: A model using a transformation of type 'sum' could be wrongly classified as circular by the checker.

Action: The logic has been rectified.

stemicon.dll appears to contain zero icons on Vista

Issue: The Windows OS function which STEM uses to extract the icons no longer reads 16-bit DLLs on Windows Vista. Apparently this is a well-documented move in functionality which we had missed.

Action: We have replaced the original 16-bit stemicon.dll with a 32-bit version.

Retained Earnings result should have consol=Last

Issue: This result was mistakenly configured such that a consolidated value would be calculated by summing over relevant periods rather than taking the last value. This is the correct approach for Retained Profit, but obviously not for the cumulative Retained Earnings. This error would have been evident only if a model were run with shorter time periods and the results then consolidated.

Action: The consolidation now correctly takes the last value.

STEM 7.1b

The following issues were addressed in the earlier STEM 7.1b maintenance release.

ID Description
Failure to report external reference to a label cell containing a #REF in Excel

Issue: An earlier fix gives a warning if a #REF is encountered when linking inputs from Excel, but only if it appears in a cell where STEM expects data.

Action: A warning is now also produced if a #REF is encountered in the label column when linking defaults from Excel.

Spurious error when closing STEM programs on Windows Vista

Issue: All STEM programs (including the installer) running on Windows Vista would generate a spurious heap-management error message on closing. Multiple such messages from the compiler program would interrupt template replication and scenario runs.

Action: This issue is fixed in STEM 7.1b. It remains the case that Windows Vista will require you to approve running the STEM installer, which currently lacks a digital signature, and will also ask you to confirm that the installation is OK at the end.

Spurious replication error after adding a non-replicated service and resource

Issue: Due to a slight flaw in the checking logic, a model could be flagged with a false replication error after adding new elements to a previously working model.

Action: The offending typo has been located and corrected, so hopefully this problem is resolved once and for all.

Drawing a sensitivity/scenario graph without working model results could cause a crash

Issue: It was possible to crash the Results progam if you ran sensitivites on a scenario of a model without ever running the working model, and then attempted to draw a time-based NPV with a difference on the sensitivity.

Action: This is fixed in STEM 7.1b.

Maximising a graph in the Results program could corrupt, the View menu

Action: This is fixed in STEM 7.1b.

Results picks Y11 for snapshot graph in model with 10-year model run

Issue: The wrong period could be used if you had first drawn a snapshot chart, and then reduce the model run length.

Action: STEM 7.1b checks the current run length and reduces the default period if necessary.

New compiler causes STEMRES.DLL to return NANs rather than zeroes

Issue: STEM 7.0e used to return zero for an undefined Utilisation Ratio result linked into Excel via the StemGetResult() worksheet function and STEMRES.DLL, whereas STEM 7.1a returns an apparently very large number (~ 1e308) due to being built with a different C++ compiler.

Action: The logic has been amended to return a zero as it used to.

Time Lag transformation fails with zero delay

Issue: The model engine would crash if you set a zero lag for a Time Lag transformation (e.g., as a do-nothing option in a model).

Action: This previously un-tested edge case has been readily fixed.

Debt Facility not re-paid if repayment = Term

Issue: If you set the repayment grace period equal to the term for a Debt facility, the balance is never repaid due to an oversight in the logic!

Action: This is fixed in the STEM 7.1b default.cnf.

Debt Facility with zero interest grace period generates no interest in first period of its term

Issue: The experts who briefed us on this functionality advised that typically no interest is charged until some time into the term: the extreme case of charging interest immediately fell outside the original testing envelope.

Action: There is no reason in principle why interest should not be charged in the first period, and this is fixed in the STEM 7.1b default.cnf.

Depreciation schedule appears to use the cumulative total rather than just the integral over the current period

Issue: In certain circumstances, the new depreciation schedule feature introduced in STEM 7.1 would miscalculate how much depreciation to charge in a given period.

Action: This is fixed in STEM 7.1b.

Historical cost written-down too late with redundant unit write-off

Issue: The residual value mechanism introduced in STEM 7.1 worked fine in the standard case, but would mis-report historical cost in a period where redundant-unit write-off was in operation, and units had already been removed.

Action: This is fixed in STEM 7.1b, and the proceeds from sale of assets are brought forward to the year of write-off. FTAOD, the asset is considered to be removed in the write-off period, rather than left to be sold in the next period.

yearN() fails to convert year to period in scalar and time-series conditional expressions

Issue: In a model running in quarters or months, the yearN() function may return an incorrect value due to working with a year index rather than period index; but only when evaluated for a scalar, or within the scope of a conditional expression where it is also handled as a scalar. In more general time-series expressions, it would work fine.

Action: The logic, already present in the general case, is now reproduced in the scalar case.

URLs changed from to

Issue: Earlier versions of STEM included hard-coded references to (in the Help/Contact... dialog and for requesting a soft licence). Although the relevant URLs were re-directed when the new site was launched, there have been a few glitches when the site configuration has been updated.

Action: The URLs have been updated in STEM 7.1b.

Save greyed out after open model from Windows Explorer

Issue: If you opened a STEM model by double-clicking the file in Windows Explorer, the Save option on the File menu would be greyed out; but only if STEM had to prompt about the model having out-of-date external links, and only if the Editor was not already running.

Action: This is fixed in STEM 7.1b.

STEM 7.1a

The following issues were addressed in the earlier STEM 7.1a maintenance release. 

ID Description
Error on adding a new variant

Issue: Adding a new variant to an existing dimension (or template) causes the Editor to display an error message saying "Inconsistent reference in I_get_dtl_field" and then to report a general failure which will require you to close and re-start the Editor.

Action: Fixed in STEM 7.1a.

Model name starting with a number confuses sensitivity graph

Issue: If a model name starts with a number, then when you draw a graph including sensitivites in results you will find that you end up with 2 graphs. One graph will contain the baseline results. The second graph will show the sensitivity results.

Action: Fixed in STEM 7.1a.

STEM 7.1 fails to locate dongle

Issue: By default, STEM 7.1 only looks for a soft licence and does not check for a dongle. Users with dongles are therefore unable to run STEM models.

Action: STEM 7.1a will automatically check for either a soft-licence or a dongle.

Problem accessing Visual Basic Project with STEM 7.1 add-in for Excel

Issue: Upon running the new Excel add-in in Excel 2003 and later, the following message may appear: "Run-time Error 1004: Programmatic access to Visual Basic Project is not trusted".

Advice: Click "End".

In Excel 2003:
(i) On the Tools menu, click Macro, and then click Security to open the Macro Security dialog box.
(ii) On the Trusted Sources tab, click to select the Trust access to Visual Basic Project check box to turn on access
(iii) Click OK to apply the setting

In Excel 2007:
(i) Open the 2007 Microsoft Office system application in question. Click the Microsoft Office button, and then click Application Options
(ii) Click the Trust Center tab, and then click Trust Center Settings
(iii) Click the Macro Settings tab, click to select the Trust access to the VBA project object model check box, and then click OK
(iv) Click OK

Notes: Use of the new-style VBA references makes portability to other machines much easier from the perspective of fixing up paths to the STEM model and particularly to the add-in, which is why we have made the add-in establish the VBA reference at the earliest opportunity.

Please check the notes in section 5 of the 7.1 manual (p 5-25) which explain how to check for the old-style links from an existing workbook, and how to change them to VBA references. Once this is done, there is no actual need for the workbook to check or modify the VBA references.

Action: STEM control sheets created with the STEM 7.1a add-in set a new flag to stop it checking references after the initial setup, so end users of run-time models can avoid this issue.

Notes in STEM confuse export to Excel

Issue: Data exported to Excel that contain notes may produce an error saying "Unsupported Object Type" when linking back to the STEM editor.

Action: Fixed in STEM 7.1a.

7.1 add-in fails when workbook named the same as model

Issue: If a STEM Excel Workbook has the same name as a model but is kept in a different directory and if the path name is left blank in the workbook control sheet then an error may occur saying "Failed to open model file; error 2 (File Not Found)"

Action: Fixed in STEM 7.1a. 

© Implied Logic Limited