gdncvarputattrint.f90 File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine gdncvarputattrint (var, name, value, err)
 

Function/Subroutine Documentation

◆ gdncvarputattrint()

subroutine gdncvarputattrint ( type(gd_nc_variable), intent(in)  var,
character(len = *), intent(in)  name,
integer, dimension(:), intent(in)  value,
logical, intent(out), optional  err 
)

Definition at line 4 of file gdncvarputattrint.f90.

References gdncfiledefinemode(), dc_url::gt_plus, dc_error::storeerror(), and gtdata_netcdf_internal::vtable_lookup().

7  use netcdf, only: &
8  & nf90_put_att, &
9  & nf90_noerr, &
10  & nf90_del_att, &
11  & nf90_enotindefine, &
12  & nf90_global
13  use dc_url, only: gt_plus
14  use dc_error
15  implicit none
16  type(gd_nc_variable), intent(in):: var
17  character(len = *), intent(in):: name
18  type(gd_nc_variable_entry):: ent
19  integer, intent(in):: value(:)
20  logical, intent(out), optional:: err
21  integer:: stat
22  continue
23  stat = vtable_lookup(var, ent)
24  if (stat /= nf90_noerr) goto 999
25  if (size(value) == 0) then
26  if (name(1:1) == gt_plus) then
27  stat = nf90_del_att(ent%fileid, nf90_global, name(2:))
28  else
29  stat = nf90_del_att(ent%fileid, ent%varid, name)
30  endif
31  goto 999
32  endif
33  stat = gdncfiledefinemode(ent%fileid)
34  if (stat /= nf90_noerr) goto 999
35  if (name(1:1) == gt_plus) then
36  stat = nf90_put_att(ent%fileid, nf90_global, name(2:), value)
37  else
38  stat = nf90_put_att(ent%fileid, ent%varid, name, value)
39  endif
40 999 continue
41  call storeerror(stat, 'GDNcVarPutAttrInt', err)
integer function, public vtable_lookup(var, entry)
integer function gdncfiledefinemode(fileid)
character, parameter, public gt_plus
Definition: dc_url.f90:92
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
Here is the call graph for this function: