[issm-svn] r12297 - issm/trunk/src

morlighe at issm.ess.uci.edu morlighe at issm.ess.uci.edu
Tue May 29 10:12:16 PDT 2012


Author: morlighe
Date: 2012-05-29 10:12:16 -0700 (Tue, 29 May 2012)
New Revision: 12297

Removed:
   issm/trunk/src/m/enum/EnumToModelField.m
Modified:
   issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
   issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp
   issm/trunk/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp
   issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp
   issm/trunk/src/m/classes/surfaceforcings.m
Log:
Added surfaceforcings.monthlytemperatures field for PDD module

Modified: issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
===================================================================
--- issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	2012-05-29 16:57:04 UTC (rev 12296)
+++ issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	2012-05-29 17:12:16 UTC (rev 12297)
@@ -158,6 +158,8 @@
 	SurfaceEnum,
 	SurfaceforcingsPrecipitationEnum,
 	SurfaceforcingsMassBalanceEnum,
+	SurfaceforcingsIspddEnum,
+	SurfaceforcingsMonthlytemperatures,
 	ThermalMaxiterEnum,
 	ThermalPenaltyFactorEnum,
 	ThermalPenaltyLockEnum,
@@ -483,7 +485,6 @@
 	/*Rheology law (move too Material) {{{1*/
 	PatersonEnum,
 	ArrheniusEnum,
-	SurfaceforcingsIspddEnum,
 	/*}}}*/
 	MaximumNumberOfEnums
 };

Modified: issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp
===================================================================
--- issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp	2012-05-29 16:57:04 UTC (rev 12296)
+++ issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp	2012-05-29 17:12:16 UTC (rev 12297)
@@ -162,6 +162,7 @@
 		case SurfaceEnum : return "Surface";
 		case SurfaceforcingsPrecipitationEnum : return "SurfaceforcingsPrecipitation";
 		case SurfaceforcingsMassBalanceEnum : return "SurfaceforcingsMassBalance";
+		case SurfaceforcingsIspddEnum : return "SurfaceforcingsIspdd";
 		case ThermalMaxiterEnum : return "ThermalMaxiter";
 		case ThermalPenaltyFactorEnum : return "ThermalPenaltyFactor";
 		case ThermalPenaltyLockEnum : return "ThermalPenaltyLock";
@@ -451,7 +452,6 @@
 		case OptionLogicalEnum : return "OptionLogical";
 		case PatersonEnum : return "Paterson";
 		case ArrheniusEnum : return "Arrhenius";
-		case SurfaceforcingsIspddEnum : return "SurfaceforcingsIspdd";
 		default : return "unknown";
 
 	}

Modified: issm/trunk/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp
===================================================================
--- issm/trunk/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp	2012-05-29 16:57:04 UTC (rev 12296)
+++ issm/trunk/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp	2012-05-29 17:12:16 UTC (rev 12297)
@@ -70,6 +70,7 @@
 	  iomodel->FetchDataToInput(elements,VyEnum); 
 	  iomodel->FetchDataToInput(elements,ThermalSpctemperatureEnum);
 	  iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationEnum);
+	  iomodel->FetchDataToInput(elements,SurfaceforcingsMonthlytemperatures);
 	}
 	else{
 		iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum);

Modified: issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp
===================================================================
--- issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp	2012-05-29 16:57:04 UTC (rev 12296)
+++ issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp	2012-05-29 17:12:16 UTC (rev 12297)
@@ -166,6 +166,7 @@
 	      else if (strcmp(name,"Surface")==0) return SurfaceEnum;
 	      else if (strcmp(name,"SurfaceforcingsPrecipitation")==0) return SurfaceforcingsPrecipitationEnum;
 	      else if (strcmp(name,"SurfaceforcingsMassBalance")==0) return SurfaceforcingsMassBalanceEnum;
+	      else if (strcmp(name,"SurfaceforcingsIspdd")==0) return SurfaceforcingsIspddEnum;
 	      else if (strcmp(name,"ThermalMaxiter")==0) return ThermalMaxiterEnum;
 	      else if (strcmp(name,"ThermalPenaltyFactor")==0) return ThermalPenaltyFactorEnum;
 	      else if (strcmp(name,"ThermalPenaltyLock")==0) return ThermalPenaltyLockEnum;
@@ -258,11 +259,11 @@
 	      else if (strcmp(name,"IntParam")==0) return IntParamEnum;
 	      else if (strcmp(name,"IntVecParam")==0) return IntVecParamEnum;
 	      else if (strcmp(name,"MacAyeal2dIceFront")==0) return MacAyeal2dIceFrontEnum;
