Index: /issm/trunk/configs/linux64/linux64.sh.petsc2
===================================================================
--- /issm/trunk/configs/linux64/linux64.sh.petsc2	(revision 3591)
+++ /issm/trunk/configs/linux64/linux64.sh.petsc2	(revision 3592)
@@ -1,3 +1,3 @@
 #!/bin/sh
 
-./configure --prefix=$ISSM_DIR --with-matlab-dir=$MATLAB_DIR --with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install --with-metis-dir=$ISSM_DIR/externalpackages/metis/install --with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install --with-mpi-include=$ISSM_DIR/externalpackages/mpich2/install/include  --with-mpi-lib="-L$ISSM_DIR/externalpackages/mpich2/install/lib/ -lmpich" --with-petsc-arch=$ISSM_ARCH --with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install --with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install/externalpackages/fblaslapack/$ISSM_ARCH --with-plapack-lib="-L$ISSM_DIR/externalpackages/petsc/install/externalpackages/PLAPACKR32-hg/$ISSM_ARCH -lPLAPACK" --with-plapack-include="-I$ISSM_DIR/externalpackages/petsc/install/externalpackages/PLAPACKR32-hg/$ISSM_ARCH/INCLUDE" --with-blacs-dir=$ISSM_DIR/externalpackages/petsc/install/externalpackages/blacs-dev/$ISSM_ARCH --with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install/externalpackages/SCALAPACK/$ISSM_ARCH --with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install/externalpackages/MUMPS_4.6.3/$ISSM_ARCH --with-fortran-lib="-L/usr/lib/gcc/x86_64-redhat-linux/4.1.1/ -lgfortran" --with-graphics-lib=/usr/lib64/libX11.so --with-cxxoptflags="-march=opteron -O2" --with-numthreads=32 --with-petsc-version=2
+./configure --prefix=$ISSM_DIR --with-matlab-dir=$MATLAB_DIR --with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install --with-metis-dir=$ISSM_DIR/externalpackages/metis/install --with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install --with-mpi-include=$ISSM_DIR/externalpackages/mpich2/install/include  --with-mpi-lib="-L$ISSM_DIR/externalpackages/mpich2/install/lib/ -lmpich" --with-petsc-arch=$ISSM_ARCH --with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install --with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install/externalpackages/fblaslapack/$ISSM_ARCH --with-plapack-lib="-L$ISSM_DIR/externalpackages/petsc/install/externalpackages/PLAPACKR32-hg/$ISSM_ARCH -lPLAPACK" --with-plapack-include="-I$ISSM_DIR/externalpackages/petsc/install/externalpackages/PLAPACKR32-hg/$ISSM_ARCH/INCLUDE" --with-blacs-dir=$ISSM_DIR/externalpackages/petsc/install/externalpackages/blacs-dev/$ISSM_ARCH --with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install/externalpackages/SCALAPACK/$ISSM_ARCH --with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install/externalpackages/MUMPS_4.6.3/$ISSM_ARCH --with-fortran-lib="-L/usr/lib/gcc/x86_64-redhat-linux/4.1.1/ -lgfortran" --with-graphics-lib=/usr/lib64/libX11.so --with-cxxoptflags="-march=opteron -O2" --with-numthreads=32 --with-petsc-version=2 
Index: /issm/trunk/etc/environment.csh
===================================================================
--- /issm/trunk/etc/environment.csh	(revision 3591)
+++ /issm/trunk/etc/environment.csh	(revision 3592)
@@ -17,5 +17,6 @@
 #MATLAB
 setenv MATLAB_DIR {$MATLAB_DIR}
-setenv PATH {$PATH}:{$MATLAB_DIR}/bin
+setenv MATLAB_VERSION {$MATLAB_VERSION}
+setenv PATH {$MATLAB_DIR}/bin:{$PATH}
 setenv LD_LIBRARY_PATH {$LD_LIBRARY_PATH}:$MATLAB_DIR/lib
 
Index: /issm/trunk/etc/environment.sh
===================================================================
--- /issm/trunk/etc/environment.sh	(revision 3591)
+++ /issm/trunk/etc/environment.sh	(revision 3592)
@@ -17,5 +17,6 @@
 #MATLAB
 export MATLAB_DIR
