historyget.f90

Path: historyget.f90
Last Update: Sat Aug 25 11:28:10 JST 2007

Input gtool4 netCDF data

Authors:Yasuhiro MORIKAWA
Version:$Id: historyget.f90,v 1.7 2007/08/25 02:28:10 morikawa Exp $
Tag Name:$Name: gt4f90io-20070824 $
Copyright:Copyright (C) GFD Dennou Club, 2006. All rights reserved.
License:See COPYRIGHT

以下のサブルーチン, 関数は gt4_history から gt4_history#HistoryGet もしくは gt4_history#HistoryGetPointer として提供されます.

Following subroutines and functions are provided as gt4_history#HistoryGet or gt4_history#HistoryGetPointer from gt4_history.

Methods

HistoryGetDouble0   HistoryGetDouble0Pointer   HistoryGetDouble1   HistoryGetDouble1Pointer   HistoryGetDouble2   HistoryGetDouble2Pointer   HistoryGetDouble3   HistoryGetDouble3Pointer   HistoryGetDouble4   HistoryGetDouble4Pointer   HistoryGetDouble5   HistoryGetDouble5Pointer   HistoryGetDouble6   HistoryGetDouble6Pointer   HistoryGetDouble7   HistoryGetDouble7Pointer   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetInt0   HistoryGetInt0Pointer   HistoryGetInt1   HistoryGetInt1Pointer   HistoryGetInt2   HistoryGetInt2Pointer   HistoryGetInt3   HistoryGetInt3Pointer   HistoryGetInt4   HistoryGetInt4Pointer   HistoryGetInt5   HistoryGetInt5Pointer   HistoryGetInt6   HistoryGetInt6Pointer   HistoryGetInt7   HistoryGetInt7Pointer   HistoryGetIntEx   HistoryGetIntEx   HistoryGetIntEx   HistoryGetIntEx   HistoryGetIntEx   HistoryGetIntEx   HistoryGetIntEx   HistoryGetIntEx   HistoryGetIntEx   HistoryGetReal0   HistoryGetReal0Pointer   HistoryGetReal1   HistoryGetReal1Pointer   HistoryGetReal2   HistoryGetReal2Pointer   HistoryGetReal3   HistoryGetReal3Pointer   HistoryGetReal4   HistoryGetReal4Pointer   HistoryGetReal5   HistoryGetReal5Pointer   HistoryGetReal6   HistoryGetReal6Pointer   HistoryGetReal7   HistoryGetReal7Pointer   HistoryGetRealEx   HistoryGetRealEx   HistoryGetRealEx   HistoryGetRealEx   HistoryGetRealEx   HistoryGetRealEx   HistoryGetRealEx   HistoryGetRealEx   HistoryGetRealEx   actual_iorange_dump   actual_iorange_dump   actual_iorange_dump   actual_iorange_dump   actual_iorange_dump   actual_iorange_dump   actual_iorange_dump   actual_iorange_dump   actual_iorange_dump   actual_iorange_dump   actual_iorange_dump   actual_iorange_dump   actual_iorange_dump   actual_iorange_dump   actual_iorange_dump   actual_iorange_dump   actual_iorange_dump   actual_iorange_dump   actual_iorange_dump   actual_iorange_dump   actual_iorange_dump   actual_iorange_dump   actual_iorange_dump   actual_iorange_dump   actual_iorange_dump   actual_iorange_dump   actual_iorange_dump   actual_iorange_dump   lookup_growable_url   lookup_growable_url   lookup_growable_url   lookup_growable_url   lookup_growable_url   lookup_growable_url   lookup_growable_url   lookup_growable_url   lookup_growable_url   lookup_growable_url   lookup_growable_url   lookup_growable_url   lookup_growable_url   lookup_growable_url   lookup_growable_url   lookup_growable_url   lookup_growable_url   lookup_growable_url   lookup_growable_url   lookup_growable_url   lookup_growable_url   lookup_growable_url   lookup_growable_url   lookup_growable_url   lookup_growable_url   lookup_growable_url   lookup_growable_url   lookup_growable_url  

Included Modules

gtdata_types gtdata_generic dc_string dc_url dc_present regex dc_types dc_message dc_trace dc_error

Public Instance methods

Subroutine :
file :character(*), intent(in)
: netCDF ファイル名. NetCDF filename.
varname :character(*), intent(in)
: 変数名. Variable name
array :real(DP), intent(out)
: 取得するデータを格納する配列

型は整数型, 単精度実数型, 倍精度実数型 かのいづれかです. 取得するデータの空 間次元のサイズと配列のサイズとが一致し ている必要があります. 入力するデータ の型と array の型が異なる場合は, 自 動的に array の型に変換されます.

Array in which input data is store

Type is integer or single precision real or double precision. Size of array must be identical to input data size. When type of input data is different from type of array, data is converted to type of array automatically.

range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型 は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻(正確には netCDF の無制限次元) の値として扱われ ます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

HistoryGet は複数のサブルーチンの総称名です. array には 0 〜 7 次元の整数型, 単精度実数型, 倍精度実数型の配列を与えることが可能です.

HistoryGet is generic name of multiple subroutines. Integer, single precision real, and double precision 0 — 7 rank array can be given to array.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

[Source]

