LOGICAL FUNCTION RDATT3( FNAME, VNAME, ANAME, ATYPE, AMAX,
& ASIZE, AVAL )
LOGICAL ENTRY RDATTC( FNAME, VNAME, ANAME, CVAL )
CHARACTER*(*), INTENT(IN ) :: FNAME ! logical file name
CHARACTER*(*), INTENT(IN ) :: VNAME ! variable name, or ALLVARS3
CHARACTER*(*), INTENT(IN ) :: ANAME ! attribute name
INTEGER , INTENT(IN ) :: ATYPE ! attribute type (M3CHAR, M3REAL, M3INT, M3INT8, M3DBLE)
INTEGER , INTENT(IN ) :: AMAX ! attribute dimensionality
INTEGER , INTENT( OUT) :: ASIZE ! attribute actual size
REAL , INTENT( OUT) :: AVAL( AMAX ) ! attribute value (numeric)
CHARACTER*(*), INTENT( OUT) :: CVAL ! attribute value (character-string)
rdatt3c() is a C wrapper calling the Fortran
RDATT3() and RDATTC():
integer rdatt3c( const char * fname ,
const char * vname ,
const char * aname ,
int atype ,
int amax ,
int * asize ,
void * aval )
RDATT3() reads the numeric (INTEGER, REAL, or
DOUBLE attribute named ANAME for the variable
VNAME in the file with
logical name FNAME
into the array AVAL(AMAX); RDATTC() reads
the CHARACTER string valued attribute into string
CVAL.
Returns .TRUE. (or 1) if the operation succeeds,
.FALSE. (or 0) if it fails. For failure, writes
a log message indicating the nature of the failure.
For Fortran-90 declarations:
USE M3UTILIO
USE M3UTILIO
or INCLUDE 'IODECL3.EXT'
for Fortran, or
#include "iodecl3.h" and
#include "fdesc3.h" for C.
I/O API must already be initialized by a call to
INIT3().
Names FNAME and VNAME must have length
at most 16, exclusive of trailing blanks.
File FNAME must must be netCDF-based rather than
"buffered" or "virtual"; it must already have
been opened by OPEN3() or
open3c().
Actual on-file value of the attribute must have at most
AMAX array elements, or must be a string of
length at most LEN(CVAL).
...
USE M3UTILIO
...
<under construction>
...
...
#include "iodecl3.h"
...
<under construction>
...
To: Models-3/EDSS I/O API: The Help Pages