Changeset 12917
- Timestamp:
- 08/06/12 16:36:15 (13 years ago)
- Location:
- issm/branches/trunk-jpl-damage/src
- Files:
-
- 2 added
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/branches/trunk-jpl-damage/src/c/EnumDefinitions/EnumDefinitions.h
r12878 r12917 362 362 TemperatureOldEnum, 363 363 TemperaturePicardEnum, 364 TemperatureSurfaceEnum, 365 TemperatureBasalEnum, 364 366 ThicknessAbsMisfitEnum, 365 367 TypeEnum, -
issm/branches/trunk-jpl-damage/src/c/modules/EnumToStringx/EnumToStringx.cpp
r12878 r12917 353 353 case TemperatureOldEnum : return "TemperatureOld"; 354 354 case TemperaturePicardEnum : return "TemperaturePicard"; 355 case TemperatureSurfaceEnum : return "TemperatureSurface"; 356 case TemperatureBasalEnum : return "TemperatureBasal"; 355 357 case ThicknessAbsMisfitEnum : return "ThicknessAbsMisfit"; 356 358 case TypeEnum : return "Type"; -
issm/branches/trunk-jpl-damage/src/c/modules/StringToEnumx/StringToEnumx.cpp
r12878 r12917 360 360 else if (strcmp(name,"TemperatureOld")==0) return TemperatureOldEnum; 361 361 else if (strcmp(name,"TemperaturePicard")==0) return TemperaturePicardEnum; 362 else if (strcmp(name,"TemperatureSurface")==0) return TemperatureSurfaceEnum; 363 else if (strcmp(name,"TemperatureBasal")==0) return TemperatureBasalEnum; 362 364 else if (strcmp(name,"ThicknessAbsMisfit")==0) return ThicknessAbsMisfitEnum; 363 365 else if (strcmp(name,"Type")==0) return TypeEnum; … … 382 384 else if (strcmp(name,"ThicknessAbsGradient")==0) return ThicknessAbsGradientEnum; 383 385 else if (strcmp(name,"StepResponses")==0) return StepResponsesEnum; 384 else if (strcmp(name,"IntMatParam")==0) return IntMatParamEnum;385 else if (strcmp(name,"RheologyBbarAbsGradient")==0) return RheologyBbarAbsGradientEnum;386 386 else stage=4; 387 387 } 388 388 if(stage==4){ 389 if (strcmp(name,"DragCoefficientAbsGradient")==0) return DragCoefficientAbsGradientEnum; 389 if (strcmp(name,"IntMatParam")==0) return IntMatParamEnum; 390 else if (strcmp(name,"RheologyBbarAbsGradient")==0) return RheologyBbarAbsGradientEnum; 391 else if (strcmp(name,"DragCoefficientAbsGradient")==0) return DragCoefficientAbsGradientEnum; 390 392 else if (strcmp(name,"TransientInput")==0) return TransientInputEnum; 391 393 else if (strcmp(name,"Outputfilename")==0) return OutputfilenameEnum; -
issm/branches/trunk-jpl-damage/src/m/classes/initialization.m
r12878 r12917 12 12 pressure = NaN; 13 13 temperature = NaN; 14 surfacetemp = NaN; 15 basaltemp = NaN; 14 16 watercolumn = NaN; 15 17 waterfraction = NaN; … … 68 70 fielddisplay(obj,'pressure','pressure field'); 69 71 fielddisplay(obj,'temperature','temperature in Kelvins'); 72 fielddisplay(obj,'surfacetemp','surface temperature in Kelvins'); 73 fielddisplay(obj,'basaltemp','basal temperature in Kelvins'); 70 74 fielddisplay(obj,'watercolumn','thickness of subglacial water'); 71 75 fielddisplay(obj,'waterfraction','fraction of water in the ice'); … … 78 82 WriteData(fid,'data',obj.pressure,'format','DoubleMat','mattype',1,'enum',PressureEnum); 79 83 WriteData(fid,'data',obj.temperature,'format','DoubleMat','mattype',1,'enum',TemperatureEnum); 84 WriteData(fid,'data',obj.surfacetemp,'format','DoubleMat','mattype',1,'enum',TemperatureSurfaceEnum); 85 WriteData(fid,'data',obj.basaltemp,'format','DoubleMat','mattype',1,'enum',TemperatureBasalEnum); 80 86 WriteData(fid,'data',obj.watercolumn,'format','DoubleMat','mattype',1,'enum',WatercolumnEnum); 81 87 WriteData(fid,'data',obj.waterfraction,'format','DoubleMat','mattype',1,'enum',WaterfractionEnum); -
issm/branches/trunk-jpl-damage/src/m/enum/EnumDefinitions.py
r12878 r12917 3367 3367 return StringToEnum('TemperaturePicard') 3368 3368 3369 def TemperatureSurfaceEnum(): 3370 """ 3371 TEMPERATURESURFACEENUM - Enum of TemperatureSurface 3372 3373 Usage: 3374 macro=TemperatureSurfaceEnum() 3375 """ 3376 3377 return StringToEnum('TemperatureSurface') 3378 3379 def TemperatureBasalEnum(): 3380 """ 3381 TEMPERATUREBASALENUM - Enum of TemperatureBasal 3382 3383 Usage: 3384 macro=TemperatureBasalEnum() 3385 """ 3386 3387 return StringToEnum('TemperatureBasal') 3388 3369 3389 def ThicknessAbsMisfitEnum(): 3370 3390 """ … … 4595 4615 """ 4596 4616 4597 return 4 584598 4617 return 460 4618 -
issm/branches/trunk-jpl-damage/src/m/enum/MaximumNumberOfEnums.m
r12878 r12917 9 9 % macro=MaximumNumberOfEnums() 10 10 11 macro=4 58;11 macro=460; -
issm/branches/trunk-jpl-damage/src/m/model/plot/applyoptions.m
r12878 r12917 121 121 c = getcolormap(options); 122 122 h = colormap(c); 123 124 c = hsv(64);125 c = rgb2hsv(c);126 c(:,2) = max(min( abs(c(:,1)-0.5)/0.5 ,1),0);127 c(1:32,1) = 0.7;128 c(33:end,1) = 1;129 c = hsv2rgb(c);130 131 elseif strcmpi(cname,'Rignot'),132 c = hsv;133 134 %adjust saturation135 c = rgb2hsv(c);136 alpha=getfieldvalue(options,'alpha',1);137 c(:,2) = max(min( (0.1+c(:,1)).^(1/alpha) ,1),0);138 c = hsv2rgb(c);139 140 elseif strcmpi(cname,'Rignot2'),141 c = hsv;142 143 %adjust saturation144 c = rgb2hsv(c);145 alpha=getfieldvalue(options,'alpha',1);146 c(:,2) = max(min( (0.1+c(:,1)).^(1/alpha) ,1),0);147 c = hsv2rgb(c);148 149 c=flipud(c);150 151 elseif strcmpi(cname,'damage'),152 c=hsv(64);153 c(:,3)=1;154 a=1:-(1/35):0.1;155 c(1:32,2)=a;156 c(33:end,2)=fliplr(a);157 c(1:32,1)=2/3;158 c(33:end,1)=0.07;159 c=hsv2rgb(c);160 161 else162 c = cname;163 end164 h=colormap(c);165 else166 h=colormap(jet(60));167 end168 123 169 124 %wrapping -
issm/branches/trunk-jpl-damage/src/m/model/steadystateiceshelftemp.m
r12563 r12917 8 8 % 9 9 % In addition to supplying md, the surface and basal temperatures of the ice shelf must 10 % be supplied to the function IN DEGREES CELSIUS. These temperatures can be supplied at 11 % each vertex of the mesh or as a single constant value to be used at every vertex. 10 % be supplied in degrees Kelvin. 12 11 % 13 12 % The model md must also contain the fields: … … 16 15 17 16 % Usage: 18 % temperature=steadystateiceshelftemp(md )17 % temperature=steadystateiceshelftemp(md,surfacetemp,basaltemp) 19 18 20 19 if (length(md.geometry.thickness)~=md.mesh.numberofvertices) … … 23 22 24 23 %surface and basal temperatures in degrees C 25 if (length(surfacetemp)==md.mesh.numberofvertices) 26 Ts=surfacetemp; 27 elseif (length(surfacetemp)==1) 28 Ts=surfacetemp*ones(md.mesh.numberofvertices,1); 29 else 30 error(['steadystateiceshelftemp error message: surfacetemp should have a length of 1 or ' num2str(md.mesh.numberofvertices)]) 24 if (length(surfacetemp)~=md.mesh.numberofvertices) 25 error(['steadystateiceshelftemp error message: surfacetemp should have a length of ' num2str(md.mesh.numberofvertices)]) 31 26 end 32 27 33 if (length(basaltemp)==md.mesh.numberofvertices) 34 Tb=basaltemp; 35 elseif (length(basaltemp)==1) 36 Tb=basaltemp*ones(md.mesh.numberofvertices,1); 37 else 38 error(['steadystateiceshelftemp error message: basaltemp should have a length of 1 or ' num2str(md.mesh.numberofvertices)]) 28 if (length(basaltemp)~=md.mesh.numberofvertices) 29 error(['steadystateiceshelftemp error message: basaltemp should have a length of ' num2str(md.mesh.numberofvertices)]) 39 30 end 31 32 % Convert temps to Celsius for Holland and Jenkins equation 33 Ts=-273+surfacetemp; 34 Tb=-273+basaltemp; 40 35 41 36 Hi=md.geometry.thickness; 42 37 ki=1.14e-6*md.constants.yts; % ice shelf thermal diffusivity from Holland and Jenkins (1999) converted to m^2/yr 43 38 44 %vertical velocity of ice shelf, positive for melting (thus minus sign)45 wi= -md.materials.rho_water/md.materials.rho_ice.*md.basalforcings.melting_rate;39 %vertical velocity of ice shelf, calculated from melting rate 40 wi=md.materials.rho_water/md.materials.rho_ice.*md.basalforcings.melting_rate; 46 41 47 42 %temperature profile is linear if melting rate is zero, depth-averaged temp is simple average in this case 48 md.initialization.temperature=(Ts+Tb)/2; % where wi~=043 temperature=(Ts+Tb)/2; % where wi~=0 49 44 50 45 pos=find(abs(wi)>=1e-4); % to avoid division by zero 51 46 52 %calculate depth-averaged temperature 47 %calculate depth-averaged temperature (in Celsius) 53 48 temperature(pos)=-( (Tb(pos)-Ts(pos))*ki./wi(pos) + Hi(pos).*Tb(pos) - (Hi(pos).*Ts(pos) + (Tb(pos)-Ts(pos))*ki./wi(pos)).*exp(Hi(pos).*wi(pos)/ki) )./( Hi(pos).*(exp(Hi(pos).*wi(pos)/ki)-1)); 54 49
Note:
See TracChangeset
for help on using the changeset viewer.