Ice Sheet System Model  4.18
Code documentation
RiftStruct.cpp
Go to the documentation of this file.
1 
5 #include "./classes.h"
6 #include "../shared/Enum/Enum.h"
7 #include "../shared/shared.h"
8 
9 /*RiftStruct constructors and destructor*/
11 
12  this->numrifts = 0;
13  this->riftsnumsegments = NULL;
14  this->riftssegments = NULL;
15  this->riftsnumpairs = NULL;
16  this->riftspairs = NULL;
17  this->riftsnumpenaltypairs = NULL;
18  this->riftspenaltypairs = NULL;
19  this->riftstips = NULL;
20  this->state = NULL;
21 
22 }/*}}}*/
23 RiftStruct::RiftStruct(int numrifts_in,int *riftsnumsegments_in,int**riftssegments_in,int *riftsnumpairs_in,int**riftspairs_in,int *riftsnumpenaltypairs_in,double **riftspenaltypairs_in,int * riftstips_in){/*{{{*/
24 
25  int i;
26 
27  /*numrifts*/
28  this->numrifts = numrifts_in;
29  if(!numrifts_in) return;
30 
31  /*riftsnumsegments*/
32  _assert_(riftsnumsegments_in);
33  this->riftsnumsegments=xNew<int>(numrifts_in);
34  xMemCpy<int>(this->riftsnumsegments,riftsnumsegments_in,numrifts_in);
35 
36  /*riftssegments*/
37  _assert_(riftssegments_in);
38  this->riftssegments=xNew<int*>(numrifts_in);
39  for(i=0;i<numrifts_in;i++){
40  this->riftssegments[i]=xNew<int>(riftsnumsegments_in[i]*3);
41  xMemCpy<int>(this->riftssegments[i],riftssegments_in[i],riftsnumsegments_in[i]*3);
42  }
43 
44  /*riftsnumpairs*/
45  _assert_(riftsnumpairs_in);
46  this->riftsnumpairs=xNew<int>(numrifts_in);
47  xMemCpy<int>(this->riftsnumpairs,riftsnumpairs_in,numrifts_in);
48 
49  /*riftspairs*/
50  _assert_(riftspairs_in);
51  this->riftspairs=xNew<int*>(numrifts_in);
52  for(i=0;i<numrifts_in;i++){
53  this->riftspairs[i]=xNew<int>(riftsnumpairs_in[i]*2);
54  xMemCpy<int>(this->riftspairs[i],riftspairs_in[i],riftsnumpairs_in[i]*2);
55  }
56 
57  /*riftsnumpenaltypairs*/
58  _assert_(riftsnumpenaltypairs_in);
59  this->riftsnumpenaltypairs=xNew<int>(numrifts_in);
60  xMemCpy<int>(this->riftsnumpenaltypairs,riftsnumpenaltypairs_in,numrifts_in);
61 
62  /*riftspenaltypairs*/
63  _assert_(riftspenaltypairs_in);
64  this->riftspenaltypairs=xNew<double*>(numrifts_in);
65  for(i=0;i<numrifts_in;i++){
66  this->riftspenaltypairs[i]=xNew<double>(riftsnumpenaltypairs_in[i]*7);
67  xMemCpy<double>(this->riftspenaltypairs[i],riftspenaltypairs_in[i],riftsnumpenaltypairs_in[i]*7);
68  }
69 
70  /*riftstips*/
71  _assert_(riftstips_in);
72  this->riftstips=xNew<int>(2*numrifts_in);
73  xMemCpy<int>(this->riftstips,riftstips_in,2*numrifts_in);
74 
75  /*state*/
76  this->state=xNew<double*>(numrifts_in);
77  for(i=0;i<numrifts_in;i++){
78  this->state[i]=xNew<double>(riftsnumpenaltypairs_in[i]);
79  for(int j=0;j<riftsnumpenaltypairs_in[i];j++) (this->state[i])[j]=FreeEnum;
80  }
81 
82 }/*}}}*/
84 
85  xDelete<int>(this->riftsnumsegments);
86  xDelete<int*>(this->riftssegments);
87  xDelete<int>(this->riftsnumpairs);
88  xDelete<int*>(this->riftspairs);
89  xDelete<int>(this->riftsnumpenaltypairs);
90  xDelete<double*>(this->riftspenaltypairs);
91  xDelete<int>(this->riftstips);
92  xDelete<double*>(this->state);
93 
94 }/*}}}*/
RiftStruct::riftsnumpairs
int * riftsnumpairs
Definition: RiftStruct.h:14
_assert_
#define _assert_(ignore)
Definition: exceptions.h:37
RiftStruct::riftsnumpenaltypairs
int * riftsnumpenaltypairs
Definition: RiftStruct.h:15
RiftStruct::riftstips
int * riftstips
Definition: RiftStruct.h:18
RiftStruct::~RiftStruct
~RiftStruct()
Definition: RiftStruct.cpp:83
RiftStruct::RiftStruct
RiftStruct()
Definition: RiftStruct.cpp:10
RiftStruct::state
double ** state
Definition: RiftStruct.h:19
FreeEnum
@ FreeEnum
Definition: EnumDefinitions.h:1070
RiftStruct::riftsnumsegments
int * riftsnumsegments
Definition: RiftStruct.h:16
RiftStruct::riftssegments
int ** riftssegments
Definition: RiftStruct.h:17
RiftStruct::riftspenaltypairs
double ** riftspenaltypairs
Definition: RiftStruct.h:13
RiftStruct::numrifts
int numrifts
Definition: RiftStruct.h:11
RiftStruct::riftspairs
int ** riftspairs
Definition: RiftStruct.h:12
classes.h