subroutine HistoryGetDouble0(file, varname, array, range, quiet, err)
  !
                      !
  ! netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定
  ! していますが, 大抵の netCDF データの入力は可能であると期待されます.
  !
  ! Input netCDF data. NetCDF data with gtool4 conventions is assumed,
  ! but most netCDF data is expected to be input.
  !
  ! *file* にファイル名を, *varname* に変数名を与えます.
  ! *array* にはファイルから入力されたデータが返ります.
  ! ポインタの配列へデータを入力を行う場合は,
  ! HistoryGetPointer を利用してください.
  !
  ! Give filename to *file*, variable name to *varname*.
  ! Input data is returned to *array*.
  ! If you want to use pointer array, use HistoryGetPointer .
  !
  ! デフォルトでは, ファイル内の最新データ, すなわちデータを
  ! 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを
  ! 入力したい場合には, 下記の *range* オプションを利用してください.
  !
  ! By default, recent data, that is to say, data clipped with 
  ! maximum time is input. In order to input data clipped with
  ! other time, use *range* option as follows.
  !
  ! *range* には gtool4 のコンマ記法
  ! ({gtool4 netCDF 規約}[link:../xref.htm#label-6] の「5.4 コンマ記法」参照)
  ! を与えることで, 入力データの一部を切り出すことが可能です.
  !
  ! Give gtool4 comma-graphy
  ! (See "5.4 gtool4 comma-graphy" in {gtool4 netCDF Convention}[link:../xref.htm#label-6]) 
  ! to *range*, then input data is clipped.
  !
  ! *HistoryGet* は複数のサブルーチンの総称名です. *array* には
  ! 0 〜 7 次元の整数型, 単精度実数型, 
  ! 倍精度実数型の配列を与えることが可能です.
  !
  ! *HistoryGet* is generic name of multiple subroutines.
  ! Integer, single precision real, and double precision
  ! 0 -- 7 rank array can be given to *array*.
  !
  ! デフォルトでは, データの入力時にどのファイルのどの変数が
  ! どの次元で切り出されて入力されたのかを表示します. 
  ! メッセージ出力が不要な場合は *quiet* に .true. を与えてください.
  !
  ! By default, when data is input, filename and variable name and
  ! clipping information is printed. 
  ! The message is suppressed when .true. is given to *quiet*
  !
                    
  !
  use dc_string, only: toChar
  use dc_present, only: present_select, present_and_not_empty
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
                                                  ! netCDF ファイル名. 
                              ! NetCDF filename.
                    
  character(*), intent(in):: varname
                                                  ! 変数名. 
                              ! Variable name
                    
  character(*), intent(in), optional:: range
                                                  ! 切り出し用オプション.
                              ! gtool4 変数のコンマ記法で記述
                              ! {(例: time=100.0,x=10:20,y=^1:^5)}
                              !
                              ! 詳しくは
                              ! {gtool4 netCDF 規約}[link:../xref.htm#label-6]
                              ! の「5.4 コンマ記法」を参照して
                              ! ください.
                              ! 
                              ! 数値のみが与えられる場合 (※ 引数の型
                              ! は常に文字型です.  ここでの「数値」は
                              ! "<b><tt>10.0</tt></b>" のような文字列
                              ! を指します), この値は時刻(正確には 
                              ! netCDF の無制限次元) の値として扱われ
                              ! ます.
                              ! 
                              ! Option for clipping.
                              ! Give gtool4 comma-graphy 
                              ! {(ex. time=100.0,x=10:20,y=^1:^5)}
                              ! 
                              ! For details, see "5.4 gtool4
                              ! comma-graphy" in 
                              ! {gtool4 netCDF Convention}[link:../xref.htm#label-6]
                              ! 
                              ! When pure numerical value is given
                              ! (Type of argument is character.  In
                              ! this case, the "pure numerical value"
                              ! means a character like
                              ! "<b><tt>10.0</tt></b>") the value is
                              ! treated as time (to be exact,
                              ! unlimited dimension).
                              ! 
                    
  logical, intent(in), optional:: quiet
  real(DP), intent(out) :: array
                                                  ! 取得するデータを格納する配列
                              !
                              ! 型は整数型, 単精度実数型, 倍精度実数型
                              ! かのいづれかです.  取得するデータの空
                              ! 間次元のサイズと配列のサイズとが一致し
                              ! ている必要があります.  入力するデータ
                              ! の型と *array* の型が異なる場合は, 自
                              ! 動的に *array* の型に変換されます.
                              ! 
                              ! Array in which input data is store
                              !
                              ! Type is integer or single precision
                              ! real or double precision.  Size of
                              ! array must be identical to input data
                              ! size.  When type of input data is
                              ! different from type of *array*, data
                              ! is converted to type of *array*
                              ! automatically.
                              ! 
                    
  logical, intent(out), optional:: err
                                                  ! 例外処理用フラグ.
                              ! デフォルトでは, この手続き内でエラーが
                              ! 生じた場合, プログラムは強制終了します.
                              ! 引数 *err* が与えられる場合,
                              ! プログラムは強制終了せず, 代わりに
                              ! *err* に .true. が代入されます.
                              !
                              ! Exception handling flag. 
                              ! By default, when error occur in 
                              ! this procedure, the program aborts. 
                              ! If this *err* argument is given, 
                              ! .true. is substituted to *err* and 
                              ! the program does not abort. 
                    
  real(DP) :: array_tmp(1)
  character(*), parameter :: subname = "HistoryGetDouble0"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))
  if (present_and_not_empty(range)) then
    call HistoryGetDoubleEx(file = file, varname = varname, array = array_tmp, range = range, quiet = quiet, err = err)
  else
    call HistoryGetDoubleEx(file = file, varname = varname, array = array_tmp, quiet = quiet, err = err)
  end if
  array = array_tmp(1)
  call EndSub(subname)
end subroutine HistoryGetDouble0
Subroutine :
file :character(*), intent(in)
: netCDF ファイル名. NetCDF filename.
varname :character(*), intent(in)
: 変数名. Variable name
array :real(DP), pointer
: (out)

取得するデータを格納する ポインタ配列

必ず空状態の配列を与えてください. すなわち与える配列に対し, 初期値 =>null() を設定するか nullify を用いて ください. 既に割り付けられている場合, もしくは不定状態の場合にはエラーを返し ます.

型は整数型, 単精度実数型, 倍精度実数型 かのいづれかです. 入力するデータ の型と array の型が異なる場合は, 自 動的に array の型に変換されます.

Array in which input data is store

Give null array to array. More specifically, use ’=>null()’ as initial value or use ‘nullify’ to the array. If the array is allocated already, or undefined, error is occurred.

Type is integer or single precision real or double precision. When type of input data is different from type of array, data is converted to type of array automatically.

range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型 は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻(正確には netCDF の無制限次元) の値として扱われ ます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. 固定長の配列へデータを入力を行う場合は, HistoryGet を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use fixed length array, use HistoryGet .

array には必ず空状態の配列を与えてください. すなわち与える配列に対し, 初期値 =>null() を設定するか nullify を用いてください. 既に割り付けられている場合, もしくは不定状態の場合には エラーを返します.

Give null array to array. More specifically, use ’=>null()’ as initial value or use ‘nullify’ to the array. If the array is allocated already, or undefined, error is occurred.

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

HistoryGetPointer は複数のサブルーチンの総称名です. array には 0 〜 7 次元の整数型, 単精度実数型, 倍精度実数型の配列を与えることが可能です.

HistoryGetPointer is generic name of multiple subroutines. Integer, single precision real, and double precision 0 — 7 rank array can be given to array.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

[Source]

subroutine HistoryGetDouble0Pointer(file, varname, array, range, quiet, err)
  !
                      !
  ! netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定
  ! していますが, 大抵の netCDF データの入力は可能であると期待されます.
  !
  ! Input netCDF data. NetCDF data with gtool4 conventions is assumed,
  ! but most netCDF data is expected to be input.
  !
  ! *file* にファイル名を, *varname* に変数名を与えます.
  ! *array* にはファイルから入力されたデータが返ります.
  ! 固定長の配列へデータを入力を行う場合は,
  ! HistoryGet を利用してください.
  !
  ! Give filename to *file*, variable name to *varname*.
  ! Input data is returned to *array*.
  ! If you want to use fixed length array, use HistoryGet .
  !
  ! *array* には必ず空状態の配列を与えてください.
  ! すなわち与える配列に対し, 初期値 =>null() を設定するか 
  ! nullify を用いてください.
  ! 既に割り付けられている場合, もしくは不定状態の場合には
  ! エラーを返します.
  !
  ! Give null array to *array*. 
  ! More specifically, use '=>null()' as initial value or 
  ! use 'nullify' to the array. 
  ! If the array is allocated already, or undefined, 
  ! error is occurred. 
  !
  ! デフォルトでは, ファイル内の最新データ, すなわちデータを
  ! 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを
  ! 入力したい場合には, 下記の *range* オプションを利用してください.
  !
  ! By default, recent data, that is to say, data clipped with 
  ! maximum time is input. In order to input data clipped with
  ! other time, use *range* option as follows.
  !
  ! *range* には gtool4 のコンマ記法
  ! ({gtool4 netCDF 規約}[link:../xref.htm#label-6] の「5.4 コンマ記法」参照)
  ! を与えることで, 入力データの一部を切り出すことが可能です.
  !
  ! Give gtool4 comma-graphy
  ! (See "5.4 gtool4 comma-graphy" in {gtool4 netCDF Convention}[link:../xref.htm#label-6]) 
  ! to *range*, then input data is clipped.
  !
  ! *HistoryGetPointer* は複数のサブルーチンの総称名です. *array* には
  ! 0 〜 7 次元の整数型, 単精度実数型, 
  ! 倍精度実数型の配列を与えることが可能です.
  !
  ! *HistoryGetPointer* is generic name of multiple subroutines.
  ! Integer, single precision real, and double precision
  ! 0 -- 7 rank array can be given to *array*.
  !
  ! デフォルトでは, データの入力時にどのファイルのどの変数が
  ! どの次元で切り出されて入力されたのかを表示します. 
  ! メッセージ出力が不要な場合は *quiet* に .true. を与えてください.
  !
  ! By default, when data is input, filename and variable name and
  ! clipping information is printed. 
  ! The message is suppressed when .true. is given to *quiet*
  !
                    
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Inquire, Close, Get
  use dc_string, only: toChar
  use dc_present, only: present_select, present_and_true
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
                                                  ! netCDF ファイル名. 
                              ! NetCDF filename.
                    
  character(*), intent(in):: varname
                                                  ! 変数名. 
                              ! Variable name
                    
  character(*), intent(in), optional:: range
                                                  ! 切り出し用オプション.
                              ! gtool4 変数のコンマ記法で記述
                              ! {(例: time=100.0,x=10:20,y=^1:^5)}
                              !
                              ! 詳しくは
                              ! {gtool4 netCDF 規約}[link:../xref.htm#label-6]
                              ! の「5.4 コンマ記法」を参照して
                              ! ください.
                              ! 
                              ! 数値のみが与えられる場合 (※ 引数の型
                              ! は常に文字型です.  ここでの「数値」は
                              ! "<b><tt>10.0</tt></b>" のような文字列
                              ! を指します), この値は時刻(正確には 
                              ! netCDF の無制限次元) の値として扱われ
                              ! ます.
                              ! 
                              ! Option for clipping.
                              ! Give gtool4 comma-graphy 
                              ! {(ex. time=100.0,x=10:20,y=^1:^5)}
                              ! 
                              ! For details, see "5.4 gtool4
                              ! comma-graphy" in 
                              ! {gtool4 netCDF Convention}[link:../xref.htm#label-6]
                              ! 
                              ! When pure numerical value is given
                              ! (Type of argument is character.  In
                              ! this case, the "pure numerical value"
                              ! means a character like
                              ! "<b><tt>10.0</tt></b>") the value is
                              ! treated as time (to be exact,
                              ! unlimited dimension).
                              ! 
                    
  logical, intent(in), optional:: quiet
  real(DP), pointer :: array
                                                  ! (out)
                              ! 
                              ! 取得するデータを格納する
                              ! ポインタ配列
                              !
                              ! 必ず空状態の配列を与えてください. 
                              ! すなわち与える配列に対し, 初期値 =>null() 
                              ! を設定するか nullify を用いて
                              ! ください.  既に割り付けられている場合, 
                              ! もしくは不定状態の場合にはエラーを返し
                              ! ます.
                              !
                              ! 型は整数型, 単精度実数型, 倍精度実数型
                              ! かのいづれかです. 入力するデータ
                              ! の型と *array* の型が異なる場合は, 自
                              ! 動的に *array* の型に変換されます.
                              ! 
                              ! Array in which input data is store
                              !
                              ! Give null array to *array*.  More
                              ! specifically, use '=>null()' as
                              ! initial value or use 'nullify' to the
                              ! array.  If the array is allocated
                              ! already, or undefined, error is
                              ! occurred.
                              !
                              ! Type is integer or single precision
                              ! real or double precision. When type of
                              ! input data is different from type of
                              ! *array*, data is converted to type of
                              ! *array* automatically.
                              ! 
                    
  logical, intent(out), optional:: err
                                                  ! 例外処理用フラグ.
                              ! デフォルトでは, この手続き内でエラーが
                              ! 生じた場合, プログラムは強制終了します.
                              ! 引数 *err* が与えられる場合,
                              ! プログラムは強制終了せず, 代わりに
                              ! *err* に .true. が代入されます.
                              !
                              ! Exception handling flag. 
                              ! By default, when error occur in 
                              ! this procedure, the program aborts. 
                              ! If this *err* argument is given, 
                              ! .true. is substituted to *err* and 
                              ! the program does not abort. 
                    
  real(DP), target :: array_tmp(1)
  type(GT_VARIABLE)                    :: var
  character(STRING)                    :: url, actual_url
  integer:: domain   ! 変数の入出力領域の大きさ
                           ! (= 変数が依存する各次元サイズの積)
  character(*), parameter :: subname = "HistoryGetDouble0Pointer"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
  ! 必要な情報を gtool 変数化
  call lookup_growable_url(file, varname, url, range, err)
  allocate(array)
  ! いよいよデータ取得
  call Open(var, url, err)
  call Inquire(var=var, size=domain)
  call Get(var, array_tmp, domain, err)
  call Close(var, err)
  array = array_tmp(1)
  call actual_iorange_dump(url, actual_url, err)
  if ( .not. present_and_true(quiet) ) then
    call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  end if
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:) :real(DP), intent(out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Double 型固定配列用 1 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetDouble1(file, varname, array, range, quiet, err)
  !
  ! Double 型固定配列用 1 次元配列用データ入力サブルーチン
  !
  !
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_not_empty
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
  character(*), intent(in):: varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  real(DP), intent(out) :: array(:)
  logical, intent(out), optional:: err
  character(*), parameter :: subname = "HistoryGetDouble1"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))

  if (present_and_not_empty(range)) then
    call HistoryGetDoubleEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
  else
    call HistoryGetDoubleEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
  endif
  call EndSub(subname)
end subroutine HistoryGetDouble1
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:) :real(DP), pointer
: (out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Double 型ポインタ配列用 1 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetDouble1Pointer(file, varname, array, range, quiet, err)
  !
  ! Double 型ポインタ配列用 1 次元配列用データ入力サブルーチン
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Inquire, Close, Get
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_true
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  logical, intent(out), optional:: err
  real(DP), pointer :: array(:) ! (out)
  type(GT_VARIABLE)                  :: var
  character(STRING)                  :: url, actual_url
  character(*), parameter :: subname = "HistoryGetDouble1Pointer"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
  ! 必要な情報を gtool 変数化
  call lookup_growable_url(file, varname, url, range, err)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url, err)
  call Get(var, array, err)
  call Close(var, err)
  call actual_iorange_dump(url, actual_url, err)
  if ( .not. present_and_true(quiet) ) then
    call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  end if
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:) :real(DP), intent(out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Double 型固定配列用 2 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetDouble2(file, varname, array, range, quiet, err)
  !
  ! Double 型固定配列用 2 次元配列用データ入力サブルーチン
  !
  !
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_not_empty
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
  character(*), intent(in):: varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  real(DP), intent(out) :: array(:,:)
  logical, intent(out), optional:: err
  character(*), parameter :: subname = "HistoryGetDouble2"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))

  if (present_and_not_empty(range)) then
    call HistoryGetDoubleEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
  else
    call HistoryGetDoubleEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
  endif
  call EndSub(subname)
end subroutine HistoryGetDouble2
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:) :real(DP), pointer
: (out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Double 型ポインタ配列用 2 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetDouble2Pointer(file, varname, array, range, quiet, err)
  !
  ! Double 型ポインタ配列用 2 次元配列用データ入力サブルーチン
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Inquire, Close, Get
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_true
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  logical, intent(out), optional:: err
  real(DP), pointer :: array(:,:) ! (out)
  type(GT_VARIABLE)                  :: var
  character(STRING)                  :: url, actual_url
  character(*), parameter :: subname = "HistoryGetDouble2Pointer"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
  ! 必要な情報を gtool 変数化
  call lookup_growable_url(file, varname, url, range, err)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url, err)
  call Get(var, array, err)
  call Close(var, err)
  call actual_iorange_dump(url, actual_url, err)
  if ( .not. present_and_true(quiet) ) then
    call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  end if
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:) :real(DP), intent(out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Double 型固定配列用 3 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetDouble3(file, varname, array, range, quiet, err)
  !
  ! Double 型固定配列用 3 次元配列用データ入力サブルーチン
  !
  !
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_not_empty
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
  character(*), intent(in):: varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  real(DP), intent(out) :: array(:,:,:)
  logical, intent(out), optional:: err
  character(*), parameter :: subname = "HistoryGetDouble3"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))

  if (present_and_not_empty(range)) then
    call HistoryGetDoubleEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
  else
    call HistoryGetDoubleEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
  endif
  call EndSub(subname)
end subroutine HistoryGetDouble3
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:) :real(DP), pointer
: (out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Double 型ポインタ配列用 3 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetDouble3Pointer(file, varname, array, range, quiet, err)
  !
  ! Double 型ポインタ配列用 3 次元配列用データ入力サブルーチン
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Inquire, Close, Get
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_true
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  logical, intent(out), optional:: err
  real(DP), pointer :: array(:,:,:) ! (out)
  type(GT_VARIABLE)                  :: var
  character(STRING)                  :: url, actual_url
  character(*), parameter :: subname = "HistoryGetDouble3Pointer"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
  ! 必要な情報を gtool 変数化
  call lookup_growable_url(file, varname, url, range, err)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url, err)
  call Get(var, array, err)
  call Close(var, err)
  call actual_iorange_dump(url, actual_url, err)
  if ( .not. present_and_true(quiet) ) then
    call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  end if
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:) :real(DP), intent(out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Double 型固定配列用 4 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetDouble4(file, varname, array, range, quiet, err)
  !
  ! Double 型固定配列用 4 次元配列用データ入力サブルーチン
  !
  !
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_not_empty
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
  character(*), intent(in):: varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  real(DP), intent(out) :: array(:,:,:,:)
  logical, intent(out), optional:: err
  character(*), parameter :: subname = "HistoryGetDouble4"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))

  if (present_and_not_empty(range)) then
    call HistoryGetDoubleEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
  else
    call HistoryGetDoubleEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
  endif
  call EndSub(subname)
