[cig-commits] r14878 - in long/3D/Gale/trunk: . src/Underworld/plugins/Output/VTKOutput
walter at geodynamics.org
walter at geodynamics.org
Tue May 5 15:12:18 PDT 2009
Author: walter
Date: 2009-05-05 15:12:17 -0700 (Tue, 05 May 2009)
New Revision: 14878
Modified:
long/3D/Gale/trunk/
long/3D/Gale/trunk/src/Underworld/plugins/Output/VTKOutput/VTKOutput.c
Log:
r2684 at dante: boo | 2009-05-05 15:11:52 -0700
Make VTKOutput take a list of fields to output
Property changes on: long/3D/Gale/trunk
___________________________________________________________________
Name: svk:merge
- 3a629746-de10-0410-b17b-fd6ecaaa963e:/cig:2683
+ 3a629746-de10-0410-b17b-fd6ecaaa963e:/cig:2684
Modified: long/3D/Gale/trunk/src/Underworld/plugins/Output/VTKOutput/VTKOutput.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/plugins/Output/VTKOutput/VTKOutput.c 2009-05-05 22:12:10 UTC (rev 14877)
+++ long/3D/Gale/trunk/src/Underworld/plugins/Output/VTKOutput/VTKOutput.c 2009-05-05 22:12:17 UTC (rev 14878)
@@ -447,6 +447,9 @@
Name field_filename;
FILE *field_fp, *pfield_fp;
+ Dictionary_Entry_Value* field_list;
+ int field_list_size;
+
/* We need to save the grids to map between 1D and 3D indices for
the values. */
Grid *elGrid, *vertGrid;
@@ -456,6 +459,17 @@
"hydrostaticTerm" );
/* Open the file */
+ field_list=Dictionary_Get(self->dictionary, "VTKOutput_FieldList" );
+ if(field_list)
+ {
+ field_list_size=Dictionary_Entry_Value_GetCount(field_list);
+ Journal_Firewall(field_list_size>=0,
+ Journal_Register( Error_Type, self->type ),
+ "The list of fields in VTKOutput_FieldList is %d but must not be negative.\n",
+ field_list_size );
+ printf("size %d\n",field_list_size);
+ }
+
Stg_asprintf( &field_filename, "%s/fields.%d.%05d.vts", self->outputPath,
myRank, timeStep);
field_fp=fopen(field_filename,"w");
@@ -504,6 +518,7 @@
for ( var_I = 0; var_I < self->fieldVariable_Register->objects->count;
var_I++ ) {
+ int fields;
FieldVariable* fieldVar;
fieldVar = FieldVariable_Register_GetByIndex( self->fieldVariable_Register,
var_I );
@@ -596,7 +611,24 @@
header_printed=1;
}
- /* Finally, output the fields. For now, just output every field */
+ /* Finally, output the fields. */
+
+ /* Check whether the field is in the field list */
+ if(field_list)
+ {
+ for(fields=0; fields<field_list_size; ++fields)
+ {
+ printf("fields %s %s\n",Dictionary_Entry_Value_AsString(Dictionary_Entry_Value_GetElement(field_list,fields)),
+ fieldVar->name);
+ if(!strcmp(Dictionary_Entry_Value_AsString(Dictionary_Entry_Value_GetElement(field_list,fields)),
+ fieldVar->name))
+ {
+ break;
+ }
+ }
+ if(fields==field_list_size)
+ continue;
+ }
dofAtEachNodeCount = feVar->fieldComponentCount;
More information about the CIG-COMMITS
mailing list