[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