-	      else if (strcmp(name,"MacAyeal3dIceFront")==0) return MacAyeal3dIceFrontEnum;
          else stage=3;
    }
    if(stage==3){
-	      if (strcmp(name,"Matice")==0) return MaticeEnum;
+	      if (strcmp(name,"MacAyeal3dIceFront")==0) return MacAyeal3dIceFrontEnum;
+	      else if (strcmp(name,"Matice")==0) return MaticeEnum;
 	      else if (strcmp(name,"Matpar")==0) return MatparEnum;
 	      else if (strcmp(name,"Node")==0) return NodeEnum;
 	      else if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;
@@ -381,11 +382,11 @@
 	      else if (strcmp(name,"IceVolume")==0) return IceVolumeEnum;
 	      else if (strcmp(name,"P0")==0) return P0Enum;
 	      else if (strcmp(name,"P1")==0) return P1Enum;
-	      else if (strcmp(name,"P1DG")==0) return P1DGEnum;
          else stage=4;
    }
    if(stage==4){
-	      if (strcmp(name,"SaveResults")==0) return SaveResultsEnum;
+	      if (strcmp(name,"P1DG")==0) return P1DGEnum;
+	      else if (strcmp(name,"SaveResults")==0) return SaveResultsEnum;
 	      else if (strcmp(name,"BoolElementResult")==0) return BoolElementResultEnum;
 	      else if (strcmp(name,"BoolExternalResult")==0) return BoolExternalResultEnum;
 	      else if (strcmp(name,"DoubleElementResult")==0) return DoubleElementResultEnum;
@@ -461,7 +462,6 @@
 	      else if (strcmp(name,"OptionLogical")==0) return OptionLogicalEnum;
 	      else if (strcmp(name,"Paterson")==0) return PatersonEnum;
 	      else if (strcmp(name,"Arrhenius")==0) return ArrheniusEnum;
-	      else if (strcmp(name,"SurfaceforcingsIspdd")==0) return SurfaceforcingsIspddEnum;
          else stage=5;
    }
 	/*If we reach this point, the string provided has not been found*/

Modified: issm/trunk/src/m/classes/surfaceforcings.m
===================================================================
--- issm/trunk/src/m/classes/surfaceforcings.m	2012-05-29 16:57:04 UTC (rev 12296)
+++ issm/trunk/src/m/classes/surfaceforcings.m	2012-05-29 17:12:16 UTC (rev 12297)
@@ -7,7 +7,8 @@
 	properties (SetAccess=public) 
 		precipitation = NaN;
 		mass_balance  = NaN;
-		ispdd = false;
+		ispdd = 0;
+		monthlytemperatures = NaN;
 	end
 	methods
 		function obj = surfaceforcings(varargin) % {{{
@@ -21,20 +22,22 @@
 		function obj = setdefaultparameters(obj) % {{{
 		  
 		  %pdd method not used in default mode
-		  obj.ispdd=false;
+		  obj.ispdd=0;
 
 		end % }}}
 		function checkconsistency(obj,md,solution,analyses) % {{{
 
 			if ismember(PrognosticAnalysisEnum,analyses),
-				checkfield(md,'surfaceforcings.mass_balance','forcing',1,'NaN',1);
+				checkfield(md,'surfaceforcings.ispdd','numel',1,'values',[0 1]);
+				if(obj.ispdd)
+					checkfield(md,'surfaceforcings.monthlytemperatures','forcing',1,'NaN',1);
+				else
+					checkfield(md,'surfaceforcings.mass_balance','forcing',1,'NaN',1);
+				end
 			end
 			if ismember(BalancethicknessAnalysisEnum,analyses),
 				checkfield(md,'surfaceforcings.mass_balance','size',[md.mesh.numberofvertices 1],'NaN',1);
 			end
-			if (ismember(PrognosticAnalysisEnum,analyses) & md.surfaceforcings.ispdd),
-			  checkfield(md,'surfaceforcings.ispdd','numel',1,'values',[0 1]);
-			end
 		end % }}}
 		function disp(obj) % {{{
 			disp(sprintf('   surface forcings parameters:'));
@@ -42,12 +45,16 @@
 			fielddisplay(obj,'precipitation','surface precipitation [m/yr water eq]');
 			fielddisplay(obj,'mass_balance','surface mass balance [m/yr ice eq]');
 			fielddisplay(obj,'ispdd','is pdd activated (0 or 1, default is 0)');
+			fielddisplay(obj,'monthlytemperatures','monthly surface temperatures required if pdd is activated');
 
 		end % }}}
 		function marshall(obj,fid) % {{{
 			WriteData(fid,'object',obj,'fieldname','precipitation','format','DoubleMat','mattype',1);
 			WriteData(fid,'object',obj,'fieldname','mass_balance','format','DoubleMat','mattype',1);
 			WriteData(fid,'object',obj,'fieldname','ispdd','format','Boolean');
+			if obj.ispdd,
+				WriteData(fid,'object',obj,'fieldname','monthlytemperatures','format','DoubleMat','mattype',1);
+			end
 
 		end % }}}
 	end



More information about the issm-svn mailing list