[cig-commits] r14511 - mc/3D/CitcomS/trunk/lib
becker at geodynamics.org
becker at geodynamics.org
Fri Mar 27 19:29:00 PDT 2009
Author: becker
Date: 2009-03-27 19:29:00 -0700 (Fri, 27 Mar 2009)
New Revision: 14511
Modified:
mc/3D/CitcomS/trunk/lib/Full_tracer_advection.c
mc/3D/CitcomS/trunk/lib/Ggrd_handling.c
mc/3D/CitcomS/trunk/lib/Tracer_setup.c
Log:
Modified the way the compositional init with ggrd tracer can now
select either a range of layers (>0) or a specific layer (<0).
Modified: mc/3D/CitcomS/trunk/lib/Full_tracer_advection.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Full_tracer_advection.c 2009-03-28 01:56:16 UTC (rev 14510)
+++ mc/3D/CitcomS/trunk/lib/Full_tracer_advection.c 2009-03-28 02:29:00 UTC (rev 14511)
@@ -1933,8 +1933,13 @@
else if((E->trace.ic_method_for_flavors == 1)||(E->trace.ic_method_for_flavors == 99)) {
/* ggrd modes 1 and 99 (99 is override for restart) */
fprintf(E->trace.fpt,"netcdf grd assigned tracer flavors\n");
- fprintf(E->trace.fpt,"file: %s top %i layeres\n",E->trace.ggrd_file,
- E->trace.ggrd_layers);
+ if( E->trace.ggrd_layers > 0)
+ fprintf(E->trace.fpt,"file: %s top %i layers\n",E->trace.ggrd_file,
+ E->trace.ggrd_layers);
+ else
+ fprintf(E->trace.fpt,"file: %s only layer %i\n",E->trace.ggrd_file,
+ -E->trace.ggrd_layers);
+
}
#endif
else {
Modified: mc/3D/CitcomS/trunk/lib/Ggrd_handling.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Ggrd_handling.c 2009-03-28 01:56:16 UTC (rev 14510)
+++ mc/3D/CitcomS/trunk/lib/Ggrd_handling.c 2009-03-28 02:29:00 UTC (rev 14511)
@@ -74,7 +74,7 @@
int mpi_inmsg, mpi_success_message = 1;
static ggrd_boolean shift_to_pos_lon = FALSE; /* this should not be needed anymore */
report(E,"ggrd_init_tracer_flavors: ggrd mat init");
-
+ int only_one_layer,this_layer;
/*
are we global?
*/
@@ -84,7 +84,8 @@
}else{ /* regional */
sprintf(gmt_bc,"");
}
-
+ only_one_layer = ((E->trace.ggrd_layers > 0)?(0):(1));
+
/*
initialize the ggrd control
*/
@@ -114,8 +115,9 @@
for (kk=1;kk <= number_of_tracers;kk++) {
rad = E->trace.basicq[j][2][kk]; /* tracer radius */
-
- if(layers_r(E,rad) <= E->trace.ggrd_layers){
+ this_layer = layers_r(E,rad);
+ if((only_one_layer && (this_layer == -E->trace.ggrd_layers)) ||
+ ((!only_one_layer)&&(this_layer <= E->trace.ggrd_layers))){
/*
in top layers
*/
Modified: mc/3D/CitcomS/trunk/lib/Tracer_setup.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Tracer_setup.c 2009-03-28 01:56:16 UTC (rev 14510)
+++ mc/3D/CitcomS/trunk/lib/Tracer_setup.c 2009-03-28 02:29:00 UTC (rev 14511)
@@ -187,7 +187,12 @@
/* from grid in top n materials, this will override
the checkpoint input */
input_string("ictracer_grd_file",E->trace.ggrd_file,"",m); /* file from which to read */
- input_int("ictracer_grd_layers",&(E->trace.ggrd_layers),"2",m); /* which top layers to use */
+ input_int("ictracer_grd_layers",&(E->trace.ggrd_layers),"2",m); /*
+
+ >0 : which top layers to use, layer <= ictracer_grd_layers
+ <0 : only use one layer layer == -ictracer_grd_layers
+
+ */
break;
#endif
More information about the CIG-COMMITS
mailing list