Index: ../trunk-jpl/test/NightlyRun/test314.m =================================================================== --- ../trunk-jpl/test/NightlyRun/test314.m (revision 19763) +++ ../trunk-jpl/test/NightlyRun/test314.m (revision 19764) @@ -4,18 +4,18 @@ md=parameterize(md,'../Par/SquareSheetConstrained.par'); md=setflowequation(md,'SIA','all'); md.cluster=generic('name',oshostname(),'np',3); -md.transient.requested_outputs={'default','GroundedArea','IceVolume'}; +md.transient.requested_outputs={'default','GroundedArea','FloatingArea','IceVolume'}; md=solve(md,TransientSolutionEnum()); %Fields and tolerances to track changes field_names ={... - 'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1',... - 'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2',... - 'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3'}; + 'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1','FloatingArea1',... + 'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2','FloatingArea2',... + 'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3','FloatingArea3'}; field_tolerances={... - 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13... - 1e-10 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13... - 1e-10 , 1.5e-13 , 1.5e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13, 1e-13}; + 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13... + 1e-10 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13... + 1e-10 , 1.5e-13 , 1.5e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13, 1e-13 , 1e-13}; field_values={... (md.results.TransientSolution(1).Vx),... (md.results.TransientSolution(1).Vy),... @@ -25,6 +25,7 @@ (md.results.TransientSolution(1).Surface),... (md.results.TransientSolution(1).Thickness),... (md.results.TransientSolution(1).GroundedArea),... + (md.results.TransientSolution(1).FloatingArea),... (md.results.TransientSolution(2).Vx),... (md.results.TransientSolution(2).Vy),... (md.results.TransientSolution(2).Vel),... @@ -33,6 +34,7 @@ (md.results.TransientSolution(2).Surface),... (md.results.TransientSolution(2).Thickness),... (md.results.TransientSolution(2).GroundedArea),... + (md.results.TransientSolution(2).FloatingArea),... (md.results.TransientSolution(3).Vx),... (md.results.TransientSolution(3).Vy),... (md.results.TransientSolution(3).Vel),... @@ -41,4 +43,5 @@ (md.results.TransientSolution(3).Surface),... (md.results.TransientSolution(3).Thickness),... (md.results.TransientSolution(3).GroundedArea),... + (md.results.TransientSolution(3).FloatingArea),... }; Index: ../trunk-jpl/test/NightlyRun/test317.py =================================================================== --- ../trunk-jpl/test/NightlyRun/test317.py (revision 19763) +++ ../trunk-jpl/test/NightlyRun/test317.py (revision 19764) @@ -14,13 +14,13 @@ md.extrude(3,1.) md=setflowequation(md,'HO','all') md.cluster=generic('name',oshostname(),'np',3) -md.transient.requested_outputs=['default','GroundedArea'] +md.transient.requested_outputs=['default','GroundedArea','FloatingArea'] md=solve(md,TransientSolutionEnum()) #Fields and tolerances to track changes -field_names =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','GroundedArea1',\ - 'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','GroundedArea2',\ - 'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','GroundedArea3'] +field_names =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','GroundedArea1','FloatingArea'\ + 'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','GroundedArea2','FloatingArea',\ + 'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','GroundedArea3','FloatingArea'] field_tolerances=[1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,\ 1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,\ 1e-09,5e-10,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12] @@ -36,6 +36,7 @@ md.results.TransientSolution[0].Temperature,\ md.results.TransientSolution[0].BasalforcingsGroundediceMeltingRate,\ md.results.TransientSolution[0].GroundedArea,\ + md.results.TransientSolution[0].FloatingArea,\ md.results.TransientSolution[1].Vx,\ md.results.TransientSolution[1].Vy,\ md.results.TransientSolution[1].Vz,\ @@ -47,6 +48,7 @@ md.results.TransientSolution[1].Temperature,\ md.results.TransientSolution[1].BasalforcingsGroundediceMeltingRate,\ md.results.TransientSolution[1].GroundedArea,\ + md.results.TransientSolution[1].FloatingArea,\ md.results.TransientSolution[2].Vx,\ md.results.TransientSolution[2].Vy,\ md.results.TransientSolution[2].Vz,\ @@ -58,4 +60,5 @@ md.results.TransientSolution[2].Temperature,\ md.results.TransientSolution[2].BasalforcingsGroundediceMeltingRate,\ md.results.TransientSolution[2].GroundedArea,\ + md.results.TransientSolution[2].FloatingArea,\ ] Index: ../trunk-jpl/test/NightlyRun/test317.m =================================================================== --- ../trunk-jpl/test/NightlyRun/test317.m (revision 19763) +++ ../trunk-jpl/test/NightlyRun/test317.m (revision 19764) @@ -5,16 +5,16 @@ md=extrude(md,3,1.); md=setflowequation(md,'HO','all'); md.cluster=generic('name',oshostname(),'np',3); -md.transient.requested_outputs={'default','GroundedArea'}; +md.transient.requested_outputs={'default','GroundedArea','FloatingArea'}; md=solve(md,TransientSolutionEnum()); %Fields and tolerances to track changes -field_names ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','GroundedArea1',... - 'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','GroundedArea2',... - 'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','GroundedArea3'}; -field_tolerances={1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,... - 1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,... - 1e-09,5e-10,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12}; +field_names ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','GroundedArea1','FloatingArea1',... + 'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','GroundedArea2','FloatingArea2',... + 'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','GroundedArea3','FloatingArea3'}; +field_tolerances={1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,1e-12,... + 1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,1e-12,... + 1e-09,5e-10,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,1e-12}; field_values={... (md.results.TransientSolution(1).Vx),... (md.results.TransientSolution(1).Vy),... @@ -27,6 +27,7 @@ (md.results.TransientSolution(1).Temperature),... (md.results.TransientSolution(1).BasalforcingsGroundediceMeltingRate),... (md.results.TransientSolution(1).GroundedArea),... + (md.results.TransientSolution(1).FloatingArea),... (md.results.TransientSolution(2).Vx),... (md.results.TransientSolution(2).Vy),... (md.results.TransientSolution(2).Vz),... @@ -38,6 +39,7 @@ (md.results.TransientSolution(2).Temperature),... (md.results.TransientSolution(2).BasalforcingsGroundediceMeltingRate),... (md.results.TransientSolution(2).GroundedArea),... + (md.results.TransientSolution(2).FloatingArea),... (md.results.TransientSolution(3).Vx),... (md.results.TransientSolution(3).Vy),... (md.results.TransientSolution(3).Vz),... @@ -49,4 +51,5 @@ (md.results.TransientSolution(3).Temperature),... (md.results.TransientSolution(3).BasalforcingsGroundediceMeltingRate),... (md.results.TransientSolution(3).GroundedArea),... + (md.results.TransientSolution(3).FloatingArea),... }; Index: ../trunk-jpl/test/NightlyRun/test314.py =================================================================== --- ../trunk-jpl/test/NightlyRun/test314.py (revision 19763) +++ ../trunk-jpl/test/NightlyRun/test314.py (revision 19764) @@ -13,18 +13,18 @@ md=parameterize(md,'../Par/SquareSheetConstrained.py') md=setflowequation(md,'SIA','all') md.cluster=generic('name',oshostname(),'np',3) -md.transient.requested_outputs=['default','GroundedArea','IceVolume'] +md.transient.requested_outputs=['default','GroundedArea','FloatingArea','IceVolume'] md=solve(md,TransientSolutionEnum()) #Fields and tolerances to track changes field_names =[ -'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1', -'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2', -'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3'] +'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1','FloatingArea1', +'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2','FloatingArea2', +'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3','FloatingArea3'] field_tolerances=[ - 1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13, - 1e-10,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13, - 1e-10,1.5e-13,1.5e-13,1e-13,1e-13,1e-13,1e-13,1e-13] + 1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13, + 1e-10,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13, + 1e-10,1.5e-13,1.5e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13] field_values=[\ md.results.TransientSolution[0].Vx,\ md.results.TransientSolution[0].Vy,\ @@ -34,6 +34,7 @@ md.results.TransientSolution[0].Surface,\ md.results.TransientSolution[0].Thickness,\ md.results.TransientSolution[0].GroundedArea,\ + md.results.TransientSolution[0].FloatingArea,\ md.results.TransientSolution[1].Vx,\ md.results.TransientSolution[1].Vy,\ md.results.TransientSolution[1].Vel,\ @@ -42,6 +43,7 @@ md.results.TransientSolution[1].Surface,\ md.results.TransientSolution[1].Thickness,\ md.results.TransientSolution[1].GroundedArea,\ + md.results.TransientSolution[1].FloatingArea,\ md.results.TransientSolution[2].Vx,\ md.results.TransientSolution[2].Vy,\ md.results.TransientSolution[2].Vel,\ @@ -50,4 +52,5 @@ md.results.TransientSolution[2].Surface,\ md.results.TransientSolution[2].Thickness,\ md.results.TransientSolution[2].GroundedArea,\ + md.results.TransientSolution[2].FloatingArea,\ ] Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h =================================================================== --- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h (revision 19763) +++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h (revision 19764) @@ -901,6 +901,7 @@ MinVzEnum, MaxVzEnum, MaxAbsVzEnum, + FloatingAreaEnum, GroundedAreaEnum, IceMassEnum, IceVolumeEnum, Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp =================================================================== --- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp (revision 19763) +++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp (revision 19764) @@ -879,6 +879,7 @@ case MinVzEnum : return "MinVz"; case MaxVzEnum : return "MaxVz"; case MaxAbsVzEnum : return "MaxAbsVz"; + case FloatingAreaEnum : return "FloatingArea"; case GroundedAreaEnum : return "GroundedArea"; case IceMassEnum : return "IceMass"; case IceVolumeEnum : return "IceVolume"; Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp =================================================================== --- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp (revision 19763) +++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp (revision 19764) @@ -900,6 +900,7 @@ else if (strcmp(name,"MinVz")==0) return MinVzEnum; else if (strcmp(name,"MaxVz")==0) return MaxVzEnum; else if (strcmp(name,"MaxAbsVz")==0) return MaxAbsVzEnum; + else if (strcmp(name,"FloatingArea")==0) return FloatingAreaEnum; else if (strcmp(name,"GroundedArea")==0) return GroundedAreaEnum; else if (strcmp(name,"IceMass")==0) return IceMassEnum; else if (strcmp(name,"IceVolume")==0) return IceVolumeEnum; Index: ../trunk-jpl/src/c/classes/FemModel.cpp =================================================================== --- ../trunk-jpl/src/c/classes/FemModel.cpp (revision 19763) +++ ../trunk-jpl/src/c/classes/FemModel.cpp (revision 19764) @@ -1008,6 +1008,7 @@ case IceVolumeEnum: this->IceVolumex(&double_result); break; case IceVolumeAboveFloatationEnum: this->IceVolumeAboveFloatationx(&double_result); break; case GroundedAreaEnum: this->GroundedAreax(&double_result); break; + case FloatingAreaEnum: this->FloatingAreax(&double_result); break; case MinVelEnum: this->MinVelx(&double_result); break; case MaxVelEnum: this->MaxVelx(&double_result); break; case MinVxEnum: this->MinVxx(&double_result); break; @@ -1614,6 +1615,22 @@ *pdiv=max_divergence; }/*}}}*/ +void FemModel::FloatingAreax(IssmDouble* pV){/*{{{*/ + + IssmDouble local_floating_area= 0; + IssmDouble total_floating_area; + + for(int i=0;ielements->Size();i++){ + Element* element=xDynamicCast(this->elements->GetObjectByOffset(i)); + local_floating_area+=element->FloatingArea(); + } + ISSM_MPI_Reduce(&local_floating_area,&total_floating_area,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() ); + ISSM_MPI_Bcast(&total_floating_area,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm()); + + /*Assign output pointers: */ + *pV=total_floating_area; + +}/*}}}*/ void FemModel::GetInputLocalMinMaxOnNodesx(IssmDouble** pmin,IssmDouble** pmax,IssmDouble* ug){/*{{{*/ /*Get vector sizes for current configuration*/ Index: ../trunk-jpl/src/c/classes/Elements/Element.h =================================================================== --- ../trunk-jpl/src/c/classes/Elements/Element.h (revision 19763) +++ ../trunk-jpl/src/c/classes/Elements/Element.h (revision 19764) @@ -193,6 +193,7 @@ virtual void ElementResponse(IssmDouble* presponse,int response_enum)=0; virtual void ElementSizes(IssmDouble* phx,IssmDouble* phy,IssmDouble* phz)=0; virtual int FiniteElement(void)=0; + virtual IssmDouble FloatingArea(void)=0; virtual void FSContactMigration(Vector* vertexgrounded,Vector* vertexfloating)=0; virtual Element* GetBasalElement(void)=0; virtual int GetElementType(void)=0; Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp =================================================================== --- ../trunk-jpl/src/c/classes/Elements/Tria.cpp (revision 19763) +++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp (revision 19764) @@ -910,6 +910,27 @@ return this->element_type; } /*}}}*/ +IssmDouble Tria::FloatingArea(void){/*{{{*/ + + /*Intermediaries*/ + int domaintype; + IssmDouble phi; + IssmDouble *xyz_list = NULL; + + if(!IsIceInElement())return 0.; + + /*Get problem dimension*/ + this->FindParam(&domaintype,DomainTypeEnum); + if(domaintype!=Domain2DhorizontalEnum && domaintype!=Domain3DEnum) _error_("mesh "<GetVerticesCoordinates(&xyz_list); + phi=this->GetGroundedPortion(xyz_list); + + /*Clean up and return*/ + xDelete(xyz_list); + return (1-phi)*this->GetArea(); +} +/*}}}*/ void Tria::FSContactMigration(Vector* vertexgrounded,Vector* vertexfloating){/*{{{*/ if(!IsOnBase()) return; Index: ../trunk-jpl/src/c/classes/Elements/Tria.h =================================================================== --- ../trunk-jpl/src/c/classes/Elements/Tria.h (revision 19763) +++ ../trunk-jpl/src/c/classes/Elements/Tria.h (revision 19764) @@ -72,6 +72,7 @@ void ElementResponse(IssmDouble* presponse,int response_enum); void ElementSizes(IssmDouble* hx,IssmDouble* hy,IssmDouble* hz); int FiniteElement(void); + IssmDouble FloatingArea(void); void FSContactMigration(Vector* vertexgrounded,Vector* vertexfloating); Element* GetBasalElement(void){_error_("not implemented yet");}; void GetLevelsetPositivePart(int* point1,IssmDouble* fraction1,IssmDouble* fraction2, bool* mainlynegative,IssmDouble* levelsetvalues); Index: ../trunk-jpl/src/c/classes/Elements/Penta.cpp =================================================================== --- ../trunk-jpl/src/c/classes/Elements/Penta.cpp (revision 19763) +++ ../trunk-jpl/src/c/classes/Elements/Penta.cpp (revision 19764) @@ -654,6 +654,27 @@ return this->element_type; } /*}}}*/ +IssmDouble Penta::FloatingArea(void){/*{{{*/ + + /*Intermediaries*/ + int domaintype; + IssmDouble phi,base_area; + IssmDouble xyz_list[NUMVERTICES][3]; + + if(!IsIceInElement() || !IsOnBase())return 0.; + + /*Get problem dimension*/ + this->FindParam(&domaintype,DomainTypeEnum); + if(domaintype!=Domain3DEnum) _error_("mesh "<GetGroundedPortion(&xyz_list[0][0]); + base_area= 1./2.*fabs((xyz_list[0][0]-xyz_list[2][0])*(xyz_list[1][1]-xyz_list[0][1]) - (xyz_list[0][0]-xyz_list[1][0])*(xyz_list[2][1]-xyz_list[0][1])); + + /*Clean up and return*/ + return (1-phi)*base_area; +} +/*}}}*/ void Penta::FSContactMigration(Vector* vertexgrounded,Vector* vertexfloating){/*{{{*/ if(!IsOnBase()) return; Index: ../trunk-jpl/src/c/classes/Elements/Penta.h =================================================================== --- ../trunk-jpl/src/c/classes/Elements/Penta.h (revision 19763) +++ ../trunk-jpl/src/c/classes/Elements/Penta.h (revision 19764) @@ -61,6 +61,7 @@ void ElementResponse(IssmDouble* presponse,int response_enum); void ElementSizes(IssmDouble* hx,IssmDouble* hy,IssmDouble* hz); int FiniteElement(void); + IssmDouble FloatingArea(void); void FSContactMigration(Vector* vertexgrounded,Vector* vertexfloating); void GetAreaCoordinates(IssmDouble *area_coordinates,IssmDouble* xyz_zero,IssmDouble* xyz_list,int numpoints); Element* GetBasalElement(void); Index: ../trunk-jpl/src/c/classes/Elements/Seg.h =================================================================== --- ../trunk-jpl/src/c/classes/Elements/Seg.h (revision 19763) +++ ../trunk-jpl/src/c/classes/Elements/Seg.h (revision 19764) @@ -55,8 +55,9 @@ void ControlToVectors(Vector* vector_control, Vector* vector_gradient,int control_enum){_error_("not implemented yet");}; void ElementResponse(IssmDouble* presponse,int response_enum){_error_("not implemented yet");}; void ElementSizes(IssmDouble* hx,IssmDouble* hy,IssmDouble* hz){_error_("not implemented yet");}; + int FiniteElement(void); + IssmDouble FloatingArea(void){_error_("not implemented yet");}; void FSContactMigration(Vector* vertexgrounded,Vector* vertexfloating){_error_("not implemented yet");}; - int FiniteElement(void); Element* GetBasalElement(void){_error_("not implemented yet");}; int GetElementType(void){_error_("not implemented yet");}; void GetGroundedPart(int* point1,IssmDouble* fraction1, IssmDouble* fraction2,bool* mainlyfloating){_error_("not implemented yet");}; Index: ../trunk-jpl/src/c/classes/Elements/Tetra.h =================================================================== --- ../trunk-jpl/src/c/classes/Elements/Tetra.h (revision 19763) +++ ../trunk-jpl/src/c/classes/Elements/Tetra.h (revision 19764) @@ -60,6 +60,7 @@ void FaceOnFrontIndices(int* pindex1,int* pindex2,int* pindex3); void FaceOnSurfaceIndices(int* pindex1,int* pindex2,int* pindex3); int FiniteElement(void); + IssmDouble FloatingArea(void){_error_("not implemented yet");}; void FSContactMigration(Vector* vertexgrounded,Vector* vertexfloating){_error_("not implemented yet");}; Element* GetBasalElement(void){_error_("not implemented yet");}; int GetElementType(void); Index: ../trunk-jpl/src/c/classes/FemModel.h =================================================================== --- ../trunk-jpl/src/c/classes/FemModel.h (revision 19763) +++ ../trunk-jpl/src/c/classes/FemModel.h (revision 19764) @@ -81,6 +81,7 @@ void TotalSmbx(IssmDouble* pSmb); void Divergencex(IssmDouble* pdiv); void MaxDivergencex(IssmDouble* pdiv); + void FloatingAreax(IssmDouble* pV); void GroundedAreax(IssmDouble* pV); void IceMassx(IssmDouble* pV); void IceVolumex(IssmDouble* pV); Index: ../trunk-jpl/src/m/enum/FloatingAreaEnum.m =================================================================== --- ../trunk-jpl/src/m/enum/FloatingAreaEnum.m (revision 0) +++ ../trunk-jpl/src/m/enum/FloatingAreaEnum.m (revision 19764) @@ -0,0 +1,11 @@ +function macro=FloatingAreaEnum() +%FLOATINGAREAENUM - Enum of FloatingArea +% +% WARNING: DO NOT MODIFY THIS FILE +% this file has been automatically generated by src/c/shared/Enum/Synchronize.sh +% Please read src/c/shared/Enum/README for more information +% +% Usage: +% macro=FloatingAreaEnum() + +macro=StringToEnum('FloatingArea'); Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py =================================================================== --- ../trunk-jpl/src/m/enum/EnumDefinitions.py (revision 19763) +++ ../trunk-jpl/src/m/enum/EnumDefinitions.py (revision 19764) @@ -871,6 +871,7 @@ def MinVzEnum(): return StringToEnum("MinVz")[0] def MaxVzEnum(): return StringToEnum("MaxVz")[0] def MaxAbsVzEnum(): return StringToEnum("MaxAbsVz")[0] +def FloatingAreaEnum(): return StringToEnum("FloatingArea")[0] def GroundedAreaEnum(): return StringToEnum("GroundedArea")[0] def IceMassEnum(): return StringToEnum("IceMass")[0] def IceVolumeEnum(): return StringToEnum("IceVolume")[0]