Index: /issm/trunk-jpl/externalpackages/petsc/install-3.1-linux64-berg.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/petsc/install-3.1-linux64-berg.sh	(revision 14735)
+++ /issm/trunk-jpl/externalpackages/petsc/install-3.1-linux64-berg.sh	(revision 14735)
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+#Get number of cpus on current platform
+NUMCPUS=$1;
+
+#version of petsc?
+#version='2.3.2-p3';
+version='3.1-p7'
+#version='3.2-p3'
+
+#Some cleanup
+rm -rf install petsc-$version src
+
+#Create src and install directories
+mkdir install src
+
+#Download from ISSM server
+$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-3.1-p7.tar.gz' 'petsc-3.1-p7.tar.gz'
+
+#Untar 
+tar -zxvf  petsc-$version.tar.gz
+
+#Move petsc to install directory or src depending on the version
+if [[ $version != "2.3.2-p3" ]]
+then	
+	mv petsc-$version/* src/
+	rm -rf petsc-$version
+	cd src
+else
+	mv petsc-$version/* install/
+	rm -rf petsc-$version
+	cd install
+fi
+
+#configure
+../configure.sh
+
+#Compile petsc and install it
+if [ -z $NUMCPUS ];
+then
+	make
+else
+	make -j $NUMCPUS
+fi
+make install
Index: /issm/trunk-jpl/externalpackages/vim/install.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/vim/install.sh	(revision 14734)
+++ /issm/trunk-jpl/externalpackages/vim/install.sh	(revision 14735)
@@ -23,6 +23,7 @@
 cd src/src 
 ./configure \
-	--prefix "$ISSM_DIR/externalpackages/vim/install" \
-	--with-gcc "/usr/bin/gcc"
+	--prefix="$ISSM_DIR/externalpackages/vim/install" \
+	--with-gcc="/usr/bin/gcc" \
+	--with-tlib="/lib/"
 
 #Compile vim
Index: /issm/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h	(revision 14734)
+++ /issm/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h	(revision 14735)
@@ -211,4 +211,6 @@
 	SurfaceforcingsMassBalanceEnum,
 	SurfaceforcingsIspddEnum,
+	SurfaceforcingsDesfacEnum,
+	SurfaceforcingsS0pEnum,
 	SurfaceforcingsIssmbgradientsEnum,
 	SurfaceforcingsMonthlytemperaturesEnum,
Index: /issm/trunk-jpl/src/c/classes/objects/Elements/Penta.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Elements/Penta.cpp	(revision 14734)
+++ /issm/trunk-jpl/src/c/classes/objects/Elements/Penta.cpp	(revision 14735)
@@ -2497,5 +2497,5 @@
    IssmDouble monthlytemperatures[NUMVERTICES][12],monthlyprec[NUMVERTICES][12];
    IssmDouble h[NUMVERTICES],s[NUMVERTICES]; // ,b
-   IssmDouble rho_water,rho_ice;
+   IssmDouble rho_water,rho_ice,desfac,s0p;
 
    /*Recover monthly temperatures and precipitation*/
@@ -2524,7 +2524,13 @@
   rho_water=matpar->GetRhoFreshwater();
 
+  /*Get desertification effect parameters*/
+  desfac=matpar->GetDesFac();
+  s0p=matpar->GetS0p();
+
    /*measure the surface mass balance*/
    for (int iv = 0; iv < NUMVERTICES; iv++){
-     agd[iv]=PddSurfaceMassBlance(&monthlytemperatures[iv][0], &monthlyprec[iv][0], pdds, pds, signorm, yts, h[iv], s[iv], rho_ice, rho_water);
+     agd[iv]=PddSurfaceMassBlance(&monthlytemperatures[iv][0], &monthlyprec[iv][0], pdds, pds, 
+				  signorm, yts, h[iv], s[iv], rho_ice, rho_water, desfac, s0p);
+     //printf("mass balance %f \n",agd[iv]);
    }
 
