Index: /issm/trunk-jpl/src/android/ISSM/Makefile.am
===================================================================
--- /issm/trunk-jpl/src/android/ISSM/Makefile.am	(revision 14190)
+++ /issm/trunk-jpl/src/android/ISSM/Makefile.am	(revision 14191)
@@ -5,5 +5,5 @@
 deps = 	 	 
 else 	 	 
-deps = ../../c/libISSMCore.a ./jni/Main.cpp
+deps = ./jni/issmlib/libISSMCore.a ./jni/Main.cpp
 endif
 
Index: /issm/trunk-jpl/src/android/ISSM/assets/Map/antarctica.petsc
===================================================================
--- /issm/trunk-jpl/src/android/ISSM/assets/Map/antarctica.petsc	(revision 14190)
+++ /issm/trunk-jpl/src/android/ISSM/assets/Map/antarctica.petsc	(revision 14191)
@@ -1,3 +1,3 @@
-%Petsc options file: android.petsc written from Matlab solver array
+%Petsc options file: SeaRISEgreenland.petsc written from Matlab solver array
 
 +NoneAnalysis
Index: /issm/trunk-jpl/src/android/ISSM/jni/Main.cpp
===================================================================
--- /issm/trunk-jpl/src/android/ISSM/jni/Main.cpp	(revision 14190)
+++ /issm/trunk-jpl/src/android/ISSM/jni/Main.cpp	(revision 14191)
@@ -39,5 +39,5 @@
 		argv[2]=absfile;
 		argv[3]=relfile;
-
+		
 		/*call Model constructor passing in infile as File Descriptor parameter.*/
 		fm  = new FemModel(argc,argv,communicator);
@@ -75,7 +75,12 @@
 		__android_log_print(ANDROID_LOG_INFO, "Native","Solving ");
 
+		/*retrieve buffer: */
 		jdouble *dBuf = (jdouble *)env->GetDirectBufferAddress(buf);
 
-		/*pass bBuff to fem model to allocate data. In the future: fm -> Solve(dBuf, alpha)*/
+		/*reset basal friction to what it was before: */
+		__android_log_print(ANDROID_LOG_INFO, "Native","alpha %g ",alpha);
+		InputDuplicatex(fm->elements,fm->nodes,fm->vertices,fm->loads,fm->materials,fm->parameters,AndroidFrictionCoefficientEnum,FrictionCoefficientEnum);
+
+		/*solve: */
 		fm -> Solve();
 
Index: /issm/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h	(revision 14190)
+++ /issm/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h	(revision 14191)
@@ -380,4 +380,5 @@
 	QmuSurfaceEnum,
 	QmuMeltingEnum,
+	AndroidFrictionCoefficientEnum,
 	ResetPenaltiesEnum,
 	SegmentOnIceShelfEnum,
Index: /issm/trunk-jpl/src/c/Makefile.am
===================================================================
--- /issm/trunk-jpl/src/c/Makefile.am	(revision 14190)
+++ /issm/trunk-jpl/src/c/Makefile.am	(revision 14191)
@@ -500,6 +500,5 @@
 #}}}
 #Android sources  {{{
-android_sources = ./android/fac.h\
-				  ./android/fac.cpp
+android_sources = 
 #}}}
 #3D sources  {{{
Index: /issm/trunk-jpl/src/c/classes/FemModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 14190)
+++ /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 14191)
@@ -182,4 +182,5 @@
 
 	/*create datasets for all analyses*/
+	if(VerboseMProcessor()) _pprintLine_("   Model processor\n");
 	ModelProcessorx(&this->elements,&this->nodes,&this->vertices,&this->materials,&this->constraints,&this->loads,&this->parameters,IOMODEL,rootpath,this->solution_type,nummodels,analyses);
 
Index: /issm/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 14190)
+++ /issm/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 14191)
@@ -371,4 +371,5 @@
 		case QmuSurfaceEnum : return "QmuSurface";
 		case QmuMeltingEnum : return "QmuMelting";
+		case AndroidFrictionCoefficientEnum : return "AndroidFrictionCoefficient";
 		case ResetPenaltiesEnum : return "ResetPenalties";
 		case SegmentOnIceShelfEnum : return "SegmentOnIceShelf";
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp	(revision 14190)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp	(revision 14191)
@@ -2,4 +2,9 @@
  * UpdateElementsDiagnosticHoriz:
  */
+#ifdef HAVE_CONFIG_H
+	#include <config.h>
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
 
 #include "../../../Container/Container.h"
