Changeset 21242
- Timestamp:
- 09/30/16 21:29:49 (8 years ago)
- Location:
- issm/branches/trunk-larour-NatClimateChange2016/src/c
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/branches/trunk-larour-NatClimateChange2016/src/c/cores/sealevelrise_core.cpp
r21226 r21242 85 85 InputUpdateFromVectorx(femmodel,Sg,SealevelEnum,VertexSIdEnum); 86 86 87 /*compute other geodetic signatures, such as absolute sea level chagne, components of 3-D crustal motion: */ 88 /*Initialize:*/ 89 U_radial = new Vector<IssmDouble>(gsize); 90 U_north = new Vector<IssmDouble>(gsize); 91 U_east = new Vector<IssmDouble>(gsize); 92 Sg_absolute = new Vector<IssmDouble>(gsize); 93 94 /*call the geodetic main modlule:*/ 95 femmodel->SealevelriseGeodetic(U_radial,U_north,U_east,Sg,latitude,longitude,radius,xx,yy,zz); 96 97 /*compute: absolute sea level change = relative sea level change + vertical motion*/ 98 Sg->Copy(Sg_absolute); Sg_absolute->AXPY(U_radial,1); 99 100 /*get results into elements:*/ 101 InputUpdateFromVectorx(femmodel,U_radial,SealevelUmotionEnum,VertexSIdEnum); // radial displacement 102 InputUpdateFromVectorx(femmodel,U_north,SealevelNmotionEnum,VertexSIdEnum); // north motion 103 InputUpdateFromVectorx(femmodel,U_east,SealevelEmotionEnum,VertexSIdEnum); // east motion 104 InputUpdateFromVectorx(femmodel,Sg_absolute,SealevelAbsoluteEnum,VertexSIdEnum); 87 int geodetic=0; 88 if (geodetic){ 89 90 /*compute other geodetic signatures, such as absolute sea level chagne, components of 3-D crustal motion: */ 91 /*Initialize:*/ 92 U_radial = new Vector<IssmDouble>(gsize); 93 U_north = new Vector<IssmDouble>(gsize); 94 U_east = new Vector<IssmDouble>(gsize); 95 Sg_absolute = new Vector<IssmDouble>(gsize); 96 97 /*call the geodetic main modlule:*/ 98 femmodel->SealevelriseGeodetic(U_radial,U_north,U_east,Sg,latitude,longitude,radius,xx,yy,zz); 99 100 /*compute: absolute sea level change = relative sea level change + vertical motion*/ 101 Sg->Copy(Sg_absolute); Sg_absolute->AXPY(U_radial,1); 102 103 /*get results into elements:*/ 104 InputUpdateFromVectorx(femmodel,U_radial,SealevelUmotionEnum,VertexSIdEnum); // radial displacement 105 InputUpdateFromVectorx(femmodel,U_north,SealevelNmotionEnum,VertexSIdEnum); // north motion 106 InputUpdateFromVectorx(femmodel,U_east,SealevelEmotionEnum,VertexSIdEnum); // east motion 107 InputUpdateFromVectorx(femmodel,Sg_absolute,SealevelAbsoluteEnum,VertexSIdEnum); 108 delete U_radial; 109 delete U_north; 110 delete U_east; 111 delete Sg_absolute; 112 } 105 113 106 114 if(save_results){ … … 115 123 delete Sg; 116 124 delete Sg_eustatic; 117 delete U_radial;118 delete U_north;119 delete U_east;120 delete Sg_absolute;121 125 if(numoutputs){for(int i=0;i<numoutputs;i++){xDelete<char>(requested_outputs[i]);} xDelete<char*>(requested_outputs);} 122 126 } -
issm/branches/trunk-larour-NatClimateChange2016/src/c/modules/ModelProcessorx/CreateOutputDefinitions.cpp
r21049 r21242 141 141 int numnodalvalues; 142 142 char** nodalvalue_name_s = NULL; 143 int* nodalvalue_definitionenums_s = NULL;144 int* nodalvalue_model_enum_s = NULL;143 char** nodalvalue_definitionstrings = NULL; 144 char** nodalvalue_modelstrings = NULL; 145 145 int* nodalvalue_node_s = NULL; 146 146 147 147 /*Fetch name, model_enum, etc ... (see src/m/classes/nodalvalue.m): */ 148 148 iomodel->FetchMultipleData(&nodalvalue_name_s,&numnodalvalues, "md.nodalvalue.name"); 149 iomodel->FetchMultipleData(&nodalvalue_definition enums_s,&numnodalvalues, "md.nodalvalue.definitionenum");150 iomodel->FetchMultipleData(&nodalvalue_model _enum_s,&numnodalvalues, "md.nodalvalue.model_enum");149 iomodel->FetchMultipleData(&nodalvalue_definitionstrings,&numnodalvalues, "md.nodalvalue.definitionenum"); 150 iomodel->FetchMultipleData(&nodalvalue_modelstrings,&numnodalvalues, "md.nodalvalue.model_enum"); 151 151 iomodel->FetchMultipleData(&nodalvalue_node_s,&numnodalvalues, "md.nodalvalue.node"); 152 152 … … 154 154 155 155 /*First create a nodalvalue object for that specific enum (nodalvalue_model_enum_s[j]):*/ 156 output_definitions->AddObject(new Nodalvalue(nodalvalue_name_s[j], nodalvalue_definitionenums_s[j],nodalvalue_model_enum_s[j],nodalvalue_node_s[j]-1)); //-1 because matlab to c indexing.156 output_definitions->AddObject(new Nodalvalue(nodalvalue_name_s[j],StringToEnumx(nodalvalue_definitionstrings[j]),StringToEnumx(nodalvalue_modelstrings[j]),nodalvalue_node_s[j]-1)); //-1 because matlab to c indexing. 157 157 } 158 158 … … 164 164 } 165 165 xDelete<char*>(nodalvalue_name_s); 166 xDelete< int>(nodalvalue_model_enum_s);167 xDelete< int>(nodalvalue_definitionenums_s);166 xDelete<char*>(nodalvalue_modelstrings); 167 xDelete<char*>(nodalvalue_definitionstrings); 168 168 xDelete<int>(nodalvalue_node_s); 169 169 /*}}}*/
Note:
See TracChangeset
for help on using the changeset viewer.