@@ -2656,5 +2662,4 @@
 /*FUNCTION Penta::RequestedOutput{{{*/
 void Penta::RequestedOutput(int output_enum,int step,IssmDouble time){
-
 	if(IsInput(output_enum)){
 		/*just transfer this input to results, and we are done: */
@@ -3473,4 +3478,5 @@
 	/*Now get the average SMB over the element*/
 	Input* smb_input = inputs->GetInput(SurfaceforcingsMassBalanceEnum); _assert_(smb_input);
+
 	smb_input->GetInputAverage(&smb);
 	Total_Smb=rho_ice*base*smb;// smb on element in kg s-1
Index: /issm/trunk-jpl/src/c/classes/objects/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Elements/Tria.cpp	(revision 14734)
+++ /issm/trunk-jpl/src/c/classes/objects/Elements/Tria.cpp	(revision 14735)
@@ -2364,5 +2364,5 @@
    IssmDouble monthlytemperatures[NUMVERTICES][12],monthlyprec[NUMVERTICES][12];
    IssmDouble h[NUMVERTICES],s[NUMVERTICES];
-   IssmDouble rho_water,rho_ice;
+   IssmDouble rho_water,rho_ice,desfac,s0p;
 
    /*Recover monthly temperatures and precipitation*/
@@ -2390,8 +2390,12 @@
   rho_ice=matpar->GetRhoIce();
   rho_water=matpar->GetRhoFreshwater();
+  
+  /*Get desertification effect parameters*/
+  desfac=matpar->GetDesFac();
+  s0p=matpar->GetS0p();
 
    /*measure the surface mass balance*/
    for (int iv = 0; iv<NUMVERTICES; iv++){
-     agd[iv]=PddSurfaceMassBlance(&monthlytemperatures[iv][0], &monthlyprec[iv][0], pdds, pds, signorm, yts, h[iv], s[iv], rho_ice, rho_water);
+     agd[iv]=PddSurfaceMassBlance(&monthlytemperatures[iv][0], &monthlyprec[iv][0], pdds, pds, signorm, yts, h[iv], s[iv], rho_ice, rho_water, desfac, s0p);
    }
 
Index: /issm/trunk-jpl/src/c/classes/objects/Materials/Matpar.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Materials/Matpar.cpp	(revision 14734)
+++ /issm/trunk-jpl/src/c/classes/objects/Materials/Matpar.cpp	(revision 14735)
@@ -42,4 +42,6 @@
 	iomodel->Constant(&this->thermal_exchange_velocity,MaterialsThermalExchangeVelocityEnum);
 	iomodel->Constant(&this->g,ConstantsGEnum);
+	iomodel->Constant(&this->desfac,SurfaceforcingsDesfacEnum);
+	iomodel->Constant(&this->s0p,SurfaceforcingsS0pEnum);
 
 	if(hydrology_model==HydrologyshreveEnum){
@@ -99,4 +101,6 @@
 	_printLine_("   thermal_exchange_velocity: " << thermal_exchange_velocity);
 	_printLine_("   g: " << g);
+	_printLine_("   desfac: " << desfac);
+	_printLine_("   s0p: " << s0p);
 	return;
 }
@@ -203,4 +207,10 @@
 			this->g=constant;
 			break;
+  	        case  SurfaceforcingsDesfacEnum:
+			this->desfac=constant;
+			break;
+		case SurfaceforcingsS0pEnum:
+			this->s0p=constant;
+			break;
 		default: 
 			break;
@@ -287,4 +297,14 @@
 IssmDouble Matpar::GetMuWater(){
 	return mu_water;
+}
+/*}}}*/
+/*FUNCTION Matpar::GetDesFac {{{*/
+IssmDouble Matpar::GetDesFac(){
+	return desfac;
+}
+/*}}}*/
+/*FUNCTION Matpar::GetS0p {{{*/
+IssmDouble Matpar::GetS0p(){
+	return s0p;
 }
 /*}}}*/
Index: /issm/trunk-jpl/src/c/classes/objects/Materials/Matpar.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Materials/Matpar.h	(revision 14734)
+++ /issm/trunk-jpl/src/c/classes/objects/Materials/Matpar.h	(revision 14735)
@@ -29,5 +29,7 @@
 		IssmDouble  thermal_exchange_velocity;
 		IssmDouble  g;
-
+		IssmDouble  desfac;
+		IssmDouble  s0p;
+		
 		/*hydrology Shreve: */	 
 		IssmDouble  hydro_kn;			 
@@ -127,4 +129,6 @@
 		void   EnthalpyToThermal(IssmDouble* ptemperature,IssmDouble* pwaterfraction,IssmDouble enthalpy,IssmDouble pressure);
 		void   ThermalToEnthalpy(IssmDouble* penthalpy,IssmDouble temperature,IssmDouble waterfraction,IssmDouble pressure);
+		IssmDouble GetDesFac();
+		IssmDouble GetS0p(); 
 		void   UnitConversion(void);
 		/*}}}*/
Index: /issm/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 14734)
+++ /issm/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 14735)
@@ -216,4 +216,6 @@
 		case SurfaceforcingsMassBalanceEnum : return "SurfaceforcingsMassBalance";
 		case SurfaceforcingsIspddEnum : return "SurfaceforcingsIspdd";