@@ -85,4 +90,8 @@
 	elements->InputDuplicate(VxEnum,InversionVxObsEnum);
 	if(dakota_analysis)elements->InputDuplicate(VxEnum,QmuVxEnum);
+	
+	#ifdef _HAVE_ANDROID_
+	elements->InputDuplicate(FrictionCoefficientEnum,AndroidFrictionCoefficientEnum);
+	#endif
 
 	elements->InputDuplicate(VyEnum,VyPicardEnum);
Index: /issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 14190)
+++ /issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 14191)
@@ -378,4 +378,5 @@
 	      else if (strcmp(name,"QmuSurface")==0) return QmuSurfaceEnum;
 	      else if (strcmp(name,"QmuMelting")==0) return QmuMeltingEnum;
+	      else if (strcmp(name,"AndroidFrictionCoefficient")==0) return AndroidFrictionCoefficientEnum;
 	      else if (strcmp(name,"ResetPenalties")==0) return ResetPenaltiesEnum;
 	      else if (strcmp(name,"SegmentOnIceShelf")==0) return SegmentOnIceShelfEnum;
@@ -383,9 +384,9 @@
 	      else if (strcmp(name,"SurfaceArea")==0) return SurfaceAreaEnum;
 	      else if (strcmp(name,"SurfaceAverageVelMisfit")==0) return SurfaceAverageVelMisfitEnum;
-	      else if (strcmp(name,"SurfaceLogVelMisfit")==0) return SurfaceLogVelMisfitEnum;
          else stage=4;
    }
    if(stage==4){
-	      if (strcmp(name,"SurfaceLogVxVyMisfit")==0) return SurfaceLogVxVyMisfitEnum;
+	      if (strcmp(name,"SurfaceLogVelMisfit")==0) return SurfaceLogVelMisfitEnum;
+	      else if (strcmp(name,"SurfaceLogVxVyMisfit")==0) return SurfaceLogVxVyMisfitEnum;
 	      else if (strcmp(name,"SurfaceRelVelMisfit")==0) return SurfaceRelVelMisfitEnum;
 	      else if (strcmp(name,"SurfaceSlopeX")==0) return SurfaceSlopeXEnum;
@@ -506,9 +507,9 @@
 	      else if (strcmp(name,"Scaled")==0) return ScaledEnum;
 	      else if (strcmp(name,"Separate")==0) return SeparateEnum;
-	      else if (strcmp(name,"Sset")==0) return SsetEnum;
          else stage=5;
    }
    if(stage==5){
-	      if (strcmp(name,"Verbose")==0) return VerboseEnum;
+	      if (strcmp(name,"Sset")==0) return SsetEnum;
+	      else if (strcmp(name,"Verbose")==0) return VerboseEnum;
 	      else if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum;
 	      else if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum;
Index: /issm/trunk-jpl/src/m/enum/AndroidFrictionCoefficientEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/AndroidFrictionCoefficientEnum.m	(revision 14191)
+++ /issm/trunk-jpl/src/m/enum/AndroidFrictionCoefficientEnum.m	(revision 14191)
@@ -0,0 +1,11 @@
+function macro=AndroidFrictionCoefficientEnum()
+%ANDROIDFRICTIONCOEFFICIENTENUM - Enum of AndroidFrictionCoefficient
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=AndroidFrictionCoefficientEnum()
+
+macro=StringToEnum('AndroidFrictionCoefficient');
Index: /issm/trunk-jpl/src/m/enum/EnumDefinitions.py
===================================================================
--- /issm/trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 14190)
+++ /issm/trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 14191)
@@ -3549,4 +3549,14 @@
 	return StringToEnum('QmuMelting')[0]
 
+def AndroidFrictionCoefficientEnum():
+	"""
+	ANDROIDFRICTIONCOEFFICIENTENUM - Enum of AndroidFrictionCoefficient
+
+	   Usage:
+	      macro=AndroidFrictionCoefficientEnum()
+	"""
+
+	return StringToEnum('AndroidFrictionCoefficient')[0]
+
 def ResetPenaltiesEnum():
 	"""
@@ -4967,4 +4977,4 @@
 	"""
 
-	return 495
-
+	return 496
+
Index: /issm/trunk-jpl/src/m/enum/MaximumNumberOfEnums.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/MaximumNumberOfEnums.m	(revision 14190)
+++ /issm/trunk-jpl/src/m/enum/MaximumNumberOfEnums.m	(revision 14191)
@@ -9,3 +9,3 @@
 %      macro=MaximumNumberOfEnums()
 
-macro=495;
+macro=496;
