Changeset 9343


Ignore:
Timestamp:
08/12/11 18:45:12 (14 years ago)
Author:
Eric.Larour
Message:

Folded IoModelToInputsx into IoModel class

Location:
issm/trunk/src/c
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/Makefile.am

    r9340 r9343  
    569569                                        ./modules/Gradjx/Gradjx.h\
    570570                                        ./modules/Gradjx/Gradjx.cpp\
    571                                         ./modules/IoModelToInputsx/IoModelToInputsx.h\
    572                                         ./modules/IoModelToInputsx/IoModelToInputsx.cpp\
    573571                                        ./modules/IoModelToConstraintsx/IoModelToConstraintsx.h\
    574572                                        ./modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp\
     
    12571255                                        ./modules/Gradjx/Gradjx.h\
    12581256                                        ./modules/Gradjx/Gradjx.cpp\
    1259                                         ./modules/IoModelToInputsx/IoModelToInputsx.h\
    1260                                         ./modules/IoModelToInputsx/IoModelToInputsx.cpp\
    12611257                                        ./modules/IoModelToConstraintsx/IoModelToConstraintsx.h\
    12621258                                        ./modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp\
  • issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/UpdateElementsBalancethickness.cpp

    r9340 r9343  
    2929        }
    3030
    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);
    4343
    4444        if (iomodel->dim==3){
    45                 IoModelToInputsx(elements,iomodel,ElementOnBedEnum);
    46                 IoModelToInputsx(elements,iomodel,ElementOnSurfaceEnum);
     45                iomodel->FetchDataToInput(elements,ElementOnBedEnum);
     46                iomodel->FetchDataToInput(elements,ElementOnSurfaceEnum);
    4747        }
    4848        /*Free data: */
  • issm/trunk/src/c/modules/ModelProcessorx/BedSlope/UpdateElementsBedSlope.cpp

    r9340 r9343  
    2929        }
    3030
    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);
    3434
    3535        if (iomodel->dim==3){
    36                 IoModelToInputsx(elements,iomodel,ElementOnBedEnum);
    37                 IoModelToInputsx(elements,iomodel,ElementOnSurfaceEnum);
     36                iomodel->FetchDataToInput(elements,ElementOnBedEnum);
     37                iomodel->FetchDataToInput(elements,ElementOnSurfaceEnum);
    3838        }
    3939       
  • issm/trunk/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp

    r9340 r9343  
    2828        iomodel->FetchData(&iomodel->elements,NULL,NULL,ElementsEnum);
    2929
    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);
    3333
    3434        iomodel->FetchData(&iomodel->control_type,NULL,NULL,ControlTypeEnum);
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp

    r9340 r9343  
    3434
    3535        /*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);
    5151
    5252        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);
    6161        }
    6262
    6363        if(iomodel->control_analysis){
    64                 IoModelToInputsx(elements,iomodel,VxObsEnum);
    65                 IoModelToInputsx(elements,iomodel,VyObsEnum);
     64                iomodel->FetchDataToInput(elements,VxObsEnum);
     65                iomodel->FetchDataToInput(elements,VyObsEnum);
    6666        }
    6767
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/UpdateElementsDiagnosticHutter.cpp

    r9340 r9343  
    3333        }
    3434       
    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);
    3838       
    3939        /*Free data: */
  • issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/UpdateElementsDiagnosticVert.cpp

    r9340 r9343  
    3232        }
    3333
    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);
    4848
    4949        /*Free data: */
  • issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/UpdateElementsEnthalpy.cpp

    r9340 r9343  
    3232        }
    3333
    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);
    5454       
    5555        /*Free data: */
  • issm/trunk/src/c/modules/ModelProcessorx/Hydrology/UpdateElementsHydrology.cpp

    r9340 r9343  
    2929        }
    3030
    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);
    5252
    5353        elements->InputDuplicate(WatercolumnEnum,WaterColumnOldEnum);
  • issm/trunk/src/c/modules/ModelProcessorx/Melting/UpdateElementsMelting.cpp

    r9340 r9343  
    3333
    3434        /*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);
    5353       
    5454        /*Free data: */
  • issm/trunk/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp

    r9340 r9343  
    2929        }
    3030
    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);
    4343
    4444        if(iomodel->prognostic_DG){
    45                 IoModelToInputsx(elements,iomodel,SpcthicknessEnum); //for DG, we need the spc in the element
     45                iomodel->FetchDataToInput(elements,SpcthicknessEnum); //for DG, we need the spc in the element
    4646        }
    4747       
    4848        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);
    5353        }
    5454       
  • issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/UpdateElementsSurfaceSlope.cpp

    r9340 r9343  
    2929        }
    3030
    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);
    3434       
    3535        if (iomodel->dim==3){
    36                 IoModelToInputsx(elements,iomodel,ElementOnBedEnum);
    37                 IoModelToInputsx(elements,iomodel,ElementOnSurfaceEnum);
     36                iomodel->FetchDataToInput(elements,ElementOnBedEnum);
     37                iomodel->FetchDataToInput(elements,ElementOnSurfaceEnum);
    3838        }
    3939       
  • issm/trunk/src/c/modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp

    r9340 r9343  
    3232        }
    3333
    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);
    5454       
    5555        if(iomodel->qmu_analysis)elements->InputDuplicate(TemperatureEnum,QmuTemperatureEnum);
  • issm/trunk/src/c/objects/IoModel.cpp

    r9340 r9343  
    843843}
    844844/*}}}*/
     845/*FUNCTION IoModel::FetchDataToInput(Elements* elements,IoModel* iomodel,int vector_enum,int default_vector_enum,double default_value{{{1*/
     846void 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  
    99
    1010#include "../include/include.h"
    11 
     11#include "../EnumDefinitions/EnumDefinitions.h"
     12
     13class Elements;
    1214class IoModel {
    1315
    1416        private:
    1517                FILE* fid; //pointer to input file
    16 
    1718        public:
    1819                /*Data: {{{1*/
     
    241242                void  FetchData(double*** pmatrixarray,int** pmdims,int** pndims, int* pnumrecords,int data_enum);
    242243                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);
    243245                /*}}}*/
    244246
Note: See TracChangeset for help on using the changeset viewer.