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