end subroutine HistoryGetDouble4
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:) :real(DP), pointer
: (out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Double 型ポインタ配列用 4 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetDouble4Pointer(file, varname, array, range, quiet, err)
  !
  ! Double 型ポインタ配列用 4 次元配列用データ入力サブルーチン
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Inquire, Close, Get
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_true
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  logical, intent(out), optional:: err
  real(DP), pointer :: array(:,:,:,:) ! (out)
  type(GT_VARIABLE)                  :: var
  character(STRING)                  :: url, actual_url
  character(*), parameter :: subname = "HistoryGetDouble4Pointer"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
  ! 必要な情報を gtool 変数化
  call lookup_growable_url(file, varname, url, range, err)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url, err)
  call Get(var, array, err)
  call Close(var, err)
  call actual_iorange_dump(url, actual_url, err)
  if ( .not. present_and_true(quiet) ) then
    call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  end if
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:) :real(DP), intent(out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Double 型固定配列用 5 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetDouble5(file, varname, array, range, quiet, err)
  !
  ! Double 型固定配列用 5 次元配列用データ入力サブルーチン
  !
  !
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_not_empty
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
  character(*), intent(in):: varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  real(DP), intent(out) :: array(:,:,:,:,:)
  logical, intent(out), optional:: err
  character(*), parameter :: subname = "HistoryGetDouble5"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))

  if (present_and_not_empty(range)) then
    call HistoryGetDoubleEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
  else
    call HistoryGetDoubleEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
  endif
  call EndSub(subname)
end subroutine HistoryGetDouble5
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:) :real(DP), pointer
: (out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Double 型ポインタ配列用 5 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetDouble5Pointer(file, varname, array, range, quiet, err)
  !
  ! Double 型ポインタ配列用 5 次元配列用データ入力サブルーチン
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Inquire, Close, Get
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_true
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  logical, intent(out), optional:: err
  real(DP), pointer :: array(:,:,:,:,:) ! (out)
  type(GT_VARIABLE)                  :: var
  character(STRING)                  :: url, actual_url
  character(*), parameter :: subname = "HistoryGetDouble5Pointer"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
  ! 必要な情報を gtool 変数化
  call lookup_growable_url(file, varname, url, range, err)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url, err)
  call Get(var, array, err)
  call Close(var, err)
  call actual_iorange_dump(url, actual_url, err)
  if ( .not. present_and_true(quiet) ) then
    call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  end if
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:) :real(DP), intent(out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Double 型固定配列用 6 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetDouble6(file, varname, array, range, quiet, err)
  !
  ! Double 型固定配列用 6 次元配列用データ入力サブルーチン
  !
  !
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_not_empty
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
  character(*), intent(in):: varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  real(DP), intent(out) :: array(:,:,:,:,:,:)
  logical, intent(out), optional:: err
  character(*), parameter :: subname = "HistoryGetDouble6"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))

  if (present_and_not_empty(range)) then
    call HistoryGetDoubleEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
  else
    call HistoryGetDoubleEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
  endif
  call EndSub(subname)
end subroutine HistoryGetDouble6
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:) :real(DP), pointer
: (out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Double 型ポインタ配列用 6 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetDouble6Pointer(file, varname, array, range, quiet, err)
  !
  ! Double 型ポインタ配列用 6 次元配列用データ入力サブルーチン
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Inquire, Close, Get
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_true
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  logical, intent(out), optional:: err
  real(DP), pointer :: array(:,:,:,:,:,:) ! (out)
  type(GT_VARIABLE)                  :: var
  character(STRING)                  :: url, actual_url
  character(*), parameter :: subname = "HistoryGetDouble6Pointer"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
  ! 必要な情報を gtool 変数化
  call lookup_growable_url(file, varname, url, range, err)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url, err)
  call Get(var, array, err)
  call Close(var, err)
  call actual_iorange_dump(url, actual_url, err)
  if ( .not. present_and_true(quiet) ) then
    call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  end if
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:,:) :real(DP), intent(out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Double 型固定配列用 7 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetDouble7(file, varname, array, range, quiet, err)
  !
  ! Double 型固定配列用 7 次元配列用データ入力サブルーチン
  !
  !
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_not_empty
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
  character(*), intent(in):: varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  real(DP), intent(out) :: array(:,:,:,:,:,:,:)
  logical, intent(out), optional:: err
  character(*), parameter :: subname = "HistoryGetDouble7"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))

  if (present_and_not_empty(range)) then
    call HistoryGetDoubleEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
  else
    call HistoryGetDoubleEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
  endif
  call EndSub(subname)
end subroutine HistoryGetDouble7
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:,:) :real(DP), pointer
: (out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Double 型ポインタ配列用 7 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetDouble7Pointer(file, varname, array, range, quiet, err)
  !
  ! Double 型ポインタ配列用 7 次元配列用データ入力サブルーチン
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Inquire, Close, Get
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_true
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  logical, intent(out), optional:: err
  real(DP), pointer :: array(:,:,:,:,:,:,:) ! (out)
  type(GT_VARIABLE)                  :: var
  character(STRING)                  :: url, actual_url
  character(*), parameter :: subname = "HistoryGetDouble7Pointer"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
  ! 必要な情報を gtool 変数化
  call lookup_growable_url(file, varname, url, range, err)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url, err)
  call Get(var, array, err)
  call Close(var, err)
  call actual_iorange_dump(url, actual_url, err)
  if ( .not. present_and_true(quiet) ) then
    call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  end if
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
: ファイル名. Filename
varname :character(*), intent(in)
: 変数名. Variable name
array(*) :real(DP), intent(out)
: データ. Data
range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻 (正確には netCDF の無制限次元) の値として扱われます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.

This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

[Source]

subroutine HistoryGetDoubleEx(file, varname, array, range, quiet, err)
  !
  ! このサブルーチンは gt4_history の内部で呼び出される
  ! ことを想定されています. gt4_history モジュールの外部からは
  ! 呼び出さないで下さい. 
  !
  ! This subroutine is expected to be refereed in gt4_history internally.
  ! Do not refer from the outside of gt4_history.
  !
  ! netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定
  ! していますが, 大抵の netCDF データの入力は可能であると期待されます.
  !
  ! Input netCDF data. NetCDF data with gtool4 conventions is assumed,
  ! but most netCDF data is expected to be input.
  !
  ! *file* にファイル名を, *varname* に変数名を与えます.
  ! *array* にはファイルから入力されたデータが返ります.
  ! ポインタの配列へデータを入力を行う場合は,
  ! HistoryGetPointer を利用してください.
  !
  ! Give filename to *file*, variable name to *varname*.
  ! Input data is returned to *array*.
  ! If you want to use pointer array, use HistoryGetPointer .
  !
  ! デフォルトでは, ファイル内の最新データ, すなわちデータを
  ! 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを
  ! 入力したい場合には, 下記の *range* オプションを利用してください.
  !
  ! By default, recent data, that is to say, data clipped with 
  ! maximum time is input. In order to input data clipped with
  ! other time, use *range* option as follows.
  !
  ! *range* には gtool4 のコンマ記法
  ! ({gtool4 netCDF 規約}[link:../xref.htm#label-6] の「5.4 コンマ記法」参照)
  ! を与えることで, 入力データの一部を切り出すことが可能です.
  !
  ! Give gtool4 comma-graphy
  ! (See "5.4 gtool4 comma-graphy" in {gtool4 netCDF Convention}[link:../xref.htm#label-6]) 
  ! to *range*, then input data is clipped.
  !
  ! デフォルトでは, データの入力時にどのファイルのどの変数が
  ! どの次元で切り出されて入力されたのかを表示します. 
  ! メッセージ出力が不要な場合は *quiet* に .true. を与えてください.
  !
  ! By default, when data is input, filename and variable name and
  ! clipping information is printed. 
  ! The message is suppressed when .true. is given to *quiet*
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Inquire, Close, Get
  use dc_string, only: toChar, Split, JoinChar, StoA
  use dc_url, only: GT_ATMARK, GT_COMMA, GT_EQUAL, UrlSplit, UrlMerge
  use dc_present, only: present_select, present_and_not_empty, present_and_true
  use regex,      only: match
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  use dc_error, only: StoreError, DC_NOERR, GT_ENOTURL
  character(*), intent(in):: file     ! ファイル名. Filename
  character(*), intent(in):: varname  ! 変数名. Variable name
  character(*), intent(in), optional:: range
                              ! 切り出し用オプション.
                              ! gtool4 変数のコンマ記法で記述
                              ! {(例: time=100.0,x=10:20,y=^1:^5)}
                              !
                              ! 詳しくは
                              ! {gtool4 netCDF 規約}[link:../xref.htm#label-6]
                              ! の「5.4 コンマ記法」を参照して
                              ! ください.
                              ! 
                              ! 数値のみが与えられる場合
                              ! (※ 引数の型は常に文字型です.
                              ! ここでの「数値」は
                              ! "<b><tt>10.0</tt></b>"
                              ! のような文字列
                              ! を指します), この値は時刻
                              ! (正確には netCDF の無制限次元)
                              ! の値として扱われます.
                              ! 
                              ! Option for clipping.
                              ! Give gtool4 comma-graphy 
                              ! {(ex. time=100.0,x=10:20,y=^1:^5)}
                              ! 
                              ! For details, see "5.4 gtool4
                              ! comma-graphy" in 
                              ! {gtool4 netCDF Convention}[link:../xref.htm#label-6]
                              ! 
                              ! When pure numerical value is given 
                              ! (Type of argument is character.
                              ! In this case, the "pure numerical 
                              ! value" means a character like 
                              ! "<b><tt>10.0</tt></b>")
                              ! the value is treated as time
                              ! (to be exact, unlimited dimension).
                              ! 
  logical, intent(in), optional:: quiet
  real(DP), intent(out):: array(*) ! データ. Data

  type(GT_VARIABLE)             :: var
  character(STRING)             :: url, actual_url
  integer:: domain   ! 変数の入出力領域の大きさ
                     ! (= 変数が依存する各次元サイズの積)
  logical, intent(out), optional:: err
                              ! 例外処理用フラグ.
                              ! デフォルトでは, この手続き内でエラーが
                              ! 生じた場合, プログラムは強制終了します.
                              ! 引数 *err* が与えられる場合,
                              ! プログラムは強制終了せず, 代わりに
                              ! *err* に .true. が代入されます.
                              !
                              ! Exception handling flag. 
                              ! By default, when error occur in 
                              ! this procedure, the program aborts. 
                              ! If this *err* argument is given, 
                              ! .true. is substituted to *err* and 
                              ! the program does not abort. 

  integer:: stat
  character(STRING):: cause_c
  character(*), parameter :: subname = "HistoryGetDoubleEx"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
  cause_c = ''
  stat = DC_NOERR

  call lookup_growable_url(file, varname, url, range, err = err)
  if ( present_and_true(err) ) then
    stat = GT_ENOTURL
    cause_c = url
    goto 999
  end if

  call Open(var, url, err = err)
  if ( present_and_true(err) ) then
    stat = GT_ENOTURL
    cause_c = url
    goto 999
  end if

  call Inquire(var = var, size = domain)
  call Get(var, array, domain)
  call Close(var)
  call actual_iorange_dump(url, actual_url, err = err)
  if ( .not. present_and_true(quiet) ) then
    call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  end if
999 continue
  call StoreError(stat, subname, err, cause_c)
  call EndSub(subname)
end subroutine HistoryGetDoubleEx
HistoryGetDoubleEx( file, varname, array, [range], [quiet], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名. Filename
varname :character(*), intent(in)
: 変数名. Variable name
array(*) :real(DP), intent(out)
: データ. Data
range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻 (正確には netCDF の無制限次元) の値として扱われます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.

This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range], [quiet], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名. Filename
varname :character(*), intent(in)
: 変数名. Variable name
array(*) :real(DP), intent(out)
: データ. Data
range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻 (正確には netCDF の無制限次元) の値として扱われます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.

This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range], [quiet], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名. Filename
varname :character(*), intent(in)
: 変数名. Variable name
array(*) :real(DP), intent(out)
: データ. Data
range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻 (正確には netCDF の無制限次元) の値として扱われます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.

This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range], [quiet], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名. Filename
varname :character(*), intent(in)
: 変数名. Variable name
array(*) :real(DP), intent(out)
: データ. Data
range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻 (正確には netCDF の無制限次元) の値として扱われます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.

This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range], [quiet], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名. Filename
varname :character(*), intent(in)
: 変数名. Variable name
array(*) :real(DP), intent(out)
: データ. Data
range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻 (正確には netCDF の無制限次元) の値として扱われます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.

This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range], [quiet], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名. Filename
varname :character(*), intent(in)
: 変数名. Variable name
array(*) :real(DP), intent(out)
: データ. Data
range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻 (正確には netCDF の無制限次元) の値として扱われます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.

This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range], [quiet], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名. Filename
varname :character(*), intent(in)
: 変数名. Variable name
array(*) :real(DP), intent(out)
: データ. Data
range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻 (正確には netCDF の無制限次元) の値として扱われます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.

This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range], [quiet], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名. Filename
varname :character(*), intent(in)
: 変数名. Variable name
array(*) :real(DP), intent(out)
: データ. Data
range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻 (正確には netCDF の無制限次元) の値として扱われます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.

