source: issm/oecreview/Archive/23390-24306/ISSM-23818-23819.diff@ 24307

Last change on this file since 24307 was 24307, checked in by Mathieu Morlighem, 5 years ago

NEW: adding Archive/23390-24306

File size: 6.5 KB
RevLine 
[24307]1Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
2===================================================================
3--- ../trunk-jpl/src/c/classes/Elements/Element.cpp (revision 23818)
4+++ ../trunk-jpl/src/c/classes/Elements/Element.cpp (revision 23819)
5@@ -3254,7 +3254,7 @@
6 IssmDouble init_scaling=0.0;
7 IssmDouble thermo_scaling=1.0;
8 IssmDouble adThresh=1023.0;
9- int offsetend;
10+ int offsetend=-1;
11 IssmDouble time0, timeend, delta;
12
13 /*}}}*/
14@@ -3477,7 +3477,7 @@
15 if (isclimatology){
16 //If this is a climatology, we need to repeat the forcing after the final time
17 offsetend=dynamic_cast<TransientInput*>(Ta_input)->GetTimeInputOffset(finaltime);
18- time0=dynamic_cast<TransientInput*>(Ta_input)->GetTimeByOffset(0);
19+ time0=dynamic_cast<TransientInput*>(Ta_input)->GetTimeByOffset(-1);
20 timeend=dynamic_cast<TransientInput*>(Ta_input)->GetTimeByOffset(offsetend);
21 if (time>time0 & timeend>time0){
22 delta=(time-time0) - (timeend-time0)*(reCast<int,IssmDouble>((time-time0)/(timeend-time0)));
23Index: ../trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp
24===================================================================
25--- ../trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp (revision 23818)
26+++ ../trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp (revision 23819)
27@@ -18,7 +18,7 @@
28 if (isclimatology){
29 int v;
30 IssmDouble time,dt,delta,starttime,finaltime;
31- int offsetend;
32+ int offsetend=-1;
33 IssmDouble time0, timeend, timeclim;
34
35 femmodel->parameters->FindParam(&time,TimeEnum);
36@@ -43,8 +43,9 @@
37
38 //Get accumulation climatology value
39 offsetend=dynamic_cast<TransientInput*>(smb_input)->GetTimeInputOffset(finaltime);
40- time0=dynamic_cast<TransientInput*>(smb_input)->GetTimeByOffset(0);
41+ time0=dynamic_cast<TransientInput*>(smb_input)->GetTimeByOffset(-1);
42 timeend=dynamic_cast<TransientInput*>(smb_input)->GetTimeByOffset(offsetend);
43+ timeclim=time;
44 if (time>time0 & timeend>time0){
45 delta=(time-time0) - (timeend-time0)*(reCast<int,IssmDouble>((time-time0)/(timeend-time0)));
46 if (delta==0){ timeclim=timeend;}
47@@ -405,7 +406,7 @@
48 int v;
49 bool isclimatology=false;
50 IssmDouble time,delta,starttime,finaltime;
51- int offsetend;
52+ int offsetend=-1;
53 IssmDouble time0, timeend, timeclim;
54
55 femmodel->parameters->FindParam(&isclimatology,SmbIsclimatologyEnum);
56@@ -434,8 +435,9 @@
57
58 //Get accumulation climatology value
59 offsetend=dynamic_cast<TransientInput*>(acc_input)->GetTimeInputOffset(finaltime);
60- time0=dynamic_cast<TransientInput*>(acc_input)->GetTimeByOffset(0);
61+ time0=dynamic_cast<TransientInput*>(acc_input)->GetTimeByOffset(-1);
62 timeend=dynamic_cast<TransientInput*>(acc_input)->GetTimeByOffset(offsetend);
63+ timeclim=time;
64 if (time>time0 & timeend>time0){
65 delta=(time-time0) - (timeend-time0)*(reCast<int,IssmDouble>((time-time0)/(timeend-time0)));
66 if (delta==0){ timeclim=timeend;}
67@@ -446,8 +448,9 @@
68
69 //Get evaporation climatology value
70 offsetend=dynamic_cast<TransientInput*>(evap_input)->GetTimeInputOffset(finaltime);
71- time0=dynamic_cast<TransientInput*>(evap_input)->GetTimeByOffset(0);
72+ time0=dynamic_cast<TransientInput*>(evap_input)->GetTimeByOffset(-1);
73 timeend=dynamic_cast<TransientInput*>(evap_input)->GetTimeByOffset(offsetend);
74+ timeclim=time;
75 if (time>time0 & timeend>time0){
76 delta=(time-time0) - (timeend-time0)*(reCast<int,IssmDouble>((time-time0)/(timeend-time0)));
77 if (delta==0){ timeclim=timeend;}
78@@ -458,8 +461,9 @@
79
80 //Get runoff climatology value
81 offsetend=dynamic_cast<TransientInput*>(runoff_input)->GetTimeInputOffset(finaltime);
82- time0=dynamic_cast<TransientInput*>(runoff_input)->GetTimeByOffset(0);
83+ time0=dynamic_cast<TransientInput*>(runoff_input)->GetTimeByOffset(-1);
84 timeend=dynamic_cast<TransientInput*>(runoff_input)->GetTimeByOffset(offsetend);
85+ timeclim=time;
86 if (time>time0 & timeend>time0){
87 delta=(time-time0) - (timeend-time0)*(reCast<int,IssmDouble>((time-time0)/(timeend-time0)));
88 if (delta==0){ timeclim=timeend;}
89@@ -500,7 +504,7 @@
90 int v;
91 bool isclimatology=false;
92 IssmDouble time,delta,starttime,finaltime;
93- int offsetend;
94+ int offsetend=-1;
95 IssmDouble time0, timeend, timeclim;
96
97 femmodel->parameters->FindParam(&isclimatology,SmbIsclimatologyEnum);
98@@ -531,8 +535,9 @@
99
100 //Get accumulation climatology value
101 offsetend=dynamic_cast<TransientInput*>(acc_input)->GetTimeInputOffset(finaltime);
102- time0=dynamic_cast<TransientInput*>(acc_input)->GetTimeByOffset(0);
103+ time0=dynamic_cast<TransientInput*>(acc_input)->GetTimeByOffset(-1);
104 timeend=dynamic_cast<TransientInput*>(acc_input)->GetTimeByOffset(offsetend);
105+ timeclim=time;
106 if (time>time0 & timeend>time0){
107 delta=(time-time0) - (timeend-time0)*(reCast<int,IssmDouble>((time-time0)/(timeend-time0)));
108 if (delta==0){ timeclim=timeend;}
109@@ -543,8 +548,9 @@
110
111 //Get evaporation climatology value
112 offsetend=dynamic_cast<TransientInput*>(evap_input)->GetTimeInputOffset(finaltime);
113- time0=dynamic_cast<TransientInput*>(evap_input)->GetTimeByOffset(0);
114+ time0=dynamic_cast<TransientInput*>(evap_input)->GetTimeByOffset(-1);
115 timeend=dynamic_cast<TransientInput*>(evap_input)->GetTimeByOffset(offsetend);
116+ timeclim=time;
117 if (time>time0){
118 delta=(time-time0) - (timeend-time0)*(reCast<int,IssmDouble>((time-time0)/(timeend-time0)));
119 if (delta==0){ timeclim=timeend;}
120@@ -555,8 +561,9 @@
121
122 //Get melt climatology value
123 offsetend=dynamic_cast<TransientInput*>(melt_input)->GetTimeInputOffset(finaltime);
124- time0=dynamic_cast<TransientInput*>(melt_input)->GetTimeByOffset(0);
125+ time0=dynamic_cast<TransientInput*>(melt_input)->GetTimeByOffset(-1);
126 timeend=dynamic_cast<TransientInput*>(melt_input)->GetTimeByOffset(offsetend);
127+ timeclim=time;
128 if (time>time0){
129 delta=(time-time0) - (timeend-time0)*(reCast<int,IssmDouble>((time-time0)/(timeend-time0)));
130 if (delta==0){ timeclim=timeend;}
131@@ -567,8 +574,9 @@
132
133 //Get refreeze climatology value
134 offsetend=dynamic_cast<TransientInput*>(refreeze_input)->GetTimeInputOffset(finaltime);
135- time0=dynamic_cast<TransientInput*>(refreeze_input)->GetTimeByOffset(0);
136+ time0=dynamic_cast<TransientInput*>(refreeze_input)->GetTimeByOffset(-1);
137 timeend=dynamic_cast<TransientInput*>(refreeze_input)->GetTimeByOffset(offsetend);
138+ timeclim=time;
139 if (time>time0){
140 delta=(time-time0) - (timeend-time0)*(reCast<int,IssmDouble>((time-time0)/(timeend-time0)));
141 if (delta==0){ timeclim=timeend;}
Note: See TracBrowser for help on using the repository browser.