Changeset 27128
- Timestamp:
- 07/01/22 13:38:19 (3 years ago)
- Location:
- issm/trunk-jpl/src/c/classes/Inputs
- Files:
-
- 2 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Inputs/Inputs.cpp
r27113 r27128 24 24 #include "./DatasetInput.h" 25 25 #include "./ArrayInput.h" 26 #include "./IntArrayInput.h" 26 27 using namespace std; 27 28 /*}}}*/ … … 571 572 input->GetArrayPtr(row,pvalues,pN); 572 573 }/*}}}*/ 574 void Inputs::GetIntArrayPtr(int enum_in,int row,int** pvalues,int* pN){/*{{{*/ 575 576 /*Get input id*/ 577 int id = EnumToIndex(enum_in); 578 579 /*Create it if necessary*/ 580 if(this->inputs[id]){ 581 if(this->inputs[id]->ObjectEnum()!=IntArrayInputEnum) _error_(EnumToStringx(this->inputs[id]->ObjectEnum())<<" cannot return an int array"); 582 } 583 else{ 584 _error_("Input "<<EnumToStringx(enum_in)<<" not found"); 585 } 586 587 /*Set input*/ 588 IntArrayInput* input = xDynamicCast<IntArrayInput*>(this->inputs[id]); 589 input->GetArrayPtr(row,pvalues,pN); 590 }/*}}}*/ 573 591 void Inputs::GetArray(int enum_in,int row,IssmDouble** pvalues,int* pN){/*{{{*/ 574 592 … … 586 604 /*Set input*/ 587 605 ArrayInput* input = xDynamicCast<ArrayInput*>(this->inputs[id]); 606 input->GetArray(row,pvalues,pN); 607 }/*}}}*/ 608 void Inputs::GetIntArray(int enum_in,int row,int** pvalues,int* pN){/*{{{*/ 609 610 /*Get input id*/ 611 int id = EnumToIndex(enum_in); 612 613 /*Create it if necessary*/ 614 if(this->inputs[id]){ 615 if(this->inputs[id]->ObjectEnum()!=IntArrayInputEnum) _error_(EnumToStringx(this->inputs[id]->ObjectEnum())<<" cannot return an int array"); 616 } 617 else{ 618 _error_("Input "<<EnumToStringx(enum_in)<<" not found"); 619 } 620 621 /*Set input*/ 622 IntArrayInput* input = xDynamicCast<IntArrayInput*>(this->inputs[id]); 588 623 input->GetArray(row,pvalues,pN); 589 624 }/*}}}*/ … … 735 770 input->SetInput(row,numlayers,values); 736 771 }/*}}}*/ 772 void Inputs::SetIntArrayInput(int enum_in,int row,int* values,int numlayers){/*{{{*/ 773 774 bool recreate = false; 775 776 /*Get input id*/ 777 int id = EnumToIndex(enum_in); 778 779 /*Create it if necessary*/ 780 if(this->inputs[id]){ 781 if(this->inputs[id]->ObjectEnum()!=IntArrayInputEnum){ 782 delete this->inputs[id]; 783 recreate = true; 784 } 785 } 786 else{ 787 recreate = true; 788 } 789 790 if(recreate){ 791 this->inputs[id] = new IntArrayInput(this->numberofelements_local); 792 } 793 794 /*Set input*/ 795 IntArrayInput* input = xDynamicCast<IntArrayInput*>(this->inputs[id]); 796 input->SetInput(row,numlayers,values); 797 }/*}}}*/ 737 798 TransientInput* Inputs::SetDatasetTransientInput(int enum_in,int dataset_id,IssmDouble* times,int numtimes){/*{{{*/ 738 799 -
issm/trunk-jpl/src/c/classes/Inputs/Inputs.h
r26121 r27128 11 11 class DatasetInput; 12 12 class ArrayInput; 13 class IntArrayInput; 13 14 class ControlInput; 14 15 class Parameters; … … 56 57 void GetInputsInterpolations(int* pnuminputs,int** pinterpolations,int** penum); 57 58 void GetArray(int enum_in,int row,IssmDouble** pvalues,int* pN); 59 void GetIntArray(int enum_in,int row,int** pvalues,int* pN); 58 60 void GetArrayPtr(int enum_in,int row,IssmDouble** pvalues,int* pN); 61 void GetIntArrayPtr(int enum_in,int row,int** pvalues,int* pN); 59 62 SegInput* GetSegInput(int enum_type); 60 63 TriaInput* GetTriaInput(int enum_type); … … 82 85 TransientInput* SetDatasetTransientInput(int enum_in,int id,IssmDouble* times,int numtimes); 83 86 void SetArrayInput(int enum_in,int row,IssmDouble* layers,int numlayers); 87 void SetIntArrayInput(int enum_in,int row,int* layers,int numlayers); 84 88 void SetTriaControlInputGradient(int enum_in,int interpolation,int numindices,int* indices,IssmDouble* values); 85 89 void SetTriaControlInputGradient(int enum_in,int interpolation,int numindices,int* indices,IssmDouble* values,int n);
Note:
See TracChangeset
for help on using the changeset viewer.