-PATH="$PATH:$MATLAB_DIR/bin"
+export MATLAB_VERSION
+PATH="$MATLAB_DIR/bin:$PATH" #take precedence over /usr/local/bin/matlab
 export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$MATLAB_DIR/lib"
 export LD_RUN_PATH="$LD_RUN_PATH:$MATLAB_DIR/lib"
Index: /issm/trunk/externalpackages/matlab/install.sh
===================================================================
--- /issm/trunk/externalpackages/matlab/install.sh	(revision 3591)
+++ /issm/trunk/externalpackages/matlab/install.sh	(revision 3592)
@@ -1,3 +1,6 @@
 #!/bin/bash
+
+#Matlab version: used by Petsc to detect some weird behaviour starting at version 7.6 (all blas and lapack prototypes changed! damn them!)
+MATLAB_VERSION=7.8
 
 #Erase symlink
@@ -5,3 +8,3 @@
 
 #symlink matlab to root matlab
-ln -s /usr/local/pkgs/matlab-7.6/ install
+ln -s /usr/local/pkgs/matlab-$MATLAB_VERSION/ install
Index: /issm/trunk/m4/issm_options.m4
===================================================================
--- /issm/trunk/m4/issm_options.m4	(revision 3591)
+++ /issm/trunk/m4/issm_options.m4	(revision 3592)
@@ -710,5 +710,21 @@
 	AC_SUBST([MULTITHREADINGLIB])
 	AC_MSG_RESULT($NUMTHREADS_VALUE) 
-	dnl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%numthreads build-end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+	dnl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%numthreads build-end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
+	
+	dnl dnl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%64 bit indices%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+	AC_ARG_WITH([64bit-indices],
+			  AS_HELP_STRING([--with-64bit-indices = bool], [use 64 bit integers, default 0, ex: --with-64bit-indices=1]),
+			 [USE_64BIT_INDICES=$withval],[USE_64BIT_INDICES=0]) 
+	AC_MSG_CHECKING(for 64 bit indices )
+
+
+	if test "$USE_64BIT_INDICES" == "1"; then
+	AC_DEFINE([ISSM_USE_64BIT_INDICES],[1],[with 64 bits indices])
+	else
+	AC_DEFINE([ISSM_USE_64BIT_INDICES],[0],[with 64 bits indices])
+	fi
+	AC_MSG_RESULT($USE_64BIT_INDICES)
+	dnl dnl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%64 bit indices end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
 
 ])
Index: /issm/trunk/src/c/include/types.h
===================================================================
--- /issm/trunk/src/c/include/types.h	(revision 3591)
+++ /issm/trunk/src/c/include/types.h	(revision 3592)
@@ -5,4 +5,12 @@
 #ifndef _TYPES_H_
 #define  _TYPES_H_
+
+
+#ifdef HAVE_CONFIG_H
+	#include "config.h"
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
 
 /*Define abstract type for I/O: */
@@ -17,3 +25,16 @@
 enum param_type { STRING, INTEGER, STRINGARRAY, DOUBLE, DOUBLEVEC, DOUBLEMAT, PETSCVEC, PETSCMAT };
 
+/*here are our abstracted types: inspired on petsc */
+#if defined(ISSM_USE_64BIT_INDICES)
+typedef long long IssmInt;
+#define MPIU_INT MPI_LONG_LONG_INT
+#else
+typedef int IssmInt;
+#define MPIU_INT MPI_INT
+#endif  
+
+typedef double IssmDouble;
+typedef bool IssmBool;
+
+
 #endif //ifndef _TYPES_H_
Index: /issm/trunk/src/c/parallel/diagnostic_core.cpp
===================================================================
--- /issm/trunk/src/c/parallel/diagnostic_core.cpp	(revision 3591)
+++ /issm/trunk/src/c/parallel/diagnostic_core.cpp	(revision 3592)
@@ -81,5 +81,7 @@
 	fem_ds->FindParam(&numberofdofspernode_ds,"numberofdofspernode");
 
-	//for qmu analysis, be sure the velocity input we are starting from  is the one in the parameters: */
+	//for qmu analysis, be sure the velocity input we are starting from  is the one in the parameters, otherwise, 
+	//we will create sensitivities just because we are starting from different velocities each time (and if tolerance is 
+	//not set tight enough): */
 	if(qmu_analysis){
 		model->FindParam(&u_g_initial,NULL,NULL,"u_g",DiagnosticAnalysisEnum,HorizAnalysisEnum);
