ALBERTA:  an Adaptive multi Level finite element toolbox using 
          Bisectioning refinement and Error control by Residual
          Techniques for scientific Applications.

We have tried to minimize the number of (backward) incompatibilities
when improving ALBERT(A). Nevertheless, some incompatibilities
occured, but it is easy to adapt sources from ALBERT-1.0 to ALBERTA-1.2.

Most important changes when upgrading from ALBERT-1.0 to ALBERTA-1.2:

- all strings "albert" have been changed into "alberta":
  * albert.h --> alberta.h
  * albert_util.h --> alberta_util.h
  * ALBERT_ALLOC --> ALBERTA_ALLOC
  etc. 

  for a global change of albert into alberta (and ALBERT into ALBERTA)
  use the shell script albert2alberta which can be downloaded from

  http://www.mathematik.uni-freiburg.de/ALBERTA

- ALBERTA-1.2 now is also available in 1d

- the third argument of oem_solve_[sd], a pointer to a DOF_SCHAR_VEC
  with boundary types of DOFs, has been removed:

  oem_solve_s(matrix, f_h, nil, u_h, solver, tol, icon, restart, miter, info);
  -->
  oem_solve_s(matrix, f_h, u_h, solver, tol, icon, restart, miter, info);

  (taken from DEMO/src/Common/ellipt.c)

- prototypes of traverse_{first,next,neighbour}(), have changed. 
  Arguments and values EL_INFO * have been changed to const EL_INFO *.

  A variable declaration

  EL_INFO *el_info;

  for an el_info pointer used by the non-recursive traversal routines
  has to be changed to 

  const EL_INFO *el_info;

- The definition of the PRECON data structure has been redesigned.
  This does not affect the model problems but has to be adjusted when
  a new preconditioner has been implemented in ALBERT-1.0. Please
  refer to the book "ALBERTA: An Adaptive Finite Element Toolbox"
  or to the header file "alberta.h"

- names of members in the MULTI_GRID_INFO data structure changed:
  * restrict --> mg_restrict (will become a keyword in C)
  * prolongate --> mg_prolongate
  * resid --> mg_resid

- ALBERTA now supports the interface to gltools-2-4. The interface
  to gltools-2-3 is no longer supported

- the name of the macro SET_VAL_DOW has changed into SET_DOW
  SET_VAL_DOW(a, x)  -->  SET_DOW(a, x)

- the prototype of the function get_face_normal() changed from

   REAL get_face_normal(const REAL_D coord[N_VERTICES], int i, REAL *normal);
   -->
   REAL get_face_normal(const REAL_D *el_info, int i, REAL *normal); 

  and now returns the *OUTER* unit normal (no longer the inner one).

- in the definition of graph_line() the order of arguments is changed
  (optional values last...)

  void graph_line(GRAPH_WINDOW, const GRAPH_RGBCOLOR, float, const REAL [2],
	          const REAL [2]);
  -->
  void graph_line(GRAPH_WINDOW, const REAL [2], const REAL [2], 
		  const GRAPH_RGBCOLOR, float);

- new function 
  void graph_point(GRAPH_WINDOW, const REAL [2], const GRAPH_RGBCOLOR, float);
  is now available
