30 Function nf_inq_att(ncid, varid, name, xtype, nlen) RESULT(status)
34 USE netcdf_nc_interfaces
38 Integer,
Intent(IN) :: ncid, varid
39 Character(LEN=*),
Intent(IN) :: name
40 Integer,
Intent(OUT) :: nlen, xtype
44 Integer(KIND=C_INT) :: cncid, cstatus, cvarid
45 Integer(KIND=C_SIZE_T) :: cnlen
46 Integer(KIND=C_INT) :: cxtype
47 Character(LEN=(LEN(name)+1)) :: cname
57 cstatus =
nc_inq_att(cncid, cvarid, cname(1:ie+1), cxtype, cnlen)
59 If (cstatus == nc_noerr)
Then
65 End Function nf_inq_att
67 Function nf_inq_atttype(ncid, varid, name, xtype) RESULT(status)
71 USE netcdf_nc_interfaces
75 Integer,
Intent(IN) :: ncid, varid
76 Character(LEN=*),
Intent(IN) :: name
77 Integer,
Intent(OUT) :: xtype
81 Integer(KIND=C_INT) :: cncid, cstatus, cvarid
82 Integer(KIND=C_INT) :: cxtype
83 Character(LEN=(LEN(name)+1)) :: cname
95 If (cstatus == nc_noerr)
Then
100 End Function nf_inq_atttype
102 Function nf_inq_attlen(ncid, varid, name, nlen) RESULT(status)
106 USE netcdf_nc_interfaces
110 Integer,
Intent(IN) :: ncid, varid
111 Character(LEN=*),
Intent(IN) :: name
112 Integer,
Intent(OUT) :: nlen
116 Integer(KIND=C_INT) :: cncid, cstatus, cvarid
117 Integer(KIND=C_SIZE_T) :: cnlen
118 Character(LEN=(LEN(name)+1)) :: cname
130 If (cstatus == nc_noerr)
Then
135 End Function nf_inq_attlen
137 Function nf_inq_attid(ncid, varid, name, attnum) RESULT(status)
141 USE netcdf_nc_interfaces
145 Integer,
Intent(IN) :: ncid, varid
146 Character(LEN=*),
Intent(IN) :: name
147 Integer,
Intent(OUT) :: attnum
151 Integer(KIND=C_INT) :: cncid, cstatus, cattnum, cvarid
152 Character(LEN=(LEN(name)+1)) :: cname
162 cstatus =
nc_inq_attid(cncid, cvarid, cname(1:ie+1), cattnum)
164 If (cstatus == nc_noerr)
Then
169 End Function nf_inq_attid
171 Function nf_inq_attname(ncid, varid, attnum, name) RESULT(status)
175 USE netcdf_nc_interfaces
179 Integer,
Intent(IN) :: ncid, varid, attnum
180 Character(LEN=*),
Intent(OUT) :: name
184 Integer(KIND=C_INT) :: cncid, cstatus, cattnum, cvarid
185 Character(LEN=(LEN(name)+1)) :: tmpname
192 name = repeat(
" ",nlen)
193 tmpname = repeat(
" ",len(tmpname))
197 If (cstatus == nc_noerr)
Then
205 End Function nf_inq_attname
207 Function nf_copy_att(ncid_in, varid_in, name, ncid_out, varid_out) &
213 USE netcdf_nc_interfaces
217 Integer,
Intent(IN) :: ncid_in, varid_in, ncid_out, varid_out
218 Character(LEN=*),
Intent(IN) :: name
222 Integer(KIND=C_INT) :: cncidin, cncidout,cvaridin, cvaridout, cstatus
223 Character(LEN=(LEN(name)+1)) :: cname
227 cvaridin = varid_in - 1
229 cvaridout = varid_out - 1
235 cstatus =
nc_copy_att(cncidin, cvaridin, cname(1:ie+1), &
240 End Function nf_copy_att
242 Function nf_rename_att(ncid, varid, name, newname) RESULT(status)
246 USE netcdf_nc_interfaces
250 Integer,
Intent(IN) :: ncid, varid
251 Character(LEN=*),
Intent(IN) :: name, newname
255 Integer(KIND=C_INT) :: cncid, cvarid, cstatus
256 Character(LEN=(LEN(name)+1)) :: cname
257 Character(LEN=(LEN(newname)+1)) :: cnewname
258 Integer :: ie1, ie2, inull
270 cstatus =
nc_rename_att(cncid, cvarid, cname(1:ie1+1), cnewname(1:ie2+1))
274 End Function nf_rename_att
276 Function nf_del_att(ncid, varid, name) RESULT(status)
280 USE netcdf_nc_interfaces
284 Integer,
Intent(IN) :: ncid, varid
285 Character(LEN=*),
Intent(IN) :: name
289 Integer(KIND=C_INT) :: cncid, cvarid, cstatus
290 Character(LEN=(LEN(name)+1)) :: cname
300 cstatus =
nc_del_att(cncid, cvarid, cname(1:ie+1))
304 End Function nf_del_att
module procedure interfaces for utility routines