source: issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCInefficient/CreateParametersHydrologyDCInefficient.cpp@ 15020

Last change on this file since 15020 was 15020, checked in by bdef, 12 years ago

NEW: Introduction of the transfer term in the Pvectors

File size: 2.0 KB
Line 
1/*!\file: CreateParametersHydrologyDCInefficient.cpp
2 * \brief driver for creating parameters dataset, for control analysis.
3 */
4
5#include "../../../toolkits/toolkits.h"
6#include "../../../classes/classes.h"
7#include "../../../shared/shared.h"
8#include "../ModelProcessorx.h"
9
10void CreateParametersHydrologyDCInefficient(Parameters** pparameters,IoModel* iomodel,int solution_type,int analysis_type){
11
12 Parameters *parameters = NULL;
13 int hydrology_model;
14 int sedimentlimit_flag;
15 int transfer_flag;
16 bool isefficientlayer;
17 IssmDouble sedimentlimit;
18 IssmDouble penalty_factor;
19 IssmDouble leakagefactor;
20
21 /*Get parameters: */
22 parameters=*pparameters;
23
24 /*retrieve some parameters: */
25 iomodel->Constant(&hydrology_model,HydrologyModelEnum);
26
27 /*Now, do we really want DC?*/
28 if(hydrology_model!=HydrologydcEnum){
29 *pparameters=parameters;
30 return;
31 }
32
33 iomodel->FetchData(&isefficientlayer,HydrologydcIsefficientlayerEnum);
34 iomodel->FetchData(&sedimentlimit_flag,HydrologydcSedimentlimitFlagEnum);
35 iomodel->FetchData(&transfer_flag,HydrologydcTransferFlagEnum);
36 iomodel->FetchData(&penalty_factor,HydrologydcPenaltyFactorEnum);
37
38 if(sedimentlimit_flag==1){
39 iomodel->FetchData(&sedimentlimit,HydrologydcSedimentlimitEnum);
40 parameters->AddObject(new DoubleParam(HydrologydcSedimentlimitEnum,sedimentlimit));
41 }
42
43 if(transfer_flag==1){
44 iomodel->FetchData(&leakagefactor,HydrologydcLeakageFactorEnum);
45 parameters->AddObject(new DoubleParam(HydrologydcLeakageFactorEnum,leakagefactor));
46 }
47
48 parameters->AddObject(new DoubleParam(HydrologydcPenaltyFactorEnum,penalty_factor));
49 parameters->AddObject(new IntParam(HydrologyModelEnum,hydrology_model));
50 parameters->AddObject(new BoolParam(HydrologydcIsefficientlayerEnum,isefficientlayer));
51 parameters->AddObject(new IntParam(HydrologydcSedimentlimitFlagEnum,sedimentlimit_flag));
52 parameters->AddObject(new IntParam(HydrologydcTransferFlagEnum,transfer_flag));
53
54 /*Assign output pointer: */
55 *pparameters=parameters;
56}
Note: See TracBrowser for help on using the repository browser.