source: issm/oecreview/Archive/21337-21723/ISSM-21708-21709.diff@ 21726

Last change on this file since 21726 was 21726, checked in by Mathieu Morlighem, 8 years ago

CHG added Archive/21337-21723

File size: 9.4 KB
RevLine 
[21726]1Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
2===================================================================
3--- ../trunk-jpl/src/c/classes/Elements/Element.cpp (revision 21708)
4+++ ../trunk-jpl/src/c/classes/Elements/Element.cpp (revision 21709)
5@@ -526,10 +526,11 @@
6 IssmDouble* PrecipitationsPresentday=xNew<IssmDouble>(12*numvertices);
7 IssmDouble* tmp=xNew<IssmDouble>(numvertices);
8 IssmDouble Delta18oTime;
9- IssmDouble dpermil;
10+ IssmDouble dpermil,f;
11 IssmDouble time,yts,time_yr,month;
12 this->parameters->FindParam(&time,TimeEnum);
13 this->parameters->FindParam(&yts,ConstantsYtsEnum);
14+ this->parameters->FindParam(&f,SmbFEnum);
15 time_yr=floor(time/yts)*yts;
16
17 /*Get some pdd parameters*/
18@@ -555,7 +556,7 @@
19
20 /*Compute the temperature and precipitation*/
21 for(int iv=0;iv<numvertices;iv++){
22- ComputeD18OTemperaturePrecipitationFromPD(Delta18oTime,dpermil,
23+ ComputeD18OTemperaturePrecipitationFromPD(Delta18oTime,dpermil,f,
24 &PrecipitationsPresentday[iv*12], &TemperaturesPresentday[iv*12],
25 &monthlytemperatures[iv*12], &monthlyprec[iv*12]);
26 }
27Index: ../trunk-jpl/src/c/analyses/SmbAnalysis.cpp
28===================================================================
29--- ../trunk-jpl/src/c/analyses/SmbAnalysis.cpp (revision 21708)
30+++ ../trunk-jpl/src/c/analyses/SmbAnalysis.cpp (revision 21709)
31@@ -218,6 +218,7 @@
32 iomodel->DeleteData(temp,"md.smb.delta18o");
33
34 parameters->AddObject(iomodel->CopyConstantObject("md.smb.dpermil",SmbDpermilEnum));
35+ parameters->AddObject(iomodel->CopyConstantObject("md.smb.f",SmbFEnum));
36 }
37 break;
38 case SMBgradientsEnum:
39Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
40===================================================================
41--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h (revision 21708)
42+++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h (revision 21709)
43@@ -457,6 +457,7 @@
44 SmbSealevEnum,
45 SMBd18opddEnum,
46 SmbDpermilEnum,
47+ SmbFEnum,
48 SMBgradientsEnum,
49 SmbMonthlytemperaturesEnum,
50 SmbHrefEnum,
51Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
52===================================================================
53--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp (revision 21708)
54+++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp (revision 21709)
55@@ -458,6 +458,7 @@
56 case SmbSealevEnum : return "SmbSealev";
57 case SMBd18opddEnum : return "SMBd18opdd";
58 case SmbDpermilEnum : return "SmbDpermil";
59+ case SmbFEnum : return "SmbF";
60 case SMBgradientsEnum : return "SMBgradients";
61 case SmbMonthlytemperaturesEnum : return "SmbMonthlytemperatures";
62 case SmbHrefEnum : return "SmbHref";
63Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
64===================================================================
65--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp (revision 21708)
66+++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp (revision 21709)
67@@ -467,6 +467,7 @@
68 else if (strcmp(name,"SmbSealev")==0) return SmbSealevEnum;
69 else if (strcmp(name,"SMBd18opdd")==0) return SMBd18opddEnum;
70 else if (strcmp(name,"SmbDpermil")==0) return SmbDpermilEnum;
71+ else if (strcmp(name,"SmbF")==0) return SmbFEnum;
72 else if (strcmp(name,"SMBgradients")==0) return SMBgradientsEnum;
73 else if (strcmp(name,"SmbMonthlytemperatures")==0) return SmbMonthlytemperaturesEnum;
74 else if (strcmp(name,"SmbHref")==0) return SmbHrefEnum;
75@@ -504,11 +505,11 @@
76 else if (strcmp(name,"AndroidFrictionCoefficient")==0) return AndroidFrictionCoefficientEnum;
77 else if (strcmp(name,"ResetPenalties")==0) return ResetPenaltiesEnum;
78 else if (strcmp(name,"SurfaceAbsVelMisfit")==0) return SurfaceAbsVelMisfitEnum;
79- else if (strcmp(name,"SurfaceArea")==0) return SurfaceAreaEnum;
80 else stage=5;
81 }
82 if(stage==5){
83- if (strcmp(name,"SurfaceAverageVelMisfit")==0) return SurfaceAverageVelMisfitEnum;
84+ if (strcmp(name,"SurfaceArea")==0) return SurfaceAreaEnum;
85+ else if (strcmp(name,"SurfaceAverageVelMisfit")==0) return SurfaceAverageVelMisfitEnum;
86 else if (strcmp(name,"SurfaceLogVelMisfit")==0) return SurfaceLogVelMisfitEnum;
87 else if (strcmp(name,"SurfaceLogVxVyMisfit")==0) return SurfaceLogVxVyMisfitEnum;
88 else if (strcmp(name,"SurfaceRelVelMisfit")==0) return SurfaceRelVelMisfitEnum;
89@@ -627,11 +628,11 @@
90 else if (strcmp(name,"Outputdefinition28")==0) return Outputdefinition28Enum;
91 else if (strcmp(name,"Outputdefinition29")==0) return Outputdefinition29Enum;
92 else if (strcmp(name,"Outputdefinition30")==0) return Outputdefinition30Enum;
93- else if (strcmp(name,"Outputdefinition31")==0) return Outputdefinition31Enum;
94 else stage=6;
95 }
96 if(stage==6){
97- if (strcmp(name,"Outputdefinition32")==0) return Outputdefinition32Enum;
98+ if (strcmp(name,"Outputdefinition31")==0) return Outputdefinition31Enum;
99+ else if (strcmp(name,"Outputdefinition32")==0) return Outputdefinition32Enum;
100 else if (strcmp(name,"Outputdefinition33")==0) return Outputdefinition33Enum;
101 else if (strcmp(name,"Outputdefinition34")==0) return Outputdefinition34Enum;
102 else if (strcmp(name,"Outputdefinition35")==0) return Outputdefinition35Enum;
103@@ -750,11 +751,11 @@
104 else if (strcmp(name,"QmuInName")==0) return QmuInNameEnum;
105 else if (strcmp(name,"QmuOutName")==0) return QmuOutNameEnum;
106 else if (strcmp(name,"Regular")==0) return RegularEnum;
107- else if (strcmp(name,"Scaled")==0) return ScaledEnum;
108 else stage=7;
109 }
110 if(stage==7){
111- if (strcmp(name,"Separate")==0) return SeparateEnum;
112+ if (strcmp(name,"Scaled")==0) return ScaledEnum;
113+ else if (strcmp(name,"Separate")==0) return SeparateEnum;
114 else if (strcmp(name,"Sset")==0) return SsetEnum;
115 else if (strcmp(name,"Dense")==0) return DenseEnum;
116 else if (strcmp(name,"MpiDense")==0) return MpiDenseEnum;
117@@ -873,11 +874,11 @@
118 else if (strcmp(name,"StringParam")==0) return StringParamEnum;
119 else if (strcmp(name,"Seg")==0) return SegEnum;
120 else if (strcmp(name,"SegInput")==0) return SegInputEnum;
121- else if (strcmp(name,"Tria")==0) return TriaEnum;
122 else stage=8;
123 }
124 if(stage==8){
125- if (strcmp(name,"TriaInput")==0) return TriaInputEnum;
126+ if (strcmp(name,"Tria")==0) return TriaEnum;
127+ else if (strcmp(name,"TriaInput")==0) return TriaInputEnum;
128 else if (strcmp(name,"Tetra")==0) return TetraEnum;
129 else if (strcmp(name,"TetraInput")==0) return TetraInputEnum;
130 else if (strcmp(name,"Penta")==0) return PentaEnum;
131@@ -996,11 +997,11 @@
132 else if (strcmp(name,"MINI")==0) return MINIEnum;
133 else if (strcmp(name,"MINIcondensed")==0) return MINIcondensedEnum;
134 else if (strcmp(name,"TaylorHood")==0) return TaylorHoodEnum;
135- else if (strcmp(name,"LATaylorHood")==0) return LATaylorHoodEnum;
136 else stage=9;
137 }
138 if(stage==9){
139- if (strcmp(name,"XTaylorHood")==0) return XTaylorHoodEnum;
140+ if (strcmp(name,"LATaylorHood")==0) return LATaylorHoodEnum;
141+ else if (strcmp(name,"XTaylorHood")==0) return XTaylorHoodEnum;
142 else if (strcmp(name,"OneLayerP4z")==0) return OneLayerP4zEnum;
143 else if (strcmp(name,"CrouzeixRaviart")==0) return CrouzeixRaviartEnum;
144 else if (strcmp(name,"LACrouzeixRaviart")==0) return LACrouzeixRaviartEnum;
145Index: ../trunk-jpl/src/c/shared/Elements/elements.h
146===================================================================
147--- ../trunk-jpl/src/c/shared/Elements/elements.h (revision 21708)
148+++ ../trunk-jpl/src/c/shared/Elements/elements.h (revision 21709)
149@@ -32,7 +32,7 @@
150 IssmDouble* PrecipitationsLgm,IssmDouble* PrecipitationsPresentday,
151 IssmDouble* TemperaturesLgm, IssmDouble* TemperaturesPresentday,
152 IssmDouble* monthlytemperaturesout, IssmDouble* monthlyprecout);
153-void ComputeD18OTemperaturePrecipitationFromPD(IssmDouble d018,IssmDouble dpermil,
154+void ComputeD18OTemperaturePrecipitationFromPD(IssmDouble d018,IssmDouble dpermil,IssmDouble f,
155 IssmDouble* PrecipitationPresentday,IssmDouble* TemperaturePresentday,
156 IssmDouble* monthlytemperaturesout, IssmDouble* monthlyprecout);
157 IssmDouble DrainageFunctionWaterfraction(IssmDouble waterfraction, IssmDouble dt=0.);
158Index: ../trunk-jpl/src/c/shared/Elements/ComputeD18OTemperaturePrecipitationFromPD.cpp
159===================================================================
160--- ../trunk-jpl/src/c/shared/Elements/ComputeD18OTemperaturePrecipitationFromPD.cpp (revision 21708)
161+++ ../trunk-jpl/src/c/shared/Elements/ComputeD18OTemperaturePrecipitationFromPD.cpp (revision 21709)
162@@ -6,7 +6,7 @@
163 #include "./elements.h"
164 #include "../Numerics/numerics.h"
165
166-void ComputeD18OTemperaturePrecipitationFromPD(IssmDouble d018,IssmDouble dpermil,
167+void ComputeD18OTemperaturePrecipitationFromPD(IssmDouble d018,IssmDouble dpermil,IssmDouble f,
168 IssmDouble* PrecipitationPresentday,IssmDouble* TemperaturePresentday,
169 IssmDouble* monthlytemperaturesout, IssmDouble* monthlyprecout){
170
171@@ -22,7 +22,7 @@
172 for (int imonth = 0; imonth<12; imonth++){
173
174 monthlytemperaturestmp[imonth] = TemperaturePresentday[imonth] + deltaTemp;
175- monthlyprectmp[imonth] = PrecipitationPresentday[imonth]*exp((0.169/dpermil)*deltaTemp);
176+ monthlyprectmp[imonth] = PrecipitationPresentday[imonth]*exp((f/dpermil)*deltaTemp);
177
178 /*Assign output pointer*/
179 *(monthlytemperaturesout+imonth) = monthlytemperaturestmp[imonth];
Note: See TracBrowser for help on using the repository browser.