+		case SurfaceforcingsDesfacEnum : return "SurfaceforcingsDesfac";
+		case SurfaceforcingsS0pEnum : return "SurfaceforcingsS0p";
 		case SurfaceforcingsIssmbgradientsEnum : return "SurfaceforcingsIssmbgradients";
 		case SurfaceforcingsMonthlytemperaturesEnum : return "SurfaceforcingsMonthlytemperatures";
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 14734)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 14735)
@@ -103,4 +103,6 @@
 	parameters->AddObject(iomodel->CopyConstantObject(InversionTaoEnum));
 	parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIspddEnum));
+	parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsDesfacEnum));
+	parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsS0pEnum));
 	parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIsdelta18oEnum));
 	parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIssmbgradientsEnum));
Index: /issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 14734)
+++ /issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 14735)
@@ -220,4 +220,6 @@
 	      else if (strcmp(name,"SurfaceforcingsMassBalance")==0) return SurfaceforcingsMassBalanceEnum;
 	      else if (strcmp(name,"SurfaceforcingsIspdd")==0) return SurfaceforcingsIspddEnum;
+	      else if (strcmp(name,"SurfaceforcingsDesfac")==0) return SurfaceforcingsDesfacEnum;
+	      else if (strcmp(name,"SurfaceforcingsS0p")==0) return SurfaceforcingsS0pEnum;
 	      else if (strcmp(name,"SurfaceforcingsIssmbgradients")==0) return SurfaceforcingsIssmbgradientsEnum;
 	      else if (strcmp(name,"SurfaceforcingsMonthlytemperatures")==0) return SurfaceforcingsMonthlytemperaturesEnum;
@@ -259,10 +261,10 @@
 	      else if (strcmp(name,"BalancethicknessSolution")==0) return BalancethicknessSolutionEnum;
 	      else if (strcmp(name,"WeakBalancethicknessAnalysis")==0) return WeakBalancethicknessAnalysisEnum;
