Added some C tests for sat and solve_ph routines.
Added parameter 'source' to fprops_fluid, to allow data with a particular source to be specified (optionally). This allows forced testing explicitly of the RPP data even when Helmholtz data is also available.
Tweaked some convergence parameters in sat.c and solve_ph.c to get convergence across broader range of parameters for more fluids (more testing required).

Working on updating rankine_fprops and associated models to work with new fprops2 code.
Some issue discovered with (p,h) for water (added python/solve_ph1.py to check it).
Next cunit tests to drive some ASCEND models embedding FPROPS (note use of slvreq for this).

Rename to StudyReporter in studyreporter.py (seems to be duplication from solverreporter.py?).
Fixed some unit conversions in tmy3.c, test file seems correct now (to float precision at least).
Suppressed some debug output to try to speed up Study feature, not there yet.

Change use of 'snprintf' to a macro so that MinGW-64 can substitute it with _snprintf.
Minor text changes in ascPrint.h.
Move 'general' config.h definitions into ascend/general/config.h. Hope this will reduce amount of rebuilding arising from minor changes.
Fix bug in ascEnvVar.c arising from string like "=sillydef" with no leading varname.
Still need to fix ascEnvVar.c for case like " = sillydef".
Bug found with sundials-config when MinGW fstab /mingw does not point to c:\MinGW.
Removed support for 'g77' compiler as alternative to 'gfortran'.
Fixed SCons error message when LyX is not present.
Removed disused Makefile.in file.
Removed some debug output in ascEnvVar and printutil.c.
Some reformating of SConstruct.

Add 'solve_Tx' function for convenience.
Add 'helmholtz_u_raw' and change 'helmholtz_u' so that it tests for saturation conditions.
Fixed pv.py to use new 'fprops_fluid' function.
Add example of solve_Tx function.
Fix separate build of FPROPS (independent of ASCEND).

New work towards detailed turbine model. Impulse turbine stage model partly operational, reaction stage still in progress.
Added new {rot} and {RPM} measures of angle and angular speed. But note clash with {rpm} which is cycles per minute (not angle).
Added calculation of c_p and c_v from FPROPS.

Update all tests after installing PyGTK All-in-one (fixes bug 498).
Static linking top libgfortran for LSODE (fixes bug 497).
Removed attempts at MD5 sum checking, but installer is able to use local copies of downloaded files now.

Resolved memory leak with test/test solver_ipopt.formula.
Still some issues to overcome with regard to inactive relations, probably.
Some issue still occurring when attempting to run whole solver_ipopt suite in one go.

Merging in refactor of the C++ code, which is moved out of 'pygtk' and into 'ascxx'.
Adding support for IPOPT 3.9.1, the current latest version.
Support in dtar for parallel builds (possibly needs some testing still).

Remove references in ascDynaLoad.c back to compiler header files; these should be kept independent.
Deprecate function SearchArchiveLibraryPath (only used in conopt_dl.c); we should us ospath and/or importhandler routines instead.

Moving 'bit.[ch]' to ascend/utilities as they don't make any reference to compiler-specific data structures.
Removed reverse_ad_bak* files, don't appear to be used.
Fixed up #include statements referring to bit.h.

Rename 'node' to 'air_node' and 'stream' to 'air_stream' in brayton.a4c.
More plotting routines in cycle_plot.
Finalised combined cycle models including ammonia.
Small bug in nitrogen.c when testing (./test.py nitrogen).

The (p,h) function is converging almost everywhere. The home-made Newton iteration wasn't starting well for supercritical states
when the starting guess had rho = rho_c, so changing slightly away from fixed almost all the problems.

Working on bug 477, trying to fix recursive 'default_self' behaviour.
Looks like problem is something to do with the 'RUN default' in basemodel.a4l, not sure why.
Added 'STOP' to gedit syntax highlighting.

numerical algorithms for saturation curve. algorithms are based on those used by REFPROP, but the code is a new implementation. hoping that this is all legally correct; please let me know if there are any issues -- JP.

cavity.a4c: view factor should be a fraction.
pv_*: working on annual simulation model, but more work required (eg power point tracking)
gtkbrowser: work on bug #405
commenting out debug output in simulation.cpp and relation_util.c.

