Changeset 22852
- Timestamp:
- 06/20/18 16:03:35 (7 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/SmbAnalysis.cpp
r22608 r22852 21 21 22 22 int smb_model; 23 bool isdelta18o,ismungsm,isd18opd,issetpddfac ;23 bool isdelta18o,ismungsm,isd18opd,issetpddfac,isprecipscaled,istemperaturescaled; 24 24 25 25 /*Update elements: */ … … 83 83 iomodel->FetchDataToInput(elements,"md.smb.precipitations_presentday",SmbPrecipitationsPresentdayEnum); 84 84 iomodel->FetchDataToInput(elements,"md.smb.precipitations_lgm",SmbPrecipitationsLgmEnum); 85 } 86 else{ 85 }else{ 87 86 iomodel->FetchDataToInput(elements,"md.smb.precipitation",SmbPrecipitationEnum); 88 87 iomodel->FetchDataToInput(elements,"md.smb.monthlytemperatures",SmbMonthlytemperaturesEnum); … … 90 89 break; 91 90 case SMBd18opddEnum: 91 iomodel->FindConstant(&istemperaturescaled,"md.smb.istemperaturescaled"); 92 iomodel->FindConstant(&isprecipscaled,"md.smb.isprecipscaled"); 92 93 iomodel->FindConstant(&ismungsm,"md.smb.ismungsm"); 93 94 iomodel->FindConstant(&isd18opd,"md.smb.isd18opd"); … … 99 100 iomodel->FetchDataToInput(elements,"md.smb.temperatures_presentday",SmbTemperaturesPresentdayEnum); 100 101 iomodel->FetchDataToInput(elements,"md.smb.precipitations_presentday",SmbPrecipitationsPresentdayEnum); 102 if(!istemperaturescaled){ 103 iomodel->FetchDataToInput(elements,"md.smb.temperatures_reconstructed",SmbTemperaturesReconstructedEnum); 104 } 105 if(!isprecipscaled){ 106 iomodel->FetchDataToInput(elements,"md.smb.precipitations_reconstructed",SmbPrecipitationsReconstructedEnum); 107 } 101 108 } 102 109 if(issetpddfac){ … … 220 227 parameters->AddObject(iomodel->CopyConstantObject("md.smb.f",SmbFEnum)); 221 228 parameters->AddObject(iomodel->CopyConstantObject("md.smb.istemperaturescaled",SmbIstemperaturescaledEnum)); 229 parameters->AddObject(iomodel->CopyConstantObject("md.smb.isprecipscaled",SmbIsprecipscaledEnum)); 222 230 iomodel->FetchData(&temp,&N,&M,"md.smb.delta18o"); _assert_(N==2); 223 231 parameters->AddObject(new TransientParam(SmbDelta18oEnum,&temp[0],&temp[M],interp,M)); -
issm/trunk-jpl/src/c/classes/Elements/Element.cpp
r22851 r22852 535 535 IssmDouble* TemperaturesPresentday=xNew<IssmDouble>(12*numvertices); 536 536 IssmDouble* PrecipitationsPresentday=xNew<IssmDouble>(12*numvertices); 537 IssmDouble* TemperaturesReconstructed=xNew<IssmDouble>(12*numvertices); 538 IssmDouble* PrecipitationsReconstructed=xNew<IssmDouble>(12*numvertices); 537 539 IssmDouble* tmp=xNew<IssmDouble>(numvertices); 538 540 IssmDouble Delta18oTime; … … 540 542 IssmDouble time,yts,time_yr,month,time_clim; 541 543 bool isTemperatureScaled=true; 544 bool isPrecipScaled=true; 542 545 this->parameters->FindParam(&time,TimeEnum); 543 546 this->parameters->FindParam(&yts,ConstantsYtsEnum); … … 549 552 dpermil=this->matpar->GetMaterialParameter(SmbDpermilEnum); 550 553 554 this->parameters->FindParam(&isTemperatureScaled,SmbIstemperaturescaledEnum); 555 this->parameters->FindParam(&isPrecipScaled,SmbIsprecipscaledEnum); 556 551 557 /*Recover present day temperature and precipitation*/ 552 558 Input* input=this->inputs->GetInput(SmbTemperaturesPresentdayEnum); _assert_(input); 553 559 Input* input2=this->inputs->GetInput(SmbPrecipitationsPresentdayEnum); _assert_(input2); 560 Input* input3=NULL; 561 if(!isTemperatureScaled){ 562 input3=this->inputs->GetInput(SmbTemperaturesPresentdayEnum); _assert_(input3); 563 } 564 Input* input4=NULL; 565 if(!isPrecipScaled){ 566 input4=this->inputs->GetInput(SmbPrecipitationsPresentdayEnum); _assert_(input4); 567 } 554 568 int offset; 555 569 … … 566 580 input->GetInputValue(&TemperaturesPresentday[iv*12+month],gauss,time_clim+month/12.*yts); 567 581 input2->GetInputValue(&PrecipitationsPresentday[iv*12+month],gauss,time_clim+month/12.*yts); 568 569 582 PrecipitationsPresentday[iv*12+month]=PrecipitationsPresentday[iv*12+month]*yts; 583 584 if(!isTemperatureScaled){ 585 input3->GetInputValue(&TemperaturesReconstructed[iv*12+month],gauss,time_clim+month/12.*yts); 586 } 587 if(!isPrecipScaled){ 588 input4->GetInputValue(&PrecipitationsReconstructed[iv*12+month],gauss,time_clim+month/12.*yts); 589 PrecipitationsReconstructed[iv*12+month]=PrecipitationsReconstructed[iv*12+month]*yts; 590 } 591 570 592 } 571 593 } … … 573 595 /*Recover interpolation parameters at time t*/ 574 596 this->parameters->FindParam(&Delta18oTime,SmbDelta18oEnum,time); 575 this->parameters->FindParam(&isTemperatureScaled,SmbIstemperaturescaledEnum);576 597 577 598 /*Compute the temperature and precipitation*/ 578 599 for(int iv=0;iv<numvertices;iv++){ 579 ComputeD18OTemperaturePrecipitationFromPD(Delta18oTime,dpermil,isTemperatureScaled,f, 580 &PrecipitationsPresentday[iv*12], &TemperaturesPresentday[iv*12], 600 ComputeD18OTemperaturePrecipitationFromPD(Delta18oTime,dpermil,isTemperatureScaled,isPrecipScaled, 601 f,&PrecipitationsPresentday[iv*12], &TemperaturesPresentday[iv*12], 602 &PrecipitationsReconstructed[iv*12], &TemperaturesReconstructed[iv*12], 581 603 &monthlytemperatures[iv*12], &monthlyprec[iv*12]); 582 604 } … … 623 645 xDelete<IssmDouble>(TemperaturesPresentday); 624 646 xDelete<IssmDouble>(PrecipitationsPresentday); 647 xDelete<IssmDouble>(TemperaturesReconstructed); 648 xDelete<IssmDouble>(PrecipitationsReconstructed); 625 649 xDelete<IssmDouble>(tmp); 626 650 -
issm/trunk-jpl/src/c/shared/Elements/ComputeD18OTemperaturePrecipitationFromPD.cpp
r22495 r22852 8 8 9 9 void ComputeD18OTemperaturePrecipitationFromPD(IssmDouble d018,IssmDouble dpermil,bool isTemperatureScaled, 10 IssmDouble f, IssmDouble* PrecipitationPresentday,IssmDouble* TemperaturePresentday, 11 IssmDouble* monthlytemperaturesout, IssmDouble* monthlyprecout){ 10 bool isPrecipScaled, IssmDouble f, IssmDouble* PrecipitationPresentday,IssmDouble* TemperaturePresentday, 11 IssmDouble* PrecipitationReconstructed,IssmDouble* TemperatureReconstructed, IssmDouble* monthlytemperaturesout, 12 IssmDouble* monthlyprecout){ 12 13 13 14 IssmDouble monthlytemperaturestmp[12],monthlyprectmp[12]; … … 23 24 24 25 if (isTemperatureScaled)monthlytemperaturestmp[imonth] = TemperaturePresentday[imonth] + deltaTemp; 25 else monthlytemperaturestmp[imonth] = TemperaturePresentday[imonth]; 26 else{ 27 monthlytemperaturestmp[imonth] = TemperatureReconstructed[imonth]; 28 deltaTemp=TemperatureReconstructed[imonth]-TemperaturePresentday[imonth]; 29 } 26 30 27 monthlyprectmp[imonth] = PrecipitationPresentday[imonth]*exp((f/dpermil)*deltaTemp); 28 31 if (isPrecipScaled)monthlyprectmp[imonth] = PrecipitationPresentday[imonth]*exp((f/dpermil)*deltaTemp); 32 else monthlyprectmp[imonth] = PrecipitationReconstructed[imonth]; 33 29 34 /*Assign output pointer*/ 30 35 *(monthlytemperaturesout+imonth) = monthlytemperaturestmp[imonth]; -
issm/trunk-jpl/src/c/shared/Elements/elements.h
r22495 r22852 34 34 IssmDouble* monthlytemperaturesout, IssmDouble* monthlyprecout); 35 35 void ComputeD18OTemperaturePrecipitationFromPD(IssmDouble d018,IssmDouble dpermil,bool isTemperatureScaled, 36 IssmDouble f, IssmDouble* PrecipitationPresentday,IssmDouble* TemperaturePresentday, 37 IssmDouble* monthlytemperaturesout, IssmDouble* monthlyprecout); 36 bool isPrecipScaled, IssmDouble f, IssmDouble* PrecipitationPresentday,IssmDouble* TemperaturePresentday, 37 IssmDouble* PrecipitationReconstructed,IssmDouble* TemperatureReconstructed, IssmDouble* monthlytemperaturesout, 38 IssmDouble* monthlyprecout); 38 39 IssmDouble DrainageFunctionWaterfraction(IssmDouble waterfraction, IssmDouble dt=0.); 39 40 IssmDouble StressIntensityIntegralWeight(IssmDouble depth, IssmDouble water_depth, IssmDouble thickness); -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r22798 r22852 279 279 SmbIsshortwaveEnum, 280 280 SmbIstemperaturescaledEnum, 281 SmbIsprecipscaledEnum, 281 282 SmbIsthermalEnum, 282 283 SmbIsturbulentfluxEnum, … … 533 534 SmbPrecipitationsLgmEnum, 534 535 SmbPrecipitationsPresentdayEnum, 536 SmbPrecipitationsReconstructedEnum, 535 537 SmbReEnum, 536 538 SmbRefreezeEnum, … … 544 546 SmbTemperaturesLgmEnum, 545 547 SmbTemperaturesPresentdayEnum, 548 SmbTemperaturesReconstructedEnum, 546 549 SmbTEnum, 547 550 SmbTeValueEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r22798 r22852 287 287 case SmbIsshortwaveEnum : return "SmbIsshortwave"; 288 288 case SmbIstemperaturescaledEnum : return "SmbIstemperaturescaled"; 289 case SmbIsprecipscaledEnum : return "SmbIsprecipscaled"; 289 290 case SmbIsthermalEnum : return "SmbIsthermal"; 290 291 case SmbIsturbulentfluxEnum : return "SmbIsturbulentflux"; … … 539 540 case SmbPrecipitationsLgmEnum : return "SmbPrecipitationsLgm"; 540 541 case SmbPrecipitationsPresentdayEnum : return "SmbPrecipitationsPresentday"; 542 case SmbPrecipitationsReconstructedEnum : return "SmbPrecipitationsReconstructed"; 541 543 case SmbReEnum : return "SmbRe"; 542 544 case SmbRefreezeEnum : return "SmbRefreeze"; … … 550 552 case SmbTemperaturesLgmEnum : return "SmbTemperaturesLgm"; 551 553 case SmbTemperaturesPresentdayEnum : return "SmbTemperaturesPresentday"; 554 case SmbTemperaturesReconstructedEnum : return "SmbTemperaturesReconstructed"; 552 555 case SmbTEnum : return "SmbT"; 553 556 case SmbTeValueEnum : return "SmbTeValue"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r22798 r22852 293 293 else if (strcmp(name,"SmbIsshortwave")==0) return SmbIsshortwaveEnum; 294 294 else if (strcmp(name,"SmbIstemperaturescaled")==0) return SmbIstemperaturescaledEnum; 295 else if (strcmp(name,"SmbIsprecipscaled")==0) return SmbIsprecipscaledEnum; 295 296 else if (strcmp(name,"SmbIsthermal")==0) return SmbIsthermalEnum; 296 297 else if (strcmp(name,"SmbIsturbulentflux")==0) return SmbIsturbulentfluxEnum; … … 382 383 else if (strcmp(name,"BasalforcingsGroundediceMeltingRate")==0) return BasalforcingsGroundediceMeltingRateEnum; 383 384 else if (strcmp(name,"BasalforcingsPicoBasinId")==0) return BasalforcingsPicoBasinIdEnum; 384 else if (strcmp(name,"BasalforcingsPicoBoxId")==0) return BasalforcingsPicoBoxIdEnum;385 385 else stage=4; 386 386 } 387 387 if(stage==4){ 388 if (strcmp(name,"BasalforcingsPicoSubShelfOceanOverturning")==0) return BasalforcingsPicoSubShelfOceanOverturningEnum; 388 if (strcmp(name,"BasalforcingsPicoBoxId")==0) return BasalforcingsPicoBoxIdEnum; 389 else if (strcmp(name,"BasalforcingsPicoSubShelfOceanOverturning")==0) return BasalforcingsPicoSubShelfOceanOverturningEnum; 389 390 else if (strcmp(name,"BasalforcingsPicoSubShelfOceanSalinity")==0) return BasalforcingsPicoSubShelfOceanSalinityEnum; 390 391 else if (strcmp(name,"BasalforcingsPicoSubShelfOceanTemp")==0) return BasalforcingsPicoSubShelfOceanTempEnum; … … 505 506 else if (strcmp(name,"RheologyBbarAbsGradient")==0) return RheologyBbarAbsGradientEnum; 506 507 else if (strcmp(name,"Sealevel")==0) return SealevelEnum; 507 else if (strcmp(name,"SealevelriseDeltathickness")==0) return SealevelriseDeltathicknessEnum;508 508 else stage=5; 509 509 } 510 510 if(stage==5){ 511 if (strcmp(name,"SedimentHead")==0) return SedimentHeadEnum; 511 if (strcmp(name,"SealevelriseDeltathickness")==0) return SealevelriseDeltathicknessEnum; 512 else if (strcmp(name,"SedimentHead")==0) return SedimentHeadEnum; 512 513 else if (strcmp(name,"SedimentHeadOld")==0) return SedimentHeadOldEnum; 513 514 else if (strcmp(name,"SedimentHeadResidual")==0) return SedimentHeadResidualEnum; … … 551 552 else if (strcmp(name,"SmbPrecipitationsLgm")==0) return SmbPrecipitationsLgmEnum; 552 553 else if (strcmp(name,"SmbPrecipitationsPresentday")==0) return SmbPrecipitationsPresentdayEnum; 554 else if (strcmp(name,"SmbPrecipitationsReconstructed")==0) return SmbPrecipitationsReconstructedEnum; 553 555 else if (strcmp(name,"SmbRe")==0) return SmbReEnum; 554 556 else if (strcmp(name,"SmbRefreeze")==0) return SmbRefreezeEnum; … … 562 564 else if (strcmp(name,"SmbTemperaturesLgm")==0) return SmbTemperaturesLgmEnum; 563 565 else if (strcmp(name,"SmbTemperaturesPresentday")==0) return SmbTemperaturesPresentdayEnum; 566 else if (strcmp(name,"SmbTemperaturesReconstructed")==0) return SmbTemperaturesReconstructedEnum; 564 567 else if (strcmp(name,"SmbT")==0) return SmbTEnum; 565 568 else if (strcmp(name,"SmbTeValue")==0) return SmbTeValueEnum; … … 626 629 else if (strcmp(name,"Watercolumn")==0) return WatercolumnEnum; 627 630 else if (strcmp(name,"WaterColumnOld")==0) return WaterColumnOldEnum; 628 else if (strcmp(name,"WaterfractionDrainage")==0) return WaterfractionDrainageEnum;629 else if (strcmp(name,"WaterfractionDrainageIntegrated")==0) return WaterfractionDrainageIntegratedEnum;630 else if (strcmp(name,"Waterfraction")==0) return WaterfractionEnum;631 631 else stage=6; 632 632 } 633 633 if(stage==6){ 634 if (strcmp(name,"Waterheight")==0) return WaterheightEnum; 634 if (strcmp(name,"WaterfractionDrainage")==0) return WaterfractionDrainageEnum; 635 else if (strcmp(name,"WaterfractionDrainageIntegrated")==0) return WaterfractionDrainageIntegratedEnum; 636 else if (strcmp(name,"Waterfraction")==0) return WaterfractionEnum; 637 else if (strcmp(name,"Waterheight")==0) return WaterheightEnum; 635 638 else if (strcmp(name,"WeightsSurfaceObservation")==0) return WeightsSurfaceObservationEnum; 636 639 else if (strcmp(name,"InputsEND")==0) return InputsENDEnum; … … 749 752 else if (strcmp(name,"FSvelocity")==0) return FSvelocityEnum; 750 753 else if (strcmp(name,"GaussPenta")==0) return GaussPentaEnum; 751 else if (strcmp(name,"GaussSeg")==0) return GaussSegEnum;752 else if (strcmp(name,"GaussTetra")==0) return GaussTetraEnum;753 else if (strcmp(name,"GaussTria")==0) return GaussTriaEnum;754 754 else stage=7; 755 755 } 756 756 if(stage==7){ 757 if (strcmp(name,"GenericOption")==0) return GenericOptionEnum; 757 if (strcmp(name,"GaussSeg")==0) return GaussSegEnum; 758 else if (strcmp(name,"GaussTetra")==0) return GaussTetraEnum; 759 else if (strcmp(name,"GaussTria")==0) return GaussTriaEnum; 760 else if (strcmp(name,"GenericOption")==0) return GenericOptionEnum; 758 761 else if (strcmp(name,"GenericParam")==0) return GenericParamEnum; 759 762 else if (strcmp(name,"GiadWdt")==0) return GiadWdtEnum; … … 872 875 else if (strcmp(name,"MaxVel")==0) return MaxVelEnum; 873 876 else if (strcmp(name,"MaxVx")==0) return MaxVxEnum; 874 else if (strcmp(name,"MaxVy")==0) return MaxVyEnum;875 else if (strcmp(name,"MaxVz")==0) return MaxVzEnum;876 else if (strcmp(name,"Melange")==0) return MelangeEnum;877 877 else stage=8; 878 878 } 879 879 if(stage==8){ 880 if (strcmp(name,"MeltingAnalysis")==0) return MeltingAnalysisEnum; 880 if (strcmp(name,"MaxVy")==0) return MaxVyEnum; 881 else if (strcmp(name,"MaxVz")==0) return MaxVzEnum; 882 else if (strcmp(name,"Melange")==0) return MelangeEnum; 883 else if (strcmp(name,"MeltingAnalysis")==0) return MeltingAnalysisEnum; 881 884 else if (strcmp(name,"MeshElements")==0) return MeshElementsEnum; 882 885 else if (strcmp(name,"MeshX")==0) return MeshXEnum; … … 995 998 else if (strcmp(name,"Outputdefinition8")==0) return Outputdefinition8Enum; 996 999 else if (strcmp(name,"Outputdefinition90")==0) return Outputdefinition90Enum; 997 else if (strcmp(name,"Outputdefinition91")==0) return Outputdefinition91Enum;998 else if (strcmp(name,"Outputdefinition92")==0) return Outputdefinition92Enum;999 else if (strcmp(name,"Outputdefinition93")==0) return Outputdefinition93Enum;1000 1000 else stage=9; 1001 1001 } 1002 1002 if(stage==9){ 1003 if (strcmp(name,"Outputdefinition94")==0) return Outputdefinition94Enum; 1003 if (strcmp(name,"Outputdefinition91")==0) return Outputdefinition91Enum; 1004 else if (strcmp(name,"Outputdefinition92")==0) return Outputdefinition92Enum; 1005 else if (strcmp(name,"Outputdefinition93")==0) return Outputdefinition93Enum; 1006 else if (strcmp(name,"Outputdefinition94")==0) return Outputdefinition94Enum; 1004 1007 else if (strcmp(name,"Outputdefinition95")==0) return Outputdefinition95Enum; 1005 1008 else if (strcmp(name,"Outputdefinition96")==0) return Outputdefinition96Enum; … … 1118 1121 else if (strcmp(name,"TransientInput")==0) return TransientInputEnum; 1119 1122 else if (strcmp(name,"TransientParam")==0) return TransientParamEnum; 1120 else if (strcmp(name,"TransientSolution")==0) return TransientSolutionEnum;1121 else if (strcmp(name,"Tria")==0) return TriaEnum;1122 else if (strcmp(name,"TriaInput")==0) return TriaInputEnum;1123 1123 else stage=10; 1124 1124 } 1125 1125 if(stage==10){ 1126 if (strcmp(name,"UzawaPressureAnalysis")==0) return UzawaPressureAnalysisEnum; 1126 if (strcmp(name,"TransientSolution")==0) return TransientSolutionEnum; 1127 else if (strcmp(name,"Tria")==0) return TriaEnum; 1128 else if (strcmp(name,"TriaInput")==0) return TriaInputEnum; 1129 else if (strcmp(name,"UzawaPressureAnalysis")==0) return UzawaPressureAnalysisEnum; 1127 1130 else if (strcmp(name,"VectorParam")==0) return VectorParamEnum; 1128 1131 else if (strcmp(name,"Vertex")==0) return VertexEnum; -
issm/trunk-jpl/src/m/classes/SMBd18opdd.m
r22495 r22852 18 18 isd18opd = 0; 19 19 issetpddfac = 0; 20 istemperaturescaled = 0; 20 istemperaturescaled = 1; 21 isprecipscaled = 1; 21 22 delta18o = NaN; 22 23 delta18o_surface = NaN; 23 24 temperatures_presentday = NaN; 24 25 precipitations_presentday = NaN; 26 temperatures_reconstructed = NaN; 27 precipitations_reconstructed = NaN; 25 28 pddfac_snow = NaN; 26 29 pddfac_ice = NaN; … … 39 42 if(self.isd18opd),self.temperatures_presentday=project3d(md,'vector',self.temperatures_presentday,'type','node');end 40 43 if(self.isd18opd),self.precipitations_presentday=project3d(md,'vector',self.precipitations_presentday,'type','node');end 44 if(self.istemperaturescaled==0),self.temperatures_reconstructed=project3d(md,'vector',self.temperatures_reconstructed,'type','node');end 45 if(self.isprecipscaled),self.precipitations_reconstructed=project3d(md,'vector',self.precipitations_reconstructed,'type','node');end 41 46 if(self.issetpddfac), self.pddfac_snow=project3d(md,'vector',self.pddfac_snow,'type','node');end 42 47 if(self.issetpddfac), self.pddfac_ice=project3d(md,'vector',self.pddfac_ice,'type','node');end … … 67 72 self.isd18opd = 1; 68 73 self.istemperaturescaled = 1; 74 self.isprecipscaled = 1; 69 75 self.desfac = 0.5; 70 76 self.rlaps = 6.5; … … 93 99 md = checkfield(md,'fieldname','smb.dpermil','>=',0,'numel',1); 94 100 md = checkfield(md,'fieldname','smb.f','>=',0,'numel',1); 101 if(self.istemperaturescaled==0) 102 lent=size(self.temperatures_reconstructed,2); 103 multt=ceil(lent/12)*12; 104 md = checkfield(md,'fieldname','smb.temperatures_reconstructed','size',[md.mesh.numberofvertices+1 multt],'NaN',1,'Inf',1,'timeseries',1); 105 end 106 if(self.isprecipscaled==0) 107 lenp=size(self.temperatures_reconstructed,2); 108 multp=ceil(lent/12)*12; 109 md = checkfield(md,'fieldname','smb.precipitations_reconstructed','size',[md.mesh.numberofvertices+1 multt],'NaN',1,'Inf',1,'timeseries',1); 110 end 95 111 end 96 112 if(self.issetpddfac==1) … … 114 130 fielddisplay(self,'temperatures_presentday','monthly present day surface temperatures [K], required if delta18o/mungsm/d18opd is activated'); 115 131 fielddisplay(self,'precipitations_presentday','monthly surface precipitation [m/yr water eq], required if delta18o/mungsm/d18opd is activated'); 116 fielddisplay(self,'istemperaturescaled','if delta18o parametrisation from present day temperature and precipitation is activated, is temperature scaled to delta18o value? (0 or 1, default is 0)'); 132 fielddisplay(self,'istemperaturescaled','if delta18o parametrisation from present day temperature and precipitation is activated, is temperature scaled to delta18o value? (0 or 1, default is 1)'); 133 fielddisplay(self,'isprecipscaled','if delta18o parametrisation from present day temperature and precipitation is activated, is precip scaled to delta18o value? (0 or 1, default is 1)'); 134 if(self.istemperaturescaled==0) 135 fielddisplay(self,'temperatures_reconstructed','monthly historical surface temperatures [K], required if delta18o/mungsm/d18opd is activated and istemperaturescaled is not activated'); 136 end 137 if(self.isprecipscaled==0) 138 fielddisplay(self,'precipitations_reconstructed','monthly historical precipitation [m/yr water eq], required if delta18o/mungsm/d18opd is activated and isprecipscaled is not activated'); 139 end 117 140 fielddisplay(self,'delta18o','delta18o [per mil], required if pdd is activated and d18opd activated'); 118 141 fielddisplay(self,'dpermil','degree per mil, required if d18opd is activated'); … … 149 172 WriteData(fid,prefix,'object',self,'class','smb','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts); 150 173 WriteData(fid,prefix,'object',self,'class','smb','fieldname','istemperaturescaled','format','Boolean'); 174 WriteData(fid,prefix,'object',self,'class','smb','fieldname','isprecipscaled','format','Boolean'); 151 175 WriteData(fid,prefix,'object',self,'class','smb','fieldname','delta18o','format','DoubleMat','mattype',1,'timeserieslength',2,'yts',md.constants.yts); 152 176 WriteData(fid,prefix,'object',self,'class','smb','fieldname','dpermil','format','Double'); 153 177 WriteData(fid,prefix,'object',self,'class','smb','fieldname','f','format','Double'); 178 if self.istemperaturescaled==0 179 WriteData(fid,prefix,'object',self,'class','smb','fieldname','temperatures_reconstructed','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts); 180 end 181 if self.isprecipscaled==0 182 WriteData(fid,prefix,'object',self,'class','smb','fieldname','precipitations_reconstructed','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts); 183 end 154 184 end 155 185 if self.issetpddfac==1
Note:
See TracChangeset
for help on using the changeset viewer.