ANSYS ICEM CFD™ Domain (Native Mesh Node and Element Data) Library Description

Last revised on Jan 20 2000.

Contents:
 

Introduction

This section describes a software interface for creating, modifying, and reading files containing mesh node and element data.  Each file is called a domain file.   Each domain file contains information describing nodes (locations) and elements (volumes, shells or trusses).   Additionally, each file contains one or more subdomains.   A domain is a zero, one, two, or three dimensional collection of nodes or elements.  Note that all coordinate values are written in double precision.  Each domain is identified within the file by a domain name which is a character string of arbitrary length.   It should not be necessary for a developer writing a mesh generator or an output processor to know the internal layout of the data within the domain file. All information within the domain files should be accessed via a set of routines known as the domain file library.    This document described the different functions of the domain library.

The domain library domainlib.a is located in the directory : $ICEM_ACN/icemcfd/output-interfaces/lib.   It contains interface routines for C and FORTRAN interfaces.   To use these routines, the user must include the header file domain.h in C or C++ routines, or fdom.h in Fortran routines.  These include files are located in  the directory $ICEM_ACN/icemcfd/output-interfaces/include.
 

Error Handling
 

C error_message = char *df_error()
FORTRAN call dfgterr(error_message), call domexit()
When the domain library detects an error, it records the error message and returns an error code in the form of an integer smaller than zero. Only the last detected error message is recorded. To obtain the error message, the C function df_error() may be called.  The return value of the function is a pointer to a string describing the error.

The error handling in the fortran interface is a bit different than for the C interface. In the Fortran interface, each function holds an additional argument, ier, which contain the error code (integer).   Errors are indicated with ier set to -1 except where otherwise noted. The Fortran function dfgterr(error_message) returns  a message describing the error, while domexit() prints the error message to the standard output and exits the program.
 

Open and Close a Domain File

Open a Domain File
 
 

