1 #include "nfconfig.inc"
32 Function nf_put_att_text(ncid, varid, name, nlen, text) RESULT(status)
36 USE netcdf_nc_interfaces
40 Integer,
Intent(IN) :: ncid, varid, nlen
41 Character(LEN=*),
Intent(IN) :: name, text
45 Integer(KIND=C_INT) :: cncid, cvarid, cstatus
46 Integer(KIND=C_SIZE_T) :: cnlen
47 Character(LEN=(LEN(name)+1)) :: cname
61 End Function nf_put_att_text
63 Function nf_put_att_text_a(ncid, varid, name, nlen, text) RESULT(status)
68 USE netcdf_nc_interfaces
72 Integer,
Intent(IN) :: ncid, varid, nlen
73 Character(LEN=*),
Intent(IN) :: name
74 Character(LEN=1),
Intent(IN) :: text(*)
78 Integer(KIND=C_INT) :: cncid, cvarid, cstatus
79 Integer(KIND=C_SIZE_T) :: cnlen
80 Character(LEN=(LEN(name)+1)) :: cname
94 End Function nf_put_att_text_a
96 Function nf_put_att_int1(ncid, varid, name, xtype, nlen, i1vals) &
101 USE netcdf_nc_interfaces
105 Integer,
Intent(IN) :: ncid, varid, nlen, xtype
107 Character(LEN=*),
Intent(IN) :: name
108 Integer(KIND=NFINT1),
Intent(IN) :: i1vals(*)
112 Integer(KIND=C_INT) :: cncid, cvarid, cstatus, cxtype
113 Integer(KIND=C_SIZE_T) :: cnlen
114 Character(LEN=(LEN(name)+1)) :: cname
117 If (c_signed_char < 0)
Then
131 #if NF_INT1_IS_C_SIGNED_CHAR
133 cxtype, cnlen, i1vals)
134 #elif NF_INT1_IS_C_SHORT
136 cxtype, cnlen, i1vals)
137 #elif NF_INT1_IS_C_INT
139 cxtype, cnlen, i1vals)
140 #elif NF_INT1_IS_C_LONG
142 cxtype, cnlen, i1vals)
146 End Function nf_put_att_int1
148 Function nf_put_att_int2(ncid, varid, name, xtype, nlen, i2vals) &
153 USE netcdf_nc_interfaces
157 Integer,
Intent(IN) :: ncid, varid, nlen, xtype
159 Character(LEN=*),
Intent(IN) :: name
160 Integer(KIND=NFINT2),
Intent(IN) :: i2vals(*)
164 Integer(KIND=C_INT) :: cncid, cvarid, cstatus, cxtype
165 Integer(KIND=C_SIZE_T) :: cnlen
166 Character(LEN=(LEN(name)+1)) :: cname
169 If (c_short < 0)
Then
181 #if NF_INT2_IS_C_SHORT
183 cxtype, cnlen, i2vals)
184 #elif NF_INT2_IS_C_INT
186 cxtype, cnlen, i2vals)
187 #elif NF_INT2_IS_C_LONG
189 cxtype, cnlen, i2vals)
193 End Function nf_put_att_int2
195 Function nf_put_att_int(ncid, varid, name, xtype, nlen, ivals) &
200 USE netcdf_nc_interfaces
204 Integer,
Intent(IN) :: ncid, varid, nlen, xtype
206 Character(LEN=*),
Intent(IN) :: name
207 Integer(NFINT),
Intent(IN) :: ivals(*)
211 Integer(KIND=C_INT) :: cncid, cvarid, cstatus, cxtype
212 Integer(KIND=C_SIZE_T) :: cnlen
213 Character(LEN=(LEN(name)+1)) :: cname
227 cxtype, cnlen, ivals)
228 #elif NF_INT_IS_C_LONG
230 cxtype, cnlen, ivals)
234 End Function nf_put_att_int
236 Function nf_put_att_real(ncid, varid, name, xtype, nlen, rvals) &
241 USE netcdf_nc_interfaces
245 Integer,
Intent(IN) :: ncid, varid, nlen, xtype
247 Character(LEN=*),
Intent(IN) :: name
248 Real(NFREAL),
Intent(IN) :: rvals(*)
252 Integer(KIND=C_INT) :: cncid, cvarid, cstatus, cxtype
253 Integer(KIND=C_SIZE_T) :: cnlen
254 Character(LEN=(LEN(name)+1)) :: cname
266 #if NF_REAL_IS_C_DOUBLE
268 cxtype, cnlen, rvals)
271 cxtype, cnlen, rvals)
275 End Function nf_put_att_real
277 Function nf_put_att_double(ncid, varid, name, xtype, nlen, dvals) &
282 USE netcdf_nc_interfaces
286 Integer,
Intent(IN) :: ncid, varid, nlen, xtype
288 Character(LEN=*),
Intent(IN) :: name
289 Real(RK8),
Intent(IN) :: dvals(*)
293 Integer(KIND=C_INT) :: cncid, cvarid, cstatus, cxtype
294 Integer(KIND=C_SIZE_T) :: cnlen
295 Character(LEN=(LEN(name)+1)) :: cname
308 cxtype, cnlen, dvals)
312 End Function nf_put_att_double
314 Function nf_get_att_text(ncid, varid, name, text) RESULT(status)
318 USE netcdf_nc_interfaces
322 Integer,
Intent(IN) :: ncid, varid
323 Character(LEN=*),
Intent(IN) :: name
324 Character(LEN=*),
Intent(OUT) :: text
328 Integer(KIND=C_INT) :: cncid, cvarid, cstatus
329 Character(LEN=(LEN(name)+1)) :: cname
334 text = repeat(
" ", len(text))
344 End Function nf_get_att_text
346 Function nf_get_att_text_a(ncid, varid, name, text) RESULT(status)
351 USE netcdf_nc_interfaces
355 Integer,
Intent(IN) :: ncid, varid
356 Character(LEN=*),
Intent(IN) :: name
357 Character(LEN=1),
Intent(OUT) :: text(*)
361 Integer(KIND=C_INT) :: cncid, cvarid, cstatus
362 Character(LEN=(LEN(name)+1)) :: cname
376 End Function nf_get_att_text_a
378 Function nf_get_att_int1(ncid, varid, name, i1vals) RESULT(status)
382 USE netcdf_nc_interfaces
386 Integer,
Intent(IN) :: ncid, varid
387 Character(LEN=*),
Intent(IN) :: name
388 Integer(KIND=NFINT1),
Intent(OUT) :: i1vals(*)
392 Integer(KIND=C_INT) :: cncid, cvarid, cstatus
393 Character(LEN=(LEN(name)+1)) :: cname
396 If (c_signed_char < 0)
Then
408 #if NF_INT1_IS_C_SIGNED_CHAR
410 #elif NF_INT1_IS_C_SHORT
412 #elif NF_INT1_IS_C_INT
414 #elif NF_INT1_IS_C_LONG
419 End Function nf_get_att_int1
421 Function nf_get_att_int2(ncid, varid, name, i2vals) RESULT(status)
425 USE netcdf_nc_interfaces
429 Integer,
Intent(IN) :: ncid, varid
430 Character(LEN=*),
Intent(IN) :: name
431 Integer(KIND=NFINT2),
Intent(OUT) :: i2vals(*)
435 Integer(KIND=C_INT) :: cncid, cvarid, cstatus
436 Character(LEN=(LEN(name)+1)) :: cname
439 If (c_short < 0)
Then
451 #if NF_INT2_IS_C_SHORT
453 #elif NF_INT2_IS_C_INT
455 #elif NF_INT2_IS_C_LONG
460 End Function nf_get_att_int2
462 Function nf_get_att_int(ncid, varid, name, ivals) RESULT(status)
466 USE netcdf_nc_interfaces
470 Integer,
Intent(IN) :: ncid, varid
471 Character(LEN=*),
Intent(IN) :: name
472 Integer(NFINT),
Intent(OUT) :: ivals(*)
476 Integer(KIND=C_INT) :: cncid, cvarid, cstatus
477 Character(LEN=(LEN(name)+1)) :: cname
489 #elif NF_INT_IS_C_LONG
494 End Function nf_get_att_int
496 Function nf_get_att_real(ncid, varid, name, rvals) RESULT(status)
500 USE netcdf_nc_interfaces
504 Integer,
Intent(IN) :: ncid, varid
505 Character(LEN=*),
Intent(IN) :: name
506 Real(NFREAL),
Intent(OUT) :: rvals(*)
510 Integer(KIND=C_INT) :: cncid, cvarid, cstatus
511 Character(LEN=(LEN(name)+1)) :: cname
521 #if NF_REAL_IS_C_DOUBLE
528 End Function nf_get_att_real
530 Function nf_get_att_double(ncid, varid, name, dvals) RESULT(status)
534 USE netcdf_nc_interfaces
538 Integer,
Intent(IN) :: ncid, varid
539 Character(LEN=*),
Intent(IN) :: name
540 Real(RK8),
Intent(OUT) :: dvals(*)
544 Integer(KIND=C_INT) :: cncid, cvarid, cstatus
545 Character(LEN=(LEN(name)+1)) :: cname
559 End Function nf_get_att_double
module procedure interfaces for utility routines