Changeset 24360
- Timestamp:
- 11/19/19 16:40:16 (5 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/SmbAnalysis.cpp
r24335 r24360 61 61 iomodel->FetchDataToInput(inputs2,elements,"md.smb.Tz",SmbTzEnum); 62 62 iomodel->FetchDataToInput(inputs2,elements,"md.smb.Vz",SmbVzEnum); 63 InputUpdateFromConstantx(inputs2,elements, 0.,SmbIsInitializedEnum);63 InputUpdateFromConstantx(inputs2,elements,false,SmbIsInitializedEnum); 64 64 iomodel->FetchDataToInput(inputs2,elements,"md.smb.Dzini",SmbDziniEnum); 65 65 iomodel->FetchDataToInput(inputs2,elements,"md.smb.Dini",SmbDiniEnum); -
issm/trunk-jpl/src/c/classes/Elements/Element.cpp
r24359 r24360 2067 2067 2068 2068 /*update input*/ 2069 this->Set BoolInput(this->inputs2,name,constant);2069 this->SetIntInput(this->inputs2,name,constant); 2070 2070 } 2071 2071 /*}}}*/ … … 3301 3301 *parray_size = 1; 3302 3302 break; 3303 case ArrayInput2Enum:{ 3304 int M; 3305 this->inputs2->GetArray(output_enum,this->lid,NULL,&M); 3306 *pinterpolation = P0ArrayEnum; 3307 *pnodesperelement = 1; 3308 *parray_size = M; 3309 } 3310 break; 3303 3311 default: 3304 3312 _error_("Input type \""<<EnumToStringx(this->inputs2->GetInputObjectEnum(output_enum))<<"\" not supported yet"); … … 3321 3329 void Element::ResultToMatrix(IssmDouble* values,int ncols,int output_enum){/*{{{*/ 3322 3330 3323 I nput2* input=this->GetInput2(output_enum);3324 i f(!input) _error_("input "<<EnumToStringx(output_enum)<<" not found in element");3325 3326 _error_("not implemented yet");3327 //input->ResultToMatrix(values,ncols,this->Sid());3331 IssmDouble* array = NULL; 3332 int m; 3333 this->inputs2->GetArray(output_enum,this->lid,&array,&m); 3334 for(int i=0;i<m;i++) values[this->Sid()*ncols + i] = array[i]; 3335 xDelete<IssmDouble>(array); 3328 3336 3329 3337 } /*}}}*/ … … 3617 3625 3618 3626 /*Intermediary variables: {{{*/ 3619 IssmDouble isinitialized=0.0;3627 bool isinitialized; 3620 3628 IssmDouble zTop=0.0; 3621 3629 IssmDouble dzTop=0.0; … … 3735 3743 /*}}}*/ 3736 3744 /*Retrieve inputs: {{{*/ 3737 _error_("fix....");3738 3745 Input2 *zTop_input = this->GetInput2(SmbZTopEnum); _assert_(zTop_input); 3739 3746 Input2 *dzTop_input = this->GetInput2(SmbDzTopEnum); _assert_(dzTop_input); … … 3749 3756 Input2 *teValue_input = this->GetInput2(SmbTeValueEnum); _assert_(teValue_input); 3750 3757 Input2 *aValue_input = this->GetInput2(SmbAValueEnum); _assert_(aValue_input); 3751 3752 TransientInput2 *Ta_input = this->inputs2->GetTransientInput(SmbTaEnum); _assert_(Ta_input); 3753 TransientInput2 *V_input = this->inputs2->GetTransientInput(SmbVEnum); _assert_(V_input); 3754 TransientInput2 *Dlwr_input = this->inputs2->GetTransientInput(SmbDlwrfEnum); _assert_(Dlwr_input); 3755 TransientInput2 *Dswr_input = this->inputs2->GetTransientInput(SmbDswrfEnum); _assert_(Dswr_input); 3756 TransientInput2 *P_input = this->inputs2->GetTransientInput(SmbPEnum); _assert_(P_input); 3757 TransientInput2 *eAir_input = this->inputs2->GetTransientInput(SmbEAirEnum); _assert_(eAir_input); 3758 TransientInput2 *pAir_input = this->inputs2->GetTransientInput(SmbPAirEnum); _assert_(pAir_input); 3758 Input2 *EC_input = this->GetInput2(SmbECiniEnum); _assert_(EC_input); 3759 3759 3760 3760 /*Retrieve input values:*/ … … 3778 3778 3779 3779 /*First, check that the initial structures have been setup in GEMB. If not, initialize profile variables: layer thickness dz, * density d, temperature T, etc. {{{*/ 3780 if( isinitialized==0.0){3780 if(!isinitialized){ 3781 3781 if(VerboseSmb() && this->Sid()==0)_printf0_("smb core: Initializing grid\n"); 3782 3782 //if(this->Sid()==1) for(int i=0;i<m;i++)_printf_("z[" << i << "]=" << 3783 3783 //dz[i] << "\n"); 3784 3784 3785 DoubleArrayInput* dz_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbDziniEnum)); _assert_(dz_input); 3786 DoubleArrayInput* d_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbDiniEnum));_assert_(d_input); 3787 DoubleArrayInput* re_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbReiniEnum));_assert_(re_input); 3788 DoubleArrayInput* gdn_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbGdniniEnum));_assert_(gdn_input); 3789 DoubleArrayInput* gsp_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbGspiniEnum));_assert_(gsp_input); 3790 DoubleInput* EC_input= dynamic_cast<DoubleInput*>(this->GetInput(SmbECiniEnum));_assert_(EC_input); 3791 DoubleArrayInput* W_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbWiniEnum));_assert_(W_input); 3792 DoubleArrayInput* a_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbAiniEnum));_assert_(a_input); 3793 DoubleArrayInput* T_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbTiniEnum));_assert_(T_input); 3794 3795 dz_input->GetValues(&dzini,&m); 3796 d_input->GetValues(&dini,&m); 3797 re_input->GetValues(&reini,&m); 3798 gdn_input->GetValues(&gdnini,&m); 3799 gsp_input->GetValues(&gspini,&m); 3800 EC_input->GetInputValue(&EC); 3801 W_input->GetValues(&Wini,&m); 3802 a_input->GetValues(&aini,&m); 3803 T_input->GetValues(&Tini,&m); 3785 this->inputs2->GetArray(SmbDziniEnum,this->lid,&dzini,&m); 3786 this->inputs2->GetArray(SmbDiniEnum,this->lid,&dini,&m); 3787 this->inputs2->GetArray(SmbReiniEnum,this->lid,&reini,&m); 3788 this->inputs2->GetArray(SmbGdniniEnum,this->lid,&gdnini,&m); 3789 this->inputs2->GetArray(SmbGspiniEnum,this->lid,&gspini,&m); 3790 this->inputs2->GetArray(SmbWiniEnum,this->lid,&Wini,&m); 3791 this->inputs2->GetArray(SmbAiniEnum,this->lid,&aini,&m); 3792 this->inputs2->GetArray(SmbTiniEnum,this->lid,&Tini,&m); 3793 EC_input->GetInputAverage(&EC); 3804 3794 3805 3795 /*Retrive the correct value of m (without the zeroes at the end)*/ 3806 Input* Size_input=this->GetInput(SmbSizeiniEnum); _assert_(Size_input); 3807 Size_input->GetInputValue(&m); 3796 this->GetInput2Value(&m,SmbSizeiniEnum); 3808 3797 3809 3798 if(m==2){ //Snow properties are initialized with default values. Vertical grid has to be initialized too … … 3813 3802 GembgridInitialize(&dz, &m, zTop, dzTop, zMax, zY); 3814 3803 3815 d = xNew ZeroInit<IssmDouble>(m); for(int i=0;i<m;i++)d[i]=dini[0]; //ice density [kg m-3]3816 re = xNew ZeroInit<IssmDouble>(m); for(int i=0;i<m;i++)re[i]=reini[0]; //set grain size to old snow [mm]3817 gdn = xNew ZeroInit<IssmDouble>(m); for(int i=0;i<m;i++)gdn[i]=gdnini[0]; //set grain dentricity to old snow3818 gsp = xNew ZeroInit<IssmDouble>(m); for(int i=0;i<m;i++)gsp[i]=gspini[0]; //set grain sphericity to old snow3819 W = xNew ZeroInit<IssmDouble>(m); for(int i=0;i<m;i++)W[i]=Wini[0]; //set water content to zero [kg m-2]3820 a = xNew ZeroInit<IssmDouble>(m); for(int i=0;i<m;i++)a[i]=aini[0]; //set albedo equal to fresh snow [fraction]3821 T = xNew ZeroInit<IssmDouble>(m); for(int i=0;i<m;i++)T[i]=Tmean; //set initial grid cell temperature to the annual mean temperature [K]3804 d = xNew<IssmDouble>(m); for(int i=0;i<m;i++)d[i]=dini[0]; //ice density [kg m-3] 3805 re = xNew<IssmDouble>(m); for(int i=0;i<m;i++)re[i]=reini[0]; //set grain size to old snow [mm] 3806 gdn = xNew<IssmDouble>(m); for(int i=0;i<m;i++)gdn[i]=gdnini[0]; //set grain dentricity to old snow 3807 gsp = xNew<IssmDouble>(m); for(int i=0;i<m;i++)gsp[i]=gspini[0]; //set grain sphericity to old snow 3808 W = xNew<IssmDouble>(m); for(int i=0;i<m;i++)W[i]=Wini[0]; //set water content to zero [kg m-2] 3809 a = xNew<IssmDouble>(m); for(int i=0;i<m;i++)a[i]=aini[0]; //set albedo equal to fresh snow [fraction] 3810 T = xNew<IssmDouble>(m); for(int i=0;i<m;i++)T[i]=Tmean; //set initial grid cell temperature to the annual mean temperature [K] 3822 3811 /*/!\ Default value of T can not be retrived from SMBgemb.m (like other snow properties) 3823 3812 * because don't know Tmean yet when set default values. … … 3830 3819 // if(VerboseSmb() && this->Sid()==0)_printf0_("Snow properties initialized w RESTART values\n"); 3831 3820 3832 dz = xNew ZeroInit<IssmDouble>(m);for(int i=0;i<m;i++)dz[i]=dzini[i];3833 d = xNew ZeroInit<IssmDouble>(m);for(int i=0;i<m;i++)d[i]=dini[i];3834 re = xNew ZeroInit<IssmDouble>(m);for(int i=0;i<m;i++)re[i]=reini[i];3835 gdn = xNew ZeroInit<IssmDouble>(m);for(int i=0;i<m;i++)gdn[i]=gdnini[i];3836 gsp = xNew ZeroInit<IssmDouble>(m);for(int i=0;i<m;i++)gsp[i]=gspini[i];3837 W = xNew ZeroInit<IssmDouble>(m);for(int i=0;i<m;i++)W[i]=Wini[i];3838 a = xNew ZeroInit<IssmDouble>(m);for(int i=0;i<m;i++)a[i]=aini[i];3839 T = xNew ZeroInit<IssmDouble>(m);for(int i=0;i<m;i++)T[i]=Tini[i];3821 dz = xNew<IssmDouble>(m);for(int i=0;i<m;i++)dz[i]=dzini[i]; 3822 d = xNew<IssmDouble>(m);for(int i=0;i<m;i++)d[i]=dini[i]; 3823 re = xNew<IssmDouble>(m);for(int i=0;i<m;i++)re[i]=reini[i]; 3824 gdn = xNew<IssmDouble>(m);for(int i=0;i<m;i++)gdn[i]=gdnini[i]; 3825 gsp = xNew<IssmDouble>(m);for(int i=0;i<m;i++)gsp[i]=gspini[i]; 3826 W = xNew<IssmDouble>(m);for(int i=0;i<m;i++)W[i]=Wini[i]; 3827 a = xNew<IssmDouble>(m);for(int i=0;i<m;i++)a[i]=aini[i]; 3828 T = xNew<IssmDouble>(m);for(int i=0;i<m;i++)T[i]=Tini[i]; 3840 3829 3841 3830 //fixed lower temperature bounday condition - T is fixed 3831 _assert_(m>0); 3842 3832 T_bottom=T[m-1]; 3843 3833 } 3844 3834 3845 3835 /*Flag the initialization:*/ 3846 this-> AddInput(new DoubleInput(SmbIsInitializedEnum,1.0));3836 this->SetBoolInput(this->inputs2,SmbIsInitializedEnum,true); 3847 3837 } 3848 3838 else{ 3849 3839 /*Recover inputs: */ 3850 DoubleArrayInput* dz_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbDzEnum)); _assert_(dz_input); 3851 DoubleArrayInput* d_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbDEnum));_assert_(d_input); 3852 DoubleArrayInput* re_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbReEnum));_assert_(re_input); 3853 DoubleArrayInput* gdn_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbGdnEnum));_assert_(gdn_input); 3854 DoubleArrayInput* gsp_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbGspEnum));_assert_(gsp_input); 3855 DoubleInput* EC_input= dynamic_cast<DoubleInput*>(this->GetInput(SmbECEnum));_assert_(EC_input); 3856 DoubleArrayInput* W_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbWEnum));_assert_(W_input); 3857 DoubleArrayInput* a_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbAEnum));_assert_(a_input); 3858 DoubleArrayInput* T_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbTEnum));_assert_(T_input); 3859 3860 /*Recover arrays: */ 3861 dz_input->GetValues(&dz,&m); 3862 d_input->GetValues(&d,&m); 3863 re_input->GetValues(&re,&m); 3864 gdn_input->GetValues(&gdn,&m); 3865 gsp_input->GetValues(&gsp,&m); 3866 EC_input->GetInputValue(&EC); 3867 W_input->GetValues(&W,&m); 3868 a_input->GetValues(&a,&m); 3869 T_input->GetValues(&T,&m); 3840 this->inputs2->GetArray(SmbDzEnum,this->lid,&dzini,&m); 3841 this->inputs2->GetArray(SmbDEnum,this->lid,&dini,&m); 3842 this->inputs2->GetArray(SmbReEnum,this->lid,&reini,&m); 3843 this->inputs2->GetArray(SmbGdnEnum,this->lid,&gdnini,&m); 3844 this->inputs2->GetArray(SmbGspEnum,this->lid,&gspini,&m); 3845 this->inputs2->GetArray(SmbWEnum,this->lid,&Wini,&m); 3846 this->inputs2->GetArray(SmbAEnum,this->lid,&aini,&m); 3847 this->inputs2->GetArray(SmbTEnum,this->lid,&Tini,&m); 3848 EC_input->GetInputAverage(&EC); 3870 3849 3871 3850 //fixed lower temperature bounday condition - T is fixed 3851 _assert_(m>0); 3872 3852 T_bottom=T[m-1]; 3873 3853 … … 3888 3868 if (isclimatology){ 3889 3869 //If this is a climatology, we need to repeat the forcing after the final time 3890 offsetend = Ta_input->GetTimeInputOffset(finaltime); 3891 time0 = Ta_input->GetTimeByOffset(-1); 3892 timeend = Ta_input->GetTimeByOffset(offsetend); 3870 TransientInput2* Ta_input_tr = this->inputs2->GetTransientInput(SmbTaEnum); _assert_(Ta_input_tr); 3871 offsetend = Ta_input_tr->GetTimeInputOffset(finaltime); 3872 time0 = Ta_input_tr->GetTimeByOffset(-1); 3873 timeend = Ta_input_tr->GetTimeByOffset(offsetend); 3893 3874 if (time>time0 & timeend>time0){ 3894 3875 delta=(time-time0) - (timeend-time0)*(reCast<int,IssmDouble>((time-time0)/(timeend-time0))); … … 3903 3884 if(VerboseSmb() && this->Sid()==0 && IssmComm::GetRank()==0)_printf0_("Time: t=" << setprecision(8) << t/365.0/24.0/3600.0 << " yr/" << (time+dt)/365.0/24.0/3600.0 << " yr" << setprecision(3) << " Step: " << count << "\n"); 3904 3885 3905 Input2* Ta_input 2 = this->GetInput2(SmbTaEnum,t-time+timeclim); _assert_(Ta_input2);3906 Input2 *V_input 2= this->GetInput2(SmbVEnum,t-time+timeclim); _assert_(V_input);3907 Input2 *Dlwr_input 2= this->GetInput2(SmbDlwrfEnum,t-time+timeclim); _assert_(Dlwr_input);3908 Input2 *Dswr_input 2= this->GetInput2(SmbDswrfEnum,t-time+timeclim); _assert_(Dswr_input);3909 Input2 *P_input 2= this->GetInput2(SmbPEnum,t-time+timeclim); _assert_(P_input);3910 Input2 *eAir_input 2= this->GetInput2(SmbEAirEnum,t-time+timeclim); _assert_(eAir_input);3911 Input2 *pAir_input 2= this->GetInput2(SmbPAirEnum,t-time+timeclim); _assert_(pAir_input);3886 Input2* Ta_input = this->GetInput2(SmbTaEnum,t-time+timeclim); _assert_(Ta_input); 3887 Input2 *V_input = this->GetInput2(SmbVEnum,t-time+timeclim); _assert_(V_input); 3888 Input2 *Dlwr_input= this->GetInput2(SmbDlwrfEnum,t-time+timeclim); _assert_(Dlwr_input); 3889 Input2 *Dswr_input= this->GetInput2(SmbDswrfEnum,t-time+timeclim); _assert_(Dswr_input); 3890 Input2 *P_input = this->GetInput2(SmbPEnum,t-time+timeclim); _assert_(P_input); 3891 Input2 *eAir_input= this->GetInput2(SmbEAirEnum,t-time+timeclim); _assert_(eAir_input); 3892 Input2 *pAir_input= this->GetInput2(SmbPAirEnum,t-time+timeclim); _assert_(pAir_input); 3912 3893 3913 3894 /*extract daily data:{{{*/ 3914 Ta_input 2->GetInputValue(&Ta,gauss);//screen level air temperature [K]3895 Ta_input->GetInputValue(&Ta,gauss);//screen level air temperature [K] 3915 3896 V_input->GetInputValue(&V,gauss); //wind speed [m s-1] 3916 3897 Dlwr_input->GetInputValue(&dlw,gauss); //downward longwave radiation flux [W m-2] -
issm/trunk-jpl/src/c/classes/Inputs2/ArrayInput2.cpp
r24335 r24360 83 83 } 84 84 /*}}}*/ 85 void ArrayInput2::GetArray(int row,IssmDouble** pvalues,int* pN){/*{{{*/ 86 87 _assert_(this); 88 _assert_(row>=0 && row<this->numberofelements_local); 89 if(pvalues){ 90 IssmDouble* outvalues = xNew<IssmDouble>(this->N); 91 xMemCpy<IssmDouble>(outvalues,this->values,this->N); 92 *pvalues = outvalues; 93 } 94 if(pN){ 95 *pN = this->N; 96 } 97 } 98 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Inputs2/ArrayInput2.h
r24335 r24360 26 26 int ObjectEnum(); 27 27 /*}}}*/ 28 /*ArrayInput2 management: {{{*/28 /*ArrayInput2 management:*/ 29 29 void SetInput(int row,int numinds,IssmDouble* values_in); 30 /*}}}*/30 void GetArray(int row,IssmDouble** pvalues,int* pN); 31 31 32 32 }; -
issm/trunk-jpl/src/c/classes/Inputs2/Input2.h
r24335 r24360 36 36 virtual IssmDouble GetInputMin(void){_error_("Not implemented yet");}; 37 37 virtual void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, Gauss* gauss){_error_("Not implemented yet");}; 38 virtual void GetInputValue(IssmDouble* pvalue,Gauss* gauss){int* temp = xNew<int>(3); _error_("Not implemented yet ");};38 virtual void GetInputValue(IssmDouble* pvalue,Gauss* gauss){int* temp = xNew<int>(3); _error_("Not implemented yet for");}; 39 39 virtual int GetInputInterpolationType(){_error_("Not implemented yet");}; 40 40 virtual SegInput2* GetSegInput(){ int* temp = xNew<int>(3); this->Echo(); _error_("Not implemented yet");}; -
issm/trunk-jpl/src/c/classes/Inputs2/Inputs2.cpp
r24344 r24360 232 232 /*Make sure this parameter is at the right place*/ 233 233 #ifdef _ISSM_DEBUG_ 234 if(enum_in<=InputsSTARTEnum) _error_("Enum "<<EnumToStringx(enum_in)<<" should appear after InputsSTARTEnum"); 235 if(enum_in>=InputsENDEnum) _error_("Enum "<<EnumToStringx(enum_in)<<" should appear before InputsENDEnum"); 234 if(enum_in<=InputsSTARTEnum){ 235 //int* temp = xNew<int>(3); 236 _error_("Enum "<<EnumToStringx(enum_in)<<" should appear after InputsSTARTEnum"); 237 } 238 if(enum_in>=InputsENDEnum){ 239 _error_("Enum "<<EnumToStringx(enum_in)<<" should appear before InputsENDEnum"); 240 } 236 241 #endif 237 242 return enum_in - InputsSTARTEnum -1; … … 428 433 return xDynamicCast<ControlInput2*>(input); 429 434 }/*}}}*/ 435 void Inputs2::GetArray(int enum_in,int row,IssmDouble** pvalues,int* pN){/*{{{*/ 436 437 /*Get input id*/ 438 int id = EnumToIndex(enum_in); 439 440 /*Create it if necessary*/ 441 if(this->inputs[id]){ 442 if(this->inputs[id]->ObjectEnum()!=ArrayInput2Enum) _error_(EnumToStringx(this->inputs[id]->ObjectEnum())<<" cannot return an array"); 443 } 444 else{ 445 _error_("Input "<<EnumToStringx(enum_in)<<" not found"); 446 } 447 448 /*Set input*/ 449 ArrayInput2* input = xDynamicCast<ArrayInput2*>(this->inputs[id]); 450 input->GetArray(row,pvalues,pN); 451 }/*}}}*/ 430 452 void Inputs2::GetInputValue(bool* pvalue,int enum_in,int index){/*{{{*/ 431 453 -
issm/trunk-jpl/src/c/classes/Inputs2/Inputs2.h
r24344 r24360 50 50 bool Exist(int enum_type); 51 51 void GetInputsInterpolations(int* pnuminputs,int** pinterpolations,int** penum); 52 void GetArray(int enum_in,int row,IssmDouble** pvalues,int* pN); 52 53 SegInput2* GetSegInput(int enum_type); 53 54 TriaInput2* GetTriaInput(int enum_type); -
issm/trunk-jpl/src/c/classes/Inputs2/TriaInput2.cpp
r24335 r24360 104 104 _printf_(" current values: "); 105 105 _printf_("[ "); 106 for(int i=0;i< 3;i++) _printf_(" "<<this->element_values[i]);106 for(int i=0;i<TriaRef::NumberofNodes(this->interpolation);i++) _printf_(" "<<this->element_values[i]); 107 107 _printf_("] ("<<EnumToStringx(this->interpolation)<<")\n"); 108 108 } -
issm/trunk-jpl/src/c/modules/InputUpdateFromConstantx/InputUpdateFromConstantx.cpp
r24335 r24360 58 58 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 59 59 element->SetElementInput(inputs2,name,constant); 60 //element->InputUpdateFromConstant(constant,name);61 60 } 62 61 } 62 void InputUpdateFromConstantx(Inputs2* inputs2,Elements* elements,bool constant, int name){ 63 64 if(VerboseModule()) _printf0_(" Input updates from constant\n"); 65 66 /*Elements and loads drive the update: */ 67 for(int i=0;i<elements->Size();i++){ 68 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 69 element->SetBoolInput(inputs2,name,constant); 70 } 71 } -
issm/trunk-jpl/src/c/modules/InputUpdateFromConstantx/InputUpdateFromConstantx.h
r24335 r24360 14 14 void InputUpdateFromConstantx(FemModel* femmodel,IssmDouble constant,int name); 15 15 void InputUpdateFromConstantx(Inputs2* inputs2,Elements* elements,IssmDouble constant,int name); 16 void InputUpdateFromConstantx(Inputs2* inputs2,Elements* elements,bool constant,int name); 16 17 17 18 #endif /* _UPDATEINPUTSFROMCONSTANTXX_H */
Note:
See TracChangeset
for help on using the changeset viewer.