Changeset 21709


Ignore:
Timestamp:
05/08/17 10:43:54 (8 years ago)
Author:
jcuzzone
Message:

NEW: added f temperature precipitation scaling factor

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

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/SmbAnalysis.cpp

    r21469 r21709  
    219219                               
    220220                                parameters->AddObject(iomodel->CopyConstantObject("md.smb.dpermil",SmbDpermilEnum));
     221                           parameters->AddObject(iomodel->CopyConstantObject("md.smb.f",SmbFEnum));
    221222                        }
    222223                        break;
  • issm/trunk-jpl/src/c/classes/Elements/Element.cpp

    r21701 r21709  
    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
     
    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]);
  • issm/trunk-jpl/src/c/shared/Elements/ComputeD18OTemperaturePrecipitationFromPD.cpp

    r19225 r21709  
    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){
     
    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*/
  • issm/trunk-jpl/src/c/shared/Elements/elements.h

    r21381 r21709  
    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); 
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r21674 r21709  
    458458        SMBd18opddEnum,
    459459        SmbDpermilEnum,
     460        SmbFEnum,
    460461        SMBgradientsEnum,
    461462        SmbMonthlytemperaturesEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r21674 r21709  
    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";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r21674 r21709  
    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;
     
    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;
     
    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;
     
    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;
     
    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;
     
    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;
Note: See TracChangeset for help on using the changeset viewer.