GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  NETCDFPERL (1)

.nr0C0.cp0.ds10.cp0.lf65

NAME

netCDFPerl - perl extension for netCDF dataset access

CONTENTS

Synopsis
Description

SYNOPSIS

use netCDF;

NetCDF::create("foo.nc", NetCDF::CLOBBER); ...

DESCRIPTION

<B>netCDFPerlB> is a Perl 5 extension-module interface to the services provided by the netCDF version 2 API, netcdf2(3).

The functions in the netCDF version 2 library can be accessed by a Perl 5 script by replacing the ‘<B>ncB>’ prefix of the regular netCDF version 2 C function names with <B>NetCDF::B>. For example, the C function <B>nccreate()B> is available to a perl script as <B>NetCDF::createB>.

Each perl function matches, as closely as possible and necessary, its C counterpart:

* The number, order, and semantics of the arguments are identical. Note, however, that it is not necessary to specify the number of elements in an array because perl arrays carry that information.
* The behavior is the same in terms of the netCDF dataset.
* A value of <B>-1B> is returned to indicate an error.

Scalar argument types are mapped in an obvious way:

.in 0  
3trans].nr 3crow 0
CPerl 5  
3trans].nr 3brule 1     
3trans].nr 3crow 1 
char *string
charinteger
3trans].nr 3brule 1  
3trans].nr 3crow 3
shortinteger
3trans].nr 3crow 4 
intinteger 

The individual elements of an array argument are similarly mapped.

Array arguments themselves are passed by reference for both input and output. For example, the following Perl 5 code will write and then read a hyperslab of values:

@start = (0, 0, 0);
@count = (1, 2, 3);
@out = (1, 2, 3, 4, 5, 6);
NetCDF::varput($ncid, $varid, \@start, \@count, \@out);
NetCDF::varget($ncid, $varid, \@start, \@count, \@in);

(The above assumes that <B>$ncidB> and <B>$varidB> have been appropriately set.) After this code is executed, the array <B>@inB> will have the same values as the array <B>@outB>. The previous contents, if any, of an array used for input are destroyed (e.g. <B>@inB> in the above example).

To define a scalar variable with <B>NetCDF::vardef()B>, use an empty dimension-ID array, e.g.

NetCDF::vardef($ncid, "scalar_variable", NetCDF::FLOAT, \());

The interface doesn’t support null arguments. One cannot use a void pointer to indicate that no value is requested for a particular argument: all arguments must be present.

For technical reasons, output variables must be initialized, i.e. any variable argument that is to have its value set by a function must already have a value. For example, if the first occurrence of the variable <B>$attvalB> is in the following:

NetCDF::attget($ncid, NetCDF::GLOBAL, "history", \$attval);

then a core dump will probably result. The solution is to initialize the variable before using it:

$attval="";
NetCDF::attget($ncid, NetCDF::GLOBAL, "history", \$attval);

Two additional functions are provided for error handling. <B>NetCDF::opts(i)B> determines the handling of errors by setting the <B>ncoptsB> variable to <B>iB>. It returns the previous value. <B>NetCDF::err()B> returns the value of the error code variable, <B>ncerrB>.

In addition to the above functions, most C macro constants that are defined in the netCDF header file <B>netcdf.hB> are also available to a perl script by dropping any ‘<B>NC_B>’ substring and using the <B>NetCDF::B> prefix, e.g. <B>NetCDF::LONGB>.

SEE ALSO

perl(1), netcdf2(3)

Search for    or go to Top of page |  Section 1 |  Main Index


Printed: n(yr-n(mo-n(dy NETCDFPERL (1) 1999-07-21

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.