-	      else if (strcmp(name,"WeakBalancethicknessSolution")==0) return WeakBalancethicknessSolutionEnum;
-	      else if (strcmp(name,"BedSlopeAnalysis")==0) return BedSlopeAnalysisEnum;
          else stage=3;
    }
    if(stage==3){
-	      if (strcmp(name,"BedSlopeSolution")==0) return BedSlopeSolutionEnum;
+	      if (strcmp(name,"WeakBalancethicknessSolution")==0) return WeakBalancethicknessSolutionEnum;
+	      else if (strcmp(name,"BedSlopeAnalysis")==0) return BedSlopeAnalysisEnum;
+	      else if (strcmp(name,"BedSlopeSolution")==0) return BedSlopeSolutionEnum;
 	      else if (strcmp(name,"BedSlopeXAnalysis")==0) return BedSlopeXAnalysisEnum;
 	      else if (strcmp(name,"BedSlopeYAnalysis")==0) return BedSlopeYAnalysisEnum;
@@ -382,10 +384,10 @@
 	      else if (strcmp(name,"Converged")==0) return ConvergedEnum;
 	      else if (strcmp(name,"ExtToIu")==0) return ExtToIuEnum;
-	      else if (strcmp(name,"Fill")==0) return FillEnum;
-	      else if (strcmp(name,"FractionIncrement")==0) return FractionIncrementEnum;
          else stage=4;
    }
    if(stage==4){
-	      if (strcmp(name,"Friction")==0) return FrictionEnum;
+	      if (strcmp(name,"Fill")==0) return FillEnum;
+	      else if (strcmp(name,"FractionIncrement")==0) return FractionIncrementEnum;
+	      else if (strcmp(name,"Friction")==0) return FrictionEnum;
 	      else if (strcmp(name,"GroundinglineMeltingRate")==0) return GroundinglineMeltingRateEnum;
 	      else if (strcmp(name,"Internal")==0) return InternalEnum;
@@ -505,10 +507,10 @@
 	      else if (strcmp(name,"GLlevelset")==0) return GLlevelsetEnum;
 	      else if (strcmp(name,"StokesSolver")==0) return StokesSolverEnum;
-	      else if (strcmp(name,"Adjoint")==0) return AdjointEnum;
-	      else if (strcmp(name,"Colinear")==0) return ColinearEnum;
          else stage=5;
    }
    if(stage==5){
-	      if (strcmp(name,"ControlSteady")==0) return ControlSteadyEnum;
+	      if (strcmp(name,"Adjoint")==0) return AdjointEnum;
+	      else if (strcmp(name,"Colinear")==0) return ColinearEnum;
+	      else if (strcmp(name,"ControlSteady")==0) return ControlSteadyEnum;
 	      else if (strcmp(name,"Fset")==0) return FsetEnum;
 	      else if (strcmp(name,"Gradient1")==0) return Gradient1Enum;
Index: /issm/trunk-jpl/src/c/shared/Elements/PddSurfaceMassBalance.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Elements/PddSurfaceMassBalance.cpp	(revision 14734)
+++ /issm/trunk-jpl/src/c/shared/Elements/PddSurfaceMassBalance.cpp	(revision 14735)
@@ -5,9 +5,8 @@
 #include "./elements.h"
 
-IssmDouble PddSurfaceMassBlance(IssmDouble* monthlytemperatures, IssmDouble* monthlyprec, IssmDouble* pdds, IssmDouble* pds, IssmDouble signorm, IssmDouble yts, IssmDouble h, IssmDouble s, IssmDouble rho_ice, IssmDouble rho_water){
+IssmDouble PddSurfaceMassBlance(IssmDouble* monthlytemperatures, IssmDouble* monthlyprec, IssmDouble* pdds, IssmDouble* pds, IssmDouble signorm, IssmDouble yts, IssmDouble h, IssmDouble s, IssmDouble rho_ice, IssmDouble rho_water, IssmDouble desfac, IssmDouble s0p){ 
 
   // output:
   IssmDouble B;    // surface mass balance, melt+accumulation
-
   int    iqj,imonth;
 
@@ -20,7 +19,7 @@
   IssmDouble sconv; //rhow_rain/rhoi / 12 months
 
-  IssmDouble lapser=6.5/1000., sealev=0.;    // lapse rate. degrees per meter. 7.5 lev's 99 paper, 9 Marshall 99 paper
-  IssmDouble desfac = 0.5;                 // desert elevation factor
-  IssmDouble s0p=0.;         // should be set to elevation from precip source
+  IssmDouble lapser=6.5, sealev=0.;    // lapse rate. degrees per meter. 7.5 lev's 99 paper, 9 Marshall 99 paper
+  // IssmDouble desfac = 0.5;                 // desert elevation factor
+  // IssmDouble s0p=0.;         // should be set to elevation from precip source
   IssmDouble s0t=0.;         // should be set to elevation from temperature source
   IssmDouble st;             // elevation between altitude of the temp record and current altitude
@@ -96,4 +95,5 @@
       // gaussian=T_m, so ndd=-(Tsurf-pdd)
       if (iqj>5 &&  iqj<9){ Tsum=Tsum+tstar;} 
+
       if (tstar >= siglim) {pdd = pdd + tstar*deltm;}
       else if (tstar> -siglim){
@@ -103,6 +103,6 @@
       else{frzndd = frzndd - tstar*deltm; }
   } // end of seasonal loop 
-
   //******************************************************************
+
     saccu = qm;
     prect = qmp;     // total precipitation during 1 year taking into account des. ef.
Index: /issm/trunk-jpl/src/c/shared/Elements/elements.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Elements/elements.h	(revision 14734)
+++ /issm/trunk-jpl/src/c/shared/Elements/elements.h	(revision 14735)
@@ -14,5 +14,6 @@
 IssmDouble Arrhenius(IssmDouble temperature,IssmDouble depth,IssmDouble n);
 IssmDouble PddSurfaceMassBlance(IssmDouble* monthlytemperatures,  IssmDouble* monthlyprec, IssmDouble* pdds, IssmDouble* pds, 
-				IssmDouble signorm, IssmDouble yts, IssmDouble h, IssmDouble s, IssmDouble rho_ice, IssmDouble rho_water);
+				IssmDouble signorm, IssmDouble yts, IssmDouble h, IssmDouble s,
+				IssmDouble rho_ice, IssmDouble rho_water, IssmDouble desfac, IssmDouble s0p);
 void ComputeDelta18oTemperaturePrecipitation(IssmDouble Delta18oSurfacePresent, IssmDouble Delta18oSurfaceLgm, IssmDouble Delta18oSurfaceTime,
 				     IssmDouble Delta18oPresent, IssmDouble Delta18oLgm, IssmDouble Delta18oTime, 
Index: /issm/trunk-jpl/src/c/solutions/transient_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutions/transient_core.cpp	(revision 14734)
+++ /issm/trunk-jpl/src/c/solutions/transient_core.cpp	(revision 14735)
@@ -155,4 +155,5 @@
 				InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,SurfaceforcingsMonthlytemperaturesEnum);
 				InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,SurfaceforcingsPrecipitationEnum);
+			        InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,BasalFrictionEnum);
 			}
 			if(isgroundingline && (groundingline_migration==SubelementMigrationEnum || groundingline_migration==SubelementMigration2Enum)){
Index: /issm/trunk-jpl/src/m/classes/clusters/acenet.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/acenet.m	(revision 14734)
+++ /issm/trunk-jpl/src/m/classes/clusters/acenet.m	(revision 14735)
@@ -18,6 +18,6 @@
 		 time=10;
 		 % codepath='/usr/local/issm-r11321/bin'; % this one is for issm on acenet global
-		 codepath='PATH'; % this one is for issm on my acenet directory
-		 executionpath='/home/klemorza/issm/execution';
+		 codepath='/home/klemorza/issm/trunk-jpl/bin'; % this one is for issm on my acenet directory
+		 executionpath='/home/klemorza/issm/trunk-jpl/execution';
 		 %}}}
 	 end
