Changeset 9343
- Timestamp:
- 08/12/11 18:45:12 (14 years ago)
- Location:
- issm/trunk/src/c
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/Makefile.am
r9340 r9343 569 569 ./modules/Gradjx/Gradjx.h\ 570 570 ./modules/Gradjx/Gradjx.cpp\ 571 ./modules/IoModelToInputsx/IoModelToInputsx.h\572 ./modules/IoModelToInputsx/IoModelToInputsx.cpp\573 571 ./modules/IoModelToConstraintsx/IoModelToConstraintsx.h\ 574 572 ./modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp\ … … 1257 1255 ./modules/Gradjx/Gradjx.h\ 1258 1256 ./modules/Gradjx/Gradjx.cpp\ 1259 ./modules/IoModelToInputsx/IoModelToInputsx.h\1260 ./modules/IoModelToInputsx/IoModelToInputsx.cpp\1261 1257 ./modules/IoModelToConstraintsx/IoModelToConstraintsx.h\ 1262 1258 ./modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp\ -
issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/UpdateElementsBalancethickness.cpp
r9340 r9343 29 29 } 30 30 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);31 iomodel->FetchDataToInput(elements,ThicknessEnum); 32 iomodel->FetchDataToInput(elements,SurfaceEnum); 33 iomodel->FetchDataToInput(elements,BedEnum); 34 iomodel->FetchDataToInput(elements,ElementOnIceShelfEnum); 35 iomodel->FetchDataToInput(elements,ElementOnWaterEnum); 36 iomodel->FetchDataToInput(elements,VxEnum); 37 iomodel->FetchDataToInput(elements,VyEnum); 38 iomodel->FetchDataToInput(elements,BasalMeltingRateEnum); 39 iomodel->FetchDataToInput(elements,SurfaceAccumulationRateEnum); 40 iomodel->FetchDataToInput(elements,SurfaceAblationRateEnum); 41 iomodel->FetchDataToInput(elements,SurfaceMassBalanceEnum); 42 iomodel->FetchDataToInput(elements,DhdtEnum); 43 43 44 44 if (iomodel->dim==3){ 45 IoModelToInputsx(elements,iomodel,ElementOnBedEnum);46 IoModelToInputsx(elements,iomodel,ElementOnSurfaceEnum);45 iomodel->FetchDataToInput(elements,ElementOnBedEnum); 46 iomodel->FetchDataToInput(elements,ElementOnSurfaceEnum); 47 47 } 48 48 /*Free data: */ -
issm/trunk/src/c/modules/ModelProcessorx/BedSlope/UpdateElementsBedSlope.cpp
r9340 r9343 29 29 } 30 30 31 IoModelToInputsx(elements,iomodel,SurfaceEnum);32 IoModelToInputsx(elements,iomodel,BedEnum);33 IoModelToInputsx(elements,iomodel,ElementOnWaterEnum);31 iomodel->FetchDataToInput(elements,SurfaceEnum); 32 iomodel->FetchDataToInput(elements,BedEnum); 33 iomodel->FetchDataToInput(elements,ElementOnWaterEnum); 34 34 35 35 if (iomodel->dim==3){ 36 IoModelToInputsx(elements,iomodel,ElementOnBedEnum);37 IoModelToInputsx(elements,iomodel,ElementOnSurfaceEnum);36 iomodel->FetchDataToInput(elements,ElementOnBedEnum); 37 iomodel->FetchDataToInput(elements,ElementOnSurfaceEnum); 38 38 } 39 39 -
issm/trunk/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp
r9340 r9343 28 28 iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum); 29 29 30 IoModelToInputsx(elements,iomodel,VxObsEnum);31 IoModelToInputsx(elements,iomodel,VyObsEnum);32 IoModelToInputsx(elements,iomodel,ThicknessObsEnum);30 iomodel->FetchDataToInput(elements,VxObsEnum); 31 iomodel->FetchDataToInput(elements,VyObsEnum); 32 iomodel->FetchDataToInput(elements,ThicknessObsEnum); 33 33 34 34 iomodel->FetchData(&iomodel->control_type,NULL,NULL,ControlTypeEnum); -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp
r9340 r9343 34 34 35 35 /*Create inputs: */ 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);36 iomodel->FetchDataToInput(elements,ThicknessEnum); 37 iomodel->FetchDataToInput(elements,ThicknessCoeffEnum); 38 iomodel->FetchDataToInput(elements,SurfaceEnum); 39 iomodel->FetchDataToInput(elements,BedEnum); 40 iomodel->FetchDataToInput(elements,DragCoefficientEnum); 41 iomodel->FetchDataToInput(elements,DragPEnum); 42 iomodel->FetchDataToInput(elements,DragQEnum); 43 iomodel->FetchDataToInput(elements,DragTypeEnum); 44 iomodel->FetchDataToInput(elements,ElementOnIceShelfEnum); 45 iomodel->FetchDataToInput(elements,ElementOnWaterEnum); 46 iomodel->FetchDataToInput(elements,RheologyBEnum); 47 iomodel->FetchDataToInput(elements,RheologyNEnum); 48 iomodel->FetchDataToInput(elements,VxEnum,VxObsEnum,0); 49 iomodel->FetchDataToInput(elements,VyEnum,VyObsEnum,0); 50 iomodel->FetchDataToInput(elements,BathymetryEnum); 51 51 52 52 if (iomodel->dim==3){ 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);53 iomodel->FetchDataToInput(elements,ElementOnBedEnum); 54 iomodel->FetchDataToInput(elements,ElementOnSurfaceEnum); 55 iomodel->FetchDataToInput(elements,VzEnum); 56 iomodel->FetchDataToInput(elements,SurfaceAccumulationRateEnum); 57 iomodel->FetchDataToInput(elements,SurfaceAblationRateEnum); 58 iomodel->FetchDataToInput(elements,SurfaceMassBalanceEnum); 59 iomodel->FetchDataToInput(elements,BasalMeltingRateEnum); 60 iomodel->FetchDataToInput(elements,NodeOnStokesEnum); 61 61 } 62 62 63 63 if(iomodel->control_analysis){ 64 IoModelToInputsx(elements,iomodel,VxObsEnum);65 IoModelToInputsx(elements,iomodel,VyObsEnum);64 iomodel->FetchDataToInput(elements,VxObsEnum); 65 iomodel->FetchDataToInput(elements,VyObsEnum); 66 66 } 67 67 -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/UpdateElementsDiagnosticHutter.cpp
r9340 r9343 33 33 } 34 34 35 IoModelToInputsx(elements,iomodel,NodeOnHutterEnum);36 IoModelToInputsx(elements,iomodel,ThicknessEnum);37 IoModelToInputsx(elements,iomodel,ThicknessCoeffEnum);35 iomodel->FetchDataToInput(elements,NodeOnHutterEnum); 36 iomodel->FetchDataToInput(elements,ThicknessEnum); 37 iomodel->FetchDataToInput(elements,ThicknessCoeffEnum); 38 38 39 39 /*Free data: */ -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/UpdateElementsDiagnosticVert.cpp
r9340 r9343 32 32 } 33 33 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);34 iomodel->FetchDataToInput(elements,ThicknessEnum); 35 iomodel->FetchDataToInput(elements,ThicknessCoeffEnum); 36 iomodel->FetchDataToInput(elements,SurfaceEnum); 37 iomodel->FetchDataToInput(elements,BedEnum); 38 iomodel->FetchDataToInput(elements,ElementOnIceShelfEnum); 39 iomodel->FetchDataToInput(elements,ElementOnBedEnum); 40 iomodel->FetchDataToInput(elements,ElementOnSurfaceEnum); 41 iomodel->FetchDataToInput(elements,ElementOnWaterEnum); 42 iomodel->FetchDataToInput(elements,BasalMeltingRateEnum); 43 iomodel->FetchDataToInput(elements,SurfaceAccumulationRateEnum); 44 iomodel->FetchDataToInput(elements,SurfaceAblationRateEnum); 45 iomodel->FetchDataToInput(elements,SurfaceMassBalanceEnum); 46 iomodel->FetchDataToInput(elements,VxEnum); 47 iomodel->FetchDataToInput(elements,VyEnum); 48 48 49 49 /*Free data: */ -
issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/UpdateElementsEnthalpy.cpp
r9340 r9343 32 32 } 33 33 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);34 iomodel->FetchDataToInput(elements,ThicknessEnum); 35 iomodel->FetchDataToInput(elements,SurfaceEnum); 36 iomodel->FetchDataToInput(elements,BedEnum); 37 iomodel->FetchDataToInput(elements,DragCoefficientEnum); 38 iomodel->FetchDataToInput(elements,DragPEnum); 39 iomodel->FetchDataToInput(elements,DragQEnum); 40 iomodel->FetchDataToInput(elements,ElementOnIceShelfEnum); 41 iomodel->FetchDataToInput(elements,ElementOnBedEnum); 42 iomodel->FetchDataToInput(elements,ElementOnSurfaceEnum); 43 iomodel->FetchDataToInput(elements,ElementOnWaterEnum); 44 iomodel->FetchDataToInput(elements,ElementsTypeEnum); 45 iomodel->FetchDataToInput(elements,RheologyBEnum); 46 iomodel->FetchDataToInput(elements,RheologyNEnum); 47 iomodel->FetchDataToInput(elements,PressureEnum); 48 iomodel->FetchDataToInput(elements,TemperatureEnum); 49 iomodel->FetchDataToInput(elements,WaterfractionEnum); 50 iomodel->FetchDataToInput(elements,GeothermalfluxEnum); 51 iomodel->FetchDataToInput(elements,VxEnum); 52 iomodel->FetchDataToInput(elements,VyEnum); 53 iomodel->FetchDataToInput(elements,VzEnum); 54 54 55 55 /*Free data: */ -
issm/trunk/src/c/modules/ModelProcessorx/Hydrology/UpdateElementsHydrology.cpp
r9340 r9343 29 29 } 30 30 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);31 iomodel->FetchDataToInput(elements,ThicknessEnum); 32 iomodel->FetchDataToInput(elements,SurfaceEnum); 33 iomodel->FetchDataToInput(elements,BedEnum); 34 iomodel->FetchDataToInput(elements,DragCoefficientEnum); 35 iomodel->FetchDataToInput(elements,DragPEnum); 36 iomodel->FetchDataToInput(elements,DragQEnum); 37 iomodel->FetchDataToInput(elements,ElementOnIceShelfEnum); 38 iomodel->FetchDataToInput(elements,ElementOnBedEnum); 39 iomodel->FetchDataToInput(elements,ElementOnSurfaceEnum); 40 iomodel->FetchDataToInput(elements,ElementOnWaterEnum); 41 iomodel->FetchDataToInput(elements,ElementsTypeEnum); 42 iomodel->FetchDataToInput(elements,RheologyBEnum); 43 iomodel->FetchDataToInput(elements,RheologyNEnum); 44 iomodel->FetchDataToInput(elements,PressureEnum); 45 iomodel->FetchDataToInput(elements,TemperatureEnum); 46 iomodel->FetchDataToInput(elements,BasalMeltingRateEnum); 47 iomodel->FetchDataToInput(elements,WatercolumnEnum); 48 iomodel->FetchDataToInput(elements,GeothermalfluxEnum); 49 iomodel->FetchDataToInput(elements,VxEnum); 50 iomodel->FetchDataToInput(elements,VyEnum); 51 iomodel->FetchDataToInput(elements,VzEnum); 52 52 53 53 elements->InputDuplicate(WatercolumnEnum,WaterColumnOldEnum); -
issm/trunk/src/c/modules/ModelProcessorx/Melting/UpdateElementsMelting.cpp
r9340 r9343 33 33 34 34 /*Create inputs: */ 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);35 iomodel->FetchDataToInput(elements,ThicknessEnum); 36 iomodel->FetchDataToInput(elements,SurfaceEnum); 37 iomodel->FetchDataToInput(elements,BedEnum); 38 iomodel->FetchDataToInput(elements,DragCoefficientEnum); 39 iomodel->FetchDataToInput(elements,DragPEnum); 40 iomodel->FetchDataToInput(elements,DragQEnum); 41 iomodel->FetchDataToInput(elements,ElementOnIceShelfEnum); 42 iomodel->FetchDataToInput(elements,ElementOnBedEnum); 43 iomodel->FetchDataToInput(elements,ElementOnSurfaceEnum); 44 iomodel->FetchDataToInput(elements,ElementOnWaterEnum); 45 iomodel->FetchDataToInput(elements,ElementsTypeEnum); 46 iomodel->FetchDataToInput(elements,RheologyBEnum); 47 iomodel->FetchDataToInput(elements,RheologyNEnum); 48 iomodel->FetchDataToInput(elements,SurfaceAccumulationRateEnum); 49 iomodel->FetchDataToInput(elements,SurfaceAblationRateEnum); 50 iomodel->FetchDataToInput(elements,SurfaceMassBalanceEnum); 51 iomodel->FetchDataToInput(elements,BasalMeltingRateEnum); 52 iomodel->FetchDataToInput(elements,PressureEnum); 53 53 54 54 /*Free data: */ -
issm/trunk/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp
r9340 r9343 29 29 } 30 30 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);31 iomodel->FetchDataToInput(elements,ThicknessEnum); 32 iomodel->FetchDataToInput(elements,SurfaceEnum); 33 iomodel->FetchDataToInput(elements,BedEnum); 34 iomodel->FetchDataToInput(elements,ElementOnIceShelfEnum); 35 iomodel->FetchDataToInput(elements,ElementOnWaterEnum); 36 iomodel->FetchDataToInput(elements,SurfaceAccumulationRateEnum); 37 iomodel->FetchDataToInput(elements,SurfaceAblationRateEnum); 38 iomodel->FetchDataToInput(elements,SurfaceMassBalanceEnum); 39 iomodel->FetchDataToInput(elements,BasalMeltingRateEnum); 40 iomodel->FetchDataToInput(elements,BasalMeltingRateCorrectionEnum); 41 iomodel->FetchDataToInput(elements,VxEnum); 42 iomodel->FetchDataToInput(elements,VyEnum); 43 43 44 44 if(iomodel->prognostic_DG){ 45 IoModelToInputsx(elements,iomodel,SpcthicknessEnum); //for DG, we need the spc in the element45 iomodel->FetchDataToInput(elements,SpcthicknessEnum); //for DG, we need the spc in the element 46 46 } 47 47 48 48 if (iomodel->dim==3){ 49 IoModelToInputsx(elements,iomodel,ElementOnBedEnum);50 IoModelToInputsx(elements,iomodel,ElementOnSurfaceEnum);51 IoModelToInputsx(elements,iomodel,PressureEnum);52 IoModelToInputsx(elements,iomodel,TemperatureEnum);49 iomodel->FetchDataToInput(elements,ElementOnBedEnum); 50 iomodel->FetchDataToInput(elements,ElementOnSurfaceEnum); 51 iomodel->FetchDataToInput(elements,PressureEnum); 52 iomodel->FetchDataToInput(elements,TemperatureEnum); 53 53 } 54 54 -
issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/UpdateElementsSurfaceSlope.cpp
r9340 r9343 29 29 } 30 30 31 IoModelToInputsx(elements,iomodel,SurfaceEnum);32 IoModelToInputsx(elements,iomodel,BedEnum);33 IoModelToInputsx(elements,iomodel,ElementOnWaterEnum);31 iomodel->FetchDataToInput(elements,SurfaceEnum); 32 iomodel->FetchDataToInput(elements,BedEnum); 33 iomodel->FetchDataToInput(elements,ElementOnWaterEnum); 34 34 35 35 if (iomodel->dim==3){ 36 IoModelToInputsx(elements,iomodel,ElementOnBedEnum);37 IoModelToInputsx(elements,iomodel,ElementOnSurfaceEnum);36 iomodel->FetchDataToInput(elements,ElementOnBedEnum); 37 iomodel->FetchDataToInput(elements,ElementOnSurfaceEnum); 38 38 } 39 39 -
issm/trunk/src/c/modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp
r9340 r9343 32 32 } 33 33 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);34 iomodel->FetchDataToInput(elements,ThicknessEnum); 35 iomodel->FetchDataToInput(elements,SurfaceEnum); 36 iomodel->FetchDataToInput(elements,BedEnum); 37 iomodel->FetchDataToInput(elements,DragCoefficientEnum); 38 iomodel->FetchDataToInput(elements,DragPEnum); 39 iomodel->FetchDataToInput(elements,DragQEnum); 40 iomodel->FetchDataToInput(elements,DragTypeEnum); 41 iomodel->FetchDataToInput(elements,ElementOnIceShelfEnum); 42 iomodel->FetchDataToInput(elements,ElementOnBedEnum); 43 iomodel->FetchDataToInput(elements,ElementOnSurfaceEnum); 44 iomodel->FetchDataToInput(elements,ElementOnWaterEnum); 45 iomodel->FetchDataToInput(elements,ElementsTypeEnum); 46 iomodel->FetchDataToInput(elements,RheologyBEnum); 47 iomodel->FetchDataToInput(elements,RheologyNEnum); 48 iomodel->FetchDataToInput(elements,PressureEnum); 49 iomodel->FetchDataToInput(elements,TemperatureEnum); 50 iomodel->FetchDataToInput(elements,GeothermalfluxEnum); 51 iomodel->FetchDataToInput(elements,VxEnum); 52 iomodel->FetchDataToInput(elements,VyEnum); 53 iomodel->FetchDataToInput(elements,VzEnum); 54 54 55 55 if(iomodel->qmu_analysis)elements->InputDuplicate(TemperatureEnum,QmuTemperatureEnum); -
issm/trunk/src/c/objects/IoModel.cpp
r9340 r9343 843 843 } 844 844 /*}}}*/ 845 /*FUNCTION IoModel::FetchDataToInput(Elements* elements,IoModel* iomodel,int vector_enum,int default_vector_enum,double default_value{{{1*/ 846 void IoModel::FetchDataToInput(Elements* elements,int vector_enum,int default_vector_enum,double default_value){ 847 848 849 /*intermediary: */ 850 int i; 851 bool defaulting = false; 852 bool transient = false; 853 854 FILE *fid = NULL; 855 int code = 0; 856 int vector_layout = 0; 857 int counter; 858 int nods; 859 int nel; 860 861 862 /*variables being fetched: */ 863 bool boolean; 864 int integer; 865 double scalar; 866 char *string = NULL; 867 double *doublevector = NULL; 868 int M,N; 869 870 /*First of, find the record for the enum, and get code of data type: */ 871 fid=this->SetFilePointerToData(&code, &vector_layout,vector_enum); 872 873 switch(code){ 874 case 1: //boolean constant. {{{2 875 this->FetchData(&boolean,vector_enum); 876 877 /*Add boolean constant input to all elements: */ 878 counter=0; 879 for (i=0;i<this->numberofelements;i++){ 880 if(this->my_elements[i]){ 881 Element* element=(Element*)elements->GetObjectByOffset(counter); 882 element->InputCreate((double)boolean,vector_enum,code); 883 counter++; 884 } 885 } 886 break; /*}}}*/ 887 case 2: //integer constant. {{{2 888 this->FetchData(&integer,vector_enum); 889 890 /*Add integer constant input to all elements: */ 891 counter=0; 892 for (i=0;i<this->numberofelements;i++){ 893 if(this->my_elements[i]){ 894 Element* element=(Element*)elements->GetObjectByOffset(counter); 895 element->InputCreate((double)integer,vector_enum,code); 896 counter++; 897 } 898 } 899 break; /*}}}*/ 900 case 3: //double constant. {{{2 901 this->FetchData(&scalar,vector_enum); 902 903 /*Add double constant input to all elements: */ 904 counter=0; 905 for (i=0;i<this->numberofelements;i++){ 906 if(this->my_elements[i]){ 907 Element* element=(Element*)elements->GetObjectByOffset(counter); 908 element->InputCreate(scalar,vector_enum,code); 909 counter++; 910 } 911 } 912 break; /*}}}*/ 913 case 5: //boolean vector. {{{2 914 915 /*Fetch vector:*/ 916 this->FetchData(&doublevector,&M,&N,vector_enum); //we still have a doublevector, because it might include times in transient mode 917 /*Check we got something, otherwise fetch default: */ 918 if(doublevector){ 919 defaulting=false; //we are not defaulting, because we do have a vector 920 } 921 else{ 922 /*do we have a default enum to go fetch? */ 923 if(default_vector_enum!=NoneEnum){ 924 /*yes. fetch it: */ 925 this->FetchData(&doublevector,&M,&N,default_vector_enum); 926 if(doublevector){ 927 defaulting=false; //we are not defaulting, because we do have a vector 928 } 929 else{ 930 /*even the default vector is non existent. we are defaulting to the default value: */ 931 defaulting=true; 932 } 933 } 934 else{ 935 /*we are left with the default value: */ 936 defaulting=true; 937 } 938 } 939 940 /*Create inputs:*/ 941 counter=0; 942 for (i=0;i<this->numberofelements;i++){ 943 if(this->my_elements[i]){ 944 Element* element=(Element*)elements->GetObjectByOffset(counter); 945 if(defaulting) element->InputCreate(default_value,vector_enum,code); 946 else element->InputCreate(doublevector,i,this,M,N,vector_layout,vector_enum,code);//we need i to index into elements. 947 counter++; 948 } 949 } 950 break; /*}}}*/ 951 case 6: //int vector. {{{2 952 953 /*Fetch vector:*/ 954 this->FetchData(&doublevector,&M,&N,vector_enum); //we still have a doublevector, because it might include times in transient mode 955 /*Check we got something, otherwise fetch default: */ 956 if(doublevector){ 957 defaulting=false; //we are not defaulting, because we do have a vector 958 } 959 else{ 960 /*do we have a default enum to go fetch? */ 961 if(default_vector_enum!=NoneEnum){ 962 /*yes. fetch it: */ 963 this->FetchData(&doublevector,&M,&N,default_vector_enum); 964 if(doublevector){ 965 defaulting=false; //we are not defaulting, because we do have a vector 966 } 967 else{ 968 /*even the default vector is non existent. we are defaulting to the default value: */ 969 defaulting=true; 970 } 971 } 972 else{ 973 /*we are left with the default value: */ 974 defaulting=true; 975 } 976 } 977 978 /*Create inputs:*/ 979 counter=0; 980 for (i=0;i<this->numberofelements;i++){ 981 if(this->my_elements[i]){ 982 Element* element=(Element*)elements->GetObjectByOffset(counter); 983 if(defaulting) element->InputCreate(default_value,vector_enum,code); 984 else element->InputCreate(doublevector,i,this,M,N,vector_layout,vector_enum,code);//we need i to index into elements. 985 counter++; 986 } 987 } 988 break; /*}}}*/ 989 case 7: //double vector. {{{2 990 991 /*Fetch vector:*/ 992 this->FetchData(&doublevector,&M,&N,vector_enum); 993 /*Check we got something, otherwise fetch default: */ 994 if(doublevector){ 995 defaulting=false; //we are not defaulting, because we do have a vector 996 } 997 else{ 998 /*do we have a default enum to go fetch? */ 999 if(default_vector_enum!=NoneEnum){ 1000 /*yes. fetch it: */ 1001 this->FetchData(&doublevector,&M,&N,default_vector_enum); 1002 if(doublevector){ 1003 defaulting=false; //we are not defaulting, because we do have a vector 1004 } 1005 else{ 1006 /*even the default vector is non existent. we are defaulting to the default value: */ 1007 defaulting=true; 1008 } 1009 } 1010 else{ 1011 /*we are left with the default value: */ 1012 defaulting=true; 1013 } 1014 } 1015 1016 /*Create inputs:*/ 1017 counter=0; 1018 for (i=0;i<this->numberofelements;i++){ 1019 if(this->my_elements[i]){ 1020 Element* element=(Element*)elements->GetObjectByOffset(counter); 1021 if(defaulting) element->InputCreate(default_value,vector_enum,code); 1022 else element->InputCreate(doublevector,i,this,M,N,vector_layout,vector_enum,code);//we need i to index into elements. 1023 counter++; 1024 } 1025 } 1026 1027 break; /*}}}*/ 1028 default: /*{{{2*/ 1029 _error_("%s%i%s","data code ",code," not supported yet!"); 1030 break; 1031 /*}}}*/ 1032 } 1033 /*Free ressources:*/ 1034 xfree((void**)&doublevector); 1035 xfree((void**)&string); 1036 } -
issm/trunk/src/c/objects/IoModel.h
r9340 r9343 9 9 10 10 #include "../include/include.h" 11 11 #include "../EnumDefinitions/EnumDefinitions.h" 12 13 class Elements; 12 14 class IoModel { 13 15 14 16 private: 15 17 FILE* fid; //pointer to input file 16 17 18 public: 18 19 /*Data: {{{1*/ … … 241 242 void FetchData(double*** pmatrixarray,int** pmdims,int** pndims, int* pnumrecords,int data_enum); 242 243 FILE* SetFilePointerToData(int* pcode,int* pvector_type, int data_enum); 244 void FetchDataToInput(Elements* elements,int vector_enum,int default_vector_enum=NoneEnum,double default_value=0); 243 245 /*}}}*/ 244 246
Note:
See TracChangeset
for help on using the changeset viewer.