[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