next up previous contents
Next: SNOlib: The Advanced User Up: Adding Code to SNOMAN Previous: Writing Platform Independent Data   Contents

The USR Processor

With the USER of the Standard User Interface, you can change any SU in any way you want. However, this does have drawbacks when introducing genuinely new code:-

So SNOMAN comes complete with a dummy USR processor consisting of the 3 routines USR_INI, USR_EXE and USR_TRM. They contain instructions on how to use them although they do assume that you have also looked at the USER routine. Indeed, for private, short-term code there may be little to choose between the set of USER_* routines and the USR_ ones. As the USR processor is just another processor, it can be mixed with any or all of the Standard User Interface routines. However, it differs from other processors in that it is allowed to change its definition during initialisation. All other SUs have their definition hardwired into the routine SU_DEF. However, the definition of USR is, by its nature, not known to SU_DEF, and so SU_DEF makes a special call to its initialisation routine USR_INI to allow it to override the default. As an extreme example, USR is allowed to redefine itself to be a support system. It is also allowed to declare that it is dependent on other SUs and then SU control will ensure that these SUs will be initialised before USR. See the supplied USR_INI.

USR_INI must declare all the its direct dependencies on any SUs, such as CAL, otherwise the program will not function correctly.

The USR processor supplied is not a dummy. Instead it is modelled on SNOREAD, which is an independent program, built with SNOlib, that can be used to analyse data sequentially. SNOREAD was written to address a number of serious weaknesses in earlier versions of SNOMAN. USR now does everything (and more) that SNOREAD does including:-

Users are strongly encouraged to use USR as the starting point for analysis programs. Note, however, such programs will contain dead code unless it is eliminated using a procedure described in 11.6.3


next up previous contents
Next: SNOlib: The Advanced User Up: Adding Code to SNOMAN Previous: Writing Platform Independent Data   Contents
sno Guest Acct 2009-09-09