C int file_no = df_open(char *filename, int mode, int type
FORTRAN call dfopen(filename, len, mode, type, file_no)
filename char domain file name
len int length of domain file name
mode int opening mode where: 
MODE_READ = 0
MODE_WRITE = 1
MODE_MODIFY = 2
type/
type
int  domain type where: 
GLOBAL_DOMAIN = 0 
STRUCTURED_DOMAIN =1 
UNSTRUCTURED_DOMAIN=2
file_no int file index identifier

This function opens a domain file with one of the modes and returns an integer which is used to identify the file to the domain file library in subsequent calls. If the mode is MODE_WRITE the argument type is used to set the type of the grid in the file.


Close a Domain File
 
 

C ier = int df_close(int file_no
FORTRAN call dfclose(file_no, ier
file_no int file index identifier
ier int error code

This function flushes all buffers maintained by the domain file library associated with the domain file and closes the file.  When the domain file is opened in reading mode, this function creates the domain file on disk prior to releasing the memory.  If omitted, the domain file is not written.


General Functions
 
 

C ier = int df_type(int file_no, int *type
FORTRAN call dftype(file_no, type, ier
file_no int file index identifier
type int domain type where: 
GLOBAL_DOMAIN = 0 
STRUCTURED_DOMAIN =  1 
UNSTRUCTURED_DOMAIN = 2
ier int error code
This function returns the type of domain contained in the domain  file



 
C ier = int df_date(int file_no, int *mod_date
FORTRAN call dfdate(file_no, mod_date, ier
file_no int file index identifier
mod_date int modification date
ier int error code
This function returns the modification date in the variable mod_date. The modification date is given in seconds since 00:00:00 GMT, January 1, 1970 (Standard manner of representing time in the UNIX world).



 
C ier = int df_coordinate_system(int file_no, int *
FORTRAN call dfcosys(file_no, c_system, ier
file_no int file index identifier
c_system int coordinate system where:
CARTESIAN_SYSTEM = 0
CYLINDRICAL_SYSTEM = 1
SPHERICAL_SYSTEM = 2
ier int error code
This function returns the coordinate system in the variable c_system.



 
C ier = int df_n_domain(intfile_no, int *
FORTRAN call dfndom(file_no, n_domain, ier
file_no int file index identifier
n_domain int number of subdomains
ier int error code
This function returns the number of subdomains in the domain file.



 
C ier = int df_get_domain(int file_no, char *subdom_name, 
                 int *subdom_no
FORTRAN call dfgtdom(file_no, subdom_name,subdom_no, ier
file_no int file index identifier
subdom_name char name of a subdomain
subdom_no int subdomain's number
ier int error code

This function determines whether the subdomain specified by subdom_name exists in the specified file.  If so, it sets subdomain to a value which may be used to make further inquiries about the domain.



 
C ier = int df_domain_name(int file_no, int subdom_no, 
                  char **subdom_name
FORTRAN call dfdname(file_no, subdom_no,subdom_name, ier
file_no int file index identifier
subdom_no int subdomain's number
subdom_name char subdomain's name
ier int error code
This function returns the name of the subdomain specified by file_no and subdom_no.


Functions Specific to Structured Domain Files
 

C ier = int df_add_primary_domain(int file_no,
      char *subdom_name, int imin[3], int imax[3]
FORTRAN call dfaprid(file_no, subdom_name, imin, imax, ier
file_no int file index identifier
subdom_name int subdomain's name
imin(3), imax(3) char node range of subdomain
ier int error code
This function must be called before writing any nodes to a structured domain file.  It defines the primary domain and the range of the nodes in the file.



 
C ier = int df_add_secondary_domain(int file_no, 
      char *subdom_name, int imin[3], int imax[3]
FORTRAN call dfasecd(file_no, subdom_name, imin, imax, ier
file_no int file index identifier
subdom_name int subdomain's name
imin(3), imax(3) char node range of subdomain
ier int error code
This function defines a secondary domain within a file such as a face.



 
C ier = int DF_Add_Secondary_Domain(int file_no, 
      char *subdom_name, int imin[3], int imax[3], int pid
FORTRAN (not supported)
file_no int file index identifier
subdom_name int subdomain's name
imin(3), imax(3) int[] node range of subdomain
pid int property ID
ier int error code
This function defines also a secondary domain , with the given property ID.



 
C ier = int df_struct_write_nodes(int file_no, int npnts,
                                double *pnt
FORTRAN call dfswrn(file_no, npnts, pnts,ier
file_no int file index identifier
npnts int number of nodes
pnt double[] coordinate array
ier int error code
This function writes the nodes into the structured domain file. Using this interface, all property IDs are set to 1.  Nodes must be written to the file in the order :
(imin[0], imin[1], imin[2])
(imin[0]+1, imin[1], imin[2]), ...
(imax[0], imin[1], imin[2]),
(imin[0], imin[1]+1, imin[2]),  ...
(imax[0], imax[1], imax[2])


 
C ier = int DF_Struct_Write_Nodes(int file_no, int npnts, 
                                double *pnt, int *ext_no
FORTRAN (not available)
file_no int file index identifier
npnts int number of nodes
pnt double[] node coordinates array
ext_no int[] array of node external numbers
ier int error code
Writes the nodes into the structured domain file.  Using this interface,  each node's external number is set according to the value given in array ext_no.   The nodes must be written to the file in the same order as for the function df_struct_write_nodes.


C ier = int df_struct_domain_range(int file_no, int subdom_no, 
                                 int imin[3], int imax[3]
FORTRAN call dfsdorg(file_no, subdom_no, imin, imax, ier
file_no int file index identifier
subdom_no int subdomain's number
imin(3), imax(3) int[] node range of subdomain
ier int error code
This function returns the range of the nodes in a particular subdomain. Using subdomain number 0, it returns the dimension of the block (primary domain).



 
C ier = int df_struct_read_nodes(int file_no, int subdom_no,
                  int imin[3], int imax[3], double *pnts
FORTRAN call dfsrdn(file_no, subdom_no, imin, imax, pnts, ier
file_no int file index identifier
subdom_no int subdomain's number
imin(3), imax(3) int[] range of node to read 
pnts double[] array of node coordinates
ier int error code
This function reads all of the nodes (contiguously) within the prescribed range.



 
C ier = int DF_Struct_Read_Nodes(int file_no, int subdom_no, int imin[3], 
                               int imax[3], double *pnts, int *ext_no
FORTRAN  not available
file_no int file index identifier
subdom_no int subdomain's number
imin(3), imax(3) int[] range of node to read 
pnts double[] array of node coordinates
ext_no int[] array of node external numbers
ier int error code
This function reads  all  the nodes coordinates and property ids (contiguously) within the prescribed range.



 
C ier = int df_struct_degree (int file_no, int *degree
FORTRAN call dfstdeg(file_no, degree, ier
file_no int file index identifier
degree int degree of structured domain
ier int error code
This function reads the degree of the structured domain.


Unstructured Domain Files

Unstructured domain file content:

In an unstructured domain file, the nodes are numbered internally from 0 to n-1 where n is the number of nodes. Each node consists of three double precision coordinates and one external number. This external number may be any value.  No checks are performed for external node number uniqueness.

The elements are numbered from n to n + m - 1 where m is the number of elements.  An element consists of the element's external number, its property id and its node connectivity.

Consecutively numbered elements of the same type are called sections.  Element types are defined in the files element.h (C) or felem.h (FORTRAN), which are both located in the directory /$ICEM_ACN/icemcfd/output-interfaces/include.
 

Example of an unstructured file:

    (node definition)

 
0 xn(0) x(0) y(0) z(0)
1 xn(1) x(1) y(1) z(1)
2 xn(2) x(2) y(2) z(2)
...
n-1  xn(n-1) x(n-1)  y(n-1) z(n-1)
    (Section 1: m elements,  each with k nodes)
 
pid(n) node(n,1) node(n,2) ... node(n,k)
n+1  pid(n+1) node(n+1,1) node(n+1,2) ... node(n+1,k)
n+2 pid(n+2) node(n+2,1) node(n+2,2) ... node(n+2,k)
...
n+m-1 pid(n+m-1) node(n+m-1,1) node(n+m-1,2) ... node(n+m-1,k)
    (Section 2: p elements each with j nodes)
 
 
n +m pid(n+m) node(n+m,1) node(n+m,2) ... node(n+m,j)
n+m+1  pid(n+m+1) node(n+m+1,1) node(n+m+1,2) ... node(n+m+1,j)
n+m+2 pid(n+m+2) node(n+m+2,1) node(n+m+2,2) ... node(n+m+2,j)
...
n+m+p-1 pid(n+m+p-1) node(n+m+p-1,1) node(n+m+p-1,2) ... node(n+m+p-1,j)
The variable pid is the property id of the element.  If the unstructured domainfile is generated from a multi-block,structured domain file, the element pid contains the edge, subface or domain number, for bar, shell and volume elements respectively.  For unstructured domain files based on family entities, the property id number contains the family number.

Unstructured element types:

The element types currently supported by ICEM CFD are:

 
0D NODE
1D BAR_2 BAR_3
2D TRI_3 TRI_6 QUAD_4 QUAD_8, QUAD_9
3D TETRA_4  PYRA_5 PENTA_6 HEXA_8 
TETRA_10 PYRA_14 PENTA_15, PENTA_18 HEXA_20 ,  HEXA_27
The node connectivity of these element types follows NASTRAN's conventions.

Topological entities:

These definitions are true only for unstructured grid create with the utility str->unstr. Topological entities (domains, subfaces, edges, and vertices) are represented in unstructured domain files as follows:


Functions Specific to Unstructured Domain Files
 

C ier = int df_unstruct_write_nodes(int file_no, int npnts,
                                  double *pnt) 
FORTRAN call dfuwrn(file_no, npnts, pnt,ier
file_no int file index identifier
npnts int number of nodes
pnt double[] array of nodes coordinates
ier int error code
This function write the node coordinates to an unstructured domain file. The nodes are numbered consecutively, starting with 0.



 
C ier = int DF_Unstruct_Write_Nodes(int file_no, int npnts, 
                                  double *pnt, int ext_no
FORTRAN not available
file_no int file index identifier
npnts int number of nodes
pnt double[] array of nodes coordinates
ext_no int[] array of nodes external numbers
ier int error code
Write the node coordinates and external numbers to an unstructured domain file.



 
C ier = int df_add_unstruct_domain(int file_no, char *subdom_name, 
                                 int ndim, int start, int end
FORTRAN call dfaddud(file_no, subdom_name, ndim, start, end, ier
file_no int file index identifier
subdom_name char[] name of subdomain
ndim int dimension of model (1,2 or 3)
start int start index
end int end index
ier int error code
Add an unstructured subdomain to an unstructured domain file. It begins with the creation of a list of nodes or elements in a domain file. If start index <= end index, then the domain definition is completed with this call, otherwise df_add_members() must be called to create the explicit list of members (nodes or elements) of the domain.



 
C ier = int df_add_domain_members(int file_no, int subdom_no, 
                                int nmembers, int *members
FORTRAN call dfadmb(file_no, subdom_no, nmembers, members, ier)

 
file_no int file index identifier
subdom_no int subdomain's number
nmembers int number of members
members int[] list of members
ier int error code
This function add members to a subdomain in an unstructured domain file.



 
C element_no = int df_write_elements(int file_no, int nelements, 
                                   int *data, int type
FORTRAN call dfwrel(file_no, nelements, data, type, element_no
file_no int file index identifier
nelements int number of elements
data int[] element array
type int element type
element_no int First element number.  If error, element_no=-1
This function write elements to an unstructured domain file. The information in a array data containing n elements of m nodes is organized as follow:
 
data[...]= pid(1), node(1,1), node(2,1),... node(m,1),
pid(2), node(1,2), node(2,2),... node(m,2), 
... pid(n), node(1,n), node(2,n),... node(m,n)


 
C element_no = int DF_Write_Elements(int file_no, int nelements, int *data,
                                   int numbered, int type
FORTRAN not available
file_no int file index identifier
nelements int number of elements
data int[] element array
type int element type
numbered int flag to indicate that the elements are externally numbered
element_no int First element number.  If error, element_no=-1
This function writes the elements to an unstructured domain file. If the flag numbered equals 0, then the data should be passed as for df_write_elements.  Otherwise the data should be given as:
 
data[...]= ext_no(1) pid(1), node(1,1), node(2,1),... node(m,1),
ext_no(2) pid(2), node(1,2), node(2,2),... node(m,2), ...
... ext_no(n) pid(n), node(1,n), node(2,n),... node(m,n)


 
C element_type = int df_read_elements(int file_no, int element_no,
                                    int nelements, int *data
FORTRAN call dfrdel(file_no, element_no, nelements,data, element_type
file_no int file index identifier
element_no int starting element number
nelements  int number of elements 
data int[] array of  elements
element_type int Element type.  If error, element_type = -1 
This function reads nelements  consecutive elements, starting with element element_no,  from an unstructured domain file. The information in the array data is as described in function df_write_elements.



 
C  element_type = int DF_Read_Elements(int file_no, int element_no, int nelements,
                              int *data, int numbered
FORTRAN not available
file_no int file index identifier
element_no int starting element number
nelements  int number of elements 
data int[] array of  elements
numbered int flag to request the element number
element_type int Element type.  If error, element_type = -1 
This function reads the elements from an unstructured domain file. If the flag numbered equals 0, then the data is passed as for df_read_elements.  Otherwise the data is given  described for function  DF_Write_Elements.



 
C ier = int df_unstruct_read_nodes(int file_no, int start,
                                 int npnts, double *pnt
FORTRAN call dfurdn(file_no, start, npnts,pnt, ier
file_no int file index identifier
start int starting node number
npnts  int number of nodes to read
pnt double[] array of  node coordinates
ier int error code
This function reads the nodes from an unstructured domain.



 
C ier = int DF_Unstruct_Read_Nodes(int file_no, int start, int npnts, 
                          double *pnt, int *ext_no
FORTRAN not available
file_no int file index identifier
start int starting node number
npnts int number of nodes to read
pnt double[] array of  nodes coordinates
ext_no int[] array of nodes external numbers
ier int error code

This function reads the nodes coordinates and external numbers from an unstructured domain file.



 
C ier int df_domain_dimensions(int file_no, int subdom_no, 
                         int *dimension
FORTRAN call dfdodim(file_no, subdom_no, dimension, ier

 
file_no int file index identifier
subdom_no int subdomain's number
dimension int dimension of subdomain
ier int error code
This functions reads the dimension of a subdomain comprised in the unstructured domain file.



 
 C ier = int df_n_nodes(int file_no, int *nnodes
FORTRAN call dfnnod(file_no, nnodes, ier
file_no int file index identifier
nnodes int number of  nodes 
ier int error code
This function returns the number of nodes in an unstructured domain file.



 
C ier = int df_n_elements(int file_no, int *nelements
FORTRAN call dfnelem(file_no, nelements, ier
file_no int file index identifier
elements int number of  elements
ier int error code
This function returns the number of elements in an unstructured domain file.



 
C ier = int df_n_sections(int file_no, int *nsections
FORTRAN call dfnsect(file_no, nsections, ier
file_no int file index identifier
nsections int number of  elements sections
ier int error code
This function returns the number of sections in an unstructured domain file.



 
C ier int df_section_info(int file_no, int section_no,
                    int *start, int *end, int *type
FORTRAN call dfscinf(file_no, section_no,start, end, type, ier
file_no int file index identifier
section_no int section number
start int index of first element
end int index of last element
type int element type
ier int error code
This function returns the first and last element index  and the type of elements of a section in the unstructured domain file.



 
C ier int df_domain_type(int file_no, int subdom_no, 
                   int *type
FORTRAN call dfdmtyp (file_no, subdom_no,type
file_no int file index identifier
subdom_no int subdomain's number
type int subdomain's type:
RANGE_DOMAIN     = 0
EXPLICIT DOMAIN   = 1
REAL_RESULTS         = 2
DOUBLE_RESULTS = 3
BY_PID                          = 4
STRING_DOMAIN     = 5
ier int error code
The subdomain can be either described by a range or by a list of elements. In the C include file domain.h these types are defined by the key words: "RANGE_DOMAIN" (=0) and "EXPLICIT_DOMAIN" (=1) ,etc.   In the FORTRAN include file "fdom.h", they are defined with the key words "dfrang" (=0) and "dfexpl" (=1).



 
C ier int df_get_range(int file_no, int subdom_no,
                 int *start, int *end
FORTRAN call dfgtrg(file_no, subdom_no, start, end, ier
file_no int file index identifier
subdom_no int subdomain's number
start int start index of a range domain
end int end index of a range domain
ier int error code
This function returns the range (start and end index) of a subdomain type "RANGE" in the unstructured domain file.



 
C ier int df_n_members(int file_no, int subdom_no, 
                 int nmembers
FORTRAN call dfgtmb(file_no, subdom_no, nmembers, ier

 
file_no int file index identifier
subdom_no int subdomain's number
nmembers int number of members (nodes or elements)
ier int error code
This function returns the number of members in an subdomain type "EXPLICIT" of an unstructured domain file.



 
C ier = int df_get_members(int file_no, int subdom_no, int start,
                         int nmembers, int *members
FORTRAN call dfgtmb(file_no, subdom_no, start, nmembers,members, ier
file_no int file index identifier
subdom_no int subdomain's number
start int index of first member requested
nmembers int number of members requested
members int[] list of members
ier int error code
This function returns the members of a subdomain type "EXPLICIT" in unstructured domain file.



 
C ier = int df_create_connectivity(int file_no
FORTRAN call dfcrconn(file_no, ier
file_no int file index identifier
ier int error code
Although the domain files do not contain any connectivity information between elements, this information can be created and accessed by the domain library.



 
C ier = int df_delete_connectivity(int file_no
FORTRAN call dfdelconn(file_no, ier
file_no int file index identifier
ier int error code
The function df_delete_connectivity can be called to delete the connectivity information created by the function  df_create_connectivity. This call has no effect on the domain file itself.



 
C nneighbors = int df_neighbors(int file_no, int eltype, int max_ret, 
                       int elnodes[], int neighbors[])
FORTRAN call dfneigh (file_no, eltype, max_ret, elnodes, neighbors, nneighbors
file_no int file index identifier
eltype int face type of the element given
max_ret int maximum no of neighbors to return
elnodes int[] nodes of the given element
neighbors int[] list of elements touching the given element
nneighbors int no of neighbors found for the given element
ier int error code
This function finds the edge, face and volume elements containing a node; the face and volume elements containing an edge; and the volume elements containing a face. The face type can be any of the following: NODE, BAR_2, BAR_3, QUAD_4, QUAD_8, QUAD_9, TRI_3 and TRI_6. The element given need not be an element that exists in the domain file. Thus, the hexahedron neighbor of a known hexahedron can be found by giving the four nodes from the appropriate face. The function will return two elements, the known hexahedron plus the neighbor.  The variable max_ret is the maximum number of elements that this routine will place in neighbors. The actual number will be the return value of the function. The function will return -1 if an error occurred. This function can only be used after creating the connectivity table (with df_create_connectivity).



 
C npe = int df_nodes_per_element(int eltype)
FORTRAN call dfnpel (eltype, npe
eltype int element type
npe int number of nodes in this element
This  function returns the number of nodes, or zero if an error occurred.



 
C ier = int df_set_family_pid(int file_no, char *name, int pid)
FORTRAN not available
file_no int file index identifier 
name char family name
pid int property ID
ier int error code
This  function adds a subdomain to a unstructured file and writes the family name and its corresponding PID. A subdomain
type = BY_PID is automatically added to the domain file previously open in MODE_WRITE or MODE_MODIFY.



 
C ier = int df_get_family_pid(int file_no, char *name, int *pid)
FORTRAN not available
file_no int file index identifier 
name char family name
pid int property ID
ier int error code
Knowing the subdomain family name, this function returns the subdomain PID number. The subdomain
must be of type = BY_PID and the file must have been open in MODE_READ.



 
C ier = int df_get_pid_family(int file_no, int pid, char **name)
FORTRAN not available
file_no int file index identifier 
name char family name
pid int property ID
ier int error code
Knowing the subdomain PID number, this function returns the subdomain family name. The subdomain
must be of type = BY_PID and the file must have been open in MODE_READ.



 
C ier = int df_get_pid_of_domain(int file_no, int domain_no, int *pid)
FORTRAN not available
file_no int file index identifier 
domain_no char domain number
pid int property ID
ier int error code
Knowing the subdomain number, this function returns the subdomain PID number. The subdomain
must be of type = BY_PID and the file must have been open in MODE_READ.



 
C ier = int df_add_string_domain(int file_no, char *name, char *string)
FORTRAN not available
file_no int file index identifier 
name char name of the subdomain 
string char string
ier int error code
This function creates a subdomain of type = STRING_DOMAIN and writes a string in that subdomain.
The file must have been open in MODE_WRITE or MODE_MODIFY.



 
C ier = int df_get_string(int file_no, int domain_no, char **value)
FORTRAN not available
file_no int file index identifier 
domain_no int subdomain number
value char string
ier int error code
Knowing the subdomain number, this function returns the corresponding string. The subdomain must
be of  type = STRING_DOMAIN  and the file must have been open in MODE_READ.



 
C ier = int df_result_data_type(int file_no, int domain_no, int *type)
FORTRAN not available
file_no int file index identifier 
domain_no int subdomain number
type int subdomain type
ier int error code
Knowing the subdomain number, this function returns the corresponding subdomain type number. The subdomain must
be of  type = REAL_RESULTS or type = DOUBLE_RESULTS  and the file must have been open in MODE_READ.



 
C ier = int df_read_result(int file_no, int domain_no, void *data)
FORTRAN not available
file_no int file index identifier 
domain_no int subdomain number
data void  array of data
ier int error code
Knowing the subdomain number, this function returns the corresponding results. The subdomain must  be of
type = REAL_RESULTS or type = DOUBLE_RESULTS  and the file must have been open in MODE_READ.



 
C ier = int df_add_unstruc_result_data(int file_no, char *name, int start,
                                     int end, int type, void *data)
FORTRAN not available
file_no int file index identifier 
name char data name
start int nodes or elements starting index
end int nodes or elements ending index
type int result type
data void array of data
ier int error code
This function writes the corresponding results for an unstructured mesh. For nodal data, it records one solution value per node, and the start
and end indices must be set to the first and last node number of the mesh. For cell centered data, it records one solution value per element,
and the start and end indices must correspond to the first and last element of the mesh (partial range  is not allowed).The subdomain created
is  of  type = REAL_RESULTS or type = DOUBLE_RESULTS  and the file must have been open in MODE_WRITE or MODE_MODIFY.



 

Functions Specific to Cartesian Mesh Files Generated by the GLOBAL Mesher
 

C ier = int df_set_global_grid_type(int file_no, int type
FORTRAN not available
file_no int file index identifier
type int global grid type
ier int error code
This function sets the type of the global grid.



 
C ier = int df_write_stations(int file_no, int dimension, 
                            int n_stations, double *stations
FORTRAN not available
file_no int file index identifier
dimension int dimension of station
n_stations int[] number of stations
stations double[] array of stations
ier int error code
This function writes the stations to the global domain file.



 
C ier = int df_global_nijk(int file_no, int nijk[3]
FORTRAN not available
file_no int file index identifier
nijk[3] int[] number of stations in each direction
ier int error code
This function returns the number of stations in each direction.