LOGICAL FUNCTION WRATT3( FNAME, VNAME,
& ANAME, ATYPE, ASIZE, AVAL )
LOGICAL ENTRY WRATTC( 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 ) :: ASIZE ! attribute size
REAL , INTENT(IN ) :: AVAL( AMAX ) ! attribute value (numeric)
CHARACTER*(*), INTENT(IN ) :: CVAL ! attribute value (character-string)
wratt3c() is a C wrapper calling the Fortran
WRATT3() and WRATTC():
integer wratt3c( const char * fname ,
const char * vname ,
const char * aname ,
int atype ,
int asize ,
void * aval )
WRATT3() writes the numeric (INTEGER, REAL, or
DOUBLE attribute named ANAME for the variable
VNAME to the file with
logical name FNAME
from the array AVAL(AMAX); WRATTC() writes
the CHARACTER string valued attribute 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 be netCDF-based rather than
"buffered" or "virtual"; it must already have
been opened by OPEN3() or
open3c().
There is a significant performance penalty if the
WRATT*() routines are called after data has
been written to the file, since in that case the underlying
netCDF run-time will create a copy of the entire
existing file that contains the new attribute, and then
rename the copy to the original file name.
...
USE M3UTILIO
...
<under construction>
...
...
#include "iodecl3.h"
...
<under construction>
...
To: Models-3/EDSS I/O API: The Help Pages