[cig-commits] r11214 - mc/3D/CitcomS/trunk/lib
tan2 at geodynamics.org
tan2 at geodynamics.org
Wed Feb 20 16:53:35 PST 2008
Author: tan2
Date: 2008-02-20 16:53:35 -0800 (Wed, 20 Feb 2008)
New Revision: 11214
Modified:
mc/3D/CitcomS/trunk/lib/Instructions.c
mc/3D/CitcomS/trunk/lib/Process_buoyancy.c
mc/3D/CitcomS/trunk/lib/global_defs.h
Log:
Compute horizontal average for composition fields
Modified: mc/3D/CitcomS/trunk/lib/Instructions.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Instructions.c 2008-02-20 21:12:30 UTC (rev 11213)
+++ mc/3D/CitcomS/trunk/lib/Instructions.c 2008-02-21 00:53:35 UTC (rev 11214)
@@ -652,7 +652,11 @@
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/Process_buoyancy.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Process_buoyancy.c 2008-02-20 21:12:30 UTC (rev 11213)
+++ mc/3D/CitcomS/trunk/lib/Process_buoyancy.c 2008-02-21 00:53:35 UTC (rev 11214)
@@ -337,7 +337,7 @@
{
void return_horiz_ave_f();
- int m, i;
+ int m, n, i;
float *S1[NCS],*S2[NCS],*S3[NCS];
for(m=1;m<=E->sphere.caps_per_proc;m++) {
@@ -359,6 +359,16 @@
return_horiz_ave_f(E,S2,E->Have.V[1]);
return_horiz_ave_f(E,S3,E->Have.V[2]);
+ if (E->composition.on) {
+ for(n=0; n<E->composition.ncomp; n++) {
+ for(m=1;m<=E->sphere.caps_per_proc;m++) {
+ for(i=1;i<=E->lmesh.nno;i++)
+ S1[m][i] = E->composition.comp_node[m][n][i];
+ }
+ return_horiz_ave_f(E,S1,E->Have.C[n]);
+ }
+ }
+
for(m=1;m<=E->sphere.caps_per_proc;m++) {
free((void *)S1[m]);
free((void *)S2[m]);
@@ -370,4 +380,5 @@
E->Have.V[2][i] = sqrt(E->Have.V[2][i]);
}
+ return;
}
Modified: mc/3D/CitcomS/trunk/lib/global_defs.h
===================================================================
--- mc/3D/CitcomS/trunk/lib/global_defs.h 2008-02-20 21:12:30 UTC (rev 11213)
+++ mc/3D/CitcomS/trunk/lib/global_defs.h 2008-02-21 00:53:35 UTC (rev 11214)
@@ -348,12 +348,8 @@
struct HAVE { /* horizontal averages */
float *T;
- float *Vi;
- float *Rho;
- float *f;
- float *F;
- float *vrms;
float *V[4];
+ float **C;
};
struct SLICE { /* horizontally sliced data, including topography */
More information about the cig-commits
mailing list