gtool5 Fortran 90/95 ライブラリ 1.0.0-rc5
English
Loading...
Searching...
No Matches
gdncvarputattrint.f90
Go to the documentation of this file.
1!> @file gdncvarputattrint.f90
2!>
3!> @author GFD Dennou Club
4!> @copyright Copyright (C) GFD Dennou Club, 2000-2026. All rights reserved. <br/>
5!> License is BSD-2-Clause. See [COPYRIGHT](@ref COPYRIGHT) in detail
6!>
7!> @en
8!> @brief Put integer attribute to a netCDF variable
9!> @enden
10!>
11!> @ja
12!> @brief netCDF 変数に整数属性を設定
13!> @endja
14!>
15
16!>
17!> @en
18!> @brief Set integer attribute value
19!>
20!> Sets an integer attribute on a variable. If the name starts with '+',
21!> the attribute is treated as a global attribute. If value array is empty,
22!> the attribute is deleted.
23!> @enden
24!>
25!> @ja
26!> @brief 整数属性値を設定
27!>
28!> 変数に整数属性を設定します。名前が '+' で始まる場合、
29!> グローバル属性として扱われます。value 配列が空の場合、属性は削除されます。
30!> @endja
31!>
32!> @param[in] var @en Variable handle @enden @ja 変数ハンドル @endja
33!> @param[in] name @en Attribute name @enden @ja 属性名 @endja
34!> @param[in] value @en Integer values to set @enden @ja 設定する整数値 @endja
35!> @param[out] err @en Error flag (optional) @enden @ja エラーフラグ (省略可能) @endja
36!>
37subroutine gdncvarputattrint(var, name, value, err)
41 use netcdf, only: &
42 & nf90_put_att, &
43 & nf90_noerr, &
44 & nf90_del_att, &
45 & nf90_global
46 use dc_url, only: gt_plus
47 use dc_error
48 implicit none
49 type(gd_nc_variable), intent(in):: var
50 character(len = *), intent(in):: name
51 type(gd_nc_variable_entry):: ent
52 integer, intent(in):: value(:)
53 logical, intent(out), optional:: err
54 integer:: stat
55 continue
56 stat = vtable_lookup(var, ent)
57 if (stat /= nf90_noerr) goto 999
58 if (size(value) == 0) then
59 if (name(1:1) == gt_plus) then
60 stat = nf90_del_att(ent%fileid, nf90_global, name(2:))
61 else
62 stat = nf90_del_att(ent%fileid, ent%varid, name)
63 endif
64 goto 999
65 endif
66 stat = gdncfiledefinemode(ent%fileid)
67 if (stat /= nf90_noerr) goto 999
68 if (name(1:1) == gt_plus) then
69 stat = nf90_put_att(ent%fileid, nf90_global, name(2:), value)
70 else
71 stat = nf90_put_att(ent%fileid, ent%varid, name, value)
72 endif
73999 continue
74 call storeerror(stat, 'GDNcVarPutAttrInt', err)
75end subroutine
subroutine gdncvarputattrint(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)