gridspec_api/regrid/nccf_apply_regrid_type.h

00001 /* $Id: nccf_apply_regrid_type.h 254 2010-11-19 22:10:55Z dkindig $ */
00002 
00003 _TYPE_ *ori_data, *tgt_data;
00004 _TYPE_ datum;
00005 status = nccf_get_struct_data_pointer(ori_data_id, (void **)&ori_data);
00006 totErr += abs(status);
00007 status = nccf_get_struct_data_pointer(tgt_data_id, (void **)&tgt_data);
00008 totErr += abs(status);
00009 
00010 /* Make sure at least one target point is in the domain */
00011 if (self->n_nonmasked > 0) {
00012   for (i = 0; i < self->ntargets; ++i) {
00013     /* Compute sum of weights * field values when inside_domain == 1
00014        Don't change the value if inside_domain == 0 
00015        This will set tgt_data[i] to zero if valid and keep 
00016        tgt_data[i] otherwise
00017     */
00018     tgt_data[i] = (1 - self->inside_domain[i])*tgt_data[i];
00019     /* Linear interpolation */
00020     for (j = 0; j < nNodes; ++j) {
00021       datum = ori_data[ self->indices[i][j] ];
00022       tgt_data[i] += (_TYPE_) (self->weights[i][j]*datum*self->inside_domain[i]);
00023     }
00024   }
00025 }
 All Classes Files Functions Defines

Generated on Tue Mar 1 2011 06:36:59 for libCF. LibCF is a Unidata library.