This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

Original external subprogram is historyget.f90#HistoryGetDoubleEx

Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array :integer, intent(out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

[Source]

subroutine HistoryGetInt0(file, varname, array, range, quiet, err)
  !
                    
  !
  use dc_string, only: toChar
  use dc_present, only: present_select, present_and_not_empty
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
                    
  character(*), intent(in):: varname
                    
  character(*), intent(in), optional:: range
                    
  logical, intent(in), optional:: quiet
  integer, intent(out) :: array
                    
  logical, intent(out), optional:: err
                    
  integer :: array_tmp(1)
  character(*), parameter :: subname = "HistoryGetInt0"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))
  if (present_and_not_empty(range)) then
    call HistoryGetIntEx(file = file, varname = varname, array = array_tmp, range = range, quiet = quiet, err = err)
  else
    call HistoryGetIntEx(file = file, varname = varname, array = array_tmp, quiet = quiet, err = err)
  end if
  array = array_tmp(1)
  call EndSub(subname)
end subroutine HistoryGetInt0
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array :integer, pointer
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

[Source]

subroutine HistoryGetInt0Pointer(file, varname, array, range, quiet, err)
  !
                    
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Inquire, Close, Get
  use dc_string, only: toChar
  use dc_present, only: present_select, present_and_true
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
                    
  character(*), intent(in):: varname
                    
  character(*), intent(in), optional:: range
                    
  logical, intent(in), optional:: quiet
  integer, pointer :: array
                    
  logical, intent(out), optional:: err
                    
  integer, target :: array_tmp(1)
  type(GT_VARIABLE)                    :: var
  character(STRING)                    :: url, actual_url
  integer:: domain   ! 変数の入出力領域の大きさ
                           ! (= 変数が依存する各次元サイズの積)
  character(*), parameter :: subname = "HistoryGetInt0Pointer"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
  ! 必要な情報を gtool 変数化
  call lookup_growable_url(file, varname, url, range, err)
  allocate(array)
  ! いよいよデータ取得
  call Open(var, url, err)
  call Inquire(var=var, size=domain)
  call Get(var, array_tmp, domain, err)
  call Close(var, err)
  array = array_tmp(1)
  call actual_iorange_dump(url, actual_url, err)
  if ( .not. present_and_true(quiet) ) then
    call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  end if
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:) :integer, intent(out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Int 型固定配列用 1 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetInt1(file, varname, array, range, quiet, err)
  !
  ! Int 型固定配列用 1 次元配列用データ入力サブルーチン
  !
  !
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_not_empty
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
  character(*), intent(in):: varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  integer, intent(out) :: array(:)
  logical, intent(out), optional:: err
  character(*), parameter :: subname = "HistoryGetInt1"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))

  if (present_and_not_empty(range)) then
    call HistoryGetIntEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
  else
    call HistoryGetIntEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
  endif
  call EndSub(subname)
end subroutine HistoryGetInt1
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:) :integer, pointer
: (out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Int 型ポインタ配列用 1 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetInt1Pointer(file, varname, array, range, quiet, err)
  !
  ! Int 型ポインタ配列用 1 次元配列用データ入力サブルーチン
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Inquire, Close, Get
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_true
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  logical, intent(out), optional:: err
  integer, pointer :: array(:) ! (out)
  type(GT_VARIABLE)                  :: var
  character(STRING)                  :: url, actual_url
  character(*), parameter :: subname = "HistoryGetInt1Pointer"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
  ! 必要な情報を gtool 変数化
  call lookup_growable_url(file, varname, url, range, err)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url, err)
  call Get(var, array, err)
  call Close(var, err)
  call actual_iorange_dump(url, actual_url, err)
  if ( .not. present_and_true(quiet) ) then
    call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  end if
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:) :integer, intent(out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Int 型固定配列用 2 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetInt2(file, varname, array, range, quiet, err)
  !
  ! Int 型固定配列用 2 次元配列用データ入力サブルーチン
  !
  !
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_not_empty
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
  character(*), intent(in):: varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  integer, intent(out) :: array(:,:)
  logical, intent(out), optional:: err
  character(*), parameter :: subname = "HistoryGetInt2"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))

  if (present_and_not_empty(range)) then
    call HistoryGetIntEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
  else
    call HistoryGetIntEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
  endif
  call EndSub(subname)
end subroutine HistoryGetInt2
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:) :integer, pointer
: (out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Int 型ポインタ配列用 2 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetInt2Pointer(file, varname, array, range, quiet, err)
  !
  ! Int 型ポインタ配列用 2 次元配列用データ入力サブルーチン
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Inquire, Close, Get
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_true
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  logical, intent(out), optional:: err
  integer, pointer :: array(:,:) ! (out)
  type(GT_VARIABLE)                  :: var
  character(STRING)                  :: url, actual_url
  character(*), parameter :: subname = "HistoryGetInt2Pointer"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
  ! 必要な情報を gtool 変数化
  call lookup_growable_url(file, varname, url, range, err)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url, err)
  call Get(var, array, err)
  call Close(var, err)
  call actual_iorange_dump(url, actual_url, err)
  if ( .not. present_and_true(quiet) ) then
    call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  end if
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:) :integer, intent(out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Int 型固定配列用 3 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetInt3(file, varname, array, range, quiet, err)
  !
  ! Int 型固定配列用 3 次元配列用データ入力サブルーチン
  !
  !
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_not_empty
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
  character(*), intent(in):: varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  integer, intent(out) :: array(:,:,:)
  logical, intent(out), optional:: err
  character(*), parameter :: subname = "HistoryGetInt3"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))

  if (present_and_not_empty(range)) then
    call HistoryGetIntEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
  else
    call HistoryGetIntEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
  endif
  call EndSub(subname)
end subroutine HistoryGetInt3
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:) :integer, pointer
: (out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Int 型ポインタ配列用 3 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetInt3Pointer(file, varname, array, range, quiet, err)
  !
  ! Int 型ポインタ配列用 3 次元配列用データ入力サブルーチン
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Inquire, Close, Get
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_true
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  logical, intent(out), optional:: err
  integer, pointer :: array(:,:,:) ! (out)
  type(GT_VARIABLE)                  :: var
  character(STRING)                  :: url, actual_url
  character(*), parameter :: subname = "HistoryGetInt3Pointer"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
  ! 必要な情報を gtool 変数化
  call lookup_growable_url(file, varname, url, range, err)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url, err)
  call Get(var, array, err)
  call Close(var, err)
  call actual_iorange_dump(url, actual_url, err)
  if ( .not. present_and_true(quiet) ) then
    call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  end if
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:) :integer, intent(out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Int 型固定配列用 4 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetInt4(file, varname, array, range, quiet, err)
  !
  ! Int 型固定配列用 4 次元配列用データ入力サブルーチン
  !
  !
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_not_empty
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
  character(*), intent(in):: varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  integer, intent(out) :: array(:,:,:,:)
  logical, intent(out), optional:: err
  character(*), parameter :: subname = "HistoryGetInt4"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))

  if (present_and_not_empty(range)) then
    call HistoryGetIntEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
  else
    call HistoryGetIntEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
  endif
  call EndSub(subname)
end subroutine HistoryGetInt4
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:) :integer, pointer
: (out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Int 型ポインタ配列用 4 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetInt4Pointer(file, varname, array, range, quiet, err)
  !
  ! Int 型ポインタ配列用 4 次元配列用データ入力サブルーチン
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Inquire, Close, Get
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_true
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  logical, intent(out), optional:: err
  integer, pointer :: array(:,:,:,:) ! (out)
  type(GT_VARIABLE)                  :: var
  character(STRING)                  :: url, actual_url
  character(*), parameter :: subname = "HistoryGetInt4Pointer"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
  ! 必要な情報を gtool 変数化
  call lookup_growable_url(file, varname, url, range, err)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url, err)
  call Get(var, array, err)
  call Close(var, err)
  call actual_iorange_dump(url, actual_url, err)
  if ( .not. present_and_true(quiet) ) then
    call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  end if
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:) :integer, intent(out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Int 型固定配列用 5 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetInt5(file, varname, array, range, quiet, err)
  !
  ! Int 型固定配列用 5 次元配列用データ入力サブルーチン
  !
  !
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_not_empty
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
  character(*), intent(in):: varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  integer, intent(out) :: array(:,:,:,:,:)
  logical, intent(out), optional:: err
  character(*), parameter :: subname = "HistoryGetInt5"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))

  if (present_and_not_empty(range)) then
    call HistoryGetIntEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
  else
    call HistoryGetIntEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
  endif
  call EndSub(subname)
end subroutine HistoryGetInt5
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:) :integer, pointer
: (out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Int 型ポインタ配列用 5 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetInt5Pointer(file, varname, array, range, quiet, err)
  !
  ! Int 型ポインタ配列用 5 次元配列用データ入力サブルーチン
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Inquire, Close, Get
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_true
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  logical, intent(out), optional:: err
  integer, pointer :: array(:,:,:,:,:) ! (out)
  type(GT_VARIABLE)                  :: var
  character(STRING)                  :: url, actual_url
  character(*), parameter :: subname = "HistoryGetInt5Pointer"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
  ! 必要な情報を gtool 変数化
  call lookup_growable_url(file, varname, url, range, err)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url, err)
  call Get(var, array, err)
  call Close(var, err)
  call actual_iorange_dump(url, actual_url, err)
  if ( .not. present_and_true(quiet) ) then
    call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  end if
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:) :integer, intent(out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Int 型固定配列用 6 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetInt6(file, varname, array, range, quiet, err)
  !
  ! Int 型固定配列用 6 次元配列用データ入力サブルーチン
  !
  !
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_not_empty
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
  character(*), intent(in):: varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  integer, intent(out) :: array(:,:,:,:,:,:)
  logical, intent(out), optional:: err
  character(*), parameter :: subname = "HistoryGetInt6"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))

  if (present_and_not_empty(range)) then
    call HistoryGetIntEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
  else
    call HistoryGetIntEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
  endif
  call EndSub(subname)
end subroutine HistoryGetInt6
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:) :integer, pointer
: (out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Int 型ポインタ配列用 6 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetInt6Pointer(file, varname, array, range, quiet, err)
  !
  ! Int 型ポインタ配列用 6 次元配列用データ入力サブルーチン
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Inquire, Close, Get
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_true
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  logical, intent(out), optional:: err
  integer, pointer :: array(:,:,:,:,:,:) ! (out)
  type(GT_VARIABLE)                  :: var
  character(STRING)                  :: url, actual_url
  character(*), parameter :: subname = "HistoryGetInt6Pointer"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
  ! 必要な情報を gtool 変数化
  call lookup_growable_url(file, varname, url, range, err)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url, err)
  call Get(var, array, err)
  call Close(var, err)
  call actual_iorange_dump(url, actual_url, err)
  if ( .not. present_and_true(quiet) ) then
    call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  end if
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:,:) :integer, intent(out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Int 型固定配列用 7 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetInt7(file, varname, array, range, quiet, err)
  !
  ! Int 型固定配列用 7 次元配列用データ入力サブルーチン
  !
  !
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_not_empty
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
  character(*), intent(in):: varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  integer, intent(out) :: array(:,:,:,:,:,:,:)
  logical, intent(out), optional:: err
  character(*), parameter :: subname = "HistoryGetInt7"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))

  if (present_and_not_empty(range)) then
    call HistoryGetIntEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
  else
    call HistoryGetIntEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
  endif
  call EndSub(subname)
