2
/*******************************************************
4
* Copyright (c) 2003-2010 by University of Queensland
5
* Earth Systems Science Computational Center (ESSCC)
6
* http://www.uq.edu.au/esscc
8
* Primary Business: Queensland, Australia
9
* Licensed under the Open Software License version 3.0
10
* http://www.opensource.org/licenses/osl-3.0.php
12
*******************************************************/
14
/**************************************************************/
16
/* Dudley: Mesh: NodeFile */
18
/* set tags to newTag where mask>0 */
20
/**************************************************************/
25
/**************************************************************/
27
void Dudley_NodeFile_setTags(Dudley_NodeFile * self, const int newTag, escriptDataC * mask)
31
register __const double *mask_array;
36
numNodes = self->numNodes;
37
if (1 != getDataPointSize(mask))
39
Dudley_setError(TYPE_ERROR, "Dudley_NodeFile_setTags: number of components of mask is 1.");
41
else if (!numSamplesEqual(mask, 1, numNodes))
43
Dudley_setError(TYPE_ERROR, "Dudley_NodeFile_setTags: illegal number of samples of mask Data object");
46
/* now we can start */
50
#pragma omp parallel private(n,mask_array)
52
#pragma omp for schedule(static)
53
for (n = 0; n < numNodes; n++)
55
mask_array = getSampleDataRO(mask, n);
56
if (mask_array[0] > 0)
57
self->Tag[n] = newTag;
60
Dudley_NodeFile_setTagsInUse(self);