Changeset 9372


Ignore:
Timestamp:
08/22/11 15:38:20 (14 years ago)
Author:
Mathieu Morlighem
Message:

new Iomodel interface

Location:
issm/trunk/src/c/modules/ModelProcessorx
Files:
17 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateLoadsBalancethickness.cpp

    r9362 r9372  
    3535
    3636                /*Get edges and elements*/
    37                 iomodel->FetchData(&iomodel->edges,&numberofedges,NULL,EdgesEnum);
    38                 iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum);
    39                 iomodel->FetchData(&iomodel->thickness,NULL,NULL,ThicknessEnum);
     37                iomodel->FetchData(3,EdgesEnum,ElementsEnum,ThicknessEnum);
    4038
    4139                /*First load data:*/
     
    4341
    4442                        /*Get left and right elements*/
    45                         element=(int)iomodel->edges[4*i+2]-1; //edges are [node1 node2 elem1 elem2]
     43                        element=(int)iomodel->f(EdgesEnum)[4*i+2]-1; //edges are [node1 node2 elem1 elem2]
    4644
    4745                        /*Now, if this element is not in the partition, pass: */
     
    5351
    5452                /*Free data: */
    55                 xfree((void**)&iomodel->edges);
    56                 xfree((void**)&iomodel->elements);
    57                 xfree((void**)&iomodel->thickness);
     53                iomodel->DeleteData(3,EdgesEnum,ElementsEnum,ThicknessEnum);
    5854        }
    5955
  • issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateNodesBalancethickness.cpp

    r9362 r9372  
    4949
    5050        /*First fetch data: */
    51         iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum);
    52         iomodel->FetchData(&iomodel->nodeonbed,NULL,NULL,NodeOnBedEnum);
    53         iomodel->FetchData(&iomodel->nodeonsurface,NULL,NULL,NodeOnSurfaceEnum);
    54         iomodel->FetchData(&iomodel->nodeonicesheet,NULL,NULL,NodeOnIceSheetEnum);
    55         iomodel->FetchData(&iomodel->nodeoniceshelf,NULL,NULL,NodeOnIceShelfEnum);
    56         iomodel->FetchData(&iomodel->vertices_type,NULL,NULL,VerticesTypeEnum);
    57         iomodel->FetchData(&iomodel->nodeonwater,NULL,NULL,NodeOnWaterEnum);
     51        iomodel->FetchData(7,ElementsEnum,NodeOnBedEnum,NodeOnSurfaceEnum,NodeOnIceSheetEnum,NodeOnIceShelfEnum,VerticesTypeEnum,NodeOnWaterEnum);
    5852
    5953        if(continuous_galerkin){
     
    6155                /*Build Nodes dataset (Continuous Galerkin)*/
    6256                for (i=0;i<numberofvertices;i++){
    63 
    6457                        if(iomodel->my_vertices[i]){
    6558
     
    7972
    8073                                        //Get index of the vertex on which the current node is located
    81                                         vertex_id=(int)*(iomodel->elements+3*i+j); //(Matlab indexing)
     74                                        vertex_id=(int)*(iomodel->f(ElementsEnum)+3*i+j); //(Matlab indexing)
    8275                                        io_index=vertex_id-1;                      //(C indexing)
    8376                                        _assert_(vertex_id>0 && vertex_id<=numberofvertices);
     
    9588
    9689        /*Clean fetched data: */
    97         xfree((void**)&iomodel->elements);
    98         xfree((void**)&iomodel->nodeonbed);
    99         xfree((void**)&iomodel->nodeonsurface);
    100         xfree((void**)&iomodel->nodeonicesheet);
    101         xfree((void**)&iomodel->nodeonwater);
    102         xfree((void**)&iomodel->nodeoniceshelf);
    103         xfree((void**)&iomodel->vertices_type);
     90        iomodel->DeleteData(7,ElementsEnum,NodeOnBedEnum,NodeOnSurfaceEnum,NodeOnIceSheetEnum,NodeOnIceShelfEnum,VerticesTypeEnum,NodeOnWaterEnum);
    10491
    10592        /*Assign output pointer: */
  • issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/UpdateElementsBalancethickness.cpp

    r9362 r9372  
    2121        /*Fetch data needed: */
    2222        iomodel->constants->FindParam(&dim,DimEnum);
    23         iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum);
    2423        iomodel->constants->FindParam(&numberofelements,NumberOfElementsEnum);
     24        iomodel->FetchData(1,ElementsEnum);
    2525
    2626        /*Update elements: */
     
    5252        }
    5353        /*Free data: */
    54         xfree((void**)&iomodel->elements);
    55 
    56 
     54        iomodel->DeleteData(1,ElementsEnum);
    5755}
  • issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/CreateConstraintsEnthalpy.cpp

    r9362 r9372  
    3838
    3939        /*return if 2d mesh*/
    40         if (dim==2) goto cleanup_and_return;
     40        if (dim==2){
     41                *pconstraints=constraints;
     42                return;
     43        }
    4144
    4245        /*Fetch data: */
    43         iomodel->FetchData(&iomodel->spctemperature,NULL,NULL,SpctemperatureEnum);
     46        double *spctemperature=NULL;
     47        iomodel->FetchData(&spctemperature,NULL,NULL,SpctemperatureEnum);
    4448
    4549        /*Initialize counter*/
     
    5155                if((iomodel->my_vertices[i])){
    5256
    53                         if ((int)iomodel->spctemperature[2*i]){
     57                        if ((int)spctemperature[2*i]){
    5458
    55                                 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,heatcapacity*(iomodel->spctemperature[2*i+1]-referencetemperature),EnthalpyAnalysisEnum));
     59                                constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,heatcapacity*(spctemperature[2*i+1]-referencetemperature),EnthalpyAnalysisEnum));
    5660                                count++;
    5761
     
    6165
    6266        /*Free data: */
    63         xfree((void**)&iomodel->spctemperature);
    64 
    65         cleanup_and_return:
     67        xfree((void**)&spctemperature);
    6668       
    6769        /*Assign output pointer: */
  • issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/CreateNodesEnthalpy.cpp

    r9362 r9372  
    3636
    3737        /*Create nodes and vertices: */
    38         iomodel->FetchData(&iomodel->nodeonbed,NULL,NULL,NodeOnBedEnum);
    39         iomodel->FetchData(&iomodel->nodeonsurface,NULL,NULL,NodeOnSurfaceEnum);
    40         iomodel->FetchData(&iomodel->nodeonicesheet,NULL,NULL,NodeOnIceSheetEnum);
    41         iomodel->FetchData(&iomodel->nodeoniceshelf,NULL,NULL,NodeOnIceShelfEnum);
    42         iomodel->FetchData(&iomodel->vertices_type,NULL,NULL,VerticesTypeEnum);
    43         iomodel->FetchData(&iomodel->nodeonwater,NULL,NULL,NodeOnWaterEnum);
     38        iomodel->FetchData(6,NodeOnBedEnum,NodeOnSurfaceEnum,NodeOnIceSheetEnum,NodeOnIceShelfEnum,VerticesTypeEnum,NodeOnWaterEnum);
    4439
    4540        for (i=0;i<numberofvertices;i++){
    46 
    4741                if(iomodel->my_vertices[i]){
    4842                       
     
    5448
    5549        /*Clean fetched data: */
    56         xfree((void**)&iomodel->nodeonbed);
    57         xfree((void**)&iomodel->nodeonsurface);
    58         xfree((void**)&iomodel->nodeonicesheet);
    59         xfree((void**)&iomodel->nodeonwater);
    60         xfree((void**)&iomodel->nodeoniceshelf);
    61         xfree((void**)&iomodel->vertices_type);
     50        iomodel->DeleteData(6,NodeOnBedEnum,NodeOnSurfaceEnum,NodeOnIceSheetEnum,NodeOnIceShelfEnum,VerticesTypeEnum,NodeOnWaterEnum);
    6251       
    6352        /*Assign output pointer: */
  • issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/UpdateElementsEnthalpy.cpp

    r9362 r9372  
    2424
    2525        /*Now, is the model 3d? otherwise, do nothing: */
    26         if (dim==2)return;
     26        if(dim==2)return;
    2727
    2828        /*Fetch data needed: */
    29         iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum);
     29        iomodel->FetchData(1,ElementsEnum);
    3030
    3131        /*Update elements: */
     
    6161       
    6262        /*Free data: */
    63         xfree((void**)&iomodel->elements);
    64 
     63        iomodel->DeleteData(1,ElementsEnum);
    6564}
  • issm/trunk/src/c/modules/ModelProcessorx/Hydrology/CreateNodesHydrology.cpp

    r9362 r9372  
    3636
    3737        /*Create nodes and vertices: */
    38         iomodel->FetchData(&iomodel->nodeonbed,NULL,NULL,NodeOnBedEnum);
    39         iomodel->FetchData(&iomodel->nodeonsurface,NULL,NULL,NodeOnSurfaceEnum);
    40         iomodel->FetchData(&iomodel->nodeonicesheet,NULL,NULL,NodeOnIceSheetEnum);
    41         iomodel->FetchData(&iomodel->nodeoniceshelf,NULL,NULL,NodeOnIceShelfEnum);
    42         iomodel->FetchData(&iomodel->vertices_type,NULL,NULL,VerticesTypeEnum);
    43         iomodel->FetchData(&iomodel->nodeonwater,NULL,NULL,NodeOnWaterEnum);
    44 
     38        iomodel->FetchData(6,NodeOnBedEnum,NodeOnSurfaceEnum,NodeOnIceSheetEnum,NodeOnIceShelfEnum,VerticesTypeEnum,NodeOnWaterEnum);
    4539        for (i=0;i<numberofvertices;i++){
    4640
    4741                if(iomodel->my_vertices[i]){
    48                        
    4942                        /*Add node to nodes dataset: */
    5043                        nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,i+1,i,iomodel,HydrologyAnalysisEnum));
     
    5245                }
    5346        }
    54 
    55         /*Clean fetched data: */
    56         xfree((void**)&iomodel->nodeonbed);
    57         xfree((void**)&iomodel->nodeonsurface);
    58         xfree((void**)&iomodel->nodeonicesheet);
    59         xfree((void**)&iomodel->nodeonwater);
    60         xfree((void**)&iomodel->nodeoniceshelf);
    61         xfree((void**)&iomodel->vertices_type);
     47        iomodel->DeleteData(6,NodeOnBedEnum,NodeOnSurfaceEnum,NodeOnIceSheetEnum,NodeOnIceShelfEnum,VerticesTypeEnum,NodeOnWaterEnum);
    6248       
    6349        /*Assign output pointer: */
  • issm/trunk/src/c/modules/ModelProcessorx/Hydrology/UpdateElementsHydrology.cpp

    r9362 r9372  
    1919       
    2020        /*Fetch data needed: */
    21         iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum);
    2221        iomodel->constants->FindParam(&numberofelements,NumberOfElementsEnum);
     22        iomodel->FetchData(1,ElementsEnum);
    2323
    2424        /*Update elements: */
     
    5555
    5656        elements->InputDuplicate(WatercolumnEnum,WaterColumnOldEnum);
     57
    5758        /*Free data: */
    58         xfree((void**)&iomodel->elements);
    59 
    60        
     59        iomodel->DeleteData(1,ElementsEnum);
    6160}
  • issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateLoadsMelting.cpp

    r9362 r9372  
    3535
    3636        //create penalties for nodes: no node can have a temperature over the melting point
    37         iomodel->FetchData(&iomodel->nodeonbed,NULL,NULL,NodeOnBedEnum);
    38         iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum);
     37        iomodel->FetchData(2,NodeOnBedEnum,ElementsEnum);
    3938        CreateSingleNodeToElementConnectivity(iomodel);
    4039
    4140        for (i=0;i<numberofvertices;i++){
    42                
    4341                if((iomodel->my_vertices[i]==1)){
    44 
    45                         if (iomodel->nodeonbed[i]){
    46                                
     42                        if (iomodel->f(NodeOnBedEnum)[i]){
    4743                                loads->AddObject(new Pengrid(iomodel->loadcounter+i+1,i,iomodel,MeltingAnalysisEnum));
    4844                        }
    4945                }
    5046        }
    51         xfree((void**)&iomodel->nodeonbed);
    52         xfree((void**)&iomodel->elements);
    53         xfree((void**)&iomodel->singlenodetoelementconnectivity);
     47        iomodel->DeleteData(2,NodeOnBedEnum,ElementsEnum);
    5448
    5549        /*Assign output pointer: */
  • issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateNodesMelting.cpp

    r9362 r9372  
    3636
    3737        /*First fetch data: */
    38         iomodel->FetchData(&iomodel->nodeonbed,NULL,NULL,NodeOnBedEnum);
    39         iomodel->FetchData(&iomodel->nodeonsurface,NULL,NULL,NodeOnSurfaceEnum);
    40         iomodel->FetchData(&iomodel->nodeonicesheet,NULL,NULL,NodeOnIceSheetEnum);
    41         iomodel->FetchData(&iomodel->nodeoniceshelf,NULL,NULL,NodeOnIceShelfEnum);
    42         iomodel->FetchData(&iomodel->vertices_type,NULL,NULL,VerticesTypeEnum);
    43         iomodel->FetchData(&iomodel->nodeonwater,NULL,NULL,NodeOnWaterEnum);
    44 
     38        iomodel->FetchData(6,NodeOnBedEnum,NodeOnSurfaceEnum,NodeOnIceSheetEnum,NodeOnIceShelfEnum,VerticesTypeEnum,NodeOnWaterEnum);
    4539        for (i=0;i<numberofvertices;i++){
    4640
     
    5246                }
    5347        }
    54 
    55         /*Clean fetched data: */
    56         xfree((void**)&iomodel->nodeonbed);
    57         xfree((void**)&iomodel->nodeonsurface);
    58         xfree((void**)&iomodel->nodeonicesheet);
    59         xfree((void**)&iomodel->nodeonwater);
    60         xfree((void**)&iomodel->nodeoniceshelf);
    61         xfree((void**)&iomodel->vertices_type);
     48        iomodel->DeleteData(6,NodeOnBedEnum,NodeOnSurfaceEnum,NodeOnIceSheetEnum,NodeOnIceShelfEnum,VerticesTypeEnum,NodeOnWaterEnum);
    6249
    6350        /*Assign output pointer: */
  • issm/trunk/src/c/modules/ModelProcessorx/Melting/UpdateElementsMelting.cpp

    r9362 r9372  
    2727
    2828        /*Fetch data needed: */
    29         iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum);
     29        iomodel->FetchData(1,ElementsEnum);
    3030
    3131        /*Update elements: */
     
    6060       
    6161        /*Free data: */
    62         xfree((void**)&iomodel->elements);
    63 
     62        iomodel->DeleteData(1,ElementsEnum);
    6463}
  • issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateLoadsPrognostic.cpp

    r9362 r9372  
    3838
    3939                /*Get edges and elements*/
    40                 iomodel->FetchData(&iomodel->edges,&numberofedges,NULL,EdgesEnum);
    41                 iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum);
    42                 iomodel->FetchData(&iomodel->thickness,NULL,NULL,ThicknessEnum);
     40                iomodel->FetchData(3,EdgesEnum,ElementsEnum,ThicknessEnum);
    4341
    4442                /*First load data:*/
     
    4644
    4745                        /*Get left and right elements*/
    48                         element=(int)iomodel->edges[4*i+2]-1; //edges are [node1 node2 elem1 elem2]
     46                        element=(int)iomodel->f(EdgesEnum)[4*i+2]-1; //edges are [node1 node2 elem1 elem2]
    4947
    5048                        /*Now, if this element is not in the partition, pass: */
     
    5654
    5755                /*Free data: */
    58                 xfree((void**)&iomodel->edges);
    59                 xfree((void**)&iomodel->elements);
    60                 xfree((void**)&iomodel->thickness);
    61 
     56                iomodel->DeleteData(3,EdgesEnum,ElementsEnum,ThicknessEnum);
    6257        }
    6358
    6459        /*Create Penpair for penalties: */
    65         iomodel->FetchData(&iomodel->penalties,&numpenalties,NULL,PenaltiesEnum);
    66         iomodel->FetchData(&iomodel->nodeonbed,NULL,NULL,NodeOnBedEnum);
     60        double *penalties=NULL;
     61        double *nodeonbed=NULL;
     62        iomodel->FetchData(&penalties,&numpenalties,NULL,PenaltiesEnum);
     63        iomodel->FetchData(&nodeonbed,NULL,NULL,NodeOnBedEnum);
    6764
    6865        for(i=0;i<numpenalties;i++){
    6966
    70                 if(iomodel->my_vertices[(int)iomodel->penalties[2*i+0]-1]){
     67                if(iomodel->my_vertices[(int)penalties[2*i+0]-1]){
    7168
    7269                        /*In debugging mode, check that the second node is in the same cpu*/
    73                         _assert_(iomodel->my_vertices[(int)iomodel->penalties[2*i+1]-1]);
     70                        _assert_(iomodel->my_vertices[(int)iomodel->f(PenaltiesEnum)[2*i+1]-1]);
    7471
    7572                        /*Skip if one of the two is not on the bed*/
    76                         if(!iomodel->nodeonbed[(int)iomodel->penalties[2*i+0]-1] || !iomodel->nodeonbed[(int)iomodel->penalties[2*i+1]-1]) continue;
     73                        if(!nodeonbed[(int)penalties[2*i+0]-1] || !nodeonbed[(int)penalties[2*i+1]-1]) continue;
    7774
    7875                        /*Get node ids*/
    79                         penpair_ids[0]=iomodel->nodecounter+(int)iomodel->penalties[2*i+0];
    80                         penpair_ids[1]=iomodel->nodecounter+(int)iomodel->penalties[2*i+1];
     76                        penpair_ids[0]=iomodel->nodecounter+(int)penalties[2*i+0];
     77                        penpair_ids[1]=iomodel->nodecounter+(int)penalties[2*i+1];
    8178
    8279                        /*Create Load*/
     
    9087
    9188        /*free ressources: */
    92         xfree((void**)&iomodel->penalties);
    93         xfree((void**)&iomodel->nodeonbed);
     89        xfree((void**)&penalties);
     90        xfree((void**)&nodeonbed);
    9491
    9592
  • issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp

    r9362 r9372  
    4949
    5050        /*First fetch data: */
    51         iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum);
    52         iomodel->FetchData(&iomodel->nodeonbed,NULL,NULL,NodeOnBedEnum);
    53         iomodel->FetchData(&iomodel->nodeonsurface,NULL,NULL,NodeOnSurfaceEnum);
    54         iomodel->FetchData(&iomodel->nodeonicesheet,NULL,NULL,NodeOnIceSheetEnum);
    55         iomodel->FetchData(&iomodel->nodeoniceshelf,NULL,NULL,NodeOnIceShelfEnum);
    56         iomodel->FetchData(&iomodel->vertices_type,NULL,NULL,VerticesTypeEnum);
    57         iomodel->FetchData(&iomodel->nodeonwater,NULL,NULL,NodeOnWaterEnum);
    58 
     51        iomodel->FetchData(6,NodeOnBedEnum,NodeOnSurfaceEnum,NodeOnIceSheetEnum,NodeOnIceShelfEnum,VerticesTypeEnum,NodeOnWaterEnum);
    5952        if(continuous_galerkin){
    6053
     
    7972
    8073                                        //Get index of the vertex on which the current node is located
    81                                         vertex_id=(int)*(iomodel->elements+3*i+j); //(Matlab indexing)
     74                                        vertex_id=(int)*(iomodel->f(ElementsEnum)+3*i+j); //(Matlab indexing)
    8275                                        io_index=vertex_id-1;                      //(C indexing)
    8376                                        _assert_(vertex_id>0 && vertex_id<=numberofvertices);
     
    9588
    9689        /*Clean fetched data: */
    97         xfree((void**)&iomodel->nodeonbed);
    98         xfree((void**)&iomodel->nodeonsurface);
    99         xfree((void**)&iomodel->nodeonicesheet);
    100         xfree((void**)&iomodel->nodeoniceshelf);
    101         xfree((void**)&iomodel->nodeonwater);
    102         xfree((void**)&iomodel->elements);
    103         xfree((void**)&iomodel->vertices_type);
     90        iomodel->DeleteData(6,NodeOnBedEnum,NodeOnSurfaceEnum,NodeOnIceSheetEnum,NodeOnIceShelfEnum,VerticesTypeEnum,NodeOnWaterEnum);
    10491
    10592        /*Assign output pointer: */
  • issm/trunk/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp

    r9362 r9372  
    2222        /*Fetch data needed: */
    2323        iomodel->constants->FindParam(&dim,DimEnum);
    24         iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum);
    2524        iomodel->constants->FindParam(&numberofelements,NumberOfElementsEnum);
    2625        iomodel->constants->FindParam(&prognostic_DG,PrognosticDGEnum);
     26        iomodel->FetchData(1,ElementsEnum);
    2727
    2828        /*Update elements: */
     
    6161       
    6262        /*Free data: */
    63         xfree((void**)&iomodel->elements);
     63        iomodel->DeleteData(1,ElementsEnum);
    6464}
  • issm/trunk/src/c/modules/ModelProcessorx/Qmu/CreateParametersQmu.cpp

    r9356 r9372  
    206206                }
    207207                xfree((void**)&variabledescriptors);
    208 
    209                 xfree((void**)&iomodel->elements);
    210                 xfree((void**)&iomodel->elements2d);
    211208                xfree((void**)&part);
    212209                xfree((void**)&dpart);
  • issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateLoadsThermal.cpp

    r9362 r9372  
    3636
    3737        //create penalties for nodes: no node can have a temperature over the melting point
    38         iomodel->FetchData(&iomodel->spctemperature,NULL,NULL,SpctemperatureEnum);
    39         iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum);
     38        iomodel->FetchData(2,SpctemperatureEnum,ElementsEnum);
    4039        CreateSingleNodeToElementConnectivity(iomodel);
    4140
     
    4443                /*keep only this partition's nodes:*/
    4544                if((iomodel->my_vertices[i]==1)){
    46 
    47                         if (isnan(iomodel->spctemperature[i])){ //No penalty applied on spc nodes!
    48 
     45                        if (isnan(iomodel->f(SpctemperatureEnum)[i])){ //No penalty applied on spc nodes!
    4946                                loads->AddObject(new Pengrid(iomodel->loadcounter+i+1,i,iomodel,ThermalAnalysisEnum));
    50                                                
    5147                        }
    5248                }
    5349        }
    54         xfree((void**)&iomodel->spctemperature);
    55         xfree((void**)&iomodel->elements);
    56         xfree((void**)&iomodel->singlenodetoelementconnectivity);
     50        iomodel->DeleteData(2,SpctemperatureEnum,ElementsEnum);
    5751
    5852        /*Assign output pointer: */
  • issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateNodesThermal.cpp

    r9362 r9372  
    3636
    3737        /*Create nodes and vertices: */
    38         iomodel->FetchData(&iomodel->nodeonbed,NULL,NULL,NodeOnBedEnum);
    39         iomodel->FetchData(&iomodel->nodeonsurface,NULL,NULL,NodeOnSurfaceEnum);
    40         iomodel->FetchData(&iomodel->nodeonicesheet,NULL,NULL,NodeOnIceSheetEnum);
    41         iomodel->FetchData(&iomodel->nodeoniceshelf,NULL,NULL,NodeOnIceShelfEnum);
    42         iomodel->FetchData(&iomodel->vertices_type,NULL,NULL,VerticesTypeEnum);
    43         iomodel->FetchData(&iomodel->nodeonwater,NULL,NULL,NodeOnWaterEnum);
     38        iomodel->FetchData(6,NodeOnBedEnum,NodeOnSurfaceEnum,NodeOnIceSheetEnum,NodeOnIceShelfEnum,VerticesTypeEnum,NodeOnWaterEnum);
    4439
    4540        for (i=0;i<numberofvertices;i++){
    4641
    4742                if(iomodel->my_vertices[i]){
    48                        
    4943                        /*Add node to nodes dataset: */
    5044                        nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,i+1,i,iomodel,ThermalAnalysisEnum));
     
    5448
    5549        /*Clean fetched data: */
    56         xfree((void**)&iomodel->nodeonbed);
    57         xfree((void**)&iomodel->nodeonsurface);
    58         xfree((void**)&iomodel->nodeonicesheet);
    59         xfree((void**)&iomodel->nodeonwater);
    60         xfree((void**)&iomodel->nodeoniceshelf);
    61         xfree((void**)&iomodel->vertices_type);
     50        iomodel->DeleteData(6,NodeOnBedEnum,NodeOnSurfaceEnum,NodeOnIceSheetEnum,NodeOnIceShelfEnum,VerticesTypeEnum,NodeOnWaterEnum);
    6251       
    6352        /*Assign output pointer: */
Note: See TracChangeset for help on using the changeset viewer.