end subroutine HistoryGetInt7
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:,:) :integer, pointer
: (out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Int 型ポインタ配列用 7 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetInt7Pointer(file, varname, array, range, quiet, err)
  !
  ! Int 型ポインタ配列用 7 次元配列用データ入力サブルーチン
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Inquire, Close, Get
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_true
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  logical, intent(out), optional:: err
  integer, pointer :: array(:,:,:,:,:,:,:) ! (out)
  type(GT_VARIABLE)                  :: var
  character(STRING)                  :: url, actual_url
  character(*), parameter :: subname = "HistoryGetInt7Pointer"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
  ! 必要な情報を gtool 変数化
  call lookup_growable_url(file, varname, url, range, err)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url, err)
  call Get(var, array, err)
  call Close(var, err)
  call actual_iorange_dump(url, actual_url, err)
  if ( .not. present_and_true(quiet) ) then
    call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  end if
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
: ファイル名. Filename
varname :character(*), intent(in)
: 変数名. Variable name
array(*) :integer, intent(out)
: データ. Data
range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻 (正確には netCDF の無制限次元) の値として扱われます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.

This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

[Source]

subroutine HistoryGetIntEx(file, varname, array, range, quiet, err)
  !
  ! このサブルーチンは gt4_history の内部で呼び出される
  ! ことを想定されています. gt4_history モジュールの外部からは
  ! 呼び出さないで下さい. 
  !
  ! This subroutine is expected to be refereed in gt4_history internally.
  ! Do not refer from the outside of gt4_history.
  !
  ! netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定
  ! していますが, 大抵の netCDF データの入力は可能であると期待されます.
  !
  ! Input netCDF data. NetCDF data with gtool4 conventions is assumed,
  ! but most netCDF data is expected to be input.
  !
  ! *file* にファイル名を, *varname* に変数名を与えます.
  ! *array* にはファイルから入力されたデータが返ります.
  ! ポインタの配列へデータを入力を行う場合は,
  ! HistoryGetPointer を利用してください.
  !
  ! Give filename to *file*, variable name to *varname*.
  ! Input data is returned to *array*.
  ! If you want to use pointer array, use HistoryGetPointer .
  !
  ! デフォルトでは, ファイル内の最新データ, すなわちデータを
  ! 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを
  ! 入力したい場合には, 下記の *range* オプションを利用してください.
  !
  ! By default, recent data, that is to say, data clipped with 
  ! maximum time is input. In order to input data clipped with
  ! other time, use *range* option as follows.
  !
  ! *range* には gtool4 のコンマ記法
  ! ({gtool4 netCDF 規約}[link:../xref.htm#label-6] の「5.4 コンマ記法」参照)
  ! を与えることで, 入力データの一部を切り出すことが可能です.
  !
  ! Give gtool4 comma-graphy
  ! (See "5.4 gtool4 comma-graphy" in {gtool4 netCDF Convention}[link:../xref.htm#label-6]) 
  ! to *range*, then input data is clipped.
  !
  ! デフォルトでは, データの入力時にどのファイルのどの変数が
  ! どの次元で切り出されて入力されたのかを表示します. 
  ! メッセージ出力が不要な場合は *quiet* に .true. を与えてください.
  !
  ! By default, when data is input, filename and variable name and
  ! clipping information is printed. 
  ! The message is suppressed when .true. is given to *quiet*
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Inquire, Close, Get
  use dc_string, only: toChar, Split, JoinChar, StoA
  use dc_url, only: GT_ATMARK, GT_COMMA, GT_EQUAL, UrlSplit, UrlMerge
  use dc_present, only: present_select, present_and_not_empty, present_and_true
  use regex,      only: match
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  use dc_error, only: StoreError, DC_NOERR, GT_ENOTURL
  character(*), intent(in):: file     ! ファイル名. Filename
  character(*), intent(in):: varname  ! 変数名. Variable name
  character(*), intent(in), optional:: range
                              ! 切り出し用オプション.
                              ! gtool4 変数のコンマ記法で記述
                              ! {(例: time=100.0,x=10:20,y=^1:^5)}
                              !
                              ! 詳しくは
                              ! {gtool4 netCDF 規約}[link:../xref.htm#label-6]
                              ! の「5.4 コンマ記法」を参照して
                              ! ください.
                              ! 
                              ! 数値のみが与えられる場合
                              ! (※ 引数の型は常に文字型です.
                              ! ここでの「数値」は
                              ! "<b><tt>10.0</tt></b>"
                              ! のような文字列
                              ! を指します), この値は時刻
                              ! (正確には netCDF の無制限次元)
                              ! の値として扱われます.
                              ! 
                              ! Option for clipping.
                              ! Give gtool4 comma-graphy 
                              ! {(ex. time=100.0,x=10:20,y=^1:^5)}
                              ! 
                              ! For details, see "5.4 gtool4
                              ! comma-graphy" in 
                              ! {gtool4 netCDF Convention}[link:../xref.htm#label-6]
                              ! 
                              ! When pure numerical value is given 
                              ! (Type of argument is character.
                              ! In this case, the "pure numerical 
                              ! value" means a character like 
                              ! "<b><tt>10.0</tt></b>")
                              ! the value is treated as time
                              ! (to be exact, unlimited dimension).
                              ! 
  logical, intent(in), optional:: quiet
  integer, intent(out):: array(*) ! データ. Data

  type(GT_VARIABLE)             :: var
  character(STRING)             :: url, actual_url
  integer:: domain   ! 変数の入出力領域の大きさ
                     ! (= 変数が依存する各次元サイズの積)
  logical, intent(out), optional:: err
                              ! 例外処理用フラグ.
                              ! デフォルトでは, この手続き内でエラーが
                              ! 生じた場合, プログラムは強制終了します.
                              ! 引数 *err* が与えられる場合,
                              ! プログラムは強制終了せず, 代わりに
                              ! *err* に .true. が代入されます.
                              !
                              ! Exception handling flag. 
                              ! By default, when error occur in 
                              ! this procedure, the program aborts. 
                              ! If this *err* argument is given, 
                              ! .true. is substituted to *err* and 
                              ! the program does not abort. 

  integer:: stat
  character(STRING):: cause_c
  character(*), parameter :: subname = "HistoryGetIntEx"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
  cause_c = ''
  stat = DC_NOERR

  call lookup_growable_url(file, varname, url, range, err = err)
  if ( present_and_true(err) ) then
    stat = GT_ENOTURL
    cause_c = url
    goto 999
  end if

  call Open(var, url, err = err)
  if ( present_and_true(err) ) then
    stat = GT_ENOTURL
    cause_c = url
    goto 999
  end if

  call Inquire(var = var, size = domain)
  call Get(var, array, domain)
  call Close(var)
  call actual_iorange_dump(url, actual_url, err = err)
  if ( .not. present_and_true(quiet) ) then
    call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  end if
999 continue
  call StoreError(stat, subname, err, cause_c)
  call EndSub(subname)
end subroutine HistoryGetIntEx
HistoryGetIntEx( file, varname, array, [range], [quiet], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名. Filename
varname :character(*), intent(in)
: 変数名. Variable name
array(*) :integer, intent(out)
: データ. Data
range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻 (正確には netCDF の無制限次元) の値として扱われます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.

This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

Original external subprogram is historyget.f90#HistoryGetIntEx

HistoryGetIntEx( file, varname, array, [range], [quiet], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名. Filename
varname :character(*), intent(in)
: 変数名. Variable name
array(*) :integer, intent(out)
: データ. Data
range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻 (正確には netCDF の無制限次元) の値として扱われます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.

This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

Original external subprogram is historyget.f90#HistoryGetIntEx

HistoryGetIntEx( file, varname, array, [range], [quiet], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名. Filename
varname :character(*), intent(in)
: 変数名. Variable name
array(*) :integer, intent(out)
: データ. Data
range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻 (正確には netCDF の無制限次元) の値として扱われます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.

This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

Original external subprogram is historyget.f90#HistoryGetIntEx

HistoryGetIntEx( file, varname, array, [range], [quiet], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名. Filename
varname :character(*), intent(in)
: 変数名. Variable name
array(*) :integer, intent(out)
: データ. Data
range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻 (正確には netCDF の無制限次元) の値として扱われます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.

This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

Original external subprogram is historyget.f90#HistoryGetIntEx

HistoryGetIntEx( file, varname, array, [range], [quiet], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名. Filename
varname :character(*), intent(in)
: 変数名. Variable name
array(*) :integer, intent(out)
: データ. Data
range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻 (正確には netCDF の無制限次元) の値として扱われます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.

This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

Original external subprogram is historyget.f90#HistoryGetIntEx

HistoryGetIntEx( file, varname, array, [range], [quiet], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名. Filename
varname :character(*), intent(in)
: 変数名. Variable name
array(*) :integer, intent(out)
: データ. Data
range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻 (正確には netCDF の無制限次元) の値として扱われます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.

This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

Original external subprogram is historyget.f90#HistoryGetIntEx

HistoryGetIntEx( file, varname, array, [range], [quiet], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名. Filename
varname :character(*), intent(in)
: 変数名. Variable name
array(*) :integer, intent(out)
: データ. Data
range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻 (正確には netCDF の無制限次元) の値として扱われます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.

This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

Original external subprogram is historyget.f90#HistoryGetIntEx

HistoryGetIntEx( file, varname, array, [range], [quiet], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名. Filename
varname :character(*), intent(in)
: 変数名. Variable name
array(*) :integer, intent(out)
: データ. Data
range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻 (正確には netCDF の無制限次元) の値として扱われます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.

This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

Original external subprogram is historyget.f90#HistoryGetIntEx

Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array :real, intent(out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

[Source]

subroutine HistoryGetReal0(file, varname, array, range, quiet, err)
  !
                    
  !
  use dc_string, only: toChar
  use dc_present, only: present_select, present_and_not_empty
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
                    
  character(*), intent(in):: varname
                    
  character(*), intent(in), optional:: range
                    
  logical, intent(in), optional:: quiet
  real, intent(out) :: array
                    
  logical, intent(out), optional:: err
                    
  real :: array_tmp(1)
  character(*), parameter :: subname = "HistoryGetReal0"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))
  if (present_and_not_empty(range)) then
    call HistoryGetRealEx(file = file, varname = varname, array = array_tmp, range = range, quiet = quiet, err = err)
  else
    call HistoryGetRealEx(file = file, varname = varname, array = array_tmp, quiet = quiet, err = err)
  end if
  array = array_tmp(1)
  call EndSub(subname)
end subroutine HistoryGetReal0
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array :real, pointer
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

[Source]

subroutine HistoryGetReal0Pointer(file, varname, array, range, quiet, err)
  !
                    
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Inquire, Close, Get
  use dc_string, only: toChar
  use dc_present, only: present_select, present_and_true
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
                    
  character(*), intent(in):: varname
                    
  character(*), intent(in), optional:: range
                    
  logical, intent(in), optional:: quiet
  real, pointer :: array
                    
  logical, intent(out), optional:: err
                    
  real, target :: array_tmp(1)
  type(GT_VARIABLE)                    :: var
  character(STRING)                    :: url, actual_url
  integer:: domain   ! 変数の入出力領域の大きさ
                           ! (= 変数が依存する各次元サイズの積)
  character(*), parameter :: subname = "HistoryGetReal0Pointer"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
  ! 必要な情報を gtool 変数化
  call lookup_growable_url(file, varname, url, range, err)
  allocate(array)
  ! いよいよデータ取得
  call Open(var, url, err)
  call Inquire(var=var, size=domain)
  call Get(var, array_tmp, domain, err)
  call Close(var, err)
  array = array_tmp(1)
  call actual_iorange_dump(url, actual_url, err)
  if ( .not. present_and_true(quiet) ) then
    call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  end if
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:) :real, intent(out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Real 型固定配列用 1 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetReal1(file, varname, array, range, quiet, err)
  !
  ! Real 型固定配列用 1 次元配列用データ入力サブルーチン
  !
  !
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_not_empty
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
  character(*), intent(in):: varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  real, intent(out) :: array(:)
  logical, intent(out), optional:: err
  character(*), parameter :: subname = "HistoryGetReal1"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))

  if (present_and_not_empty(range)) then
    call HistoryGetRealEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
  else
    call HistoryGetRealEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
  endif
  call EndSub(subname)
end subroutine HistoryGetReal1
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:) :real, pointer
: (out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Real 型ポインタ配列用 1 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetReal1Pointer(file, varname, array, range, quiet, err)
  !
  ! Real 型ポインタ配列用 1 次元配列用データ入力サブルーチン
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Inquire, Close, Get
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_true
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  logical, intent(out), optional:: err
  real, pointer :: array(:) ! (out)
  type(GT_VARIABLE)                  :: var
  character(STRING)                  :: url, actual_url
  character(*), parameter :: subname = "HistoryGetReal1Pointer"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
  ! 必要な情報を gtool 変数化
  call lookup_growable_url(file, varname, url, range, err)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url, err)
  call Get(var, array, err)
  call Close(var, err)
  call actual_iorange_dump(url, actual_url, err)
  if ( .not. present_and_true(quiet) ) then
    call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  end if
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:) :real, intent(out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Real 型固定配列用 2 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetReal2(file, varname, array, range, quiet, err)
  !
  ! Real 型固定配列用 2 次元配列用データ入力サブルーチン
  !
  !
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_not_empty
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
  character(*), intent(in):: varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  real, intent(out) :: array(:,:)
  logical, intent(out), optional:: err
  character(*), parameter :: subname = "HistoryGetReal2"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))

  if (present_and_not_empty(range)) then
    call HistoryGetRealEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
  else
    call HistoryGetRealEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
  endif
  call EndSub(subname)
end subroutine HistoryGetReal2
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:) :real, pointer
: (out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Real 型ポインタ配列用 2 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetReal2Pointer(file, varname, array, range, quiet, err)
  !
  ! Real 型ポインタ配列用 2 次元配列用データ入力サブルーチン
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Inquire, Close, Get
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_true
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  logical, intent(out), optional:: err
  real, pointer :: array(:,:) ! (out)
  type(GT_VARIABLE)                  :: var
  character(STRING)                  :: url, actual_url
  character(*), parameter :: subname = "HistoryGetReal2Pointer"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
  ! 必要な情報を gtool 変数化
  call lookup_growable_url(file, varname, url, range, err)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url, err)
  call Get(var, array, err)
  call Close(var, err)
  call actual_iorange_dump(url, actual_url, err)
  if ( .not. present_and_true(quiet) ) then
    call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  end if
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:) :real, intent(out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Real 型固定配列用 3 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetReal3(file, varname, array, range, quiet, err)
  !
  ! Real 型固定配列用 3 次元配列用データ入力サブルーチン
  !
  !
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_not_empty
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
  character(*), intent(in):: varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  real, intent(out) :: array(:,:,:)
  logical, intent(out), optional:: err
  character(*), parameter :: subname = "HistoryGetReal3"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))

  if (present_and_not_empty(range)) then
    call HistoryGetRealEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
  else
    call HistoryGetRealEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
  endif
  call EndSub(subname)
end subroutine HistoryGetReal3
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:) :real, pointer
: (out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Real 型ポインタ配列用 3 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetReal3Pointer(file, varname, array, range, quiet, err)
  !
  ! Real 型ポインタ配列用 3 次元配列用データ入力サブルーチン
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Inquire, Close, Get
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_true
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  logical, intent(out), optional:: err
  real, pointer :: array(:,:,:) ! (out)
  type(GT_VARIABLE)                  :: var
  character(STRING)                  :: url, actual_url
  character(*), parameter :: subname = "HistoryGetReal3Pointer"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
  ! 必要な情報を gtool 変数化
  call lookup_growable_url(file, varname, url, range, err)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url, err)
  call Get(var, array, err)
  call Close(var, err)
  call actual_iorange_dump(url, actual_url, err)
  if ( .not. present_and_true(quiet) ) then
    call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  end if
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:) :real, intent(out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Real 型固定配列用 4 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetReal4(file, varname, array, range, quiet, err)
  !
  ! Real 型固定配列用 4 次元配列用データ入力サブルーチン
  !
  !
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_not_empty
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
  character(*), intent(in):: varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  real, intent(out) :: array(:,:,:,:)
  logical, intent(out), optional:: err
  character(*), parameter :: subname = "HistoryGetReal4"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))

  if (present_and_not_empty(range)) then
    call HistoryGetRealEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
  else
    call HistoryGetRealEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
  endif
  call EndSub(subname)
end subroutine HistoryGetReal4
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:) :real, pointer
: (out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Real 型ポインタ配列用 4 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetReal4Pointer(file, varname, array, range, quiet, err)
  !
  ! Real 型ポインタ配列用 4 次元配列用データ入力サブルーチン
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Inquire, Close, Get
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_true
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  logical, intent(out), optional:: err
  real, pointer :: array(:,:,:,:) ! (out)
  type(GT_VARIABLE)                  :: var
  character(STRING)                  :: url, actual_url
  character(*), parameter :: subname = "HistoryGetReal4Pointer"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
  ! 必要な情報を gtool 変数化
  call lookup_growable_url(file, varname, url, range, err)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url, err)
  call Get(var, array, err)
  call Close(var, err)
  call actual_iorange_dump(url, actual_url, err)
  if ( .not. present_and_true(quiet) ) then
    call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  end if
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:) :real, intent(out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Real 型固定配列用 5 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetReal5(file, varname, array, range, quiet, err)
  !
  ! Real 型固定配列用 5 次元配列用データ入力サブルーチン
  !
  !
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_not_empty
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
  character(*), intent(in):: varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  real, intent(out) :: array(:,:,:,:,:)
  logical, intent(out), optional:: err
  character(*), parameter :: subname = "HistoryGetReal5"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))

  if (present_and_not_empty(range)) then
    call HistoryGetRealEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
  else
    call HistoryGetRealEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
  endif
  call EndSub(subname)
