Index: trunk/SophyaLib/BaseTools/dvlist.cc
===================================================================
--- trunk/SophyaLib/BaseTools/dvlist.cc	(revision 895)
+++ trunk/SophyaLib/BaseTools/dvlist.cc	(revision 913)
@@ -43,5 +43,14 @@
 
 /*!
+   \class SOPHYA::MuTyV
+   \ingroup SysTools
+   Simple utility class which can be used to hold values of type
+   string, integer (\b int_8) or float (\b r_8) and providing
+   easy conversion methods between these types. 
+*/
+
+/*!
    \class SOPHYA::DVList
+   \ingroup SysTools
    This class can be used to construct list of values associated with names.
    Variables names should not contain space characters and is limited to 64
Index: trunk/SophyaLib/BaseTools/dvlist.h
===================================================================
--- trunk/SophyaLib/BaseTools/dvlist.h	(revision 895)
+++ trunk/SophyaLib/BaseTools/dvlist.h	(revision 913)
@@ -20,4 +20,5 @@
 
 // Classe utilitaire pour manipuler des variables typees 
+//! A simple class for holding string, integer and float type values.
 class MuTyV {
 public:
Index: trunk/SophyaLib/BaseTools/machdefs.h
===================================================================
--- trunk/SophyaLib/BaseTools/machdefs.h	(revision 895)
+++ trunk/SophyaLib/BaseTools/machdefs.h	(revision 913)
@@ -342,4 +342,9 @@
 /* ********************************************************/
 
+/* ---- Activation des flags de debug/bound checking  ----- */
+#ifdef SOPHYA_DEBUG
+#define SO_BOUNDCHECKING
+#endif
+
 /* Compatibilite, avant de migrer tout le code en "PLANCK" */
 
Index: trunk/SophyaLib/BaseTools/pexceptions.h
===================================================================
--- trunk/SophyaLib/BaseTools/pexceptions.h	(revision 895)
+++ trunk/SophyaLib/BaseTools/pexceptions.h	(revision 913)
@@ -17,6 +17,8 @@
   string BuildLongExceptionMessage(const char * s, const char *file, int line);
 
-//! Base exception class in Sophya.
-/*! Ancestor for PError and PException
+/*! \ingroup SysTools
+    \brief Base exception class in Sophya
+
+    Ancestor for PError and PException
     It has a message, and an id to give more
     information on the exception.
@@ -41,5 +43,6 @@
 //      PException
   
-//! A PError is a serious logic error. Usually not caught...
+/*! \ingroup SysTools 
+    \brief A PError is a serious logic error. Usually not caught... */
   class PError : public PThrowable {
   public:
@@ -47,5 +50,6 @@
   };
   
