Changeset 18717


Ignore:
Timestamp:
10/31/14 10:58:45 (10 years ago)
Author:
lemorzad
Message:

NEW: modified lapse rate to PDD scheme

Location:
issm/trunk-jpl/src
Files:
6 added
14 edited

Legend:

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

    r18699 r18717  
    19161916   IssmDouble agd[NUMVERTICES];             // surface mass balance
    19171917   IssmDouble monthlytemperatures[NUMVERTICES][12],monthlyprec[NUMVERTICES][12];
    1918    IssmDouble h[NUMVERTICES],s[NUMVERTICES]; // ,b
    1919    IssmDouble rho_water,rho_ice,desfac,s0p;
     1918   IssmDouble TemperaturesPresentday[NUMVERTICES][12],TemperaturesLgm[NUMVERTICES][12];
     1919   IssmDouble h[NUMVERTICES],s[NUMVERTICES];
     1920   IssmDouble rho_water,rho_ice,desfac,s0p,s0t,rlaps,rlapslgm;
     1921   IssmDouble PfacTime,TdiffTime,sealevTime;
    19201922
    19211923   /*Recover monthly temperatures and precipitation*/
    19221924   Input*     input=inputs->GetInput(SurfaceforcingsMonthlytemperaturesEnum); _assert_(input);
    19231925   Input*     input2=inputs->GetInput(SurfaceforcingsPrecipitationEnum); _assert_(input2);
     1926   Input*     input3=inputs->GetInput(SurfaceforcingsTemperaturesPresentdayEnum);  _assert_(input3);
     1927   Input*     input4=inputs->GetInput(SurfaceforcingsTemperaturesLgmEnum);   _assert_(input4);
    19241928   GaussPenta* gauss=new GaussPenta();
    19251929   IssmDouble time,yts;
     
    19331937       input2->GetInputValue(&monthlyprec[iv][month],gauss,time+month/12.*yts);
    19341938       monthlyprec[iv][month]=monthlyprec[iv][month]*yts; // convertion to m/yr
     1939       input3->GetInputValue(&TemperaturesPresentday[iv][month],gauss,month/12.*yts);
     1940       TemperaturesPresentday[iv][month]=TemperaturesPresentday[iv][month]-273.15; // conversion from Kelvin to celcius
     1941       input4->GetInputValue(&TemperaturesLgm[iv][month],gauss,month/12.*yts);
     1942       TemperaturesLgm[iv][month]=TemperaturesLgm[iv][month]-273.15; // conversion from Kelvin to celcius
    19351943     }
    19361944   }
     1945
     1946  /*Recover Pfac, Tdiff and sealev at time t:*/
     1947  this->parameters->FindParam(&PfacTime,SurfaceforcingsPfacEnum,time);
     1948  this->parameters->FindParam(&TdiffTime,SurfaceforcingsTdiffEnum,time);
     1949  this->parameters->FindParam(&sealevTime,SurfaceforcingsSealevEnum,time);
    19371950
    19381951  /*Recover info at the vertices: */
     
    19441957  rho_water=matpar->GetRhoFreshwater();
    19451958
    1946   /*Get desertification effect parameters*/
     1959  /*Get other pdd parameters*/
    19471960  desfac=matpar->GetDesFac();
    19481961  s0p=matpar->GetS0p();
     1962  s0t=matpar->GetS0t();
     1963  rlaps=matpar->GetRlaps();
     1964  rlapslgm=matpar->GetRlapslgm();
    19491965
    19501966   /*measure the surface mass balance*/
    19511967   for (int iv = 0; iv < NUMVERTICES; iv++){
    1952      agd[iv]=PddSurfaceMassBlance(&monthlytemperatures[iv][0], &monthlyprec[iv][0], pdds, pds,
    1953                                   signorm, yts, h[iv], s[iv], rho_ice, rho_water, desfac, s0p);
     1968     agd[iv]=PddSurfaceMassBlance(&monthlytemperatures[iv][0], &monthlyprec[iv][0], 
     1969                                  &TemperaturesLgm[iv][0], &TemperaturesPresentday[iv][0],
     1970                                  pdds,pds, signorm, yts, h[iv], s[iv], rho_ice, rho_water,
     1971                                  desfac, s0t, s0p,rlaps,rlapslgm,PfacTime,TdiffTime,sealevTime);
    19541972   }
    19551973
  • issm/trunk-jpl/src/c/classes/Elements/Tria.cpp

    r18699 r18717  
    17211721   IssmDouble agd[NUMVERTICES];             // surface mass balance
    17221722   IssmDouble monthlytemperatures[NUMVERTICES][12],monthlyprec[NUMVERTICES][12];
     1723   IssmDouble TemperaturesPresentday[NUMVERTICES][12],TemperaturesLgm[NUMVERTICES][12];
    17231724   IssmDouble h[NUMVERTICES],s[NUMVERTICES];
    1724    IssmDouble rho_water,rho_ice,desfac,s0p;
    1725 
    1726    /*Recover monthly temperatures and precipitation*/
     1725   IssmDouble rho_water,rho_ice,desfac,s0p,s0t,rlaps,rlapslgm;
     1726   IssmDouble PfacTime,TdiffTime,sealevTime;
     1727
     1728   /*Recover monthly temperatures and precipitation and Present day and LGm ones*/
    17271729   Input*     input=inputs->GetInput(SurfaceforcingsMonthlytemperaturesEnum); _assert_(input);
    17281730   Input*     input2=inputs->GetInput(SurfaceforcingsPrecipitationEnum); _assert_(input2);
     1731   Input*     input3=inputs->GetInput(SurfaceforcingsTemperaturesPresentdayEnum);    _assert_(input3);
     1732   Input*     input4=inputs->GetInput(SurfaceforcingsTemperaturesLgmEnum);          _assert_(input4);
    17291733   GaussTria* gauss=new GaussTria();
    17301734   IssmDouble time,yts;
     
    17381742       input2->GetInputValue(&monthlyprec[iv][month],gauss,time+month/12.*yts);
    17391743       monthlyprec[iv][month]=monthlyprec[iv][month]*yts; // convertion in m/y
     1744       input3->GetInputValue(&TemperaturesPresentday[iv][month],gauss,month/12.*yts);
     1745       TemperaturesPresentday[iv][month]=TemperaturesPresentday[iv][month]-273.15; // conversion from Kelvin to celcius
     1746       input4->GetInputValue(&TemperaturesLgm[iv][month],gauss,month/12.*yts);
     1747       TemperaturesLgm[iv][month]=TemperaturesLgm[iv][month]-273.15; // conversion from Kelvin to celcius
    17401748     }
    17411749   }
     1750
     1751  /*Recover Pfac, Tdiff and sealev at time t:*/
     1752  this->parameters->FindParam(&PfacTime,SurfaceforcingsPfacEnum,time);
     1753  this->parameters->FindParam(&TdiffTime,SurfaceforcingsTdiffEnum,time);
     1754  this->parameters->FindParam(&sealevTime,SurfaceforcingsSealevEnum,time);
    17421755
    17431756  /*Recover info at the vertices: */
     
    17491762  rho_water=matpar->GetRhoFreshwater();
    17501763
    1751   /*Get desertification effect parameters*/
     1764  /*Get other pdd parameters*/
    17521765  desfac=matpar->GetDesFac();
    17531766  s0p=matpar->GetS0p();
    1754 
     1767  s0t=matpar->GetS0t();
     1768  rlaps=matpar->GetRlaps();
     1769  rlapslgm=matpar->GetRlapslgm();
     1770     
    17551771   /*measure the surface mass balance*/
    17561772   for (int iv = 0; iv<NUMVERTICES; iv++){
    1757      agd[iv]=PddSurfaceMassBlance(&monthlytemperatures[iv][0], &monthlyprec[iv][0], pdds, pds, signorm, yts, h[iv], s[iv], rho_ice, rho_water, desfac, s0p);
     1773     agd[iv]=PddSurfaceMassBlance(&monthlytemperatures[iv][0], &monthlyprec[iv][0],
     1774                                  &TemperaturesLgm[iv][0], &TemperaturesPresentday[iv][0],
     1775                                  pdds, pds, signorm, yts, h[iv], s[iv], rho_ice, rho_water,
     1776                                  desfac, s0t, s0p,rlaps,rlapslgm,PfacTime,TdiffTime,sealevTime);
    17581777   }
    17591778
  • issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp

    r18581 r18717  
    5252                                        iomodel->Constant(&this->desfac,SurfaceforcingsDesfacEnum);
    5353                                        iomodel->Constant(&this->s0p,SurfaceforcingsS0pEnum);
     54                                        iomodel->Constant(&this->s0t,SurfaceforcingsS0tEnum);
     55                                        iomodel->Constant(&this->rlaps,SurfaceforcingsRlapsEnum);
     56                                        iomodel->Constant(&this->rlapslgm,SurfaceforcingsRlapslgmEnum);
    5457                                        break;
    5558                                case SMBgradientsEnum:
     
    142145        _printf_("   desfac: " << desfac << "\n");
    143146        _printf_("   s0p: " << s0p << "\n");
     147        _printf_("   s0t: " << s0t << "\n");
     148        _printf_("   rlaps: " << rlaps << "\n");
     149        _printf_("   rlapslgm: " << rlapslgm << "\n");
    144150        return;
    145151}
     
    184190        matpar->desfac=this->desfac;
    185191        matpar->s0p=this->s0p;
     192        matpar->s0t=this->s0t;
     193        matpar->rlaps=this->rlaps;
     194        matpar->rlapslgm=this->rlapslgm;
    186195
    187196        matpar->sediment_compressibility=this->sediment_compressibility;
     
    269278                case SurfaceforcingsS0pEnum:
    270279                        this->s0p=constant;
     280                        break;
     281                case SurfaceforcingsS0tEnum:
     282                        this->s0t=constant;
     283                        break;
     284                case SurfaceforcingsRlapsEnum:
     285                        this->rlaps=constant;
     286                        break;
     287                case SurfaceforcingsRlapslgmEnum:
     288                        this->rlapslgm=constant;
    271289                        break;
    272290                default:
     
    367385}
    368386/*}}}*/
     387IssmDouble Matpar::GetS0t(){/*{{{*/
     388        return s0t;
     389}
     390/*}}}*/
     391IssmDouble Matpar::GetRlaps(){/*{{{*/
     392        return rlaps;
     393}
     394/*}}}*/
     395IssmDouble Matpar::GetRlapslgm(){/*{{{*/
     396        return rlapslgm;
     397}
     398/*}}}*/
    369399IssmDouble Matpar::TMeltingPoint(IssmDouble pressure){/*{{{*/
    370400        return meltingpoint-beta*pressure;
  • issm/trunk-jpl/src/c/classes/Materials/Matpar.h

    r18581 r18717  
    3333                IssmDouble  desfac;
    3434                IssmDouble  s0p;
     35                IssmDouble  s0t;
     36                IssmDouble  rlaps;
     37                IssmDouble  rlapslgm;
    3538
    3639                /*hydrology Dual Porous Continuum: */   
     
    125128                IssmDouble GetDesFac();
    126129                IssmDouble GetS0p();
     130                IssmDouble GetS0t();
     131                IssmDouble GetRlaps();
     132                IssmDouble GetRlapslgm();
    127133                IssmDouble GetMaterialParameter(int in_enum);
    128134                /*}}}*/
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp

    r18492 r18717  
    3636        IssmDouble  *matrix                     = NULL;
    3737        int          count;
     38
     39        IssmDouble *temp = NULL;
     40        IssmDouble  yts;
     41        int         N,M;
    3842
    3943        /*Make sure current dataset is empty*/
     
    104108                        parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsDesfacEnum));
    105109                        parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsS0pEnum));
     110                        parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsS0tEnum));
     111                        parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsRlapsEnum));
     112                        parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsRlapslgmEnum));
    106113                        iomodel->Constant(&isdelta18o,SurfaceforcingsIsdelta18oEnum);
     114
     115                        iomodel->FetchData(&temp,&N,&M,SurfaceforcingsPfacEnum); _assert_(N==2);
     116                        for(i=0;i<M;i++) temp[M+i]=temp[M+i];
     117                        parameters->AddObject(new TransientParam(SurfaceforcingsPfacEnum,&temp[0],&temp[M],M));
     118                        iomodel->DeleteData(temp,SurfaceforcingsPfacEnum);
     119                       
     120                        iomodel->FetchData(&temp,&N,&M,SurfaceforcingsTdiffEnum); _assert_(N==2);
     121                        for(i=0;i<M;i++) temp[M+i]=temp[M+i];
     122                        parameters->AddObject(new TransientParam(SurfaceforcingsTdiffEnum,&temp[0],&temp[M],M));
     123                        iomodel->DeleteData(temp,SurfaceforcingsTdiffEnum);
     124
     125                        iomodel->FetchData(&temp,&N,&M,SurfaceforcingsSealevEnum); _assert_(N==2);
     126                        for(i=0;i<M;i++) temp[M+i]=temp[M+i];
     127                        parameters->AddObject(new TransientParam(SurfaceforcingsSealevEnum,&temp[0],&temp[M],M));
     128                        iomodel->DeleteData(temp,SurfaceforcingsSealevEnum);
     129
    107130                        if(isdelta18o){
    108                                 IssmDouble *temp = NULL;
    109                                 IssmDouble  yts;
    110                                 int         N,M;
    111131                                iomodel->Constant(&yts,ConstantsYtsEnum);
     132
    112133                                iomodel->FetchData(&temp,&N,&M,SurfaceforcingsDelta18oEnum); _assert_(N==2);
    113134                                for(i=0;i<M;i++) temp[M+i]=yts*temp[M+i];
  • issm/trunk-jpl/src/c/shared/Elements/ComputeDelta18oTemperaturePrecipitation.cpp

    r16164 r18717  
    2020  //  /(Delta18oLgm-Delta18oPresent-delta18oLapseRate*(Delta18oSurfaceLgm-Delta18oSurfacePresent));
    2121
    22   for (int imonth = 0; imonth<12; imonth++){ 
     22  for (int imonth = 0; imonth<12; imonth++){
    2323    monthlytemperaturestmp[imonth] = glacialindex*TemperaturesLgm[imonth] + (1.-glacialindex)*TemperaturesPresentday[imonth];
    2424    //monthlyprectmp[imonth] = 1.5*pow(2,((monthlytemperaturestmp[imonth]-273.15-0)/10)); //equation from rob's paper
  • issm/trunk-jpl/src/c/shared/Elements/PddSurfaceMassBalance.cpp

    r14951 r18717  
    66#include "../Numerics/numerics.h"
    77
    8 IssmDouble PddSurfaceMassBlance(IssmDouble* monthlytemperatures, IssmDouble* monthlyprec, IssmDouble* pdds, IssmDouble* pds, IssmDouble signorm, IssmDouble yts, IssmDouble h, IssmDouble s, IssmDouble rho_ice, IssmDouble rho_water, IssmDouble desfac, IssmDouble s0p){
     8IssmDouble PddSurfaceMassBlance(IssmDouble* monthlytemperatures, IssmDouble* monthlyprec,
     9                                IssmDouble* TemperaturesLgm, IssmDouble* TemperaturesPresentday,
     10                                IssmDouble* pdds, IssmDouble* pds, IssmDouble signorm,
     11                                IssmDouble yts, IssmDouble h, IssmDouble s, IssmDouble rho_ice,
     12                                IssmDouble rho_water, IssmDouble desfac, IssmDouble s0t,
     13                                IssmDouble s0p, IssmDouble rlaps, IssmDouble rlapslgm,
     14                                IssmDouble PfacTime,IssmDouble TdiffTime,IssmDouble sealevTime){
    915
    1016  // output:
     
    2026  IssmDouble sconv; //rhow_rain/rhoi / 12 months
    2127
    22   IssmDouble lapser=6.5, sealev=0.;    // lapse rate. degrees per meter. 7.5 lev's 99 paper, 9 Marshall 99 paper
    23   // IssmDouble desfac = 0.5;                 // desert elevation factor
    24   // IssmDouble s0p=0.;         // should be set to elevation from precip source
    25   IssmDouble s0t=0.;         // should be set to elevation from temperature source
     28  //IssmDouble  sealev=0.;         // degrees per meter. 7.5 lev's 99 paper, 9 Marshall 99 paper
     29  //IssmDouble  Pfac=0.5,Tdiff=0.5;
     30  IssmDouble  rtlaps;
     31  // IssmDouble lapser=6.5         // lapse rate
     32  // IssmDouble desfac = 0.5;      // desert elevation factor
     33  // IssmDouble s0p=0.;            // should be set to elevation from precip source
     34  // IssmDouble s0t=0.;         // should be set to elevation from temperature source
     35  IssmDouble tdiffh; 
    2636  IssmDouble st;             // elevation between altitude of the temp record and current altitude
    2737  IssmDouble sp;             // elevation between altitude of the prec record and current altitude
     
    6878
    6979  // seasonal loop
    70     for (iqj = 0; iqj < 12; iqj++){
    71       imonth =  ismon[iqj];
    72 
    73       st=(s-s0t)/1000.;
    74       tstar = monthlytemperatures[imonth] - lapser *max(st,sealev);
    75       Tsurf = tstar*deltm+Tsurf;       
     80  for (iqj = 0; iqj < 12; iqj++){
     81    imonth =  ismon[iqj];
     82   
     83    /*********compute lapse rate ****************/
     84    st=(s-s0t)/1000.;
     85    rtlaps=TdiffTime*rlapslgm + (1.-TdiffTime)*rlaps; // lapse rate
     86   
     87    /*********compute Surface temperature *******/
     88    tdiffh = TdiffTime*( TemperaturesLgm[imonth] - TemperaturesPresentday[imonth] );
     89    tstar = tdiffh + TemperaturesPresentday[imonth] - rtlaps *max(st,sealevTime*0.001);
     90    Tsurf = tstar*deltm+Tsurf;       
    7691
    7792      /*********compute PD ****************/
  • issm/trunk-jpl/src/c/shared/Elements/elements.h

    r18613 r18717  
    1313IssmDouble LliboutryDuval(IssmDouble enthalpy, IssmDouble pressure, IssmDouble n, IssmDouble betaCC, IssmDouble referencetemperature, IssmDouble heatcapacity, IssmDouble latentheat);
    1414// IssmDouble LliboutryDuval(IssmDouble temperature, IssmDouble waterfraction, IssmDouble depth,IssmDouble n);
    15 IssmDouble PddSurfaceMassBlance(IssmDouble* monthlytemperatures,  IssmDouble* monthlyprec, IssmDouble* pdds, IssmDouble* pds,
    16                                 IssmDouble signorm, IssmDouble yts, IssmDouble h, IssmDouble s,
    17                                 IssmDouble rho_ice, IssmDouble rho_water, IssmDouble desfac, IssmDouble s0p);
     15IssmDouble PddSurfaceMassBlance(IssmDouble* monthlytemperatures,  IssmDouble* monthlyprec,
     16                                IssmDouble* TemperaturesLgm, IssmDouble* TemperaturesPresentday,
     17                                IssmDouble* pdds, IssmDouble* pds,IssmDouble signorm, IssmDouble yts,
     18                                IssmDouble h, IssmDouble s, IssmDouble rho_ice,IssmDouble rho_water, IssmDouble desfac,
     19                                IssmDouble s0t,IssmDouble s0p, IssmDouble rlaps, IssmDouble rlapslgm,
     20                                IssmDouble PfacTime,IssmDouble TdiffTime,IssmDouble sealevTime);
    1821void ComputeDelta18oTemperaturePrecipitation(IssmDouble Delta18oSurfacePresent, IssmDouble Delta18oSurfaceLgm, IssmDouble Delta18oSurfaceTime,
    1922                                     IssmDouble Delta18oPresent, IssmDouble Delta18oLgm, IssmDouble Delta18oTime,
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r18705 r18717  
    331331        SurfaceforcingsDesfacEnum,
    332332        SurfaceforcingsS0pEnum,
     333        SurfaceforcingsS0tEnum,
     334        SurfaceforcingsRlapsEnum,
     335        SurfaceforcingsRlapslgmEnum,
     336        SurfaceforcingsPfacEnum,
     337        SurfaceforcingsTdiffEnum,
     338        SurfaceforcingsSealevEnum,
    333339        SMBgradientsEnum,
    334340        SurfaceforcingsMonthlytemperaturesEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r18705 r18717  
    337337                case SurfaceforcingsDesfacEnum : return "SurfaceforcingsDesfac";
    338338                case SurfaceforcingsS0pEnum : return "SurfaceforcingsS0p";
     339                case SurfaceforcingsS0tEnum : return "SurfaceforcingsS0t";
     340                case SurfaceforcingsRlapsEnum : return "SurfaceforcingsRlaps";
     341                case SurfaceforcingsRlapslgmEnum : return "SurfaceforcingsRlapslgm";
     342                case SurfaceforcingsPfacEnum : return "SurfaceforcingsPfac";
     343                case SurfaceforcingsTdiffEnum : return "SurfaceforcingsTdiff";
     344                case SurfaceforcingsSealevEnum : return "SurfaceforcingsSealev";
    339345                case SMBgradientsEnum : return "SMBgradients";
    340346                case SurfaceforcingsMonthlytemperaturesEnum : return "SurfaceforcingsMonthlytemperatures";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r18705 r18717  
    343343              else if (strcmp(name,"SurfaceforcingsDesfac")==0) return SurfaceforcingsDesfacEnum;
    344344              else if (strcmp(name,"SurfaceforcingsS0p")==0) return SurfaceforcingsS0pEnum;
     345              else if (strcmp(name,"SurfaceforcingsS0t")==0) return SurfaceforcingsS0tEnum;
     346              else if (strcmp(name,"SurfaceforcingsRlaps")==0) return SurfaceforcingsRlapsEnum;
     347              else if (strcmp(name,"SurfaceforcingsRlapslgm")==0) return SurfaceforcingsRlapslgmEnum;
     348              else if (strcmp(name,"SurfaceforcingsPfac")==0) return SurfaceforcingsPfacEnum;
     349              else if (strcmp(name,"SurfaceforcingsTdiff")==0) return SurfaceforcingsTdiffEnum;
     350              else if (strcmp(name,"SurfaceforcingsSealev")==0) return SurfaceforcingsSealevEnum;
    345351              else if (strcmp(name,"SMBgradients")==0) return SMBgradientsEnum;
    346352              else if (strcmp(name,"SurfaceforcingsMonthlytemperatures")==0) return SurfaceforcingsMonthlytemperaturesEnum;
     
    380386              else if (strcmp(name,"DamageEvolutionSolution")==0) return DamageEvolutionSolutionEnum;
    381387              else if (strcmp(name,"DamageEvolutionAnalysis")==0) return DamageEvolutionAnalysisEnum;
    382               else if (strcmp(name,"StressbalanceAnalysis")==0) return StressbalanceAnalysisEnum;
    383               else if (strcmp(name,"StressbalanceSIAAnalysis")==0) return StressbalanceSIAAnalysisEnum;
    384               else if (strcmp(name,"StressbalanceSolution")==0) return StressbalanceSolutionEnum;
    385388         else stage=4;
    386389   }
     
    503506              else if (strcmp(name,"Melange")==0) return MelangeEnum;
    504507              else if (strcmp(name,"Water")==0) return WaterEnum;
    505               else if (strcmp(name,"Closed")==0) return ClosedEnum;
    506               else if (strcmp(name,"Free")==0) return FreeEnum;
    507               else if (strcmp(name,"Open")==0) return OpenEnum;
    508508         else stage=5;
    509509   }
     
    626626              else if (strcmp(name,"LACrouzeixRaviart")==0) return LACrouzeixRaviartEnum;
    627627              else if (strcmp(name,"SaveResults")==0) return SaveResultsEnum;
    628               else if (strcmp(name,"BoolExternalResult")==0) return BoolExternalResultEnum;
    629               else if (strcmp(name,"DoubleExternalResult")==0) return DoubleExternalResultEnum;
    630               else if (strcmp(name,"DoubleMatExternalResult")==0) return DoubleMatExternalResultEnum;
    631628         else stage=6;
    632629   }
     
    749746              else if (strcmp(name,"SeaiceSpcvy")==0) return SeaiceSpcvyEnum;
    750747              else if (strcmp(name,"SeaiceCoriolisFactor")==0) return SeaiceCoriolisFactorEnum;
    751               else if (strcmp(name,"BasalforcingsRhoOcean")==0) return BasalforcingsRhoOceanEnum;
    752               else if (strcmp(name,"BasalforcingsOceanCoef")==0) return BasalforcingsOceanCoefEnum;
    753               else if (strcmp(name,"BasalforcingsOceanLinDragCoef")==0) return BasalforcingsOceanLinDragCoefEnum;
    754748         else stage=7;
    755749   }
  • issm/trunk-jpl/src/m/classes/SMBpdd.m

    r17079 r18717  
    1010                desfac                    = 0.5;
    1111                s0p                       = 0;
     12                s0t                       = 0;
     13                rlaps                     = 6.5;
     14                rlapslgm                  = 6.5;               
     15                Pfac                      = NaN;
     16                Tdiff                     = NaN;
     17                sealev                    = NaN;
    1218                isdelta18o                = 0;
    1319                delta18o                  = NaN;
     
    4955                  obj.desfac     = 0.5;
    5056                  obj.s0p        = 0;
     57                  obj.s0t        = 0;
     58                  obj.rlaps      = 6.5;
     59                  obj.rlapslgm   = 6.5;
     60                 
    5161                end % }}}
    5262                function md = checkconsistency(obj,md,solution,analyses) % {{{
     
    5565                                md = checkfield(md,'fieldname','surfaceforcings.desfac','<=',1,'numel',1);
    5666                                md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'numel',1);
     67                                md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,'numel',1);
     68                                md = checkfield(md,'fieldname','surfaceforcings.rlaps','>=',0,'numel',1);
     69                                md = checkfield(md,'fieldname','surfaceforcings.rlapslgm','>=',0,'numel',1);
     70                                md = checkfield(md,'fieldname','surfaceforcings.Pfac','NaN',1);
     71                                md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1);
     72                                md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1);
    5773                                if(obj.isdelta18o==0)
    5874                                        md = checkfield(md,'fieldname','surfaceforcings.monthlytemperatures','forcing',1,'NaN',1);
     
    7490                        fielddisplay(obj,'desfac','desertification elevation factor (between 0 and 1, default is 0.5) [m]');
    7591                        fielddisplay(obj,'s0p','should be set to elevation from precip source (between 0 and a few 1000s m, default is 0) [m]');
    76                         fielddisplay(obj,'monthlytemperatures','monthly surface temperatures [K], required if pdd is activated and delta18o not activated');
     92                        fielddisplay(obj,'s0t','should be set to elevation from temperature source (between 0 and a few 1000s m, default is 0) [m]');
     93                        fielddisplay(obj,'rlaps','present day lapse rate [degree/km]');
     94                        fielddisplay(obj,'rlapslgm','LGM lapse rate [degree/km]');
     95                        fielddisplay(obj,'Pfac','time interpolation parameter for precipitation, 1D(year)');
     96                        fielddisplay(obj,'Tdiff','time interpolation parameter for temperature, 1D(year)');
     97                        fielddisplay(obj,'sealev','sea level [m], 1D(year)');
     98                        fielddisplay(obj,'monthlytemperatures','monthly surface temperatures [K], required if pdd is activated and delta18o not activated');
    7799                        fielddisplay(obj,'precipitation','surface precipitation [m/yr water eq]');
    78100                        fielddisplay(obj,'temperatures_presentday','monthly present day surface temperatures [K], required if pdd is activated and delta18o activated');
     
    92114                        WriteData(fid,'object',obj,'class','surfaceforcings','fieldname','desfac','format','Double');
    93115                        WriteData(fid,'object',obj,'class','surfaceforcings','fieldname','s0p','format','Double');
     116                        WriteData(fid,'object',obj,'class','surfaceforcings','fieldname','s0t','format','Double');
     117                        WriteData(fid,'object',obj,'class','surfaceforcings','fieldname','rlaps','format','Double');
     118                        WriteData(fid,'object',obj,'class','surfaceforcings','fieldname','rlapslgm','format','Double');
     119                        WriteData(fid,'object',obj,'class','surfaceforcings','fieldname','Pfac','format','DoubleMat','mattype',1);
     120                        WriteData(fid,'object',obj,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1);
     121                        WriteData(fid,'object',obj,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1);
    94122                        WriteData(fid,'object',obj,'class','surfaceforcings','fieldname','isdelta18o','format','Boolean');
    95123                        if obj.isdelta18o
  • issm/trunk-jpl/src/m/classes/clusters/acenet.m

    r16737 r18717  
    99    properties (SetAccess=public)
    1010                 % {{{
    11                  name='glacdyn.ace-net.ca'
    12                  %name='placentia.ace-net.ca'
     11                 %name='glacdyn.ace-net.ca'
     12                 name='placentia.ace-net.ca'
    1313                 %name='brasdor.ace-net.ca'
    1414                 login='klemorza';
     
    1919                 % codepath='/usr/local/issm-r11321/bin'; % this one is for issm on acenet global
    2020                 codepath='/home/klemorza/issm/trunk-jpl/bin'; % this one is for issm on my acenet directory
    21                  executionpath='/home/klemorza/issm/trunk-jpl/execution';
     21                 %executionpath='/home/klemorza/issm/trunk-jpl/execution';
     22                 %executionpath='/home/klemorza/scratch/issmres.dir';
     23                 executionpath='/net/glacdyn-data/glacdyn/1/klemorza/issm.dir';
    2224                 %}}}
    2325         end
     
    5052
    5153                         available_queues={'debug','shortq','longq'};
    52                          queue_requirements_time=[60*1 60*3 60*17];
     54                         queue_requirements_time=[48*1 48*2 48*5];
    5355                         queue_requirements_np=[32 128 256];
    5456
     
    6668                         fprintf(fid,'#$ -cwd\n');
    6769          fprintf(fid,'#$ -N issm\n');
    68           fprintf(fid,'#$ -l h_rt=96:0:0\n');
     70          %fprintf(fid,'#$ -l h_rt=25:00:0\n');
     71          %fprintf(fid,'#$ -l h_rt=47:59:00\n');
     72          %fprintf(fid,'#$ -l h_rt=72:00:0\n');
     73          fprintf(fid,'#$ -l h_rt=96:00:0\n');
     74          fprintf(fid,'#$ -l h_vmem=4G\n');
    6975          fprintf(fid,'#$ -pe ompi* %i\n',cluster.np);
    7076          fprintf(fid,'#$ -j y\n');
     77          fprintf(fid,'#$ -l h=cl27*|cl28*|cl29*|cl30*|cl31*|cl320|cl267|cl268|cl269|cl338 \n');
     78          %fprintf(fid,'#$ -l h=cl338 \n');
     79          %fprintf(fid,'#$ -pe openmp 20 \n');
     80          %fprintf(fid,'#$ -q !tarasov.q\n'); %
     81          fprintf(fid,'#$ -pe openmp 8\n');
    7182          fprintf(fid,'module purge\n');
    72           fprintf(fid,'module load gcc openmpi/gcc\n');
    73           fprintf(fid,'module load issm\n');
    74                          fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
    75                          fprintf(fid,'source $ISSM_DIR/etc/environment.sh\n');       %FIXME
     83          %fprintf(fid,'module load gcc openmpi/gcc\n');
     84          %fprintf(fid,'module unload openmpi\n');
     85          fprintf(fid,'module load intel/12.1.7.367\n');
     86          fprintf(fid,'module load openmpi/intel/1.2.9\n');
     87
     88          fprintf(fid,'module load gsl\n');
     89          %fprintf(fid,'module load issm\n');
     90          fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
     91          fprintf(fid,'source $ISSM_DIR/etc/environment.sh\n');       %FIXME
    7692          fprintf(fid,'\n');
    77           fprintf(fid,'mpiexec -np %i %s/issm.exe %s %s %s 2> %s.errlog >%s.outlog ',...
    78                    cluster.np,cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname,modelname,modelname);
     93          fprintf(fid,'mpiexec %s/issm.exe %s %s %s 2> %s.errlog >%s.outlog\n',...
     94                   cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname,modelname,modelname);
     95          %fprintf(fid,'echo $HOSTNAME >>%s.outlog',modelname);
    7996                         fclose(fid);
    8097
     
    95112                         disp('launching solution sequence on remote cluster');
    96113                         launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
    97                                  ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
     114                                 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz && qsub ' modelname '.queue '];
    98115                         issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
    99116                 end %}}}
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r18706 r18717  
    329329def SurfaceforcingsDesfacEnum(): return StringToEnum("SurfaceforcingsDesfac")[0]
    330330def SurfaceforcingsS0pEnum(): return StringToEnum("SurfaceforcingsS0p")[0]
     331def SurfaceforcingsS0tEnum(): return StringToEnum("SurfaceforcingsS0t")[0]
     332def SurfaceforcingsRlapsEnum(): return StringToEnum("SurfaceforcingsRlaps")[0]
     333def SurfaceforcingsRlapslgmEnum(): return StringToEnum("SurfaceforcingsRlapslgm")[0]
     334def SurfaceforcingsPfacEnum(): return StringToEnum("SurfaceforcingsPfac")[0]
     335def SurfaceforcingsTdiffEnum(): return StringToEnum("SurfaceforcingsTdiff")[0]
     336def SurfaceforcingsSealevEnum(): return StringToEnum("SurfaceforcingsSealev")[0]
    331337def SMBgradientsEnum(): return StringToEnum("SMBgradients")[0]
    332338def SurfaceforcingsMonthlytemperaturesEnum(): return StringToEnum("SurfaceforcingsMonthlytemperatures")[0]
Note: See TracChangeset for help on using the changeset viewer.