end subroutine HistoryGetReal5
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:) :real, pointer
: (out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Real 型ポインタ配列用 5 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetReal5Pointer(file, varname, array, range, quiet, err)
  !
  ! Real 型ポインタ配列用 5 次元配列用データ入力サブルーチン
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Inquire, Close, Get
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_true
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  logical, intent(out), optional:: err
  real, pointer :: array(:,:,:,:,:) ! (out)
  type(GT_VARIABLE)                  :: var
  character(STRING)                  :: url, actual_url
  character(*), parameter :: subname = "HistoryGetReal5Pointer"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
  ! 必要な情報を gtool 変数化
  call lookup_growable_url(file, varname, url, range, err)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url, err)
  call Get(var, array, err)
  call Close(var, err)
  call actual_iorange_dump(url, actual_url, err)
  if ( .not. present_and_true(quiet) ) then
    call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  end if
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:) :real, intent(out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Real 型固定配列用 6 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetReal6(file, varname, array, range, quiet, err)
  !
  ! Real 型固定配列用 6 次元配列用データ入力サブルーチン
  !
  !
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_not_empty
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
  character(*), intent(in):: varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  real, intent(out) :: array(:,:,:,:,:,:)
  logical, intent(out), optional:: err
  character(*), parameter :: subname = "HistoryGetReal6"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))

  if (present_and_not_empty(range)) then
    call HistoryGetRealEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
  else
    call HistoryGetRealEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
  endif
  call EndSub(subname)
end subroutine HistoryGetReal6
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:) :real, pointer
: (out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Real 型ポインタ配列用 6 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetReal6Pointer(file, varname, array, range, quiet, err)
  !
  ! Real 型ポインタ配列用 6 次元配列用データ入力サブルーチン
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Inquire, Close, Get
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_true
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  logical, intent(out), optional:: err
  real, pointer :: array(:,:,:,:,:,:) ! (out)
  type(GT_VARIABLE)                  :: var
  character(STRING)                  :: url, actual_url
  character(*), parameter :: subname = "HistoryGetReal6Pointer"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
  ! 必要な情報を gtool 変数化
  call lookup_growable_url(file, varname, url, range, err)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url, err)
  call Get(var, array, err)
  call Close(var, err)
  call actual_iorange_dump(url, actual_url, err)
  if ( .not. present_and_true(quiet) ) then
    call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  end if
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:,:) :real, intent(out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Real 型固定配列用 7 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetReal7(file, varname, array, range, quiet, err)
  !
  ! Real 型固定配列用 7 次元配列用データ入力サブルーチン
  !
  !
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_not_empty
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
  character(*), intent(in):: varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  real, intent(out) :: array(:,:,:,:,:,:,:)
  logical, intent(out), optional:: err
  character(*), parameter :: subname = "HistoryGetReal7"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))

  if (present_and_not_empty(range)) then
    call HistoryGetRealEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
  else
    call HistoryGetRealEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
  endif
  call EndSub(subname)
end subroutine HistoryGetReal7
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:,:) :real, pointer
: (out)
range :character(*), intent(in), optional
quiet :logical, intent(in), optional
err :logical, intent(out), optional

Real 型ポインタ配列用 7 次元配列用データ入力サブルーチン

[Source]

subroutine HistoryGetReal7Pointer(file, varname, array, range, quiet, err)
  !
  ! Real 型ポインタ配列用 7 次元配列用データ入力サブルーチン
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Inquire, Close, Get
  use dc_string, only: toChar
  use dc_present,only: present_select, present_and_true
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  character(*), intent(in), optional:: range
  logical, intent(in), optional:: quiet
  logical, intent(out), optional:: err
  real, pointer :: array(:,:,:,:,:,:,:) ! (out)
  type(GT_VARIABLE)                  :: var
  character(STRING)                  :: url, actual_url
  character(*), parameter :: subname = "HistoryGetReal7Pointer"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
  ! 必要な情報を gtool 変数化
  call lookup_growable_url(file, varname, url, range, err)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url, err)
  call Get(var, array, err)
  call Close(var, err)
  call actual_iorange_dump(url, actual_url, err)
  if ( .not. present_and_true(quiet) ) then
    call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  end if
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
: ファイル名. Filename
varname :character(*), intent(in)
: 変数名. Variable name
array(*) :real, intent(out)
: データ. Data
range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻 (正確には netCDF の無制限次元) の値として扱われます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.

This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

[Source]

