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

独立変数 (次元) の作成 More...

Go to the source code of this file.

Functions/Subroutines

subroutine gtvarcreated (var, url, length, xtype, long_name, overwrite, err)

Detailed Description

独立変数 (次元) の作成

Author
Yasuhiro MORIKAWA, Eizi TOYODA

このサブルーチンは gtdata_generic から提供されます。

Definition in file gtvarcreated.f90.

Function/Subroutine Documentation

◆ gtvarcreated()

subroutine gtvarcreated ( type(gt_variable), intent(out) var,
character(len = *), intent(in) url,
integer, intent(in) length,
character(len = *), intent(in), optional xtype,
character(len = *), intent(in), optional long_name,
logical, intent(in), optional overwrite,
logical, intent(out), optional err )

次元変数の作成

場所 url に長さ length の自分自身を次元とする変数つまり GT_VARIABLE 型 の実体を作成し、それを第 1 引数 var にセットします。 Open されたものと同様、第1引数 var は後で必ず Close されなければなりません。

長さ length == 0 を指定するとその変数は可変長次元となります。 型 xtype を省略すると "float" とみなされます。既存変数があるとき 失敗しますが、overwrite == .true. であれば上書きして続行します。 (まだ overwrite の動作は保障されていません)。 dims の省略は 0 次元変数の設定を意味します。

次元変数は自動生成されることが多いため、変数名部を欠く指定に対しては 名前を自動生成します。

作成の際にエラーが生じた場合、メッセージを出力してプログラムは 強制終了します。err を与えてある場合にはこの引数に .true. が返り、プログラムは終了しません。

Parameters
[out]var変数ハンドル
[in]url変数URL
[in]length次元長 (0で可変長)
[in]xtypeデータ型 (省略可能、デフォルトは "float")
[in]long_name長い名前属性 (省略可能)
[in]overwrite上書き許可 (省略可能)
[out]errエラーフラグ (省略可能)

Definition at line 77 of file gtvarcreated.f90.

78 use dc_string, only: strhead
79 use gtdata_types, only: gt_variable
83 use gtdata_internal_map, only: map_create, vtb_class_netcdf, gtvar_dump
84 use dc_url, only: urlsplit, urlmerge
86 use dc_error, only: storeerror, dc_noerr
87 use dc_types, only: string
88 implicit none
89 type(GT_VARIABLE), intent(out):: var
90 character(len = *), intent(in):: url
91 integer, intent(in):: length
92 character(len = *), intent(in), optional:: xtype
93 character(len = *), intent(in), optional:: long_name
94 logical, intent(in), optional:: overwrite
95 logical, intent(out), optional:: err
96 character(len = STRING):: fnam, vnam, new_url, data_class
97 type(GD_NC_VARIABLE):: gdnc
98 integer :: stat, cause_i
99 character(len = *), parameter:: subname = "GTVarCreateD"
100 character(len = *), parameter:: version = &
101 & '$Name: $' // &
102 & '$Id: gtvarcreated.f90,v 1.5 2009-05-25 09:55:58 morikawa Exp $'
103continue
104 call beginsub(subname, 'url=<%c> length=%d', &
105 & c1=trim(url), i=(/length/), version=version)
106 stat = dc_noerr
107 cause_i = 0
108 data_class = ''
109 ! URL の検査
110 call urlsplit(url, file=fnam, var=vnam)
111 if (vnam == "") then
112 call gtdatatmpnam(file=fnam, base="dim", result=new_url)
113 else
114 new_url = url
115 endif
116 ! gdnc 形式が選択される場合は
117 call create(var=gdnc, url=new_url, length=length, xtype=xtype, &
118 & overwrite=overwrite, err=err)
119 if (present(long_name)) then
120 call put_attr(gdnc, 'long_name', long_name, err=err)
121 endif
122 call map_create(var, vtb_class_netcdf, gdnc%id, 1, (/length/), stat)
123 if (stat /= dc_noerr) then
124 cause_i = 1
125 goto 999
126 end if
127 call gtvar_dump(var)
128 data_class = 'netcdf'
129999 continue
130 call storeerror(stat, subname, err, cause_i=cause_i)
131 call endsub(subname, 'class=%c mapid=%d', &
132 & c1=trim(data_class), i=(/var%mapid/) )
エラー処理用モジュール
Definition dc_error.f90:454
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition dc_error.f90:891
integer, parameter, public dc_noerr
エラー等を保持
Definition dc_error.f90:468
文字型変数の操作
Definition dc_string.f90:83
デバッグ時の追跡用モジュール
Definition dc_trace.f90:150
subroutine, public dbgmessage(fmt, i, r, d, l, n, c1, c2, c3, ca)
Definition dc_trace.f90:680
subroutine, public beginsub(name, fmt, i, r, d, l, n, c1, c2, c3, ca, version)
Definition dc_trace.f90:476
subroutine, public endsub(name, fmt, i, r, d, l, n, c1, c2, c3, ca)
Definition dc_trace.f90:599
種別型パラメタを提供します。
Definition dc_types.f90:55
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition dc_types.f90:137
変数 URL の文字列解析
Definition dc_url.f90:61
subroutine, public map_create(var, class, cid, ndims, allcount, stat)

References dc_trace::beginsub(), dc_trace::dbgmessage(), dc_error::dc_noerr, dc_trace::endsub(), gtdata_internal_map::gtvar_dump(), gtdata_internal_map::map_create(), dc_error::storeerror(), and dc_types::string.

Here is the call graph for this function: