historyvarinfocopy.f90 File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine historyvarinfocopy1 (varinfo_dest, varinfo_src, err, name, dims, longname, units, xtype)
 
subroutine historyvarinfocopy2 (varinfo_dest, varinfo_src, err, name, dims, longname, units, xtype)
 

Function/Subroutine Documentation

◆ historyvarinfocopy1()

subroutine historyvarinfocopy1 ( type(gt_history_varinfo), intent(out)  varinfo_dest,
type(gt_history_varinfo), intent(in)  varinfo_src,
logical, intent(out), optional  err,
character(*), intent(in), optional  name,
character(*), dimension(:), intent(in), optional, target  dims,
character(*), intent(in), optional  longname,
character(*), intent(in), optional  units,
character(*), intent(in), optional  xtype 
)

Definition at line 12 of file historyvarinfocopy.f90.

References dc_trace::beginsub(), dc_trace::dbgmessage(), dc_error::dc_ealreadyinit, dc_error::dc_enotinit, dc_error::dc_noerr, gtool_history_internal::default, dc_trace::endsub(), dc_string::joinchar(), dc_error::storeerror(), dc_types::string, and dc_types::token.

12  !
13  !== GT_HISTORY_VARINFO 型変数コピー
14  !
15  ! GT_HISTORY_VARINFO 型の変数 *varinfo_src* を
16  ! *varinfo_dest* にコピーします。
17  ! *varinfo_src* は HistoryVarinfoCreate によって初期設定されている必要が
18  ! あります。
19  ! さらに属性を付加する場合には HistoryVarinfoAddAttr
20  ! を用いてください。
21  !
22  ! *err* を与えておくと、コピーの際何らかの不具合が生じても
23  ! 終了せずに err が真になって返ります。
24  !
25  ! *err* 以降の引数は、コピーの際に上書きする値です。
26  !
29  use dc_trace, only: beginsub, endsub, dbgmessage
30  use dc_present,only: present_select
31  use dc_string, only: joinchar
33  use dc_types, only: string, token
34  implicit none
35  type(gt_history_varinfo),intent(out):: varinfo_dest
36  type(gt_history_varinfo),intent(in):: varinfo_src
37  logical, intent(out), optional:: err
38  character(*) , intent(in), optional:: name ! 次元変数名
39  character(*) , intent(in), optional, target:: dims(:) ! 依存する次元
40  character(*) , intent(in), optional:: longname ! 次元変数の記述的名称
41  character(*) , intent(in), optional:: units ! 次元変数の単位
42  character(*) , intent(in), optional:: xtype ! 次元変数の型
43 
44  integer:: i, stat
45  character(STRING):: cause_c
46  character(TOKEN), pointer :: srcdims(:) =>null() ! 依存する次元
47  character(*), parameter:: subname = "HistoryVarinfoCopy1"
48  continue
49  call beginsub(subname)
50  stat = dc_noerr
51  cause_c = ''
52 
53  if ( .not. varinfo_src % initialized ) then
54  stat = dc_enotinit
55  cause_c = 'GT_HISTORY_VARINFO'
56  goto 999
57  end if
58 
59  if ( varinfo_dest % initialized ) then
60  stat = dc_ealreadyinit
61  cause_c = 'GT_HISTORY_VARINFO'
62  goto 999
63  end if
64 
65  varinfo_dest % name = present_select('', varinfo_src % name, name)
66  varinfo_dest % longname = present_select('', varinfo_src % longname, longname)
67  varinfo_dest % units = present_select('', varinfo_src % units, units)
68  varinfo_dest % xtype = present_select('', varinfo_src % xtype, xtype)
69 
70  if (present(dims)) then
71  srcdims => dims
72  else
73  srcdims => varinfo_src % dims
74  endif
75 
76  call dbgmessage('srcdims=<%c>', &
77  & c1=trim(joinchar(srcdims)))
78 
79  allocate( varinfo_dest % dims( size( srcdims ) ) )
80  do i = 1, size(srcdims)
81  varinfo_dest % dims(i) = srcdims(i)
82  end do
83 
84  call dbgmessage('varinfo_dest %% dims=<%c>', &
85  & c1=trim(joinchar(varinfo_dest % dims)))
86 
87  if (associated( varinfo_src % attrs ) ) then
88  allocate( varinfo_dest % attrs( size( varinfo_src % attrs) ) )
89  call copy_attrs( from = varinfo_src % attrs, &
90  & to = varinfo_dest % attrs, err = err)
91  end if
92 
93  varinfo_dest % initialized = .true.
94 999 continue
95  call storeerror( stat, subname, err, cause_c )
96  call endsub(subname)
type(gt_history), target, save, public default
integer, parameter, public dc_enotinit
Definition: dc_error.f90:557
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
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
character(string) function, public joinchar(carray, expr)
Definition: dc_string.f90:861
subroutine, public dbgmessage(fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:509
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
文字型変数の操作.
Definition: dc_string.f90:24
種別型パラメタを提供します。
Definition: dc_types.f90:49
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
integer, parameter, public dc_ealreadyinit
Definition: dc_error.f90:558
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118
Here is the call graph for this function:

◆ historyvarinfocopy2()

subroutine historyvarinfocopy2 ( type(gt_history_varinfo), intent(out)  varinfo_dest,
type(gt_history_varinfo), intent(in)  varinfo_src,
logical, intent(out), optional  err,
character(*), intent(in), optional  name,
character(*), dimension(:), intent(in), optional, target  dims,
character(*), intent(in), optional  longname,
character(*), intent(in), optional  units,
character(*), intent(in), optional  xtype 
)

Definition at line 101 of file historyvarinfocopy.f90.

References dc_trace::beginsub(), dc_trace::dbgmessage(), and dc_trace::endsub().

101  !
102  ! 使用方法は HistoryVarinfoCopy と同様です.
103  !
104  ! Usage is same as "HistoryVarinfoCopy".
105  !
106  !--
107  ! 総称名 Copy として提供するための関数です.
108  ! 機能は HistoryVarinfoCopy1 と同じです.
109  !++
112  use dc_trace, only: beginsub, endsub, dbgmessage
113  implicit none
114  type(gt_history_varinfo),intent(out):: varinfo_dest
115  type(gt_history_varinfo),intent(in):: varinfo_src
116  logical, intent(out), optional:: err
117  character(*) , intent(in), optional:: name ! 次元変数名
118  character(*) , intent(in), optional, target:: dims(:) ! 依存する次元
119  character(*) , intent(in), optional:: longname ! 次元変数の記述的名称
120  character(*) , intent(in), optional:: units ! 次元変数の単位
121  character(*) , intent(in), optional:: xtype ! 次元変数の型
122 
123  character(*), parameter:: subname = "HistoryVarinfoCopy2"
124  continue
125  call beginsub(subname)
126  call historyvarinfocopy(varinfo_dest, varinfo_src, err, &
127  & name, dims, longname, units, xtype )
128  call endsub(subname)
subroutine, public dbgmessage(fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:509
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
Here is the call graph for this function: