/usr/include/vtk-7.1/vtkPNetCDFPOPReader.h is in libvtk7-dev 7.1.1+dfsg1-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | /*=========================================================================
Program: Visualization Toolkit
Module: vtPkNetCDFPOPReader.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
/**
* @class vtkPNetCDFPOPReader
* @brief read NetCDF files in parallel with MPI
* .Author Ross Miller 03.14.2011
*
* vtkNetCDFPOPReader is a source object that reads NetCDF files.
* It should be able to read most any NetCDF file that wants to output a
* rectilinear grid. The ordering of the variables is changed such that
* the NetCDF x, y, z directions correspond to the vtkRectilinearGrid
* z, y, x directions, respectively. The striding is done with
* respect to the vtkRectilinearGrid ordering. Additionally, the
* z coordinates of the vtkRectilinearGrid are negated so that the
* first slice/plane has the highest z-value and the last slice/plane
* has the lowest z-value.
*/
#ifndef vtkPNetCDFPOPReader_h
#define vtkPNetCDFPOPReader_h
#include "vtkIOParallelNetCDFModule.h" // For export macro
#include "vtkRectilinearGridAlgorithm.h"
class vtkDataArraySelection;
class vtkCallbackCommand;
class vtkMPIController;
class vtkPNetCDFPOPReaderInternal;
class VTKIOPARALLELNETCDF_EXPORT vtkPNetCDFPOPReader : public vtkRectilinearGridAlgorithm
{
public:
vtkTypeMacro(vtkPNetCDFPOPReader,vtkRectilinearGridAlgorithm);
static vtkPNetCDFPOPReader *New();
void PrintSelf(ostream& os, vtkIndent indent);
//@{
/**
* The file to open
*/
vtkSetStringMacro(FileName);
vtkGetStringMacro(FileName);
//@}
//@{
/**
* Enable subsampling in i,j and k dimensions in the vtkRectilinearGrid
*/
vtkSetVector3Macro(Stride, int);
vtkGetVector3Macro(Stride, int);
//@}
//@{
/**
* Variable array selection.
*/
virtual int GetNumberOfVariableArrays();
virtual const char *GetVariableArrayName(int idx);
virtual int GetVariableArrayStatus(const char *name);
virtual void SetVariableArrayStatus(const char *name, int status);
//@}
/**
* Set ranks that will actually open and read the netCDF files. Pass in
* null to chose reasonable defaults)
*/
void SetReaderRanks(vtkIdList*);
// Set/Get the vtkMultiProcessController which will handle communications
// for the parallel rendering.
vtkGetObjectMacro(Controller, vtkMPIController);
void SetController(vtkMPIController *controller);
protected:
vtkPNetCDFPOPReader();
~vtkPNetCDFPOPReader();
int RequestData(vtkInformation*,vtkInformationVector**,
vtkInformationVector*);
virtual int RequestInformation(vtkInformation* request,
vtkInformationVector** inputVector,
vtkInformationVector* outputVector);
// Helper function for RequestData: Reads part of the netCDF
// file and sends sub-arrays to all ranks that need that data
int ReadAndSend( vtkInformation* outInfo, int varID);
// Returns the MPI rank of the process that should read the specified depth
int ReaderForDepth( unsigned depth);
bool IsReaderRank();
bool IsFirstReaderRank();
static void SelectionModifiedCallback(vtkObject *caller, unsigned long eid,
void *clientdata, void *calldata);
static void EventCallback(vtkObject* caller, unsigned long eid,
void* clientdata, void* calldata);
vtkCallbackCommand* SelectionObserver;
char *FileName;
char *OpenedFileName;
vtkSetStringMacro(OpenedFileName);
int NCDFFD; //netcdf file descriptor
int Stride[3];
vtkMPIController *Controller;
private:
vtkPNetCDFPOPReader(const vtkPNetCDFPOPReader&) VTK_DELETE_FUNCTION;
void operator=(const vtkPNetCDFPOPReader&) VTK_DELETE_FUNCTION;
vtkPNetCDFPOPReaderInternal* Internals;
};
#endif
|