General:

The Fortran90-specific routines such as VecGetArrayF90()
now work with the IBM Fortran compiler, the SGI Fortran 90 compiler,
and the Cray T3E Fortran compiler.

The third argument for the Fortran versions of the routines
VecGetArray()/VecRestoreArray(),ISGetIndices()/ISRestoreIndices(),
MatGetArray()/MatRestoreArray() and
DAGetGlobalIndices() has been changed from
integer to PetscOffset. See
src/snes/examples/tutorials/ex5f.F for example usage.

Changed the location of the manual pages from docs/www/www.html and
docs/www to docs/manualpages/manualpages.html and
docs/manualpages.

The location of the mpiuni include files (used in the base.site file
when not compiling with an MPI) has moved from
src/mpiuni to src/sys/src/mpiuni

Added the option -log_summary_exclude <vec,mat,sles,snes> to
limit the information printed in the summary table

Added the option -log_info_exclude <vec,mat,sles,snes>

Changed the calling sequences of PetscGetTime(),
PetscGetCPUTime(), PetscGetFlops() to return error codes
like all other PETSc functions.

Changed the internal structure of the PETSc objects. This will not
effect most users but makes PETSc more extensible for the
future.

Removed the PETSc object child support and replaced it with

PetscObjectCompose(PetscObject,char *name,PetscObject);

PetscObjectQuery(PetscObject,char *name,PetscObject *);

PetscObjectComposeFunction(PetscObject,char *name, void *);

PetscObjectQueryFunction(PetscObject,char *name,void **);

These allow the user to attach objects and functions to any PETSc object.

Added a feeble example that demonstrates how to manage partitioning
a grid in parallel in src/mat/examples/tutorials/ex2.c

The build command 'make all' in ${PETSC_DIR} will build the PETSc
libraries, including the fortran interface.

AO (Application Orderings):

TS (Timestepping Solvers):

The calling sequence of TSSetType() has changed; see the manual page.

TSType is now a string, rather than enum type

SNES (Nonlinear Solvers):

The calling sequence of SNESSetType() has changed; see the manual page.

SNESType is now a string, rather than enum type

SLES (Linear Solvers):

See PC and KSP

KSP (Krylov Subspace Methods):

The calling sequence of KSPSetType() has changed; see the manual page.

KSPType is now a string, rather than enum type.

PC (Preconditioners):

Added two new PC classes, PCSLES and
PCCOMPOSITE that allow use of any
SLES object as a preconditioner and enable combining
several preconditioners.

The calling sequence of PCSetType() has changed; see the manual page.

PCType is now a string, rather than enum type.

MAT (Matrices):

Added support for partitioning using the ParMETIS parallel
partitioning package, see the manual page for
PartitioningCreate()

Added MatGetColumnVector()

Added argument column size to MatGetSubMatrix()

Changed the memory allocation algorithm in
MatLUFactorSymbolic() and
MatILUFactorSymbolic() based on a suggestion by David
Hysom of ODU.

The third argument for the Fortran version of the routines
MatGetArray()/MatRestoreArray() has been changed from
integer to PetscOffset.

DA (Distributed Arrays):

Changed DAGetDistributedVector() and
DAGetLocalVector() to
DACreateGlobalVector() and
DACreateLocalVector(). You should destroy these
vectors with a usual call to VecDestroy().

The third argument for the Fortran version of the routine
DAGetGlobalIndices() has been changed from
integer to PetscOffset.

The third argument for the Fortran versions of the routines
VecGetArray()/VecRestoreArray(), has been changed from
integer to PetscOffset. See
src/snes/examples/tutorials/ex5f.F for example usage.

VecGetArray(), VecRestoreArray() now work from Fortran on
all machines, finally after 3 long years!

Changed the calling sequence of
VecCreate(), now takes both local and global size,
see the manual page.

IS (Index Sets):

The third argument for the Fortran versions of the routines
ISGetIndices()/ISRestoreIndices() has been changed from
integer to PetscOffset.

Draw (Graphics):

Viewers:

System:

Error Handling:

Event Logging:

Fortran Interface:

PETSC_NULL has been replaced with
PETSC_NULL_INTEGER,
PETSC_NULL_SCALAR,
PETSC_NULL_DOUBLE or
PETSC_NULL_CHARACTER depending on the context for
usage. If the function expects an integer, a scalar (double or
complex depending if you compile with BOPT=*_complex), a double
precision array, or a string.

The Fortran include files are now located in the
directory "include/finclude/*.", rather than
"include/FINCLUDE/*.h". The include files that used to be
in "include/finclude/*.h" (not recommended) are now in
"include/foldinclude/*.h"

If you have stored PETSc objects in Fortran integer
arrays, such as user(3) = vec you have
to declare those arrays to be of type
PetscFortranAddr instead of as integer. Note that
PetscFortranAddr is simply integer on 32 bit
machines and integer*8 on 64 bit machines.

The Fortran90-specific routines such as
VecGetArrayF90() now work with the IBM Fortran
compiler, the SGI Fortran 90 compiler, and the Cray T3E Fortran
compiler.

PETSc objects can now be passed between C and Fortran directly. You do
not have to use the commands
PetscCObjectToFortranObject() and
PetscFortranObjectToCObject() to translate the objects
between languages.

Changed Fortran object argument from type int to type PetscFortranAddr
in the routines PetscCObjectToFortranObject() and
PetscFortranObjectToCObject().

Added the routine PetscInitializeFortran() to assist
in mixed-language use of PETSc. See the manual page for details.