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

Last change on this file since 3460 was 3460, checked in by seroussi, 15 years ago

put all loaded variables in iomodel

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