Changeset 9340
- Timestamp:
- 08/12/11 18:07:26 (14 years ago)
- Location:
- issm/trunk/src/c
- Files:
-
- 1 deleted
- 63 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/Makefile.am
r9293 r9340 409 409 ./io/io.h\ 410 410 ./io/Disk/diskio.h\ 411 ./io/Disk/IoModelFetchData.cpp\412 411 ./io/Disk/pfopen.cpp\ 413 412 ./io/Disk/pfclose.cpp\ … … 1101 1100 ./io/io.h\ 1102 1101 ./io/Disk/diskio.h\ 1103 ./io/Disk/IoModelFetchData.cpp\1104 1102 ./io/Disk/pfopen.cpp\ 1105 1103 ./io/Disk/pfclose.cpp\ -
issm/trunk/src/c/io/Disk/diskio.h
r8967 r9340 16 16 void pfclose(FILE* fid,char* filename); 17 17 18 void IoModelFetchData(bool* pboolean,FILE* model_handle,int data_enum);19 void IoModelFetchData(int* pinteger,FILE* model_handle,int data_enum);20 void IoModelFetchData(double* pscalar,FILE* model_handle,int data_enum);21 void IoModelFetchData(char** pstring,FILE* model_handle,int data_enum);22 void IoModelFetchData(double** pscalarmatrix,int* pM,int* pN,FILE* model_handle,int data_enum);23 void IoModelFetchData(char*** pstringarray,int* pnumstrings,FILE* model_handle,int data_enum);24 void IoModelFetchData(double*** pmatrixarray,int** pmdims,int** pndims, int* pnumrecords,FILE* model_handle,int data_enum);25 26 FILE* SetFilePointerToData(int* pcode,int* pvector_type, FILE* model_handle,int data_enum);27 28 18 #endif /* _IO_H_ */ -
issm/trunk/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp
r9285 r9340 10 10 #include "../../EnumDefinitions/EnumDefinitions.h" 11 11 12 void IoModelToConstraintsx(Constraints* constraints,IoModel* iomodel, FILE* iomodel_handle,int vector_enum,int analysis_type){12 void IoModelToConstraintsx(Constraints* constraints,IoModel* iomodel,int vector_enum,int analysis_type){ 13 13 14 14 … … 33 33 34 34 /*First of, find the record for the enum, and get code of data type: */ 35 fid= SetFilePointerToData(&code, &vector_layout,iomodel_handle,vector_enum);35 fid=iomodel->SetFilePointerToData(&code, &vector_layout,vector_enum); 36 36 37 37 if(code!=7)_error_("%s%s"," expecting a double vector for constraints with enum ",EnumToStringx(vector_enum)); … … 39 39 40 40 /*Fetch vector:*/ 41 IoModelFetchData(&doublevector,&M,&N,iomodel_handle,vector_enum);41 iomodel->FetchData(&doublevector,&M,&N,vector_enum); 42 42 43 43 /*Transient or static?:*/ -
issm/trunk/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.h
r9002 r9340 9 9 10 10 /* local prototypes: */ 11 void IoModelToConstraintsx(Constraints* constraints,IoModel* iomodel, FILE* iomodel_handle,int vector_enum,int analysis_type);11 void IoModelToConstraintsx(Constraints* constraints,IoModel* iomodel,int vector_enum,int analysis_type); 12 12 13 13 #endif /* _IOMODELTOELEMENTINPUTX_H */ -
issm/trunk/src/c/modules/IoModelToInputsx/IoModelToInputsx.cpp
r8976 r9340 10 10 #include "../../EnumDefinitions/EnumDefinitions.h" 11 11 12 void IoModelToInputsx(Elements* elements,IoModel* iomodel, FILE* iomodel_handle,int vector_enum,int default_vector_enum,double default_value){12 void IoModelToInputsx(Elements* elements,IoModel* iomodel,int vector_enum,int default_vector_enum,double default_value){ 13 13 14 14 … … 35 35 36 36 /*First of, find the record for the enum, and get code of data type: */ 37 fid= SetFilePointerToData(&code, &vector_layout,iomodel_handle,vector_enum);37 fid=iomodel->SetFilePointerToData(&code, &vector_layout,vector_enum); 38 38 39 39 switch(code){ 40 40 case 1: //boolean constant. {{{1 41 IoModelFetchData(&boolean,iomodel_handle,vector_enum);41 iomodel->FetchData(&boolean,vector_enum); 42 42 43 43 /*Add boolean constant input to all elements: */ … … 52 52 break; /*}}}*/ 53 53 case 2: //integer constant. {{{1 54 IoModelFetchData(&integer,iomodel_handle,vector_enum);54 iomodel->FetchData(&integer,vector_enum); 55 55 56 56 /*Add integer constant input to all elements: */ … … 65 65 break; /*}}}*/ 66 66 case 3: //double constant. {{{1 67 IoModelFetchData(&scalar,iomodel_handle,vector_enum);67 iomodel->FetchData(&scalar,vector_enum); 68 68 69 69 /*Add double constant input to all elements: */ … … 80 80 81 81 /*Fetch vector:*/ 82 IoModelFetchData(&doublevector,&M,&N,iomodel_handle,vector_enum); //we still have a doublevector, because it might include times in transient mode82 iomodel->FetchData(&doublevector,&M,&N,vector_enum); //we still have a doublevector, because it might include times in transient mode 83 83 /*Check we got something, otherwise fetch default: */ 84 84 if(doublevector){ … … 89 89 if(default_vector_enum!=NoneEnum){ 90 90 /*yes. fetch it: */ 91 IoModelFetchData(&doublevector,&M,&N,iomodel_handle,default_vector_enum);91 iomodel->FetchData(&doublevector,&M,&N,default_vector_enum); 92 92 if(doublevector){ 93 93 defaulting=false; //we are not defaulting, because we do have a vector … … 118 118 119 119 /*Fetch vector:*/ 120 IoModelFetchData(&doublevector,&M,&N,iomodel_handle,vector_enum); //we still have a doublevector, because it might include times in transient mode120 iomodel->FetchData(&doublevector,&M,&N,vector_enum); //we still have a doublevector, because it might include times in transient mode 121 121 /*Check we got something, otherwise fetch default: */ 122 122 if(doublevector){ … … 127 127 if(default_vector_enum!=NoneEnum){ 128 128 /*yes. fetch it: */ 129 IoModelFetchData(&doublevector,&M,&N,iomodel_handle,default_vector_enum);129 iomodel->FetchData(&doublevector,&M,&N,default_vector_enum); 130 130 if(doublevector){ 131 131 defaulting=false; //we are not defaulting, because we do have a vector … … 156 156 157 157 /*Fetch vector:*/ 158 IoModelFetchData(&doublevector,&M,&N,iomodel_handle,vector_enum);158 iomodel->FetchData(&doublevector,&M,&N,vector_enum); 159 159 /*Check we got something, otherwise fetch default: */ 160 160 if(doublevector){ … … 165 165 if(default_vector_enum!=NoneEnum){ 166 166 /*yes. fetch it: */ 167 IoModelFetchData(&doublevector,&M,&N,iomodel_handle,default_vector_enum);167 iomodel->FetchData(&doublevector,&M,&N,default_vector_enum); 168 168 if(doublevector){ 169 169 defaulting=false; //we are not defaulting, because we do have a vector -
issm/trunk/src/c/modules/IoModelToInputsx/IoModelToInputsx.h
r8967 r9340 9 9 10 10 /* local prototypes: */ 11 void IoModelToInputsx(Elements* elements,IoModel* iomodel, FILE* iomodel_handle,int vector_enum,int default_vector_enum=NoneEnum,double default_value=0);11 void IoModelToInputsx(Elements* elements,IoModel* iomodel,int vector_enum,int default_vector_enum=NoneEnum,double default_value=0); 12 12 13 13 #endif /* _IOMODELTOELEMENTINPUTX_H */ -
issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateConstraintsBalancethickness.cpp
r9081 r9340 8 8 #include "../ModelProcessorx.h" 9 9 10 void CreateConstraintsBalancethickness(Constraints** pconstraints, IoModel* iomodel ,FILE* iomodel_handle){10 void CreateConstraintsBalancethickness(Constraints** pconstraints, IoModel* iomodel){ 11 11 12 12 /*Output*/ … … 21 21 /*Do not add constraints in DG*/ 22 22 if(!iomodel->prognostic_DG){ 23 IoModelToConstraintsx(constraints,iomodel, iomodel_handle,SpcthicknessEnum,BalancethicknessAnalysisEnum);23 IoModelToConstraintsx(constraints,iomodel,SpcthicknessEnum,BalancethicknessAnalysisEnum); 24 24 } 25 25 -
issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateLoadsBalancethickness.cpp
r8926 r9340 11 11 #include "../ModelProcessorx.h" 12 12 13 void CreateLoadsBalancethickness(Loads** ploads, IoModel* iomodel ,FILE* iomodel_handle){13 void CreateLoadsBalancethickness(Loads** ploads, IoModel* iomodel){ 14 14 15 15 /*Intermediary*/ … … 30 30 31 31 /*Get edges and elements*/ 32 IoModelFetchData(&iomodel->edges,&iomodel->numberofedges,NULL,iomodel_handle,EdgesEnum);33 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);34 IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,ThicknessEnum);32 iomodel->FetchData(&iomodel->edges,&iomodel->numberofedges,NULL,EdgesEnum); 33 iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum); 34 iomodel->FetchData(&iomodel->thickness,NULL,NULL,ThicknessEnum); 35 35 36 36 /*First load data:*/ -
issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateNodesBalancethickness.cpp
r8926 r9340 13 13 #include "../ModelProcessorx.h" 14 14 15 void CreateNodesBalancethickness(Nodes** pnodes, IoModel* iomodel ,FILE* iomodel_handle){15 void CreateNodesBalancethickness(Nodes** pnodes, IoModel* iomodel){ 16 16 17 17 /*Intermediary*/ … … 33 33 /*Continuous Galerkin partition of nodes: */ 34 34 if(iomodel->prognostic_DG) continuous_galerkin=false; 35 NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel, iomodel_handle,continuous_galerkin);35 NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel,continuous_galerkin); 36 36 37 37 /*Check in 3d*/ … … 39 39 40 40 /*First fetch data: */ 41 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);42 IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);43 IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,NodeOnSurfaceEnum);44 IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,NodeOnIceSheetEnum);45 IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,NodeOnIceShelfEnum);46 IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,VerticesTypeEnum);47 IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,NodeOnWaterEnum);41 iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum); 42 iomodel->FetchData(&iomodel->nodeonbed,NULL,NULL,NodeOnBedEnum); 43 iomodel->FetchData(&iomodel->nodeonsurface,NULL,NULL,NodeOnSurfaceEnum); 44 iomodel->FetchData(&iomodel->nodeonicesheet,NULL,NULL,NodeOnIceSheetEnum); 45 iomodel->FetchData(&iomodel->nodeoniceshelf,NULL,NULL,NodeOnIceShelfEnum); 46 iomodel->FetchData(&iomodel->vertices_type,NULL,NULL,VerticesTypeEnum); 47 iomodel->FetchData(&iomodel->nodeonwater,NULL,NULL,NodeOnWaterEnum); 48 48 49 49 if(continuous_galerkin){ -
issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/UpdateElementsBalancethickness.cpp
r8985 r9340 14 14 #include "../ModelProcessorx.h" 15 15 16 void UpdateElementsBalancethickness(Elements* elements, IoModel* iomodel, FILE* iomodel_handle,int analysis_counter,int analysis_type){16 void UpdateElementsBalancethickness(Elements* elements, IoModel* iomodel,int analysis_counter,int analysis_type){ 17 17 18 18 /*Fetch data needed: */ 19 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);19 iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum); 20 20 21 21 /*Update elements: */ … … 29 29 } 30 30 31 IoModelToInputsx(elements,iomodel, iomodel_handle,ThicknessEnum);32 IoModelToInputsx(elements,iomodel, iomodel_handle,SurfaceEnum);33 IoModelToInputsx(elements,iomodel, iomodel_handle,BedEnum);34 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnIceShelfEnum);35 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnWaterEnum);36 IoModelToInputsx(elements,iomodel, iomodel_handle,VxEnum);37 IoModelToInputsx(elements,iomodel, iomodel_handle,VyEnum);38 IoModelToInputsx(elements,iomodel, iomodel_handle,BasalMeltingRateEnum);39 IoModelToInputsx(elements,iomodel, iomodel_handle,SurfaceAccumulationRateEnum);40 IoModelToInputsx(elements,iomodel, iomodel_handle,SurfaceAblationRateEnum);41 IoModelToInputsx(elements,iomodel, iomodel_handle,SurfaceMassBalanceEnum);42 IoModelToInputsx(elements,iomodel, iomodel_handle,DhdtEnum);31 IoModelToInputsx(elements,iomodel,ThicknessEnum); 32 IoModelToInputsx(elements,iomodel,SurfaceEnum); 33 IoModelToInputsx(elements,iomodel,BedEnum); 34 IoModelToInputsx(elements,iomodel,ElementOnIceShelfEnum); 35 IoModelToInputsx(elements,iomodel,ElementOnWaterEnum); 36 IoModelToInputsx(elements,iomodel,VxEnum); 37 IoModelToInputsx(elements,iomodel,VyEnum); 38 IoModelToInputsx(elements,iomodel,BasalMeltingRateEnum); 39 IoModelToInputsx(elements,iomodel,SurfaceAccumulationRateEnum); 40 IoModelToInputsx(elements,iomodel,SurfaceAblationRateEnum); 41 IoModelToInputsx(elements,iomodel,SurfaceMassBalanceEnum); 42 IoModelToInputsx(elements,iomodel,DhdtEnum); 43 43 44 44 if (iomodel->dim==3){ 45 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnBedEnum);46 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnSurfaceEnum);45 IoModelToInputsx(elements,iomodel,ElementOnBedEnum); 46 IoModelToInputsx(elements,iomodel,ElementOnSurfaceEnum); 47 47 } 48 48 /*Free data: */ -
issm/trunk/src/c/modules/ModelProcessorx/BedSlope/CreateConstraintsBedSlope.cpp
r8330 r9340 11 11 #include "../ModelProcessorx.h" 12 12 13 void CreateConstraintsBedSlope(Constraints** pconstraints, IoModel* iomodel ,FILE* iomodel_handle){13 void CreateConstraintsBedSlope(Constraints** pconstraints, IoModel* iomodel){ 14 14 15 15 /*Output*/ -
issm/trunk/src/c/modules/ModelProcessorx/BedSlope/CreateLoadsBedSlope.cpp
r8330 r9340 11 11 #include "../ModelProcessorx.h" 12 12 13 void CreateLoadsBedSlope(Loads** ploads, IoModel* iomodel ,FILE* iomodel_handle){13 void CreateLoadsBedSlope(Loads** ploads, IoModel* iomodel){ 14 14 15 15 /*DataSet*/ -
issm/trunk/src/c/modules/ModelProcessorx/BedSlope/CreateNodesBedSlope.cpp
r8926 r9340 13 13 #include "../ModelProcessorx.h" 14 14 15 void CreateNodesBedSlope(Nodes** pnodes, IoModel* iomodel ,FILE* iomodel_handle){15 void CreateNodesBedSlope(Nodes** pnodes, IoModel* iomodel){ 16 16 17 17 /*Intermediary*/ … … 29 29 30 30 /*Continuous Galerkin partition of nodes: */ 31 NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel, iomodel_handle,continuous_galerkin);31 NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel,continuous_galerkin); 32 32 33 33 /*First fetch data: */ 34 IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);35 IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,NodeOnSurfaceEnum);36 IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,NodeOnIceSheetEnum);37 IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,NodeOnIceShelfEnum);38 IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,VerticesTypeEnum);39 IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,NodeOnWaterEnum);34 iomodel->FetchData(&iomodel->nodeonbed,NULL,NULL,NodeOnBedEnum); 35 iomodel->FetchData(&iomodel->nodeonsurface,NULL,NULL,NodeOnSurfaceEnum); 36 iomodel->FetchData(&iomodel->nodeonicesheet,NULL,NULL,NodeOnIceSheetEnum); 37 iomodel->FetchData(&iomodel->nodeoniceshelf,NULL,NULL,NodeOnIceShelfEnum); 38 iomodel->FetchData(&iomodel->vertices_type,NULL,NULL,VerticesTypeEnum); 39 iomodel->FetchData(&iomodel->nodeonwater,NULL,NULL,NodeOnWaterEnum); 40 40 41 41 for (i=0;i<iomodel->numberofvertices;i++){ -
issm/trunk/src/c/modules/ModelProcessorx/BedSlope/UpdateElementsBedSlope.cpp
r8986 r9340 14 14 #include "../ModelProcessorx.h" 15 15 16 void UpdateElementsBedSlope(Elements* elements, IoModel* iomodel, FILE* iomodel_handle,int analysis_counter,int analysis_type){16 void UpdateElementsBedSlope(Elements* elements, IoModel* iomodel,int analysis_counter,int analysis_type){ 17 17 18 18 /*Fetch data needed: */ 19 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);19 iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum); 20 20 21 21 /*Update elements: */ … … 29 29 } 30 30 31 IoModelToInputsx(elements,iomodel, iomodel_handle,SurfaceEnum);32 IoModelToInputsx(elements,iomodel, iomodel_handle,BedEnum);33 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnWaterEnum);31 IoModelToInputsx(elements,iomodel,SurfaceEnum); 32 IoModelToInputsx(elements,iomodel,BedEnum); 33 IoModelToInputsx(elements,iomodel,ElementOnWaterEnum); 34 34 35 35 if (iomodel->dim==3){ 36 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnBedEnum);37 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnSurfaceEnum);36 IoModelToInputsx(elements,iomodel,ElementOnBedEnum); 37 IoModelToInputsx(elements,iomodel,ElementOnSurfaceEnum); 38 38 } 39 39 -
issm/trunk/src/c/modules/ModelProcessorx/Control/CreateParametersControl.cpp
r8926 r9340 12 12 #include "../ModelProcessorx.h" 13 13 14 void CreateParametersControl(Parameters** pparameters,IoModel* iomodel, FILE* iomodel_handle,int solution_type,int analysis_type){14 void CreateParametersControl(Parameters** pparameters,IoModel* iomodel,int solution_type,int analysis_type){ 15 15 16 16 int i; … … 28 28 29 29 /*What control type?*/ 30 IoModelFetchData(&iomodel->control_type,NULL,NULL,iomodel_handle,ControlTypeEnum);30 iomodel->FetchData(&iomodel->control_type,NULL,NULL,ControlTypeEnum); 31 31 parameters->AddObject(new IntVecParam(ControlTypeEnum,iomodel->control_type,iomodel->num_control_type)); 32 32 xfree((void**)&iomodel->control_type); … … 47 47 48 48 /*Now, recover fit, optscal and maxiter as vectors: */ 49 IoModelFetchData(&iomodel->cm_responses,NULL,NULL,iomodel_handle,CmResponsesEnum);50 IoModelFetchData(&iomodel->cm_jump,NULL,NULL,iomodel_handle,CmJumpEnum);51 IoModelFetchData(&iomodel->optscal,NULL,NULL,iomodel_handle,OptscalEnum);52 IoModelFetchData(&iomodel->maxiter,NULL,NULL,iomodel_handle,MaxiterEnum);49 iomodel->FetchData(&iomodel->cm_responses,NULL,NULL,CmResponsesEnum); 50 iomodel->FetchData(&iomodel->cm_jump,NULL,NULL,CmJumpEnum); 51 iomodel->FetchData(&iomodel->optscal,NULL,NULL,OptscalEnum); 52 iomodel->FetchData(&iomodel->maxiter,NULL,NULL,MaxiterEnum); 53 53 54 54 parameters->AddObject(new DoubleMatParam(OptscalEnum,iomodel->optscal,iomodel->nsteps,iomodel->num_control_type)); -
issm/trunk/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp
r8967 r9340 14 14 #include "../ModelProcessorx.h" 15 15 16 void UpdateElementsAndMaterialsControl(Elements* elements,Materials* materials, IoModel* iomodel ,FILE* iomodel_handle){16 void UpdateElementsAndMaterialsControl(Elements* elements,Materials* materials, IoModel* iomodel){ 17 17 18 18 /*Intermediary*/ … … 26 26 27 27 /*Fetch data needed: */ 28 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);28 iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum); 29 29 30 IoModelToInputsx(elements,iomodel, iomodel_handle,VxObsEnum);31 IoModelToInputsx(elements,iomodel, iomodel_handle,VyObsEnum);32 IoModelToInputsx(elements,iomodel, iomodel_handle,ThicknessObsEnum);30 IoModelToInputsx(elements,iomodel,VxObsEnum); 31 IoModelToInputsx(elements,iomodel,VyObsEnum); 32 IoModelToInputsx(elements,iomodel,ThicknessObsEnum); 33 33 34 IoModelFetchData(&iomodel->control_type,NULL,NULL,iomodel_handle,ControlTypeEnum);35 IoModelFetchData(&iomodel->weights,NULL,NULL,iomodel_handle,WeightsEnum);36 IoModelFetchData(&iomodel->cm_min,NULL,NULL,iomodel_handle,CmMinEnum);37 IoModelFetchData(&iomodel->cm_max,NULL,NULL,iomodel_handle,CmMaxEnum);34 iomodel->FetchData(&iomodel->control_type,NULL,NULL,ControlTypeEnum); 35 iomodel->FetchData(&iomodel->weights,NULL,NULL,WeightsEnum); 36 iomodel->FetchData(&iomodel->cm_min,NULL,NULL,CmMinEnum); 37 iomodel->FetchData(&iomodel->cm_max,NULL,NULL,CmMaxEnum); 38 38 for(i=0;i<iomodel->num_control_type;i++){ 39 39 switch((int)iomodel->control_type[i]){ 40 40 case DhdtEnum: 41 IoModelFetchData(&iomodel->dhdt,NULL,NULL,iomodel_handle,DhdtEnum);41 iomodel->FetchData(&iomodel->dhdt,NULL,NULL,DhdtEnum); 42 42 break; 43 43 case VxEnum: 44 IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,VxEnum);44 iomodel->FetchData(&iomodel->vx,NULL,NULL,VxEnum); 45 45 break; 46 46 case VyEnum: 47 IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,VyEnum);47 iomodel->FetchData(&iomodel->vy,NULL,NULL,VyEnum); 48 48 break; 49 49 case DragCoefficientEnum: 50 IoModelFetchData(&iomodel->drag_coefficient,NULL,NULL,iomodel_handle,DragCoefficientEnum);50 iomodel->FetchData(&iomodel->drag_coefficient,NULL,NULL,DragCoefficientEnum); 51 51 break; 52 52 case RheologyBbarEnum: 53 IoModelFetchData(&iomodel->rheology_B,NULL,NULL,iomodel_handle,RheologyBEnum);53 iomodel->FetchData(&iomodel->rheology_B,NULL,NULL,RheologyBEnum); 54 54 break; 55 55 default: -
issm/trunk/src/c/modules/ModelProcessorx/CreateDataSets.cpp
r9320 r9340 16 16 17 17 18 void CreateDataSets(Elements** pelements,Nodes** pnodes, Vertices** pvertices, Materials** pmaterials, Constraints** pconstraints, Loads** ploads,Parameters** pparameters,IoModel* iomodel, FILE* iomodel_handle,const int solution_type,const int analysis_type,const int nummodels,int analysis_counter){18 void CreateDataSets(Elements** pelements,Nodes** pnodes, Vertices** pvertices, Materials** pmaterials, Constraints** pconstraints, Loads** ploads,Parameters** pparameters,IoModel* iomodel,const int solution_type,const int analysis_type,const int nummodels,int analysis_counter){ 19 19 20 20 bool continuous = true; … … 24 24 25 25 /*Create elements, vertices and materials, independent of analysis_type: */ 26 CreateElementsVerticesAndMaterials(pelements, pvertices, pmaterials, iomodel, iomodel_handle,nummodels);26 CreateElementsVerticesAndMaterials(pelements, pvertices, pmaterials, iomodel,nummodels); 27 27 28 28 /*Recover elements and materials, for future update: */ … … 33 33 switch(analysis_type){ 34 34 case DiagnosticHorizAnalysisEnum: 35 CreateNodesDiagnosticHoriz(pnodes, iomodel ,iomodel_handle);36 CreateConstraintsDiagnosticHoriz(pconstraints,iomodel ,iomodel_handle);37 CreateLoadsDiagnosticHoriz(ploads,iomodel ,iomodel_handle);38 UpdateElementsDiagnosticHoriz(elements,iomodel, iomodel_handle,analysis_counter,analysis_type);35 CreateNodesDiagnosticHoriz(pnodes, iomodel); 36 CreateConstraintsDiagnosticHoriz(pconstraints,iomodel); 37 CreateLoadsDiagnosticHoriz(ploads,iomodel); 38 UpdateElementsDiagnosticHoriz(elements,iomodel,analysis_counter,analysis_type); 39 39 break; 40 40 41 41 case DiagnosticVertAnalysisEnum: 42 CreateNodesDiagnosticVert(pnodes, iomodel ,iomodel_handle);43 CreateConstraintsDiagnosticVert(pconstraints,iomodel ,iomodel_handle);44 CreateLoadsDiagnosticVert(ploads,iomodel ,iomodel_handle);45 UpdateElementsDiagnosticVert(elements,iomodel, iomodel_handle,analysis_counter,analysis_type);42 CreateNodesDiagnosticVert(pnodes, iomodel); 43 CreateConstraintsDiagnosticVert(pconstraints,iomodel); 44 CreateLoadsDiagnosticVert(ploads,iomodel); 45 UpdateElementsDiagnosticVert(elements,iomodel,analysis_counter,analysis_type); 46 46 break; 47 47 48 48 case DiagnosticHutterAnalysisEnum: 49 CreateNodesDiagnosticHutter(pnodes, iomodel ,iomodel_handle);50 CreateConstraintsDiagnosticHutter(pconstraints,iomodel ,iomodel_handle);51 CreateLoadsDiagnosticHutter(ploads,iomodel ,iomodel_handle);52 UpdateElementsDiagnosticHutter(elements,iomodel, iomodel_handle,analysis_counter,analysis_type);49 CreateNodesDiagnosticHutter(pnodes, iomodel); 50 CreateConstraintsDiagnosticHutter(pconstraints,iomodel); 51 CreateLoadsDiagnosticHutter(ploads,iomodel); 52 UpdateElementsDiagnosticHutter(elements,iomodel,analysis_counter,analysis_type); 53 53 break; 54 54 55 55 case BedSlopeAnalysisEnum: 56 CreateNodesBedSlope(pnodes, iomodel ,iomodel_handle);57 CreateConstraintsBedSlope(pconstraints,iomodel ,iomodel_handle);58 CreateLoadsBedSlope(ploads,iomodel ,iomodel_handle);59 UpdateElementsBedSlope(elements,iomodel, iomodel_handle,analysis_counter,analysis_type);56 CreateNodesBedSlope(pnodes, iomodel); 57 CreateConstraintsBedSlope(pconstraints,iomodel); 58 CreateLoadsBedSlope(ploads,iomodel); 59 UpdateElementsBedSlope(elements,iomodel,analysis_counter,analysis_type); 60 60 break; 61 61 62 62 case SurfaceSlopeAnalysisEnum: 63 CreateNodesSurfaceSlope(pnodes, iomodel ,iomodel_handle);64 CreateConstraintsSurfaceSlope(pconstraints,iomodel ,iomodel_handle);65 CreateLoadsSurfaceSlope(ploads,iomodel ,iomodel_handle);66 UpdateElementsSurfaceSlope(elements,iomodel, iomodel_handle,analysis_counter,analysis_type);63 CreateNodesSurfaceSlope(pnodes, iomodel); 64 CreateConstraintsSurfaceSlope(pconstraints,iomodel); 65 CreateLoadsSurfaceSlope(ploads,iomodel); 66 UpdateElementsSurfaceSlope(elements,iomodel,analysis_counter,analysis_type); 67 67 break; 68 68 69 69 case ThermalAnalysisEnum: 70 CreateNodesThermal(pnodes, iomodel ,iomodel_handle);71 CreateConstraintsThermal(pconstraints,iomodel ,iomodel_handle);72 CreateLoadsThermal(ploads,iomodel ,iomodel_handle);73 UpdateElementsThermal(elements,iomodel, iomodel_handle,analysis_counter,analysis_type);70 CreateNodesThermal(pnodes, iomodel); 71 CreateConstraintsThermal(pconstraints,iomodel); 72 CreateLoadsThermal(ploads,iomodel); 73 UpdateElementsThermal(elements,iomodel,analysis_counter,analysis_type); 74 74 break; 75 75 76 76 case EnthalpyAnalysisEnum: 77 CreateNodesEnthalpy(pnodes, iomodel ,iomodel_handle);78 CreateConstraintsEnthalpy(pconstraints,iomodel ,iomodel_handle);79 CreateLoadsEnthalpy(ploads,iomodel ,iomodel_handle);80 UpdateElementsEnthalpy(elements,iomodel, iomodel_handle,analysis_counter,analysis_type);77 CreateNodesEnthalpy(pnodes, iomodel); 78 CreateConstraintsEnthalpy(pconstraints,iomodel); 79 CreateLoadsEnthalpy(ploads,iomodel); 80 UpdateElementsEnthalpy(elements,iomodel,analysis_counter,analysis_type); 81 81 break; 82 82 83 83 case HydrologyAnalysisEnum: 84 CreateNodesHydrology(pnodes, iomodel ,iomodel_handle);85 CreateConstraintsHydrology(pconstraints,iomodel ,iomodel_handle);86 CreateLoadsHydrology(ploads,iomodel ,iomodel_handle);87 UpdateElementsHydrology(elements,iomodel, iomodel_handle,analysis_counter,analysis_type);84 CreateNodesHydrology(pnodes, iomodel); 85 CreateConstraintsHydrology(pconstraints,iomodel); 86 CreateLoadsHydrology(ploads,iomodel); 87 UpdateElementsHydrology(elements,iomodel,analysis_counter,analysis_type); 88 88 break; 89 89 90 90 case MeltingAnalysisEnum: 91 CreateNodesMelting(pnodes, iomodel ,iomodel_handle);92 CreateConstraintsMelting(pconstraints,iomodel ,iomodel_handle);93 CreateLoadsMelting(ploads,iomodel ,iomodel_handle);94 UpdateElementsMelting(elements,iomodel, iomodel_handle,analysis_counter,analysis_type);91 CreateNodesMelting(pnodes, iomodel); 92 CreateConstraintsMelting(pconstraints,iomodel); 93 CreateLoadsMelting(ploads,iomodel); 94 UpdateElementsMelting(elements,iomodel,analysis_counter,analysis_type); 95 95 break; 96 96 97 97 case PrognosticAnalysisEnum: 98 CreateNodesPrognostic(pnodes, iomodel ,iomodel_handle);99 CreateConstraintsPrognostic(pconstraints,iomodel ,iomodel_handle);100 CreateLoadsPrognostic(ploads,iomodel ,iomodel_handle);101 UpdateElementsPrognostic(elements,iomodel, iomodel_handle,analysis_counter,analysis_type);98 CreateNodesPrognostic(pnodes, iomodel); 99 CreateConstraintsPrognostic(pconstraints,iomodel); 100 CreateLoadsPrognostic(ploads,iomodel); 101 UpdateElementsPrognostic(elements,iomodel,analysis_counter,analysis_type); 102 102 break; 103 103 104 104 case BalancethicknessAnalysisEnum: 105 CreateNodesBalancethickness(pnodes, iomodel ,iomodel_handle);106 CreateConstraintsBalancethickness(pconstraints,iomodel ,iomodel_handle);107 CreateLoadsBalancethickness(ploads,iomodel ,iomodel_handle);108 UpdateElementsBalancethickness(elements,iomodel, iomodel_handle,analysis_counter,analysis_type);105 CreateNodesBalancethickness(pnodes, iomodel); 106 CreateConstraintsBalancethickness(pconstraints,iomodel); 107 CreateLoadsBalancethickness(ploads,iomodel); 108 UpdateElementsBalancethickness(elements,iomodel,analysis_counter,analysis_type); 109 109 break; 110 110 … … 114 114 115 115 /*Update Elements and Materials For Control methods*/ 116 UpdateElementsAndMaterialsControl(elements,materials,iomodel ,iomodel_handle);116 UpdateElementsAndMaterialsControl(elements,materials,iomodel); 117 117 118 118 /*Generate objects that are not dependent on any analysis_type: */ 119 CreateParameters(pparameters,iomodel, iomodel_handle,solution_type,analysis_type,analysis_counter);119 CreateParameters(pparameters,iomodel,solution_type,analysis_type,analysis_counter); 120 120 121 121 /*Update Elements in case we are running a transient solution: */ 122 122 parameters=*pparameters; 123 123 if(analysis_counter==(nummodels-1)&& solution_type==TransientSolutionEnum){ 124 UpdateElementsTransient(elements,parameters,iomodel, iomodel_handle,analysis_counter,analysis_type);124 UpdateElementsTransient(elements,parameters,iomodel,analysis_counter,analysis_type); 125 125 } 126 126 -
issm/trunk/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp
r8983 r9340 13 13 #include "./ModelProcessorx.h" 14 14 15 void CreateElementsVerticesAndMaterials(Elements** pelements,Vertices** pvertices,Materials** pmaterials, IoModel* iomodel, FILE* iomodel_handle,const int nummodels){15 void CreateElementsVerticesAndMaterials(Elements** pelements,Vertices** pvertices,Materials** pmaterials, IoModel* iomodel,const int nummodels){ 16 16 17 17 /*Intermediary*/ … … 32 32 33 33 /*First, partition elements and vertices. Nodes will partitioned on a per analysis_type basis. If partitining already done, ignore: */ 34 ElementsAndVerticesPartitioning(&iomodel->my_elements,&iomodel->my_vertices,iomodel ,iomodel_handle);34 ElementsAndVerticesPartitioning(&iomodel->my_elements,&iomodel->my_vertices,iomodel); 35 35 36 36 /*Fetch data needed: */ 37 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);38 IoModelFetchData(&iomodel->elementconnectivity,NULL,NULL,iomodel_handle,ElementconnectivityEnum);39 IoModelFetchData(&iomodel->upperelements,NULL,NULL,iomodel_handle,UpperelementsEnum);40 IoModelFetchData(&iomodel->lowerelements,NULL,NULL,iomodel_handle,LowerelementsEnum);41 IoModelFetchData(&iomodel->rheology_B,NULL,NULL,iomodel_handle,RheologyBEnum);42 IoModelFetchData(&iomodel->rheology_n,NULL,NULL,iomodel_handle,RheologyNEnum);43 IoModelFetchData(&iomodel->control_type,NULL,NULL,iomodel_handle,ControlTypeEnum);44 IoModelFetchData(&iomodel->cm_min,NULL,NULL,iomodel_handle,CmMinEnum);45 IoModelFetchData(&iomodel->cm_max,NULL,NULL,iomodel_handle,CmMaxEnum);37 iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum); 38 iomodel->FetchData(&iomodel->elementconnectivity,NULL,NULL,ElementconnectivityEnum); 39 iomodel->FetchData(&iomodel->upperelements,NULL,NULL,UpperelementsEnum); 40 iomodel->FetchData(&iomodel->lowerelements,NULL,NULL,LowerelementsEnum); 41 iomodel->FetchData(&iomodel->rheology_B,NULL,NULL,RheologyBEnum); 42 iomodel->FetchData(&iomodel->rheology_n,NULL,NULL,RheologyNEnum); 43 iomodel->FetchData(&iomodel->control_type,NULL,NULL,ControlTypeEnum); 44 iomodel->FetchData(&iomodel->cm_min,NULL,NULL,CmMinEnum); 45 iomodel->FetchData(&iomodel->cm_max,NULL,NULL,CmMaxEnum); 46 46 47 47 /*Create elements and materials: */ … … 76 76 77 77 /*Create vertices: */ 78 IoModelFetchData(&iomodel->x,NULL,NULL,iomodel_handle,XEnum);79 IoModelFetchData(&iomodel->y,NULL,NULL,iomodel_handle,YEnum);80 IoModelFetchData(&iomodel->z,NULL,NULL,iomodel_handle,ZEnum);81 IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,BedEnum);82 IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,ThicknessEnum);78 iomodel->FetchData(&iomodel->x,NULL,NULL,XEnum); 79 iomodel->FetchData(&iomodel->y,NULL,NULL,YEnum); 80 iomodel->FetchData(&iomodel->z,NULL,NULL,ZEnum); 81 iomodel->FetchData(&iomodel->bed,NULL,NULL,BedEnum); 82 iomodel->FetchData(&iomodel->thickness,NULL,NULL,ThicknessEnum); 83 83 84 84 for (i=0;i<iomodel->numberofvertices;i++){ -
issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp
r9113 r9340 12 12 #include "./ModelProcessorx.h" 13 13 14 void CreateParameters(Parameters** pparameters,IoModel* iomodel, FILE* iomodel_handle,const int solution_type,int analysis_type,int analysis_counter){14 void CreateParameters(Parameters** pparameters,IoModel* iomodel,const int solution_type,int analysis_type,int analysis_counter){ 15 15 16 16 int i; … … 77 77 78 78 /*Deal with more complex parameters*/ 79 IoModelFetchData(&iomodel->riftinfo,&iomodel->numrifts,NULL,iomodel_handle,RiftinfoEnum);79 iomodel->FetchData(&iomodel->riftinfo,&iomodel->numrifts,NULL,RiftinfoEnum); 80 80 parameters->AddObject(new IntParam(NumRiftsEnum,iomodel->numrifts)); 81 81 xfree((void**)&iomodel->riftinfo); … … 83 83 84 84 /*Requested output?*/ 85 IoModelFetchData(&requestedoutputs,&numoutputs,NULL,iomodel_handle,RequestedOutputsEnum);85 iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,RequestedOutputsEnum); 86 86 parameters->AddObject(new IntParam(NumRequestedOutputsEnum,numoutputs)); 87 87 if(numoutputs)parameters->AddObject(new IntVecParam(RequestedOutputsEnum,requestedoutputs,numoutputs)); … … 89 89 90 90 /*Before returning, create parameters in case we are running Qmu or control types runs: */ 91 CreateParametersControl(¶meters,iomodel, iomodel_handle,solution_type,analysis_type);92 CreateParametersQmu(¶meters,iomodel, iomodel_handle,solution_type,analysis_type);91 CreateParametersControl(¶meters,iomodel,solution_type,analysis_type); 92 CreateParametersQmu(¶meters,iomodel,solution_type,analysis_type); 93 93 94 94 /*Assign output pointer: */ -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp
r9298 r9340 11 11 #include "../ModelProcessorx.h" 12 12 13 void CreateConstraintsDiagnosticHoriz(Constraints** pconstraints, IoModel* iomodel ,FILE* iomodel_handle){13 void CreateConstraintsDiagnosticHoriz(Constraints** pconstraints, IoModel* iomodel){ 14 14 15 15 /*Intermediary*/ … … 32 32 33 33 /*Constraints: fetch data: */ 34 IoModelFetchData(&iomodel->spcvx,NULL,NULL,iomodel_handle,SpcvxEnum);35 IoModelFetchData(&iomodel->spcvy,NULL,NULL,iomodel_handle,SpcvyEnum);36 IoModelFetchData(&iomodel->spcvz,NULL,NULL,iomodel_handle,SpcvzEnum);37 IoModelFetchData(&iomodel->nodeonhutter,NULL,NULL,iomodel_handle,NodeOnHutterEnum);38 IoModelFetchData(&iomodel->nodeonmacayeal,NULL,NULL,iomodel_handle,NodeOnMacayealEnum);39 if(iomodel->dim==3) IoModelFetchData(&iomodel->nodeonpattyn,NULL,NULL,iomodel_handle,NodeOnPattynEnum);40 if(iomodel->dim==3) IoModelFetchData(&iomodel->nodeonstokes,NULL,NULL,iomodel_handle,NodeOnStokesEnum);41 IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,VerticesTypeEnum);42 IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,SurfaceEnum);43 IoModelFetchData(&iomodel->z,NULL,NULL,iomodel_handle,ZEnum);34 iomodel->FetchData(&iomodel->spcvx,NULL,NULL,SpcvxEnum); 35 iomodel->FetchData(&iomodel->spcvy,NULL,NULL,SpcvyEnum); 36 iomodel->FetchData(&iomodel->spcvz,NULL,NULL,SpcvzEnum); 37 iomodel->FetchData(&iomodel->nodeonhutter,NULL,NULL,NodeOnHutterEnum); 38 iomodel->FetchData(&iomodel->nodeonmacayeal,NULL,NULL,NodeOnMacayealEnum); 39 if(iomodel->dim==3)iomodel->FetchData(&iomodel->nodeonpattyn,NULL,NULL,NodeOnPattynEnum); 40 if(iomodel->dim==3)iomodel->FetchData(&iomodel->nodeonstokes,NULL,NULL,NodeOnStokesEnum); 41 iomodel->FetchData(&iomodel->vertices_type,NULL,NULL,VerticesTypeEnum); 42 iomodel->FetchData(&iomodel->surface,NULL,NULL,SurfaceEnum); 43 iomodel->FetchData(&iomodel->z,NULL,NULL,ZEnum); 44 44 45 45 /*Initialize counter: */ -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp
r8926 r9340 11 11 #include "../ModelProcessorx.h" 12 12 13 void CreateLoadsDiagnosticHoriz(Loads** ploads, IoModel* iomodel ,FILE* iomodel_handle){13 void CreateLoadsDiagnosticHoriz(Loads** ploads, IoModel* iomodel){ 14 14 15 15 /*DataSets*/ … … 37 37 /*Create pressure loads as boundary conditions. Pay attention to the partitioning if we are running in parallel (the nodes 38 38 * referenced by a certain load must belong to the cluster node): */ 39 IoModelFetchData(&iomodel->pressureload,&iomodel->numberofpressureloads,NULL,iomodel_handle,PressureloadEnum);40 IoModelFetchData(&iomodel->elements_type,NULL,NULL,iomodel_handle,ElementsTypeEnum);41 IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,ThicknessEnum);42 IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,BedEnum);39 iomodel->FetchData(&iomodel->pressureload,&iomodel->numberofpressureloads,NULL,PressureloadEnum); 40 iomodel->FetchData(&iomodel->elements_type,NULL,NULL,ElementsTypeEnum); 41 iomodel->FetchData(&iomodel->thickness,NULL,NULL,ThicknessEnum); 42 iomodel->FetchData(&iomodel->bed,NULL,NULL,BedEnum); 43 43 44 44 /*Initialize counter: */ … … 103 103 104 104 /*create penalties for nodes on the base of icesheet. We must have wb=ub*db/dx+vb*db/dy */ 105 IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);106 IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,NodeOnIceSheetEnum);107 IoModelFetchData(&iomodel->nodeonstokes,NULL,NULL,iomodel_handle,NodeOnStokesEnum);108 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);109 IoModelFetchData(&iomodel->spcvx,NULL,NULL,iomodel_handle,SpcvxEnum);110 IoModelFetchData(&iomodel->spcvy,NULL,NULL,iomodel_handle,SpcvyEnum);111 IoModelFetchData(&iomodel->spcvz,NULL,NULL,iomodel_handle,SpcvzEnum);112 IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,VerticesTypeEnum);105 iomodel->FetchData(&iomodel->nodeonbed,NULL,NULL,NodeOnBedEnum); 106 iomodel->FetchData(&iomodel->nodeonicesheet,NULL,NULL,NodeOnIceSheetEnum); 107 iomodel->FetchData(&iomodel->nodeonstokes,NULL,NULL,NodeOnStokesEnum); 108 iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum); 109 iomodel->FetchData(&iomodel->spcvx,NULL,NULL,SpcvxEnum); 110 iomodel->FetchData(&iomodel->spcvy,NULL,NULL,SpcvyEnum); 111 iomodel->FetchData(&iomodel->spcvz,NULL,NULL,SpcvzEnum); 112 iomodel->FetchData(&iomodel->vertices_type,NULL,NULL,VerticesTypeEnum); 113 113 CreateSingleNodeToElementConnectivity(iomodel); 114 114 … … 137 137 138 138 /*Create Penpair for penalties: */ 139 IoModelFetchData(&iomodel->penalties,&iomodel->numpenalties,NULL,iomodel_handle,PenaltiesEnum);139 iomodel->FetchData(&iomodel->penalties,&iomodel->numpenalties,NULL,PenaltiesEnum); 140 140 141 141 for(i=0;i<iomodel->numpenalties;i++){ … … 160 160 161 161 /*Create Riffront loads for rifts: */ 162 IoModelFetchData(&iomodel->riftinfo,&iomodel->numrifts,NULL,iomodel_handle,RiftinfoEnum);163 IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,ThicknessEnum);164 IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,BedEnum);165 IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,SurfaceEnum);166 IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,NodeOnIceShelfEnum);162 iomodel->FetchData(&iomodel->riftinfo,&iomodel->numrifts,NULL,RiftinfoEnum); 163 iomodel->FetchData(&iomodel->thickness,NULL,NULL,ThicknessEnum); 164 iomodel->FetchData(&iomodel->bed,NULL,NULL,BedEnum); 165 iomodel->FetchData(&iomodel->surface,NULL,NULL,SurfaceEnum); 166 iomodel->FetchData(&iomodel->nodeoniceshelf,NULL,NULL,NodeOnIceShelfEnum); 167 167 168 168 -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp
r8926 r9340 13 13 #include "../ModelProcessorx.h" 14 14 15 void CreateNodesDiagnosticHoriz(Nodes** pnodes, IoModel* iomodel ,FILE* iomodel_handle){15 void CreateNodesDiagnosticHoriz(Nodes** pnodes, IoModel* iomodel){ 16 16 17 17 /*Intermediary*/ … … 32 32 33 33 /*Continuous Galerkin partition of nodes: */ 34 NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel, iomodel_handle,continuous_galerkin);34 NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel,continuous_galerkin); 35 35 36 36 /*Create nodes: */ 37 IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);38 IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,NodeOnSurfaceEnum);39 IoModelFetchData(&iomodel->nodeonhutter,NULL,NULL,iomodel_handle,NodeOnHutterEnum);40 IoModelFetchData(&iomodel->nodeonmacayeal,NULL,NULL,iomodel_handle,NodeOnMacayealEnum);41 IoModelFetchData(&iomodel->nodeonstokes,NULL,NULL,iomodel_handle,NodeOnStokesEnum);42 IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,NodeOnIceSheetEnum);43 IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,NodeOnIceShelfEnum);44 IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,NodeOnWaterEnum);45 IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,VerticesTypeEnum);46 IoModelFetchData(&iomodel->diagnostic_ref,NULL,NULL,iomodel_handle,DiagnosticRefEnum);37 iomodel->FetchData(&iomodel->nodeonbed,NULL,NULL,NodeOnBedEnum); 38 iomodel->FetchData(&iomodel->nodeonsurface,NULL,NULL,NodeOnSurfaceEnum); 39 iomodel->FetchData(&iomodel->nodeonhutter,NULL,NULL,NodeOnHutterEnum); 40 iomodel->FetchData(&iomodel->nodeonmacayeal,NULL,NULL,NodeOnMacayealEnum); 41 iomodel->FetchData(&iomodel->nodeonstokes,NULL,NULL,NodeOnStokesEnum); 42 iomodel->FetchData(&iomodel->nodeonicesheet,NULL,NULL,NodeOnIceSheetEnum); 43 iomodel->FetchData(&iomodel->nodeoniceshelf,NULL,NULL,NodeOnIceShelfEnum); 44 iomodel->FetchData(&iomodel->nodeonwater,NULL,NULL,NodeOnWaterEnum); 45 iomodel->FetchData(&iomodel->vertices_type,NULL,NULL,VerticesTypeEnum); 46 iomodel->FetchData(&iomodel->diagnostic_ref,NULL,NULL,DiagnosticRefEnum); 47 47 48 48 for (i=0;i<iomodel->numberofvertices;i++){ -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp
r8985 r9340 14 14 #include "../ModelProcessorx.h" 15 15 16 void UpdateElementsDiagnosticHoriz(Elements* elements, IoModel* iomodel, FILE* iomodel_handle,int analysis_counter,int analysis_type){16 void UpdateElementsDiagnosticHoriz(Elements* elements, IoModel* iomodel,int analysis_counter,int analysis_type){ 17 17 18 18 /*Now, is the flag macayaealpattyn on? otherwise, do nothing: */ … … 20 20 21 21 /*Fetch data needed: */ 22 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);23 IoModelFetchData(&iomodel->elements_type,NULL,NULL,iomodel_handle,ElementsTypeEnum);22 iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum); 23 iomodel->FetchData(&iomodel->elements_type,NULL,NULL,ElementsTypeEnum); 24 24 25 25 /*Update elements: */ … … 34 34 35 35 /*Create inputs: */ 36 IoModelToInputsx(elements,iomodel, iomodel_handle,ThicknessEnum);37 IoModelToInputsx(elements,iomodel, iomodel_handle,ThicknessCoeffEnum);38 IoModelToInputsx(elements,iomodel, iomodel_handle,SurfaceEnum);39 IoModelToInputsx(elements,iomodel, iomodel_handle,BedEnum);40 IoModelToInputsx(elements,iomodel, iomodel_handle,DragCoefficientEnum);41 IoModelToInputsx(elements,iomodel, iomodel_handle,DragPEnum);42 IoModelToInputsx(elements,iomodel, iomodel_handle,DragQEnum);43 IoModelToInputsx(elements,iomodel, iomodel_handle,DragTypeEnum);44 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnIceShelfEnum);45 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnWaterEnum);46 IoModelToInputsx(elements,iomodel, iomodel_handle,RheologyBEnum);47 IoModelToInputsx(elements,iomodel, iomodel_handle,RheologyNEnum);48 IoModelToInputsx(elements,iomodel, iomodel_handle,VxEnum,VxObsEnum,0);49 IoModelToInputsx(elements,iomodel, iomodel_handle,VyEnum,VyObsEnum,0);50 IoModelToInputsx(elements,iomodel, iomodel_handle,BathymetryEnum);36 IoModelToInputsx(elements,iomodel,ThicknessEnum); 37 IoModelToInputsx(elements,iomodel,ThicknessCoeffEnum); 38 IoModelToInputsx(elements,iomodel,SurfaceEnum); 39 IoModelToInputsx(elements,iomodel,BedEnum); 40 IoModelToInputsx(elements,iomodel,DragCoefficientEnum); 41 IoModelToInputsx(elements,iomodel,DragPEnum); 42 IoModelToInputsx(elements,iomodel,DragQEnum); 43 IoModelToInputsx(elements,iomodel,DragTypeEnum); 44 IoModelToInputsx(elements,iomodel,ElementOnIceShelfEnum); 45 IoModelToInputsx(elements,iomodel,ElementOnWaterEnum); 46 IoModelToInputsx(elements,iomodel,RheologyBEnum); 47 IoModelToInputsx(elements,iomodel,RheologyNEnum); 48 IoModelToInputsx(elements,iomodel,VxEnum,VxObsEnum,0); 49 IoModelToInputsx(elements,iomodel,VyEnum,VyObsEnum,0); 50 IoModelToInputsx(elements,iomodel,BathymetryEnum); 51 51 52 52 if (iomodel->dim==3){ 53 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnBedEnum);54 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnSurfaceEnum);55 IoModelToInputsx(elements,iomodel, iomodel_handle,VzEnum);56 IoModelToInputsx(elements,iomodel, iomodel_handle,SurfaceAccumulationRateEnum);57 IoModelToInputsx(elements,iomodel, iomodel_handle,SurfaceAblationRateEnum);58 IoModelToInputsx(elements,iomodel, iomodel_handle,SurfaceMassBalanceEnum);59 IoModelToInputsx(elements,iomodel, iomodel_handle,BasalMeltingRateEnum);60 IoModelToInputsx(elements,iomodel, iomodel_handle,NodeOnStokesEnum);53 IoModelToInputsx(elements,iomodel,ElementOnBedEnum); 54 IoModelToInputsx(elements,iomodel,ElementOnSurfaceEnum); 55 IoModelToInputsx(elements,iomodel,VzEnum); 56 IoModelToInputsx(elements,iomodel,SurfaceAccumulationRateEnum); 57 IoModelToInputsx(elements,iomodel,SurfaceAblationRateEnum); 58 IoModelToInputsx(elements,iomodel,SurfaceMassBalanceEnum); 59 IoModelToInputsx(elements,iomodel,BasalMeltingRateEnum); 60 IoModelToInputsx(elements,iomodel,NodeOnStokesEnum); 61 61 } 62 62 63 63 if(iomodel->control_analysis){ 64 IoModelToInputsx(elements,iomodel, iomodel_handle,VxObsEnum);65 IoModelToInputsx(elements,iomodel, iomodel_handle,VyObsEnum);64 IoModelToInputsx(elements,iomodel,VxObsEnum); 65 IoModelToInputsx(elements,iomodel,VyObsEnum); 66 66 } 67 67 -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp
r9285 r9340 11 11 #include "../ModelProcessorx.h" 12 12 13 void CreateConstraintsDiagnosticHutter(Constraints** pconstraints, IoModel* iomodel ,FILE* iomodel_handle){13 void CreateConstraintsDiagnosticHutter(Constraints** pconstraints, IoModel* iomodel){ 14 14 15 15 /*Intermediary*/ … … 31 31 32 32 /*Fetch data: */ 33 IoModelFetchData(&iomodel->spcvx,NULL,NULL,iomodel_handle,SpcvxEnum);34 IoModelFetchData(&iomodel->spcvy,NULL,NULL,iomodel_handle,SpcvyEnum);35 IoModelFetchData(&iomodel->nodeonhutter,NULL,NULL,iomodel_handle,NodeOnHutterEnum);33 iomodel->FetchData(&iomodel->spcvx,NULL,NULL,SpcvxEnum); 34 iomodel->FetchData(&iomodel->spcvy,NULL,NULL,SpcvyEnum); 35 iomodel->FetchData(&iomodel->nodeonhutter,NULL,NULL,NodeOnHutterEnum); 36 36 37 37 /*Initialize conunter*/ -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateLoadsDiagnosticHutter.cpp
r8330 r9340 11 11 #include "../ModelProcessorx.h" 12 12 13 void CreateLoadsDiagnosticHutter(Loads** ploads, IoModel* iomodel ,FILE* iomodel_handle){13 void CreateLoadsDiagnosticHutter(Loads** ploads, IoModel* iomodel){ 14 14 15 15 /*DataSet*/ -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp
r8926 r9340 13 13 #include "../ModelProcessorx.h" 14 14 15 void CreateNodesDiagnosticHutter(Nodes** pnodes, IoModel* iomodel ,FILE* iomodel_handle){15 void CreateNodesDiagnosticHutter(Nodes** pnodes, IoModel* iomodel){ 16 16 17 17 /*Intermediary*/ … … 32 32 33 33 /*Continuous Galerkin partition of nodes: */ 34 NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel, iomodel_handle,continuous_galerkin);34 NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel,continuous_galerkin); 35 35 36 36 /*First fetch data: */ 37 IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);38 IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,NodeOnSurfaceEnum);39 IoModelFetchData(&iomodel->nodeonhutter,NULL,NULL,iomodel_handle,NodeOnHutterEnum);40 IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,NodeOnIceSheetEnum);41 IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,NodeOnIceShelfEnum);42 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);43 IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,VerticesTypeEnum);44 IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,NodeOnWaterEnum);37 iomodel->FetchData(&iomodel->nodeonbed,NULL,NULL,NodeOnBedEnum); 38 iomodel->FetchData(&iomodel->nodeonsurface,NULL,NULL,NodeOnSurfaceEnum); 39 iomodel->FetchData(&iomodel->nodeonhutter,NULL,NULL,NodeOnHutterEnum); 40 iomodel->FetchData(&iomodel->nodeonicesheet,NULL,NULL,NodeOnIceSheetEnum); 41 iomodel->FetchData(&iomodel->nodeoniceshelf,NULL,NULL,NodeOnIceShelfEnum); 42 iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum); 43 iomodel->FetchData(&iomodel->vertices_type,NULL,NULL,VerticesTypeEnum); 44 iomodel->FetchData(&iomodel->nodeonwater,NULL,NULL,NodeOnWaterEnum); 45 45 46 46 CreateNumberNodeToElementConnectivity(iomodel); -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/UpdateElementsDiagnosticHutter.cpp
r8986 r9340 14 14 #include "../ModelProcessorx.h" 15 15 16 void UpdateElementsDiagnosticHutter(Elements* elements, IoModel* iomodel, FILE* iomodel_handle,int analysis_counter,int analysis_type){16 void UpdateElementsDiagnosticHutter(Elements* elements, IoModel* iomodel,int analysis_counter,int analysis_type){ 17 17 18 18 /*Now, is the flag hutter on? otherwise, do nothing: */ … … 20 20 21 21 /*Fetch data needed: */ 22 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);23 IoModelFetchData(&iomodel->elements_type,NULL,NULL,iomodel_handle,ElementsTypeEnum);22 iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum); 23 iomodel->FetchData(&iomodel->elements_type,NULL,NULL,ElementsTypeEnum); 24 24 25 25 /*Update elements: */ … … 33 33 } 34 34 35 IoModelToInputsx(elements,iomodel, iomodel_handle,NodeOnHutterEnum);36 IoModelToInputsx(elements,iomodel, iomodel_handle,ThicknessEnum);37 IoModelToInputsx(elements,iomodel, iomodel_handle,ThicknessCoeffEnum);35 IoModelToInputsx(elements,iomodel,NodeOnHutterEnum); 36 IoModelToInputsx(elements,iomodel,ThicknessEnum); 37 IoModelToInputsx(elements,iomodel,ThicknessCoeffEnum); 38 38 39 39 /*Free data: */ -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp
r9285 r9340 11 11 #include "../ModelProcessorx.h" 12 12 13 void CreateConstraintsDiagnosticVert(Constraints** pconstraints, IoModel* iomodel ,FILE* iomodel_handle){13 void CreateConstraintsDiagnosticVert(Constraints** pconstraints, IoModel* iomodel){ 14 14 15 15 /*Intermediary*/ … … 30 30 31 31 /*Fetch data: */ 32 IoModelFetchData(&iomodel->spcvz,NULL,NULL,iomodel_handle,SpcvzEnum);33 IoModelFetchData(&iomodel->nodeonstokes,NULL,NULL,iomodel_handle,NodeOnStokesEnum);32 iomodel->FetchData(&iomodel->spcvz,NULL,NULL,SpcvzEnum); 33 iomodel->FetchData(&iomodel->nodeonstokes,NULL,NULL,NodeOnStokesEnum); 34 34 35 35 /*Initialize counter*/ -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateLoadsDiagnosticVert.cpp
r8330 r9340 11 11 #include "../ModelProcessorx.h" 12 12 13 void CreateLoadsDiagnosticVert(Loads** ploads, IoModel* iomodel ,FILE* iomodel_handle){13 void CreateLoadsDiagnosticVert(Loads** ploads, IoModel* iomodel){ 14 14 15 15 /*DataSet*/ -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateNodesDiagnosticVert.cpp
r8926 r9340 13 13 #include "../ModelProcessorx.h" 14 14 15 void CreateNodesDiagnosticVert(Nodes** pnodes, IoModel* iomodel ,FILE* iomodel_handle){15 void CreateNodesDiagnosticVert(Nodes** pnodes, IoModel* iomodel){ 16 16 17 17 /*Intermediary*/ … … 32 32 33 33 /*Continuous Galerkin partition of nodes: */ 34 NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel, iomodel_handle,continuous_galerkin);34 NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel,continuous_galerkin); 35 35 36 36 /*First fetch data: */ 37 IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);38 IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,NodeOnSurfaceEnum);39 IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,NodeOnIceSheetEnum);40 IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,NodeOnIceShelfEnum);41 IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,VerticesTypeEnum);42 IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,NodeOnWaterEnum);37 iomodel->FetchData(&iomodel->nodeonbed,NULL,NULL,NodeOnBedEnum); 38 iomodel->FetchData(&iomodel->nodeonsurface,NULL,NULL,NodeOnSurfaceEnum); 39 iomodel->FetchData(&iomodel->nodeonicesheet,NULL,NULL,NodeOnIceSheetEnum); 40 iomodel->FetchData(&iomodel->nodeoniceshelf,NULL,NULL,NodeOnIceShelfEnum); 41 iomodel->FetchData(&iomodel->vertices_type,NULL,NULL,VerticesTypeEnum); 42 iomodel->FetchData(&iomodel->nodeonwater,NULL,NULL,NodeOnWaterEnum); 43 43 44 44 for (i=0;i<iomodel->numberofvertices;i++){ -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/UpdateElementsDiagnosticVert.cpp
r8985 r9340 14 14 #include "../ModelProcessorx.h" 15 15 16 void UpdateElementsDiagnosticVert(Elements* elements, IoModel* iomodel, FILE* iomodel_handle,int analysis_counter,int analysis_type){16 void UpdateElementsDiagnosticVert(Elements* elements, IoModel* iomodel,int analysis_counter,int analysis_type){ 17 17 18 18 /*Now, is the model 3d? otherwise, do nothing: */ … … 20 20 21 21 /*Fetch data needed: */ 22 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);22 iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum); 23 23 24 24 /*Update elements: */ … … 32 32 } 33 33 34 IoModelToInputsx(elements,iomodel, iomodel_handle,ThicknessEnum);35 IoModelToInputsx(elements,iomodel, iomodel_handle,ThicknessCoeffEnum);36 IoModelToInputsx(elements,iomodel, iomodel_handle,SurfaceEnum);37 IoModelToInputsx(elements,iomodel, iomodel_handle,BedEnum);38 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnIceShelfEnum);39 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnBedEnum);40 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnSurfaceEnum);41 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnWaterEnum);42 IoModelToInputsx(elements,iomodel, iomodel_handle,BasalMeltingRateEnum);43 IoModelToInputsx(elements,iomodel, iomodel_handle,SurfaceAccumulationRateEnum);44 IoModelToInputsx(elements,iomodel, iomodel_handle,SurfaceAblationRateEnum);45 IoModelToInputsx(elements,iomodel, iomodel_handle,SurfaceMassBalanceEnum);46 IoModelToInputsx(elements,iomodel, iomodel_handle,VxEnum);47 IoModelToInputsx(elements,iomodel, iomodel_handle,VyEnum);34 IoModelToInputsx(elements,iomodel,ThicknessEnum); 35 IoModelToInputsx(elements,iomodel,ThicknessCoeffEnum); 36 IoModelToInputsx(elements,iomodel,SurfaceEnum); 37 IoModelToInputsx(elements,iomodel,BedEnum); 38 IoModelToInputsx(elements,iomodel,ElementOnIceShelfEnum); 39 IoModelToInputsx(elements,iomodel,ElementOnBedEnum); 40 IoModelToInputsx(elements,iomodel,ElementOnSurfaceEnum); 41 IoModelToInputsx(elements,iomodel,ElementOnWaterEnum); 42 IoModelToInputsx(elements,iomodel,BasalMeltingRateEnum); 43 IoModelToInputsx(elements,iomodel,SurfaceAccumulationRateEnum); 44 IoModelToInputsx(elements,iomodel,SurfaceAblationRateEnum); 45 IoModelToInputsx(elements,iomodel,SurfaceMassBalanceEnum); 46 IoModelToInputsx(elements,iomodel,VxEnum); 47 IoModelToInputsx(elements,iomodel,VyEnum); 48 48 49 49 /*Free data: */ -
issm/trunk/src/c/modules/ModelProcessorx/ElementsAndVerticesPartitioning.cpp
r9320 r9340 18 18 #include "../ModelProcessorx/ModelProcessorx.h" 19 19 20 void ElementsAndVerticesPartitioning(bool** pmy_elements, int** pmy_vertices, IoModel* iomodel , FILE* iomodel_handle){20 void ElementsAndVerticesPartitioning(bool** pmy_elements, int** pmy_vertices, IoModel* iomodel){ 21 21 22 22 int i; … … 46 46 if(iomodel->dim==2){ 47 47 /*load elements: */ 48 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);48 iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum); 49 49 } 50 50 else{ 51 51 /*load elements2d: */ 52 IoModelFetchData(&iomodel->elements2d,NULL,NULL,iomodel_handle,Elements2DEnum);52 iomodel->FetchData(&iomodel->elements2d,NULL,NULL,Elements2DEnum); 53 53 } 54 54 … … 65 65 66 66 /*Deal with rifts, they have to be included into one partition only, not several: */ 67 IoModelFetchData(&iomodel->riftinfo,&iomodel->numrifts,NULL,iomodel_handle,RiftinfoEnum);67 iomodel->FetchData(&iomodel->riftinfo,&iomodel->numrifts,NULL,RiftinfoEnum); 68 68 69 69 for(i=0;i<iomodel->numrifts;i++){ … … 81 81 82 82 /*Start figuring out, out of the partition, which elements belong to this cpu: */ 83 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);83 iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum); 84 84 for (i=0;i<iomodel->numberofelements;i++){ 85 85 … … 110 110 * penpair has 2 nodes that are poointing toward 2 vertices. 111 111 * The 2 vertices must be in the same cpu as the penpair*/ 112 IoModelFetchData(&iomodel->penalties,&iomodel->numpenalties,NULL,iomodel_handle,PenaltiesEnum);112 iomodel->FetchData(&iomodel->penalties,&iomodel->numpenalties,NULL,PenaltiesEnum); 113 113 for(i=0;i<iomodel->numpenalties;i++){ 114 114 if(my_vertices[(int)iomodel->penalties[2*i+0]-1] && !my_vertices[(int)iomodel->penalties[2*i+1]-1]){ -
issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/CreateConstraintsEnthalpy.cpp
r9285 r9340 11 11 #include "../ModelProcessorx.h" 12 12 13 void CreateConstraintsEnthalpy(Constraints** pconstraints, IoModel* iomodel ,FILE* iomodel_handle){13 void CreateConstraintsEnthalpy(Constraints** pconstraints, IoModel* iomodel){ 14 14 15 15 /*Intermediary*/ … … 31 31 32 32 /*Fetch data: */ 33 IoModelFetchData(&iomodel->spctemperature,NULL,NULL,iomodel_handle,SpctemperatureEnum);33 iomodel->FetchData(&iomodel->spctemperature,NULL,NULL,SpctemperatureEnum); 34 34 35 35 /*Initialize counter*/ -
issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/CreateLoadsEnthalpy.cpp
r8483 r9340 11 11 #include "../ModelProcessorx.h" 12 12 13 void CreateLoadsEnthalpy(Loads** ploads, IoModel* iomodel ,FILE* iomodel_handle){13 void CreateLoadsEnthalpy(Loads** ploads, IoModel* iomodel){ 14 14 15 15 /*DataSet*/ -
issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/CreateNodesEnthalpy.cpp
r8926 r9340 13 13 #include "../ModelProcessorx.h" 14 14 15 void CreateNodesEnthalpy(Nodes** pnodes, IoModel* iomodel ,FILE* iomodel_handle){15 void CreateNodesEnthalpy(Nodes** pnodes, IoModel* iomodel){ 16 16 17 17 /*Intermediary*/ … … 29 29 30 30 /*Continuous Galerkin partition of nodes: */ 31 NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel, iomodel_handle,continuous_galerkin);31 NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel,continuous_galerkin); 32 32 33 33 /*Create nodes and vertices: */ 34 IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);35 IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,NodeOnSurfaceEnum);36 IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,NodeOnIceSheetEnum);37 IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,NodeOnIceShelfEnum);38 IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,VerticesTypeEnum);39 IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,NodeOnWaterEnum);34 iomodel->FetchData(&iomodel->nodeonbed,NULL,NULL,NodeOnBedEnum); 35 iomodel->FetchData(&iomodel->nodeonsurface,NULL,NULL,NodeOnSurfaceEnum); 36 iomodel->FetchData(&iomodel->nodeonicesheet,NULL,NULL,NodeOnIceSheetEnum); 37 iomodel->FetchData(&iomodel->nodeoniceshelf,NULL,NULL,NodeOnIceShelfEnum); 38 iomodel->FetchData(&iomodel->vertices_type,NULL,NULL,VerticesTypeEnum); 39 iomodel->FetchData(&iomodel->nodeonwater,NULL,NULL,NodeOnWaterEnum); 40 40 41 41 for (i=0;i<iomodel->numberofvertices;i++){ -
issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/UpdateElementsEnthalpy.cpp
r8985 r9340 14 14 #include "../ModelProcessorx.h" 15 15 16 void UpdateElementsEnthalpy(Elements* elements, IoModel* iomodel, FILE* iomodel_handle,int analysis_counter,int analysis_type){16 void UpdateElementsEnthalpy(Elements* elements, IoModel* iomodel,int analysis_counter,int analysis_type){ 17 17 18 18 /*Now, is the model 3d? otherwise, do nothing: */ … … 20 20 21 21 /*Fetch data needed: */ 22 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);22 iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum); 23 23 24 24 /*Update elements: */ … … 32 32 } 33 33 34 IoModelToInputsx(elements,iomodel, iomodel_handle,ThicknessEnum);35 IoModelToInputsx(elements,iomodel, iomodel_handle,SurfaceEnum);36 IoModelToInputsx(elements,iomodel, iomodel_handle,BedEnum);37 IoModelToInputsx(elements,iomodel, iomodel_handle,DragCoefficientEnum);38 IoModelToInputsx(elements,iomodel, iomodel_handle,DragPEnum);39 IoModelToInputsx(elements,iomodel, iomodel_handle,DragQEnum);40 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnIceShelfEnum);41 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnBedEnum);42 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnSurfaceEnum);43 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnWaterEnum);44 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementsTypeEnum);45 IoModelToInputsx(elements,iomodel, iomodel_handle,RheologyBEnum);46 IoModelToInputsx(elements,iomodel, iomodel_handle,RheologyNEnum);47 IoModelToInputsx(elements,iomodel, iomodel_handle,PressureEnum);48 IoModelToInputsx(elements,iomodel, iomodel_handle,TemperatureEnum);49 IoModelToInputsx(elements,iomodel, iomodel_handle,WaterfractionEnum);50 IoModelToInputsx(elements,iomodel, iomodel_handle,GeothermalfluxEnum);51 IoModelToInputsx(elements,iomodel, iomodel_handle,VxEnum);52 IoModelToInputsx(elements,iomodel, iomodel_handle,VyEnum);53 IoModelToInputsx(elements,iomodel, iomodel_handle,VzEnum);34 IoModelToInputsx(elements,iomodel,ThicknessEnum); 35 IoModelToInputsx(elements,iomodel,SurfaceEnum); 36 IoModelToInputsx(elements,iomodel,BedEnum); 37 IoModelToInputsx(elements,iomodel,DragCoefficientEnum); 38 IoModelToInputsx(elements,iomodel,DragPEnum); 39 IoModelToInputsx(elements,iomodel,DragQEnum); 40 IoModelToInputsx(elements,iomodel,ElementOnIceShelfEnum); 41 IoModelToInputsx(elements,iomodel,ElementOnBedEnum); 42 IoModelToInputsx(elements,iomodel,ElementOnSurfaceEnum); 43 IoModelToInputsx(elements,iomodel,ElementOnWaterEnum); 44 IoModelToInputsx(elements,iomodel,ElementsTypeEnum); 45 IoModelToInputsx(elements,iomodel,RheologyBEnum); 46 IoModelToInputsx(elements,iomodel,RheologyNEnum); 47 IoModelToInputsx(elements,iomodel,PressureEnum); 48 IoModelToInputsx(elements,iomodel,TemperatureEnum); 49 IoModelToInputsx(elements,iomodel,WaterfractionEnum); 50 IoModelToInputsx(elements,iomodel,GeothermalfluxEnum); 51 IoModelToInputsx(elements,iomodel,VxEnum); 52 IoModelToInputsx(elements,iomodel,VyEnum); 53 IoModelToInputsx(elements,iomodel,VzEnum); 54 54 55 55 /*Free data: */ -
issm/trunk/src/c/modules/ModelProcessorx/Hydrology/CreateConstraintsHydrology.cpp
r9271 r9340 12 12 #include "../ModelProcessorx.h" 13 13 14 void CreateConstraintsHydrology(Constraints** pconstraints, IoModel* iomodel ,FILE* iomodel_handle){14 void CreateConstraintsHydrology(Constraints** pconstraints, IoModel* iomodel){ 15 15 16 16 /*Output*/ … … 22 22 /*Create constraints if they do not exist yet*/ 23 23 if(!constraints) constraints = new Constraints(ConstraintsEnum); 24 IoModelToConstraintsx(constraints,iomodel, iomodel_handle,SpcwatercolumnEnum,HydrologyAnalysisEnum);24 IoModelToConstraintsx(constraints,iomodel,SpcwatercolumnEnum,HydrologyAnalysisEnum); 25 25 26 26 /*Assign output pointer: */ -
issm/trunk/src/c/modules/ModelProcessorx/Hydrology/CreateLoadsHydrology.cpp
r8330 r9340 11 11 #include "../ModelProcessorx.h" 12 12 13 void CreateLoadsHydrology(Loads** ploads, IoModel* iomodel ,FILE* iomodel_handle){13 void CreateLoadsHydrology(Loads** ploads, IoModel* iomodel){ 14 14 15 15 /*Intermediary*/ -
issm/trunk/src/c/modules/ModelProcessorx/Hydrology/CreateNodesHydrology.cpp
r8926 r9340 13 13 #include "../ModelProcessorx.h" 14 14 15 void CreateNodesHydrology(Nodes** pnodes, IoModel* iomodel ,FILE* iomodel_handle){15 void CreateNodesHydrology(Nodes** pnodes, IoModel* iomodel){ 16 16 17 17 /*Intermediary*/ … … 29 29 30 30 /*Continuous Galerkin partition of nodes: */ 31 NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel, iomodel_handle,continuous_galerkin);31 NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel,continuous_galerkin); 32 32 33 33 /*Create nodes and vertices: */ 34 IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);35 IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,NodeOnSurfaceEnum);36 IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,NodeOnIceSheetEnum);37 IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,NodeOnIceShelfEnum);38 IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,VerticesTypeEnum);39 IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,NodeOnWaterEnum);34 iomodel->FetchData(&iomodel->nodeonbed,NULL,NULL,NodeOnBedEnum); 35 iomodel->FetchData(&iomodel->nodeonsurface,NULL,NULL,NodeOnSurfaceEnum); 36 iomodel->FetchData(&iomodel->nodeonicesheet,NULL,NULL,NodeOnIceSheetEnum); 37 iomodel->FetchData(&iomodel->nodeoniceshelf,NULL,NULL,NodeOnIceShelfEnum); 38 iomodel->FetchData(&iomodel->vertices_type,NULL,NULL,VerticesTypeEnum); 39 iomodel->FetchData(&iomodel->nodeonwater,NULL,NULL,NodeOnWaterEnum); 40 40 41 41 for (i=0;i<iomodel->numberofvertices;i++){ -
issm/trunk/src/c/modules/ModelProcessorx/Hydrology/UpdateElementsHydrology.cpp
r9291 r9340 14 14 #include "../ModelProcessorx.h" 15 15 16 void UpdateElementsHydrology(Elements* elements, IoModel* iomodel, FILE* iomodel_handle,int analysis_counter,int analysis_type){16 void UpdateElementsHydrology(Elements* elements, IoModel* iomodel,int analysis_counter,int analysis_type){ 17 17 18 18 /*Fetch data needed: */ 19 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);19 iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum); 20 20 21 21 /*Update elements: */ … … 29 29 } 30 30 31 IoModelToInputsx(elements,iomodel, iomodel_handle,ThicknessEnum);32 IoModelToInputsx(elements,iomodel, iomodel_handle,SurfaceEnum);33 IoModelToInputsx(elements,iomodel, iomodel_handle,BedEnum);34 IoModelToInputsx(elements,iomodel, iomodel_handle,DragCoefficientEnum);35 IoModelToInputsx(elements,iomodel, iomodel_handle,DragPEnum);36 IoModelToInputsx(elements,iomodel, iomodel_handle,DragQEnum);37 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnIceShelfEnum);38 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnBedEnum);39 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnSurfaceEnum);40 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnWaterEnum);41 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementsTypeEnum);42 IoModelToInputsx(elements,iomodel, iomodel_handle,RheologyBEnum);43 IoModelToInputsx(elements,iomodel, iomodel_handle,RheologyNEnum);44 IoModelToInputsx(elements,iomodel, iomodel_handle,PressureEnum);45 IoModelToInputsx(elements,iomodel, iomodel_handle,TemperatureEnum);46 IoModelToInputsx(elements,iomodel, iomodel_handle,BasalMeltingRateEnum);47 IoModelToInputsx(elements,iomodel, iomodel_handle,WatercolumnEnum);48 IoModelToInputsx(elements,iomodel, iomodel_handle,GeothermalfluxEnum);49 IoModelToInputsx(elements,iomodel, iomodel_handle,VxEnum);50 IoModelToInputsx(elements,iomodel, iomodel_handle,VyEnum);51 IoModelToInputsx(elements,iomodel, iomodel_handle,VzEnum);31 IoModelToInputsx(elements,iomodel,ThicknessEnum); 32 IoModelToInputsx(elements,iomodel,SurfaceEnum); 33 IoModelToInputsx(elements,iomodel,BedEnum); 34 IoModelToInputsx(elements,iomodel,DragCoefficientEnum); 35 IoModelToInputsx(elements,iomodel,DragPEnum); 36 IoModelToInputsx(elements,iomodel,DragQEnum); 37 IoModelToInputsx(elements,iomodel,ElementOnIceShelfEnum); 38 IoModelToInputsx(elements,iomodel,ElementOnBedEnum); 39 IoModelToInputsx(elements,iomodel,ElementOnSurfaceEnum); 40 IoModelToInputsx(elements,iomodel,ElementOnWaterEnum); 41 IoModelToInputsx(elements,iomodel,ElementsTypeEnum); 42 IoModelToInputsx(elements,iomodel,RheologyBEnum); 43 IoModelToInputsx(elements,iomodel,RheologyNEnum); 44 IoModelToInputsx(elements,iomodel,PressureEnum); 45 IoModelToInputsx(elements,iomodel,TemperatureEnum); 46 IoModelToInputsx(elements,iomodel,BasalMeltingRateEnum); 47 IoModelToInputsx(elements,iomodel,WatercolumnEnum); 48 IoModelToInputsx(elements,iomodel,GeothermalfluxEnum); 49 IoModelToInputsx(elements,iomodel,VxEnum); 50 IoModelToInputsx(elements,iomodel,VyEnum); 51 IoModelToInputsx(elements,iomodel,VzEnum); 52 52 53 53 elements->InputDuplicate(WatercolumnEnum,WaterColumnOldEnum); -
issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateConstraintsMelting.cpp
r8330 r9340 11 11 #include "../ModelProcessorx.h" 12 12 13 void CreateConstraintsMelting(Constraints** pconstraints, IoModel* iomodel ,FILE* iomodel_handle){13 void CreateConstraintsMelting(Constraints** pconstraints, IoModel* iomodel){ 14 14 15 15 /*Intermediary*/ -
issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateLoadsMelting.cpp
r8926 r9340 11 11 #include "../ModelProcessorx.h" 12 12 13 void CreateLoadsMelting(Loads** ploads, IoModel* iomodel ,FILE* iomodel_handle){13 void CreateLoadsMelting(Loads** ploads, IoModel* iomodel){ 14 14 15 15 /*Intermediary*/ … … 29 29 30 30 //create penalties for nodes: no node can have a temperature over the melting point 31 IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);32 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);31 iomodel->FetchData(&iomodel->nodeonbed,NULL,NULL,NodeOnBedEnum); 32 iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum); 33 33 CreateSingleNodeToElementConnectivity(iomodel); 34 34 -
issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateNodesMelting.cpp
r8926 r9340 13 13 #include "../ModelProcessorx.h" 14 14 15 void CreateNodesMelting(Nodes** pnodes, IoModel* iomodel ,FILE* iomodel_handle){15 void CreateNodesMelting(Nodes** pnodes, IoModel* iomodel){ 16 16 17 17 /*Intermediary*/ … … 29 29 30 30 /*Continuous Galerkin partition of nodes: */ 31 NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel, iomodel_handle,continuous_galerkin);31 NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel,continuous_galerkin); 32 32 33 33 /*First fetch data: */ 34 IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);35 IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,NodeOnSurfaceEnum);36 IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,NodeOnIceSheetEnum);37 IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,NodeOnIceShelfEnum);38 IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,VerticesTypeEnum);39 IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,NodeOnWaterEnum);34 iomodel->FetchData(&iomodel->nodeonbed,NULL,NULL,NodeOnBedEnum); 35 iomodel->FetchData(&iomodel->nodeonsurface,NULL,NULL,NodeOnSurfaceEnum); 36 iomodel->FetchData(&iomodel->nodeonicesheet,NULL,NULL,NodeOnIceSheetEnum); 37 iomodel->FetchData(&iomodel->nodeoniceshelf,NULL,NULL,NodeOnIceShelfEnum); 38 iomodel->FetchData(&iomodel->vertices_type,NULL,NULL,VerticesTypeEnum); 39 iomodel->FetchData(&iomodel->nodeonwater,NULL,NULL,NodeOnWaterEnum); 40 40 41 41 for (i=0;i<iomodel->numberofvertices;i++){ -
issm/trunk/src/c/modules/ModelProcessorx/Melting/UpdateElementsMelting.cpp
r8985 r9340 14 14 #include "../ModelProcessorx.h" 15 15 16 void UpdateElementsMelting(Elements* elements, IoModel* iomodel, FILE* iomodel_handle,int analysis_counter,int analysis_type){16 void UpdateElementsMelting(Elements* elements, IoModel* iomodel,int analysis_counter,int analysis_type){ 17 17 18 18 /*Now, is the model 3d? otherwise, do nothing: */ … … 20 20 21 21 /*Fetch data needed: */ 22 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);22 iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum); 23 23 24 24 /*Update elements: */ … … 33 33 34 34 /*Create inputs: */ 35 IoModelToInputsx(elements,iomodel, iomodel_handle,ThicknessEnum);36 IoModelToInputsx(elements,iomodel, iomodel_handle,SurfaceEnum);37 IoModelToInputsx(elements,iomodel, iomodel_handle,BedEnum);38 IoModelToInputsx(elements,iomodel, iomodel_handle,DragCoefficientEnum);39 IoModelToInputsx(elements,iomodel, iomodel_handle,DragPEnum);40 IoModelToInputsx(elements,iomodel, iomodel_handle,DragQEnum);41 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnIceShelfEnum);42 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnBedEnum);43 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnSurfaceEnum);44 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnWaterEnum);45 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementsTypeEnum);46 IoModelToInputsx(elements,iomodel, iomodel_handle,RheologyBEnum);47 IoModelToInputsx(elements,iomodel, iomodel_handle,RheologyNEnum);48 IoModelToInputsx(elements,iomodel, iomodel_handle,SurfaceAccumulationRateEnum);49 IoModelToInputsx(elements,iomodel, iomodel_handle,SurfaceAblationRateEnum);50 IoModelToInputsx(elements,iomodel, iomodel_handle,SurfaceMassBalanceEnum);51 IoModelToInputsx(elements,iomodel, iomodel_handle,BasalMeltingRateEnum);52 IoModelToInputsx(elements,iomodel, iomodel_handle,PressureEnum);35 IoModelToInputsx(elements,iomodel,ThicknessEnum); 36 IoModelToInputsx(elements,iomodel,SurfaceEnum); 37 IoModelToInputsx(elements,iomodel,BedEnum); 38 IoModelToInputsx(elements,iomodel,DragCoefficientEnum); 39 IoModelToInputsx(elements,iomodel,DragPEnum); 40 IoModelToInputsx(elements,iomodel,DragQEnum); 41 IoModelToInputsx(elements,iomodel,ElementOnIceShelfEnum); 42 IoModelToInputsx(elements,iomodel,ElementOnBedEnum); 43 IoModelToInputsx(elements,iomodel,ElementOnSurfaceEnum); 44 IoModelToInputsx(elements,iomodel,ElementOnWaterEnum); 45 IoModelToInputsx(elements,iomodel,ElementsTypeEnum); 46 IoModelToInputsx(elements,iomodel,RheologyBEnum); 47 IoModelToInputsx(elements,iomodel,RheologyNEnum); 48 IoModelToInputsx(elements,iomodel,SurfaceAccumulationRateEnum); 49 IoModelToInputsx(elements,iomodel,SurfaceAblationRateEnum); 50 IoModelToInputsx(elements,iomodel,SurfaceMassBalanceEnum); 51 IoModelToInputsx(elements,iomodel,BasalMeltingRateEnum); 52 IoModelToInputsx(elements,iomodel,PressureEnum); 53 53 54 54 /*Free data: */ -
issm/trunk/src/c/modules/ModelProcessorx/ModelProcessorx.cpp
r9320 r9340 43 43 44 44 _printf_(VerboseMProcessor()," create datasets for analysis %s\n",EnumToStringx(analysis_type)); 45 CreateDataSets(&elements,&nodes,&vertices,&materials,&constraints,&loads,¶meters,iomodel, IOMODEL,solution_type,analysis_type,nummodels,i);45 CreateDataSets(&elements,&nodes,&vertices,&materials,&constraints,&loads,¶meters,iomodel,solution_type,analysis_type,nummodels,i); 46 46 } 47 47 -
issm/trunk/src/c/modules/ModelProcessorx/ModelProcessorx.h
r9218 r9340 16 16 17 17 /*Creation of fem datasets: general drivers*/ 18 void CreateDataSets(Elements** pelements,Nodes** pnodes,Vertices** pvertices, Materials** pmaterials, Constraints** pconstraints, Loads** ploads,Parameters** pparameters,IoModel* iomodel, FILE* iomodel_handle,const int solution_type,int analysis_type,const int nummodels,int analysis_counter);19 void CreateElementsVerticesAndMaterials(Elements** pelements,Vertices** pvertices,Materials** pmaterials, IoModel* iomodel, FILE* iomodel_handle,const int nummodels);20 void CreateParameters(Parameters** pparameters,IoModel* iomodel, FILE* iomodel_handle,const int solution_type,int analysis_type,int analysis_counter);21 void CreateParametersControl(Parameters** pparameters,IoModel* iomodel, FILE* iomodel_handle,int solution_type,int analysis_type);22 void CreateParametersQmu(Parameters** pparameters,IoModel* iomodel, FILE* iomodel_handle,int solution_type,int analysis_type);23 void UpdateElementsAndMaterialsControl(Elements* elements,Materials* materials, IoModel* iomodel ,FILE* iomodel_handle);18 void CreateDataSets(Elements** pelements,Nodes** pnodes,Vertices** pvertices, Materials** pmaterials, Constraints** pconstraints, Loads** ploads,Parameters** pparameters,IoModel* iomodel,const int solution_type,int analysis_type,const int nummodels,int analysis_counter); 19 void CreateElementsVerticesAndMaterials(Elements** pelements,Vertices** pvertices,Materials** pmaterials, IoModel* iomodel,const int nummodels); 20 void CreateParameters(Parameters** pparameters,IoModel* iomodel,const int solution_type,int analysis_type,int analysis_counter); 21 void CreateParametersControl(Parameters** pparameters,IoModel* iomodel,int solution_type,int analysis_type); 22 void CreateParametersQmu(Parameters** pparameters,IoModel* iomodel,int solution_type,int analysis_type); 23 void UpdateElementsAndMaterialsControl(Elements* elements,Materials* materials, IoModel* iomodel); 24 24 25 25 /*Creation of fem datasets: specialised drivers: */ 26 26 27 27 /*diagnostic horizontal*/ 28 void CreateNodesDiagnosticHoriz(Nodes** pnodes,IoModel* iomodel ,FILE* iomodel_handle);29 void CreateConstraintsDiagnosticHoriz(Constraints** pconstraints,IoModel* iomodel ,FILE* iomodel_handle);30 void CreateLoadsDiagnosticHoriz(Loads** ploads, IoModel* iomodel , FILE* iomodel_handle);31 void UpdateElementsDiagnosticHoriz(Elements* elements,IoModel* iomodel, FILE* iomodel_handle,int analysis_counter,int analysis_type);28 void CreateNodesDiagnosticHoriz(Nodes** pnodes,IoModel* iomodel); 29 void CreateConstraintsDiagnosticHoriz(Constraints** pconstraints,IoModel* iomodel); 30 void CreateLoadsDiagnosticHoriz(Loads** ploads, IoModel* iomodel); 31 void UpdateElementsDiagnosticHoriz(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type); 32 32 33 33 /*diagnostic vertical*/ 34 void CreateNodesDiagnosticVert(Nodes** pnodes,IoModel* iomodel ,FILE* iomodel_handle);35 void CreateConstraintsDiagnosticVert(Constraints** pconstraints,IoModel* iomodel ,FILE* iomodel_handle);36 void CreateLoadsDiagnosticVert(Loads** ploads, IoModel* iomodel , FILE* iomodel_handle);37 void UpdateElementsDiagnosticVert(Elements* elements,IoModel* iomodel, FILE* iomodel_handle,int analysis_counter,int analysis_type);34 void CreateNodesDiagnosticVert(Nodes** pnodes,IoModel* iomodel); 35 void CreateConstraintsDiagnosticVert(Constraints** pconstraints,IoModel* iomodel); 36 void CreateLoadsDiagnosticVert(Loads** ploads, IoModel* iomodel); 37 void UpdateElementsDiagnosticVert(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type); 38 38 39 39 /*diagnostic hutter*/ 40 void CreateNodesDiagnosticHutter(Nodes** pnodes,IoModel* iomodel ,FILE* iomodel_handle);41 void CreateConstraintsDiagnosticHutter(Constraints** pconstraints,IoModel* iomodel ,FILE* iomodel_handle);42 void CreateLoadsDiagnosticHutter(Loads** ploads, IoModel* iomodel , FILE* iomodel_handle);43 void UpdateElementsDiagnosticHutter(Elements* elements,IoModel* iomodel, FILE* iomodel_handle,int analysis_counter,int analysis_type);40 void CreateNodesDiagnosticHutter(Nodes** pnodes,IoModel* iomodel); 41 void CreateConstraintsDiagnosticHutter(Constraints** pconstraints,IoModel* iomodel); 42 void CreateLoadsDiagnosticHutter(Loads** ploads, IoModel* iomodel); 43 void UpdateElementsDiagnosticHutter(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type); 44 44 45 45 /*bed slope*/ 46 void CreateNodesBedSlope(Nodes** pnodes,IoModel* iomodel ,FILE* iomodel_handle);47 void CreateConstraintsBedSlope(Constraints** pconstraints,IoModel* iomodel ,FILE* iomodel_handle);48 void CreateLoadsBedSlope(Loads** ploads, IoModel* iomodel , FILE* iomodel_handle);49 void UpdateElementsBedSlope(Elements* elements,IoModel* iomodel, FILE* iomodel_handle,int analysis_counter,int analysis_type);46 void CreateNodesBedSlope(Nodes** pnodes,IoModel* iomodel); 47 void CreateConstraintsBedSlope(Constraints** pconstraints,IoModel* iomodel); 48 void CreateLoadsBedSlope(Loads** ploads, IoModel* iomodel); 49 void UpdateElementsBedSlope(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type); 50 50 51 51 /*surface slope*/ 52 void CreateNodesSurfaceSlope(Nodes** pnodes,IoModel* iomodel ,FILE* iomodel_handle);53 void CreateConstraintsSurfaceSlope(Constraints** pconstraints,IoModel* iomodel ,FILE* iomodel_handle);54 void CreateLoadsSurfaceSlope(Loads** ploads, IoModel* iomodel , FILE* iomodel_handle);55 void UpdateElementsSurfaceSlope(Elements* elements,IoModel* iomodel, FILE* iomodel_handle,int analysis_counter,int analysis_type);52 void CreateNodesSurfaceSlope(Nodes** pnodes,IoModel* iomodel); 53 void CreateConstraintsSurfaceSlope(Constraints** pconstraints,IoModel* iomodel); 54 void CreateLoadsSurfaceSlope(Loads** ploads, IoModel* iomodel); 55 void UpdateElementsSurfaceSlope(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type); 56 56 57 57 /*thermal:*/ 58 void CreateNodesThermal(Nodes** pnodes,IoModel* iomodel ,FILE* iomodel_handle);59 void CreateConstraintsThermal(Constraints** pconstraints,IoModel* iomodel ,FILE* iomodel_handle);60 void CreateLoadsThermal(Loads** ploads, IoModel* iomodel , FILE* iomodel_handle);61 void UpdateElementsThermal(Elements* elements,IoModel* iomodel, FILE* iomodel_handle,int analysis_counter,int analysis_type);58 void CreateNodesThermal(Nodes** pnodes,IoModel* iomodel); 59 void CreateConstraintsThermal(Constraints** pconstraints,IoModel* iomodel); 60 void CreateLoadsThermal(Loads** ploads, IoModel* iomodel); 61 void UpdateElementsThermal(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type); 62 62 63 63 /*enthalpy:*/ 64 void CreateNodesEnthalpy(Nodes** pnodes,IoModel* iomodel ,FILE* iomodel_handle);65 void CreateConstraintsEnthalpy(Constraints** pconstraints,IoModel* iomodel ,FILE* iomodel_handle);66 void CreateLoadsEnthalpy(Loads** ploads, IoModel* iomodel , FILE* iomodel_handle);67 void UpdateElementsEnthalpy(Elements* elements,IoModel* iomodel, FILE* iomodel_handle,int analysis_counter,int analysis_type);64 void CreateNodesEnthalpy(Nodes** pnodes,IoModel* iomodel); 65 void CreateConstraintsEnthalpy(Constraints** pconstraints,IoModel* iomodel); 66 void CreateLoadsEnthalpy(Loads** ploads, IoModel* iomodel); 67 void UpdateElementsEnthalpy(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type); 68 68 69 69 /*hydrology:*/ 70 void CreateNodesHydrology(Nodes** pnodes,IoModel* iomodel ,FILE* iomodel_handle);71 void CreateConstraintsHydrology(Constraints** pconstraints,IoModel* iomodel ,FILE* iomodel_handle);72 void CreateLoadsHydrology(Loads** ploads, IoModel* iomodel , FILE* iomodel_handle);73 void UpdateElementsHydrology(Elements* elements,IoModel* iomodel, FILE* iomodel_handle,int analysis_counter,int analysis_type);70 void CreateNodesHydrology(Nodes** pnodes,IoModel* iomodel); 71 void CreateConstraintsHydrology(Constraints** pconstraints,IoModel* iomodel); 72 void CreateLoadsHydrology(Loads** ploads, IoModel* iomodel); 73 void UpdateElementsHydrology(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type); 74 74 75 75 /*melting:*/ 76 void CreateNodesMelting(Nodes** pnodes,IoModel* iomodel ,FILE* iomodel_handle);77 void CreateConstraintsMelting(Constraints** pconstraints,IoModel* iomodel ,FILE* iomodel_handle);78 void CreateLoadsMelting(Loads** ploads, IoModel* iomodel , FILE* iomodel_handle);79 void UpdateElementsMelting(Elements* elements,IoModel* iomodel, FILE* iomodel_handle,int analysis_counter,int analysis_type);76 void CreateNodesMelting(Nodes** pnodes,IoModel* iomodel); 77 void CreateConstraintsMelting(Constraints** pconstraints,IoModel* iomodel); 78 void CreateLoadsMelting(Loads** ploads, IoModel* iomodel); 79 void UpdateElementsMelting(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type); 80 80 81 81 /*prognostic:*/ 82 void CreateNodesPrognostic(Nodes** pnodes,IoModel* iomodel ,FILE* iomodel_handle);83 void CreateConstraintsPrognostic(Constraints** pconstraints,IoModel* iomodel ,FILE* iomodel_handle);84 void CreateLoadsPrognostic(Loads** ploads, IoModel* iomodel , FILE* iomodel_handle);85 void UpdateElementsPrognostic(Elements* elements,IoModel* iomodel, FILE* iomodel_handle,int analysis_counter,int analysis_type);82 void CreateNodesPrognostic(Nodes** pnodes,IoModel* iomodel); 83 void CreateConstraintsPrognostic(Constraints** pconstraints,IoModel* iomodel); 84 void CreateLoadsPrognostic(Loads** ploads, IoModel* iomodel); 85 void UpdateElementsPrognostic(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type); 86 86 87 87 /*balancedthickness:*/ 88 void CreateNodesBalancethickness(Nodes** pnodes,IoModel* iomodel ,FILE* iomodel_handle);89 void CreateConstraintsBalancethickness(Constraints** pconstraints,IoModel* iomodel ,FILE* iomodel_handle);90 void CreateLoadsBalancethickness(Loads** ploads, IoModel* iomodel , FILE* iomodel_handle);91 void UpdateElementsBalancethickness(Elements* elements,IoModel* iomodel, FILE* iomodel_handle,int analysis_counter,int analysis_type);88 void CreateNodesBalancethickness(Nodes** pnodes,IoModel* iomodel); 89 void CreateConstraintsBalancethickness(Constraints** pconstraints,IoModel* iomodel); 90 void CreateLoadsBalancethickness(Loads** ploads, IoModel* iomodel); 91 void UpdateElementsBalancethickness(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type); 92 92 93 93 /*transient: */ 94 void UpdateElementsTransient(Elements* elements,Parameters* parameters,IoModel* iomodel, FILE* iomodel_handle,int analysis_counter,int analysis_type);94 void UpdateElementsTransient(Elements* elements,Parameters* parameters,IoModel* iomodel,int analysis_counter,int analysis_type); 95 95 96 96 /*partitioning: */ 97 void ElementsAndVerticesPartitioning(bool** pmy_elements, int** pmy_vertices, IoModel* iomodel , FILE* iomodel_handle);98 void NodesPartitioning(bool** pmy_nodes,bool* my_elements, int* my_vertices, IoModel* iomodel, FILE* iomodel_handle,bool continuous);97 void ElementsAndVerticesPartitioning(bool** pmy_elements, int** pmy_vertices, IoModel* iomodel); 98 void NodesPartitioning(bool** pmy_nodes,bool* my_elements, int* my_vertices, IoModel* iomodel, bool continuous); 99 99 100 100 /*Connectivity*/ -
issm/trunk/src/c/modules/ModelProcessorx/NodesPartitioning.cpp
r9320 r9340 18 18 #include "../ModelProcessorx/ModelProcessorx.h" 19 19 20 void DiscontinuousGalerkinNodesPartitioning(bool** pmy_nodes,bool* my_elements, int* my_vertices, IoModel* iomodel , FILE* iomodel_handle);21 void ContinuousGalerkinNodesPartitioning(bool** pmy_nodes,bool* my_elements, int* my_vertices, IoModel* iomodel , FILE* iomodel_handle);20 void DiscontinuousGalerkinNodesPartitioning(bool** pmy_nodes,bool* my_elements, int* my_vertices, IoModel* iomodel); 21 void ContinuousGalerkinNodesPartitioning(bool** pmy_nodes,bool* my_elements, int* my_vertices, IoModel* iomodel); 22 22 23 void NodesPartitioning(bool** pmy_nodes,bool* my_elements, int* my_vertices, IoModel* iomodel, FILE* iomodel_handle,bool continuous){23 void NodesPartitioning(bool** pmy_nodes,bool* my_elements, int* my_vertices, IoModel* iomodel, bool continuous){ 24 24 25 25 /*First thing, this is a new partition for a new analysis_type, therefore, to avoid a leak, erase the nodes partition that might come through pmy_nodes: */ … … 28 28 /*Now, depending on whether we are running galerkin discontinous or continuous elements, carry out a different partition of the nodes: */ 29 29 if(continuous==true) 30 ContinuousGalerkinNodesPartitioning(pmy_nodes,my_elements, my_vertices, iomodel , iomodel_handle);30 ContinuousGalerkinNodesPartitioning(pmy_nodes,my_elements, my_vertices, iomodel); 31 31 else 32 DiscontinuousGalerkinNodesPartitioning(pmy_nodes,my_elements, my_vertices, iomodel , iomodel_handle);32 DiscontinuousGalerkinNodesPartitioning(pmy_nodes,my_elements, my_vertices, iomodel); 33 33 } 34 34 35 void ContinuousGalerkinNodesPartitioning(bool** pmy_nodes,bool* my_elements, int* my_vertices, IoModel* iomodel , FILE* iomodel_handle){35 void ContinuousGalerkinNodesPartitioning(bool** pmy_nodes,bool* my_elements, int* my_vertices, IoModel* iomodel){ 36 36 37 37 /*as many nodes as there are vertices */ … … 48 48 49 49 50 void DiscontinuousGalerkinNodesPartitioning(bool** pmy_nodes,bool* my_elements, int* my_vertices, IoModel* iomodel , FILE* iomodel_handle){50 void DiscontinuousGalerkinNodesPartitioning(bool** pmy_nodes,bool* my_elements, int* my_vertices, IoModel* iomodel){ 51 51 52 52 /*each element has it own nodes (as many as vertices) + additional nodes from neighbouring elements for each edge. This yields to a very different partition for … … 93 93 94 94 /*Get edges and elements*/ 95 IoModelFetchData(&iomodel->edges,&iomodel->numberofedges,&cols,iomodel_handle,EdgesEnum);96 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);95 iomodel->FetchData(&iomodel->edges,&iomodel->numberofedges,&cols,EdgesEnum); 96 iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum); 97 97 if (cols!=4) _error_("field edges should have 4 columns"); 98 98 -
issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateConstraintsPrognostic.cpp
r9081 r9340 8 8 #include "../ModelProcessorx.h" 9 9 10 void CreateConstraintsPrognostic(Constraints** pconstraints, IoModel* iomodel ,FILE* iomodel_handle){10 void CreateConstraintsPrognostic(Constraints** pconstraints, IoModel* iomodel){ 11 11 12 12 /*Output*/ … … 21 21 /*Do not add constraints in DG, they are weakly imposed*/ 22 22 if(!iomodel->prognostic_DG){ 23 IoModelToConstraintsx(constraints,iomodel, iomodel_handle,SpcthicknessEnum,PrognosticAnalysisEnum);23 IoModelToConstraintsx(constraints,iomodel,SpcthicknessEnum,PrognosticAnalysisEnum); 24 24 } 25 25 -
issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateLoadsPrognostic.cpp
r8926 r9340 11 11 #include "../ModelProcessorx.h" 12 12 13 void CreateLoadsPrognostic(Loads** ploads, IoModel* iomodel ,FILE* iomodel_handle){13 void CreateLoadsPrognostic(Loads** ploads, IoModel* iomodel){ 14 14 15 15 /*Intermediaries*/ … … 32 32 33 33 /*Get edges and elements*/ 34 IoModelFetchData(&iomodel->edges,&iomodel->numberofedges,NULL,iomodel_handle,EdgesEnum);35 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);36 IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,ThicknessEnum);34 iomodel->FetchData(&iomodel->edges,&iomodel->numberofedges,NULL,EdgesEnum); 35 iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum); 36 iomodel->FetchData(&iomodel->thickness,NULL,NULL,ThicknessEnum); 37 37 38 38 /*First load data:*/ … … 57 57 58 58 /*Create Penpair for penalties: */ 59 IoModelFetchData(&iomodel->penalties,&iomodel->numpenalties,NULL,iomodel_handle,PenaltiesEnum);60 IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);59 iomodel->FetchData(&iomodel->penalties,&iomodel->numpenalties,NULL,PenaltiesEnum); 60 iomodel->FetchData(&iomodel->nodeonbed,NULL,NULL,NodeOnBedEnum); 61 61 62 62 for(i=0;i<iomodel->numpenalties;i++){ -
issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp
r8926 r9340 13 13 #include "../ModelProcessorx.h" 14 14 15 void CreateNodesPrognostic(Nodes** pnodes, IoModel* iomodel ,FILE* iomodel_handle){15 void CreateNodesPrognostic(Nodes** pnodes, IoModel* iomodel){ 16 16 17 17 /*Intermediary*/ … … 33 33 /*Create partition of nodes: */ 34 34 if(iomodel->prognostic_DG) continuous_galerkin=false; 35 NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel, iomodel_handle,continuous_galerkin);35 NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel,continuous_galerkin); 36 36 37 37 /*Check in 3d*/ … … 39 39 40 40 /*First fetch data: */ 41 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);42 IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);43 IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,NodeOnSurfaceEnum);44 IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,NodeOnIceSheetEnum);45 IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,NodeOnIceShelfEnum);46 IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,VerticesTypeEnum);47 IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,NodeOnWaterEnum);41 iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum); 42 iomodel->FetchData(&iomodel->nodeonbed,NULL,NULL,NodeOnBedEnum); 43 iomodel->FetchData(&iomodel->nodeonsurface,NULL,NULL,NodeOnSurfaceEnum); 44 iomodel->FetchData(&iomodel->nodeonicesheet,NULL,NULL,NodeOnIceSheetEnum); 45 iomodel->FetchData(&iomodel->nodeoniceshelf,NULL,NULL,NodeOnIceShelfEnum); 46 iomodel->FetchData(&iomodel->vertices_type,NULL,NULL,VerticesTypeEnum); 47 iomodel->FetchData(&iomodel->nodeonwater,NULL,NULL,NodeOnWaterEnum); 48 48 49 49 if(continuous_galerkin){ -
issm/trunk/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp
r9232 r9340 14 14 #include "../ModelProcessorx.h" 15 15 16 void UpdateElementsPrognostic(Elements* elements, IoModel* iomodel, FILE* iomodel_handle,int analysis_counter,int analysis_type){16 void UpdateElementsPrognostic(Elements* elements, IoModel* iomodel,int analysis_counter,int analysis_type){ 17 17 18 18 /*Fetch data needed: */ 19 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);19 iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum); 20 20 21 21 /*Update elements: */ … … 29 29 } 30 30 31 IoModelToInputsx(elements,iomodel, iomodel_handle,ThicknessEnum);32 IoModelToInputsx(elements,iomodel, iomodel_handle,SurfaceEnum);33 IoModelToInputsx(elements,iomodel, iomodel_handle,BedEnum);34 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnIceShelfEnum);35 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnWaterEnum);36 IoModelToInputsx(elements,iomodel, iomodel_handle,SurfaceAccumulationRateEnum);37 IoModelToInputsx(elements,iomodel, iomodel_handle,SurfaceAblationRateEnum);38 IoModelToInputsx(elements,iomodel, iomodel_handle,SurfaceMassBalanceEnum);39 IoModelToInputsx(elements,iomodel, iomodel_handle,BasalMeltingRateEnum);40 IoModelToInputsx(elements,iomodel, iomodel_handle,BasalMeltingRateCorrectionEnum);41 IoModelToInputsx(elements,iomodel, iomodel_handle,VxEnum);42 IoModelToInputsx(elements,iomodel, iomodel_handle,VyEnum);31 IoModelToInputsx(elements,iomodel,ThicknessEnum); 32 IoModelToInputsx(elements,iomodel,SurfaceEnum); 33 IoModelToInputsx(elements,iomodel,BedEnum); 34 IoModelToInputsx(elements,iomodel,ElementOnIceShelfEnum); 35 IoModelToInputsx(elements,iomodel,ElementOnWaterEnum); 36 IoModelToInputsx(elements,iomodel,SurfaceAccumulationRateEnum); 37 IoModelToInputsx(elements,iomodel,SurfaceAblationRateEnum); 38 IoModelToInputsx(elements,iomodel,SurfaceMassBalanceEnum); 39 IoModelToInputsx(elements,iomodel,BasalMeltingRateEnum); 40 IoModelToInputsx(elements,iomodel,BasalMeltingRateCorrectionEnum); 41 IoModelToInputsx(elements,iomodel,VxEnum); 42 IoModelToInputsx(elements,iomodel,VyEnum); 43 43 44 44 if(iomodel->prognostic_DG){ 45 IoModelToInputsx(elements,iomodel, iomodel_handle,SpcthicknessEnum); //for DG, we need the spc in the element45 IoModelToInputsx(elements,iomodel,SpcthicknessEnum); //for DG, we need the spc in the element 46 46 } 47 47 48 48 if (iomodel->dim==3){ 49 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnBedEnum);50 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnSurfaceEnum);51 IoModelToInputsx(elements,iomodel, iomodel_handle,PressureEnum);52 IoModelToInputsx(elements,iomodel, iomodel_handle,TemperatureEnum);49 IoModelToInputsx(elements,iomodel,ElementOnBedEnum); 50 IoModelToInputsx(elements,iomodel,ElementOnSurfaceEnum); 51 IoModelToInputsx(elements,iomodel,PressureEnum); 52 IoModelToInputsx(elements,iomodel,TemperatureEnum); 53 53 } 54 54 -
issm/trunk/src/c/modules/ModelProcessorx/Qmu/CreateParametersQmu.cpp
r8967 r9340 13 13 #include "../ModelProcessorx.h" 14 14 15 void CreateParametersQmu(Parameters** pparameters,IoModel* iomodel, FILE* iomodel_handle,int solution_type,int analysis_type){15 void CreateParametersQmu(Parameters** pparameters,IoModel* iomodel,int solution_type,int analysis_type){ 16 16 17 17 /*variable declarations: {{{1*/ … … 75 75 /*}}}*/ 76 76 /*Fetch variable descriptors: {{{1*/ 77 IoModelFetchData(&variabledescriptors,&numvariabledescriptors,iomodel_handle,VariabledescriptorsEnum);77 iomodel->FetchData(&variabledescriptors,&numvariabledescriptors,VariabledescriptorsEnum); 78 78 79 79 /*Ok, we have all the variable descriptors. Build a parameter with it: */ … … 82 82 /*}}}*/ 83 83 /*Fetch response descriptors: {{{1*/ 84 IoModelFetchData(&responsedescriptors,&numresponsedescriptors,iomodel_handle,ResponsedescriptorsEnum);84 iomodel->FetchData(&responsedescriptors,&numresponsedescriptors,ResponsedescriptorsEnum); 85 85 86 86 /*Ok, we have all the response descriptors. Build a parameter with it: */ … … 92 92 parameters->AddObject(new IntParam(QmuNPartEnum,iomodel->qmu_npart)); 93 93 94 IoModelFetchData(&dpart,NULL,NULL,iomodel_handle,PartEnum);94 iomodel->FetchData(&dpart,NULL,NULL,PartEnum); 95 95 96 96 if(!dpart){ 97 97 98 98 /*Partition elements and vertices and nodes: */ 99 ElementsAndVerticesPartitioning(&iomodel->my_elements,&iomodel->my_vertices,iomodel ,iomodel_handle);99 ElementsAndVerticesPartitioning(&iomodel->my_elements,&iomodel->my_vertices,iomodel); 100 100 101 101 dpart=(double*)xmalloc(iomodel->numberofvertices*sizeof(double)); … … 113 113 114 114 /*Recover data: */ 115 IoModelFetchData(&dakota_parameter,NULL,NULL,iomodel_handle,StringToEnumx(tag));115 iomodel->FetchData(&dakota_parameter,NULL,NULL,StringToEnumx(tag)); 116 116 117 117 /*Convert units: */ … … 138 138 139 139 /*Fetch the mass flux segments necessary to compute the mass fluxes. Build a DoubleMatArrayParam object out of them: */ 140 IoModelFetchData(&array,&mdims_array,&ndims_array,&qmu_mass_flux_num_profiles,iomodel_handle,QmuMassFluxSegmentsEnum);140 iomodel->FetchData(&array,&mdims_array,&ndims_array,&qmu_mass_flux_num_profiles,QmuMassFluxSegmentsEnum); 141 141 if(qmu_mass_flux_num_profiles==0)_error_(" qmu_mass_flux_num_profiles is 0, when MassFlux computations were requested!"); 142 142 -
issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/CreateConstraintsSurfaceSlope.cpp
r8330 r9340 11 11 #include "../ModelProcessorx.h" 12 12 13 void CreateConstraintsSurfaceSlope(Constraints** pconstraints, IoModel* iomodel ,FILE* iomodel_handle){13 void CreateConstraintsSurfaceSlope(Constraints** pconstraints, IoModel* iomodel){ 14 14 15 15 /*Output*/ -
issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/CreateLoadsSurfaceSlope.cpp
r8330 r9340 11 11 #include "../ModelProcessorx.h" 12 12 13 void CreateLoadsSurfaceSlope(Loads** ploads, IoModel* iomodel ,FILE* iomodel_handle){13 void CreateLoadsSurfaceSlope(Loads** ploads, IoModel* iomodel){ 14 14 15 15 /*DataSet*/ -
issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/CreateNodesSurfaceSlope.cpp
r8926 r9340 13 13 #include "../ModelProcessorx.h" 14 14 15 void CreateNodesSurfaceSlope(Nodes** pnodes, IoModel* iomodel ,FILE* iomodel_handle){15 void CreateNodesSurfaceSlope(Nodes** pnodes, IoModel* iomodel){ 16 16 17 17 /*Intermediary*/ … … 29 29 30 30 /*Continuous Galerkin partition of nodes: */ 31 NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel, iomodel_handle,continuous_galerkin);31 NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel,continuous_galerkin); 32 32 33 33 /*First fetch data: */ 34 IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);35 IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,NodeOnSurfaceEnum);36 IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,NodeOnIceSheetEnum);37 IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,NodeOnIceShelfEnum);38 IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,VerticesTypeEnum);39 IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,NodeOnWaterEnum);34 iomodel->FetchData(&iomodel->nodeonbed,NULL,NULL,NodeOnBedEnum); 35 iomodel->FetchData(&iomodel->nodeonsurface,NULL,NULL,NodeOnSurfaceEnum); 36 iomodel->FetchData(&iomodel->nodeonicesheet,NULL,NULL,NodeOnIceSheetEnum); 37 iomodel->FetchData(&iomodel->nodeoniceshelf,NULL,NULL,NodeOnIceShelfEnum); 38 iomodel->FetchData(&iomodel->vertices_type,NULL,NULL,VerticesTypeEnum); 39 iomodel->FetchData(&iomodel->nodeonwater,NULL,NULL,NodeOnWaterEnum); 40 40 41 41 for (i=0;i<iomodel->numberofvertices;i++){ -
issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/UpdateElementsSurfaceSlope.cpp
r8985 r9340 14 14 #include "../ModelProcessorx.h" 15 15 16 void UpdateElementsSurfaceSlope(Elements* elements, IoModel* iomodel, FILE* iomodel_handle,int analysis_counter,int analysis_type){16 void UpdateElementsSurfaceSlope(Elements* elements, IoModel* iomodel,int analysis_counter,int analysis_type){ 17 17 18 18 /*Fetch data needed: */ 19 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);19 iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum); 20 20 21 21 /*Update elements: */ … … 29 29 } 30 30 31 IoModelToInputsx(elements,iomodel, iomodel_handle,SurfaceEnum);32 IoModelToInputsx(elements,iomodel, iomodel_handle,BedEnum);33 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnWaterEnum);31 IoModelToInputsx(elements,iomodel,SurfaceEnum); 32 IoModelToInputsx(elements,iomodel,BedEnum); 33 IoModelToInputsx(elements,iomodel,ElementOnWaterEnum); 34 34 35 35 if (iomodel->dim==3){ 36 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnBedEnum);37 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnSurfaceEnum);36 IoModelToInputsx(elements,iomodel,ElementOnBedEnum); 37 IoModelToInputsx(elements,iomodel,ElementOnSurfaceEnum); 38 38 } 39 39 -
issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateConstraintsThermal.cpp
r9081 r9340 12 12 #include "../ModelProcessorx.h" 13 13 14 void CreateConstraintsThermal(Constraints** pconstraints, IoModel* iomodel ,FILE* iomodel_handle){14 void CreateConstraintsThermal(Constraints** pconstraints, IoModel* iomodel){ 15 15 16 16 /*Intermediary*/ … … 29 29 /*Only 3d mesh supported*/ 30 30 if (iomodel->dim==3){ 31 IoModelToConstraintsx(constraints,iomodel, iomodel_handle,SpctemperatureEnum,ThermalAnalysisEnum);31 IoModelToConstraintsx(constraints,iomodel,SpctemperatureEnum,ThermalAnalysisEnum); 32 32 } 33 33 -
issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateLoadsThermal.cpp
r9002 r9340 11 11 #include "../ModelProcessorx.h" 12 12 13 void CreateLoadsThermal(Loads** ploads, IoModel* iomodel ,FILE* iomodel_handle){13 void CreateLoadsThermal(Loads** ploads, IoModel* iomodel){ 14 14 15 15 /*Intermediary*/ … … 30 30 31 31 //create penalties for nodes: no node can have a temperature over the melting point 32 IoModelFetchData(&iomodel->spctemperature,NULL,NULL,iomodel_handle,SpctemperatureEnum);33 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);32 iomodel->FetchData(&iomodel->spctemperature,NULL,NULL,SpctemperatureEnum); 33 iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum); 34 34 CreateSingleNodeToElementConnectivity(iomodel); 35 35 -
issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateNodesThermal.cpp
r8926 r9340 13 13 #include "../ModelProcessorx.h" 14 14 15 void CreateNodesThermal(Nodes** pnodes, IoModel* iomodel ,FILE* iomodel_handle){15 void CreateNodesThermal(Nodes** pnodes, IoModel* iomodel){ 16 16 17 17 /*Intermediary*/ … … 29 29 30 30 /*Continuous Galerkin partition of nodes: */ 31 NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel, iomodel_handle,continuous_galerkin);31 NodesPartitioning(&iomodel->my_nodes,iomodel->my_elements,iomodel->my_vertices,iomodel,continuous_galerkin); 32 32 33 33 /*Create nodes and vertices: */ 34 IoModelFetchData(&iomodel->nodeonbed,NULL,NULL,iomodel_handle,NodeOnBedEnum);35 IoModelFetchData(&iomodel->nodeonsurface,NULL,NULL,iomodel_handle,NodeOnSurfaceEnum);36 IoModelFetchData(&iomodel->nodeonicesheet,NULL,NULL,iomodel_handle,NodeOnIceSheetEnum);37 IoModelFetchData(&iomodel->nodeoniceshelf,NULL,NULL,iomodel_handle,NodeOnIceShelfEnum);38 IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,VerticesTypeEnum);39 IoModelFetchData(&iomodel->nodeonwater,NULL,NULL,iomodel_handle,NodeOnWaterEnum);34 iomodel->FetchData(&iomodel->nodeonbed,NULL,NULL,NodeOnBedEnum); 35 iomodel->FetchData(&iomodel->nodeonsurface,NULL,NULL,NodeOnSurfaceEnum); 36 iomodel->FetchData(&iomodel->nodeonicesheet,NULL,NULL,NodeOnIceSheetEnum); 37 iomodel->FetchData(&iomodel->nodeoniceshelf,NULL,NULL,NodeOnIceShelfEnum); 38 iomodel->FetchData(&iomodel->vertices_type,NULL,NULL,VerticesTypeEnum); 39 iomodel->FetchData(&iomodel->nodeonwater,NULL,NULL,NodeOnWaterEnum); 40 40 41 41 for (i=0;i<iomodel->numberofvertices;i++){ -
issm/trunk/src/c/modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp
r9126 r9340 14 14 #include "../ModelProcessorx.h" 15 15 16 void UpdateElementsThermal(Elements* elements, IoModel* iomodel, FILE* iomodel_handle,int analysis_counter,int analysis_type){16 void UpdateElementsThermal(Elements* elements, IoModel* iomodel,int analysis_counter,int analysis_type){ 17 17 18 18 /*Now, is the model 3d? otherwise, do nothing: */ … … 20 20 21 21 /*Fetch data needed: */ 22 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,ElementsEnum);22 iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum); 23 23 24 24 /*Update elements: */ … … 32 32 } 33 33 34 IoModelToInputsx(elements,iomodel, iomodel_handle,ThicknessEnum);35 IoModelToInputsx(elements,iomodel, iomodel_handle,SurfaceEnum);36 IoModelToInputsx(elements,iomodel, iomodel_handle,BedEnum);37 IoModelToInputsx(elements,iomodel, iomodel_handle,DragCoefficientEnum);38 IoModelToInputsx(elements,iomodel, iomodel_handle,DragPEnum);39 IoModelToInputsx(elements,iomodel, iomodel_handle,DragQEnum);40 IoModelToInputsx(elements,iomodel, iomodel_handle,DragTypeEnum);41 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnIceShelfEnum);42 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnBedEnum);43 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnSurfaceEnum);44 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementOnWaterEnum);45 IoModelToInputsx(elements,iomodel, iomodel_handle,ElementsTypeEnum);46 IoModelToInputsx(elements,iomodel, iomodel_handle,RheologyBEnum);47 IoModelToInputsx(elements,iomodel, iomodel_handle,RheologyNEnum);48 IoModelToInputsx(elements,iomodel, iomodel_handle,PressureEnum);49 IoModelToInputsx(elements,iomodel, iomodel_handle,TemperatureEnum);50 IoModelToInputsx(elements,iomodel, iomodel_handle,GeothermalfluxEnum);51 IoModelToInputsx(elements,iomodel, iomodel_handle,VxEnum);52 IoModelToInputsx(elements,iomodel, iomodel_handle,VyEnum);53 IoModelToInputsx(elements,iomodel, iomodel_handle,VzEnum);34 IoModelToInputsx(elements,iomodel,ThicknessEnum); 35 IoModelToInputsx(elements,iomodel,SurfaceEnum); 36 IoModelToInputsx(elements,iomodel,BedEnum); 37 IoModelToInputsx(elements,iomodel,DragCoefficientEnum); 38 IoModelToInputsx(elements,iomodel,DragPEnum); 39 IoModelToInputsx(elements,iomodel,DragQEnum); 40 IoModelToInputsx(elements,iomodel,DragTypeEnum); 41 IoModelToInputsx(elements,iomodel,ElementOnIceShelfEnum); 42 IoModelToInputsx(elements,iomodel,ElementOnBedEnum); 43 IoModelToInputsx(elements,iomodel,ElementOnSurfaceEnum); 44 IoModelToInputsx(elements,iomodel,ElementOnWaterEnum); 45 IoModelToInputsx(elements,iomodel,ElementsTypeEnum); 46 IoModelToInputsx(elements,iomodel,RheologyBEnum); 47 IoModelToInputsx(elements,iomodel,RheologyNEnum); 48 IoModelToInputsx(elements,iomodel,PressureEnum); 49 IoModelToInputsx(elements,iomodel,TemperatureEnum); 50 IoModelToInputsx(elements,iomodel,GeothermalfluxEnum); 51 IoModelToInputsx(elements,iomodel,VxEnum); 52 IoModelToInputsx(elements,iomodel,VyEnum); 53 IoModelToInputsx(elements,iomodel,VzEnum); 54 54 55 55 if(iomodel->qmu_analysis)elements->InputDuplicate(TemperatureEnum,QmuTemperatureEnum); -
issm/trunk/src/c/modules/ModelProcessorx/Transient/UpdateElementsTransient.cpp
r8967 r9340 14 14 #include "../ModelProcessorx.h" 15 15 16 void UpdateElementsTransient(Elements* elements, Parameters* parameters,IoModel* iomodel, FILE* iomodel_handle,int analysis_counter,int analysis_type){16 void UpdateElementsTransient(Elements* elements, Parameters* parameters,IoModel* iomodel,int analysis_counter,int analysis_type){ 17 17 18 18 /*nothing for now: */ -
issm/trunk/src/c/objects/IoModel.cpp
r9320 r9340 124 124 } 125 125 /*}}}*/ 126 /*FUNCTION IoModel::IoModel( ConstDataHandleiomodel_handle){{{1*/126 /*FUNCTION IoModel::IoModel(FILE* iomodel_handle){{{1*/ 127 127 IoModel::IoModel(FILE* iomodel_handle){ 128 129 /*First, keep track of the fil handle: */ 130 this->fid=iomodel_handle; 128 131 129 132 int i,j; … … 134 137 /*Get all the data that consists of scalars, integers and strings: */ 135 138 136 IoModelFetchData(&this->name,iomodel_handle,NameEnum);137 IoModelFetchData(&this->inputfilename,iomodel_handle,InputfilenameEnum);138 IoModelFetchData(&this->outputfilename,iomodel_handle,OutputfilenameEnum);139 IoModelFetchData(&this->qmu_analysis,iomodel_handle,QmuAnalysisEnum);140 IoModelFetchData(&this->control_analysis,iomodel_handle,ControlAnalysisEnum);141 IoModelFetchData(&this->dim,iomodel_handle,DimEnum);139 this->FetchData(&this->name,NameEnum); 140 this->FetchData(&this->inputfilename,InputfilenameEnum); 141 this->FetchData(&this->outputfilename,OutputfilenameEnum); 142 this->FetchData(&this->qmu_analysis,QmuAnalysisEnum); 143 this->FetchData(&this->control_analysis,ControlAnalysisEnum); 144 this->FetchData(&this->dim,DimEnum); 142 145 /*!Get numberofelements and numberofvertices: */ 143 IoModelFetchData(&this->numberofvertices,iomodel_handle,NumberOfNodesEnum);144 IoModelFetchData(&this->numberofelements,iomodel_handle,NumberOfElementsEnum);146 this->FetchData(&this->numberofvertices,NumberOfNodesEnum); 147 this->FetchData(&this->numberofelements,NumberOfElementsEnum); 145 148 /*!In case we are running 3d, we are going to need the collapsed and non-collapsed 2d meshes, from which the 3d mesh was extruded: */ 146 149 if (this->dim==3){ 147 150 148 151 /*!Deal with 2d mesh: */ 149 IoModelFetchData(&this->numberofelements2d,iomodel_handle,NumberOfElements2DEnum);150 IoModelFetchData(&this->numberofvertices2d,iomodel_handle,NumberOfNodes2DEnum);151 IoModelFetchData(&this->numlayers,iomodel_handle,NumlayersEnum);152 this->FetchData(&this->numberofelements2d,NumberOfElements2DEnum); 153 this->FetchData(&this->numberofvertices2d,NumberOfNodes2DEnum); 154 this->FetchData(&this->numlayers,NumlayersEnum); 152 155 } 153 156 154 157 155 158 /*elements type: */ 156 IoModelFetchData(&this->ishutter,iomodel_handle,IshutterEnum);157 IoModelFetchData(&this->ismacayealpattyn,iomodel_handle,IsmacayealpattynEnum);158 IoModelFetchData(&this->isstokes,iomodel_handle,IsstokesEnum);159 this->FetchData(&this->ishutter,IshutterEnum); 160 this->FetchData(&this->ismacayealpattyn,IsmacayealpattynEnum); 161 this->FetchData(&this->isstokes,IsstokesEnum); 159 162 160 163 /*!Get drag_type, drag and p,q: */ 161 IoModelFetchData(&this->drag_type,iomodel_handle,DragTypeEnum);164 this->FetchData(&this->drag_type,DragTypeEnum); 162 165 163 166 /*!Get materials: */ 164 IoModelFetchData(&this->rho_water,iomodel_handle,RhoWaterEnum);165 IoModelFetchData(&this->rho_ice,iomodel_handle,RhoIceEnum);166 IoModelFetchData(&this->g,iomodel_handle,GEnum);167 this->FetchData(&this->rho_water,RhoWaterEnum); 168 this->FetchData(&this->rho_ice,RhoIceEnum); 169 this->FetchData(&this->g,GEnum); 167 170 168 171 /*Get control parameters: */ 169 IoModelFetchData(&this->num_control_type,iomodel_handle,NumControlTypeEnum);170 IoModelFetchData(&this->num_cm_responses,iomodel_handle,NumCmResponsesEnum);172 this->FetchData(&this->num_control_type,NumControlTypeEnum); 173 this->FetchData(&this->num_cm_responses,NumCmResponsesEnum); 171 174 172 175 /*!Get solution parameters: */ 173 IoModelFetchData(&this->yts,iomodel_handle,YtsEnum);174 IoModelFetchData(&this->meanvel,iomodel_handle,MeanvelEnum);175 IoModelFetchData(&this->epsvel,iomodel_handle,EpsvelEnum);176 IoModelFetchData(&this->verbose,iomodel_handle,VerboseBinaryEnum);177 IoModelFetchData(&this->output_frequency,iomodel_handle,OutputFrequencyEnum);178 IoModelFetchData(&this->prognostic_DG,iomodel_handle,PrognosticDGEnum);179 IoModelFetchData(&this->nsteps,iomodel_handle,NstepsEnum);180 IoModelFetchData(&this->eps_cm,iomodel_handle,EpsCmEnum);181 IoModelFetchData(&this->tolx,iomodel_handle,TolxEnum);182 IoModelFetchData(&this->cm_gradient,iomodel_handle,CmGradientEnum);183 IoModelFetchData(&this->eps_res,iomodel_handle,EpsResEnum);184 IoModelFetchData(&this->eps_rel,iomodel_handle,EpsRelEnum);185 IoModelFetchData(&this->eps_abs,iomodel_handle,EpsAbsEnum);186 IoModelFetchData(&this->max_nonlinear_iterations,iomodel_handle,MaxNonlinearIterationsEnum);187 IoModelFetchData(&this->max_steadystate_iterations,iomodel_handle,MaxSteadystateIterationsEnum);188 IoModelFetchData(&this->dt,iomodel_handle,DtEnum);189 IoModelFetchData(&this->ndt,iomodel_handle,NdtEnum);190 IoModelFetchData(&this->time_adapt,iomodel_handle,TimeAdaptEnum);191 IoModelFetchData(&this->cfl_coefficient,iomodel_handle,CflCoefficientEnum);192 IoModelFetchData(&this->hydrostatic_adjustment,iomodel_handle,HydrostaticAdjustmentEnum);193 IoModelFetchData(&this->penalty_offset,iomodel_handle,PenaltyOffsetEnum);194 IoModelFetchData(&this->penalty_melting,iomodel_handle,PenaltyMeltingEnum);195 IoModelFetchData(&this->penalty_lock,iomodel_handle,PenaltyLockEnum);196 IoModelFetchData(&this->sparsity,iomodel_handle,SparsityEnum);197 IoModelFetchData(&this->connectivity,iomodel_handle,ConnectivityEnum);198 IoModelFetchData(&this->lowmem,iomodel_handle,LowmemEnum);199 IoModelFetchData(&this->viscosity_overshoot,iomodel_handle,ViscosityOvershootEnum);200 IoModelFetchData(&this->artdiff,iomodel_handle,ArtificialDiffusivityEnum);201 IoModelFetchData(&this->prognostic_DG,iomodel_handle,PrognosticDGEnum);202 IoModelFetchData(&this->stokesreconditioning,iomodel_handle,StokesreconditioningEnum);203 IoModelFetchData(&this->shelf_dampening,iomodel_handle,ShelfDampeningEnum);204 IoModelFetchData(&this->waitonlock,iomodel_handle,WaitonlockEnum);205 IoModelFetchData(&this->gl_migration,iomodel_handle,GlMigrationEnum);206 IoModelFetchData(&this->isdiagnostic,iomodel_handle,IsdiagnosticEnum);207 IoModelFetchData(&this->isprognostic,iomodel_handle,IsprognosticEnum);208 IoModelFetchData(&this->isthermal,iomodel_handle,IsthermalEnum);176 this->FetchData(&this->yts,YtsEnum); 177 this->FetchData(&this->meanvel,MeanvelEnum); 178 this->FetchData(&this->epsvel,EpsvelEnum); 179 this->FetchData(&this->verbose,VerboseBinaryEnum); 180 this->FetchData(&this->output_frequency,OutputFrequencyEnum); 181 this->FetchData(&this->prognostic_DG,PrognosticDGEnum); 182 this->FetchData(&this->nsteps,NstepsEnum); 183 this->FetchData(&this->eps_cm,EpsCmEnum); 184 this->FetchData(&this->tolx,TolxEnum); 185 this->FetchData(&this->cm_gradient,CmGradientEnum); 186 this->FetchData(&this->eps_res,EpsResEnum); 187 this->FetchData(&this->eps_rel,EpsRelEnum); 188 this->FetchData(&this->eps_abs,EpsAbsEnum); 189 this->FetchData(&this->max_nonlinear_iterations,MaxNonlinearIterationsEnum); 190 this->FetchData(&this->max_steadystate_iterations,MaxSteadystateIterationsEnum); 191 this->FetchData(&this->dt,DtEnum); 192 this->FetchData(&this->ndt,NdtEnum); 193 this->FetchData(&this->time_adapt,TimeAdaptEnum); 194 this->FetchData(&this->cfl_coefficient,CflCoefficientEnum); 195 this->FetchData(&this->hydrostatic_adjustment,HydrostaticAdjustmentEnum); 196 this->FetchData(&this->penalty_offset,PenaltyOffsetEnum); 197 this->FetchData(&this->penalty_melting,PenaltyMeltingEnum); 198 this->FetchData(&this->penalty_lock,PenaltyLockEnum); 199 this->FetchData(&this->sparsity,SparsityEnum); 200 this->FetchData(&this->connectivity,ConnectivityEnum); 201 this->FetchData(&this->lowmem,LowmemEnum); 202 this->FetchData(&this->viscosity_overshoot,ViscosityOvershootEnum); 203 this->FetchData(&this->artdiff,ArtificialDiffusivityEnum); 204 this->FetchData(&this->prognostic_DG,PrognosticDGEnum); 205 this->FetchData(&this->stokesreconditioning,StokesreconditioningEnum); 206 this->FetchData(&this->shelf_dampening,ShelfDampeningEnum); 207 this->FetchData(&this->waitonlock,WaitonlockEnum); 208 this->FetchData(&this->gl_migration,GlMigrationEnum); 209 this->FetchData(&this->isdiagnostic,IsdiagnosticEnum); 210 this->FetchData(&this->isprognostic,IsprognosticEnum); 211 this->FetchData(&this->isthermal,IsthermalEnum); 209 212 210 213 /*!Get thermal parameters: */ 211 IoModelFetchData(&this->beta,iomodel_handle,BetaEnum);212 IoModelFetchData(&this->meltingpoint,iomodel_handle,MeltingpointEnum);213 IoModelFetchData(&this->referencetemperature,iomodel_handle,ReferencetemperatureEnum);214 IoModelFetchData(&this->latentheat,iomodel_handle,LatentheatEnum);215 IoModelFetchData(&this->heatcapacity,iomodel_handle,HeatcapacityEnum);216 IoModelFetchData(&this->thermalconductivity,iomodel_handle,ThermalconductivityEnum);217 IoModelFetchData(&this->min_thermal_constraints,iomodel_handle,MinThermalConstraintsEnum);218 IoModelFetchData(&this->min_mechanical_constraints,iomodel_handle,MinMechanicalConstraintsEnum);219 IoModelFetchData(&this->stabilize_constraints,iomodel_handle,StabilizeConstraintsEnum);220 IoModelFetchData(&this->mixed_layer_capacity,iomodel_handle,MixedLayerCapacityEnum);221 IoModelFetchData(&this->thermal_exchange_velocity,iomodel_handle,ThermalExchangeVelocityEnum);222 IoModelFetchData(&this->basal_melting_rate_correction_apply,iomodel_handle,BasalMeltingRateCorrectionApplyEnum);223 IoModelFetchData(&this->gl_melting_rate,iomodel_handle,GlMeltingRateEnum);224 IoModelFetchData(&this->rheology_law,iomodel_handle,RheologyLawEnum);214 this->FetchData(&this->beta,BetaEnum); 215 this->FetchData(&this->meltingpoint,MeltingpointEnum); 216 this->FetchData(&this->referencetemperature,ReferencetemperatureEnum); 217 this->FetchData(&this->latentheat,LatentheatEnum); 218 this->FetchData(&this->heatcapacity,HeatcapacityEnum); 219 this->FetchData(&this->thermalconductivity,ThermalconductivityEnum); 220 this->FetchData(&this->min_thermal_constraints,MinThermalConstraintsEnum); 221 this->FetchData(&this->min_mechanical_constraints,MinMechanicalConstraintsEnum); 222 this->FetchData(&this->stabilize_constraints,StabilizeConstraintsEnum); 223 this->FetchData(&this->mixed_layer_capacity,MixedLayerCapacityEnum); 224 this->FetchData(&this->thermal_exchange_velocity,ThermalExchangeVelocityEnum); 225 this->FetchData(&this->basal_melting_rate_correction_apply,BasalMeltingRateCorrectionApplyEnum); 226 this->FetchData(&this->gl_melting_rate,GlMeltingRateEnum); 227 this->FetchData(&this->rheology_law,RheologyLawEnum); 225 228 226 229 /*!Get hydrology parameters: */ 227 IoModelFetchData(&this->hydro_kn,iomodel_handle,HydroKnEnum);228 IoModelFetchData(&this->hydro_p,iomodel_handle,HydroPEnum);229 IoModelFetchData(&this->hydro_q,iomodel_handle,HydroQEnum);230 IoModelFetchData(&this->hydro_CR,iomodel_handle,HydroCREnum);231 IoModelFetchData(&this->hydro_n,iomodel_handle,HydroNEnum);230 this->FetchData(&this->hydro_kn,HydroKnEnum); 231 this->FetchData(&this->hydro_p,HydroPEnum); 232 this->FetchData(&this->hydro_q,HydroQEnum); 233 this->FetchData(&this->hydro_CR,HydroCREnum); 234 this->FetchData(&this->hydro_n,HydroNEnum); 232 235 233 236 /*qmu: */ 234 237 if(this->qmu_analysis){ 235 IoModelFetchData(&this->numberofvariables,iomodel_handle,NumberOfVariablesEnum);236 IoModelFetchData(&this->numberofresponses,iomodel_handle,NumberOfResponsesEnum);237 IoModelFetchData(&this->qmu_npart,iomodel_handle,NpartEnum);238 IoModelFetchData(&this->qmu_save_femmodel,iomodel_handle,QmuSaveFemmodelEnum);238 this->FetchData(&this->numberofvariables,NumberOfVariablesEnum); 239 this->FetchData(&this->numberofresponses,NumberOfResponsesEnum); 240 this->FetchData(&this->qmu_npart,NpartEnum); 241 this->FetchData(&this->qmu_save_femmodel,QmuSaveFemmodelEnum); 239 242 } 240 243 241 244 /*i/o: */ 242 IoModelFetchData(&this->io_gather,iomodel_handle,IoGatherEnum);245 this->FetchData(&this->io_gather,IoGatherEnum); 243 246 } 244 247 /*}}}*/ … … 424 427 } 425 428 /*}}}*/ 429 /*FUNCTION IoModel::FetchData(bool* pbool,int data_enum){{{1*/ 430 void IoModel::FetchData(bool* pboolean,int data_enum){ 431 432 extern int my_rank; 433 extern int num_procs; 434 435 436 /*output: */ 437 bool boolean; 438 int code; 439 440 /*Set file pointer to beginning of the data: */ 441 fid=this->SetFilePointerToData(&code,NULL,data_enum); 442 443 if(code!=1)_error_("%s%s","IoModel::FetchData expecting a boolean for enum ",EnumToStringx(data_enum)); 444 445 /*We have to read a boolean from disk. */ 446 if(my_rank==0){ 447 if(fread(&boolean,sizeof(bool),1,fid)!=1) _error_(" could not read boolean "); 448 } 449 450 MPI_Bcast(&boolean,1,MPI_BYTE,0,MPI_COMM_WORLD); 451 452 /*Assign output pointers: */ 453 *pboolean=boolean; 454 455 } 456 /*}}}*/ 457 /*FUNCTION IoModel::FetchData(int* pinteger,int data_enum){{{1*/ 458 void IoModel::FetchData(int* pinteger,int data_enum){ 459 460 extern int my_rank; 461 extern int num_procs; 462 463 464 /*output: */ 465 int integer; 466 int code; 467 468 /*Set file pointer to beginning of the data: */ 469 fid=this->SetFilePointerToData(&code,NULL,data_enum); 470 471 if(code!=2)_error_("%s%s","IoModel::FetchData expecting an integer for enum ",EnumToStringx(data_enum)); 472 473 /*We have to read a integer from disk. First read the dimensions of the integer, then the integer: */ 474 if(my_rank==0){ 475 if(fread(&integer,sizeof(int),1,fid)!=1) _error_(" could not read integer "); 476 } 477 478 MPI_Bcast(&integer,1,MPI_INT,0,MPI_COMM_WORLD); 479 480 /*Assign output pointers: */ 481 *pinteger=integer; 482 483 } 484 /*}}}*/ 485 /*FUNCTION IoModel::FetchData(double* pscalar,int data_enum){{{1*/ 486 void IoModel::FetchData(double* pscalar,int data_enum){ 487 488 489 extern int my_rank; 490 extern int num_procs; 491 492 493 /*output: */ 494 double scalar; 495 int code; 496 497 /*Set file pointer to beginning of the data: */ 498 fid=this->SetFilePointerToData(&code,NULL,data_enum); 499 500 if(code!=3)_error_("%s%s","IoModel::FetchData expecting a double for enum ",EnumToStringx(data_enum)); 501 502 /*We have to read a scalar from disk. First read the dimensions of the scalar, then the scalar: */ 503 if(my_rank==0){ 504 if(fread(&scalar,sizeof(double),1,fid)!=1)_error_(" could not read scalar "); 505 } 506 MPI_Bcast(&scalar,1,MPI_DOUBLE,0,MPI_COMM_WORLD); 507 508 /*Assign output pointers: */ 509 *pscalar=scalar; 510 511 } 512 /*}}}*/ 513 /*FUNCTION IoModel::FetchData(char** pstring,int data_enum){{{1*/ 514 void IoModel::FetchData(char** pstring,int data_enum){ 515 516 extern int my_rank; 517 extern int num_procs; 518 519 520 /*output: */ 521 char* string=NULL; 522 int string_size; 523 int code=0; 524 525 /*Set file pointer to beginning of the data: */ 526 fid=this->SetFilePointerToData(&code,NULL,data_enum); 527 528 if(code!=4)_error_("%s%s","IoModel::FetchData expecting a string for enum ",EnumToStringx(data_enum)); 529 530 /*Now fetch: */ 531 532 /*We have to read a string from disk. First read the dimensions of the string, then the string: */ 533 if(my_rank==0){ 534 if(fread(&string_size,sizeof(int),1,fid)!=1) _error_(" could not read length of string "); 535 } 536 537 MPI_Bcast(&string_size,1,MPI_INT,0,MPI_COMM_WORLD); 538 539 /*Now allocate string: */ 540 if(string_size){ 541 string=(char*)xmalloc((string_size+1)*sizeof(char)); 542 string[string_size]='\0'; 543 544 /*Read string on node 0, then broadcast: */ 545 if(my_rank==0){ 546 if(fread(string,string_size*sizeof(char),1,fid)!=1)_error_(" could not read string "); 547 } 548 MPI_Bcast(string,string_size,MPI_CHAR,0,MPI_COMM_WORLD); 549 } 550 else{ 551 string=(char*)xmalloc(sizeof(char)); 552 string[0]='\0'; 553 } 554 555 556 /*Assign output pointers: */ 557 *pstring=string; 558 } 559 /*}}}*/ 560 /*FUNCTION IoModel::FetchData(double** pdoublematrix,int* pM,int* pN,int data_enum){{{1*/ 561 void IoModel::FetchData(double** pmatrix,int* pM,int* pN,int data_enum){ 562 563 extern int my_rank; 564 extern int num_procs; 565 566 /*output: */ 567 int M,N; 568 double* matrix=NULL; 569 int code=0; 570 int vector_type=0; 571 572 573 574 /*Set file pointer to beginning of the data: */ 575 fid=this->SetFilePointerToData(&code,&vector_type,data_enum); 576 577 if((code!=5) && (code!=6) && (code!=7))_error_("%s%s","IoModel::FetchData expecting a double, integer or boolean matrix for enum ",EnumToStringx(data_enum)); 578 579 /*Now fetch: */ 580 581 /*We have to read a matrix from disk. First read the dimensions of the matrix, then the whole matrix: */ 582 /*numberofelements: */ 583 if(my_rank==0){ 584 if(fread(&M,sizeof(int),1,fid)!=1) _error_("could not read number of rows for matrix "); 585 } 586 587 MPI_Bcast(&M,1,MPI_INT,0,MPI_COMM_WORLD); 588 589 if(my_rank==0){ 590 if(fread(&N,sizeof(int),1,fid)!=1) _error_("could not read number of columns for matrix "); 591 } 592 MPI_Bcast(&N,1,MPI_INT,0,MPI_COMM_WORLD); 593 594 /*Now allocate matrix: */ 595 if(M*N){ 596 matrix=(double*)xmalloc(M*N*sizeof(double)); 597 598 /*Read matrix on node 0, then broadcast: */ 599 if(my_rank==0){ 600 if(fread(matrix,M*N*sizeof(double),1,fid)!=1) _error_("could not read matrix "); 601 } 602 603 MPI_Bcast(matrix,M*N,MPI_DOUBLE,0,MPI_COMM_WORLD); 604 } 605 606 /*Assign output pointers: */ 607 *pmatrix=matrix; 608 if (pM)*pM=M; 609 if (pN)*pN=N; 610 611 } 612 /*}}}*/ 613 /*FUNCTION IoModel::FetchData(char*** pstrings,int* pnumstrings,int data_enum){{{1*/ 614 void IoModel::FetchData(char*** pstrings,int* pnumstrings,int data_enum){ 615 616 extern int my_rank; 617 extern int num_procs; 618 619 int i; 620 621 /*output: */ 622 int numstrings=0; 623 char** strings=NULL; 624 625 /*intermediary: */ 626 char* string=NULL; 627 int string_size; 628 int code; 629 630 /*Set file pointer to beginning of the data: */ 631 fid=this->SetFilePointerToData(&code,NULL,data_enum); 632 633 if(code!=9)_error_("%s%s","IoModel::FetchData expecting a string array for enum ",EnumToStringx(data_enum)); 634 635 /*We have to read a bunch of strings from disk. First read the number of strings, and allocate: */ 636 if(my_rank==0){ 637 if(fread(&numstrings,sizeof(int),1,fid)!=1) _error_(" could not read length of string array"); 638 } 639 MPI_Bcast(&numstrings,1,MPI_INT,0,MPI_COMM_WORLD); 640 641 /*Now allocate string array: */ 642 if(numstrings){ 643 strings=(char**)xmalloc(numstrings*sizeof(char*)); 644 for(i=0;i<numstrings;i++)strings[i]=NULL; 645 646 /*Go through strings, and read: */ 647 for(i=0;i<numstrings;i++){ 648 649 if(my_rank==0){ 650 if(fread(&string_size,sizeof(int),1,fid)!=1) _error_(" could not read length of string "); 651 } 652 MPI_Bcast(&string_size,1,MPI_INT,0,MPI_COMM_WORLD); 653 if(string_size){ 654 string=(char*)xmalloc((string_size+1)*sizeof(char)); 655 string[string_size]='\0'; 656 657 /*Read string on node 0, then broadcast: */ 658 if(my_rank==0){ 659 if(fread(string,string_size*sizeof(char),1,fid)!=1)_error_(" could not read string "); 660 } 661 MPI_Bcast(string,string_size,MPI_CHAR,0,MPI_COMM_WORLD); 662 } 663 else{ 664 string=(char*)xmalloc(sizeof(char)); 665 string[0]='\0'; 666 } 667 668 strings[i]=string; 669 } 670 } 671 672 /*Assign output pointers: */ 673 *pstrings=strings; 674 *pnumstrings=numstrings; 675 } 676 /*}}}*/ 677 /*FUNCTION IoModel::FetchData(double*** pmatrices,int** pmdims,int** pndims, int* pM,int data_enum){{{1*/ 678 void IoModel::FetchData(double*** pmatrices,int** pmdims,int** pndims, int* pnumrecords,int data_enum){ 679 680 int i; 681 682 extern int my_rank; 683 extern int num_procs; 684 685 /*output: */ 686 double** matrices=NULL; 687 int* mdims=NULL; 688 int* ndims=NULL; 689 int numrecords=0; 690 691 /*intermediary: */ 692 int M,N; 693 double* matrix=NULL; 694 695 696 int code; 697 698 /*Set file pointer to beginning of the data: */ 699 fid=this->SetFilePointerToData(&code,NULL,data_enum); 700 701 if(code!=8)_error_("%s%s","IoModel::FetchData expecting a double mat array for enum ",EnumToStringx(data_enum)); 702 703 /*Now fetch: */ 704 if(my_rank==0){ 705 if(fread(&numrecords,sizeof(int),1,fid)!=1) _error_("could not read number of records in matrix array "); 706 } 707 MPI_Bcast(&numrecords,1,MPI_INT,0,MPI_COMM_WORLD); 708 709 if(numrecords){ 710 711 /*Allocate matrices :*/ 712 matrices=(double**)xmalloc(numrecords*sizeof(double*)); 713 mdims=(int*)xmalloc(numrecords*sizeof(int)); 714 ndims=(int*)xmalloc(numrecords*sizeof(int)); 715 716 for(i=0;i<numrecords;i++){ 717 matrices[i]=NULL; 718 mdims[i]=0; 719 ndims[i]=0; 720 } 721 722 /*Loop through records and fetch matrix: */ 723 for(i=0;i<numrecords;i++){ 724 725 if(my_rank==0){ 726 if(fread(&M,sizeof(int),1,fid)!=1) _error_("%s%i%s","could not read number of rows in ",i,"th matrix of matrix array"); 727 } 728 MPI_Bcast(&M,1,MPI_INT,0,MPI_COMM_WORLD); 729 730 if(my_rank==0){ 731 if(fread(&N,sizeof(int),1,fid)!=1) _error_("%s%i%s","could not read number of columns in ",i,"th matrix of matrix array"); 732 } 733 MPI_Bcast(&N,1,MPI_INT,0,MPI_COMM_WORLD); 734 735 /*Now allocate matrix: */ 736 if(M*N){ 737 matrix=(double*)xmalloc(M*N*sizeof(double)); 738 739 /*Read matrix on node 0, then broadcast: */ 740 if(my_rank==0){ 741 if(fread(matrix,M*N*sizeof(double),1,fid)!=1) _error_("could not read matrix "); 742 } 743 744 MPI_Bcast(matrix,M*N,MPI_DOUBLE,0,MPI_COMM_WORLD); 745 } 746 747 /*Assign: */ 748 matrices[i]=matrix; 749 mdims[i]=M; 750 ndims[i]=N; 751 } 752 } 753 754 /*Assign output pointers: */ 755 *pmatrices=matrices; 756 *pmdims=mdims; 757 *pndims=ndims; 758 *pnumrecords=numrecords; 759 } 760 /*}}}*/ 761 /*FUNCTION IoModel::SetFilePointerToData(int* pcode,int* pvector_type, int data_enum){{{1*/ 762 FILE* IoModel::SetFilePointerToData(int* pcode,int* pvector_type, int data_enum){ 763 764 extern int my_rank; 765 extern int num_procs; 766 767 768 int found=0; 769 int record_enum; 770 int record_length; 771 int record_code; //1 to 7 number 772 int vector_type; //nodal or elementary 773 774 /*Go find in the binary file, the position of the data we want to fetch: */ 775 if(my_rank==0){ 776 777 /*First set FILE* position to the beginning of the file: */ 778 fseek(fid,0,SEEK_SET); 779 780 /*Now march through file looking for the correct data identifier: */ 781 for(;;){ 782 /*Read enum for this size of first string name: */ 783 if(fread(&record_enum,sizeof(int),1,fid)==0){ 784 /*Ok, we have reached the end of the file. break: */ 785 found=0; 786 break; 787 } 788 789 /*Is this the record sought for? : */ 790 if (data_enum==record_enum){ 791 /*Ok, we have found the correct string. Pass the record length, and read data type code: */ 792 fseek(fid,sizeof(int),SEEK_CUR); 793 fread(&record_code,sizeof(int),1,fid); 794 795 /*if record_code points to a vector, get its type (nodal or elementary): */ 796 if(5<=record_code && record_code<=7)fread(&vector_type,sizeof(int),1,fid); 797 found=1; 798 break; 799 } 800 else{ 801 /*This is not the correct string, read the record length, and use it to skip this record: */ 802 fread(&record_length,sizeof(int),1,fid); 803 /*skip: */ 804 fseek(fid,record_length,SEEK_CUR); 805 } 806 } 807 } 808 MPI_Bcast(&found,1,MPI_INT,0,MPI_COMM_WORLD); 809 if(!found)_error_("%s %s ","could not find data with name",EnumToStringx(data_enum)); 810 811 /*Broadcast code and vector type: */ 812 MPI_Bcast(&record_code,1,MPI_INT,0,MPI_COMM_WORLD); 813 MPI_Bcast(&vector_type,1,MPI_INT,0,MPI_COMM_WORLD); 814 if(record_code==5) MPI_Bcast(&vector_type,1,MPI_INT,0,MPI_COMM_WORLD); 815 816 /*Assign output pointers:*/ 817 *pcode=record_code; 818 if(pvector_type)*pvector_type=vector_type; 819 820 return fid; 821 } 822 /*}}}*/ 426 823 /*FUNCTION IoModel::Echo{{{1*/ 427 824 void IoModel::Echo(int which_part,int rank) { -
issm/trunk/src/c/objects/IoModel.h
r9338 r9340 11 11 12 12 class IoModel { 13 14 private: 15 FILE* fid; //pointer to input file 13 16 14 17 public: … … 229 232 void Echo(int which_part,int rank); 230 233 /*}}}*/ 234 /*Input/Output:{{{1*/ 235 void FetchData(bool* pboolean,int data_enum); 236 void FetchData(int* pinteger,int data_enum); 237 void FetchData(double* pscalar,int data_enum); 238 void FetchData(char** pstring,int data_enum); 239 void FetchData(double** pscalarmatrix,int* pM,int* pN,int data_enum); 240 void FetchData(char*** pstringarray,int* pnumstrings,int data_enum); 241 void FetchData(double*** pmatrixarray,int** pmdims,int** pndims, int* pnumrecords,int data_enum); 242 FILE* SetFilePointerToData(int* pcode,int* pvector_type, int data_enum); 243 /*}}}*/ 231 244 232 245 };
Note:
See TracChangeset
for help on using the changeset viewer.