Changeset 23819


Ignore:
Timestamp:
04/01/19 14:27:40 (6 years ago)
Author:
schlegel
Message:

CHG: added initialization for climtime

Location:
issm/trunk-jpl/src/c
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/Elements/Element.cpp

    r23817 r23819  
    32553255        IssmDouble thermo_scaling=1.0;
    32563256        IssmDouble adThresh=1023.0;
    3257         int offsetend;
     3257        int offsetend=-1;
    32583258        IssmDouble time0, timeend, delta;
    32593259
     
    34783478                //If this is a climatology, we need to repeat the forcing after the final time
    34793479                offsetend=dynamic_cast<TransientInput*>(Ta_input)->GetTimeInputOffset(finaltime);
    3480                 time0=dynamic_cast<TransientInput*>(Ta_input)->GetTimeByOffset(0);
     3480                time0=dynamic_cast<TransientInput*>(Ta_input)->GetTimeByOffset(-1);
    34813481                timeend=dynamic_cast<TransientInput*>(Ta_input)->GetTimeByOffset(offsetend);
    34823482                if (time>time0 & timeend>time0){
  • issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp

    r23817 r23819  
    1919                int v;
    2020                IssmDouble time,dt,delta,starttime,finaltime;
    21                 int offsetend;
     21                int offsetend=-1;
    2222                IssmDouble time0, timeend, timeclim;
    2323
     
    4444                        //Get accumulation climatology value
    4545                        offsetend=dynamic_cast<TransientInput*>(smb_input)->GetTimeInputOffset(finaltime);
    46                         time0=dynamic_cast<TransientInput*>(smb_input)->GetTimeByOffset(0);
     46                        time0=dynamic_cast<TransientInput*>(smb_input)->GetTimeByOffset(-1);
    4747                        timeend=dynamic_cast<TransientInput*>(smb_input)->GetTimeByOffset(offsetend);
     48                        timeclim=time;
    4849                        if (time>time0 & timeend>time0){
    4950                                delta=(time-time0) - (timeend-time0)*(reCast<int,IssmDouble>((time-time0)/(timeend-time0)));
     
    406407        bool isclimatology=false;
    407408        IssmDouble time,delta,starttime,finaltime;
    408         int offsetend;
     409        int offsetend=-1;
    409410        IssmDouble time0, timeend, timeclim;
    410411
     
    435436                        //Get accumulation climatology value
    436437                        offsetend=dynamic_cast<TransientInput*>(acc_input)->GetTimeInputOffset(finaltime);
    437                         time0=dynamic_cast<TransientInput*>(acc_input)->GetTimeByOffset(0);
     438                        time0=dynamic_cast<TransientInput*>(acc_input)->GetTimeByOffset(-1);
    438439                        timeend=dynamic_cast<TransientInput*>(acc_input)->GetTimeByOffset(offsetend);
     440                        timeclim=time;
    439441                        if (time>time0 & timeend>time0){
    440442                                delta=(time-time0) - (timeend-time0)*(reCast<int,IssmDouble>((time-time0)/(timeend-time0)));
     
    447449                        //Get evaporation climatology value
    448450                        offsetend=dynamic_cast<TransientInput*>(evap_input)->GetTimeInputOffset(finaltime);
    449                         time0=dynamic_cast<TransientInput*>(evap_input)->GetTimeByOffset(0);
     451                        time0=dynamic_cast<TransientInput*>(evap_input)->GetTimeByOffset(-1);
    450452                        timeend=dynamic_cast<TransientInput*>(evap_input)->GetTimeByOffset(offsetend);
     453                        timeclim=time;
    451454                        if (time>time0 & timeend>time0){
    452455                                delta=(time-time0) - (timeend-time0)*(reCast<int,IssmDouble>((time-time0)/(timeend-time0)));
     
    459462                        //Get runoff climatology value
    460463                        offsetend=dynamic_cast<TransientInput*>(runoff_input)->GetTimeInputOffset(finaltime);
    461                         time0=dynamic_cast<TransientInput*>(runoff_input)->GetTimeByOffset(0);
     464                        time0=dynamic_cast<TransientInput*>(runoff_input)->GetTimeByOffset(-1);
    462465                        timeend=dynamic_cast<TransientInput*>(runoff_input)->GetTimeByOffset(offsetend);
     466                        timeclim=time;
    463467                        if (time>time0 & timeend>time0){
    464468                                delta=(time-time0) - (timeend-time0)*(reCast<int,IssmDouble>((time-time0)/(timeend-time0)));
     
    501505        bool isclimatology=false;
    502506        IssmDouble time,delta,starttime,finaltime;
    503         int offsetend;
     507        int offsetend=-1;
    504508        IssmDouble time0, timeend, timeclim;
    505509
     
    532536                        //Get accumulation climatology value
    533537                        offsetend=dynamic_cast<TransientInput*>(acc_input)->GetTimeInputOffset(finaltime);
    534                         time0=dynamic_cast<TransientInput*>(acc_input)->GetTimeByOffset(0);
     538                        time0=dynamic_cast<TransientInput*>(acc_input)->GetTimeByOffset(-1);
    535539                        timeend=dynamic_cast<TransientInput*>(acc_input)->GetTimeByOffset(offsetend);
     540                        timeclim=time;
    536541                        if (time>time0 & timeend>time0){
    537542                                delta=(time-time0) - (timeend-time0)*(reCast<int,IssmDouble>((time-time0)/(timeend-time0)));
     
    544549                        //Get evaporation climatology value
    545550                        offsetend=dynamic_cast<TransientInput*>(evap_input)->GetTimeInputOffset(finaltime);
    546                         time0=dynamic_cast<TransientInput*>(evap_input)->GetTimeByOffset(0);
     551                        time0=dynamic_cast<TransientInput*>(evap_input)->GetTimeByOffset(-1);
    547552                        timeend=dynamic_cast<TransientInput*>(evap_input)->GetTimeByOffset(offsetend);
     553                        timeclim=time;
    548554                        if (time>time0){
    549555                                delta=(time-time0) - (timeend-time0)*(reCast<int,IssmDouble>((time-time0)/(timeend-time0)));
     
    556562                        //Get melt climatology value
    557563                        offsetend=dynamic_cast<TransientInput*>(melt_input)->GetTimeInputOffset(finaltime);
    558                         time0=dynamic_cast<TransientInput*>(melt_input)->GetTimeByOffset(0);
     564                        time0=dynamic_cast<TransientInput*>(melt_input)->GetTimeByOffset(-1);
    559565                        timeend=dynamic_cast<TransientInput*>(melt_input)->GetTimeByOffset(offsetend);
     566                        timeclim=time;
    560567                        if (time>time0){
    561568                                delta=(time-time0) - (timeend-time0)*(reCast<int,IssmDouble>((time-time0)/(timeend-time0)));
     
    568575                        //Get refreeze climatology value
    569576                        offsetend=dynamic_cast<TransientInput*>(refreeze_input)->GetTimeInputOffset(finaltime);
    570                         time0=dynamic_cast<TransientInput*>(refreeze_input)->GetTimeByOffset(0);
     577                        time0=dynamic_cast<TransientInput*>(refreeze_input)->GetTimeByOffset(-1);
    571578                        timeend=dynamic_cast<TransientInput*>(refreeze_input)->GetTimeByOffset(offsetend);
     579                        timeclim=time;
    572580                        if (time>time0){
    573581                                delta=(time-time0) - (timeend-time0)*(reCast<int,IssmDouble>((time-time0)/(timeend-time0)));
Note: See TracChangeset for help on using the changeset viewer.