Changeset 3438
- Timestamp:
- 04/07/10 16:56:45 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateLoadsDiagnosticStokes.cpp
r3332 r3438 13 13 void CreateLoadsDiagnosticStokes(DataSet** ploads, IoModel* iomodel,ConstDataHandle iomodel_handle){ 14 14 15 int i,j,counter;16 int element;17 15 18 extern int my_rank;19 extern int num_procs;20 21 16 DataSet* loads = NULL; 22 17 Icefront* icefront = NULL; … … 24 19 25 20 int segment_width; 26 int i1,i2,i3,i4; 27 int i0,range; 28 int grid1,grid2; 29 30 /*icefront intermediary data: */ 31 char icefront_type[ICEFRONTSTRING]; 32 int icefront_fill; 33 int icefront_element_type; 34 int icefront_sid; 35 int icefront_eid; 36 int icefront_mparid; 37 int icefront_node_ids[MAX_ICEFRONT_GRIDS]; 38 double icefront_h[MAX_ICEFRONT_GRIDS]; 39 double icefront_b[MAX_ICEFRONT_GRIDS]; 21 int element; 40 22 41 23 /*pengrid intermediary data: */ … … 75 57 element=(int)(*(iomodel->pressureload+segment_width*i+segment_width-2)-1); //element is in the penultimate column (grid1 grid2 ... elem fill) 76 58 77 #ifdef _PARALLEL_ 78 if (iomodel->epart[element]!=my_rank){ 79 /*This load does not belong to this cluster node, as it references an element 80 *that does not belong to this node's partition. Drop this 'i':*/ 81 continue; 82 } 83 #endif 59 /*Now, if this element is not in the partition, pass: */ 60 if(!iomodel->my_elements[i])continue; 84 61 85 62 /*Do not create ice front if it is not a Stokes element*/ … … 88 65 } 89 66 90 icefront_mparid=iomodel->numberofelements+1; //matlab indexing 91 icefront_sid=count+1; //matlab indexing 92 icefront_fill=(int)*(iomodel->pressureload+segment_width*i+segment_width-1); 93 icefront_eid=(int) *(iomodel->pressureload+segment_width*i+segment_width-2); //matlab indexing 94 icefront_element_type=PentaEnum(); 95 96 i1=(int)*(iomodel->pressureload+segment_width*i+0); 97 i2=(int)*(iomodel->pressureload+segment_width*i+1); 98 i3=(int)*(iomodel->pressureload+segment_width*i+2); 99 i4=(int)*(iomodel->pressureload+segment_width*i+3); 100 101 icefront_node_ids[0]=i1; 102 icefront_node_ids[1]=i2; 103 icefront_node_ids[2]=i3; 104 icefront_node_ids[3]=i4; 105 106 icefront_h[0]=iomodel->thickness[i1-1]; 107 icefront_h[1]=iomodel->thickness[i2-1]; 108 icefront_h[2]=iomodel->thickness[i3-1]; 109 icefront_h[3]=iomodel->thickness[i4-1]; 110 111 icefront_b[0]=iomodel->bed[i1-1]; 112 icefront_b[1]=iomodel->bed[i2-1]; 113 icefront_b[2]=iomodel->bed[i3-1]; 114 icefront_b[3]=iomodel->bed[i4-1]; 115 116 icefront = new Icefront(icefront_type,icefront_fill,icefront_sid,icefront_mparid,icefront_eid,icefront_element_type,icefront_node_ids,icefront_h,icefront_b); 117 118 loads->AddObject(icefront); 119 count++; 67 /*Create and add load: */ 68 loads->AddObject(new Icefront(i,iomodel)); 120 69 121 70 }
Note:
See TracChangeset
for help on using the changeset viewer.