mirror of
https://github.com/Unidata/netcdf-c.git
synced 2025-02-17 16:50:18 +08:00
Fixed netcdf-c issue #30 (on github) related to cmake-generated nc-config script.
Initial split of Guide from rest of documentation. Using 'tagfiles' to cross-reference from one documentation set to the other works, but then it drags all of the 'external' related pages into the index of the other. Modified visability of the external groups and pages. Adding proper section names to 'Example' sections, to avoid Doxygen warnings. Initial split of Guide from rest of documentation. Using 'tagfiles' to cross-reference from one documentation set to the other works, but then it drags all of the 'external' related pages into the index of the other. Modified visability of the external groups and pages. Adding proper section names to 'Example' sections, to avoid Doxygen warnings. Reorganizing documentation into two separate doxygen projects. Moved .texi documents into an old directory. Pulled the tutorial document into a separate document, similar to the guide document. Turned on treeview
This commit is contained in:
parent
f0475ada7b
commit
1e9f243f85
@ -797,9 +797,9 @@ IF(ENABLE_DOXYGEN)
|
||||
|
||||
|
||||
# Option to turn on the TODO list in the doxygen-generated documentation.
|
||||
OPTION(ENABLE_DOXYGEN_TODO_LIST "Turn on todo list in documentation. This is of interest to developers only." OFF)
|
||||
IF(ENABLE_DOXYGEN_TODO_LIST)
|
||||
SET(SHOW_DOXYGEN_TODO_LIST YES CACHE STRING "")
|
||||
OPTION(ENABLE_DOXYGEN_TASKS "Turn on test, todo, bug lists in documentation. This is of interest to developers only." OFF)
|
||||
IF(ENABLE_DOXYGEN_TASKS)
|
||||
SET(SHOW_DOXYGEN_TAG_LIST YES CACHE STRING "")
|
||||
ELSE()
|
||||
SET(SHOW_DOXYGEN_TODO_LIST NO CACHE STRING "")
|
||||
ENDIF()
|
||||
@ -958,11 +958,10 @@ CHECK_FUNCTION_EXISTS(_filelengthi64 HAVE_FILE_LENGTH_I64)
|
||||
#####
|
||||
|
||||
|
||||
# Create config.h file, nc-config
|
||||
# Create config.h file.
|
||||
configure_file("${netCDF_SOURCE_DIR}/config.h.in.cmake"
|
||||
"${netCDF_BINARY_DIR}/config.h")
|
||||
ADD_DEFINITIONS(-DHAVE_CONFIG_H)
|
||||
INSTALL(PROGRAMS ${netCDF_BINARY_DIR}/nc-config DESTINATION bin COMPONENT utilities)
|
||||
INCLUDE_DIRECTORIES(${netCDF_BINARY_DIR})
|
||||
# End autotools-style checs for config.h
|
||||
|
||||
@ -1131,11 +1130,22 @@ configure_file (
|
||||
${netCDF_SOURCE_DIR}/netcdf.pc.in
|
||||
${netCDF_BINARY_DIR}/netcdf.pc @ONLY)
|
||||
|
||||
install (FILES ${netCDF_BINARY_DIR}/netcdf.pc
|
||||
|
||||
FILE(MAKE_DIRECTORY ${netCDF_BINARY_DIR}/tmp)
|
||||
configure_file("${netCDF_SOURCE_DIR}/nc-config.in.cmake"
|
||||
"${netCDF_BINARY_DIR}/tmp/nc-config" @ONLY)
|
||||
FILE(COPY "${netCDF_BINARY_DIR}/tmp/nc-config"
|
||||
DESTINATION ${netCDF_BINARY_DIR}/
|
||||
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
||||
|
||||
|
||||
INSTALL (FILES ${netCDF_BINARY_DIR}/netcdf.pc
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig )
|
||||
|
||||
INSTALL(PROGRAMS ${netCDF_BINARY_DIR}/nc-config DESTINATION bin COMPONENT utilities)
|
||||
|
||||
###
|
||||
# End pkgconfig file creation.
|
||||
# End pkgconfig, nc-config file creation.
|
||||
###
|
||||
|
||||
####
|
||||
@ -1219,18 +1229,6 @@ set (CPACK_COMPONENT_DOCUMENTATION_DESCRIPTION
|
||||
print_conf_summary()
|
||||
|
||||
|
||||
# Create nc-config
|
||||
FILE(MAKE_DIRECTORY ${netCDF_BINARY_DIR}/tmp)
|
||||
configure_file("${netCDF_SOURCE_DIR}/nc-config.in.cmake"
|
||||
"${netCDF_BINARY_DIR}/tmp/nc-config" @ONLY)
|
||||
FILE(COPY "${netCDF_BINARY_DIR}/tmp/nc-config"
|
||||
DESTINATION ${netCDF_BINARY_DIR}/
|
||||
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
||||
#EXECUTE_PROCESS(COMMAND "chmod 755 ${netCDF_BINARY_DIR}/nc-config")
|
||||
|
||||
|
||||
|
||||
|
||||
# Enable Makedist files.
|
||||
ADD_MAKEDIST()
|
||||
ENABLE_MAKEDIST(README COPYRIGHT RELEASE_NOTES INSTALL INSTALL.cmake test_prog.c lib_flags.am cmake CMakeLists.txt COMPILE.cmake.txt config.h.in.cmake cmake_uninstall.cmake.in netcdf-config-version.cmake.in netcdf-config.cmake.in FixBundle.cmake.in nc-config.in.cmake RELEASE_NOTES.md configure configure.ac install-sh config.h.in config.sub)
|
||||
|
@ -39,7 +39,7 @@ doesn't if the attribute was stored without a trailing zero byte, for
|
||||
example from a FORTRAN program. Before using the value as a C string,
|
||||
make sure it is null-terminated. \ref ignored_if_null.
|
||||
|
||||
\section Example
|
||||
\section nc_inq_att_example Example
|
||||
|
||||
Here is an example using nc_inq_att() to find out the type and length of
|
||||
a variable attribute named valid_range for a netCDF variable named rh
|
||||
|
@ -96,7 +96,7 @@ is still in initial define mode.
|
||||
_Fill_Value_ attribute, and will tell the HDF5 layer to use the
|
||||
specified fill value for that variable.
|
||||
|
||||
\section Example
|
||||
\section nc_put_att_text_example Example
|
||||
|
||||
Here is an example using nc_put_att_double() to add a variable
|
||||
attribute named valid_range for a netCDF variable named rh and
|
||||
@ -186,7 +186,7 @@ apply.
|
||||
\returns ::NC_ELATEFILL Fill values must be written while the file
|
||||
is still in initial define mode.
|
||||
|
||||
\section Example
|
||||
\section nc_put_att_double_example Example
|
||||
|
||||
Here is an example using nc_put_att_double() to add a variable
|
||||
attribute named valid_range for a netCDF variable named rh and
|
||||
|
@ -37,7 +37,7 @@ you wish to insert into the compound type.
|
||||
\returns ::NC_EPERM Attempt to write to a read-only file.
|
||||
\returns ::NC_ENOTINDEFINE Not in define mode.
|
||||
|
||||
\section Example
|
||||
\section nc_def_compound_example Example
|
||||
|
||||
\code
|
||||
struct s1
|
||||
|
@ -9,59 +9,11 @@ Research/Unidata. See COPYRIGHT file for more info.
|
||||
|
||||
#include "ncdispatch.h"
|
||||
|
||||
/*! \defgroup dimensions Dimensions
|
||||
|
||||
Dimensions are used to define the shape of data in netCDF.
|
||||
|
||||
Dimensions for a netCDF dataset are defined when it is created, while
|
||||
the netCDF dataset is in define mode. Additional dimensions may be
|
||||
added later by reentering define mode. A netCDF dimension has a name
|
||||
and a length. In a netCDF classic or 64-bit offset file, at most one
|
||||
dimension can have the unlimited length, which means variables using
|
||||
this dimension can grow along this dimension. In a netCDF-4 file
|
||||
multiple unlimited dimensions are supported.
|
||||
|
||||
There is a suggested limit (1024) to the number of dimensions that can
|
||||
be defined in a single netCDF dataset. The limit is the value of the
|
||||
predefined macro NC_MAX_DIMS. The purpose of the limit is to make
|
||||
writing generic applications simpler. They need only provide an array
|
||||
of NC_MAX_DIMS dimensions to handle any netCDF dataset. The
|
||||
implementation of the netCDF library does not enforce this advisory
|
||||
maximum, so it is possible to use more dimensions, if necessary, but
|
||||
netCDF utilities that assume the advisory maximums may not be able to
|
||||
handle the resulting netCDF datasets.
|
||||
|
||||
NC_MAX_VAR_DIMS, which must not exceed NC_MAX_DIMS, is the maximum
|
||||
number of dimensions that can be used to specify the shape of a single
|
||||
variable. It is also intended to simplify writing generic
|
||||
applications.
|
||||
|
||||
Ordinarily, the name and length of a dimension are fixed when the
|
||||
dimension is first defined. The name may be changed later, but the
|
||||
length of a dimension (other than the unlimited dimension) cannot be
|
||||
changed without copying all the data to a new netCDF dataset with a
|
||||
redefined dimension length.
|
||||
|
||||
Dimension lengths in the C interface are type size_t rather than type
|
||||
int to make it possible to access all the data in a netCDF dataset on
|
||||
a platform that only supports a 16-bit int data type, for example
|
||||
MSDOS. If dimension lengths were type int instead, it would not be
|
||||
possible to access data from variables with a dimension length greater
|
||||
than a 16-bit int can accommodate.
|
||||
|
||||
A netCDF dimension in an open netCDF dataset is referred to by a small
|
||||
integer called a dimension ID. In the C interface, dimension IDs are
|
||||
0, 1, 2, ..., in the order in which the dimensions were defined.
|
||||
|
||||
Operations supported on dimensions are:
|
||||
- Create a dimension, given its name and length.
|
||||
- Get a dimension ID from its name.
|
||||
- Get a dimension's name and length from its ID.
|
||||
- Rename a dimension.
|
||||
*/
|
||||
/**@{*/
|
||||
|
||||
/*! Define a new dimension. The function nc_def_dim adds a new
|
||||
/*!
|
||||
|
||||
Define a new dimension. The function nc_def_dim adds a new
|
||||
dimension to an open netCDF dataset in define mode. It returns (as an
|
||||
argument) a dimension ID, given the netCDF ID, the dimension name, and
|
||||
the dimension length. At most one unlimited length dimension, called
|
||||
@ -90,7 +42,7 @@ unlimited dimensions.
|
||||
\returns ::NC_ENOMEM Memory allocation (malloc) failure
|
||||
\returns ::NC_EPERM Write to read only
|
||||
|
||||
\section Example
|
||||
\section nc_def_dim_example Example
|
||||
|
||||
Here is an example using nc_def_dim() to create a dimension named lat of
|
||||
length 18 and a unlimited dimension named rec in a new netCDF dataset
|
||||
@ -176,7 +128,7 @@ the unlimited dimension, this is the number of records written so far.
|
||||
\returns ::NC_EBADID Not a valid ID.
|
||||
\returns ::NC_EBADDIM Invalid dimension ID or name.
|
||||
|
||||
\section Example
|
||||
\section nc_inq_dim_example Example
|
||||
|
||||
Here is an example using nc_inq_dim() to determine the length of a
|
||||
dimension named lat, and the name and current maximum length of the
|
||||
@ -241,7 +193,7 @@ with length less than NC_MAX_NAME.
|
||||
\returns ::NC_ENAMEINUSE String match to name in use
|
||||
\returns ::NC_ENOMEM Memory allocation (malloc) failure
|
||||
\returns ::NC_EPERM Write to read only
|
||||
\section Example
|
||||
\section nc_rename_dim_example Example
|
||||
|
||||
Here is an example using nc_rename_dim to rename the dimension lat to
|
||||
latitude in an existing netCDF dataset named foo.nc:
|
||||
@ -354,7 +306,7 @@ will be null-terminated. Ignored if NULL.
|
||||
\returns ::NC_EBADID Not a valid ID.
|
||||
\returns ::NC_EBADDIM Invalid dimension ID or name.
|
||||
|
||||
\section Example
|
||||
\section nc_inq_dim_example2 Example
|
||||
|
||||
Here is an example using nc_inq_dim() to determine the length of a
|
||||
dimension named lat, and the name and current maximum length of the
|
||||
@ -411,7 +363,7 @@ nc_def_dim().
|
||||
\returns ::NC_EBADID Not a valid ID.
|
||||
\returns ::NC_EBADDIM Invalid dimension ID or name.
|
||||
|
||||
\section Example
|
||||
\section nc_inq_dim_example3 Example
|
||||
|
||||
Here is an example using nc_inq_dim() to determine the length of a
|
||||
dimension named lat, and the name and current maximum length of the
|
||||
|
@ -12,10 +12,6 @@ Research/Unidata. See COPYRIGHT file for more info.
|
||||
/* Tell the user the version of netCDF. */
|
||||
static const char nc_libvers[] = PACKAGE_VERSION " of "__DATE__" "__TIME__" $";
|
||||
|
||||
/** \defgroup lib_version Library Version
|
||||
Functions related to querying the library version.
|
||||
*/
|
||||
|
||||
/**
|
||||
\ingroup lib_version
|
||||
Return the library version.
|
||||
@ -54,9 +50,8 @@ status value.
|
||||
|
||||
*/
|
||||
|
||||
/**
|
||||
\ingroup error
|
||||
Given an error number, return an error message.
|
||||
/*! Given an error number, return an error message.
|
||||
\addtogroup error
|
||||
|
||||
This function returns a static reference to an error message string
|
||||
corresponding to an integer netCDF error status or to a system error
|
||||
@ -67,7 +62,7 @@ function. The error codes are defined in netcdf.h.
|
||||
|
||||
\returns short string containing error message.
|
||||
|
||||
\section Example
|
||||
\section handle_error_example nc_strerror Example
|
||||
|
||||
Here is an example of a simple error handling function that uses
|
||||
nc_strerror to print the error message corresponding to the netCDF
|
||||
|
@ -168,7 +168,7 @@ element of the dimids array.
|
||||
\returns ::NC_ENAMEINUSE Name already in use.
|
||||
\returns ::NC_EPERM Attempt to create object in read-only file.
|
||||
|
||||
\section Example
|
||||
\section nc_def_var_example Example
|
||||
|
||||
Here is an example using nc_def_var to create a variable named rh of
|
||||
type double with three dimensions, time, lat, and lon in a new netCDF
|
||||
@ -250,7 +250,7 @@ nc_inq_ncid().
|
||||
\returns ::NC_ENAMEINUSE Name in use.
|
||||
\returns ::NC_ENOMEM Out of memory.
|
||||
|
||||
\section Example
|
||||
\section nc_rename_var_example Example
|
||||
|
||||
Here is an example using nc_rename_var to rename the variable rh to
|
||||
rel_hum in an existing netCDF dataset named foo.nc:
|
||||
|
@ -586,7 +586,7 @@ allocated by the user before this function is called.
|
||||
\returns ::NC_EINDEFINE Operation not allowed in define mode.
|
||||
\returns ::NC_EBADID Bad ncid.
|
||||
|
||||
\section Example
|
||||
\section nc_get_vara_double_example Example
|
||||
|
||||
Here is an example using nc_get_vara_double() to read all the values of
|
||||
the variable named rh from an existing netCDF dataset named
|
||||
|
@ -31,7 +31,7 @@ ignored_if_null.
|
||||
\returns ::NC_NOERR No error.
|
||||
\returns ::NC_EBADID Bad ncid.
|
||||
|
||||
\section Example
|
||||
\section nc_inq_varid_example4 Example
|
||||
|
||||
Here is an example using nc_inq_varid to find out the ID of a variable
|
||||
named rh in an existing netCDF dataset named foo.nc:
|
||||
@ -85,7 +85,7 @@ stored. \ref ignored_if_null.
|
||||
\returns ::NC_EBADID Bad ncid.
|
||||
\returns ::NC_ENOTVAR Invalid variable ID.
|
||||
|
||||
\section Example
|
||||
\section nc_inq_var_example5 Example
|
||||
|
||||
Here is an example using nc_inq_var() to find out about a variable named
|
||||
rh in an existing netCDF dataset named foo.nc:
|
||||
|
@ -7,28 +7,64 @@ INCLUDE_DIRECTORIES(".")
|
||||
# Build doxygen documentation, if need be.
|
||||
#####
|
||||
IF(BUILD_DOCS)
|
||||
FIND_PACKAGE(Doxygen)
|
||||
IF(DOXYGEN_FOUND)
|
||||
FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.html ${CMAKE_CURRENT_SOURCE_DIR}/images ${CMAKE_CURRENT_SOURCE_DIR}/*.doc ${CMAKE_CURRENT_SOURCE_DIR}/*.xml ${CMAKE_CURRENT_SOURCE_DIR}/*.m4 ${CMAKE_CURRENT_SOURCE_DIR}/*.texi)
|
||||
FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/)
|
||||
# Copy the image files used by markdown documentation
|
||||
# manually.
|
||||
FILE(GLOB IMG_FILES ${CMAKE_CURRENT_BINARY_DIR}/images/*.jpg)
|
||||
|
||||
# Set abs_top_srcdir to work with the autotools
|
||||
# doxyfile template.
|
||||
SET(abs_top_srcdir ${CMAKE_SOURCE_DIR})
|
||||
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
|
||||
ADD_CUSTOM_TARGET(doc_all ALL
|
||||
${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMENT "Generating API Documentation with Doxygen" VERBATIM
|
||||
)
|
||||
FILE(COPY ${IMG_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/html)
|
||||
ENDIF()
|
||||
FIND_PACKAGE(Doxygen)
|
||||
IF(DOXYGEN_FOUND)
|
||||
FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.html ${CMAKE_CURRENT_SOURCE_DIR}/images ${CMAKE_CURRENT_SOURCE_DIR}/*.doc ${CMAKE_CURRENT_SOURCE_DIR}/*.xml ${CMAKE_CURRENT_SOURCE_DIR}/*.m4 ${CMAKE_CURRENT_SOURCE_DIR}/*.texi)
|
||||
FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/)
|
||||
# Copy the image files used by markdown documentation
|
||||
# manually.
|
||||
FILE(GLOB IMG_FILES ${CMAKE_CURRENT_BINARY_DIR}/images/*.jpg)
|
||||
|
||||
# Set abs_top_srcdir to work with the autotools
|
||||
# doxyfile template.
|
||||
SET(abs_top_srcdir ${CMAKE_SOURCE_DIR})
|
||||
|
||||
# Create general and guide doxyfiles.
|
||||
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
|
||||
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.guide.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.guide @ONLY)
|
||||
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.tutorial.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.tutorial @ONLY)
|
||||
|
||||
# We need to loop through twice. First to generate tags.
|
||||
ADD_CUSTOM_TARGET(all_doc_tags ALL
|
||||
${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMENT "Generating API Tags" VERBATIM
|
||||
)
|
||||
ADD_CUSTOM_TARGET(all_doc_tags_guide ALL
|
||||
${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.guide
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMENT "Generating Guide Tags" VERBATIM
|
||||
)
|
||||
ADD_CUSTOM_TARGET(all_doc_tags_tutorial ALL
|
||||
${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.tutorial
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMENT "Generating Tutorial Tags" VERBATIM
|
||||
)
|
||||
|
||||
# Second, generate documentation that uses the tags.
|
||||
ADD_CUSTOM_TARGET(doc_all ALL
|
||||
${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMENT "Generating API Documentation" VERBATIM
|
||||
)
|
||||
ADD_CUSTOM_TARGET(doc_guide ALL
|
||||
${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.guide
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMENT "Generating NetCDF Users Guide" VERBATIM
|
||||
)
|
||||
ADD_CUSTOM_TARGET(doc_tutorial ALL
|
||||
${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.tutorial
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMENT "Generating Tutorial Tags" VERBATIM
|
||||
)
|
||||
|
||||
FILE(COPY ${IMG_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/html)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
SET(CUR_EXTRA_DIST ${CUR_EXTRA_DIST} CMakeLists.txt Makefile.am netcdf.m4 DoxygenLayout.xml Doxyfile.in footer.html mainpage.doc tutorial.doc install.doc dispatch.doc guide.doc types.doc notes.doc cdl.doc architecture.doc internal.doc Doxyfile.in.cmake windows-binaries.md Building-with-CMake.md)
|
||||
SET(CUR_EXTRA_DIST ${CUR_EXTRA_DIST} CMakeLists.txt Makefile.am netcdf.m4 DoxygenLayout.xml Doxyfile.in Doxyfile.guide.in footer.html mainpage.dox tutorial.dox install.dox dispatch.dox guide.dox types.dox notes.dox cdl.dox architecture.dox internal.dox install-fortran.dox Doxyfile.in.cmake windows-binaries.md Building-with-CMake.md)
|
||||
|
||||
ADD_EXTRA_DIST("${CUR_EXTRA_DIST}")
|
@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8
|
||||
# title of most generated pages and in a few other places.
|
||||
# The default value is: My Project.
|
||||
|
||||
PROJECT_NAME = NetCDF
|
||||
PROJECT_NAME = "The NetCDF User's Guide"
|
||||
|
||||
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
|
||||
# could be handy for archiving the generated documentation or if some version
|
||||
@ -769,7 +769,7 @@ FILE_PATTERNS =
|
||||
# be searched for input files as well.
|
||||
# The default value is: NO.
|
||||
|
||||
RECURSIVE = YES
|
||||
RECURSIVE = NO
|
||||
|
||||
# The EXCLUDE tag can be used to specify files and/or directories that should be
|
||||
# excluded from the INPUT source files. This way you can easily exclude a
|
||||
@ -811,7 +811,7 @@ EXCLUDE_SYMBOLS =
|
||||
# that contain example code fragments that are included (see the \include
|
||||
# command).
|
||||
|
||||
EXAMPLE_PATH = @abs_top_srcdir@/examples/C
|
||||
EXAMPLE_PATH =
|
||||
|
||||
# If the value of the EXAMPLE_PATH tag contains directories, you can use the
|
||||
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
|
||||
@ -2003,13 +2003,14 @@ SKIP_FUNCTION_MACROS = YES
|
||||
# the path). If a tag file is not located in the directory in which doxygen is
|
||||
# run, you must also specify the path to the tagfile here.
|
||||
|
||||
TAGFILES =
|
||||
TAGFILES = @CMAKE_CURRENT_BINARY_DIR@/main.tag=../ "@CMAKE_CURRENT_BINARY_DIR@/tutorial.tag = ../html_tutorial"
|
||||
|
||||
|
||||
# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
|
||||
# tag file that is based on the input files it reads. See section "Linking to
|
||||
# external documentation" for more information about the usage of tag files.
|
||||
|
||||
GENERATE_TAGFILE =
|
||||
GENERATE_TAGFILE = @CMAKE_CURRENT_BINARY_DIR@/guide.tag
|
||||
|
||||
# If the ALLEXTERNALS tag is set to YES all external class will be listed in the
|
||||
# class index. If set to NO only the inherited external classes will be listed.
|
||||
@ -2022,14 +2023,14 @@ ALLEXTERNALS = NO
|
||||
# listed.
|
||||
# The default value is: YES.
|
||||
|
||||
EXTERNAL_GROUPS = YES
|
||||
EXTERNAL_GROUPS = NO
|
||||
|
||||
# If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in
|
||||
# the related pages index. If set to NO, only the current project's pages will
|
||||
# be listed.
|
||||
# The default value is: YES.
|
||||
|
||||
EXTERNAL_PAGES = YES
|
||||
EXTERNAL_PAGES = NO
|
||||
|
||||
# The PERL_PATH should be the absolute path and name of the perl script
|
||||
# interpreter (i.e. the result of 'which perl').
|
||||
|
@ -416,7 +416,7 @@ EXTRACT_PACKAGE = NO
|
||||
# included in the documentation.
|
||||
# The default value is: NO.
|
||||
|
||||
EXTRACT_STATIC = NO
|
||||
EXTRACT_STATIC = YES
|
||||
|
||||
# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined
|
||||
# locally in source files will be included in the documentation. If set to NO
|
||||
@ -580,20 +580,20 @@ STRICT_PROTO_MATCHING = NO
|
||||
# documentation.
|
||||
# The default value is: YES.
|
||||
|
||||
GENERATE_TODOLIST = @SHOW_DOXYGEN_TODO_LIST@
|
||||
GENERATE_TODOLIST = @SHOW_DOXYGEN_TAG_LIST@
|
||||
|
||||
# The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the
|
||||
# test list. This list is created by putting \test commands in the
|
||||
# documentation.
|
||||
# The default value is: YES.
|
||||
|
||||
GENERATE_TESTLIST = YES
|
||||
GENERATE_TESTLIST = @SHOW_DOXYGEN_TAG_LIST@
|
||||
|
||||
# The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug
|
||||
# list. This list is created by putting \bug commands in the documentation.
|
||||
# The default value is: YES.
|
||||
|
||||
GENERATE_BUGLIST = YES
|
||||
GENERATE_BUGLIST = @SHOW_DOXYGEN_TAG_LIST@
|
||||
|
||||
# The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO)
|
||||
# the deprecated list. This list is created by putting \deprecated commands in
|
||||
@ -746,31 +746,20 @@ WARN_LOGFILE =
|
||||
INPUT = \
|
||||
@abs_top_srcdir@/RELEASE_NOTES.md \
|
||||
@abs_top_srcdir@/COPYRIGHT \
|
||||
@abs_top_srcdir@/man4/groups.dox \
|
||||
@abs_top_srcdir@/man4/mainpage.dox \
|
||||
@abs_top_srcdir@/man4/install.md \
|
||||
@abs_top_srcdir@/man4/install-fortran.md \
|
||||
@abs_top_srcdir@/man4/dispatch.dox \
|
||||
@abs_top_srcdir@/man4/guide.dox \
|
||||
@abs_top_srcdir@/man4/types.dox \
|
||||
@abs_top_srcdir@/man4/notes.dox \
|
||||
@abs_top_srcdir@/man4/cdl.dox \
|
||||
@abs_top_srcdir@/man4/architecture.dox \
|
||||
@abs_top_srcdir@/man4/internal.dox \
|
||||
@abs_top_srcdir@/man4/tutorial.dox \
|
||||
@abs_top_srcdir@/man4/windows-binaries.md \
|
||||
@abs_top_srcdir@/man4/all-error-codes.md \
|
||||
@abs_top_srcdir@/man4/cmake_faq.md \
|
||||
@abs_top_srcdir@/include/netcdf.h \
|
||||
@abs_top_srcdir@/examples/C/simple_xy_wr.c \
|
||||
@abs_top_srcdir@/examples/C/simple_xy_rd.c \
|
||||
@abs_top_srcdir@/examples/C/sfc_pres_temp_wr.c \
|
||||
@abs_top_srcdir@/examples/C/sfc_pres_temp_rd.c \
|
||||
@abs_top_srcdir@/examples/C/pres_temp_4D_wr.c \
|
||||
@abs_top_srcdir@/examples/C/pres_temp_4D_rd.c \
|
||||
@abs_top_srcdir@/examples/C/simple_nc4_wr.c \
|
||||
@abs_top_srcdir@/examples/C/simple_nc4_rd.c \
|
||||
@abs_top_srcdir@/examples/C/simple_xy_nc4_wr.c \
|
||||
@abs_top_srcdir@/examples/C/simple_xy_nc4_rd.c \
|
||||
@abs_top_srcdir@/libdispatch/dfile.c \
|
||||
@abs_top_srcdir@/libdispatch/ddim.c \
|
||||
@abs_top_srcdir@/libdispatch/datt.c \
|
||||
@ -1431,7 +1420,7 @@ DISABLE_INDEX = NO
|
||||
# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
|
||||
# Windows users are probably better off using the HTML help feature.
|
||||
|
||||
GENERATE_TREEVIEW = NO
|
||||
GENERATE_TREEVIEW = YES
|
||||
|
||||
# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
|
||||
# doxygen will group on one line in the generated HTML documentation.
|
||||
@ -2052,13 +2041,13 @@ SKIP_FUNCTION_MACROS = YES
|
||||
# the path). If a tag file is not located in the directory in which doxygen is
|
||||
# run, you must also specify the path to the tagfile here.
|
||||
|
||||
TAGFILES =
|
||||
TAGFILES = @CMAKE_CURRENT_BINARY_DIR@/guide.tag=html_guide/ "@CMAKE_CURRENT_BINARY_DIR@/tutorial.tag = html_tutorial/"
|
||||
|
||||
# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
|
||||
# tag file that is based on the input files it reads. See section "Linking to
|
||||
# external documentation" for more information about the usage of tag files.
|
||||
|
||||
GENERATE_TAGFILE =
|
||||
GENERATE_TAGFILE = @CMAKE_CURRENT_BINARY_DIR@/main.tag
|
||||
|
||||
# If the ALLEXTERNALS tag is set to YES all external class will be listed in the
|
||||
# class index. If set to NO only the inherited external classes will be listed.
|
||||
@ -2071,14 +2060,14 @@ ALLEXTERNALS = NO
|
||||
# listed.
|
||||
# The default value is: YES.
|
||||
|
||||
EXTERNAL_GROUPS = YES
|
||||
EXTERNAL_GROUPS = NO
|
||||
|
||||
# If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in
|
||||
# the related pages index. If set to NO, only the current project's pages will
|
||||
# be listed.
|
||||
# The default value is: YES.
|
||||
|
||||
EXTERNAL_PAGES = YES
|
||||
EXTERNAL_PAGES = NO
|
||||
|
||||
# The PERL_PATH should be the absolute path and name of the perl script
|
||||
# interpreter (i.e. the result of 'which perl').
|
||||
|
2344
man4/Doxyfile.tutorial.in
Normal file
2344
man4/Doxyfile.tutorial.in
Normal file
File diff suppressed because it is too large
Load Diff
58
man4/groups.dox
Normal file
58
man4/groups.dox
Normal file
@ -0,0 +1,58 @@
|
||||
/*! \defgroup dimensions Dimensions
|
||||
|
||||
Dimensions are used to define the shape of data in netCDF.
|
||||
|
||||
Dimensions for a netCDF dataset are defined when it is created, while
|
||||
the netCDF dataset is in define mode. Additional dimensions may be
|
||||
added later by reentering define mode. A netCDF dimension has a name
|
||||
and a length. In a netCDF classic or 64-bit offset file, at most one
|
||||
dimension can have the unlimited length, which means variables using
|
||||
this dimension can grow along this dimension. In a netCDF-4 file
|
||||
multiple unlimited dimensions are supported.
|
||||
|
||||
There is a suggested limit (1024) to the number of dimensions that can
|
||||
be defined in a single netCDF dataset. The limit is the value of the
|
||||
predefined macro NC_MAX_DIMS. The purpose of the limit is to make
|
||||
writing generic applications simpler. They need only provide an array
|
||||
of NC_MAX_DIMS dimensions to handle any netCDF dataset. The
|
||||
implementation of the netCDF library does not enforce this advisory
|
||||
maximum, so it is possible to use more dimensions, if necessary, but
|
||||
netCDF utilities that assume the advisory maximums may not be able to
|
||||
handle the resulting netCDF datasets.
|
||||
|
||||
NC_MAX_VAR_DIMS, which must not exceed NC_MAX_DIMS, is the maximum
|
||||
number of dimensions that can be used to specify the shape of a single
|
||||
variable. It is also intended to simplify writing generic
|
||||
applications.
|
||||
|
||||
Ordinarily, the name and length of a dimension are fixed when the
|
||||
dimension is first defined. The name may be changed later, but the
|
||||
length of a dimension (other than the unlimited dimension) cannot be
|
||||
changed without copying all the data to a new netCDF dataset with a
|
||||
redefined dimension length.
|
||||
|
||||
Dimension lengths in the C interface are type size_t rather than type
|
||||
int to make it possible to access all the data in a netCDF dataset on
|
||||
a platform that only supports a 16-bit int data type, for example
|
||||
MSDOS. If dimension lengths were type int instead, it would not be
|
||||
possible to access data from variables with a dimension length greater
|
||||
than a 16-bit int can accommodate.
|
||||
|
||||
A netCDF dimension in an open netCDF dataset is referred to by a small
|
||||
integer called a dimension ID. In the C interface, dimension IDs are
|
||||
0, 1, 2, ..., in the order in which the dimensions were defined.
|
||||
|
||||
Operations supported on dimensions are:
|
||||
- Create a dimension, given its name and length.
|
||||
- Get a dimension ID from its name.
|
||||
- Get a dimension's name and length from its ID.
|
||||
- Rename a dimension.
|
||||
|
||||
/** \defgroup lib_version Library Version
|
||||
Functions related to querying the library version.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
218
man4/guide.dox
218
man4/guide.dox
@ -1,13 +1,33 @@
|
||||
/*! \file
|
||||
/*! \file guide.dox The NetCDF User's Guide
|
||||
|
||||
NetCDF Users Guide
|
||||
\brief The NetCDF User's Guide
|
||||
|
||||
The NetCDF Users Guide
|
||||
|
||||
\page user_guide The NetCDF Users Guide
|
||||
\mainpage
|
||||
|
||||
\tableofcontents
|
||||
|
||||
\section user_guide The NetCDF User's Guide
|
||||
|
||||
- \ref mainpage_netcdf
|
||||
- \subpage netcdf_summary
|
||||
- \subpage netcdf_introduction
|
||||
- \subpage file_structure_and_performance
|
||||
- \subpage netcdf_data_set_components
|
||||
- \subpage netcdf_perf_chunking
|
||||
- \subpage netcdf_utilities_guide
|
||||
- \subpage file_format_specifications
|
||||
|
||||
\section user_guide The NetCDF User's Guide
|
||||
|
||||
- \ref mainpage_netcdf
|
||||
- \subpage netcdf_summary
|
||||
- \subpage netcdf_introduction
|
||||
- \subpage file_structure_and_performance
|
||||
- \subpage netcdf_data_set_components
|
||||
- \subpage netcdf_perf_chunking
|
||||
- \subpage netcdf_utilities_guide
|
||||
- \subpage file_format_specifications
|
||||
|
||||
Data
|
||||
- \ref external_types
|
||||
- \ref classic_structures
|
||||
@ -17,46 +37,7 @@ Data
|
||||
- \ref remote_client
|
||||
- \ref type_conversion
|
||||
|
||||
File Structure and Performance
|
||||
- \ref classic_file_parts
|
||||
- \ref parts_of_netcdf4
|
||||
- \ref xdr_layer
|
||||
- \ref large_file_support
|
||||
- \ref offset_format_limitations
|
||||
- \ref classic_format_limitations
|
||||
- \ref netcdf_3_io
|
||||
- \ref parallel_access
|
||||
- \ref interoperability_with_hdf5
|
||||
- \ref creating_self
|
||||
- \ref dap_support
|
||||
|
||||
Improving Performance with Chunking
|
||||
- \ref chunk_cache
|
||||
- \ref default_chunking_4_1
|
||||
- default_chunking_4_0_1
|
||||
- \ref chunking_parallel_io
|
||||
- \ref bm_file
|
||||
|
||||
NetCDF Utilities
|
||||
- \ref cdl_syntax
|
||||
- \ref cdl_data_types
|
||||
- \ref cdl_constants
|
||||
- \ref guide_ncgen
|
||||
- \ref guide_ncdump
|
||||
- \ref guide_nccopy
|
||||
- \ref guide_ncgen3
|
||||
|
||||
File Format Specification
|
||||
- \ref classic_format_spec
|
||||
- \ref computing_offsets
|
||||
- \ref offset_examples
|
||||
- \ref offset_format_spec
|
||||
- \ref netcdf_4_spec
|
||||
- \ref netcdf_4_classic_spec
|
||||
- \ref hdf4_sd_format
|
||||
|
||||
|
||||
\section netcdf_summary Summary
|
||||
\section netcdf_summary The Purpose of NetCDF
|
||||
|
||||
The purpose of the Network Common Data Form (netCDF) interface is to
|
||||
allow you to create, access, and share array-oriented data in a form
|
||||
@ -97,9 +78,11 @@ software that works with netCDF data.
|
||||
Separate documentation of the Java netCDF library can be found at
|
||||
http://www.unidata.ucar.edu/software/netcdf-java.
|
||||
|
||||
\section netcdf_introduction An Introduction to NetCDF
|
||||
\page netcdf_introduction An Introduction to NetCDF
|
||||
|
||||
\subsection netcdf_interface The NetCDF Interface
|
||||
\tableofcontents
|
||||
|
||||
\section netcdf_interface The NetCDF Interface
|
||||
|
||||
The Network Common Data Form, or netCDF, is an interface to a library
|
||||
of data access functions for storing and retrieving data in the form
|
||||
@ -149,7 +132,7 @@ its widespread use.
|
||||
For detailed installation instructions, see <a
|
||||
href="http://www.unidata.ucar.edu/netcdf/docs/building.html" >Building NetCDF</a>.
|
||||
|
||||
\subsection netcdf_format The netCDF File Format
|
||||
\section netcdf_format The netCDF File Format
|
||||
|
||||
Until version 3.6.0, all versions of netCDF employed only one binary
|
||||
data format, now referred to as netCDF classic format. NetCDF classic
|
||||
@ -189,7 +172,7 @@ using the format specification to develop independent low-level
|
||||
software for reading and writing netCDF files, because this could lead
|
||||
to compatibility problems if the format is ever modified.
|
||||
|
||||
\subsubsection select_format How to Select the Format
|
||||
\subsection select_format How to Select the Format
|
||||
|
||||
With three different base formats, care must be taken in creating data
|
||||
files to choose the correct base format.
|
||||
@ -217,7 +200,7 @@ It is also possible to change the default creation format, to convert
|
||||
a large body of code without changing every create call. C programmers
|
||||
see nc_set_default_format. Fortran programs see NF_SET_DEFAULT_FORMAT.
|
||||
|
||||
\subsubsection classic_format NetCDF Classic Format
|
||||
\subsection classic_format NetCDF Classic Format
|
||||
|
||||
The original netCDF format is identified using four bytes in the file
|
||||
header. All files in this format have “CDF\001” at the beginning of
|
||||
@ -243,7 +226,7 @@ beginning of the file. In this documentation this format is called
|
||||
Since 64-bit offset format was introduced in version 3.6.0, earlier
|
||||
versions of the netCDF library can't read 64-bit offset files.
|
||||
|
||||
\subsubsection netcdf_4_format NetCDF-4 Format
|
||||
\subsection netcdf_4_format NetCDF-4 Format
|
||||
|
||||
In version 4.0, netCDF included another new underlying format: HDF5.
|
||||
|
||||
@ -266,7 +249,7 @@ better).
|
||||
|
||||
For more discussion of format issues see The NetCDF Tutorial.
|
||||
|
||||
\subsection performance What about Performance?
|
||||
\section performance What about Performance?
|
||||
|
||||
One of the goals of netCDF is to support efficient access to small
|
||||
subsets of large datasets. To support this goal, netCDF uses direct
|
||||
@ -295,7 +278,7 @@ operations, less so in data access operations. We continue to study
|
||||
the challenge of implementing netCDF-4/HDF5 format without
|
||||
compromising performance.
|
||||
|
||||
\subsection creating_self Creating Self-Describing Data conforming to Conventions
|
||||
\section creating_self Creating Self-Describing Data conforming to Conventions
|
||||
|
||||
The mere use of netCDF is not sufficient to make data
|
||||
"self-describing" and meaningful to both humans and machines. The
|
||||
@ -319,7 +302,7 @@ conventions are often needed for local use. These should be
|
||||
contributed to the above netCDF conventions site if likely to interest
|
||||
other users in similar areas.
|
||||
|
||||
\subsection limitations Limitations of NetCDF
|
||||
\section limitations Limitations of NetCDF
|
||||
|
||||
The netCDF classic data model is widely applicable to data that can be
|
||||
organized into a collection of named array variables with named
|
||||
@ -426,9 +409,11 @@ http://hdfgroup.org/HDF5/.
|
||||
For more information about parallel-netcdf, see their web site:
|
||||
http://www.mcs.anl.gov/parallel-netcdf.
|
||||
|
||||
\section netcdf_data_set_components The Components of a NetCDF Data Set
|
||||
\page netcdf_data_set_components The Components of a NetCDF Data Set
|
||||
|
||||
\subsection data_model The Data Model
|
||||
\tableofcontents
|
||||
|
||||
\section data_model The Data Model
|
||||
|
||||
A netCDF dataset contains dimensions, variables, and attributes, which
|
||||
all have both a name and an ID number by which they are
|
||||
@ -438,7 +423,7 @@ dataset. The netCDF library allows simultaneous access to multiple
|
||||
netCDF datasets which are identified by dataset ID numbers, in
|
||||
addition to ordinary file names.
|
||||
|
||||
\subsubsection Enhanced Data Model in NetCDF-4/HDF5 Files
|
||||
\subsection Enhanced Data Model in NetCDF-4/HDF5 Files
|
||||
|
||||
Files created with the netCDF-4 format have access to an enhanced data
|
||||
model, which includes named groups. Groups, like directories in a Unix
|
||||
@ -474,7 +459,7 @@ Groups and user-defined types are only available in files created in
|
||||
the netCDF-4/HDF5 format. They are not available for classic or 64-bit
|
||||
offset format files.
|
||||
|
||||
\subsection dimensions Dimensions
|
||||
\section dimensions Dimensions
|
||||
|
||||
A dimension may be used to represent a real physical dimension, for
|
||||
example, time, latitude, longitude, or height. A dimension might also
|
||||
@ -536,7 +521,7 @@ data whose dimensions correspond to those of physical space/time
|
||||
should have a shape comprising different dimensions, even if some of
|
||||
these have the same length.
|
||||
|
||||
\subsection variables Variables
|
||||
\section variables Variables
|
||||
|
||||
Variables are used to store the bulk of the data in a netCDF
|
||||
dataset. A variable represents an array of values of the same type. A
|
||||
@ -591,7 +576,7 @@ product is variable because it involves the length of the unlimited
|
||||
dimension, which can vary. The length of the unlimited dimension is
|
||||
the number of records.
|
||||
|
||||
\subsection coordinate_variables Coordinate Variables
|
||||
\section coordinate_variables Coordinate Variables
|
||||
|
||||
It is legal for a variable to have the same name as a dimension. Such
|
||||
variables have no special meaning to the netCDF library. However there
|
||||
@ -633,7 +618,7 @@ use of coordinate variables commonly assume they are numeric vectors
|
||||
and strictly monotonic (all values are different and either increasing
|
||||
or decreasing).
|
||||
|
||||
\subsection attributes Attributes
|
||||
\section attributes Attributes
|
||||
|
||||
NetCDF attributes are used to store data about the data (ancillary
|
||||
data or metadata), similar in many ways to the information stored in
|
||||
@ -721,7 +706,7 @@ attributes. However adding new attributes to an existing classic or
|
||||
64-bit offset format dataset can incur the same expense as copying the
|
||||
dataset. For a more extensive discussion see Structure.
|
||||
|
||||
\subsection differences_atts_vars Differences between Attributes and Variables
|
||||
\section differences_atts_vars Differences between Attributes and Variables
|
||||
|
||||
In contrast to variables, which are intended for bulk data, attributes
|
||||
are intended for ancillary data, or information about the data. The
|
||||
@ -750,9 +735,9 @@ defined netCDF dimensions to index their values, or require a
|
||||
significant amount of storage, that data should be represented using
|
||||
variables rather than attributes.
|
||||
|
||||
\subsection object_name NetCDF Names
|
||||
\section object_name NetCDF Names
|
||||
|
||||
\subsubsection Permitted Characters in NetCDF Names
|
||||
\subsection Permitted Characters in NetCDF Names
|
||||
|
||||
The names of dimensions, variables and attributes (and, in netCDF-4
|
||||
files, groups, user-defined types, compound member names, and
|
||||
@ -770,7 +755,7 @@ Names that have trailing space characters are also not permitted.
|
||||
|
||||
Case is significant in netCDF names.
|
||||
|
||||
\subsubsection Name Length
|
||||
\subsection Name Length
|
||||
|
||||
A zero-length name is not allowed.
|
||||
|
||||
@ -782,12 +767,12 @@ All netCDF inquiry functions will return names of maximum size
|
||||
terminating NULL, space should be reserved for NC_MAX_NAME + 1
|
||||
characters.
|
||||
|
||||
\subsubsection NetCDF Conventions
|
||||
\subsection NetCDF Conventions
|
||||
|
||||
Some widely used conventions restrict names to only alphanumeric
|
||||
characters or underscores.
|
||||
|
||||
\subsection archival Is NetCDF a Good Archive Format?
|
||||
\section archival Is NetCDF a Good Archive Format?
|
||||
|
||||
NetCDF classic or 64-bit offset formats can be used as a
|
||||
general-purpose archive format for storing arrays. Compression of data
|
||||
@ -805,7 +790,7 @@ others not. In this case the compression and decompression of data
|
||||
happen transparently to the user, and the data may be stored, read,
|
||||
and written compressed.
|
||||
|
||||
\subsection attribute_conventions Attribute Conventions
|
||||
\section attribute_conventions Attribute Conventions
|
||||
|
||||
Attribute conventions are assumed by some netCDF generic applications,
|
||||
e.g., ‘units’ as the name for a string attribute that gives the units
|
||||
@ -821,7 +806,7 @@ character data.
|
||||
\note Attribute names commencing with underscore ('_') are reserved
|
||||
for use by the netCDF library.
|
||||
|
||||
\subsubsection units Units
|
||||
\subsection units Units
|
||||
|
||||
A character string that specifies the units used for the variable's
|
||||
data. Unidata has developed a freely-available library of routines to
|
||||
@ -832,13 +817,13 @@ recommended units syntax permits data represented in conformable units
|
||||
to be automatically converted to common units for arithmetic
|
||||
operations. For more information see Units.
|
||||
|
||||
\subsubsection long_name Long Name
|
||||
\subsection long_name Long Name
|
||||
|
||||
A long descriptive name. This could be used for labeling plots, for
|
||||
example. If a variable has no long_name attribute assigned, the
|
||||
variable name should be used as a default.
|
||||
|
||||
\subsubsection _FillValue FillValue
|
||||
\subsection _FillValue FillValue
|
||||
|
||||
The _FillValue attribute specifies the fill value used to pre-fill
|
||||
disk space allocated to the variable. Such pre-fill occurs unless
|
||||
@ -863,7 +848,7 @@ and therefore treated as missing when read by generic applications. It
|
||||
is legal (but not recommended) for the fill value to be within the
|
||||
valid range.
|
||||
|
||||
\subsubsection missing_value Missing Value
|
||||
\subsection missing_value Missing Value
|
||||
|
||||
This attribute is not treated in any special way by the library or
|
||||
conforming generic applications, but is often useful documentation and
|
||||
@ -906,7 +891,7 @@ If the variable is packed using scale_factor and add_offset attributes
|
||||
(see below), the _FillValue, missing_value, valid_range, valid_min, or
|
||||
valid_max attributes should have the data type of the packed data.
|
||||
|
||||
\subsubsection scale_factor Scale Factor
|
||||
\subsection scale_factor Scale Factor
|
||||
|
||||
If present for a variable, the data are to be multiplied by this
|
||||
factor after the data are read by the application that accesses the
|
||||
@ -918,7 +903,7 @@ specified in the domain of the data in the file (the packed data), so
|
||||
that they can be interpreted before the scale_factor and add_offset
|
||||
are applied.
|
||||
|
||||
\subsubsection add_offset Add Offset
|
||||
\subsection add_offset Add Offset
|
||||
|
||||
If present for a variable, this number is to be added to the data
|
||||
after it is read by the application that accesses the data. If both
|
||||
@ -937,7 +922,7 @@ short, whereas the unpacked values are intended to be of type float or
|
||||
double. The attributes scale_factor and add_offset should both be of
|
||||
the type intended for the unpacked data, e.g. float or double.
|
||||
|
||||
\subsubsection coordinates Coordinates
|
||||
\subsection coordinates Coordinates
|
||||
|
||||
Following the CF (Climate and Forecast) conventions for netCDF
|
||||
metadata, we define an <em>auxiliary coordinate variable</em> as any netCDF
|
||||
@ -951,7 +936,7 @@ names of auxiliary coordinate variables and (optionally) coordinate
|
||||
variables. There is no restriction on the order in which the variable
|
||||
names appear in the coordinates attribute string.
|
||||
|
||||
\subsubsection signedness Signedness
|
||||
\subsection signedness Signedness
|
||||
|
||||
Deprecated attribute, originally designed to indicate whether byte
|
||||
values should be treated as signed or unsigned. The attributes
|
||||
@ -960,7 +945,7 @@ you intend that a byte variable store only non-negative values, you
|
||||
can use valid_min = 0 and valid_max = 255. This attribute is ignored
|
||||
by the netCDF library.
|
||||
|
||||
\subsubsection C_format C Format
|
||||
\subsection C_format C Format
|
||||
|
||||
\tableofcontents
|
||||
|
||||
@ -973,19 +958,19 @@ defined. The format applies to the scaled (internal) type and value,
|
||||
regardless of the presence of the scaling attributes scale_factor and
|
||||
add_offset.
|
||||
|
||||
\subsubsection FORTRAN_format FORTRAN format
|
||||
\subsection FORTRAN_format FORTRAN format
|
||||
|
||||
A character array providing the format that should be used by FORTRAN
|
||||
applications to print values for this variable. For example, if you
|
||||
know a variable is only accurate to three significant digits, it would
|
||||
be appropriate to define the FORTRAN_format attribute as "(G10.3)".
|
||||
|
||||
\subsubsection title Title
|
||||
\subsection title Title
|
||||
|
||||
A global attribute that is a character array providing a succinct
|
||||
description of what is in the dataset.
|
||||
|
||||
\subsubsection history History
|
||||
\subsection history History
|
||||
|
||||
A global attribute for an audit trail. This is a character array with
|
||||
a line for each invocation of a program that has modified the
|
||||
@ -993,7 +978,7 @@ dataset. Well-behaved generic netCDF applications should append a line
|
||||
containing: date, time of day, user name, program name and command
|
||||
arguments.
|
||||
|
||||
\subsubsection Conventions Conventions
|
||||
\subsection Conventions Conventions
|
||||
|
||||
If present, 'Conventions' is a global attribute that is a character
|
||||
array for the name of the conventions followed by the
|
||||
@ -1038,7 +1023,7 @@ Typical conventions web sites will include references to documents in
|
||||
some form agreed upon by the community that supports the conventions
|
||||
and examples of netCDF file structures that follow the conventions.
|
||||
|
||||
\subsection background Background and Evolution of the NetCDF Interface
|
||||
\section background Background and Evolution of the NetCDF Interface
|
||||
|
||||
The development of the netCDF interface began with a modest goal
|
||||
related to Unidata's needs: to provide a common interface between
|
||||
@ -1263,12 +1248,12 @@ application is also included that provides a graphical user interface
|
||||
to capabilities similar to the C-based ncdump and ncgen utilities, as
|
||||
well as CF-compliance checking and many other features.
|
||||
|
||||
\subsection remote_client The Remote Data Access Client
|
||||
\section remote_client The Remote Data Access Client
|
||||
|
||||
Starting with version 4.1.1 the netCDF C libraries and utilities have
|
||||
supported remote data access.
|
||||
|
||||
\subsection data_access Data Access
|
||||
\section data_access Data Access
|
||||
|
||||
To access (read or write) netCDF data you specify an open netCDF
|
||||
dataset, a netCDF variable, and information (e.g., indices)
|
||||
@ -1297,7 +1282,7 @@ Similarly, a variable is not specified by name for every data access
|
||||
either, but by a variable ID, a small integer used to identify each
|
||||
variable in a netCDF dataset.
|
||||
|
||||
\subsection forms_of_data_access Forms of Data Access
|
||||
\section forms_of_data_access Forms of Data Access
|
||||
|
||||
The netCDF interface supports several forms of direct access to data
|
||||
values in an open netCDF dataset. We describe each of these forms of
|
||||
@ -1344,7 +1329,7 @@ The use of mapped array sections is discussed more fully below, but
|
||||
first we present an example of the more commonly used array-section
|
||||
access.
|
||||
|
||||
\subsection c_array_section_access A C Example of Array-Section Access
|
||||
\section c_array_section_access A C Example of Array-Section Access
|
||||
|
||||
Assume that in our earlier example of a netCDF dataset (see Network
|
||||
Common Data Form Language (CDL)), we wish to read a cross-section of
|
||||
@ -1476,11 +1461,13 @@ required. If you do not need these more general forms of access, you
|
||||
may ignore these capabilities and use single value access or regular
|
||||
array section access instead.
|
||||
|
||||
\section file_structure_and_performance File Structure and Performance
|
||||
\page file_structure_and_performance File Structure and Performance
|
||||
|
||||
\tableofcontents
|
||||
|
||||
\todo Indent the following part below this.
|
||||
|
||||
\section classic_file_parts Parts of a NetCDF Classic File
|
||||
\section classic_file_parts Parts of a NetCDF Classic File
|
||||
|
||||
A netCDF classic or 64-bit offset dataset is stored as a single file
|
||||
comprising two parts:
|
||||
@ -2081,7 +2068,7 @@ within grids are left out in order to mimic the behavior of libnc-dap.
|
||||
lon
|
||||
\endcode
|
||||
|
||||
\subsubsection var_dim_trans Variable Dimension Translation
|
||||
\subsection var_dim_trans Variable Dimension Translation
|
||||
|
||||
A variable's rank is determined from three sources.
|
||||
- The variable has the dimensions associated with the field it
|
||||
@ -2175,7 +2162,7 @@ dimensions:
|
||||
S1.FS2.f2_0 = 2 ;
|
||||
\endcode
|
||||
|
||||
\subsubsection var_name_trans Variable Name Translation
|
||||
\subsection var_name_trans Variable Name Translation
|
||||
|
||||
The steps for variable name translation are as follows.
|
||||
|
||||
@ -2523,6 +2510,10 @@ entries should have same value, which is the file path for the
|
||||
certificate produced by MyProxyLogon. The HTTP.SSL.CAPATH entry should
|
||||
be the path to the "certificates" directory produced by MyProxyLogon.
|
||||
|
||||
\page netcdf_perf_chunking Improving Performance with Chunking
|
||||
|
||||
\tableofcontents
|
||||
|
||||
\section chunk_cache The Chunk Cache
|
||||
|
||||
When data are first read or written to a netCDF-4/HDF5 variable, the
|
||||
@ -2674,7 +2665,11 @@ The bm_file program is controlled with command line options.
|
||||
file Name of netCDF file
|
||||
</pre>
|
||||
|
||||
\section netcdf_utilities_guide Netcdf Utilities
|
||||
\page netcdf_utilities_guide NetCDF Utilities
|
||||
|
||||
\tableofcontents
|
||||
|
||||
\section cdl_guide CDL Guide
|
||||
|
||||
\subsection cdl_syntax CDL Syntax
|
||||
|
||||
@ -3000,11 +2995,11 @@ extended as necessary.
|
||||
The ncgen man-page reference has more details about CDL representation
|
||||
of constants of user-defined types.
|
||||
|
||||
\subsection guide_ncdump ncdump
|
||||
\section guide_ncdump ncdump
|
||||
|
||||
\brief Convert netCDF file to text form (CDL)
|
||||
Convert NetCDF file to text form (CDL)
|
||||
|
||||
\subsubsection ncdump_SYNOPSIS ncdump synopsis
|
||||
\subsection ncdump_SYNOPSIS ncdump synopsis
|
||||
|
||||
\code
|
||||
ncdump [-chistxw] [-v var1,...] [-b lang] [-f lang]
|
||||
@ -3014,7 +3009,7 @@ ncdump [-chistxw] [-v var1,...] [-b lang] [-f lang]
|
||||
ncdump -k file
|
||||
\endcode
|
||||
|
||||
\subsubsection ncdump_DESCRIPTION ncdump description
|
||||
\subsection ncdump_DESCRIPTION ncdump description
|
||||
|
||||
The \b ncdump utility generates a text representation of a specified
|
||||
netCDF file on standard output, optionally excluding some or all of
|
||||
@ -3061,7 +3056,7 @@ be appropriate to use the variable attribute
|
||||
Z:C_format = "%.3g"
|
||||
\endcode
|
||||
|
||||
\subsubsection ncdump_OPTIONS ncdump options
|
||||
\subsection ncdump_OPTIONS ncdump options
|
||||
|
||||
@par -c
|
||||
Show the values of \e coordinate \e variables (1D variables with the
|
||||
@ -3212,7 +3207,7 @@ with client-side caching of entire variables.
|
||||
Output XML (NcML) instead of CDL. The NcML does not include data values.
|
||||
The NcML output option currently only works for netCDF classic model data.
|
||||
|
||||
\subsubsection ncdump_EXAMPLES ncdump examples
|
||||
\subsection ncdump_EXAMPLES ncdump examples
|
||||
|
||||
Look at the structure of the data in the netCDF file foo.nc:
|
||||
|
||||
@ -3257,26 +3252,26 @@ performance-related characterisitics of a netCDF-4 file:
|
||||
ncdump -h -s nc4file.nc
|
||||
\endcode
|
||||
|
||||
\subsubsection see_also_ncdump SEE ALSO
|
||||
\subsection see_also_ncdump SEE ALSO
|
||||
|
||||
ncgen(1), netcdf(3)
|
||||
|
||||
- \ref guide_ncgen
|
||||
- \ref guide_nccopy
|
||||
|
||||
\subsubsection ncdump_string_note NOTE ON STRING OUTPUT
|
||||
\subsection ncdump_string_note NOTE ON STRING OUTPUT
|
||||
|
||||
For classic, 64-bit offset or netCDF-4 classic model data, \b ncdump
|
||||
generates line breaks after embedded newlines in displaying character
|
||||
data. This is not done for netCDF-4 files, because netCDF-4 supports
|
||||
arrays of real strings of varying length.
|
||||
|
||||
\subsection guide_nccopy nccopy
|
||||
\section guide_nccopy nccopy
|
||||
|
||||
\brief Copy a netCDF file, optionally changing format, compression, or chunking in the output.
|
||||
Copy a netCDF file, optionally changing format, compression, or chunking in the output.
|
||||
|
||||
|
||||
\subsubsection nccopy_SYNOPSIS nccopy synopsis
|
||||
\subsection nccopy_SYNOPSIS nccopy synopsis
|
||||
|
||||
\code
|
||||
nccopy [-k kind] [-d n] [-s] [-c chunkspec] [-u] [-w] [-[v|V] var1,...]
|
||||
@ -3284,7 +3279,7 @@ nccopy [-k kind] [-d n] [-s] [-c chunkspec] [-u] [-w] [-[v|V] var1,...]
|
||||
[-r] infile outfile
|
||||
\endcode
|
||||
|
||||
\subsubsection nccopy_DESCRIPTION nccopy description
|
||||
\subsection nccopy_DESCRIPTION nccopy description
|
||||
|
||||
The \b nccopy utility copies an input netCDF file in any supported
|
||||
format variant to an output netCDF file, optionally converting the
|
||||
@ -3307,7 +3302,7 @@ If DAP support was enabled when \b nccopy was built, the file name may
|
||||
specify a DAP URL. This may be used to convert data on DAP servers to
|
||||
local netCDF files.
|
||||
|
||||
\subsubsection nccopy_OPTIONS nccopy options
|
||||
\subsection nccopy_OPTIONS nccopy options
|
||||
|
||||
\par -k \e kind
|
||||
Specifies the kind of file to be created (that is, the format variant)
|
||||
@ -3508,7 +3503,7 @@ file in memory before copying. Requires that input file be small
|
||||
enough to fit into memory. For \b nccopy, this doesn't seem to provide
|
||||
any significant speedup, so may not be a useful option.
|
||||
|
||||
\subsubsection nccopy_EXAMPLES nccopy examples
|
||||
\subsection nccopy_EXAMPLES nccopy examples
|
||||
|
||||
<H4> Simple Copy </H4>
|
||||
Make a copy of foo1.nc, a netCDF file of any type, to
|
||||
@ -3582,11 +3577,11 @@ memory before writing it to disk on close:
|
||||
nccopy -w -c time/1000,lat/40,lon/40 slow.nc fast.nc
|
||||
\endcode
|
||||
|
||||
\subsubsection see_also_nccopy SEE ALSO
|
||||
\subsection see_also_nccopy SEE ALSO
|
||||
|
||||
ncdump(1), ncgen(1), netcdf(3)
|
||||
|
||||
\subsection guide_ncgen ncgen
|
||||
\section guide_ncgen ncgen
|
||||
|
||||
The ncgen tool generates a netCDF file or a C or FORTRAN program that
|
||||
creates a netCDF dataset. If no options are specified in invoking
|
||||
@ -3688,7 +3683,7 @@ dataset:
|
||||
ncgen -l c foo.cdl > foo.c
|
||||
\endcode
|
||||
|
||||
\subsection guide_ncgen3 ncgen3
|
||||
\section guide_ncgen3 ncgen3
|
||||
|
||||
The ncgen3 tool is the new name for the older, original ncgen utility.
|
||||
|
||||
@ -3753,8 +3748,11 @@ faster, but it will also eliminate the possibility of detecting the
|
||||
inadvertent reading of values that haven't been written.
|
||||
</pre>
|
||||
|
||||
\page file_format_specifications File Format Specifications
|
||||
|
||||
\section file_format_spec_guide NetCDF File Format Specification
|
||||
\tableofcontents
|
||||
|
||||
\todo Wrap the following group of pages into this. From NetCDF Classic Format Spec through HDF4 SD Format.
|
||||
|
||||
\section classic_format_spec The NetCDF Classic Format Specification
|
||||
|
||||
@ -4063,7 +4061,7 @@ A special case: Where there is exactly one record variable, we drop
|
||||
the requirement that each record be four-byte aligned, so in this case
|
||||
there is no record padding.
|
||||
|
||||
\section offset_examples Examples
|
||||
\subsection offset_examples Examples
|
||||
|
||||
By using the grammar above, we can derive the smallest valid netCDF
|
||||
file, having no dimensions, no variables, no attributes, and hence, no
|
||||
|
@ -25,7 +25,7 @@ The NetCDF homepage may be found at <a href="http://www.unidata.ucar.edu/netcdf"
|
||||
|
||||
\subsection learn-more Learn more about using NetCDF-C
|
||||
|
||||
- \ref tutorial
|
||||
- \ref sec_tut
|
||||
- \ref user_guide
|
||||
- \ref netcdf_working_with_netcdf_files
|
||||
- <a class="el" href="http://www.unidata.ucar.edu/software/netcdf/docs/index-413.html">Older Documentation, plus details regarding netcdf-fortran and netcdf-cxx.</a>
|
||||
|
@ -1,6 +1,8 @@
|
||||
/*!
|
||||
/*! \file tutorial.dox The NetCDF-C Tutorial
|
||||
|
||||
\page tutorial NetCDF Tutorials
|
||||
\brief The NetCDF-C Tutorial
|
||||
|
||||
\mainpage
|
||||
|
||||
\tableofcontents
|
||||
|
||||
@ -349,7 +351,7 @@ information about the CF conventions, see http://cf-pcmdi.llnl.gov.
|
||||
|
||||
\page error_handling Error Handling
|
||||
|
||||
\ingroup error
|
||||
\addtogroup error
|
||||
|
||||
Each netCDF function in the C, Fortran 77, and Fortran 90 APIs returns
|
||||
0 on success, in the tradition of C.
|
||||
|
@ -10,8 +10,8 @@ libdir=@CMAKE_INSTALL_PREFIX@/lib
|
||||
includedir=@CMAKE_INSTALL_PREFIX@/include
|
||||
|
||||
cc="@CMAKE_C_COMPILER@"
|
||||
cflags="-I@CMAKE_INSTALL_PREFIX@/include @CMAKE_C_FLAGS@ @CMAKE_CPP_FLAGS@"
|
||||
libs="-L@CMAKE_INSTALL_PREFIX@/lib -l@ALL_TLL_LIBS@"
|
||||
cflags="-I@CMAKE_INSTALL_PREFIX@/include"
|
||||
libs="-L@CMAKE_INSTALL_PREFIX@/lib @NC_LIBS@"
|
||||
|
||||
has_dap="@USE_DAP@"
|
||||
if [ -z $has_dap ]; then
|
||||
|
Loading…
Reference in New Issue
Block a user