Changeset 12748
- Timestamp:
- 07/26/12 10:08:15 (13 years ago)
- Location:
- issm/trunk-jpl
- Files:
-
- 10 added
- 21 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/externalpackages/matlab/install.sh
r12504 r12748 5 5 6 6 #Select or create a new simlink 7 ln -s /usr/local/pkgs/matlab-7.6/ install7 #ln -s /usr/local/pkgs/matlab-7.6/ install 8 8 #ln -s /discover/vis/mathworks/matlab_r2011b/ install 9 9 #ln -s /usr/local/matlab704/ install 10 10 #ln -s /usr/local/matlab711/ install 11 11 #ln -s /usr/local/matlab712/ install 12 13 ln -s /home/kevin/perso.dir/matlab10 install 12 14 13 15 # Macintosh (OSX) simlink -
issm/trunk-jpl/src/c/EnumDefinitions/EnumDefinitions.h
r12744 r12748 149 149 SettingsResultsAsPatchesEnum, 150 150 SettingsWaitonlockEnum, 151 SurfaceforcingsDelta18oEnum, 152 SurfaceforcingsDelta18oTemperaturesPresentdayEnum, 153 SurfaceforcingsDelta18oTemperaturesLgmEnum, 154 SurfaceforcingsDelta18oSurfaceEnum, 155 SurfaceforcingsIsdelta18oEnum, 156 SurfaceforcingsPrecipitationsPresentdayEnum, 151 157 DebugProfilingEnum, 152 158 ProfilingCurrentMemEnum, -
issm/trunk-jpl/src/c/Makefile.am
r12744 r12748 212 212 ./shared/Elements/GetNumberOfDofs.cpp\ 213 213 ./shared/Elements/PddSurfaceMassBalance.cpp\ 214 ./shared/Elements/ComputeDelta18oTemperaturePrecipitation.cpp\ 214 215 ./shared/String/sharedstring.h\ 215 216 ./shared/Wrapper/wrappershared.h\ … … 294 295 ./modules/PositiveDegreeDayx/PositiveDegreeDayx.h\ 295 296 ./modules/PositiveDegreeDayx/PositiveDegreeDayx.cpp\ 297 ./modules/Delta18oParameterizationx/Delta18oParameterizationx.h\ 298 ./modules/Delta18oParameterizationx/Delta18oParameterizationx.cpp\ 296 299 ./modules/SmbGradientsx/SmbGradientsx.h\ 297 300 ./modules/SmbGradientsx/SmbGradientsx.cpp\ … … 818 821 matlabpetsc_sources= ./matlab/io/MatlabMatrixToPetscMatrix.cpp\ 819 822 ./matlab/io/MatlabVectorToPetscVector.cpp 820 823 821 824 #}}} 822 825 #Modules sources{{{ -
issm/trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp
r12744 r12748 154 154 case SettingsResultsAsPatchesEnum : return "SettingsResultsAsPatches"; 155 155 case SettingsWaitonlockEnum : return "SettingsWaitonlock"; 156 case SurfaceforcingsDelta18oEnum : return "SurfaceforcingsDelta18o"; 157 case SurfaceforcingsDelta18oTemperaturesPresentdayEnum : return "SurfaceforcingsDelta18oTemperaturesPresentday"; 158 case SurfaceforcingsDelta18oTemperaturesLgmEnum : return "SurfaceforcingsDelta18oTemperaturesLgm"; 159 case SurfaceforcingsDelta18oSurfaceEnum : return "SurfaceforcingsDelta18oSurface"; 160 case SurfaceforcingsIsdelta18oEnum : return "SurfaceforcingsIsdelta18o"; 161 case SurfaceforcingsPrecipitationsPresentdayEnum : return "SurfaceforcingsPrecipitationsPresentday"; 156 162 case DebugProfilingEnum : return "DebugProfiling"; 157 163 case ProfilingCurrentMemEnum : return "ProfilingCurrentMem"; -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
r12696 r12748 25 25 Parameters *parameters = NULL; 26 26 IssmDouble *requestedoutputs = NULL; 27 27 bool isdelta18o; 28 IssmDouble *Delta18oT, *Delta18oSurfaceT; 29 int nlinesD18o, ncolsD18o, nlinesD18osurf, ncolsD18osurf; 30 28 31 if(*pparameters)return; //do not create parameters twice! 29 32 … … 90 93 parameters->AddObject(iomodel->CopyConstantObject(InversionTaoEnum)); 91 94 parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIspddEnum)); 95 parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIsdelta18oEnum)); 92 96 parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIssmbgradientsEnum)); 97 98 iomodel->Constant(&isdelta18o,SurfaceforcingsIsdelta18oEnum); 99 if(isdelta18o){ 100 iomodel->FetchData(&Delta18oT,&nlinesD18o,&ncolsD18o,SurfaceforcingsDelta18oEnum); 101 _assert_(nlinesD18o==2); 102 parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oEnum,&Delta18oT[0],&Delta18oT[ncolsD18o],ncolsD18o)); 103 104 iomodel->FetchData(&Delta18oSurfaceT,&nlinesD18osurf,&ncolsD18osurf,SurfaceforcingsDelta18oSurfaceEnum); 105 _assert_(nlinesD18osurf==2); 106 parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oSurfaceEnum,&Delta18oSurfaceT[0],&Delta18oSurfaceT[ncolsD18osurf],ncolsD18osurf)); 107 } 93 108 94 109 /*some parameters that did not come with the iomodel: */ -
issm/trunk-jpl/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp
r12677 r12748 20 20 int stabilization; 21 21 bool dakota_analysis; 22 bool ispdd;23 22 bool issmbgradients; 24 23 … … 29 28 iomodel->Constant(&dakota_analysis,QmuIsdakotaEnum); 30 29 iomodel->FetchData(1,MeshElementsEnum); 31 iomodel->Constant(&ispdd,SurfaceforcingsIspddEnum);32 30 iomodel->Constant(&issmbgradients,SurfaceforcingsIssmbgradientsEnum); 33 31 … … 69 67 iomodel->FetchDataToInput(elements,TemperatureEnum); 70 68 } 71 if(ispdd){ 72 iomodel->FetchDataToInput(elements,VyEnum); 73 iomodel->FetchDataToInput(elements,ThermalSpctemperatureEnum); 74 iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationEnum); 75 iomodel->FetchDataToInput(elements,SurfaceforcingsMonthlytemperaturesEnum); 69 if(issmbgradients){ 70 iomodel->FetchDataToInput(elements,SurfaceforcingsHcEnum); 71 iomodel->FetchDataToInput(elements,SurfaceforcingsSmbPosMaxEnum); 72 iomodel->FetchDataToInput(elements,SurfaceforcingsSmbPosMinEnum); 73 iomodel->FetchDataToInput(elements,SurfaceforcingsAPosEnum); 74 iomodel->FetchDataToInput(elements,SurfaceforcingsBPosEnum); 75 iomodel->FetchDataToInput(elements,SurfaceforcingsANegEnum); 76 iomodel->FetchDataToInput(elements,SurfaceforcingsBNegEnum); 76 77 } 77 if(issmbgradients){ 78 iomodel->FetchDataToInput(elements,SurfaceforcingsHcEnum); 79 iomodel->FetchDataToInput(elements,SurfaceforcingsSmbPosMaxEnum); 80 iomodel->FetchDataToInput(elements,SurfaceforcingsSmbPosMinEnum); 81 iomodel->FetchDataToInput(elements,SurfaceforcingsAPosEnum); 82 iomodel->FetchDataToInput(elements,SurfaceforcingsBPosEnum); 83 iomodel->FetchDataToInput(elements,SurfaceforcingsANegEnum); 84 iomodel->FetchDataToInput(elements,SurfaceforcingsBNegEnum); 85 } 86 else{ 87 iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum); 88 } 78 //else{ 79 // iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum); 80 //} 89 81 90 82 /*Free data: */ -
issm/trunk-jpl/src/c/modules/ModelProcessorx/Transient/UpdateElementsTransient.cpp
r9340 r12748 16 16 void UpdateElementsTransient(Elements* elements, Parameters* parameters,IoModel* iomodel,int analysis_counter,int analysis_type){ 17 17 18 /*nothing for now: */ 18 bool ispdd; 19 bool isdelta18o; 20 IssmDouble *size, Delta18oTimeSerie,Delta18oSurfaceTimeSerie ; 19 21 22 /*Fetch data needed: */ 23 iomodel->Constant(&ispdd,SurfaceforcingsIspddEnum); 24 iomodel->Constant(&isdelta18o,SurfaceforcingsIsdelta18oEnum); 25 26 if(ispdd){ 27 iomodel->FetchDataToInput(elements,ThermalSpctemperatureEnum); 28 if(isdelta18o){ 29 iomodel->FetchDataToInput(elements,SurfaceforcingsDelta18oEnum); 30 iomodel->FetchDataToInput(elements,SurfaceforcingsDelta18oSurfaceEnum); 31 32 iomodel->FetchDataToInput(elements,SurfaceforcingsDelta18oTemperaturesLgmEnum); 33 iomodel->FetchDataToInput(elements,SurfaceforcingsDelta18oTemperaturesPresentdayEnum); 34 iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationsPresentdayEnum); 35 } 36 else{ 37 iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationEnum); 38 iomodel->FetchDataToInput(elements,SurfaceforcingsMonthlytemperaturesEnum); 39 } 40 } 41 else{ 42 iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum); 43 } 20 44 } -
issm/trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp
r12744 r12748 158 158 else if (strcmp(name,"SettingsResultsAsPatches")==0) return SettingsResultsAsPatchesEnum; 159 159 else if (strcmp(name,"SettingsWaitonlock")==0) return SettingsWaitonlockEnum; 160 else if (strcmp(name,"SurfaceforcingsDelta18o")==0) return SurfaceforcingsDelta18oEnum; 161 else if (strcmp(name,"SurfaceforcingsDelta18oTemperaturesPresentday")==0) return SurfaceforcingsDelta18oTemperaturesPresentdayEnum; 162 else if (strcmp(name,"SurfaceforcingsDelta18oTemperaturesLgm")==0) return SurfaceforcingsDelta18oTemperaturesLgmEnum; 163 else if (strcmp(name,"SurfaceforcingsDelta18oSurface")==0) return SurfaceforcingsDelta18oSurfaceEnum; 164 else if (strcmp(name,"SurfaceforcingsIsdelta18o")==0) return SurfaceforcingsIsdelta18oEnum; 165 else if (strcmp(name,"SurfaceforcingsPrecipitationsPresentday")==0) return SurfaceforcingsPrecipitationsPresentdayEnum; 160 166 else if (strcmp(name,"DebugProfiling")==0) return DebugProfilingEnum; 161 167 else if (strcmp(name,"ProfilingCurrentMem")==0) return ProfilingCurrentMemEnum; … … 255 261 else if (strcmp(name,"ControlInput")==0) return ControlInputEnum; 256 262 else if (strcmp(name,"DatasetInput")==0) return DatasetInputEnum; 257 else if (strcmp(name,"DofIndexing")==0) return DofIndexingEnum; 263 else stage=3; 264 } 265 if(stage==3){ 266 if (strcmp(name,"DofIndexing")==0) return DofIndexingEnum; 258 267 else if (strcmp(name,"DoubleInput")==0) return DoubleInputEnum; 259 268 else if (strcmp(name,"DoubleMatArrayParam")==0) return DoubleMatArrayParamEnum; … … 261 270 else if (strcmp(name,"DoubleParam")==0) return DoubleParamEnum; 262 271 else if (strcmp(name,"DoubleVecParam")==0) return DoubleVecParamEnum; 263 else stage=3; 264 } 265 if(stage==3){ 266 if (strcmp(name,"Element")==0) return ElementEnum; 272 else if (strcmp(name,"Element")==0) return ElementEnum; 267 273 else if (strcmp(name,"ElementResult")==0) return ElementResultEnum; 268 274 else if (strcmp(name,"ExternalResult")==0) return ExternalResultEnum; … … 378 384 else if (strcmp(name,"DragCoefficientAbsGradient")==0) return DragCoefficientAbsGradientEnum; 379 385 else if (strcmp(name,"TransientInput")==0) return TransientInputEnum; 380 else if (strcmp(name,"Outputfilename")==0) return OutputfilenameEnum; 386 else stage=4; 387 } 388 if(stage==4){ 389 if (strcmp(name,"Outputfilename")==0) return OutputfilenameEnum; 381 390 else if (strcmp(name,"Waterfraction")==0) return WaterfractionEnum; 382 391 else if (strcmp(name,"Watercolumn")==0) return WatercolumnEnum; … … 384 393 else if (strcmp(name,"ViscousHeating")==0) return ViscousHeatingEnum; 385 394 else if (strcmp(name,"QmuTemperature")==0) return QmuTemperatureEnum; 386 else stage=4; 387 } 388 if(stage==4){ 389 if (strcmp(name,"HydrologyWaterVx")==0) return HydrologyWaterVxEnum; 395 else if (strcmp(name,"HydrologyWaterVx")==0) return HydrologyWaterVxEnum; 390 396 else if (strcmp(name,"HydrologyWaterVy")==0) return HydrologyWaterVyEnum; 391 397 else if (strcmp(name,"StressTensor")==0) return StressTensorEnum; -
issm/trunk-jpl/src/c/modules/modules.h
r12677 r12748 25 25 #include "./CreateNodalConstraintsx/CreateNodalConstraintsx.h" 26 26 #include "./DakotaResponsesx/DakotaResponsesx.h" 27 #include "./Delta18oParameterizationx/Delta18oParameterizationx.h" 27 28 #include "./DragCoefficientAbsGradientx/DragCoefficientAbsGradientx.h" 28 29 #include "./ElementConnectivityx/ElementConnectivityx.h" -
issm/trunk-jpl/src/c/objects/Elements/Element.h
r12704 r12748 72 72 virtual void PotentialSheetUngrounding(Vector* potential_sheet_ungrounding)=0; 73 73 virtual void PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm)=0; 74 virtual void Delta18oParameterization(void)=0; 74 75 virtual void SmbGradients()=0; 75 76 virtual int UpdatePotentialSheetUngrounding(IssmDouble* potential_sheet_ungrounding,Vector* vec_nodes_on_iceshelf,IssmDouble* nodes_on_iceshelf)=0; -
issm/trunk-jpl/src/c/objects/Elements/Penta.cpp
r12704 r12748 683 683 this->results=new Results(); 684 684 685 } 686 /*}}}*/ 687 /*FUNCTION Penta::Delta18oParameterization{{{*/ 688 void Penta::Delta18oParameterization(void){ 689 690 IssmDouble monthlytemperatures[NUMVERTICES][12],monthlyprec[NUMVERTICES][12]; 691 IssmDouble Delta18oTemperaturesPresentday[NUMVERTICES][12],Delta18oTemperaturesLgm[NUMVERTICES][12]; 692 IssmDouble PrecipitationsPresentday[NUMVERTICES][12]; 693 IssmDouble Delta18oPresent,Delta18oLgm,Delta18oTime; 694 IssmDouble Delta18oSurfacePresent,Delta18oSurfaceLgm,Delta18oSurfaceTime; 695 IssmDouble time,yts,finaltime; 696 this->parameters->FindParam(&time,TimeEnum); 697 this->parameters->FindParam(&yts,ConstantsYtsEnum); 698 this->parameters->FindParam(&finaltime,TimesteppingFinalTimeEnum); 699 700 /*Recover present day temperature and precipitation*/ 701 Input* input=inputs->GetInput(SurfaceforcingsDelta18oTemperaturesPresentdayEnum); _assert_(input); 702 Input* input2=inputs->GetInput(SurfaceforcingsDelta18oTemperaturesLgmEnum); _assert_(input2); 703 Input* input3=inputs->GetInput(SurfaceforcingsPrecipitationsPresentdayEnum); _assert_(input3); 704 GaussPenta* gauss=new GaussPenta(); 705 for(int month=0;month<12;month++) { 706 for(int iv=0;iv<NUMVERTICES;iv++) { 707 gauss->GaussVertex(iv); 708 input->GetInputValue(&Delta18oTemperaturesPresentday[iv][month],gauss,month/12.*yts); 709 input2->GetInputValue(&Delta18oTemperaturesLgm[iv][month],gauss,month/12.*yts); 710 input3->GetInputValue(&PrecipitationsPresentday[iv][month],gauss,month/12.*yts); 711 monthlyprec[iv][month]=monthlyprec[iv][month]*yts; // convertion to m/yr 712 } 713 } 714 715 /*Recover delta18o and Delta18oSurface at present day, lgm and at time t*/ 716 this->parameters->FindParam(&Delta18oPresent,SurfaceforcingsDelta18oEnum,finaltime*yts); 717 this->parameters->FindParam(&Delta18oLgm,SurfaceforcingsDelta18oEnum,(finaltime-21000)*yts); 718 this->parameters->FindParam(&Delta18oTime,SurfaceforcingsDelta18oEnum,time*yts); 719 this->parameters->FindParam(&Delta18oSurfacePresent,SurfaceforcingsDelta18oSurfaceEnum,finaltime*yts); 720 this->parameters->FindParam(&Delta18oSurfaceLgm,SurfaceforcingsDelta18oSurfaceEnum,(finaltime-21000)*yts); 721 this->parameters->FindParam(&Delta18oSurfaceTime,SurfaceforcingsDelta18oSurfaceEnum,time*yts); 722 723 /*Compute the temperature and precipitation*/ 724 for(int iv=0;iv<NUMVERTICES;iv++){ 725 ComputeDelta18oTemperaturePrecipitation(Delta18oSurfacePresent, Delta18oSurfaceLgm, Delta18oSurfaceTime, 726 Delta18oPresent, Delta18oLgm, Delta18oTime, 727 &PrecipitationsPresentday[iv][0], 728 &Delta18oTemperaturesLgm[iv][0], &Delta18oTemperaturesPresentday[iv][0], 729 &monthlytemperatures[iv][0], &monthlyprec[iv][0]); 730 } 731 732 /*Update inputs*/ 733 TransientInput* NewTemperatureInput = new TransientInput(SurfaceforcingsMonthlytemperaturesEnum); 734 TransientInput* NewPrecipitationInput = new TransientInput(SurfaceforcingsPrecipitationEnum); 735 for (int imonth=0;imonth<12;imonth++) { 736 for(int iv=0;iv<NUMVERTICES;iv++) { 737 PentaP1Input* newmonthinput1 = new PentaP1Input(SurfaceforcingsMonthlytemperaturesEnum,&monthlytemperatures[iv][imonth]); 738 NewTemperatureInput->AddTimeInput(newmonthinput1,imonth/12.*yts); 739 PentaP1Input* newmonthinput2 = new PentaP1Input(SurfaceforcingsPrecipitationEnum,&monthlyprec[iv][imonth]); 740 NewPrecipitationInput->AddTimeInput(newmonthinput2,imonth/12.*yts); 741 } 742 } 743 this->inputs->AddInput(NewTemperatureInput); 744 this->inputs->AddInput(NewPrecipitationInput); 685 745 } 686 746 /*}}}*/ -
issm/trunk-jpl/src/c/objects/Elements/Penta.h
r12704 r12748 84 84 void CreatePVector(Vector* pf); 85 85 void CreateJacobianMatrix(Matrix* Jff); 86 void Delta18oParameterization(void); 86 87 void DeleteResults(void); 87 88 int GetNodeIndex(Node* node); -
issm/trunk-jpl/src/c/objects/Elements/Tria.cpp
r12704 r12748 906 906 this->results=new Results(); 907 907 908 } 909 /*}}}*/ 910 /*FUNCTION Tria::Delta18oParameterization{{{*/ 911 void Tria::Delta18oParameterization(void){ 912 913 IssmDouble monthlytemperatures[NUMVERTICES][12],monthlyprec[NUMVERTICES][12]; 914 IssmDouble Delta18oTemperaturesPresentday[NUMVERTICES][12],Delta18oTemperaturesLgm[NUMVERTICES][12]; 915 IssmDouble PrecipitationsPresentday[NUMVERTICES][12]; 916 IssmDouble Delta18oPresent,Delta18oLgm,Delta18oTime; 917 IssmDouble Delta18oSurfacePresent,Delta18oSurfaceLgm,Delta18oSurfaceTime; 918 IssmDouble time,yts,finaltime; 919 this->parameters->FindParam(&time,TimeEnum); 920 this->parameters->FindParam(&yts,ConstantsYtsEnum); 921 this->parameters->FindParam(&finaltime,TimesteppingFinalTimeEnum); 922 923 /*Recover present day temperature and precipitation*/ 924 Input* input=inputs->GetInput(SurfaceforcingsDelta18oTemperaturesPresentdayEnum); _assert_(input); 925 Input* input2=inputs->GetInput(SurfaceforcingsDelta18oTemperaturesLgmEnum); _assert_(input2); 926 Input* input3=inputs->GetInput(SurfaceforcingsPrecipitationsPresentdayEnum); _assert_(input3); 927 GaussTria* gauss=new GaussTria(); 928 for(int month=0;month<12;month++) { 929 for(int iv=0;iv<NUMVERTICES;iv++) { 930 gauss->GaussVertex(iv); 931 input->GetInputValue(&Delta18oTemperaturesPresentday[iv][month],gauss,month/12.*yts); 932 input2->GetInputValue(&Delta18oTemperaturesLgm[iv][month],gauss,month/12.*yts); 933 input3->GetInputValue(&PrecipitationsPresentday[iv][month],gauss,month/12.*yts); 934 monthlyprec[iv][month]=monthlyprec[iv][month]*yts; // convertion to m/yr 935 } 936 } 937 938 /*Recover delta18o and Delta18oSurface at present day, lgm and at time t*/ 939 this->parameters->FindParam(&Delta18oPresent,SurfaceforcingsDelta18oEnum,finaltime*yts); 940 this->parameters->FindParam(&Delta18oLgm,SurfaceforcingsDelta18oEnum,(finaltime-21000)*yts); 941 this->parameters->FindParam(&Delta18oTime,SurfaceforcingsDelta18oEnum,time*yts); 942 this->parameters->FindParam(&Delta18oSurfacePresent,SurfaceforcingsDelta18oSurfaceEnum,finaltime*yts); 943 this->parameters->FindParam(&Delta18oSurfaceLgm,SurfaceforcingsDelta18oSurfaceEnum,(finaltime-21000)*yts); 944 this->parameters->FindParam(&Delta18oSurfaceTime,SurfaceforcingsDelta18oSurfaceEnum,time*yts); 945 946 /*Compute the temperature and precipitation*/ 947 for(int iv=0;iv<NUMVERTICES;iv++){ 948 ComputeDelta18oTemperaturePrecipitation(Delta18oSurfacePresent, Delta18oSurfaceLgm, Delta18oSurfaceTime, 949 Delta18oPresent, Delta18oLgm, Delta18oTime, 950 &PrecipitationsPresentday[iv][0], 951 &Delta18oTemperaturesLgm[iv][0], &Delta18oTemperaturesPresentday[iv][0], 952 &monthlytemperatures[iv][0], &monthlyprec[iv][0]); 953 } 954 955 /*Update inputs*/ 956 TransientInput* NewTemperatureInput = new TransientInput(SurfaceforcingsMonthlytemperaturesEnum); 957 TransientInput* NewPrecipitationInput = new TransientInput(SurfaceforcingsPrecipitationEnum); 958 for (int imonth=0;imonth<12;imonth++) { 959 for(int iv=0;iv<NUMVERTICES;iv++) { 960 TriaP1Input* newmonthinput1 = new TriaP1Input(SurfaceforcingsMonthlytemperaturesEnum,&monthlytemperatures[iv][imonth]); 961 NewTemperatureInput->AddTimeInput(newmonthinput1,imonth/12.*yts); 962 TriaP1Input* newmonthinput2 = new TriaP1Input(SurfaceforcingsPrecipitationEnum,&monthlyprec[iv][imonth]); 963 NewPrecipitationInput->AddTimeInput(newmonthinput2,imonth/12.*yts); 964 } 965 } 966 this->inputs->AddInput(NewTemperatureInput); 967 this->inputs->AddInput(NewPrecipitationInput); 908 968 } 909 969 /*}}}*/ -
issm/trunk-jpl/src/c/objects/Elements/Tria.h
r12704 r12748 80 80 void CreatePVector(Vector* pf); 81 81 void CreateJacobianMatrix(Matrix* Jff); 82 void Delta18oParameterization(void); 82 83 int GetNodeIndex(Node* node); 83 84 int Sid(); -
issm/trunk-jpl/src/c/shared/Elements/PddSurfaceMassBalance.cpp
r12705 r12748 43 43 IssmDouble frzndd = 0.; 44 44 45 IssmDouble tstar; 45 IssmDouble tstar; // monthly mean surface temp 46 46 IssmDouble Tsum= 0.; // average summer (JJA) temperature 47 47 IssmDouble Tsurf = 0.; // average annual temperature -
issm/trunk-jpl/src/c/shared/Elements/elements.h
r12704 r12748 13 13 IssmDouble Paterson(IssmDouble temperature); 14 14 IssmDouble Arrhenius(IssmDouble temperature,IssmDouble depth,IssmDouble n); 15 IssmDouble PddSurfaceMassBlance(IssmDouble* monthlytemperatures, IssmDouble* monthlyprec, IssmDouble* pdds, IssmDouble* pds, IssmDouble signorm, IssmDouble yts, IssmDouble h, IssmDouble s, IssmDouble rho_ice, IssmDouble rho_water); 15 IssmDouble PddSurfaceMassBlance(IssmDouble* monthlytemperatures, IssmDouble* monthlyprec, IssmDouble* pdds, IssmDouble* pds, 16 IssmDouble signorm, IssmDouble yts, IssmDouble h, IssmDouble s, IssmDouble rho_ice, IssmDouble rho_water); 17 void ComputeDelta18oTemperaturePrecipitation(IssmDouble Delta18oSurfacePresent, IssmDouble Delta18oSurfaceLgm, IssmDouble Delta18oSurfaceTime, 18 IssmDouble Delta18oPresent, IssmDouble Delta18oLgm, IssmDouble Delta18oTime, 19 IssmDouble* PrecipitationsPresentday, 20 IssmDouble* Delta18oTemperaturesLgm, IssmDouble* Delta18oTemperaturesPresentday, 21 IssmDouble* monthlytemperaturesout, IssmDouble* monthlyprecout); 16 22 void GetVerticesCoordinates(IssmDouble* xyz, Node** nodes, int numvertices); 17 23 int GetNumberOfDofs( Node** nodes,int numnodes,int setenum,int approximation_enum); -
issm/trunk-jpl/src/c/solutions/prognostic_core.cpp
r12677 r12748 16 16 /*parameters: */ 17 17 bool save_results; 18 bool ispdd;19 18 bool issmbgradients; 20 19 … … 24 23 /*recover parameters: */ 25 24 femmodel->parameters->FindParam(&save_results,SaveResultsEnum); 26 femmodel->parameters->FindParam(&ispdd,SurfaceforcingsIspddEnum);27 25 femmodel->parameters->FindParam(&issmbgradients,SurfaceforcingsIssmbgradientsEnum); 28 26 29 if(ispdd){30 if(VerboseSolution()) _pprintLine_(" call positive degree day module");31 PositiveDegreeDayx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters);32 }33 27 34 28 if(issmbgradients){ -
issm/trunk-jpl/src/c/solutions/transient_core.cpp
r12635 r12748 24 24 /*parameters: */ 25 25 IssmDouble starttime,finaltime,dt,yts; 26 bool isdiagnostic,isprognostic,isthermal,isgroundingline,isenthalpy ;26 bool isdiagnostic,isprognostic,isthermal,isgroundingline,isenthalpy,ispdd,isdelta18o; 27 27 bool save_results,dakota_analysis; 28 28 bool time_adapt=false; … … 53 53 femmodel->parameters->FindParam(&numoutputs,TransientNumRequestedOutputsEnum); 54 54 if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,TransientRequestedOutputsEnum); 55 femmodel->parameters->FindParam(&ispdd,SurfaceforcingsIspddEnum); 56 femmodel->parameters->FindParam(&isdelta18o,SurfaceforcingsIsdelta18oEnum); 55 57 56 58 /*initialize: */ … … 106 108 #endif 107 109 } 110 111 if(ispdd){ 112 if(isdelta18o){ 113 if(VerboseSolution()) _pprintLine_(" call Delta18oParametrization module"); 114 Delta18oParameterizationx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); 115 } 116 if(VerboseSolution()) _pprintLine_(" call positive degree day module"); 117 PositiveDegreeDayx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); 118 } 108 119 109 120 if(isdiagnostic){ -
issm/trunk-jpl/src/m/classes/surfaceforcings.m
r12677 r12748 10 10 ispdd = 0; 11 11 issmbgradients = 0; 12 isdelta18o = 0; 12 13 hc = NaN; 13 14 smb_pos_max = NaN; … … 18 19 b_neg = NaN; 19 20 monthlytemperatures = NaN; 21 delta18o = NaN; 22 delta18o_surface = NaN; 23 temperatures_presentday = NaN; 24 temperatures_lgm = NaN; 25 precipitations_presentday = NaN; 20 26 end 21 27 methods … … 33 39 obj.ispdd=0; 34 40 obj.issmbgradients=0; 41 obj.isdelta18o=0; 35 42 36 43 end % }}} … … 41 48 checkfield(md,'surfaceforcings.issmbgradients','numel',1,'values',[0 1]); 42 49 if(obj.ispdd) 43 md = checkfield(md,'surfaceforcings.monthlytemperatures','forcing',1,'NaN',1); 50 if(obj.isdelta18o==0) 51 md = checkfield(md,'surfaceforcings.monthlytemperatures','forcing',1,'NaN',1); 52 md = checkfield(md,'surfaceforcings.precipitation','forcing',1,'NaN',1); 53 else 54 md = checkfield(md,'surfaceforcings.delta18o','NaN',1); 55 md = checkfield(md,'surfaceforcings.delta18o_surface','NaN',1); 56 md = checkfield(md,'surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1); 57 md = checkfield(md,'surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1); 58 md = checkfield(md,'surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1); 59 end 44 60 elseif(obj.issmbgradients) 45 61 checkfield(md,'surfaceforcings.hc','forcing',1,'NaN',1); … … 61 77 disp(sprintf(' surface forcings parameters:')); 62 78 63 fielddisplay(obj,'precipitation','surface precipitation [m/yr water eq]');64 79 fielddisplay(obj,'mass_balance','surface mass balance [m/yr ice eq]'); 65 80 fielddisplay(obj,'ispdd','is pdd activated (0 or 1, default is 0)'); 66 fielddisplay(obj,'monthlytemperatures','monthly surface temperatures required if pdd is activated'); 81 fielddisplay(obj,'isdelta18o','is temperature and precipitation delta18o parametrisation activated (0 or 1, default is 0)'); 82 fielddisplay(obj,'monthlytemperatures','monthly surface temperatures [Kelvin], required if pdd is activated and delta18o not activated'); 83 fielddisplay(obj,'precipitation','surface precipitation [m/yr water eq]'); 84 fielddisplay(obj,'temperatures_presentday','monthly present day surface temperatures [Kelvin], required if pdd is activated and delta18o activated'); 85 fielddisplay(obj,'temperatures_lgm','monthly LGM surface temperatures [Kelvin], required if pdd is activated and delta18o activated'); 86 fielddisplay(obj,'precipitations_presentday','monthly surface precipitation [m/yr water eq], required if pdd is activated and delta18o activated'); 87 fielddisplay(obj,'delta18o_surface','surface elevation of the delta18o site, required if pdd is activated and delta18o activated'); 67 88 fielddisplay(obj,'issmbgradients','is smb gradients method activated (0 or 1, default is 0)'); 68 89 fielddisplay(obj,'hc',' elevation of intersection between accumulation and ablation regime required if smb gradients is activated'); … … 79 100 WriteData(fid,'object',obj,'fieldname','mass_balance','format','DoubleMat','mattype',1); 80 101 WriteData(fid,'object',obj,'fieldname','ispdd','format','Boolean'); 102 WriteData(fid,'object',obj,'fieldname','isdelta18o','format','Boolean'); 81 103 if obj.ispdd, 104 if obj.isdelta18o 105 WriteData(fid,'object',obj,'fieldname','temperatures_presentday','format','DoubleMat','mattype',1); 106 WriteData(fid,'object',obj,'fieldname','temperatures_lgm','format','DoubleMat','mattype',1); 107 WriteData(fid,'object',obj,'fieldname','precipitations_presentday','format','DoubleMat','mattype',1); 108 WriteData(fid,'object',obj,'fieldname','delta18o_surface','format','DoubleMat','mattype',1); 109 else 82 110 WriteData(fid,'object',obj,'fieldname','monthlytemperatures','format','DoubleMat','mattype',1); 111 WriteData(fid,'object',obj,'fieldname','precipitation','format','DoubleMat','mattype',1); 112 end 83 113 end 84 114 WriteData(fid,'object',obj,'fieldname','issmbgradients','format','Boolean'); -
issm/trunk-jpl/src/m/enum/EnumDefinitions.py
r12745 r12748 1377 1377 return StringToEnum('SettingsWaitonlock') 1378 1378 1379 def SurfaceforcingsDelta18oEnum(): 1380 """ 1381 SURFACEFORCINGSDELTA18OENUM - Enum of SurfaceforcingsDelta18o 1382 1383 Usage: 1384 macro=SurfaceforcingsDelta18oEnum() 1385 """ 1386 1387 return StringToEnum('SurfaceforcingsDelta18o') 1388 1389 def SurfaceforcingsDelta18oTemperaturesPresentdayEnum(): 1390 """ 1391 SURFACEFORCINGSDELTA18OTEMPERATURESPRESENTDAYENUM - Enum of SurfaceforcingsDelta18oTemperaturesPresentday 1392 1393 Usage: 1394 macro=SurfaceforcingsDelta18oTemperaturesPresentdayEnum() 1395 """ 1396 1397 return StringToEnum('SurfaceforcingsDelta18oTemperaturesPresentday') 1398 1399 def SurfaceforcingsDelta18oTemperaturesLgmEnum(): 1400 """ 1401 SURFACEFORCINGSDELTA18OTEMPERATURESLGMENUM - Enum of SurfaceforcingsDelta18oTemperaturesLgm 1402 1403 Usage: 1404 macro=SurfaceforcingsDelta18oTemperaturesLgmEnum() 1405 """ 1406 1407 return StringToEnum('SurfaceforcingsDelta18oTemperaturesLgm') 1408 1409 def SurfaceforcingsDelta18oSurfaceEnum(): 1410 """ 1411 SURFACEFORCINGSDELTA18OSURFACEENUM - Enum of SurfaceforcingsDelta18oSurface 1412 1413 Usage: 1414 macro=SurfaceforcingsDelta18oSurfaceEnum() 1415 """ 1416 1417 return StringToEnum('SurfaceforcingsDelta18oSurface') 1418 1419 def SurfaceforcingsIsdelta18oEnum(): 1420 """ 1421 SURFACEFORCINGSISDELTA18OENUM - Enum of SurfaceforcingsIsdelta18o 1422 1423 Usage: 1424 macro=SurfaceforcingsIsdelta18oEnum() 1425 """ 1426 1427 return StringToEnum('SurfaceforcingsIsdelta18o') 1428 1429 def SurfaceforcingsPrecipitationsPresentdayEnum(): 1430 """ 1431 SURFACEFORCINGSPRECIPITATIONSPRESENTDAYENUM - Enum of SurfaceforcingsPrecipitationsPresentday 1432 1433 Usage: 1434 macro=SurfaceforcingsPrecipitationsPresentdayEnum() 1435 """ 1436 1437 return StringToEnum('SurfaceforcingsPrecipitationsPresentday') 1438 1379 1439 def DebugProfilingEnum(): 1380 1440 """ … … 4505 4565 """ 4506 4566 4507 return 4 494508 4567 return 455 4568 -
issm/trunk-jpl/src/m/enum/MaximumNumberOfEnums.m
r12745 r12748 9 9 % macro=MaximumNumberOfEnums() 10 10 11 macro=4 49;11 macro=455;
Note:
See TracChangeset
for help on using the changeset viewer.