 |
Ice Sheet System Model
4.18
Code documentation
|
Go to the source code of this file.
◆ FloatingiceMeltingRatex()
void FloatingiceMeltingRatex |
( |
FemModel * |
femmodel | ) |
|
◆ LinearFloatingiceMeltingRatex()
void LinearFloatingiceMeltingRatex |
( |
FemModel * |
femmodel | ) |
|
◆ SpatialLinearFloatingiceMeltingRatex()
void SpatialLinearFloatingiceMeltingRatex |
( |
FemModel * |
femmodel | ) |
|
◆ MismipFloatingiceMeltingRatex()
void MismipFloatingiceMeltingRatex |
( |
FemModel * |
femmodel | ) |
|
◆ FloatingiceMeltingRateIsmip6x()
void FloatingiceMeltingRateIsmip6x |
( |
FemModel * |
femmodel | ) |
|
Definition at line 78 of file FloatingiceMeltingRatex.cpp.
80 int num_basins, basinid, num_depths, domaintype;
90 for(
int i=0;i<num_depths;i++) tf_depths[i] = -tf_depths[i];
92 IssmDouble* tf_weighted_avg = xNewZeroInit<IssmDouble>(num_basins);
93 IssmDouble* tf_weighted_avg_cpu = xNewZeroInit<IssmDouble>(num_basins);
94 IssmDouble* areas_summed = xNewZeroInit<IssmDouble>(num_basins);
95 IssmDouble* areas_summed_cpu = xNewZeroInit<IssmDouble>(num_basins);
104 IssmDouble* values = xNewZeroInit<IssmDouble>(numvertices);
107 xDelete<IssmDouble>(values);
112 IssmDouble* tf_test = xNew<IssmDouble>(numvertices);
113 IssmDouble* depth_vertices = xNew<IssmDouble>(numvertices);
119 for(
int iv=0;iv<numvertices;iv++){
126 if(!found)
_error_(
"depth not found");
133 else if(offset==num_depths-1){
135 _assert_(depth>=tf_depths[num_depths-1]);
140 _assert_(depth>=tf_depths[offset] && depth<tf_depths[offset+1]);
141 IssmDouble deltaz=tf_depths[offset+1]-tf_depths[offset];
142 IssmDouble alpha2=(depth-tf_depths[offset])/deltaz;
147 tf_test[iv] = alpha1*tf1 + alpha2*tf2;
152 xDelete<IssmDouble>(tf_test);
153 xDelete<IssmDouble>(depth_vertices);
170 tf_weighted_avg[basinid]+=tf*area;
171 areas_summed[basinid] +=area;
182 for(
int k=0;k<num_basins;k++){tf_weighted_avg_cpu[k] = tf_weighted_avg_cpu[k]/areas_summed_cpu[k];}
193 xDelete<IssmDouble>(tf_weighted_avg);
194 xDelete<IssmDouble>(tf_weighted_avg_cpu);
195 xDelete<IssmDouble>(areas_summed);
196 xDelete<IssmDouble>(areas_summed_cpu);
197 xDelete<IssmDouble>(tf_depths);
◆ BeckmannGoosseFloatingiceMeltingRatex()
void BeckmannGoosseFloatingiceMeltingRatex |
( |
FemModel * |
femmodel | ) |
|
@ BasalforcingsIsmip6IsLocalEnum
#define _printf0_(StreamArgs)
int ISSM_MPI_Allreduce(void *sendbuf, void *recvbuf, int count, ISSM_MPI_Datatype datatype, ISSM_MPI_Op op, ISSM_MPI_Comm comm)
void FindParam(bool *pvalue, int paramenum)
static ISSM_MPI_Comm GetComm(void)
@ BasalforcingsIsmip6TfDepthsEnum
virtual Element * SpawnBasalElement(void)=0
@ MismipFloatingMeltRateEnum
void FloatingiceMeltingRateIsmip6x(FemModel *femmodel)
@ BasalforcingsIsmip6NumBasinsEnum
void AddObject(Param *newparam)
virtual Input2 * GetInput2(int inputenum)=0
void DeleteMaterials(void)
virtual IssmDouble GetHorizontalSurfaceArea(void)
virtual DatasetInput2 * GetDatasetInput2(int inputenum)
void MismipFloatingiceMeltingRate()
void Ismip6FloatingiceMeltingRate()
virtual void AddInput2(int input_enum, IssmDouble *values, int interpolation_enum)
virtual Gauss * NewGauss(void)=0
const char * EnumToStringx(int enum_in)
@ LinearFloatingMeltRateEnum
@ BeckmannGoosseFloatingMeltRateEnum
@ MantlePlumeGeothermalFluxEnum
@ BasalforcingsFloatingiceMeltingRateEnum
void BeckmannGoosseFloatingiceMeltingRate()
@ SpatialLinearFloatingMeltRateEnum
void SpatialLinearFloatingiceMeltingRate()
@ BasalforcingsIsmip6Enum
void MismipFloatingiceMeltingRatex(FemModel *femmodel)
@ BasalforcingsIsmip6TfEnum
virtual void GaussVertex(int iv)=0
@ BasalforcingsIsmip6BasinIdEnum
void LinearFloatingiceMeltingRate()
#define _error_(StreamArgs)
bool VerboseSolution(void)
Object * GetObjectByOffset(int offset)
void FloatingiceMeltingRatePicox(FemModel *femmodel)
virtual void GaussPoint(int ig)=0
void GetInputValue(bool *pvalue, int enum_type)
void SpatialLinearFloatingiceMeltingRatex(FemModel *femmodel)
void FindParam(bool *pinteger, int enum_type)
@ BasalforcingsIsmip6TfShelfEnum
int binary_search(int *poffset, int target, int *sorted_integers, int num_integers)
@ BasalforcingsIsmip6AverageTfEnum
virtual int GetNumberOfVertices(void)=0
void GetInputListOnVertices(IssmDouble *pvalue, int enumtype)
void BeckmannGoosseFloatingiceMeltingRatex(FemModel *femmodel)
void LinearFloatingiceMeltingRatex(FemModel *femmodel)