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

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

change CreateParameters with numberofvertices

File size: 1.3 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 double* melting=NULL;
20
21 /*recover parameters : */
22 parameters=*pparameters;
23
24 /*if 2d: return*/
25 if (strcmp(iomodel->meshtype,"2d")==0)goto cleanup_and_return;
26
27 count=parameters->Size();
28
29 /* get initial melting if transient*/
30 if(iomodel->dt){
31
32 /*Get melting: */
33 IoModelFetchData(&melting,NULL,NULL,iomodel_handle,"melting");
34 if(melting) {
35 for(i=0;i<iomodel->numberofvertices;i++)melting[i]=melting[i]/iomodel->yts; //m/s instead of m/yr
36 }
37 else{
38 for(i=0;i<iomodel->numberofvertices;i++)melting[i]=0;
39 }
40
41 count++;
42 param= new Param(count,"m_g",DOUBLEVEC);
43 if(melting) param->SetDoubleVec(melting,iomodel->numberofvertices);
44 else param->SetDoubleVec(melting,0);
45 parameters->AddObject(param);
46
47 /*Free melting: */
48 xfree((void**)&melting);
49 }
50
51 cleanup_and_return:
52
53 /*Assign output pointer: */
54 *pparameters=parameters;
55}
Note: See TracBrowser for help on using the repository browser.