Loading...
Searching...
No Matches
gdncvarputattrreal.f90
Go to the documentation of this file.
1! Copyright (C) GFD Dennou Club, 2000. All rights reserved
2
3subroutine gdncvarputattrreal(var, name, value, err)
7 use netcdf, only: &
8 & nf90_global, &
9 & nf90_noerr, &
10 & nf90_put_att, &
11 & nf90_del_att
12 use dc_url, only: gt_plus
13 use dc_error
14 implicit none
15 type(gd_nc_variable), intent(in):: var
16 character(len = *), intent(in):: name
17 real, intent(in):: value(:)
18 logical, intent(out), optional:: err
19 type(gd_nc_variable_entry):: ent
20 integer:: stat
21 continue
22 stat = vtable_lookup(var, ent)
23 if (stat /= nf90_noerr) goto 999
24 if (size(value) == 0) then
25 if (name(1:1) == gt_plus) then
26 stat = nf90_del_att(ent%fileid, nf90_global, name(2:))
27 else
28 stat = nf90_del_att(ent%fileid, ent%varid, name)
29 endif
30 goto 999
31 endif
32 stat = gdncfiledefinemode(ent%fileid)
33 if (stat /= nf90_noerr) goto 999
34 if (name(1:1) == gt_plus) then
35 stat = nf90_put_att(ent%fileid, nf90_global, name(2:), value)
36 else
37 stat = nf90_put_att(ent%fileid, ent%varid, name, value)
38 endif
39999 continue
40 call storeerror(stat, 'GDNcVarPutAttrReal', err)
41end subroutine gdncvarputattrreal
42
43subroutine gdncvarputattrdouble(var, name, value, err)
47 use netcdf, only: &
48 & nf90_global, &
49 & nf90_noerr, &
50 & nf90_put_att, &
51 & nf90_del_att
52 use dc_url, only: gt_plus
53 use dc_error
54 implicit none
55 type(gd_nc_variable), intent(in):: var
56 character(len = *), intent(in):: name
57 double precision, intent(in):: value(:)
58 logical, intent(out), optional:: err
59 type(gd_nc_variable_entry):: ent
60 integer:: stat
61 continue
62 stat = vtable_lookup(var, ent)
63 if (stat /= 0) goto 999
64 if (size(value) == 0) then
65 if (name(1:1) == gt_plus) then
66 stat = nf90_del_att(ent%fileid, nf90_global, name(2:))
67 else
68 stat = nf90_del_att(ent%fileid, ent%varid, name)
69 endif
70 goto 999
71 endif
72 stat = gdncfiledefinemode(ent%fileid)
73 if (stat /= nf90_noerr) goto 999
74 if (name(1:1) == gt_plus) then
75 stat = nf90_put_att(ent%fileid, nf90_global, name(2:), value)
76 else
77 stat = nf90_put_att(ent%fileid, ent%varid, name, value)
78 endif
79999 continue
80 call storeerror(stat, 'GDNcVarPutAttrDouble', err)
81end subroutine
subroutine gdncvarputattrreal(var, name, value, err)
subroutine gdncvarputattrdouble(var, name, value, err)
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition dc_error.f90:830
character, parameter, public gt_plus
Definition dc_url.f90:92
integer function, public vtable_lookup(var, entry)