subroutine HistoryGetRealEx(file, varname, array, range, quiet, err)
  !
  ! このサブルーチンは gt4_history の内部で呼び出される
  ! ことを想定されています. gt4_history モジュールの外部からは
  ! 呼び出さないで下さい. 
  !
  ! This subroutine is expected to be refereed in gt4_history internally.
  ! Do not refer from the outside of gt4_history.
  !
  ! netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定
  ! していますが, 大抵の netCDF データの入力は可能であると期待されます.
  !
  ! Input netCDF data. NetCDF data with gtool4 conventions is assumed,
  ! but most netCDF data is expected to be input.
  !
  ! *file* にファイル名を, *varname* に変数名を与えます.
  ! *array* にはファイルから入力されたデータが返ります.
  ! ポインタの配列へデータを入力を行う場合は,
  ! HistoryGetPointer を利用してください.
  !
  ! Give filename to *file*, variable name to *varname*.
  ! Input data is returned to *array*.
  ! If you want to use pointer array, use HistoryGetPointer .
  !
  ! デフォルトでは, ファイル内の最新データ, すなわちデータを
  ! 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを
  ! 入力したい場合には, 下記の *range* オプションを利用してください.
  !
  ! By default, recent data, that is to say, data clipped with 
  ! maximum time is input. In order to input data clipped with
  ! other time, use *range* option as follows.
  !
  ! *range* には gtool4 のコンマ記法
  ! ({gtool4 netCDF 規約}[link:../xref.htm#label-6] の「5.4 コンマ記法」参照)
  ! を与えることで, 入力データの一部を切り出すことが可能です.
  !
  ! Give gtool4 comma-graphy
  ! (See "5.4 gtool4 comma-graphy" in {gtool4 netCDF Convention}[link:../xref.htm#label-6]) 
  ! to *range*, then input data is clipped.
  !
  ! デフォルトでは, データの入力時にどのファイルのどの変数が
  ! どの次元で切り出されて入力されたのかを表示します. 
  ! メッセージ出力が不要な場合は *quiet* に .true. を与えてください.
  !
  ! By default, when data is input, filename and variable name and
  ! clipping information is printed. 
  ! The message is suppressed when .true. is given to *quiet*
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Inquire, Close, Get
  use dc_string, only: toChar, Split, JoinChar, StoA
  use dc_url, only: GT_ATMARK, GT_COMMA, GT_EQUAL, UrlSplit, UrlMerge
  use dc_present, only: present_select, present_and_not_empty, present_and_true
  use regex,      only: match
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  use dc_error, only: StoreError, DC_NOERR, GT_ENOTURL
  character(*), intent(in):: file     ! ファイル名. Filename
  character(*), intent(in):: varname  ! 変数名. Variable name
  character(*), intent(in), optional:: range
                              ! 切り出し用オプション.
                              ! gtool4 変数のコンマ記法で記述
                              ! {(例: time=100.0,x=10:20,y=^1:^5)}
                              !
                              ! 詳しくは
                              ! {gtool4 netCDF 規約}[link:../xref.htm#label-6]
                              ! の「5.4 コンマ記法」を参照して
                              ! ください.
                              ! 
                              ! 数値のみが与えられる場合
                              ! (※ 引数の型は常に文字型です.
                              ! ここでの「数値」は
                              ! "<b><tt>10.0</tt></b>"
                              ! のような文字列
                              ! を指します), この値は時刻
                              ! (正確には netCDF の無制限次元)
                              ! の値として扱われます.
                              ! 
                              ! Option for clipping.
                              ! Give gtool4 comma-graphy 
                              ! {(ex. time=100.0,x=10:20,y=^1:^5)}
                              ! 
                              ! For details, see "5.4 gtool4
                              ! comma-graphy" in 
                              ! {gtool4 netCDF Convention}[link:../xref.htm#label-6]
                              ! 
                              ! When pure numerical value is given 
                              ! (Type of argument is character.
                              ! In this case, the "pure numerical 
                              ! value" means a character like 
                              ! "<b><tt>10.0</tt></b>")
                              ! the value is treated as time
                              ! (to be exact, unlimited dimension).
                              ! 
  logical, intent(in), optional:: quiet
  real, intent(out):: array(*) ! データ. Data

  type(GT_VARIABLE)             :: var
  character(STRING)             :: url, actual_url
  integer:: domain   ! 変数の入出力領域の大きさ
                     ! (= 変数が依存する各次元サイズの積)
  logical, intent(out), optional:: err
                              ! 例外処理用フラグ.
                              ! デフォルトでは, この手続き内でエラーが
                              ! 生じた場合, プログラムは強制終了します.
                              ! 引数 *err* が与えられる場合,
                              ! プログラムは強制終了せず, 代わりに
                              ! *err* に .true. が代入されます.
                              !
                              ! Exception handling flag. 
                              ! By default, when error occur in 
                              ! this procedure, the program aborts. 
                              ! If this *err* argument is given, 
                              ! .true. is substituted to *err* and 
                              ! the program does not abort. 

  integer:: stat
  character(STRING):: cause_c
  character(*), parameter :: subname = "HistoryGetRealEx"

continue
  call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
  cause_c = ''
  stat = DC_NOERR

  call lookup_growable_url(file, varname, url, range, err = err)
  if ( present_and_true(err) ) then
    stat = GT_ENOTURL
    cause_c = url
    goto 999
  end if

  call Open(var, url, err = err)
  if ( present_and_true(err) ) then
    stat = GT_ENOTURL
    cause_c = url
    goto 999
  end if

  call Inquire(var = var, size = domain)
  call Get(var, array, domain)
  call Close(var)
  call actual_iorange_dump(url, actual_url, err = err)
  if ( .not. present_and_true(quiet) ) then
    call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  end if
999 continue
  call StoreError(stat, subname, err, cause_c)
  call EndSub(subname)
end subroutine HistoryGetRealEx
HistoryGetRealEx( file, varname, array, [range], [quiet], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名. Filename
varname :character(*), intent(in)
: 変数名. Variable name
array(*) :real, intent(out)
: データ. Data
range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻 (正確には netCDF の無制限次元) の値として扱われます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.

This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range], [quiet], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名. Filename
varname :character(*), intent(in)
: 変数名. Variable name
array(*) :real, intent(out)
: データ. Data
range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻 (正確には netCDF の無制限次元) の値として扱われます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.

This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range], [quiet], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名. Filename
varname :character(*), intent(in)
: 変数名. Variable name
array(*) :real, intent(out)
: データ. Data
range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻 (正確には netCDF の無制限次元) の値として扱われます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.

This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range], [quiet], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名. Filename
varname :character(*), intent(in)
: 変数名. Variable name
array(*) :real, intent(out)
: データ. Data
range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻 (正確には netCDF の無制限次元) の値として扱われます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.

This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range], [quiet], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名. Filename
varname :character(*), intent(in)
: 変数名. Variable name
array(*) :real, intent(out)
: データ. Data
range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻 (正確には netCDF の無制限次元) の値として扱われます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.

This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range], [quiet], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名. Filename
varname :character(*), intent(in)
: 変数名. Variable name
array(*) :real, intent(out)
: データ. Data
range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻 (正確には netCDF の無制限次元) の値として扱われます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.

This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range], [quiet], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名. Filename
varname :character(*), intent(in)
: 変数名. Variable name
array(*) :real, intent(out)
: データ. Data
range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻 (正確には netCDF の無制限次元) の値として扱われます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.

This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range], [quiet], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名. Filename
varname :character(*), intent(in)
: 変数名. Variable name
array(*) :real, intent(out)
: データ. Data
range :character(*), intent(in), optional
: 切り出し用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=^1:^5)}

詳しくは gtool4 netCDF 規約 の「5.4 コンマ記法」を参照して ください.

数値のみが与えられる場合 (※ 引数の型は常に文字型です. ここでの「数値」は "10.0" のような文字列 を指します), この値は時刻 (正確には netCDF の無制限次元) の値として扱われます.

Option for clipping. Give gtool4 comma-graphy {(ex. time=100.0,x=10:20,y=^1:^5)}

For details, see "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention

When pure numerical value is given (Type of argument is character. In this case, the "pure numerical value" means a character like "10.0") the value is treated as time (to be exact, unlimited dimension).

quiet :logical, intent(in), optional
err :logical, intent(out), optional
: 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Exception handling flag. By default, when error occur in this procedure, the program aborts. If this err argument is given, .true. is substituted to err and the program does not abort.

このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.

This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.

netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.

Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.

file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.

Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .

デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.

By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.

Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.

デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.

By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet

Original external subprogram is historyget.f90#HistoryGetRealEx

Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

[Source]

subroutine actual_iorange_dump(url, actual_url, err)
  !
  ! 変数 URL *url* に対応するファイル, 変数からデータを取り出す際, 
  ! 入出力範囲指定によって切り出される値の本当の位置を
  ! 標準出力に出力する. *actual_url* が与えられる場合には
  ! その引数に値を返し, 標準出力には出力しない.
  !
  ! HistoryGet, HistoryGetPointer が下層で呼び出している
  ! gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない
  ! 場合, 最も近い値を自動的に選択して切り出す. しかしその結果,
  ! 「本当はどこのデータを入力したか」がわからない場合があるため,
  ! このサブルーチンによって正確な位置をユーザに知らせる.
  !
  use dc_types, only: DP, STRING
  use dc_string, only: Split, JoinChar, toChar
  use dc_url, only: UrlSearchIORange, UrlMerge, UrlSplit
  use dc_url, only: GT_COMMA, GT_EQUAL, GT_COLON
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  use regex,      only: match
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Close, Get
  use dc_error,  only: StoreError, DC_NOERR

  character(*), intent(in) :: url            ! 変数 URL
  character(*), intent(out), optional :: actual_url
                                             ! 正確な入出力範囲指定に修正
                                             ! された変数 URL
  logical, intent(out), optional :: err      ! エラーのフラグ

  character(STRING), pointer :: iorange_each(:) =>null()
  character(STRING), pointer :: range_values(:) =>null()
  character(STRING), pointer :: new_iorange_each(:) =>null()
  character(STRING), pointer :: new_range_values(:) =>null()
  character(STRING) :: new_url, new_iorange, url_tmp, dimname
  character(STRING) :: file, varname, range, cause_c
  type(GT_VARIABLE) :: var
  real :: iorange_value(1)
  integer :: i, j, regex_len, regex_stat, stat

  character(*), parameter :: subname = "actual_iorange_dump"

