Index: /issm/trunk-jpl/src/c/classes/Elements/Element.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 28035)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 28036)
@@ -4831,8 +4831,8 @@
 		 w.e. : water equivalenet.
 		 */
-		smb_out[iv]  = smb_out[iv]*yts;  // w.e. m/sec -> m/yr
-		smbi_out[iv] = smbi_out[iv]*rho_water/rho_ice; // w.e. m/sec -> ice m/yr
-		smbs_out[iv] = smbs_out[iv]*yts; // w.e. m/sec -> m/yr
-		saccu_out[iv] = saccu_out[iv]*yts; // w.e. m/sec -> m/yr
+		smb_out[iv]  = smb_out[iv]*rho_water/rho_ice;      // w.e. m/sec -> ice m/yr
+		smbi_out[iv] = smbi_out[iv]*rho_water/rho_ice*yts; // w.e. m/sec -> ice m/yr
+		smbs_out[iv] = smbs_out[iv]*rho_water/rho_ice*yts; // w.e. m/sec -> ice m/yr
+		saccu_out[iv] = saccu_out[iv]*rho_water/rho_ice*yts; // w.e. m/sec -> ice m/yr
 		smelt_out[iv] = smelt_out[iv]*rho_water/rho_ice; // w.e. m/sec -> ice m/yr
 		refr_out[iv]  = refr_out[iv]*rho_water/rho_ice; // w.e. m/sec -> ice m/yr
@@ -4853,8 +4853,7 @@
 			//this->AddInput(SmbMassBalanceTotalEnum,&smb_out[0],P1DGEnum);
 			// water equivalent SMB ice to ice equivalent.
-			this->AddInput(SmbMassBalanceEnum,     &smbi_out[0],P1DGEnum);
+			this->AddInput(SmbMassBalanceEnum,     &smb_out[0],P1DGEnum);
 			this->AddInput(SmbMassBalanceIceEnum,  &smbi_out[0],P1DGEnum);
 			this->AddInput(SmbMassBalanceSnowEnum, &smbs_out[0],P1DGEnum);
-			this->AddInput(SmbMassBalanceSemicEnum,&smb_out[0],P1DGEnum);
 			//this->AddInput(SmbMassBalanceSnowEnum,&smbs_out[0],P1DGEnum);
 			// saccu - accumulation of snow.
Index: /issm/trunk-jpl/src/c/shared/Enum/Enum.vim
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/Enum.vim	(revision 28035)
+++ /issm/trunk-jpl/src/c/shared/Enum/Enum.vim	(revision 28036)
@@ -1115,5 +1115,4 @@
 syn keyword cConstant SmbMassBalanceSnowEnum
 syn keyword cConstant SmbMassBalanceIceEnum
-syn keyword cConstant SmbMassBalanceSemicEnum
 syn keyword cConstant SmbMassBalanceSubstepEnum
 syn keyword cConstant SmbMassBalanceTransientEnum
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 28035)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 28036)
@@ -1111,5 +1111,4 @@
 	SmbMassBalanceSnowEnum,
 	SmbMassBalanceIceEnum,
-	SmbMassBalanceSemicEnum,
    SmbMassBalanceSubstepEnum,
    SmbMassBalanceTransientEnum,
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 28035)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 28036)
@@ -1117,5 +1117,4 @@
 		case SmbMassBalanceSnowEnum : return "SmbMassBalanceSnow";
 		case SmbMassBalanceIceEnum : return "SmbMassBalanceIce";
-		case SmbMassBalanceSemicEnum : return "SmbMassBalanceSemic";
 		case SmbMassBalanceSubstepEnum : return "SmbMassBalanceSubstep";
 		case SmbMassBalanceTransientEnum : return "SmbMassBalanceTransient";
Index: /issm/trunk-jpl/src/c/shared/Enum/Enumjl.vim
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/Enumjl.vim	(revision 28035)
+++ /issm/trunk-jpl/src/c/shared/Enum/Enumjl.vim	(revision 28036)
@@ -1108,5 +1108,4 @@
 syn keyword juliaConstC SmbMassBalanceSnowEnum
 syn keyword juliaConstC SmbMassBalanceIceEnum
-syn keyword juliaConstC SmbMassBalanceSemicEnum
 syn keyword juliaConstC SmbMassBalanceSubstepEnum
 syn keyword juliaConstC SmbMassBalanceTransientEnum
