Changeset 19309
- Timestamp:
- 04/23/15 15:03:59 (10 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp
r19200 r19309 181 181 iomodel->Constant(&ismungsm,SurfaceforcingsIsmungsmEnum); 182 182 iomodel->FetchDataToInput(elements,ThermalSpctemperatureEnum); 183 iomodel->FetchDataToInput(elements,SurfaceforcingsS0pEnum); 184 iomodel->FetchDataToInput(elements,SurfaceforcingsS0tEnum); 183 185 if(isdelta18o || ismungsm){ 184 186 iomodel->FetchDataToInput(elements,SurfaceforcingsTemperaturesLgmEnum); … … 188 190 } 189 191 else{ 190 192 iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationEnum); 191 193 iomodel->FetchDataToInput(elements,SurfaceforcingsMonthlytemperaturesEnum); 192 194 } … … 196 198 iomodel->Constant(&isd18opd,SurfaceforcingsIsd18opdEnum); 197 199 iomodel->FetchDataToInput(elements,ThermalSpctemperatureEnum); 200 iomodel->FetchDataToInput(elements,SurfaceforcingsS0pEnum); 201 iomodel->FetchDataToInput(elements,SurfaceforcingsS0tEnum); 198 202 if (isd18opd){ 199 203 iomodel->FetchDataToInput(elements,SurfaceforcingsTemperaturesPresentdayEnum); -
issm/trunk-jpl/src/c/classes/Elements/Element.cpp
r19275 r19309 1691 1691 IssmDouble* h=xNew<IssmDouble>(numvertices); 1692 1692 IssmDouble* s=xNew<IssmDouble>(numvertices); 1693 IssmDouble rho_water,rho_ice,desfac,s0p,s0t,rlaps,rlapslgm; 1693 IssmDouble* s0p=xNew<IssmDouble>(numvertices); 1694 IssmDouble* s0t=xNew<IssmDouble>(numvertices); 1695 IssmDouble rho_water,rho_ice,desfac,rlaps,rlapslgm; 1694 1696 IssmDouble PfacTime,TdiffTime,sealevTime; 1695 1697 IssmDouble mavg=1./12.; //factor for monthly average … … 1701 1703 /*Get some pdd parameters*/ 1702 1704 desfac=this->matpar->GetMaterialParameter(SurfaceforcingsDesfacEnum); 1703 s0p=this->matpar->GetMaterialParameter(SurfaceforcingsS0pEnum);1704 s0t=this->matpar->GetMaterialParameter(SurfaceforcingsS0tEnum);1705 1705 rlaps=this->matpar->GetMaterialParameter(SurfaceforcingsRlapsEnum); 1706 1706 rlapslgm=this->matpar->GetMaterialParameter(SurfaceforcingsRlapslgmEnum); … … 1742 1742 GetInputListOnVertices(&h[0],ThicknessEnum); 1743 1743 GetInputListOnVertices(&s[0],SurfaceEnum); 1744 GetInputListOnVertices(&s0p[0],SurfaceforcingsS0pEnum); 1745 GetInputListOnVertices(&s0t[0],SurfaceforcingsS0tEnum); 1744 1746 1745 1747 /*measure the surface mass balance*/ … … 1747 1749 agd[iv]=PddSurfaceMassBalance(&monthlytemperatures[iv*12], &monthlyprec[iv*12], 1748 1750 pdds, pds, signorm, yts, h[iv], s[iv], 1749 desfac, s0t , s0p,rlaps,rlapslgm,TdiffTime,sealevTime,1751 desfac, s0t[iv], s0p[iv],rlaps,rlapslgm,TdiffTime,sealevTime, 1750 1752 rho_water,rho_ice); 1751 1753 } … … 1801 1803 xDelete<IssmDouble>(h); 1802 1804 xDelete<IssmDouble>(s); 1805 xDelete<IssmDouble>(s0t); 1806 xDelete<IssmDouble>(s0p); 1803 1807 xDelete<IssmDouble>(tmp); 1804 1808 -
issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp
r19282 r19309 35 35 omega=0; 36 36 desfac=0; 37 s0p=0;38 s0t=0;39 37 rlaps=0; 40 38 rlapslgm=0; … … 100 98 case SMBpddEnum: 101 99 iomodel->Constant(&this->desfac,SurfaceforcingsDesfacEnum); 102 iomodel->Constant(&this->s0p,SurfaceforcingsS0pEnum);103 iomodel->Constant(&this->s0t,SurfaceforcingsS0tEnum);104 100 iomodel->Constant(&this->rlaps,SurfaceforcingsRlapsEnum); 105 101 iomodel->Constant(&this->rlapslgm,SurfaceforcingsRlapslgmEnum); … … 107 103 case SMBd18opddEnum: 108 104 iomodel->Constant(&this->desfac,SurfaceforcingsDesfacEnum); 109 iomodel->Constant(&this->s0p,SurfaceforcingsS0pEnum);110 iomodel->Constant(&this->s0t,SurfaceforcingsS0tEnum);111 105 iomodel->Constant(&this->rlaps,SurfaceforcingsRlapsEnum); 112 106 iomodel->Constant(&this->rlapslgm,SurfaceforcingsRlapslgmEnum); … … 187 181 _printf_(" g: " << g << "\n"); 188 182 _printf_(" desfac: " << desfac << "\n"); 189 _printf_(" s0p: " << s0p << "\n");190 _printf_(" s0t: " << s0t << "\n");191 183 _printf_(" rlaps: " << rlaps << "\n"); 192 184 _printf_(" rlapslgm: " << rlapslgm << "\n"); … … 233 225 matpar->g=this->g; 234 226 matpar->desfac=this->desfac; 235 matpar->s0p=this->s0p;236 matpar->s0t=this->s0t;237 227 matpar->rlaps=this->rlaps; 238 228 matpar->rlapslgm=this->rlapslgm; … … 280 270 MARSHALLING(omega); 281 271 MARSHALLING(desfac); 282 MARSHALLING(s0p);283 MARSHALLING(s0t);284 272 MARSHALLING(rlaps); 285 273 MARSHALLING(rlapslgm); … … 379 367 case SurfaceforcingsDesfacEnum: 380 368 this->desfac=constant; 381 break;382 case SurfaceforcingsS0pEnum:383 this->s0p=constant;384 break;385 case SurfaceforcingsS0tEnum:386 this->s0t=constant;387 369 break; 388 370 case SurfaceforcingsRlapsEnum: … … 517 499 case ConstantsGEnum: return this->g; 518 500 case SurfaceforcingsDesfacEnum: return this->desfac; 519 case SurfaceforcingsS0pEnum: return this->s0p;520 case SurfaceforcingsS0tEnum: return this->s0t;521 501 case SurfaceforcingsRlapsEnum: return this->rlaps; 522 502 case SurfaceforcingsRlapslgmEnum: return this->rlapslgm; -
issm/trunk-jpl/src/c/classes/Materials/Matpar.h
r19216 r19309 32 32 IssmDouble omega; 33 33 IssmDouble desfac; 34 IssmDouble s0p;35 IssmDouble s0t;36 34 IssmDouble rlaps; 37 35 IssmDouble rlapslgm; -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
r19268 r19309 110 110 parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIsmungsmEnum)); 111 111 parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsDesfacEnum)); 112 parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsS0pEnum));113 parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsS0tEnum));114 112 parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsRlapsEnum)); 115 113 parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsRlapslgmEnum)); … … 144 142 parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIsd18opdEnum)); 145 143 parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsDesfacEnum)); 146 parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsS0pEnum));147 parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsS0tEnum));148 144 parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsRlapsEnum)); 149 145 parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsRlapslgmEnum)); -
issm/trunk-jpl/src/m/classes/SMBd18opdd.m
r19285 r19309 7 7 properties (SetAccess=public) 8 8 desfac = 0; 9 s0p = 0;10 s0t = 0;9 s0p = NaN; 10 s0t = NaN; 11 11 rlaps = 0; 12 12 rlapslgm = 0; … … 33 33 if(self.isd18opd),self.temperatures_presentday=project3d(md,'vector',self.temperatures_presentday,'type','node');end 34 34 if(self.isd18opd),self.precipitations_presentday=project3d(md,'vector',self.precipitations_presentday,'type','node');end 35 self.s0p=project3d(md,'vector',self.s0p,'type','node'); 36 self.s0t=project3d(md,'vector',self.s0t,'type','node'); 35 37 36 38 end % }}} 37 39 function self = initialize(self,md) % {{{ 38 40 39 % if isnan(self.precipitation), 40 % self.precipitation=zeros(md.mesh.numberofvertices,1); 41 % disp(' no SMBd18opdd.precipitation specified: values set as zero'); 42 % end 41 if isnan(self.s0p), 42 self.s0p=zeros(md.mesh.numberofvertices,1); 43 disp(' no SMBd18opdd.s0p specified: values set as zero'); 44 end 45 if isnan(self.s0t), 46 self.s0t=zeros(md.mesh.numberofvertices,1); 47 disp(' no SMBd18opdd.s0t specified: values set as zero'); 48 end 43 49 44 50 end % }}} … … 48 54 self.isd18opd = 1; 49 55 self.desfac = 0.5; 50 self.s0p = 0;51 self.s0t = 0;52 56 self.rlaps = 6.5; 53 57 self.rlapslgm = 6.5; … … 59 63 if ismember(MasstransportAnalysisEnum(),analyses), 60 64 md = checkfield(md,'fieldname','surfaceforcings.desfac','<=',1,'numel',1); 61 md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,' numel',1);62 md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,' numel',1);65 md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]); 66 md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]); 63 67 md = checkfield(md,'fieldname','surfaceforcings.rlaps','>=',0,'numel',1); 64 68 md = checkfield(md,'fieldname','surfaceforcings.rlapslgm','>=',0,'numel',1); … … 99 103 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','isd18opd','format','Boolean'); 100 104 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','desfac','format','Double'); 101 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','Double ');102 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','Double ');105 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','DoubleMat','mattype',1); 106 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','DoubleMat','mattype',1); 103 107 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlaps','format','Double'); 104 108 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlapslgm','format','Double'); -
issm/trunk-jpl/src/m/classes/SMBd18opdd.py
r19285 r19309 16 16 def __init__(self): # {{{ 17 17 self.desfac = 0. 18 self.s0p = 0.19 self.s0t = 0.18 self.s0p = float('NaN') 19 self.s0t = float('NaN') 20 20 self.rlaps = 0. 21 21 self.rlapslgm = 0. … … 53 53 if self.isd18opd: self.temperatures_presentday=project3d(md,'vector',self.temperatures_presentday,'type','node') 54 54 if self.isd18opd: self.precipitations_presentday=project3d(md,'vector',self.precipitations_presentday,'type','node') 55 self.s0p=project3d(md,'vector',self.s0p,'type','node') 56 self.s0t=project3d(md,'vector',self.s0t,'type','node') 57 55 58 return self 56 59 #}}} 57 60 def initialize(self,md): # {{{ 58 61 59 # if numpy.all(numpy.isnan(self.precipitation)): 60 # self.precipitation=numpy.zeros((md.mesh.numberofvertices,1)) 61 # print " no SMBpdd.precipitation specified: values set as zero" 62 # 63 return self 64 #}}} 62 if numpy.all(numpy.isnan(self.s0p)): 63 self.s0p=numpy.zeros((md.mesh.numberofvertices,1)) 64 print " no SMBd18opdd.s0p specified: values set as zero" 65 66 if numpy.all(numpy.isnan(self.s0t)): 67 self.s0t=numpy.zeros((md.mesh.numberofvertices,1)) 68 print " no SMBd18opdd.s0t specified: values set as zero" 69 70 return self 71 # }}} 65 72 def setdefaultparameters(self): # {{{ 66 73 … … 69 76 self.isd18opd = 1 70 77 self.desfac = 0.5 71 self.s0p = 0.72 self.s0t = 0.73 78 self.rlaps = 6.5 74 79 self.rlapslgm = 6.5 … … 81 86 if MasstransportAnalysisEnum() in analyses: 82 87 md = checkfield(md,'fieldname','surfaceforcings.desfac','<=',1,'numel',[1]) 83 md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,' numel',[1])84 md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,' numel',[1])88 md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1]) 89 md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1]) 85 90 md = checkfield(md,'fieldname','surfaceforcings.rlaps','>=',0,'numel',[1]) 86 91 md = checkfield(md,'fieldname','surfaceforcings.rlapslgm','>=',0,'numel',[1]) … … 103 108 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','isd18opd','format','Boolean') 104 109 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','desfac','format','Double') 105 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','Double ')106 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','Double ')110 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','DoubleMat','mattype',1); 111 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','DoubleMat','mattype',1); 107 112 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlaps','format','Double') 108 113 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlapslgm','format','Double') -
issm/trunk-jpl/src/m/classes/SMBpdd.m
r19285 r19309 9 9 monthlytemperatures = NaN; 10 10 desfac = 0; 11 s0p = 0;12 s0t = 0;11 s0p = NaN; 12 s0t = NaN; 13 13 rlaps = 0; 14 14 rlapslgm = 0; … … 45 45 if(self.ismungsm),self.precipitations_presentday=project3d(md,'vector',self.precipitations_presentday,'type','node');end 46 46 if(self.ismungsm),self.precipitations_lgm=project3d(md,'vector',self.precipitations_lgm,'type','node');end 47 self.s0p=project3d(md,'vector',self.s0p,'type','node'); 48 self.s0t=project3d(md,'vector',self.s0t,'type','node'); 47 49 48 50 end % }}} 49 51 function self = initialize(self,md) % {{{ 50 52 51 % if isnan(self.precipitation), 52 % self.precipitation=zeros(md.mesh.numberofvertices,1); 53 % disp(' no SMBpdd.precipitation specified: values set as zero'); 54 % end 53 if isnan(self.s0p), 54 self.s0p=zeros(md.mesh.numberofvertices,1); 55 disp(' no SMBpdd.s0p specified: values set as zero'); 56 end 57 if isnan(self.s0t), 58 self.s0t=zeros(md.mesh.numberofvertices,1); 59 disp(' no SMBpdd.s0t specified: values set as zero'); 60 end 55 61 56 62 end % }}} … … 60 66 self.ismungsm = 0; 61 67 self.desfac = 0.5; 62 self.s0p = 0;63 self.s0t = 0;64 68 self.rlaps = 6.5; 65 69 self.rlapslgm = 6.5; … … 70 74 if ismember(MasstransportAnalysisEnum(),analyses), 71 75 md = checkfield(md,'fieldname','surfaceforcings.desfac','<=',1,'numel',1); 72 md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,' numel',1);73 md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,' numel',1);76 md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]); 77 md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]); 74 78 md = checkfield(md,'fieldname','surfaceforcings.rlaps','>=',0,'numel',1); 75 79 md = checkfield(md,'fieldname','surfaceforcings.rlapslgm','>=',0,'numel',1); … … 139 143 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','ismungsm','format','Boolean'); 140 144 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','desfac','format','Double'); 141 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','Double ');142 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','Double ');145 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','DoubleMat','mattype',1); 146 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','DoubleMat','mattype',1); 143 147 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlaps','format','Double'); 144 148 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlapslgm','format','Double'); -
issm/trunk-jpl/src/m/classes/SMBpdd.py
r19285 r19309 18 18 self.monthlytemperatures = float('NaN') 19 19 self.desfac = 0. 20 self.s0p = 0.21 self.s0t = 0.20 self.s0p = float('NaN') 21 self.s0t = float('NaN') 22 22 self.rlaps = 0. 23 23 self.rlapslgm = 0. … … 67 67 string="%s\n%s"%(string,fielddisplay(self,'Tdiff','time interpolation parameter for temperature, 1D(year), required if mungsm is activated')) 68 68 string="%s\n%s"%(string,fielddisplay(self,'sealev','sea level [m], 1D(year), required if mungsm is activated')) 69 69 70 return string 70 #}}}71 # }}} 71 72 def extrude(self,md): # {{{ 72 73 … … 82 83 if self.ismungsm: self.precipitations_presentday=project3d(md,'vector',self.precipitations_presentday,'type','node') 83 84 if self.ismungsm: self.precipitations_lgm=project3d(md,'vector',self.precipitations_lgm,'type','node') 85 self.s0p=project3d(md,'vector',self.s0p,'type','node') 86 self.s0t=project3d(md,'vector',self.s0t,'type','node') 87 84 88 return self 85 89 #}}} 86 90 def initialize(self,md): # {{{ 87 91 88 # if numpy.all(numpy.isnan(self.precipitation)): 89 # self.precipitation=numpy.zeros((md.mesh.numberofvertices,1)) 90 # print " no SMBpdd.precipitation specified: values set as zero" 91 # 92 return self 92 if numpy.all(numpy.isnan(self.s0p)): 93 self.s0p=numpy.zeros((md.mesh.numberofvertices,1)) 94 print " no SMBpdd.s0p specified: values set as zero" 95 96 if numpy.all(numpy.isnan(self.s0t)): 97 self.s0t=numpy.zeros((md.mesh.numberofvertices,1)) 98 print " no SMBpdd.s0t specified: values set as zero" 99 100 return self 93 101 #}}} 94 102 def setdefaultparameters(self): # {{{ … … 98 106 self.ismungsm = 0 99 107 self.desfac = 0.5 100 self.s0p = 0.101 self.s0t = 0.102 108 self.rlaps = 6.5 103 109 self.rlapslgm = 6.5 … … 109 115 if MasstransportAnalysisEnum() in analyses: 110 116 md = checkfield(md,'fieldname','surfaceforcings.desfac','<=',1,'numel',[1]) 111 md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,' numel',[1])112 md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,' numel',[1])117 md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1]) 118 md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1]) 113 119 md = checkfield(md,'fieldname','surfaceforcings.rlaps','>=',0,'numel',[1]) 114 120 md = checkfield(md,'fieldname','surfaceforcings.rlapslgm','>=',0,'numel',[1]) … … 136 142 137 143 return md 138 # 144 #}}} 139 145 def marshall(self,md,fid): # {{{ 140 146 … … 146 152 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','ismungsm','format','Boolean') 147 153 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','desfac','format','Double') 148 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','Double ')149 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','Double ')154 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','DoubleMat','mattype',1); 155 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','DoubleMat','mattype',1); 150 156 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlaps','format','Double') 151 157 WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlapslgm','format','Double')
Note:
See TracChangeset
for help on using the changeset viewer.