source: issm/trunk/src/c/modules/ModelProcessorx/HydrologyDCEfficient/UpdateElementsHydrologyDCEfficient.cpp@ 15396

Last change on this file since 15396 was 15000, checked in by Eric.Larour, 12 years ago

CHG: modules should be including src/c/classes/classes.h, not src/c/classes/objects/objects.h

File size: 1.7 KB
Line 
1/*
2 * UpdateElementsHydrologyDCEfficient:
3 */
4
5#include "../../../toolkits/toolkits.h"
6#include "../../../classes/classes.h"
7#include "../../../shared/shared.h"
8#include "../../MeshPartitionx/MeshPartitionx.h"
9#include "../ModelProcessorx.h"
10
11void UpdateElementsHydrologyDCEfficient(Elements* elements, IoModel* iomodel,int analysis_counter,int analysis_type){
12
13 bool isefficientlayer;
14 int hydrology_model;
15 int numberofelements;
16
17 /*Fetch data needed: */
18 iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);
19
20 /*Now, do we really want DC?*/
21 iomodel->Constant(&hydrology_model,HydrologyModelEnum);
22 if(hydrology_model!=HydrologydcEnum) return;
23
24 /*Do we want an efficient layer*/
25 iomodel->Constant(&isefficientlayer,HydrologydcIsefficientlayerEnum);
26 if(!isefficientlayer) return;
27
28 /*Fetch data needed: */
29 iomodel->FetchData(1,MeshElementsEnum);
30
31 /*Update elements: */
32 int counter=0;
33 for(int i=0;i<numberofelements;i++){
34 if(iomodel->my_elements[i]){
35 Element* element=(Element*)elements->GetObjectByOffset(counter);
36 element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements.
37 counter++;
38 }
39 }
40
41 iomodel->FetchDataToInput(elements,ThicknessEnum);
42 iomodel->FetchDataToInput(elements,SurfaceEnum);
43 iomodel->FetchDataToInput(elements,BedEnum);
44 iomodel->FetchDataToInput(elements,MaskElementonfloatingiceEnum);
45 iomodel->FetchDataToInput(elements,MeshElementonbedEnum);
46 iomodel->FetchDataToInput(elements,MeshElementonsurfaceEnum);
47 iomodel->FetchDataToInput(elements,MaskElementonwaterEnum);
48 iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateEnum);
49 iomodel->FetchDataToInput(elements,EplHeadEnum);
50
51 /*Free data: */
52 iomodel->DeleteData(1,MeshElementsEnum);
53}
Note: See TracBrowser for help on using the repository browser.