continue
  call BeginSub(subname, '<url=%c>', c1=trim(url))

  new_iorange = ''
  cause_c = ''
  stat = DC_NOERR
  call UrlSplit(url, file, varname, iorange=range)
  call Split(range, iorange_each, GT_COMMA)
  allocate(new_iorange_each(size(iorange_each)))
  do i = 1, size(iorange_each)
    call match(GT_EQUAL, iorange_each(i), regex_len, regex_stat)
    if (regex_stat < 0 .or. regex_len < 2) then
      new_iorange_each(i) = trim(iorange_each(i))
    else
      dimname = iorange_each(i)(:regex_len-1)
      call Split(iorange_each(i)(regex_len+1:), range_values, GT_COLON)
      allocate(new_range_values(size(range_values)))
      do j = 1, size(range_values)
        url_tmp = UrlMerge(file, dimname, '', iorange=trim(dimname) // GT_EQUAL // trim(range_values(j)))
        call Open(var, url_tmp)
        call Get(var, iorange_value, 1)
        call Close(var)
        new_range_values(j) = toChar(iorange_value)
      end do
      new_iorange_each(i) = trim(dimname) // GT_EQUAL // JoinChar(new_range_values, GT_COLON)

      deallocate(new_range_values)
      deallocate(range_values)

    end if
  end do

  new_iorange = JoinChar(new_iorange_each, GT_COMMA)
  deallocate(new_iorange_each)
  deallocate(iorange_each)

  new_url = UrlMerge(file, varname, '', new_iorange)
  if (present(actual_url)) then
    actual_url = new_url
  else
    call MessageNotify('M', subname, 'Input %c', c1=trim(new_url))
  end if

999 continue
  call StoreError(stat, subname, err, cause_c)
  call EndSub(subname, '<actual_url=%c>', c1=trim(new_url))
end subroutine actual_iorange_dump
actual_iorange_dump( url, [actual_url], [err] )
Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

Original external subprogram is historyget.f90#actual_iorange_dump

actual_iorange_dump( url, [actual_url], [err] )
Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

Original external subprogram is historyget.f90#actual_iorange_dump

actual_iorange_dump( url, [actual_url], [err] )
Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

Original external subprogram is historyget.f90#actual_iorange_dump

actual_iorange_dump( url, [actual_url], [err] )
Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

Original external subprogram is historyget.f90#actual_iorange_dump

actual_iorange_dump( url, [actual_url], [err] )
Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

Original external subprogram is historyget.f90#actual_iorange_dump

actual_iorange_dump( url, [actual_url], [err] )
Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

Original external subprogram is historyget.f90#actual_iorange_dump

actual_iorange_dump( url, [actual_url], [err] )
Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

Original external subprogram is historyget.f90#actual_iorange_dump

actual_iorange_dump( url, [actual_url], [err] )
Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

Original external subprogram is historyget.f90#actual_iorange_dump

actual_iorange_dump( url, [actual_url], [err] )
Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

Original external subprogram is historyget.f90#actual_iorange_dump

actual_iorange_dump( url, [actual_url], [err] )
Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

Original external subprogram is historyget.f90#actual_iorange_dump

actual_iorange_dump( url, [actual_url], [err] )
Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

Original external subprogram is historyget.f90#actual_iorange_dump

actual_iorange_dump( url, [actual_url], [err] )
Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

Original external subprogram is historyget.f90#actual_iorange_dump

actual_iorange_dump( url, [actual_url], [err] )
Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

Original external subprogram is historyget.f90#actual_iorange_dump

actual_iorange_dump( url, [actual_url], [err] )
Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

Original external subprogram is historyget.f90#actual_iorange_dump

actual_iorange_dump( url, [actual_url], [err] )
Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

Original external subprogram is historyget.f90#actual_iorange_dump

actual_iorange_dump( url, [actual_url], [err] )
Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

Original external subprogram is historyget.f90#actual_iorange_dump

actual_iorange_dump( url, [actual_url], [err] )
Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

Original external subprogram is historyget.f90#actual_iorange_dump

actual_iorange_dump( url, [actual_url], [err] )
Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

Original external subprogram is historyget.f90#actual_iorange_dump

actual_iorange_dump( url, [actual_url], [err] )
Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

Original external subprogram is historyget.f90#actual_iorange_dump

actual_iorange_dump( url, [actual_url], [err] )
Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

Original external subprogram is historyget.f90#actual_iorange_dump

actual_iorange_dump( url, [actual_url], [err] )
Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

Original external subprogram is historyget.f90#actual_iorange_dump

actual_iorange_dump( url, [actual_url], [err] )
Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

Original external subprogram is historyget.f90#actual_iorange_dump

actual_iorange_dump( url, [actual_url], [err] )
Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

Original external subprogram is historyget.f90#actual_iorange_dump

actual_iorange_dump( url, [actual_url], [err] )
Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

Original external subprogram is historyget.f90#actual_iorange_dump

actual_iorange_dump( url, [actual_url], [err] )
Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

Original external subprogram is historyget.f90#actual_iorange_dump

actual_iorange_dump( url, [actual_url], [err] )
Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

Original external subprogram is historyget.f90#actual_iorange_dump

actual_iorange_dump( url, [actual_url], [err] )
Subroutine :
url :character(*), intent(in)
: 変数 URL
actual_url :character(*), intent(out), optional
: 正確な入出力範囲指定に修正 された変数 URL
err :logical, intent(out), optional
: エラーのフラグ

変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.

HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.

Original external subprogram is historyget.f90#actual_iorange_dump

Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

[Source]

subroutine lookup_growable_url(file, varname, url, range, err)
  !
  ! file の変数 varname が依存する次元の内, 時間の次元
  ! (growable == .TRUE. のもの, つまり無制限次元) の変数名,
  ! およびその最後の値を取得し, gtool変数化
  ! ("file@varname,time=10.5" みたいな) して返す.
  !
  ! * もしも varname が次元変数である場合は「time=」を付けずに返す.
  ! * range を与えた場合, 以下のチェックを行った後, それを gtool4
  !   変数の iorange 部分に付加する.
  !   * 数値のみが与えられる場合, 時間次元の値として認識され,
  !     その値を用いた url が返る.
  !   * range 内に時間次元が設定されていない場合は, 自動的に
  !     時間次元に関する iorange ("time=0.5") が指定される.
  !
  use gtdata_types, only: GT_VARIABLE
  use gtdata_generic, only: Open, Close, Inquire
  use dc_present,only: present_select, present_and_not_empty, present_and_true
  use dc_string, only: toChar
  use dc_error,  only: StoreError, DC_NOERR, GT_ENOUNLIMITDIM, NF_EINVAL, GT_ENOTVAR
  use dc_url, only: GT_CIRCUMFLEX, GT_COMMA, GT_EQUAL
  use dc_url, only: UrlSplit, UrlMerge, UrlSearchIORange
  use regex, only: match
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  
  character(*), intent(in) :: file           ! ファイル名
  character(*), intent(in) :: varname        ! 変数名
  character(*), intent(out) :: url           ! gtool変数化した文字列
  character(*), intent(in), optional:: range ! 範囲限定や一点切り出し指定
  logical, intent(out), optional :: err      ! エラーのフラグ
  !
  type(GT_VARIABLE)                       :: var
  type(GT_VARIABLE), allocatable          :: dimvar(:)
  character(STRING) :: time_url, time_name, time_iorange
  character(STRING) :: iorange, cause_c
  logical:: growable, nounlimited
  integer:: allcount, timecount, nd, i, stat
  integer:: regex_stat, regex_len
  character(*), parameter :: subname = "lookup_growable_url"
continue

  call BeginSub(subname, '<file=%c varname=%c range=%c>', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))

  stat = DC_NOERR
  cause_c = ""
  url = ""

  ! 引数の正当性をチェック
  if (.not. present_and_not_empty(file)) then
    stat = NF_EINVAL
    cause_c = '"file" is not specified'
    goto 999
  elseif (.not. present_and_not_empty(varname)) then
    stat = NF_EINVAL
    cause_c = '"varname" is not specified'
    goto 999
  end if

  ! 時刻次元の変数名, およびその最終時刻の
  ! 探査のために file@varname を open (まだデータを取得しない)
  call Open(var, UrlMerge(file, varname), err = err)
  if ( present_and_true(err) ) then
    stat = GT_ENOTVAR
    goto 999
  end if

  ! 次元の数を取得
  call Inquire(var=var, alldims=nd)
  call DbgMessage('@ alldims = %d', i=(/nd/))
  if (allocated(dimvar)) then
    deallocate(dimvar)
  end if
  allocate(dimvar(nd))
  !
  ! 変数が無制限変数を持たない場合には, それに関する iorange を
  ! 付けないで返すよう, フラグを立てる.
  ! 無制限次元があれば, .false. にする.
  nounlimited = .true.
  !
  ! 各次元毎に情報を取得し, growable == .TRUE. のもの (つまりは時間)
  ! の変数名 (time_name) を取得する.
  call DbgMessage('[%c: growable-dim-search]', c1=trim(subname))
  time_name = ''
  do, i = 1, nd
    call Open(var = dimvar(i), source_var = var, dimord = i, count_compact = .TRUE., err = err)
    ! まずは変数入り gtool4 変数を time_url に取得
    call Inquire(var = dimvar(i), growable = growable, allcount = allcount, url = time_url)
    call DbgMessage('  [dim=<%d>: growable=<%y>: url=<%c>]', i = (/i/), L = (/growable/), c1 = trim(time_url))
    ! 総数 = 最後の数, なので...
    if (growable) then
      ! 変数部分だけ分離
      call UrlSplit(fullname = time_url, var = time_name)
      timecount = allcount
      nounlimited = .false.
    endif
    call Close(dimvar(i))
  end do
  ! 探査を終了したので閉じる
  call Close(var)
  if (stat /= DC_NOERR) then
    goto 999
  end if

  ! 時刻部分の iorange を作成しておく.
  ! 格子点情報で取得されているので, 頭に "^" を付加する.
  if (nounlimited) then
    time_iorange = ''
  else
    time_iorange = trim(time_name) // GT_EQUAL // GT_CIRCUMFLEX // adjustl(toChar(timecount))
  end if

  ! iorange を指定する.
  ! 時刻に関しては, range が存在しない場合には
  ! 自動取得した最後の時刻を付加する.
  ! range が存在する場合, "=" が含まれなければ単に時刻の
  ! 値として取得.
  ! "=" が含まれる場合, iorange としてそのまま iorange になる.
  ! ただし, その iorange に時刻次元が含まれない場合,
  ! やはり先ほど自動取得した値が付加される.
  ! 当然, 時刻次元が存在しない場合には付加しない.
  if (.not. present_and_not_empty(range)) then
    iorange = time_iorange
  else
    ! range がコンマ記法になっているか, "=" があるかどうかで調べる
    call match(GT_EQUAL, range, regex_len, regex_stat)
    ! コンマ記法になってない場合は無制限次元の値と判定
    if (regex_stat < 0) then
      iorange = trim(time_name) // GT_EQUAL // adjustl(range)
    else
      ! コンマ記法になっている場合, まずその中に無制限次元が
      ! 存在しているか調べ, 存在してない場合のみ time_iorange を
      ! 付加する.
      if (trim(UrlSearchIORange(range, time_name)) /= "") then
        iorange = range
      else
        if (trim(time_iorange) /= "") then
          iorange = range // GT_COMMA // time_iorange
        else
          iorange = range
        end if
      end if
    end if
  endif
  call DbgMessage('@ iorange=%c', c1=trim(iorange))

  ! file, varname, iorange を gtool変数化
  ! (「file@varname,time=10.5」のように)
  url = UrlMerge(file, varname, '', iorange)

999 continue
  call StoreError(stat, subname, err, cause_c)
  call EndSub(subname, '<url=%c>', c1=trim(url))
end subroutine lookup_growable_url
lookup_growable_url( file, varname, url, [range], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

Original external subprogram is historyget.f90#lookup_growable_url

lookup_growable_url( file, varname, url, [range], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

Original external subprogram is historyget.f90#lookup_growable_url

lookup_growable_url( file, varname, url, [range], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

Original external subprogram is historyget.f90#lookup_growable_url

lookup_growable_url( file, varname, url, [range], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

Original external subprogram is historyget.f90#lookup_growable_url

lookup_growable_url( file, varname, url, [range], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

Original external subprogram is historyget.f90#lookup_growable_url

lookup_growable_url( file, varname, url, [range], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

Original external subprogram is historyget.f90#lookup_growable_url

lookup_growable_url( file, varname, url, [range], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

Original external subprogram is historyget.f90#lookup_growable_url

lookup_growable_url( file, varname, url, [range], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

Original external subprogram is historyget.f90#lookup_growable_url

lookup_growable_url( file, varname, url, [range], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

Original external subprogram is historyget.f90#lookup_growable_url

lookup_growable_url( file, varname, url, [range], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

Original external subprogram is historyget.f90#lookup_growable_url

lookup_growable_url( file, varname, url, [range], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

Original external subprogram is historyget.f90#lookup_growable_url

lookup_growable_url( file, varname, url, [range], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

Original external subprogram is historyget.f90#lookup_growable_url

lookup_growable_url( file, varname, url, [range], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

Original external subprogram is historyget.f90#lookup_growable_url

lookup_growable_url( file, varname, url, [range], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

Original external subprogram is historyget.f90#lookup_growable_url

lookup_growable_url( file, varname, url, [range], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

Original external subprogram is historyget.f90#lookup_growable_url

lookup_growable_url( file, varname, url, [range], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

Original external subprogram is historyget.f90#lookup_growable_url

lookup_growable_url( file, varname, url, [range], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

Original external subprogram is historyget.f90#lookup_growable_url

lookup_growable_url( file, varname, url, [range], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

Original external subprogram is historyget.f90#lookup_growable_url

lookup_growable_url( file, varname, url, [range], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

Original external subprogram is historyget.f90#lookup_growable_url

lookup_growable_url( file, varname, url, [range], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

Original external subprogram is historyget.f90#lookup_growable_url

lookup_growable_url( file, varname, url, [range], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

Original external subprogram is historyget.f90#lookup_growable_url

lookup_growable_url( file, varname, url, [range], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

Original external subprogram is historyget.f90#lookup_growable_url

lookup_growable_url( file, varname, url, [range], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

Original external subprogram is historyget.f90#lookup_growable_url

lookup_growable_url( file, varname, url, [range], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

Original external subprogram is historyget.f90#lookup_growable_url

lookup_growable_url( file, varname, url, [range], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

Original external subprogram is historyget.f90#lookup_growable_url

lookup_growable_url( file, varname, url, [range], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

Original external subprogram is historyget.f90#lookup_growable_url

lookup_growable_url( file, varname, url, [range], [err] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
url :character(*), intent(out)
: gtool変数化した文字列
range :character(*), intent(in), optional
: 範囲限定や一点切り出し指定
err :logical, intent(out), optional
: エラーのフラグ

file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.

  • もしも varname が次元変数である場合は「time=」を付けずに返す.
  • range を与えた場合, 以下のチェックを行った後, それを gtool4 変数の iorange 部分に付加する.
    • 数値のみが与えられる場合, 時間次元の値として認識され, その値を用いた url が返る.
    • range 内に時間次元が設定されていない場合は, 自動的に 時間次元に関する iorange ("time=0.5") が指定される.

Original external subprogram is historyget.f90#lookup_growable_url

[Validate]