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

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

NEW: adding Archive/23390-24306

File size: 6.5 KB
  • ../trunk-jpl/src/c/classes/Elements/Element.cpp

     
    32543254        IssmDouble init_scaling=0.0;
    32553255        IssmDouble thermo_scaling=1.0;
    32563256        IssmDouble adThresh=1023.0;
    3257         int offsetend;
     3257        int offsetend=-1;
    32583258        IssmDouble time0, timeend, delta;
    32593259
    32603260        /*}}}*/
     
    34773477        if (isclimatology){
    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){
    34833483                        delta=(time-time0) - (timeend-time0)*(reCast<int,IssmDouble>((time-time0)/(timeend-time0)));
  • ../trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp

     
    1818        if (isclimatology){
    1919                int v;
    2020                IssmDouble time,dt,delta,starttime,finaltime;
    21                 int offsetend;
     21                int offsetend=-1;
    2222                IssmDouble time0, timeend, timeclim;
    2323
    2424                femmodel->parameters->FindParam(&time,TimeEnum);
     
    4343
    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)));
    5051                                if (delta==0){ timeclim=timeend;}
     
    405406        int v;
    406407        bool isclimatology=false;
    407408        IssmDouble time,delta,starttime,finaltime;
    408         int offsetend;
     409        int offsetend=-1;
    409410        IssmDouble time0, timeend, timeclim;
    410411
    411412        femmodel->parameters->FindParam(&isclimatology,SmbIsclimatologyEnum);
     
    434435
    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)));
    441443                                if (delta==0){ timeclim=timeend;}
     
    446448
    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)));
    453456                                if (delta==0){ timeclim=timeend;}
     
    458461
    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)));
    465469                                if (delta==0){ timeclim=timeend;}
     
    500504        int v;
    501505        bool isclimatology=false;
    502506        IssmDouble time,delta,starttime,finaltime;
    503         int offsetend;
     507        int offsetend=-1;
    504508        IssmDouble time0, timeend, timeclim;
    505509
    506510        femmodel->parameters->FindParam(&isclimatology,SmbIsclimatologyEnum);
     
    531535
    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)));
    538543                                if (delta==0){ timeclim=timeend;}
     
    543548
    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)));
    550556                                if (delta==0){ timeclim=timeend;}
     
    555561
    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)));
    562569                                if (delta==0){ timeclim=timeend;}
     
    567574
    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)));
    574582                                if (delta==0){ timeclim=timeend;}
Note: See TracBrowser for help on using the repository browser.