Changeset 18717
- Timestamp:
- 10/31/14 10:58:45 (10 years ago)
- 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 1916 1916 IssmDouble agd[NUMVERTICES]; // surface mass balance 1917 1917 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; 1920 1922 1921 1923 /*Recover monthly temperatures and precipitation*/ 1922 1924 Input* input=inputs->GetInput(SurfaceforcingsMonthlytemperaturesEnum); _assert_(input); 1923 1925 Input* input2=inputs->GetInput(SurfaceforcingsPrecipitationEnum); _assert_(input2); 1926 Input* input3=inputs->GetInput(SurfaceforcingsTemperaturesPresentdayEnum); _assert_(input3); 1927 Input* input4=inputs->GetInput(SurfaceforcingsTemperaturesLgmEnum); _assert_(input4); 1924 1928 GaussPenta* gauss=new GaussPenta(); 1925 1929 IssmDouble time,yts; … … 1933 1937 input2->GetInputValue(&monthlyprec[iv][month],gauss,time+month/12.*yts); 1934 1938 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 1935 1943 } 1936 1944 } 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); 1937 1950 1938 1951 /*Recover info at the vertices: */ … … 1944 1957 rho_water=matpar->GetRhoFreshwater(); 1945 1958 1946 /*Get desertification effectparameters*/1959 /*Get other pdd parameters*/ 1947 1960 desfac=matpar->GetDesFac(); 1948 1961 s0p=matpar->GetS0p(); 1962 s0t=matpar->GetS0t(); 1963 rlaps=matpar->GetRlaps(); 1964 rlapslgm=matpar->GetRlapslgm(); 1949 1965 1950 1966 /*measure the surface mass balance*/ 1951 1967 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); 1954 1972 } 1955 1973 -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r18699 r18717 1721 1721 IssmDouble agd[NUMVERTICES]; // surface mass balance 1722 1722 IssmDouble monthlytemperatures[NUMVERTICES][12],monthlyprec[NUMVERTICES][12]; 1723 IssmDouble TemperaturesPresentday[NUMVERTICES][12],TemperaturesLgm[NUMVERTICES][12]; 1723 1724 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*/ 1727 1729 Input* input=inputs->GetInput(SurfaceforcingsMonthlytemperaturesEnum); _assert_(input); 1728 1730 Input* input2=inputs->GetInput(SurfaceforcingsPrecipitationEnum); _assert_(input2); 1731 Input* input3=inputs->GetInput(SurfaceforcingsTemperaturesPresentdayEnum); _assert_(input3); 1732 Input* input4=inputs->GetInput(SurfaceforcingsTemperaturesLgmEnum); _assert_(input4); 1729 1733 GaussTria* gauss=new GaussTria(); 1730 1734 IssmDouble time,yts; … … 1738 1742 input2->GetInputValue(&monthlyprec[iv][month],gauss,time+month/12.*yts); 1739 1743 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 1740 1748 } 1741 1749 } 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); 1742 1755 1743 1756 /*Recover info at the vertices: */ … … 1749 1762 rho_water=matpar->GetRhoFreshwater(); 1750 1763 1751 /*Get desertification effectparameters*/1764 /*Get other pdd parameters*/ 1752 1765 desfac=matpar->GetDesFac(); 1753 1766 s0p=matpar->GetS0p(); 1754 1767 s0t=matpar->GetS0t(); 1768 rlaps=matpar->GetRlaps(); 1769 rlapslgm=matpar->GetRlapslgm(); 1770 1755 1771 /*measure the surface mass balance*/ 1756 1772 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); 1758 1777 } 1759 1778 -
issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp
r18581 r18717 52 52 iomodel->Constant(&this->desfac,SurfaceforcingsDesfacEnum); 53 53 iomodel->Constant(&this->s0p,SurfaceforcingsS0pEnum); 54 iomodel->Constant(&this->s0t,SurfaceforcingsS0tEnum); 55 iomodel->Constant(&this->rlaps,SurfaceforcingsRlapsEnum); 56 iomodel->Constant(&this->rlapslgm,SurfaceforcingsRlapslgmEnum); 54 57 break; 55 58 case SMBgradientsEnum: … … 142 145 _printf_(" desfac: " << desfac << "\n"); 143 146 _printf_(" s0p: " << s0p << "\n"); 147 _printf_(" s0t: " << s0t << "\n"); 148 _printf_(" rlaps: " << rlaps << "\n"); 149 _printf_(" rlapslgm: " << rlapslgm << "\n"); 144 150 return; 145 151 } … … 184 190 matpar->desfac=this->desfac; 185 191 matpar->s0p=this->s0p; 192 matpar->s0t=this->s0t; 193 matpar->rlaps=this->rlaps; 194 matpar->rlapslgm=this->rlapslgm; 186 195 187 196 matpar->sediment_compressibility=this->sediment_compressibility; … … 269 278 case SurfaceforcingsS0pEnum: 270 279 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; 271 289 break; 272 290 default: … … 367 385 } 368 386 /*}}}*/ 387 IssmDouble Matpar::GetS0t(){/*{{{*/ 388 return s0t; 389 } 390 /*}}}*/ 391 IssmDouble Matpar::GetRlaps(){/*{{{*/ 392 return rlaps; 393 } 394 /*}}}*/ 395 IssmDouble Matpar::GetRlapslgm(){/*{{{*/ 396 return rlapslgm; 397 } 398 /*}}}*/ 369 399 IssmDouble Matpar::TMeltingPoint(IssmDouble pressure){/*{{{*/ 370 400 return meltingpoint-beta*pressure; -
issm/trunk-jpl/src/c/classes/Materials/Matpar.h
r18581 r18717 33 33 IssmDouble desfac; 34 34 IssmDouble s0p; 35 IssmDouble s0t; 36 IssmDouble rlaps; 37 IssmDouble rlapslgm; 35 38 36 39 /*hydrology Dual Porous Continuum: */ … … 125 128 IssmDouble GetDesFac(); 126 129 IssmDouble GetS0p(); 130 IssmDouble GetS0t(); 131 IssmDouble GetRlaps(); 132 IssmDouble GetRlapslgm(); 127 133 IssmDouble GetMaterialParameter(int in_enum); 128 134 /*}}}*/ -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
r18492 r18717 36 36 IssmDouble *matrix = NULL; 37 37 int count; 38 39 IssmDouble *temp = NULL; 40 IssmDouble yts; 41 int N,M; 38 42 39 43 /*Make sure current dataset is empty*/ … … 104 108 parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsDesfacEnum)); 105 109 parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsS0pEnum)); 110 parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsS0tEnum)); 111 parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsRlapsEnum)); 112 parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsRlapslgmEnum)); 106 113 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 107 130 if(isdelta18o){ 108 IssmDouble *temp = NULL;109 IssmDouble yts;110 int N,M;111 131 iomodel->Constant(&yts,ConstantsYtsEnum); 132 112 133 iomodel->FetchData(&temp,&N,&M,SurfaceforcingsDelta18oEnum); _assert_(N==2); 113 134 for(i=0;i<M;i++) temp[M+i]=yts*temp[M+i]; -
issm/trunk-jpl/src/c/shared/Elements/ComputeDelta18oTemperaturePrecipitation.cpp
r16164 r18717 20 20 // /(Delta18oLgm-Delta18oPresent-delta18oLapseRate*(Delta18oSurfaceLgm-Delta18oSurfacePresent)); 21 21 22 for (int imonth = 0; imonth<12; imonth++){ 22 for (int imonth = 0; imonth<12; imonth++){ 23 23 monthlytemperaturestmp[imonth] = glacialindex*TemperaturesLgm[imonth] + (1.-glacialindex)*TemperaturesPresentday[imonth]; 24 24 //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 6 6 #include "../Numerics/numerics.h" 7 7 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){ 8 IssmDouble 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){ 9 15 10 16 // output: … … 20 26 IssmDouble sconv; //rhow_rain/rhoi / 12 months 21 27 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; 26 36 IssmDouble st; // elevation between altitude of the temp record and current altitude 27 37 IssmDouble sp; // elevation between altitude of the prec record and current altitude … … 68 78 69 79 // 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; 76 91 77 92 /*********compute PD ****************/ -
issm/trunk-jpl/src/c/shared/Elements/elements.h
r18613 r18717 13 13 IssmDouble LliboutryDuval(IssmDouble enthalpy, IssmDouble pressure, IssmDouble n, IssmDouble betaCC, IssmDouble referencetemperature, IssmDouble heatcapacity, IssmDouble latentheat); 14 14 // 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); 15 IssmDouble 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); 18 21 void ComputeDelta18oTemperaturePrecipitation(IssmDouble Delta18oSurfacePresent, IssmDouble Delta18oSurfaceLgm, IssmDouble Delta18oSurfaceTime, 19 22 IssmDouble Delta18oPresent, IssmDouble Delta18oLgm, IssmDouble Delta18oTime, -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r18705 r18717 331 331 SurfaceforcingsDesfacEnum, 332 332 SurfaceforcingsS0pEnum, 333 SurfaceforcingsS0tEnum, 334 SurfaceforcingsRlapsEnum, 335 SurfaceforcingsRlapslgmEnum, 336 SurfaceforcingsPfacEnum, 337 SurfaceforcingsTdiffEnum, 338 SurfaceforcingsSealevEnum, 333 339 SMBgradientsEnum, 334 340 SurfaceforcingsMonthlytemperaturesEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r18705 r18717 337 337 case SurfaceforcingsDesfacEnum : return "SurfaceforcingsDesfac"; 338 338 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"; 339 345 case SMBgradientsEnum : return "SMBgradients"; 340 346 case SurfaceforcingsMonthlytemperaturesEnum : return "SurfaceforcingsMonthlytemperatures"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r18705 r18717 343 343 else if (strcmp(name,"SurfaceforcingsDesfac")==0) return SurfaceforcingsDesfacEnum; 344 344 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; 345 351 else if (strcmp(name,"SMBgradients")==0) return SMBgradientsEnum; 346 352 else if (strcmp(name,"SurfaceforcingsMonthlytemperatures")==0) return SurfaceforcingsMonthlytemperaturesEnum; … … 380 386 else if (strcmp(name,"DamageEvolutionSolution")==0) return DamageEvolutionSolutionEnum; 381 387 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;385 388 else stage=4; 386 389 } … … 503 506 else if (strcmp(name,"Melange")==0) return MelangeEnum; 504 507 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;508 508 else stage=5; 509 509 } … … 626 626 else if (strcmp(name,"LACrouzeixRaviart")==0) return LACrouzeixRaviartEnum; 627 627 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;631 628 else stage=6; 632 629 } … … 749 746 else if (strcmp(name,"SeaiceSpcvy")==0) return SeaiceSpcvyEnum; 750 747 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;754 748 else stage=7; 755 749 } -
issm/trunk-jpl/src/m/classes/SMBpdd.m
r17079 r18717 10 10 desfac = 0.5; 11 11 s0p = 0; 12 s0t = 0; 13 rlaps = 6.5; 14 rlapslgm = 6.5; 15 Pfac = NaN; 16 Tdiff = NaN; 17 sealev = NaN; 12 18 isdelta18o = 0; 13 19 delta18o = NaN; … … 49 55 obj.desfac = 0.5; 50 56 obj.s0p = 0; 57 obj.s0t = 0; 58 obj.rlaps = 6.5; 59 obj.rlapslgm = 6.5; 60 51 61 end % }}} 52 62 function md = checkconsistency(obj,md,solution,analyses) % {{{ … … 55 65 md = checkfield(md,'fieldname','surfaceforcings.desfac','<=',1,'numel',1); 56 66 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); 57 73 if(obj.isdelta18o==0) 58 74 md = checkfield(md,'fieldname','surfaceforcings.monthlytemperatures','forcing',1,'NaN',1); … … 74 90 fielddisplay(obj,'desfac','desertification elevation factor (between 0 and 1, default is 0.5) [m]'); 75 91 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'); 77 99 fielddisplay(obj,'precipitation','surface precipitation [m/yr water eq]'); 78 100 fielddisplay(obj,'temperatures_presentday','monthly present day surface temperatures [K], required if pdd is activated and delta18o activated'); … … 92 114 WriteData(fid,'object',obj,'class','surfaceforcings','fieldname','desfac','format','Double'); 93 115 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); 94 122 WriteData(fid,'object',obj,'class','surfaceforcings','fieldname','isdelta18o','format','Boolean'); 95 123 if obj.isdelta18o -
issm/trunk-jpl/src/m/classes/clusters/acenet.m
r16737 r18717 9 9 properties (SetAccess=public) 10 10 % {{{ 11 name='glacdyn.ace-net.ca'12 %name='placentia.ace-net.ca'11 %name='glacdyn.ace-net.ca' 12 name='placentia.ace-net.ca' 13 13 %name='brasdor.ace-net.ca' 14 14 login='klemorza'; … … 19 19 % codepath='/usr/local/issm-r11321/bin'; % this one is for issm on acenet global 20 20 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'; 22 24 %}}} 23 25 end … … 50 52 51 53 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]; 53 55 queue_requirements_np=[32 128 256]; 54 56 … … 66 68 fprintf(fid,'#$ -cwd\n'); 67 69 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'); 69 75 fprintf(fid,'#$ -pe ompi* %i\n',cluster.np); 70 76 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'); 71 82 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 76 92 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); 79 96 fclose(fid); 80 97 … … 95 112 disp('launching solution sequence on remote cluster'); 96 113 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ... 97 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz 114 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz && qsub ' modelname '.queue ']; 98 115 issmssh(cluster.name,cluster.login,cluster.port,launchcommand); 99 116 end %}}} -
issm/trunk-jpl/src/m/enum/EnumDefinitions.py
r18706 r18717 329 329 def SurfaceforcingsDesfacEnum(): return StringToEnum("SurfaceforcingsDesfac")[0] 330 330 def SurfaceforcingsS0pEnum(): return StringToEnum("SurfaceforcingsS0p")[0] 331 def SurfaceforcingsS0tEnum(): return StringToEnum("SurfaceforcingsS0t")[0] 332 def SurfaceforcingsRlapsEnum(): return StringToEnum("SurfaceforcingsRlaps")[0] 333 def SurfaceforcingsRlapslgmEnum(): return StringToEnum("SurfaceforcingsRlapslgm")[0] 334 def SurfaceforcingsPfacEnum(): return StringToEnum("SurfaceforcingsPfac")[0] 335 def SurfaceforcingsTdiffEnum(): return StringToEnum("SurfaceforcingsTdiff")[0] 336 def SurfaceforcingsSealevEnum(): return StringToEnum("SurfaceforcingsSealev")[0] 331 337 def SMBgradientsEnum(): return StringToEnum("SMBgradients")[0] 332 338 def SurfaceforcingsMonthlytemperaturesEnum(): return StringToEnum("SurfaceforcingsMonthlytemperatures")[0]
Note:
See TracChangeset
for help on using the changeset viewer.