Functions/Subroutines
gtvarcreated.f90 File Reference

Go to the source code of this file.

Functions/Subroutines

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

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 
)

Definition at line 14 of file gtvarcreated.f90.

References dc_error::dc_noerr, gtdata_internal_map::gtvar_dump(), gtdata_internal_map::map_create(), dc_error::storeerror(), and dc_types::string.

14  !
15  !== 独立変数 (次元) の作成
16  !
17  ! 場所 *url* に長さ *length* の自分自身を次元とする変数つまり GT_VARIABLE 型
18  ! の実体を作成し、それを第 1 引数 *var* にセットします。
19  ! Open されたものと同様、第1引数 *var* は後で必ず
20  ! Close されなければなりません。
21  !
22  ! 長さ length == 0 を指定するとその変数は可変長次元となります。
23  ! 型 *xtype* を省略すると "+float+" と
24  ! みなされます。既存変数があるとき失敗しますが、
25  ! overwrite == .true. であれば上書きして続行します。
26  ! (まだ *overwrite* の動作は保障されていません)。
27  ! dims の省略は 0 次元変数の設定を意味します。
28  !
29  ! 次元変数は自動生成されることが多いため、変数名部を欠く指定に対しては
30  ! 名前を自動生成します。
31  !
32  ! 作成の際にエラーが生じた場合、メッセージを出力してプログラムは
33  ! 強制終了します。*err* を与えてある場合にはこの引数に .true.
34  ! が返り、プログラムは終了しません。
35  !
36  use dc_string, only: strhead
37  use gtdata_types, only: gt_variable
38  use gtdata_generic, only: gtdatatmpnam
41  use gtdata_internal_map, only: map_create, vtb_class_netcdf, gtvar_dump
42  use dc_url, only: urlsplit, urlmerge
43  use dc_trace, only: beginsub, endsub, dbgmessage
44  use dc_error, only: storeerror, dc_noerr
45  use dc_types, only: string
46  implicit none
47  type(gt_variable), intent(out):: var
48  character(len = *), intent(in):: url
49  integer, intent(in):: length
50  character(len = *), intent(in), optional:: xtype
51  character(len = *), intent(in), optional:: long_name
52  logical, intent(in), optional:: overwrite
53  logical, intent(out), optional:: err
54  character(len = STRING):: fnam, vnam, new_url, data_class
55  type(gd_nc_variable):: gdnc
56  integer :: stat, cause_i
57  character(len = *), parameter:: subname = "GTVarCreateD"
58  character(len = *), parameter:: version = &
59  & '$Name: $' // &
60  & '$Id: gtvarcreated.f90,v 1.5 2009-05-25 09:55:58 morikawa Exp $'
61 continue
62  call beginsub(subname, 'url=<%c> length=%d', &
63  & c1=trim(url), i=(/length/), version=version)
64  stat = dc_noerr
65  cause_i = 0
66  data_class = ''
67  ! URL の検査
68  call urlsplit(url, file=fnam, var=vnam)
69  if (vnam == "") then
70  call gtdatatmpnam(file=fnam, base="dim", result=new_url)
71  else
72  new_url = url
73  endif
74  ! gdnc 形式が選択される場合は
75  call create(var=gdnc, url=new_url, length=length, xtype=xtype, &
76  & overwrite=overwrite, err=err)
77  if (present(long_name)) then
78  call put_attr(gdnc, 'long_name', long_name, err=err)
79  endif
80  call map_create(var, vtb_class_netcdf, gdnc%id, 1, (/length/), stat)
81  if (stat /= dc_noerr) then
82  cause_i = 1
83  goto 999
84  end if
85  call gtvar_dump(var)
86  data_class = 'netcdf'
87 999 continue
88  call storeerror(stat, subname, err, cause_i=cause_i)
89  call endsub(subname, 'class=%c mapid=%d', &
90  & c1=trim(data_class), i=(/var%mapid/) )
subroutine, public map_create(var, class, cid, ndims, allcount, stat)
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dc_noerr
Definition: dc_error.f90:509
Provides kind type parameter values.
Definition: dc_types.f90:49
integer, parameter, public string
Character length for string.
Definition: dc_types.f90:118
Here is the call graph for this function: