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

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

CHG: adding the convergence test in the outer loop of the hydrological system

File size: 2.1 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 IssmDouble rel_tol;
21
22 /*Get parameters: */
23 parameters=*pparameters;
24
25 /*retrieve some parameters: */
26 iomodel->Constant(&hydrology_model,HydrologyModelEnum);
27
28 /*Now, do we really want DC?*/
29 if(hydrology_model!=HydrologydcEnum){
30 *pparameters=parameters;
31 return;
32 }
33
34 iomodel->FetchData(&isefficientlayer,HydrologydcIsefficientlayerEnum);
35 iomodel->FetchData(&sedimentlimit_flag,HydrologydcSedimentlimitFlagEnum);
36 iomodel->FetchData(&transfer_flag,HydrologydcTransferFlagEnum);
37 iomodel->FetchData(&penalty_factor,HydrologydcPenaltyFactorEnum);
38 iomodel->FetchData(&rel_tol,HydrologydcRelTolEnum);
39
40 if(sedimentlimit_flag==1){
41 iomodel->FetchData(&sedimentlimit,HydrologydcSedimentlimitEnum);
42 parameters->AddObject(new DoubleParam(HydrologydcSedimentlimitEnum,sedimentlimit));
43 }
44
45 if(transfer_flag==1){
46 iomodel->FetchData(&leakagefactor,HydrologydcLeakageFactorEnum);
47 parameters->AddObject(new DoubleParam(HydrologydcLeakageFactorEnum,leakagefactor));
48 }
49
50 parameters->AddObject(new DoubleParam(HydrologydcPenaltyFactorEnum,penalty_factor));
51 parameters->AddObject(new IntParam(HydrologyModelEnum,hydrology_model));
52 parameters->AddObject(new BoolParam(HydrologydcIsefficientlayerEnum,isefficientlayer));
53 parameters->AddObject(new IntParam(HydrologydcSedimentlimitFlagEnum,sedimentlimit_flag));
54 parameters->AddObject(new IntParam(HydrologydcTransferFlagEnum,transfer_flag));
55 parameters->AddObject(new DoubleParam(HydrologydcRelTolEnum,rel_tol));
56
57 /*Assign output pointer: */
58 *pparameters=parameters;
59}
Note: See TracBrowser for help on using the repository browser.