source: issm/trunk/src/c/ModelProcessorx/Melting/CreateParametersMelting.cpp@ 765

Last change on this file since 765 was 765, checked in by Eric.Larour, 16 years ago

New qmu in core capability. New processing of parameters

File size: 1.3 KB
Line 
1/*!\file: CreateParametersMelting.cpp
2 * \brief driver for creating parameters dataset, for diagnostic horiz analysis.
3 */
4
5#undef __FUNCT__
6#define __FUNCT__ "CreateParametersMelting"
7
8#include "../../DataSet/DataSet.h"
9#include "../../toolkits/toolkits.h"
10#include "../../EnumDefinitions/EnumDefinitions.h"
11#include "../../objects/objects.h"
12#include "../../shared/shared.h"
13#include "../Model.h"
14
15void CreateParametersMelting(DataSet** pparameters,Model* model,ConstDataHandle model_handle){
16
17 Param* param = NULL;
18 DataSet* parameters=NULL;
19 int count;
20 int i;
21
22 double* melting=NULL;
23
24 /*recover parameters : */
25 parameters=*pparameters;
26
27 count=parameters->Size();
28
29 /* get initial melting if transient*/
30 if(strcmp(model->sub_analysis_type,"transient")==0){
31
32 /*Get melting: */
33 ModelFetchData((void**)&melting,NULL,NULL,model_handle,"melting","Matrix","Mat");
34 if(melting) {
35 for(i=0;i<model->numberofnodes;i++)melting[i]=melting[i]/model->yts; //m/s instead of m/yr
36 }
37 else{
38 for(i=0;i<model->numberofnodes;i++)melting[i]=0;
39 }
40
41 count++;
42 param= new Param(count,"m_g",DOUBLEVEC);
43 if(melting) param->SetDoubleVec(melting,model->numberofnodes);
44 else param->SetDoubleVec(melting,0);
45 parameters->AddObject(param);
46
47 /*Free melting: */
48 xfree((void**)&melting);
49 }
50
51 /*Assign output pointer: */
52 *pparameters=parameters;
53}
Note: See TracBrowser for help on using the repository browser.