[24307] | 1 | Index: ../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)));
|
---|
| 23 | Index: ../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;}
|
---|