gtool5 Fortran 90/95 ライブラリ 1.0.0-rc5
English
Loading...
Searching...
No Matches
gdncvarputattrreal.f90
Go to the documentation of this file.
1
15
36subroutine gdncvarputattrreal(var, name, value, err)
40 use netcdf, only: &
41 & nf90_global, &
42 & nf90_noerr, &
43 & nf90_put_att, &
44 & nf90_del_att
45 use dc_url, only: gt_plus
46 use dc_error
47 implicit none
48 type(gd_nc_variable), intent(in):: var
49 character(len = *), intent(in):: name
50 real, intent(in):: value(:)
51 logical, intent(out), optional:: err
52 type(gd_nc_variable_entry):: ent
53 integer:: stat
54 continue
55 stat = vtable_lookup(var, ent)
56 if (stat /= nf90_noerr) goto 999
57 if (size(value) == 0) then
58 if (name(1:1) == gt_plus) then
59 stat = nf90_del_att(ent%fileid, nf90_global, name(2:))
60 else
61 stat = nf90_del_att(ent%fileid, ent%varid, name)
62 endif
63 goto 999
64 endif
65 stat = gdncfiledefinemode(ent%fileid)
66 if (stat /= nf90_noerr) goto 999
67 if (name(1:1) == gt_plus) then
68 stat = nf90_put_att(ent%fileid, nf90_global, name(2:), value)
69 else
70 stat = nf90_put_att(ent%fileid, ent%varid, name, value)
71 endif
72999 continue
73 call storeerror(stat, 'GDNcVarPutAttrReal', err)
74end subroutine gdncvarputattrreal
75
96subroutine gdncvarputattrdouble(var, name, value, err)
100 use netcdf, only: &
101 & nf90_global, &
102 & nf90_noerr, &
103 & nf90_put_att, &
104 & nf90_del_att
105 use dc_url, only: gt_plus
106 use dc_error
107 implicit none
108 type(gd_nc_variable), intent(in):: var
109 character(len = *), intent(in):: name
110 double precision, intent(in):: value(:)
111 logical, intent(out), optional:: err
112 type(gd_nc_variable_entry):: ent
113 integer:: stat
114 continue
115 stat = vtable_lookup(var, ent)
116 if (stat /= 0) goto 999
117 if (size(value) == 0) then
118 if (name(1:1) == gt_plus) then
119 stat = nf90_del_att(ent%fileid, nf90_global, name(2:))
120 else
121 stat = nf90_del_att(ent%fileid, ent%varid, name)
122 endif
123 goto 999
124 endif
125 stat = gdncfiledefinemode(ent%fileid)
126 if (stat /= nf90_noerr) goto 999
127 if (name(1:1) == gt_plus) then
128 stat = nf90_put_att(ent%fileid, nf90_global, name(2:), value)
129 else
130 stat = nf90_put_att(ent%fileid, ent%varid, name, value)
131 endif
132999 continue
133 call storeerror(stat, 'GDNcVarPutAttrDouble', err)
134end subroutine
subroutine gdncvarputattrreal(var, name, value, err)
subroutine gdncvarputattrdouble(var, name, value, err)
エラー処理用モジュール
Definition dc_error.f90:454
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition dc_error.f90:891
変数 URL の文字列解析
Definition dc_url.f90:61
character, parameter, public gt_plus
Definition dc_url.f90:109
integer function, public vtable_lookup(var, entry)