-//! A PException is not as serious... Can be caught.
+/*! \ingroup SysTools 
+    \brief A PException is not as serious... Can be caught. */
   class PException : public PThrowable {
   public:
@@ -60,5 +64,6 @@
 //     AssertionFailedError
 
-//! Memory allocation failure
+/*! \ingroup SysTools 
+    \brief Memory allocation failure */
   class AllocationError : public PError {
   public:
@@ -66,5 +71,6 @@
   };
   
-//! Null pointer error
+/*! \ingroup SysTools 
+    \brief Null pointer error */
   class NullPtrError : public PError {
   public:
@@ -73,5 +79,6 @@
   
   
-//! Calling a forbidden method, trying a forbidden operation
+/*! \ingroup SysTools 
+    \brief Calling a forbidden method, trying a forbidden operation */
   class ForbiddenError : public PError {
   public:
@@ -80,5 +87,6 @@
 
   
-//! ASSERT macro failure. The message is the assertion...
+/*! \ingroup SysTools 
+    \brief ASSERT macro failure. The message is the assertion... */
   class AssertionFailedError : public PError {
   public:
@@ -101,5 +109,6 @@
   //   CaughtSignalExc
   
-  //! Generic IO Exception.
+/*! \ingroup SysTools 
+    \brief Generic IO Exception */
   class IOExc : public PException {
   public:
@@ -107,5 +116,6 @@
   };
 
-  //! Bad file format.
+/*! \ingroup SysTools 
+    \brief Bad file format */
   class FileFormatExc : public IOExc {
   public:
@@ -113,5 +123,6 @@
   };
 
-  //! Size mismatch between objects.
+/*! \ingroup SysTools 
+    \brief Size mismatch between objects */
   class SzMismatchError : public PException {
   public:
@@ -119,5 +130,6 @@
   };
   
-  //! Out of bounds for array, matrix, etc.
+/*! \ingroup SysTools 
+    \brief Out of bounds for array, matrix, etc */
   class RangeCheckError : public PException {
   public:
@@ -125,5 +137,6 @@
   };
   
-  //! Invalid parameter to method/constructor...
+/*! \ingroup SysTools 
+    \brief Invalid parameter to method/constructor... */
   class ParmError : public PException {
   public:
@@ -131,5 +144,6 @@
   };
 
-  //! Calling a non available / not implemented method
+/*! \ingroup SysTools 
+    \brief Calling a non available / not implemented method */
   class NotAvailableOperation : public PException {
   public:
@@ -137,5 +151,6 @@
   };
 
-  //! Bad data type -> keep ?
+/*! \ingroup SysTools 
+    \brief Bad data type -> keep ? */
   class TypeMismatchExc : public PException {
   public:
@@ -143,5 +158,6 @@
   };
 
-  //! Math operation exception
+/*! \ingroup SysTools 
+    \brief Math operation exception */
   class MathExc : public PException {
   public:
@@ -149,5 +165,6 @@
   };
   
-  //! Singular matrix 
+/*! \ingroup SysTools 
+    \brief Singular matrix  */
   class SingMatrixExc : public MathExc {
   public:
@@ -155,5 +172,6 @@
   };
 
-  //! Duplicate identifier during registration
+/*! \ingroup SysTools 
+    \brief Duplicate identifier during registration */
   class DuplicateIdExc : public PException {
   public:
@@ -161,5 +179,6 @@
   };
   
-  //! Not found identifier 
+/*! \ingroup SysTools 
+    \brief Not found identifier  */
   class NotFoundExc : public PException {
   public:
@@ -167,5 +186,6 @@
   };
   
-  //! Generated exception when processing a signal
+/*! \ingroup SysTools 
+    \brief Generated exception when processing a signal */
   class CaughtSignalExc : public PException {
   public:
Index: trunk/SophyaLib/BaseTools/sophyainit.cc
===================================================================
--- trunk/SophyaLib/BaseTools/sophyainit.cc	(revision 895)
+++ trunk/SophyaLib/BaseTools/sophyainit.cc	(revision 913)
@@ -18,4 +18,28 @@
 // ---  Classe d'initialisation de SOPHYA, (PPersistMgr en particulier)
 int SophyaInitiator::FgInit = 0;
+
+/*!
+   \namespace SOPHYA
+   \brief This is the namespace for the whole Sophya package
+*/
+
+/*!
+   \defgroup SysTools SysTools module
+   This module contains classes and functions which define the 
+   general framework for \b Sophya package such as the simple
+   persistence, serialisation mechanism through \b PPersist,
+   \b POutPersist, \b PInPersist classes. It contains also
+   few utility classes such as the \b NDataBlock<T>, (template 
+   numerical arrays with reference counting and sharing)
+   \b DataCards and \b PDynLinker (Dynamic link handler) classes.  
+  
+*/
+
+/*!
+  \class SOPHYA::SophyaInitiator
+  \ingroup SysTools
+  Each Sophya module may contain an initialiser class which should
+  be a sub-class of SophyaInitiator.  
+*/
 
 SophyaInitiator::SophyaInitiator()
Index: trunk/SophyaLib/BaseTools/sophyainit.h
===================================================================
--- trunk/SophyaLib/BaseTools/sophyainit.h	(revision 895)
+++ trunk/SophyaLib/BaseTools/sophyainit.h	(revision 913)
@@ -12,6 +12,7 @@
 double SophyaVersion(void); /* Version + (Revision/1000) */
 
-// Classe d''initialisation pour les modules de PEIDA++
+// Classe d''initialisation pour les modules SOPHYA
 
+//! Initializer class for sophya modules
 class SophyaInitiator {
 private:
Index: trunk/SophyaLib/BaseTools/srandgen.c
===================================================================
--- trunk/SophyaLib/BaseTools/srandgen.c	(revision 895)
+++ trunk/SophyaLib/BaseTools/srandgen.c	(revision 913)
@@ -35,4 +35,24 @@
 */
 
+/*! \defgroup RandGen
+    Random number generators */
+
+/*! \ingroup  SysTools
+    \fn frand01
+    Returns a random number (float) with flat distribution between 0 ... 1
+*/
+/*! \ingroup  SysTools
+    \fn drand01
+    Returns a random number (double) with flat distribution between 0 ... 1
+*/
+/*! \ingroup  SysTools
+    \fn frandpm1() 
+    Returns a random number (float) with flat distribution between -1 ... 1
+*/
+/*! \ingroup  SysTools
+    \fn drandpm1() 
+    Returns a random number (double) with flat distribution between -1 ... 1  
+*/
+
 /*=========================================================================*/
 /*
@@ -43,4 +63,9 @@
 --
 */
+
+/*! \ingroup  SysTools
+    Fast initialisation of the random number generator \c (drand48) 
+    using a \c long type value (cf \c srand48 )
+*/
 void Ini_Ranf_Quick(long seed_val, int lp)
 {
@@ -57,4 +82,8 @@
 	48 bits (cf seed48).
 --
+*/
+/*! \ingroup  SysTools
+    complete initialisation of the random number generator \c (drand48) 
+    using a \c using 48 bits (cf \c seed48 )
 */
 void Ini_Ranf(unsigned short seed_16v[3], int lp)
@@ -73,4 +102,8 @@
 	de 48 bits (cf seed48).
 --
+*/
+/*! \ingroup  SysTools
+    Returns the status (48 bits) of the random number generator \c (drand48) 
+    (cf \c seed48 )
 */
 void Get_Ranf(unsigned short seed_16v[3], int lp)
@@ -102,4 +135,7 @@
 --
 */
+/*! \ingroup  SysTools
+    Automatic initialisation using the present time
+*/
 void Auto_Ini_Ranf(int lp)
 {
@@ -151,4 +187,7 @@
 --
 */
+/*! \ingroup  SysTools
+    Normal (Gaussian) random number generator (Mean=0., Sigma=1.)
+*/
 float NorRand(void)
 {
@@ -190,4 +229,8 @@
 	Generation aleatoire gaussienne de centre "am" et de sigma "s".
 --
+*/
+/*! \ingroup  SysTools
+    Normal (Gaussian) random number generator with the specified mean
+    (\c am ) and sigma (\c s )
 */
 double GauRnd(double am, double s)
