Changeset 13695
- Timestamp:
- 10/16/12 11:06:06 (12 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified issm/trunk-jpl/src/c/matlab/io/WriteMatlabData.cpp ¶
r13638 r13695 328 328 SetStructureFieldi(dataref,i,"tips" ,1 ,2,&riftstruct->riftstips[2*i]); 329 329 SetStructureFieldi(dataref,i,"penaltypairs" ,riftstruct->riftsnumpenaltypairs[i],7,riftstruct->riftspenaltypairs[i]); 330 SetStructureFieldi(dataref,i,"fill" ,IceEnum); 330 331 SetStructureFieldi(dataref,i,"friction" ,0); 331 SetStructureFieldi(dataref,i,"fill" ,IceEnum);332 332 SetStructureFieldi(dataref,i,"fraction" ,0.); 333 333 SetStructureFieldi(dataref,i,"fractionincrement",0.1); -
TabularUnified issm/trunk-jpl/src/c/python/io/WritePythonData.cpp ¶
r13640 r13695 20 20 #include "../../EnumDefinitions/EnumDefinitions.h" 21 21 PyObject* PyArrayFromCopiedData(int dims[2],double* data); 22 PyObject* PyArrayFromCopiedData(int dimi,int dimj,double* data); 22 23 23 24 /*Primitive data types*/ … … 25 26 void WriteData(PyObject* py_tuple, int index, int integer){ 26 27 27 PyTuple_SetItem(py_tuple, index, PyInt_FromSsize_t( integer));28 PyTuple_SetItem(py_tuple, index, PyInt_FromSsize_t((Py_ssize_t)integer)); 28 29 29 30 }/*}}}*/ … … 136 137 void WriteData(PyObject* py_tuple,int index,RiftStruct* riftstruct){ 137 138 138 _error_("not implemented yet... good luck John!"); 139 // _error_("not implemented yet... good luck John!"); 140 141 int i; 142 PyObject* list=NULL; 143 PyObject** dict=NULL; 144 145 list=PyList_New((Py_ssize_t)0); 146 147 for (i=0; i<riftstruct->numrifts; i++) { 148 dict[i]=PyDict_New(); 149 150 PyDict_SetItemString(dict[i],"numsegs" ,PyInt_FromSsize_t((Py_ssize_t)riftstruct->riftsnumsegments[i])); 151 PyDict_SetItemString(dict[i],"segments" ,PyArrayFromCopiedData(riftstruct->riftsnumsegments[i] ,3,riftstruct->riftssegments[i])); 152 PyDict_SetItemString(dict[i],"pairs" ,PyArrayFromCopiedData(riftstruct->riftsnumpairs[i] ,2,riftstruct->riftspairs[i])); 153 PyDict_SetItemString(dict[i],"tips" ,PyArrayFromCopiedData(1 ,2,&riftstruct->riftstips[2*i])); 154 PyDict_SetItemString(dict[i],"penaltypairs" ,PyArrayFromCopiedData(riftstruct->riftsnumpenaltypairs[i],7,riftstruct->riftspenaltypairs[i])); 155 PyDict_SetItemString(dict[i],"fill" ,PyInt_FromSsize_t((Py_ssize_t)IceEnum)); 156 PyDict_SetItemString(dict[i],"friction" ,PyInt_FromSsize_t((Py_ssize_t)0)); 157 PyDict_SetItemString(dict[i],"fraction" ,PyFloat_FromDouble(0.)); 158 PyDict_SetItemString(dict[i],"fractionincrement",PyFloat_FromDouble(0.1)); 159 PyDict_SetItemString(dict[i],"state" ,PyArrayFromCopiedData(riftstruct->riftsnumpenaltypairs[i],1,riftstruct->state[i])); 160 161 PyList_Append(list, dict[i]); 162 } 163 164 PyTuple_SetItem(py_tuple, index, list); 139 165 } 140 166 /*}}}*/ … … 157 183 } 158 184 /*}}}*/ 185 /*FUNCTION PyArrayFromCopiedData(int dimi,int dimj,double* data){{{*/ 186 PyObject* PyArrayFromCopiedData(int dimi,int dimj,double* data){ 187 188 double* pydata; 189 npy_intp pydims[2]={0,0}; 190 191 /* note that PyArray_SimpleNewFromData does not copy the data, so that when the original 192 object (e.g. bamggeom,bamgmesh) is deleted, the data is gone. */ 193 194 pydims[0]=(npy_intp)dimi; 195 pydims[1]=(npy_intp)dimj; 196 pydata=xNew<IssmDouble>(dimi*dimj); 197 memcpy(pydata,data,dimi*dimj*sizeof(double)); 198 return PyArray_SimpleNewFromData(2,pydims,NPY_DOUBLE,pydata); 199 } 200 /*}}}*/
Note:
See TracChangeset
for help on using the changeset viewer.