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
  • ../trunk-jpl/src/c/classes/Elements/Element.cpp

     
    526526        IssmDouble* PrecipitationsPresentday=xNew<IssmDouble>(12*numvertices);
    527527        IssmDouble* tmp=xNew<IssmDouble>(numvertices);
    528528        IssmDouble Delta18oTime;
    529         IssmDouble dpermil;
     529        IssmDouble dpermil,f;
    530530        IssmDouble time,yts,time_yr,month;
    531531        this->parameters->FindParam(&time,TimeEnum);
    532532        this->parameters->FindParam(&yts,ConstantsYtsEnum);
     533        this->parameters->FindParam(&f,SmbFEnum);
    533534        time_yr=floor(time/yts)*yts;
    534535
    535536        /*Get some pdd parameters*/
     
    555556
    556557        /*Compute the temperature and precipitation*/
    557558        for(int iv=0;iv<numvertices;iv++){
    558                 ComputeD18OTemperaturePrecipitationFromPD(Delta18oTime,dpermil,
     559                ComputeD18OTemperaturePrecipitationFromPD(Delta18oTime,dpermil,f,
    559560                                        &PrecipitationsPresentday[iv*12], &TemperaturesPresentday[iv*12],
    560561                                        &monthlytemperatures[iv*12], &monthlyprec[iv*12]);
    561562        }
  • ../trunk-jpl/src/c/analyses/SmbAnalysis.cpp

     
    218218                                iomodel->DeleteData(temp,"md.smb.delta18o");
    219219                               
    220220                                parameters->AddObject(iomodel->CopyConstantObject("md.smb.dpermil",SmbDpermilEnum));
     221                           parameters->AddObject(iomodel->CopyConstantObject("md.smb.f",SmbFEnum));
    221222                        }
    222223                        break;
    223224                case SMBgradientsEnum:
  • ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

     
    457457        SmbSealevEnum,
    458458        SMBd18opddEnum,
    459459        SmbDpermilEnum,
     460        SmbFEnum,
    460461        SMBgradientsEnum,
    461462        SmbMonthlytemperaturesEnum,
    462463        SmbHrefEnum,
  • ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

     
    458458                case SmbSealevEnum : return "SmbSealev";
    459459                case SMBd18opddEnum : return "SMBd18opdd";
    460460                case SmbDpermilEnum : return "SmbDpermil";
     461                case SmbFEnum : return "SmbF";
    461462                case SMBgradientsEnum : return "SMBgradients";
    462463                case SmbMonthlytemperaturesEnum : return "SmbMonthlytemperatures";
    463464                case SmbHrefEnum : return "SmbHref";
  • ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

     
    467467              else if (strcmp(name,"SmbSealev")==0) return SmbSealevEnum;
    468468              else if (strcmp(name,"SMBd18opdd")==0) return SMBd18opddEnum;
    469469              else if (strcmp(name,"SmbDpermil")==0) return SmbDpermilEnum;
     470              else if (strcmp(name,"SmbF")==0) return SmbFEnum;
    470471              else if (strcmp(name,"SMBgradients")==0) return SMBgradientsEnum;
    471472              else if (strcmp(name,"SmbMonthlytemperatures")==0) return SmbMonthlytemperaturesEnum;
    472473              else if (strcmp(name,"SmbHref")==0) return SmbHrefEnum;
     
    504505              else if (strcmp(name,"AndroidFrictionCoefficient")==0) return AndroidFrictionCoefficientEnum;
    505506              else if (strcmp(name,"ResetPenalties")==0) return ResetPenaltiesEnum;
    506507              else if (strcmp(name,"SurfaceAbsVelMisfit")==0) return SurfaceAbsVelMisfitEnum;
    507               else if (strcmp(name,"SurfaceArea")==0) return SurfaceAreaEnum;
    508508         else stage=5;
    509509   }
    510510   if(stage==5){
    511               if (strcmp(name,"SurfaceAverageVelMisfit")==0) return SurfaceAverageVelMisfitEnum;
     511              if (strcmp(name,"SurfaceArea")==0) return SurfaceAreaEnum;
     512              else if (strcmp(name,"SurfaceAverageVelMisfit")==0) return SurfaceAverageVelMisfitEnum;
    512513              else if (strcmp(name,"SurfaceLogVelMisfit")==0) return SurfaceLogVelMisfitEnum;
    513514              else if (strcmp(name,"SurfaceLogVxVyMisfit")==0) return SurfaceLogVxVyMisfitEnum;
    514515              else if (strcmp(name,"SurfaceRelVelMisfit")==0) return SurfaceRelVelMisfitEnum;
     
    627628              else if (strcmp(name,"Outputdefinition28")==0) return Outputdefinition28Enum;
    628629              else if (strcmp(name,"Outputdefinition29")==0) return Outputdefinition29Enum;
    629630              else if (strcmp(name,"Outputdefinition30")==0) return Outputdefinition30Enum;
    630               else if (strcmp(name,"Outputdefinition31")==0) return Outputdefinition31Enum;
    631631         else stage=6;
    632632   }
    633633   if(stage==6){
    634               if (strcmp(name,"Outputdefinition32")==0) return Outputdefinition32Enum;
     634              if (strcmp(name,"Outputdefinition31")==0) return Outputdefinition31Enum;
     635              else if (strcmp(name,"Outputdefinition32")==0) return Outputdefinition32Enum;
    635636              else if (strcmp(name,"Outputdefinition33")==0) return Outputdefinition33Enum;
    636637              else if (strcmp(name,"Outputdefinition34")==0) return Outputdefinition34Enum;
    637638              else if (strcmp(name,"Outputdefinition35")==0) return Outputdefinition35Enum;
     
    750751              else if (strcmp(name,"QmuInName")==0) return QmuInNameEnum;
    751752              else if (strcmp(name,"QmuOutName")==0) return QmuOutNameEnum;
    752753              else if (strcmp(name,"Regular")==0) return RegularEnum;
    753               else if (strcmp(name,"Scaled")==0) return ScaledEnum;
    754754         else stage=7;
    755755   }
    756756   if(stage==7){
    757               if (strcmp(name,"Separate")==0) return SeparateEnum;
     757              if (strcmp(name,"Scaled")==0) return ScaledEnum;
     758              else if (strcmp(name,"Separate")==0) return SeparateEnum;
    758759              else if (strcmp(name,"Sset")==0) return SsetEnum;
    759760              else if (strcmp(name,"Dense")==0) return DenseEnum;
    760761              else if (strcmp(name,"MpiDense")==0) return MpiDenseEnum;
     
    873874              else if (strcmp(name,"StringParam")==0) return StringParamEnum;
    874875              else if (strcmp(name,"Seg")==0) return SegEnum;
    875876              else if (strcmp(name,"SegInput")==0) return SegInputEnum;
    876               else if (strcmp(name,"Tria")==0) return TriaEnum;
    877877         else stage=8;
    878878   }
    879879   if(stage==8){
    880               if (strcmp(name,"TriaInput")==0) return TriaInputEnum;
     880              if (strcmp(name,"Tria")==0) return TriaEnum;
     881              else if (strcmp(name,"TriaInput")==0) return TriaInputEnum;
    881882              else if (strcmp(name,"Tetra")==0) return TetraEnum;
    882883              else if (strcmp(name,"TetraInput")==0) return TetraInputEnum;
    883884              else if (strcmp(name,"Penta")==0) return PentaEnum;
     
    996997              else if (strcmp(name,"MINI")==0) return MINIEnum;
    997998              else if (strcmp(name,"MINIcondensed")==0) return MINIcondensedEnum;
    998999              else if (strcmp(name,"TaylorHood")==0) return TaylorHoodEnum;
    999               else if (strcmp(name,"LATaylorHood")==0) return LATaylorHoodEnum;
    10001000         else stage=9;
    10011001   }
    10021002   if(stage==9){
    1003               if (strcmp(name,"XTaylorHood")==0) return XTaylorHoodEnum;
     1003              if (strcmp(name,"LATaylorHood")==0) return LATaylorHoodEnum;
     1004              else if (strcmp(name,"XTaylorHood")==0) return XTaylorHoodEnum;
    10041005              else if (strcmp(name,"OneLayerP4z")==0) return OneLayerP4zEnum;
    10051006              else if (strcmp(name,"CrouzeixRaviart")==0) return CrouzeixRaviartEnum;
    10061007              else if (strcmp(name,"LACrouzeixRaviart")==0) return LACrouzeixRaviartEnum;
  • ../trunk-jpl/src/c/shared/Elements/elements.h

     
    3232                                           IssmDouble* PrecipitationsLgm,IssmDouble* PrecipitationsPresentday,
    3333                                           IssmDouble* TemperaturesLgm, IssmDouble* TemperaturesPresentday,
    3434                                           IssmDouble* monthlytemperaturesout, IssmDouble* monthlyprecout);
    35 void ComputeD18OTemperaturePrecipitationFromPD(IssmDouble d018,IssmDouble dpermil,
     35void ComputeD18OTemperaturePrecipitationFromPD(IssmDouble d018,IssmDouble dpermil,IssmDouble f,
    3636                                               IssmDouble* PrecipitationPresentday,IssmDouble* TemperaturePresentday,
    3737                                               IssmDouble* monthlytemperaturesout, IssmDouble* monthlyprecout); 
    3838IssmDouble DrainageFunctionWaterfraction(IssmDouble waterfraction, IssmDouble dt=0.);
  • ../trunk-jpl/src/c/shared/Elements/ComputeD18OTemperaturePrecipitationFromPD.cpp

     
    66#include "./elements.h"
    77#include "../Numerics/numerics.h"
    88
    9 void ComputeD18OTemperaturePrecipitationFromPD(IssmDouble d018,IssmDouble dpermil,
     9void ComputeD18OTemperaturePrecipitationFromPD(IssmDouble d018,IssmDouble dpermil,IssmDouble f,
    1010                                               IssmDouble* PrecipitationPresentday,IssmDouble* TemperaturePresentday,
    1111                                               IssmDouble* monthlytemperaturesout, IssmDouble* monthlyprecout){
    1212 
     
    2222  for (int imonth = 0; imonth<12; imonth++){
    2323   
    2424    monthlytemperaturestmp[imonth] = TemperaturePresentday[imonth] + deltaTemp;
    25     monthlyprectmp[imonth] = PrecipitationPresentday[imonth]*exp((0.169/dpermil)*deltaTemp);
     25    monthlyprectmp[imonth] = PrecipitationPresentday[imonth]*exp((f/dpermil)*deltaTemp);
    2626   
    2727    /*Assign output pointer*/
    2828    *(monthlytemperaturesout+imonth) = monthlytemperaturestmp[imonth];
Note: See TracBrowser for help on using the repository browser.