Index: /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 28035)
+++ /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 28036)
@@ -1144,5 +1144,4 @@
 	      else if (strcmp(name,"SmbMassBalanceSnow")==0) return SmbMassBalanceSnowEnum;
 	      else if (strcmp(name,"SmbMassBalanceIce")==0) return SmbMassBalanceIceEnum;
-	      else if (strcmp(name,"SmbMassBalanceSemic")==0) return SmbMassBalanceSemicEnum;
 	      else if (strcmp(name,"SmbMassBalanceSubstep")==0) return SmbMassBalanceSubstepEnum;
 	      else if (strcmp(name,"SmbMassBalanceTransient")==0) return SmbMassBalanceTransientEnum;
@@ -1244,9 +1243,9 @@
 	      else if (strcmp(name,"SealevelArea")==0) return SealevelAreaEnum;
 	      else if (strcmp(name,"SurfaceArea")==0) return SurfaceAreaEnum;
+	      else if (strcmp(name,"SurfaceAverageVelMisfit")==0) return SurfaceAverageVelMisfitEnum;
          else stage=11;
    }
    if(stage==11){
-	      if (strcmp(name,"SurfaceAverageVelMisfit")==0) return SurfaceAverageVelMisfitEnum;
-	      else if (strcmp(name,"SurfaceCrevasse")==0) return SurfaceCrevasseEnum;
+	      if (strcmp(name,"SurfaceCrevasse")==0) return SurfaceCrevasseEnum;
 	      else if (strcmp(name,"Surface")==0) return SurfaceEnum;
 	      else if (strcmp(name,"SurfaceOld")==0) return SurfaceOldEnum;
@@ -1367,9 +1366,9 @@
 	      else if (strcmp(name,"Outputdefinition57")==0) return Outputdefinition57Enum;
 	      else if (strcmp(name,"Outputdefinition58")==0) return Outputdefinition58Enum;
+	      else if (strcmp(name,"Outputdefinition59")==0) return Outputdefinition59Enum;
          else stage=12;
    }
    if(stage==12){
-	      if (strcmp(name,"Outputdefinition59")==0) return Outputdefinition59Enum;
-	      else if (strcmp(name,"Outputdefinition5")==0) return Outputdefinition5Enum;
+	      if (strcmp(name,"Outputdefinition5")==0) return Outputdefinition5Enum;
 	      else if (strcmp(name,"Outputdefinition60")==0) return Outputdefinition60Enum;
 	      else if (strcmp(name,"Outputdefinition61")==0) return Outputdefinition61Enum;
@@ -1490,9 +1489,9 @@
 	      else if (strcmp(name,"DataSet")==0) return DataSetEnum;
 	      else if (strcmp(name,"DataSetParam")==0) return DataSetParamEnum;
+	      else if (strcmp(name,"DatasetInput")==0) return DatasetInputEnum;
          else stage=13;
    }
    if(stage==13){
-	      if (strcmp(name,"DatasetInput")==0) return DatasetInputEnum;
-	      else if (strcmp(name,"DebrisAnalysis")==0) return DebrisAnalysisEnum;
+	      if (strcmp(name,"DebrisAnalysis")==0) return DebrisAnalysisEnum;
 	      else if (strcmp(name,"DebrisSolution")==0) return DebrisSolutionEnum;
 	      else if (strcmp(name,"DefaultAnalysis")==0) return DefaultAnalysisEnum;
@@ -1613,9 +1612,9 @@
 	      else if (strcmp(name,"LliboutryDuval")==0) return LliboutryDuvalEnum;
 	      else if (strcmp(name,"Loads")==0) return LoadsEnum;
+	      else if (strcmp(name,"LoveAnalysis")==0) return LoveAnalysisEnum;
          else stage=14;
    }
    if(stage==14){
-	      if (strcmp(name,"LoveAnalysis")==0) return LoveAnalysisEnum;
-	      else if (strcmp(name,"LoveHf")==0) return LoveHfEnum;
+	      if (strcmp(name,"LoveHf")==0) return LoveHfEnum;
 	      else if (strcmp(name,"LoveHt")==0) return LoveHtEnum;
 	      else if (strcmp(name,"LoveKernelsImag")==0) return LoveKernelsImagEnum;
@@ -1736,9 +1735,9 @@
 	      else if (strcmp(name,"SMBmeltcomponents")==0) return SMBmeltcomponentsEnum;
 	      else if (strcmp(name,"SMBpdd")==0) return SMBpddEnum;
+	      else if (strcmp(name,"SMBpddSicopolis")==0) return SMBpddSicopolisEnum;
          else stage=15;
    }
    if(stage==15){
-	      if (strcmp(name,"SMBpddSicopolis")==0) return SMBpddSicopolisEnum;
-	      else if (strcmp(name,"SMBsemic")==0) return SMBsemicEnum;
+	      if (strcmp(name,"SMBsemic")==0) return SMBsemicEnum;
 	      else if (strcmp(name,"SSAApproximation")==0) return SSAApproximationEnum;
 	      else if (strcmp(name,"SSAFSApproximation")==0) return SSAFSApproximationEnum;
Index: /issm/trunk-jpl/src/m/classes/SMBsemic.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/SMBsemic.m	(revision 28035)
+++ /issm/trunk-jpl/src/m/classes/SMBsemic.m	(revision 28036)
@@ -90,5 +90,5 @@
 			if self.ismethod == 1
 				list = {'default','SmbMassBalance','SmbMassBalanceSnow','SmbMassBalanceIce',...
-					'SmbMassBalanceSemic','SmbMelt','SmbRefreeze','SmbAccumulation',...
+					'SmbMelt','SmbRefreeze','SmbAccumulation',...
 					'SmbHIce','SmbHSnow','SmbAlbedo','SmbAlbedoSnow','TemperatureSEMIC',...
 					'SmbSemicQmr','TotalSmb','TotalSmbMelt','TotalSmbRefreeze'};
@@ -172,13 +172,13 @@
 				md = checkfield(md,'fieldname','smb.rlaps','>=',0,'numel',1);
 				md = checkfield(md,'fieldname','smb.rdl','>=',0,'numel',1);
-				md = checkfield(md,'fieldname','smb.dailysnowfall','timeseries',1,'NaN',1,'Inf',1);
-				md = checkfield(md,'fieldname','smb.dailyrainfall','timeseries',1,'NaN',1,'Inf',1);
-				md = checkfield(md,'fieldname','smb.dailydsradiation','timeseries',1,'NaN',1,'Inf',1);
-				md = checkfield(md,'fieldname','smb.dailydlradiation','timeseries',1,'NaN',1,'Inf',1);
-				md = checkfield(md,'fieldname','smb.dailywindspeed','timeseries',1,'NaN',1,'Inf',1);
-				md = checkfield(md,'fieldname','smb.dailypressure','timeseries',1,'NaN',1,'Inf',1);
-				md = checkfield(md,'fieldname','smb.dailyairdensity','timeseries',1,'NaN',1,'Inf',1);
-				md = checkfield(md,'fieldname','smb.dailyairhumidity','timeseries',1,'NaN',1,'Inf',1);
-				md = checkfield(md,'fieldname','smb.dailytemperature','timeseries',1,'NaN',1,'Inf',1);
+				md = checkfield(md,'fieldname','smb.dailysnowfall','timeseries',1,'NaN',1,'Inf',1,'>=',0);
+				md = checkfield(md,'fieldname','smb.dailyrainfall','timeseries',1,'NaN',1,'Inf',1,'>=',0);
+				md = checkfield(md,'fieldname','smb.dailydsradiation','timeseries',1,'NaN',1,'Inf',1,'>=',0);
+				md = checkfield(md,'fieldname','smb.dailydlradiation','timeseries',1,'NaN',1,'Inf',1,'>=',0);
+				md = checkfield(md,'fieldname','smb.dailywindspeed','timeseries',1,'NaN',1,'Inf',1,'>=',0);
+				md = checkfield(md,'fieldname','smb.dailypressure','timeseries',1,'NaN',1,'Inf',1,'>=',0);
+				md = checkfield(md,'fieldname','smb.dailyairdensity','timeseries',1,'NaN',1,'Inf',1,'>=',0);
+				md = checkfield(md,'fieldname','smb.dailyairhumidity','timeseries',1,'NaN',1,'Inf',1,'>=',0);
+				md = checkfield(md,'fieldname','smb.dailytemperature','timeseries',1,'NaN',1,'Inf',1,'>=',0);
 
 				% TODO: transient model should be merged with SEMIC developed by Ruckamp et al. (2018)
Index: /issm/trunk-jpl/src/m/classes/SMBsemic.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/SMBsemic.py	(revision 28035)
+++ /issm/trunk-jpl/src/m/classes/SMBsemic.py	(revision 28036)
@@ -173,5 +173,5 @@
         if self.ismethod:
             list = ['default','SmbMassBalance', 'SmbMassBalanceSnow', 'SmbMassBalanceIce',
-                  'SmbMassBalanceSemic', 'SmbMelt', 'SmbRefreeze','SmbAccumulation',
+                  'SmbMelt', 'SmbRefreeze','SmbAccumulation',
                   'SmbHIce', 'SmbHSnow', 'SmbAlbedo', 'SmbAlbedoSnow', 'TemperatureSEMIC',
                   'SmbSemicQmr', 'TotalSmb', 'TotalSmbMelt', 'TotalSmbRefreeze']
@@ -237,15 +237,15 @@
             md = checkfield(md, 'fieldname', 'smb.desfac', '<=', 1, 'numel', 1)
             md = checkfield(md, 'fieldname', 'smb.s0gcm', '>=', 0, 'NaN', 1, 'Inf', 1, 'size', [md.mesh.numberofvertices, 1])
-            md = checkfield(md, 'fieldname', 'smb.rlaps', '>=', 0, 'numel', 1)
-            md = checkfield(md, 'fieldname', 'smb.rdl', '>=', 0, 'numel', 1)
-            md = checkfield(md, 'fieldname', 'smb.dailysnowfall', 'timeseries', 1, 'NaN', 1, 'Inf', 1)
-            md = checkfield(md, 'fieldname', 'smb.dailyrainfall', 'timeseries', 1, 'NaN', 1, 'Inf', 1)
-            md = checkfield(md, 'fieldname', 'smb.dailydsradiation', 'timeseries', 1, 'NaN', 1, 'Inf', 1)
-            md = checkfield(md, 'fieldname', 'smb.dailydlradiation', 'timeseries', 1, 'NaN', 1, 'Inf', 1)
-            md = checkfield(md, 'fieldname', 'smb.dailywindspeed', 'timeseries', 1, 'NaN', 1, 'Inf', 1)
-            md = checkfield(md, 'fieldname', 'smb.dailypressure', 'timeseries', 1, 'NaN', 1, 'Inf', 1)
-            md = checkfield(md, 'fieldname', 'smb.dailyairdensity', 'timeseries', 1, 'NaN', 1, 'Inf', 1)
-            md = checkfield(md, 'fieldname', 'smb.dailyairhumidity', 'timeseries', 1, 'NaN', 1, 'Inf', 1)
-            md = checkfield(md, 'fieldname', 'smb.dailytemperature', 'timeseries', 1, 'NaN', 1, 'Inf', 1)
+            md = checkfield(md, 'fieldname', 'smb.rlaps', '>=', 0, 'numel', 1);
+            md = checkfield(md, 'fieldname', 'smb.rdl', '>=', 0, 'numel', 1);
+            md = checkfield(md, 'fieldname', 'smb.dailysnowfall','timeseries',1,'NaN',1,'Inf',1,'>=',0);
+            md = checkfield(md, 'fieldname', 'smb.dailyrainfall','timeseries',1,'NaN',1,'Inf',1,'>=',0);
+            md = checkfield(md, 'fieldname', 'smb.dailydsradiation','timeseries',1,'NaN',1,'Inf',1,'>=',0);
+            md = checkfield(md, 'fieldname', 'smb.dailydlradiation','timeseries',1,'NaN',1,'Inf',1,'>=',0);
+            md = checkfield(md, 'fieldname', 'smb.dailywindspeed','timeseries',1,'NaN',1,'Inf',1,'>=',0);
+            md = checkfield(md, 'fieldname', 'smb.dailypressure','timeseries',1,'NaN',1,'Inf',1,'>=',0);
+            md = checkfield(md, 'fieldname', 'smb.dailyairdensity','timeseries',1,'NaN',1,'Inf',1,'>=',0);
+            md = checkfield(md, 'fieldname', 'smb.dailyairhumidity','timeseries',1,'NaN',1,'Inf',1,'>=',0);
+            md = checkfield(md, 'fieldname', 'smb.dailytemperature','timeseries',1,'NaN',1,'Inf',1,'>=',0);
 
             # TODO: transient model should be merged with SEMIC developed by Ruckamp et al. (2018)