Error message when using 'properties' before a simulation is created (fixes bug #389).
Fix packaging problems for libascendtcl.so in debian/ubuntu.
Minor fix to dtar for top-level pathnames (ongoing; can't handle tarballs with spaces in their names).

Started work on exposing model parameters to canvas GUI.
Updated header/comment formatting in type_descio.h.
Fixed some warnings in error.c.
A bug still exists error_reporter_tree_start that is causing problems with the
canvas-based GUI.
Added Info class to canvas code, for output of debug information via GUI.
Added a few missing types of gtksourceview langdef.

Add steps to converge rankine_regen (still problematic).
Fixed 'rename' tool in canvas model so that Enter key works.
Added Export as SVG support in blocklist.py.
In PyGTK GUI, "Fixed variables" dialog now includes the values (no units yet).
Graphviz view of system now attempts to show unconverged relations (ongoing).

'sticky' installation preferences, eg if you install header files, then
next time you run the installer, header files will be preselected. Also,
can't deselect items that have already been installed (you must run the uninstaller to remove those).

Fix for SCons 1.2.0: problem with detection of g77 on MinGW.
Still need to test on Linux.
Modified ascend-config for Windows to output paths with double backslash, seems to fix a problem with ParseConfig in SCons 1.2.0.

Still some error near critical point for calculation of speed of sound.
However this error is not reconcilable with both IAPWS95 and REFPROP8, because those
two sources give different values. The value returned by FPROPS is midway between
the two.

All tests for ammonia pass to within 5.5% (h, u, s, a, p).
Remaining error needs further investigation; it looks that REFPROP's cp0 is not agreeing with Tillner-Roth
but this needs to be double-checked.

Fixed bug #361.
Moved a number of vars out of SUBST_DICT to prevent config.h changes from spawning a rebuild of libascend.
Eliminated use of ASC_WITH_CONOPT from C code (still need ASC_LINKED_CONOPT for the moment).

Fixed detection of 'boolean' definition in GraphViz graph.h. Newer versions of GraphViz (2.16) include this definition, although it's not included in the older versions (2.12). Older versions still (2.8) are in use (Ubuntu 6.10 and Ubuntu 7.04).

Moved 'incidence.c' and 'incidence.h' to base/generic/system.
Change system_write_graph to use GraphViz directly, and create PNG output.
Created 'TestSystem' suite in test.py and added test for PNG graph create (no checking performed though so far).
Updated Simulation::write to use the new system_write_graph syntax (no filters any more).
Fixed WITH_GRAPHVIZ flags for graph.c.

Removed references to MFGRAPH, seems better to use GraphViz directly.
Added configuration test for GraphViz.
Added configuration test for strdup, fixed mmio to not create its own strdup if other form is available already.

Limited set of model files installed by 'scons install'.
TODO: fix 'installer.nsi' to use the PACKAGE file lists also (need SubstInFile)
TODO: fix tarball to only include model files given in PACKAGE lists also (modified DistTar?)

Corrected lib dependency in Debian (libtktable2.9 instead of libtktable).
Added some ATOM types for heat exchanger analysis.
Identified a bug in package_load for case where DLL is in the current directory (still needs fixing).

Added default ASCENDLIBRARY and ASCENDSOLVERS fetched on Windows from the Registry.
Updated installer to set these registry values at install time.
In packages.c, output to say what the default values are found to be.
Remove some redundant output in 'ascend' script.

Changes to the way in which sovlers are registered, to facilitate
dynamically-loaded solvers. Also split much of the 'solver' stuff
from slv.c (in the system directory) out into new file solver/solver.c
and added matching solver/solver.h. Solver IDs are now fixed-- they
don't change, and are stored in a list instead of in an array.

Added some comments in ascend.spec referring to as-yet-unresolved dependencies for documentation generation.
Added to doc/SConscript 'if' clause to turn off doc installation by default. Should allow 'scons install' to
occur without triggering documentation build.

updated the makefile stuff to work in the current dir structure.
still lots of problems with the install target and now doing
the evil double link because the directories
system, linear, and solver really are NOT independent.

Fixed build problem on MinGW GCC 3.4.2
Fixed problem with font in IPython console on Windows
Some attempts to fix problems with FILE* support in Python bindings
gfortran is now the preferred FORTRAN compiler.
Comment out failing FILE* tests for the moment.

Standardising formatting of 'if' and 'else' in slv9.
Renamed VarStatus to InstanceStatus (so that relation status can also be reported).
Added reporting of inactive-in-a-when relations (using the broken-link icon for the moment).

Added 'more properties' button in 'relation properties' dialog.
Corrected the use of the term 'active' to be 'included' in PyGTK GUI.
Added (basic) support for setting relations included/unincluded in PyGTK GUI.

Added routine for outputting system as a DOT graph.
Changed an 'assert' to an 'asc_assert' in logrelation.c.
Changed logical relation in sequence.a4c (was causing a crash).
Added Simulation::write(FILE,char*) for outputting *stuff* from a simulation.

Added new 'system_jacobian' function for use by IDA (maybe elsewhere?)
Refactored the matrix output stuff in IDA.
Fixed the index checking in idaanalyse
Still a problem with checking rank of small matrices.

Added and performed basic tests of integrator_ida_write_matrix. Generalised the write_matrix
routine so that *any* requested output can be retrieved from the integrator (for the case
of IDA this is y and y', but it could equally be more complicated stuff.)

Removed the 'command line solver' from the Tcl/Tk interface.
Deactivated the 'plot' command in slv_interface.
Eliminated various #include <compiler/*> from the solver.
Added another sample model (which current fails because of problem with non-incident diff vars.

Fixed 'hires' test (needed to rack down the tolerances a bit)
Removed newton test (until we make some changes to the solvers var list)
All of TestIDADENSE passes now and will be added to the buildbot list.

Added 'hires.a4c' test model.
Split slv_system_structure out of slv.c and into system_impl.h.
Changed void* diffvars pointer in slv_system_structure to a typed pointer.
Moved SolverDiffVarCollectionStruct into system_impl.h.
Renamed slv_system_structure to just system_structure (in anticipation of a 'system' module separate from the actual solvers).

Added getParameter by name in SolverParameters.
Fixed up refences to signal-related header files.
Fixed up various warnings from -pedantic compilation.
Identified an apparent bug with RelationCalcGradient (unsafe version).
Added support for compilation of a standalone C++ program (idatest) in SCons build.

Split diffvars stuff out of analyse.c.
Fixed IDA to work when vars are fixed/freed after the integration system is build.
There will still be problems where fixing/freeing a *derivative* causes relations to drop out.

Added support for slv_far_from_nominals in C++/Python layer.
Converted 'child not found' from error to CONSOLE_DEBUG message.
Added some nominal values in iapwssatprops.a4c.
Added getRealPref in preferences.py.

Added except.[ch] which are intended to hold some TRY..CATCH..FINAL macro goodness to replace the explicit longjmp calls.
Added time-watching in LSODE to update GUI in case of long samplelist timesteps (TODO: permit interruption vai this mechanism too).

Added integrator_write_matrix routine to allow integrator matrices to be written out.
Modified integrator in PyGTK to output this matrix to a file in /tmp in the case where Integrator::solve fails.
Fixed a bug in densematrix_write_mmio.
The current implementation of integrator_write_matrix might not be quite right yet... needs some more thought.

Added scons switch IDA_NEW_ANALYSE for the new code that implements a better DAE analysis procedure.
Minor tidying in list.[ch]
Removed some DIEDIEDIE stuff from analyze.c.
Added 'odeid' to the 'varip' structure in same.
Collapsed a bunch of repetitive stuff with those fancy #defines I like so much.
Flipped some return codes from functions integrator.c to return 0 on success.
Added #include for sensitivity.h in lsode.c.
Catch exceptions from sim.build() in do_integrate() in PyGTK GUI.
Attempted to fix tcl/tk for errors from integrator_analyse as well (not tested).

Moved vector functions out of slv_common.c into mtx_vector.c
Created corresponding mtx_vector.h
Renamed vector_data to vec_vector and corresponding functions from slv_ to vec_* (with other minor named changed).
Made necessary changes to SConstruct, Makefile.in.
Done with regexxer, should have caught everything hopefully.

Several changes to get BinToken compilation active again from PyGTK interface. Still not working but the problems now are in the C layer.
Tidied doc for slvDOF.h
Changed BinTokenSetOptions to saner use of strings -- no more 'taking ownership' of char arrays passed.
Added Compiler.use_binary_compilation option in PyGTK GUI.
Moved all the bintoken stuff out of class Type and into Compiler, where it should be (C++).

Fixed for reporting of METHOD errors in PyGTK GUI.
Removed libasctest target (was causing messed up build on Windows)
Removed attempt to link libasctestsuite to -ldl on Windows (not necessary)
Adding reporting in test.c when no tests have been registered (to flag a problem with static/dynamic linking of CUnit on Windows)

Fixing bug with importhandler_setsharedpointer (you need to RemoveTableData if you want to overwrite a value)
Minor correction to (not fully implemented) importhandler_destroylibrary for case where library is NULL.

Fixed bug with memory deallocation for partitioner in ida.c
Silenced some debug output in ascSignal.c
Fixed execution of Python test suite (CUnit tests will need more work before running via this approach)

Fixed bug with memory deallocation for partitioner in ida.c
Silenced some debug output in ascSignal.c
Fixed execution of Python test suite (CUnit tests will need more work before running via this approach)

Some work on fixing error with test_ascSignal.
Breaking down into smaller test cases.
Removed some debug output from detection of ASC_RESETNEEDED.
Changed all calls 'signal' to 'SIGNAL' macro that includes optional debug output.
Removed 'libasctest.so' (made part of libasctestsuite.so FWIW)
Fixed big in test.c wrt CUEA_ABORT.
Added 'print_stack' and 'Asc_SignalPrintStack' and 'Asc_SignalStackLength'.

Refactored tests into a shared library of tests and a executable of
just the CUnit driver. This will allow the CUnit test suite to be executed via
python unittest as part of the growing Python-based test suite.
Renamed setjmp and longjmp to SETJMP and LONGJMP throughout ASCEND, to allow
some debugging output to be added at each call.

Added Matrix Market export routines (from math.nist.gov).
Added necessary build commands for above.
Work on Jacobi preconditioner for IDA (ongoing)
Set integrator_analye to make a call to slv_block_partition. Not sure if that's a good idea or not.
Tidied up comments in linsol.h
Moved unnecessary #defines from model_reorder.h into model_reorder.c.
Cleaned up codedocs in mtx*.h
Added WITH_MMIO config.h flag.

Failed 'ASSERT' statements in a METHOD now cause the statement to be output (as well as its location).
Improved code docs/GPL header for a few files.
Added support for 'ASSERT' in WriteStatement.
Added new WriteStatementError that included var-arg support.
Fixed ASC_ASSERT_RANGE in AscPanic.

Abstracted the internal integrator calls into a struct IntegratorInternals.
Fixed up compile-time list of integrators.
If IDA is not available, then 'INTEG_IDA' will not be defined.
Added ASC_ASSERT_RANGE for assertions x in [low,high).
Changed calling convention for integrator_get_engines().

Fixed the 'repeated test' bug (a static pointer to a destroyed symchar was being used in type.cpp)
Improved error reporting for 'not a refined solver_var' message.
Refactors Library::listModules and Library::getModules to use shared code.
TODO: find a more efficient solution to the static pointer problem above.

Fixed a bug with initial time step in IDA (and added a checking asc_assert)
Added switch to turn on and off 'IDACalcIC'.
Changed 'already loaded' ASC_PROG_ERR into ASC_PROG_WARN (so that repeated 'IMPORT' doesn't cause problems)
Removed unnecessary solver tricks from shm.a4c (for easier debugging of Integrator API)
Widened self_test limits in zill.a4c.
Some more debugging in simulation.cpp.
Breaking down test.py into smaller test classes (thinking about moving it to its own directory)

Added SCons tests to check SIGINT and to replace ascresetneeded (need replacement for this in Autoconf as well).
Removed debugging from createinst.c
Typo (text) in evaluate.c
Commented out redundant code in importhandler.c
Added signal handling in ExecuteCASGN.
Added missing ospath_free in ModuleSearchPath.
Exported InitSymbolTable, DestroySymbolTable in symtab (dubious)
Moved FPRESET macro out of ascConfig.h and into ascSignal.h
Added Asc_SignalHandler{Push,Pop}Default.
Added ASC_RESETNEEDED and HAVE_C99FPE macros in config.h.in.
Found the bug causing the SIGFPE in idakryx.a4c (raises a question about int/float division in modelling, I think)
Added system_destroy call in Simulation::~Simulation (dubious).

Cleaned up code comments in units.h
Fixed a bug with starting timesteps in LSODE (i think)
Added function to output a SampleList to the console (for debugging)
Removed debug output from base/generic/test/SConscript.
Removed 'custom' headers for UnitsM in ascpy.i
Made a sane default ctor for UnitsM
Added some more test cases to the Python unittest suite (still a problem running multiple solver-based tests in a single run)

Removed references to 'ASC_BIG_BUGMAIL' and 'ASC_MILD_BUGMAIL'
Disabled stream redirection functions (they were making testing difficult)
Re-wrote the main test-runner to permit specific tests to be run from the commandline (ongoing)
Disabled readln tests that required stream redirection.

Working on what the problem is with 'on_load' methods in the C++/Python code.
Seems that 'EXTERNAL solve(SELF);' puts the model into a state which 'works' but if that's
not done first, then that set values in the model don't work correctly...

Removed BBOXWHINE (replaced with some one-time-only warnings for the moment)
Added ExtMethodDestroyFn to allow 'user_data' associated with external methods to be destroyed.
Implemented the destroy fn through to 'extpy' module.
Added 'name' as an extra parameter in the user_data for extpy, to help with debug msgs.
Moved 'solvernotes' to a file of its own (was part of listnotes.py)
Added 'repaint' to GTK 'tools' menu (for debugging)
Added 'python.h' to top of library, type files (pygtk) to stop silly warnings.
Working on some diagnosing of problems as noted in Simulation::checkInstance.
Removed some old comments from namio.h and others.
Renamed 'blsys' to 'sys' in integrator.c.
Some work on fixing up the J*v function for IDA (not yet complete).
Added new 'destroyfn' parameter (as NULL) to all calls to 'CreateUserFunctionMethod'.

In instantiate.c, made new blackbox code tolerant of blackboxes that don't need initialisation.
Removed some debug output.
Expanded 'extfntest.py' a little bit, for ease of testing.
Converted 'blackbox is experimental' warnings to one-time-only.
Minor change to way that webbrowser is invoked under linux.

Some success with IDA: fixed up the indexing dilemma and was able to
integrate 'johnpye/thermalequilibrium.a4c' for a short time span (but
through to 3000 s as with LSODE). I would blame lack of jacobian routine
in the first instance.
Added 'more properties' button in Properties dialog for a variable, to allow
values of ode_id, ode_type etc to be queried (but not changed).

The 'sim' object is correctly accessible from script methods now, even if run during on_load.
Added 'getSimulation' to registry.cpp, added 'runDefaultMethod' to Simulation, added 'getMethod' to Type.
Running of 'on_load' is instigated at the Python level now, so that relevent python variables are set at simulations are built, etc. This appears to have cause some changes to the way the solver behaves, possibly.
Added SearchProcList to exports in libascend.

This model uses the freesteam library to perform something similar to
the 'thermalequilibrium.a4c' model, except that there is a phase change
taking place in S[1] in this model as the heat is transferred.

First tentative version in 'integration reporting':
Values of observed variables from the simulation are added to an Observer table after simulation completes.
This is not very efficiently coded at this stage but is a start.
Also some minor changes to text and comments in some base/generic files.

Bumped version to 0.9.5.98.
Added support for 'setSymbolValue' from C++ interface, and allow symbol variables to be edited via the PyGTK GUI.
Added some limited data about structural analysis of beams in johnpye/aiscbeams.a4c.
Updated johnpye/beam4.a4c to use this data.
Added some currency conversions to measure.a4l.
Added some units related to Mechanics of Solids to atoms.a4l.

Added a sun position and extraterrestrial radiation model using the equations from Duffie and Beckman.
When combined with the new data reader, this will start to be useful for 'real' solar energy problems.