gtool5 Fortran 90/95 ライブラリ 1.0.0-rc5
English
Loading...
Searching...
No Matches
Functions/Subroutines
gtvaraddmember.f90 File Reference

構造型変数の gt_structure_member 属性の追加 More...

Go to the source code of this file.

Functions/Subroutines

subroutine gtvaraddmember (var, member_url, link_name)
 

Detailed Description

構造型変数の gt_structure_member 属性の追加

Author
Eizi TOYODA, Yasuhiro MORIKAWA

Definition in file gtvaraddmember.f90.

Function/Subroutine Documentation

◆ gtvaraddmember()

subroutine gtvaraddmember ( type(gt_variable), intent(inout)  var,
character(len = *), intent(in)  member_url,
character(len = *), intent(in), optional  link_name 
)

構造型変数にメンバを追加

変数 var の gt_structure_member 属性 (gtool4 netCDF 規約の 「4. 構造体変数」参照) に member_url の変数名部分を追加します。

Parameters
[in,out]var変数ハンドル
[in]member_url追加するメンバ変数のURL
[in]link_nameリンク名 (省略可能)

Definition at line 44 of file gtvaraddmember.f90.

45 use gtdata_types, only: gt_variable
46 use dc_types, only: string
47 use dc_url, only: urlsplit
49 use dc_error
50 implicit none
51 type(GT_VARIABLE), intent(inout):: var
52 character(len = *), intent(in):: member_url
53 character(len = *), intent(in), optional:: link_name
54 character(len = string):: members, myshortname, conv
55continue
56 ! 短縮名称の決定
57 ! 既存のメンバ名に重複しないものを選ぶ
58 call get_attr(var, 'gt_structure_member', members)
59 if (present(link_name)) then
60 if (index(members, ' ' //link_name) == 0) then
61 myshortname = link_name
62 goto 1000
63 endif
64 endif
65 conv = member_url
66 call urlsplit(conv, var=myshortname)
67 ! fake 判定
68 if (index(members, trim(myshortname)) /= 0) then
69 call storeerror(gt_efake, "GTVarAddMember(making unique name)")
70 endif
711000 continue
72 members = trim(members) // ' ' // trim(myshortname)
73 call put_attr(var, 'gt_structure_member', trim(members))
74 myshortname = 'gt_structure_link_' // trim(myshortname)
75 call put_attr(var, myshortname, trim(member_url))
76
エラー処理用モジュール
Definition dc_error.f90:454
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition dc_error.f90:891
integer, parameter, public gt_efake
正のエラー番号は libc システムエラーメッセージのために あけてある。システム依存性が大きく、非常に大きな数値も 用いられるので空き領域を確保するのは困難である。
Definition dc_error.f90:503
種別型パラメタを提供します。
Definition dc_types.f90:55
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition dc_types.f90:137
変数 URL の文字列解析
Definition dc_url.f90:61

References dc_error::gt_efake, dc_error::storeerror(), and dc_types::string.

Here is the call graph for this function: