Index: /issm/trunk-jpl/src/c/classes/Elements/Element.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 24506)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 24507)
@@ -3665,5 +3665,5 @@
 	Input2 *teValue_input       = this->GetInput2(SmbTeValueEnum);      _assert_(teValue_input);
 	Input2 *aValue_input        = this->GetInput2(SmbAValueEnum);       _assert_(aValue_input);
-	Input2 *EC_input            = this->GetInput2(SmbECiniEnum);        _assert_(EC_input);
+	Input2 *EC_input            = NULL;
 
 	/*Retrieve input values:*/
@@ -3700,4 +3700,5 @@
 		this->inputs2->GetArray(SmbAiniEnum,this->lid,&aini,&m);
 		this->inputs2->GetArray(SmbTiniEnum,this->lid,&Tini,&m);
+		EC_input = this->GetInput2(SmbECiniEnum);  _assert_(EC_input);
 		EC_input->GetInputAverage(&EC);
 
@@ -3755,5 +3756,7 @@
 		this->inputs2->GetArray(SmbAEnum,this->lid,&a,&m);
 		this->inputs2->GetArray(SmbTEnum,this->lid,&T,&m);
+		EC_input = this->GetInput2(SmbECEnum);  _assert_(EC_input);
 		EC_input->GetInputAverage(&EC);
+		EC=EC*dt*rho_ice;
 
 		//fixed lower temperature bounday condition - T is fixed
@@ -3792,5 +3795,5 @@
 		if(VerboseSmb() && this->Sid()==0 && IssmComm::GetRank()==0)_printf0_("Time: t=" << setprecision(8) << t/365.0/24.0/3600.0 << " yr/" << (time+dt)/365.0/24.0/3600.0 << " yr" << setprecision(3) << " Step: " << count << "\n");
 
-		Input2* Ta_input  = this->GetInput2(SmbTaEnum,t-time+timeclim);    _assert_(Ta_input);
+		Input2 *Ta_input  = this->GetInput2(SmbTaEnum,t-time+timeclim);    _assert_(Ta_input);
 		Input2 *V_input   = this->GetInput2(SmbVEnum,t-time+timeclim);     _assert_(V_input);
 		Input2 *Dlwr_input= this->GetInput2(SmbDlwrfEnum,t-time+timeclim); _assert_(Dlwr_input);
@@ -3809,5 +3812,5 @@
 		pAir_input->GetInputValue(&pAir,gauss);  // screen level air pressure [Pa]
 		teValue_input->GetInputValue(&teValue,gauss);  // Emissivity [0-1]
-		aValue_input->GetInputValue(&aValue,gauss);  // screen level air pressure [Pa]
+		aValue_input->GetInputValue(&aValue,gauss);  // Albedo [0 1]
 		//_printf_("Time: " << t << " Ta: " << Ta << " V: " << V << " dlw: " << dlw << " dsw: " << dsw << " P: " << P << " eAir: " << eAir << " pAir: " << pAir << "\n");
 		/*}}}*/
@@ -3922,5 +3925,4 @@
 	this->inputs2->SetArrayInput(SmbWEnum,this->lid,W,m);
 	this->inputs2->SetArrayInput(SmbAEnum,this->lid,a,m);
-	this->inputs2->SetArrayInput(SmbAEnum,this->lid,a,m);
 	this->SetElementInput(SmbECEnum,sumEC/dt/rho_ice);
 	this->SetElementInput(SmbMassBalanceEnum,(sumP + sumEC -sumR)/dt/rho_ice);
Index: /issm/trunk-jpl/src/c/classes/FemModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 24506)
+++ /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 24507)
@@ -2424,4 +2424,5 @@
 							if(rank_arraysize>max_rank_arraysize)max_rank_arraysize=rank_arraysize;
 						}
+						rank_arraysize=max_rank_arraysize;
 
 						/*Broadcast for cpus that do not have any elements*/
@@ -2495,5 +2496,5 @@
 								for(int j=0;j<elements->Size();j++){
 									Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(j));
-									element->ResultToMatrix(values,ncols, output_enum);
+									element->ResultToMatrix(values,ncols,output_enum);
 								}
 								/*Gather from all cpus*/
Index: /issm/trunk-jpl/src/c/cores/smb_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/smb_core.cpp	(revision 24506)
+++ /issm/trunk-jpl/src/c/cores/smb_core.cpp	(revision 24507)
@@ -37,5 +37,5 @@
 	int numaveragedinput;
 	femmodel->parameters->FindParam(&dtslices,SmbStepsPerStepEnum);
-	/*intermiedaries to deal with averaging*/
+	/*intermediaries to deal with averaging*/
 	static const int substeplist[2] = {SmbMassBalanceSubstepEnum,SmbRunoffSubstepEnum};
 	static const int transientlist[2] = {SmbMassBalanceTransientEnum,SmbRunoffTransientEnum};
@@ -53,5 +53,5 @@
 	}
 
-	/*if yes compute necessary intermiedaries and start looping*/
+	/*if yes compute necessary intermediaries and start looping*/
 	if (dtslices>1){
 		int        substep;
Index: /issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp	(revision 24506)
+++ /issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp	(revision 24507)
@@ -650,5 +650,5 @@
 	// discretized heat equation:
 
-	//                 Tp = (Au*Tu° + Ad*Td° + (Ap-Au-Ad)Tp° + S) / Ap
+	//                 Tp = (Au*Tuo+ Ad*Tdo+ (Ap-Au-Ad)Tpo+ S) / Ap
 
 	// where neighbor coefficients Au, Ap, & Ad are
@@ -659,6 +659,5 @@
 
 	// and u & d represent grid points up and down from the center grid point 
-	// p and // u & d represent grid points up and down from the center grid 
-	// point p and ° identifies previous time step values. S is a source term.
+	// point p and o identifies previous time step values. S is a source term.
 
 	// u, d, and p conductivities
