Changeset 5250 for issm/trunk/src/c/modules/MassFluxx/MassFluxx.cpp
- Timestamp:
- 08/13/10 14:54:02 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/modules/MassFluxx/MassFluxx.cpp
r4974 r5250 10 10 #include "../../EnumDefinitions/EnumDefinitions.h" 11 11 12 void MassFluxx(double* pmass_flux, Elements* elements,Nodes* nodes, Vertices* vertices,Loads* loads,Materials* materials, Parameters* parameters, double* segments,int num_segments,bool process_units){12 void MassFluxx(double* pmass_flux, Elements* elements,Nodes* nodes, Vertices* vertices,Loads* loads,Materials* materials, Parameters* parameters,char* descriptor,bool process_units){ 13 13 14 14 int i,j; … … 23 23 double all_mass_flux=0; 24 24 25 int counter; 26 27 /*all segments: */ 28 double** array=NULL; 29 int M; 30 int* mdims_array=NULL; 31 int* ndims_array=NULL; 32 33 /*our segments of interest: */ 34 double* segments=NULL; 35 int num_segments; 36 37 /*First, figure out which segment to compute our mass flux on. Start with retrieving qmu_mass_flux_segments: */ 38 parameters->FindParam(&array,&M,&mdims_array,&ndims_array,QmuMassFluxSegmentsEnum); 39 40 /*figure out counter in the descriptor: */ 41 sscanf(descriptor,"MassFlux%i",&counter); 42 43 /*retrieve segments from array: */ 44 segments=array[counter-1]; //matlab to "C" indexing 45 num_segments=mdims_array[counter-1]; 46 25 47 /*Go through segments, and then elements, and figure out which elements belong to a segment. 26 48 * When we find one, use the element to compute the mass flux on the segment: */ 27 28 49 for(i=0;i<num_segments;i++){ 29 50 element_id=(int)*(segments+5*i+4); … … 43 64 #endif 44 65 66 /*Free ressources:*/ 67 for(j=0;j<M;j++){ 68 double* matrix=array[j]; 69 xfree((void**)&matrix); 70 } 71 xfree((void**)&mdims_array); 72 xfree((void**)&ndims_array); 73 xfree((void**)&array); 74 45 75 /*Assign output pointers: */ 46 76 *pmass_flux=mass_flux;
Note:
See TracChangeset
for help on using the changeset viewer.