gtool5 Fortran 90/95 ライブラリ 1.0.0-rc5
English
Loading...
Searching...
No Matches
gtvardimname2ord.f90
Go to the documentation of this file.
1!> @file gtvardimname2ord.f90
2!>
3!> @author Eizi TOYODA, Yasuhiro MORIKAWA
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 Query dimension order number from dimension relative name
9!>
10!> This function is provided as gtdata_generic#Dimname_to_Dimord
11!> through gtdata_generic.
12!> @enden
13!>
14!> @ja
15!> @brief 次元相対名から次元順序番号の問い合わせ
16!>
17!> この関数は gtdata_generic から gtdata_generic#Dimname_to_Dimord
18!> として提供されます。
19!> @endja
20!>
21
22!>
23!> @en
24!> @brief Get dimension order from dimension relative name
25!>
26!> A variable belongs to multiple dimensions. Dimensions are identified
27!> by order numbers, but since the order of dimensions in a variable
28!> can be exchanged, it is sometimes convenient to identify them with
29!> short names relative to the variable.
30!> For example, for variable `filename?var`, used with comma notation
31!> like `filename?var,dim=1` (see "5.4 Comma Notation" in gtool4 netCDF
32!> Convention). (For netCDF variable `filename?varname`, dimension name
33!> `dim` would indicate `filename?dim`, but such relationship does not
34!> always hold.)
35!>
36!> The Dimname_to_Dimord procedure gives the dimension order number from
37!> such relative dimension names. Valid numbers are 1 or greater;
38!> numbers 0 or less indicate an error.
39!> @param[in] var Variable handle
40!> @param[in] name Dimension relative name
41!> @return Dimension order number (0 or less indicates error)
42!> @enden
43!>
44!> @ja
45!> @brief 次元相対名から次元順序番号を取得
46!>
47!> 変数には複数の次元が所属します。次元は順序番号で識別されますが、
48!> 変数における次元の順序は入れ替えることもできるため、
49!> 変数に相対的短い名前で識別することが便利な場合もあります。
50!> たとえば変数 `filename?var` に対して `filename?var,dim=1` のような
51!> コンマ記法 (gtool4 netCDF 規約の「5.4 コンマ記法」参照)
52!> で用いられるものです。(NetCDF 変数 `filename?varname`
53!> に対する次元名 `dim` は `filename?dim` を指示するでしょうが、
54!> 必ずしもそのような関係が成り立つとは限りません)
55!>
56!> Dimname_to_Dimord 手続はこのような相対次元名から次元順序番号を与えます。
57!> 正当な番号は1以上であり、0以下の番号はエラーを示します。
58!> @param[in] var 変数ハンドル
59!> @param[in] name 次元相対名
60!> @return 次元順序番号 (0以下はエラーを示す)
61!> @endja
62!>
63integer function gtvardimname2ord(var, name) result(result)
64 use gtdata_types, only: gt_variable
65 use dc_string, only: stoi
68 use gtdata_internal_map, only: var_class, vtb_class_netcdf
69 implicit none
70 type(gt_variable), intent(in):: var
71 character(len = *), intent(in):: name
72 integer:: class, cid
73 result = -1
74 if (name == ' ') return
75 result = stoi(name)
76 if (result /= 0) return
77 ! 個別層に問い合わせて次元番号を得ようと試みる。
78 call var_class(var, class, cid)
79 if (class == vtb_class_netcdf) then
80 result = search_dim(gd_nc_variable(cid), name)
81 endif
82 ! map 表から次元名を使って次元番号を得ようと試みる。
83end function gtvardimname2ord
integer function gtvardimname2ord(var, name)
文字型変数の操作
Definition dc_string.f90:83
subroutine, public var_class(var, class, cid)