[cig-commits] r11216 - mc/3D/CitcomS/trunk/lib

tan2 at geodynamics.org tan2 at geodynamics.org
Wed Feb 20 16:55:41 PST 2008


Author: tan2
Date: 2008-02-20 16:55:41 -0800 (Wed, 20 Feb 2008)
New Revision: 11216

Modified:
   mc/3D/CitcomS/trunk/lib/Composition_related.c
   mc/3D/CitcomS/trunk/lib/Instructions.c
   mc/3D/CitcomS/trunk/lib/Output.c
   mc/3D/CitcomS/trunk/lib/Output_gzdir.c
Log:
Write averaged composition in horiz_avg output. The HDF5 part of output is not implemented...


Modified: mc/3D/CitcomS/trunk/lib/Composition_related.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Composition_related.c	2008-02-21 00:54:25 UTC (rev 11215)
+++ mc/3D/CitcomS/trunk/lib/Composition_related.c	2008-02-21 00:55:41 UTC (rev 11216)
@@ -196,6 +196,14 @@
         E->composition.error_fraction = (double*) malloc(E->composition.ncomp*sizeof(double));
     }
 
+
+    /* for horizontal average */
+    E->Have.C = (float **)malloc((E->composition.ncomp+1)*sizeof(float*));
+    for (i=0; i<E->composition.ncomp; i++) {
+        E->Have.C[i] = (float *)malloc((E->lmesh.noz+2)*sizeof(float));
+    }
+
+
     /* allocat memory for composition fields at the nodes and elements */
 
     for (j=1;j<=E->sphere.caps_per_proc;j++) {
@@ -223,6 +231,7 @@
                 exit(10);
             }
         }
+
     }
 
     return;

Modified: mc/3D/CitcomS/trunk/lib/Instructions.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Instructions.c	2008-02-21 00:54:25 UTC (rev 11215)
+++ mc/3D/CitcomS/trunk/lib/Instructions.c	2008-02-21 00:55:41 UTC (rev 11216)
@@ -652,11 +652,7 @@
   E->Have.T         = (float *)malloc((E->lmesh.noz+2)*sizeof(float));
   E->Have.V[1]      = (float *)malloc((E->lmesh.noz+2)*sizeof(float));
   E->Have.V[2]      = (float *)malloc((E->lmesh.noz+2)*sizeof(float));
-  if (E->composition.on) {
-      E->Have.C = (float **)malloc((E->composition.ncomp)*sizeof(float*));
-      for(i=0; i<E->composition.ncomp; i++)
-          E->Have.C[i] = (float *)malloc((E->lmesh.noz+2)*sizeof(float));
-  }
+
  for(i=E->mesh.levmin;i<=E->mesh.levmax;i++) {
   E->sphere.R[i] = (double *)  malloc((E->lmesh.NOZ[i]+1)*sizeof(double));
   for (j=1;j<=E->sphere.caps_per_proc;j++)  {

Modified: mc/3D/CitcomS/trunk/lib/Output.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Output.c	2008-02-21 00:54:25 UTC (rev 11215)
+++ mc/3D/CitcomS/trunk/lib/Output.c	2008-02-21 00:55:41 UTC (rev 11216)
@@ -348,7 +348,7 @@
 
 void output_horiz_avg(struct All_variables *E, int cycles)
 {
-  /* horizontal average output of temperature and rms velocity*/
+  /* horizontal average output of temperature, composition and rms velocity*/
   void compute_horiz_avg();
 
   int j;
@@ -365,7 +365,14 @@
             E->parallel.me, cycles);
     fp1=fopen(output_file,"w");
     for(j=1;j<=E->lmesh.noz;j++)  {
-        fprintf(fp1,"%.4e %.4e %.4e %.4e\n",E->sx[1][3][j],E->Have.T[j],E->Have.V[1][j],E->Have.V[2][j]);
+        fprintf(fp1,"%.4e %.4e %.4e %.4e",E->sx[1][3][j],E->Have.T[j],E->Have.V[1][j],E->Have.V[2][j]);
+
+        if (E->composition.on) {
+            int n;
+            for(n=0; n<E->composition.ncomp; n++)
+                fprintf(fp1," %.4e", E->Have.C[n][j]);
+        }
+        fprintf(fp1,"\n");
     }
     fclose(fp1);
   }

Modified: mc/3D/CitcomS/trunk/lib/Output_gzdir.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Output_gzdir.c	2008-02-21 00:54:25 UTC (rev 11215)
+++ mc/3D/CitcomS/trunk/lib/Output_gzdir.c	2008-02-21 00:55:41 UTC (rev 11216)
@@ -877,7 +877,7 @@
 
 void gzdir_output_horiz_avg(struct All_variables *E, int cycles)
 {
-  /* horizontal average output of temperature and rms velocity*/
+  /* horizontal average output of temperature, composition and rms velocity*/
   void compute_horiz_avg();
 
   int j;
@@ -894,7 +894,14 @@
 	    cycles,E->parallel.me, cycles);
     fp1=gzdir_output_open(output_file,"w");
     for(j=1;j<=E->lmesh.noz;j++)  {
-        gzprintf(fp1,"%.4e %.4e %.4e %.4e\n",E->sx[1][3][j],E->Have.T[j],E->Have.V[1][j],E->Have.V[2][j]);
+        gzprintf(fp1,"%.4e %.4e %.4e %.4e",E->sx[1][3][j],E->Have.T[j],E->Have.V[1][j],E->Have.V[2][j]);
+
+        if (E->composition.on) {
+            int n;
+            for(n=0; n<E->composition.ncomp; n++)
+                gzprintf(fp1," %.4e", E->Have.C[n][j]);
+        }
+        fprintf(fp1,"\n");
     }
     gzclose(fp1);
   }



More information about the cig-commits mailing list