Source code conversion
The major part of the previous model was written in Fortran 90. All the major calculations were made by code originating from Fortran language. These sections have now been all converted to C++. The new C++ code is built up by using the same major components. Previously the entities of the Fortran was mapped by the C++ to define a number of classes to handle all the variables and parameters in C++. Now all those variables are defined in the C++ environment from the start. The new C++ code is using standard template library (c++11). Parts of the previous C++ code using MFC and are converted to use standard template library but some components related to the GUI and are still using MFC.
Differences in the model
A number of details and minor bugs of the previous models have been deleted. However, an unknown number of new bugs may have been added. This means that the new model will sometime show different results. These differences can be tricky to find and should be considered with some care. The ambition has been to make the model exactly the same but it was not possible. One major difference is that all variables in the calculations are now considered with double precision and in the previous model both double and single precision was used.
Input and output file
The same types of files are used in the new model and all files produces by earlier version should be read and understood by the new model. The major input/output file for the document (*.sim) produced with the new version will not be possible to use by the older version. The time serie files (*.bin) are extended to be more adapted to represented more than one repetition in the same file.
Validation Files
Note that the input validation files (*.bin) are the same but the new output validation file (VX_Coup_YYYYY.bin) have a new format. The output validation file will in the new model have exactly those time points as defined in the input validation files also when simulations are for shorter periods or when missing data exists in the input files. When charts are made in the new model mixing of information with the original files is made and no extra storing of measured values from the input files is made. This makes it necessary to keep the input validation file also when simulations are completed.
Soil Data Base
The previous soil database (*.dba and *.dbb) will be converted to a new format (*.dbl). The most important changes is that the coordinates will now be possible to specify in as GEOREF with decimals. The key numbers used to extract and import profiles have been given broader range.
Charts
A number of improvements have been made. It should be easier to shift between different chart types and the functionality of the Zoom is improved. When shifting to 3 D charts represented by contour lines they can be made by right click and introducing new independent variables that is not the time. New independent variables can be selected as any variables from multirun documents represented either as parameters, time serie outputs or performance indicators (validation).
New Documentations
Unfortunately the tutorials and the general documentation are not adapted to the new model. However since most changes are outside the GUI you should see only minor differences. Some new tutorials will be produced in the next also to demonstrate some of the new features.
Hints for speed
The new code will be potentially faster but can also be slower depending on the design of a simulation. One hint to reduce the speed that seems to be more important now than before is to disable animation of results during the simulations.
Outlook
The new model will be much simpler to move from one computational platform to another and we expect it to be much faster by using more of parallel computing. However, the current version is still using only one core at a time. Multiple runs have to be merged after they have been completed as before.
Looking forward to receive comments, reports and suggestions
Stockholm April 9 2014
Per-Erik Jansson