@@ -66,5 +66,5 @@
 			 fprintf(fid,'#$ -cwd\n');
           fprintf(fid,'#$ -N issm\n');
-          fprintf(fid,'#$ -l h_rt=10:0:0\n');
+          fprintf(fid,'#$ -l h_rt=96:0:0\n');
           fprintf(fid,'#$ -pe ompi* %i\n',cluster.np);
           fprintf(fid,'#$ -j y\n');
Index: /issm/trunk-jpl/src/m/classes/surfaceforcings.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/surfaceforcings.m	(revision 14734)
+++ /issm/trunk-jpl/src/m/classes/surfaceforcings.m	(revision 14735)
@@ -21,4 +21,6 @@
 		temperatures_lgm = NaN;
 		precipitations_presentday = NaN;
+		desfac = 0.5;
+		s0p=0;
 	end
 	methods
@@ -37,5 +39,6 @@
 		  obj.issmbgradients=0;
 		  obj.isdelta18o=0;
-
+		  obj.desfac=0.5;
+		  obj.s0p=0;
 		end % }}}
 		function md = checkconsistency(obj,md,solution,analyses) % {{{
@@ -45,4 +48,6 @@
 				md = checkfield(md,'surfaceforcings.issmbgradients','numel',[1],'values',[0 1]);
 				if(obj.ispdd)
+				  md = checkfield(md,'surfaceforcings.desfac','<=',1);
+				  md = checkfield(md,'surfaceforcings.s0p','>=',0);
 					if(obj.isdelta18o==0)
 						md = checkfield(md,'surfaceforcings.monthlytemperatures','forcing',1,'NaN',1);
@@ -74,8 +79,10 @@
 			fielddisplay(obj,'ispdd','is pdd activated (0 or 1, default is 0)');
 			fielddisplay(obj,'isdelta18o','is temperature and precipitation delta18o parametrisation activated (0 or 1, default is 0)');
-			fielddisplay(obj,'monthlytemperatures','monthly surface temperatures [K], required if pdd is activated and delta18o not activated');
+			fielddisplay(obj,'desfac','desertification elevation factor (between 0 and 1, default is 0.5)');
+			fielddisplay(obj,'s0p','should be set to elevation from precip source (between 0 and a few 1000m (default is 0))');
+			fielddisplay(obj,'monthlytemperatures','monthly surface temperatures [Kelvin], required if pdd is activated and delta18o not activated');
 			fielddisplay(obj,'precipitation','surface precipitation [m/yr water eq]');
-			fielddisplay(obj,'temperatures_presentday','monthly present day surface temperatures [K], required if pdd is activated and delta18o activated');
-			fielddisplay(obj,'temperatures_lgm','monthly LGM surface temperatures [K], required if pdd is activated and delta18o activated');
+			fielddisplay(obj,'temperatures_presentday','monthly present day surface temperatures [Kelvin], required if pdd is activated and delta18o activated');
+			fielddisplay(obj,'temperatures_lgm','monthly LGM surface temperatures [Kelvin], required if pdd is activated and delta18o activated');
 			fielddisplay(obj,'precipitations_presentday','monthly surface precipitation [m/yr water eq], required if pdd is activated and delta18o activated');
 			fielddisplay(obj,'delta18o','delta18o, required if pdd is activated and delta18o activated');
@@ -94,5 +101,7 @@
 			WriteData(fid,'object',obj,'fieldname','isdelta18o','format','Boolean');
 			if obj.ispdd,
-				if obj.isdelta18o
+			        WriteData(fid,'object',obj,'fieldname','desfac','format','Double');
+			        WriteData(fid,'object',obj,'fieldname','s0p','format','Double');
+			        if obj.isdelta18o
 					WriteData(fid,'object',obj,'fieldname','temperatures_presentday','format','DoubleMat','mattype',1);
 					WriteData(fid,'object',obj,'fieldname','temperatures_lgm','format','DoubleMat','mattype',1);
Index: /issm/trunk-jpl/src/m/enum/EnumDefinitions.py
===================================================================
--- /issm/trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 14734)
+++ /issm/trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 14735)
@@ -1999,4 +1999,24 @@
 	return StringToEnum('SurfaceforcingsIspdd')[0]
 
+def SurfaceforcingsDesfacEnum():
+	"""
+	SURFACEFORCINGSDESFACENUM - Enum of SurfaceforcingsDesfac
+
+	   Usage:
+	      macro=SurfaceforcingsDesfacEnum()
+	"""
+
+	return StringToEnum('SurfaceforcingsDesfac')[0]
+
+def SurfaceforcingsS0pEnum():
+	"""
+	SURFACEFORCINGSS0PENUM - Enum of SurfaceforcingsS0p
+
+	   Usage:
+	      macro=SurfaceforcingsS0pEnum()
+	"""
+
+	return StringToEnum('SurfaceforcingsS0p')[0]
+
 def SurfaceforcingsIssmbgradientsEnum():
 	"""
@@ -5257,4 +5277,4 @@
 	"""
 
-	return 524
-
+	return 526
+
Index: /issm/trunk-jpl/src/m/enum/MaximumNumberOfEnums.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/MaximumNumberOfEnums.m	(revision 14734)
+++ /issm/trunk-jpl/src/m/enum/MaximumNumberOfEnums.m	(revision 14735)
@@ -9,3 +9,3 @@
 %      macro=MaximumNumberOfEnums()
 
-macro=524;
+macro=526;
