historyget.f90

Path: historyget.f90
Last Update: Fri Jun 16 10:26:40 JST 2006

Input gtool4 netCDF data

Authors:Yasuhiro MORIKAWA
Version:$Id: historyget.f90,v 1.2 2006/06/16 01:26:40 morikawa Exp $
Tag Name:$Name: gt4f90io-20060908 $
Copyright:Copyright (C) GFD Dennou Club, 2006. All rights reserved.
License:See COPYRIGHT

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

Methods

HistoryGetDouble0   HistoryGetDouble0Pointer   HistoryGetDouble0PointerTimeD   HistoryGetDouble0PointerTimeR   HistoryGetDouble0TimeD   HistoryGetDouble0TimeR   HistoryGetDouble1   HistoryGetDouble1Pointer   HistoryGetDouble1PointerTimeD   HistoryGetDouble1PointerTimeR   HistoryGetDouble1TimeD   HistoryGetDouble1TimeR   HistoryGetDouble2   HistoryGetDouble2Pointer   HistoryGetDouble2PointerTimeD   HistoryGetDouble2PointerTimeR   HistoryGetDouble2TimeD   HistoryGetDouble2TimeR   HistoryGetDouble3   HistoryGetDouble3Pointer   HistoryGetDouble3PointerTimeD   HistoryGetDouble3PointerTimeR   HistoryGetDouble3TimeD   HistoryGetDouble3TimeR   HistoryGetDouble4   HistoryGetDouble4Pointer   HistoryGetDouble4PointerTimeD   HistoryGetDouble4PointerTimeR   HistoryGetDouble4TimeD   HistoryGetDouble4TimeR   HistoryGetDouble5   HistoryGetDouble5Pointer   HistoryGetDouble5PointerTimeD   HistoryGetDouble5PointerTimeR   HistoryGetDouble5TimeD   HistoryGetDouble5TimeR   HistoryGetDouble6   HistoryGetDouble6Pointer   HistoryGetDouble6PointerTimeD   HistoryGetDouble6PointerTimeR   HistoryGetDouble6TimeD   HistoryGetDouble6TimeR   HistoryGetDouble7   HistoryGetDouble7Pointer   HistoryGetDouble7PointerTimeD   HistoryGetDouble7PointerTimeR   HistoryGetDouble7TimeD   HistoryGetDouble7TimeR   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetDoubleEx   HistoryGetReal0   HistoryGetReal0Pointer   HistoryGetReal0PointerTimeD   HistoryGetReal0PointerTimeR   HistoryGetReal0TimeD   HistoryGetReal0TimeR   HistoryGetReal1   HistoryGetReal1Pointer   HistoryGetReal1PointerTimeD   HistoryGetReal1PointerTimeR   HistoryGetReal1TimeD   HistoryGetReal1TimeR   HistoryGetReal2   HistoryGetReal2Pointer   HistoryGetReal2PointerTimeD   HistoryGetReal2PointerTimeR   HistoryGetReal2TimeD   HistoryGetReal2TimeR   HistoryGetReal3   HistoryGetReal3Pointer   HistoryGetReal3PointerTimeD   HistoryGetReal3PointerTimeR   HistoryGetReal3TimeD   HistoryGetReal3TimeR   HistoryGetReal4   HistoryGetReal4Pointer   HistoryGetReal4PointerTimeD   HistoryGetReal4PointerTimeR   HistoryGetReal4TimeD   HistoryGetReal4TimeR   HistoryGetReal5   HistoryGetReal5Pointer   HistoryGetReal5PointerTimeD   HistoryGetReal5PointerTimeR   HistoryGetReal5TimeD   HistoryGetReal5TimeR   HistoryGetReal6   HistoryGetReal6Pointer   HistoryGetReal6PointerTimeD   HistoryGetReal6PointerTimeR   HistoryGetReal6TimeD   HistoryGetReal6TimeR   HistoryGetReal7   HistoryGetReal7Pointer   HistoryGetReal7PointerTimeD   HistoryGetReal7PointerTimeR   HistoryGetReal7TimeD   HistoryGetReal7TimeR   HistoryGetRealEx   HistoryGetRealEx   HistoryGetRealEx   HistoryGetRealEx   HistoryGetRealEx   HistoryGetRealEx   HistoryGetRealEx   HistoryGetRealEx   HistoryGetRealEx   HistoryGetRealEx   HistoryGetRealEx   HistoryGetRealEx   HistoryGetRealEx   HistoryGetRealEx   HistoryGetRealEx   HistoryGetRealEx   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   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 gt4_history dc_error

Public Instance methods

Subroutine :
file :character(*), intent(in)
: 取得するデータが格納された netCDF ファイル名
varname :character(*), intent(in)
: 取得しようとするデータの変数名

ここで指定する変数名は、 file で指定されるファイル内に含 まれていなければなりません。

array :real(DP), intent(out)
: 取得するデータを格納する配列

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

range :character(*), intent(in), optional
: gtool4 のコンマ記法による データの切り出し指定

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

数値のみが与えられる場合 (※ 引数の型は常に文字型です。 すなわち "10.0" のような文字列が与えられた場合 を指します)、それは時刻の値 として受け取られます。 この場合、"^" を 先頭に付加することで、 時間のステップ数で指定する ことも可能です。 (例えば "^10"ならば 10 ステップ目のデータを取得します)。

データ入力 (固定長配列用)

既存の gtool4 データ内の変数のデータを取得します。

ポインタの配列へデータを入力を行う場合は、 HistoryGetPointer を利用してください。

デフォルトでは、gtool4 データ内の変数データのうち、 最も新しい時刻のデータを入力します。その他の時刻データを 入力したい場合には、下記の range オプションを利用してください。

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 参照) を与えることで, 入力先のデータの一部を切り出して入力を行うことが可能です。

HistoryGet は複数のサブルーチンの総称名です。array には 0 〜 7 次元のデータを与えることが可能です。 下記のサブルーチンを参照ください。

[Source]

subroutine HistoryGetDouble0(file, varname, array, range)
  !
                      !
  !== データ入力 (固定長配列用)
  !
  ! 既存の gtool4 データ内の変数のデータを取得します。
  !
  ! ポインタの配列へデータを入力を行う場合は、
  ! HistoryGetPointer を利用してください。
  !
  ! デフォルトでは、gtool4 データ内の変数データのうち、
  ! 最も新しい時刻のデータを入力します。その他の時刻データを
  ! 入力したい場合には、下記の *range* オプションを利用してください。
  !
  ! *range* には gtool4 のコンマ記法
  ! ({gtool4 netCDF 規約}[link:../xref.htm#label-6] 参照) 
  ! を与えることで,
  ! 入力先のデータの一部を切り出して入力を行うことが可能です。
  !
  ! *HistoryGet* は複数のサブルーチンの総称名です。*array* には
  ! 0 〜 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
                                                          ! 取得するデータが格納された
                                      ! netCDF ファイル名
                                      ! 
                    
  character(*), intent(in):: varname
                                                          ! 取得しようとするデータの変数名
                                      !
                                      ! ここで指定する変数名は、 *file*
                                      ! で指定されるファイル内に含
                                      ! まれていなければなりません。
                                      ! 
                    
  character(*), intent(in), optional:: range
                                                          ! gtool4 のコンマ記法による
                                      ! データの切り出し指定
                                      !
                                      ! 詳しくは
                                      ! {gtool4 netCDF 規約}[link:../xref.htm#label-6]
                                      ! の「5.4 コンマ記法」を参照して
                                      ! ください。
                                      ! 
                                      ! 数値のみが与えられる場合
                                      ! (※ 引数の型は常に文字型です。
                                      ! すなわち
                                      ! "<b><tt>10.0</tt></b>"
                                      ! のような文字列が与えられた場合
                                      ! を指します)、それは時刻の値
                                      ! として受け取られます。
                                      ! この場合、"<b><tt>^</tt></b>" を
                                      ! 先頭に付加することで、
                                      ! 時間のステップ数で指定する
                                      ! ことも可能です。 (例えば
                                      ! "<b><tt>^10</tt></b>"ならば
                                      ! 10 ステップ目のデータを取得します)。
                                      ! 
                    
  real(DP), intent(out) :: array
                                                          ! 取得するデータを格納する配列
                                      !
                                      ! 型は単精度実数型か倍精度実数型
                                      ! かのどちらかです。
                                      ! 取得するデータの空間次元の
                                      ! サイズと配列のサイズとが一
                                      ! 致している必要があります。
                                      ! *varname* のデータ型と *array*
                                      ! の型が異なる場合は、自動的
                                      ! に *array* の型に変換されます。
                                      ! 
                    
  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)
  else
    call HistoryGetDoubleEx(file=file, varname=varname, array=array_tmp)
  end if
  array = array_tmp(1)
  call EndSub(subname)
end subroutine HistoryGetDouble0
Subroutine :
file :character(*), intent(in)
: 取得するデータが格納された netCDF ファイル名
varname :character(*), intent(in)
: 取得しようとするデータの変数名

ここで指定する変数名は、 file で指定されるファイル内に含 まれていなければなりません。

array :real(DP), pointer
: (out) 取得するデータを格納する ポインタの配列

必ず空状態で与えてください。 すなわち初期値 =>null() を 設定するか nullify を用い ください。

型は単精度実数型か倍精度実数型 かのどちらかです。 取得するデータの空間次元の サイズに合わせ、配列のサイズは 自動的に設定されます。 varname のデータ型と array の型が異なる場合は、自動的 に array の型に変換されます。

range :character(*), intent(in), optional
: gtool4 のコンマ記法による データの切り出し指定

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

数値のみが与えられる場合 (※ 引数の型は常に文字型です。 すなわち "10.0" のような文字列が与えられた場合 を指します)、それは時刻の値 として受け取られます。 この場合、"^" を 先頭に付加することで、 時間のステップ数で指定する ことも可能です。 (例えば "^10"ならば

 10 ステップ目のデータを取得します)。

データ入力 (ポインタ配列用)

既存の gtool4 データ内の変数のデータをポインタ配列へ取得します。

固定長の配列へデータを入力を行う場合は、 HistoryGet を利用してください。

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

デフォルトでは、gtool4 データ内の変数データのうち、 最も新しい時刻のデータを入力します。その他の時刻データを 入力したい場合には、下記の range オプションを利用してください。

range には gtool4 のコンマ記法 (gtool4 netCDF 規約 参照) を与えることで, 入力先のデータの一部を切り出して入力を行うことが可能です。

HistoryGetPointer は複数のサブルーチンの総称名です。array には 0 〜 7 次元のデータを与えることが可能です。 下記のサブルーチンを参照ください。

[Source]

subroutine HistoryGetDouble0Pointer(file, varname, array, range)
  !
                      !
  ! == データ入力 (ポインタ配列用)
  !
  ! 既存の gtool4 データ内の変数のデータをポインタ配列へ取得します。
  !
  ! 固定長の配列へデータを入力を行う場合は、
  ! HistoryGet を利用してください。
  !
  ! *array* は必ず空状態で与えてください。
  ! すなわち初期値 =>null() を設定するか nullify を用いてください。
  ! 既に割り付けられている場合、もしくは不定状態の場合には
  ! エラーを返します。
  !
  ! デフォルトでは、gtool4 データ内の変数データのうち、
  ! 最も新しい時刻のデータを入力します。その他の時刻データを
  ! 入力したい場合には、下記の *range* オプションを利用してください。
  !
  ! *range* には gtool4 のコンマ記法
  ! ({gtool4 netCDF 規約}[link:../xref.htm#label-6] 参照) 
  ! を与えることで,
  ! 入力先のデータの一部を切り出して入力を行うことが可能です。
  !
  ! *HistoryGetPointer* は複数のサブルーチンの総称名です。*array* には
  ! 0 〜 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
  use dc_types, only: DP, STRING
  use dc_message, only: MessageNotify
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file
                                                          ! 取得するデータが格納された
                                      ! netCDF ファイル名
                                      ! 
                    
  character(*), intent(in):: varname
                                                          ! 取得しようとするデータの変数名
                                      !
                                      ! ここで指定する変数名は、 *file*
                                      ! で指定されるファイル内に含
                                      ! まれていなければなりません。
                                      ! 
                    
  character(*), intent(in), optional:: range
                                                          ! gtool4 のコンマ記法による
                                      ! データの切り出し指定
                                      !
                                      ! 詳しくは
                                      ! {gtool4 netCDF 規約}[link:../xref.htm#label-6]
                                      ! の「5.4 コンマ記法」を参照して
                                      ! ください。
                                      ! 
                                      ! 数値のみが与えられる場合
                                      ! (※ 引数の型は常に文字型です。
                                      ! すなわち
                                      ! "<b><tt>10.0</tt></b>"
                                      ! のような文字列が与えられた場合
                                      ! を指します)、それは時刻の値
                                      ! として受け取られます。
                                      ! この場合、"<b><tt>^</tt></b>" を
                                      ! 先頭に付加することで、
                                      ! 時間のステップ数で指定する
                                      ! ことも可能です。 (例えば
                                      ! "<b><tt>^10</tt></b>"ならば
                                      !  10 ステップ目のデータを取得します)。
                                      ! 
                    
  real(DP), pointer :: array
                                                          ! (out)
                                      ! 取得するデータを格納する
                                      ! ポインタの配列
                                      !
                                      ! 必ず空状態で与えてください。
                                      ! すなわち初期値 =>null() を
                                      ! 設定するか nullify を用い
                                      ! ください。
                                      !
                                      ! 型は単精度実数型か倍精度実数型
                                      ! かのどちらかです。
                                      ! 取得するデータの空間次元の
                                      ! サイズに合わせ、配列のサイズは
                                      ! 自動的に設定されます。
                                      ! *varname* のデータ型と *array*
                                      ! の型が異なる場合は、自動的
                                      ! に *array* の型に変換されます。
                                      !
                    
  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)
  allocate(array)
  ! いよいよデータ取得
  call Open(var, url)
  call Inquire(var=var, size=domain)
  call Get(var, array_tmp, domain)
  call Close(var)
  array = array_tmp(1)
  call actual_iorange_dump(url, actual_url)
  call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array :real(DP), pointer
: (out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble0PointerTimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in) :: file, varname
  real(DP), intent(in)               :: time
  real(DP), pointer :: array ! (out)
  character(*), parameter :: subname = "HistoryGetDouble0PointerTimeD"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array :real(DP), pointer
: (out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble0PointerTimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in) :: file, varname
  real, intent(in)               :: time
  real(DP), pointer :: array ! (out)
  character(*), parameter :: subname = "HistoryGetDouble0PointerTimeR"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array :real(DP), intent(out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble0TimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real(DP), intent(out) :: array
  real(DP) :: array_tmp(1)
  character(*), parameter :: subname = "HistoryGetDouble0TimeD"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetDoubleEx(file=file, varname=varname, array=array_tmp, range=toChar(time))
  call EndSub(subname)
  array = array_tmp(1)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array :real(DP), intent(out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble0TimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)              :: time
  real(DP), intent(out) :: array
  real(DP) :: array_tmp(1)
  character(*), parameter :: subname = "HistoryGetDouble0TimeR"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetDoubleEx(file=file, varname=varname, array=array_tmp, range=toChar(time))
  call EndSub(subname)
  array = array_tmp(1)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:) :real(DP), intent(out)
range :character(*), intent(in), optional

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

[Source]

subroutine HistoryGetDouble1(file, varname, array, range)
  !
  ! 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
  real(DP), intent(out) :: array(:)
  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)
  else
    call HistoryGetDoubleEx(file=file, varname=varname, array=array)
  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

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

[Source]

subroutine HistoryGetDouble1Pointer(file, varname, array, range)
  !
  ! 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
  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
  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)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url)
  call Get(var, array)
  call Close(var)
  call actual_iorange_dump(url, actual_url)
  call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:) :real(DP), pointer
: (out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble1PointerTimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real(DP), pointer :: array(:) ! (out)
  character(*), parameter :: subname = "HistoryGetDouble1PointerTimeD"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:) :real(DP), pointer
: (out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble1PointerTimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)    :: time
  real(DP), pointer :: array(:) ! (out)
  character(*), parameter :: subname = "HistoryGetDouble1PointerTimeR"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:) :real(DP), intent(out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble1TimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real(DP), intent(out) :: array(:)
  character(*), parameter :: subname = "HistoryGetDouble1TimeD"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetDoubleEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:) :real(DP), intent(out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble1TimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)              :: time
  real(DP), intent(out) :: array(:)
  character(*), parameter :: subname = "HistoryGetDouble1TimeR"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetDoubleEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:) :real(DP), intent(out)
range :character(*), intent(in), optional

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

[Source]

subroutine HistoryGetDouble2(file, varname, array, range)
  !
  ! 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
  real(DP), intent(out) :: array(:,:)
  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)
  else
    call HistoryGetDoubleEx(file=file, varname=varname, array=array)
  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

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

[Source]

subroutine HistoryGetDouble2Pointer(file, varname, array, range)
  !
  ! 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
  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
  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)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url)
  call Get(var, array)
  call Close(var)
  call actual_iorange_dump(url, actual_url)
  call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:) :real(DP), pointer
: (out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble2PointerTimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real(DP), pointer :: array(:,:) ! (out)
  character(*), parameter :: subname = "HistoryGetDouble2PointerTimeD"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:) :real(DP), pointer
: (out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble2PointerTimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)    :: time
  real(DP), pointer :: array(:,:) ! (out)
  character(*), parameter :: subname = "HistoryGetDouble2PointerTimeR"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:) :real(DP), intent(out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble2TimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real(DP), intent(out) :: array(:,:)
  character(*), parameter :: subname = "HistoryGetDouble2TimeD"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetDoubleEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:) :real(DP), intent(out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble2TimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)              :: time
  real(DP), intent(out) :: array(:,:)
  character(*), parameter :: subname = "HistoryGetDouble2TimeR"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetDoubleEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:) :real(DP), intent(out)
range :character(*), intent(in), optional

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

[Source]

subroutine HistoryGetDouble3(file, varname, array, range)
  !
  ! 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
  real(DP), intent(out) :: array(:,:,:)
  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)
  else
    call HistoryGetDoubleEx(file=file, varname=varname, array=array)
  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

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

[Source]

subroutine HistoryGetDouble3Pointer(file, varname, array, range)
  !
  ! 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
  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
  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)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url)
  call Get(var, array)
  call Close(var)
  call actual_iorange_dump(url, actual_url)
  call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:) :real(DP), pointer
: (out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble3PointerTimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real(DP), pointer :: array(:,:,:) ! (out)
  character(*), parameter :: subname = "HistoryGetDouble3PointerTimeD"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:) :real(DP), pointer
: (out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble3PointerTimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)    :: time
  real(DP), pointer :: array(:,:,:) ! (out)
  character(*), parameter :: subname = "HistoryGetDouble3PointerTimeR"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:) :real(DP), intent(out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble3TimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real(DP), intent(out) :: array(:,:,:)
  character(*), parameter :: subname = "HistoryGetDouble3TimeD"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetDoubleEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:) :real(DP), intent(out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble3TimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)              :: time
  real(DP), intent(out) :: array(:,:,:)
  character(*), parameter :: subname = "HistoryGetDouble3TimeR"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetDoubleEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:) :real(DP), intent(out)
range :character(*), intent(in), optional

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

[Source]

subroutine HistoryGetDouble4(file, varname, array, range)
  !
  ! 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
  real(DP), intent(out) :: array(:,:,:,:)
  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)
  else
    call HistoryGetDoubleEx(file=file, varname=varname, array=array)
  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

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

[Source]

subroutine HistoryGetDouble4Pointer(file, varname, array, range)
  !
  ! 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
  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
  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)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url)
  call Get(var, array)
  call Close(var)
  call actual_iorange_dump(url, actual_url)
  call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:) :real(DP), pointer
: (out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble4PointerTimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real(DP), pointer :: array(:,:,:,:) ! (out)
  character(*), parameter :: subname = "HistoryGetDouble4PointerTimeD"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:) :real(DP), pointer
: (out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble4PointerTimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)    :: time
  real(DP), pointer :: array(:,:,:,:) ! (out)
  character(*), parameter :: subname = "HistoryGetDouble4PointerTimeR"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:) :real(DP), intent(out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble4TimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real(DP), intent(out) :: array(:,:,:,:)
  character(*), parameter :: subname = "HistoryGetDouble4TimeD"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetDoubleEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:) :real(DP), intent(out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble4TimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)              :: time
  real(DP), intent(out) :: array(:,:,:,:)
  character(*), parameter :: subname = "HistoryGetDouble4TimeR"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetDoubleEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:) :real(DP), intent(out)
range :character(*), intent(in), optional

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

[Source]

subroutine HistoryGetDouble5(file, varname, array, range)
  !
  ! 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
  real(DP), intent(out) :: array(:,:,:,:,:)
  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)
  else
    call HistoryGetDoubleEx(file=file, varname=varname, array=array)
  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

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

[Source]

subroutine HistoryGetDouble5Pointer(file, varname, array, range)
  !
  ! 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
  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
  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)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url)
  call Get(var, array)
  call Close(var)
  call actual_iorange_dump(url, actual_url)
  call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:) :real(DP), pointer
: (out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble5PointerTimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real(DP), pointer :: array(:,:,:,:,:) ! (out)
  character(*), parameter :: subname = "HistoryGetDouble5PointerTimeD"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:) :real(DP), pointer
: (out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble5PointerTimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)    :: time
  real(DP), pointer :: array(:,:,:,:,:) ! (out)
  character(*), parameter :: subname = "HistoryGetDouble5PointerTimeR"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:) :real(DP), intent(out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble5TimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real(DP), intent(out) :: array(:,:,:,:,:)
  character(*), parameter :: subname = "HistoryGetDouble5TimeD"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetDoubleEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:) :real(DP), intent(out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble5TimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)              :: time
  real(DP), intent(out) :: array(:,:,:,:,:)
  character(*), parameter :: subname = "HistoryGetDouble5TimeR"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetDoubleEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:) :real(DP), intent(out)
range :character(*), intent(in), optional

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

[Source]

subroutine HistoryGetDouble6(file, varname, array, range)
  !
  ! 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
  real(DP), intent(out) :: array(:,:,:,:,:,:)
  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)
  else
    call HistoryGetDoubleEx(file=file, varname=varname, array=array)
  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

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

[Source]

subroutine HistoryGetDouble6Pointer(file, varname, array, range)
  !
  ! 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
  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
  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)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url)
  call Get(var, array)
  call Close(var)
  call actual_iorange_dump(url, actual_url)
  call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:) :real(DP), pointer
: (out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble6PointerTimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real(DP), pointer :: array(:,:,:,:,:,:) ! (out)
  character(*), parameter :: subname = "HistoryGetDouble6PointerTimeD"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:) :real(DP), pointer
: (out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble6PointerTimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)    :: time
  real(DP), pointer :: array(:,:,:,:,:,:) ! (out)
  character(*), parameter :: subname = "HistoryGetDouble6PointerTimeR"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:) :real(DP), intent(out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble6TimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real(DP), intent(out) :: array(:,:,:,:,:,:)
  character(*), parameter :: subname = "HistoryGetDouble6TimeD"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetDoubleEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:) :real(DP), intent(out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble6TimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)              :: time
  real(DP), intent(out) :: array(:,:,:,:,:,:)
  character(*), parameter :: subname = "HistoryGetDouble6TimeR"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetDoubleEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:,:) :real(DP), intent(out)
range :character(*), intent(in), optional

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

[Source]

subroutine HistoryGetDouble7(file, varname, array, range)
  !
  ! 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
  real(DP), intent(out) :: array(:,:,:,:,:,:,:)
  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)
  else
    call HistoryGetDoubleEx(file=file, varname=varname, array=array)
  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

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

[Source]

subroutine HistoryGetDouble7Pointer(file, varname, array, range)
  !
  ! 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
  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
  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)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url)
  call Get(var, array)
  call Close(var)
  call actual_iorange_dump(url, actual_url)
  call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:,:) :real(DP), pointer
: (out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble7PointerTimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real(DP), pointer :: array(:,:,:,:,:,:,:) ! (out)
  character(*), parameter :: subname = "HistoryGetDouble7PointerTimeD"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:,:) :real(DP), pointer
: (out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble7PointerTimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)    :: time
  real(DP), pointer :: array(:,:,:,:,:,:,:) ! (out)
  character(*), parameter :: subname = "HistoryGetDouble7PointerTimeR"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:,:) :real(DP), intent(out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble7TimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real(DP), intent(out) :: array(:,:,:,:,:,:,:)
  character(*), parameter :: subname = "HistoryGetDouble7TimeD"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetDoubleEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:,:) :real(DP), intent(out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetDouble7TimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)              :: time
  real(DP), intent(out) :: array(:,:,:,:,:,:,:)
  character(*), parameter :: subname = "HistoryGetDouble7TimeR"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetDoubleEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real(DP), intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Double の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

[Source]

subroutine HistoryGetDoubleEx(file, varname, array, range)
  !
  ! 入力用内部サブルーチン (Double の固定長配列用).
  ! *file* にファイル名を, *varname* に変数名を与える.
  ! 外部には提供されず, その他の外部に提供される入力用
  ! サブルーチンが内部的に呼び出すことを想定している.
  ! *array* には 1 次元配列を与える.
  ! *range* には gtool4 のコンマ記法を与えることで,
  ! 入力先のデータの一部を切り出して入力を行うことが
  ! 可能である. なお, range に数値のみが代入される場合,
  ! それは時刻の次元 (正確には netCDF の無制限次元) の値として
  ! 受け取られる.
  !
  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
  use regex,      only: match
  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 
                                     ! スライス用オプション.
                                     ! gtool4 変数のコンマ記法で記述
                                     ! {(例: time=100.0,x=10:20,y=30.5)}
  real(DP), intent(out):: array(*) ! データ

  type(GT_VARIABLE)             :: var
  character(STRING)             :: url, actual_url
  integer:: domain   ! 変数の入出力領域の大きさ
                           ! (= 変数が依存する各次元サイズの積)
  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)))

  call lookup_growable_url(file, varname, url, range)
  ! いよいよデータ取得
  call Open(var, url)
  call Inquire(var=var, size=domain)
  call Get(var, array, domain)
  call Close(var)
  call actual_iorange_dump(url, actual_url)
  call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  call EndSub(subname)
end subroutine HistoryGetDoubleEx
HistoryGetDoubleEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real(DP), intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Double の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real(DP), intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Double の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real(DP), intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Double の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real(DP), intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Double の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real(DP), intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Double の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real(DP), intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Double の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real(DP), intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Double の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real(DP), intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Double の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real(DP), intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Double の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real(DP), intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Double の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real(DP), intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Double の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real(DP), intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Double の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real(DP), intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Double の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real(DP), intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Double の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real(DP), intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Double の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real(DP), intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Double の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real(DP), intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Double の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real(DP), intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Double の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real(DP), intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Double の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real(DP), intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Double の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real(DP), intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Double の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real(DP), intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Double の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real(DP), intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Double の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetDoubleEx

HistoryGetDoubleEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real(DP), intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Double の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetDoubleEx

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

[Source]

subroutine HistoryGetReal0(file, varname, array, range)
  !
                    
  !
  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
                    
  real, intent(out) :: array
                    
  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)
  else
    call HistoryGetRealEx(file=file, varname=varname, array=array_tmp)
  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

[Source]

subroutine HistoryGetReal0Pointer(file, varname, array, range)
  !
                    
  !
  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
  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
                    
  real, pointer :: array
                    
  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)
  allocate(array)
  ! いよいよデータ取得
  call Open(var, url)
  call Inquire(var=var, size=domain)
  call Get(var, array_tmp, domain)
  call Close(var)
  array = array_tmp(1)
  call actual_iorange_dump(url, actual_url)
  call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array :real, pointer
: (out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal0PointerTimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in) :: file, varname
  real(DP), intent(in)               :: time
  real, pointer :: array ! (out)
  character(*), parameter :: subname = "HistoryGetReal0PointerTimeD"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array :real, pointer
: (out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal0PointerTimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in) :: file, varname
  real, intent(in)               :: time
  real, pointer :: array ! (out)
  character(*), parameter :: subname = "HistoryGetReal0PointerTimeR"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array :real, intent(out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal0TimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real, intent(out) :: array
  real :: array_tmp(1)
  character(*), parameter :: subname = "HistoryGetReal0TimeD"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetRealEx(file=file, varname=varname, array=array_tmp, range=toChar(time))
  call EndSub(subname)
  array = array_tmp(1)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array :real, intent(out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal0TimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)              :: time
  real, intent(out) :: array
  real :: array_tmp(1)
  character(*), parameter :: subname = "HistoryGetReal0TimeR"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetRealEx(file=file, varname=varname, array=array_tmp, range=toChar(time))
  call EndSub(subname)
  array = array_tmp(1)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:) :real, intent(out)
range :character(*), intent(in), optional

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

[Source]

subroutine HistoryGetReal1(file, varname, array, range)
  !
  ! 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
  real, intent(out) :: array(:)
  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)
  else
    call HistoryGetRealEx(file=file, varname=varname, array=array)
  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

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

[Source]

subroutine HistoryGetReal1Pointer(file, varname, array, range)
  !
  ! 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
  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
  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)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url)
  call Get(var, array)
  call Close(var)
  call actual_iorange_dump(url, actual_url)
  call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:) :real, pointer
: (out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal1PointerTimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real, pointer :: array(:) ! (out)
  character(*), parameter :: subname = "HistoryGetReal1PointerTimeD"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:) :real, pointer
: (out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal1PointerTimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)    :: time
  real, pointer :: array(:) ! (out)
  character(*), parameter :: subname = "HistoryGetReal1PointerTimeR"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:) :real, intent(out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal1TimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real, intent(out) :: array(:)
  character(*), parameter :: subname = "HistoryGetReal1TimeD"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetRealEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:) :real, intent(out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal1TimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)              :: time
  real, intent(out) :: array(:)
  character(*), parameter :: subname = "HistoryGetReal1TimeR"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetRealEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:) :real, intent(out)
range :character(*), intent(in), optional

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

[Source]

subroutine HistoryGetReal2(file, varname, array, range)
  !
  ! 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
  real, intent(out) :: array(:,:)
  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)
  else
    call HistoryGetRealEx(file=file, varname=varname, array=array)
  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

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

[Source]

subroutine HistoryGetReal2Pointer(file, varname, array, range)
  !
  ! 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
  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
  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)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url)
  call Get(var, array)
  call Close(var)
  call actual_iorange_dump(url, actual_url)
  call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:) :real, pointer
: (out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal2PointerTimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real, pointer :: array(:,:) ! (out)
  character(*), parameter :: subname = "HistoryGetReal2PointerTimeD"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:) :real, pointer
: (out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal2PointerTimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)    :: time
  real, pointer :: array(:,:) ! (out)
  character(*), parameter :: subname = "HistoryGetReal2PointerTimeR"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:) :real, intent(out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal2TimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real, intent(out) :: array(:,:)
  character(*), parameter :: subname = "HistoryGetReal2TimeD"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetRealEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:) :real, intent(out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal2TimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)              :: time
  real, intent(out) :: array(:,:)
  character(*), parameter :: subname = "HistoryGetReal2TimeR"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetRealEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:) :real, intent(out)
range :character(*), intent(in), optional

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

[Source]

subroutine HistoryGetReal3(file, varname, array, range)
  !
  ! 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
  real, intent(out) :: array(:,:,:)
  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)
  else
    call HistoryGetRealEx(file=file, varname=varname, array=array)
  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

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

[Source]

subroutine HistoryGetReal3Pointer(file, varname, array, range)
  !
  ! 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
  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
  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)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url)
  call Get(var, array)
  call Close(var)
  call actual_iorange_dump(url, actual_url)
  call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:) :real, pointer
: (out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal3PointerTimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real, pointer :: array(:,:,:) ! (out)
  character(*), parameter :: subname = "HistoryGetReal3PointerTimeD"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:) :real, pointer
: (out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal3PointerTimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)    :: time
  real, pointer :: array(:,:,:) ! (out)
  character(*), parameter :: subname = "HistoryGetReal3PointerTimeR"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:) :real, intent(out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal3TimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real, intent(out) :: array(:,:,:)
  character(*), parameter :: subname = "HistoryGetReal3TimeD"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetRealEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:) :real, intent(out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal3TimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)              :: time
  real, intent(out) :: array(:,:,:)
  character(*), parameter :: subname = "HistoryGetReal3TimeR"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetRealEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:) :real, intent(out)
range :character(*), intent(in), optional

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

[Source]

subroutine HistoryGetReal4(file, varname, array, range)
  !
  ! 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
  real, intent(out) :: array(:,:,:,:)
  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)
  else
    call HistoryGetRealEx(file=file, varname=varname, array=array)
  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

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

[Source]

subroutine HistoryGetReal4Pointer(file, varname, array, range)
  !
  ! 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
  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
  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)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url)
  call Get(var, array)
  call Close(var)
  call actual_iorange_dump(url, actual_url)
  call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:) :real, pointer
: (out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal4PointerTimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real, pointer :: array(:,:,:,:) ! (out)
  character(*), parameter :: subname = "HistoryGetReal4PointerTimeD"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:) :real, pointer
: (out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal4PointerTimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)    :: time
  real, pointer :: array(:,:,:,:) ! (out)
  character(*), parameter :: subname = "HistoryGetReal4PointerTimeR"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:) :real, intent(out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal4TimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real, intent(out) :: array(:,:,:,:)
  character(*), parameter :: subname = "HistoryGetReal4TimeD"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetRealEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:) :real, intent(out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal4TimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)              :: time
  real, intent(out) :: array(:,:,:,:)
  character(*), parameter :: subname = "HistoryGetReal4TimeR"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetRealEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:) :real, intent(out)
range :character(*), intent(in), optional

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

[Source]

subroutine HistoryGetReal5(file, varname, array, range)
  !
  ! 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
  real, intent(out) :: array(:,:,:,:,:)
  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)
  else
    call HistoryGetRealEx(file=file, varname=varname, array=array)
  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

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

[Source]

subroutine HistoryGetReal5Pointer(file, varname, array, range)
  !
  ! 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
  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
  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)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url)
  call Get(var, array)
  call Close(var)
  call actual_iorange_dump(url, actual_url)
  call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:) :real, pointer
: (out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal5PointerTimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real, pointer :: array(:,:,:,:,:) ! (out)
  character(*), parameter :: subname = "HistoryGetReal5PointerTimeD"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:) :real, pointer
: (out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal5PointerTimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)    :: time
  real, pointer :: array(:,:,:,:,:) ! (out)
  character(*), parameter :: subname = "HistoryGetReal5PointerTimeR"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:) :real, intent(out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal5TimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real, intent(out) :: array(:,:,:,:,:)
  character(*), parameter :: subname = "HistoryGetReal5TimeD"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetRealEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:) :real, intent(out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal5TimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)              :: time
  real, intent(out) :: array(:,:,:,:,:)
  character(*), parameter :: subname = "HistoryGetReal5TimeR"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetRealEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:) :real, intent(out)
range :character(*), intent(in), optional

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

[Source]

subroutine HistoryGetReal6(file, varname, array, range)
  !
  ! 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
  real, intent(out) :: array(:,:,:,:,:,:)
  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)
  else
    call HistoryGetRealEx(file=file, varname=varname, array=array)
  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

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

[Source]

subroutine HistoryGetReal6Pointer(file, varname, array, range)
  !
  ! 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
  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
  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)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url)
  call Get(var, array)
  call Close(var)
  call actual_iorange_dump(url, actual_url)
  call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:) :real, pointer
: (out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal6PointerTimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real, pointer :: array(:,:,:,:,:,:) ! (out)
  character(*), parameter :: subname = "HistoryGetReal6PointerTimeD"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:) :real, pointer
: (out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal6PointerTimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)    :: time
  real, pointer :: array(:,:,:,:,:,:) ! (out)
  character(*), parameter :: subname = "HistoryGetReal6PointerTimeR"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:) :real, intent(out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal6TimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real, intent(out) :: array(:,:,:,:,:,:)
  character(*), parameter :: subname = "HistoryGetReal6TimeD"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetRealEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:) :real, intent(out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal6TimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)              :: time
  real, intent(out) :: array(:,:,:,:,:,:)
  character(*), parameter :: subname = "HistoryGetReal6TimeR"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetRealEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:,:) :real, intent(out)
range :character(*), intent(in), optional

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

[Source]

subroutine HistoryGetReal7(file, varname, array, range)
  !
  ! 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
  real, intent(out) :: array(:,:,:,:,:,:,:)
  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)
  else
    call HistoryGetRealEx(file=file, varname=varname, array=array)
  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

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

[Source]

subroutine HistoryGetReal7Pointer(file, varname, array, range)
  !
  ! 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
  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
  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)
  call DbgMessage('@ url =%c', c1=trim(url))
  ! いよいよデータ取得
  call Open(var, url)
  call Get(var, array)
  call Close(var)
  call actual_iorange_dump(url, actual_url)
  call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:,:) :real, pointer
: (out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal7PointerTimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real, pointer :: array(:,:,:,:,:,:,:) ! (out)
  character(*), parameter :: subname = "HistoryGetReal7PointerTimeD"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:,:) :real, pointer
: (out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal7PointerTimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use gt4_history, only: HistoryGetPointer
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)    :: time
  real, pointer :: array(:,:,:,:,:,:,:) ! (out)
  character(*), parameter :: subname = "HistoryGetReal7PointerTimeR"
continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetPointer( file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:,:) :real, intent(out)
time :real(DP), intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal7TimeD(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real(DP), intent(in)              :: time
  real, intent(out) :: array(:,:,:,:,:,:,:)
  character(*), parameter :: subname = "HistoryGetReal7TimeD"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetRealEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
varname :character(*), intent(in)
array(:,:,:,:,:,:,:) :real, intent(out)
time :real, intent(in)

将来廃止予定です。timerange に置き換え、文字型で与えて下さい。

[Source]

subroutine HistoryGetReal7TimeR(file, varname, array, time)
  !
  ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。
  !
  use dc_string, only: toChar
  use dc_types, only: DP, STRING
  use dc_trace, only: Beginsub, Endsub, DbgMessage
  character(*), intent(in):: file, varname
  real, intent(in)              :: time
  real, intent(out) :: array(:,:,:,:,:,:,:)
  character(*), parameter :: subname = "HistoryGetReal7TimeR"

continue
  call BeginSub(subname, 'file=%c varname=%c time=%c', c1=trim(file), c2=trim(varname), c3=toChar(time))
  call HistoryGetRealEx(file=file, varname=varname, array=array, range=toChar(time))
  call EndSub(subname)
end subroutine
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real, intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Real の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

[Source]

subroutine HistoryGetRealEx(file, varname, array, range)
  !
  ! 入力用内部サブルーチン (Real の固定長配列用).
  ! *file* にファイル名を, *varname* に変数名を与える.
  ! 外部には提供されず, その他の外部に提供される入力用
  ! サブルーチンが内部的に呼び出すことを想定している.
  ! *array* には 1 次元配列を与える.
  ! *range* には gtool4 のコンマ記法を与えることで,
  ! 入力先のデータの一部を切り出して入力を行うことが
  ! 可能である. なお, range に数値のみが代入される場合,
  ! それは時刻の次元 (正確には netCDF の無制限次元) の値として
  ! 受け取られる.
  !
  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
  use regex,      only: match
  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 
                                     ! スライス用オプション.
                                     ! gtool4 変数のコンマ記法で記述
                                     ! {(例: time=100.0,x=10:20,y=30.5)}
  real, intent(out):: array(*) ! データ

  type(GT_VARIABLE)             :: var
  character(STRING)             :: url, actual_url
  integer:: domain   ! 変数の入出力領域の大きさ
                           ! (= 変数が依存する各次元サイズの積)
  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)))

  call lookup_growable_url(file, varname, url, range)
  ! いよいよデータ取得
  call Open(var, url)
  call Inquire(var=var, size=domain)
  call Get(var, array, domain)
  call Close(var)
  call actual_iorange_dump(url, actual_url)
  call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
  call EndSub(subname)
end subroutine HistoryGetRealEx
HistoryGetRealEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real, intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Real の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real, intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Real の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real, intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Real の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real, intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Real の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real, intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Real の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real, intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Real の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real, intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Real の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real, intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Real の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real, intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Real の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real, intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Real の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real, intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Real の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real, intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Real の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real, intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Real の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real, intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Real の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real, intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Real の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real, intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Real の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real, intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Real の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real, intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Real の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real, intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Real の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real, intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Real の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real, intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Real の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real, intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Real の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real, intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Real の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

Original external subprogram is historyget.f90#HistoryGetRealEx

HistoryGetRealEx( file, varname, array, [range] )
Subroutine :
file :character(*), intent(in)
: ファイル名
varname :character(*), intent(in)
: 変数名
array(*) :real, intent(out)
: データ
range :character(*), intent(in), optional
: スライス用オプション. gtool4 変数のコンマ記法で記述 {(例: time=100.0,x=10:20,y=30.5)}

入力用内部サブルーチン (Real の固定長配列用). file にファイル名を, varname に変数名を与える. 外部には提供されず, その他の外部に提供される入力用 サブルーチンが内部的に呼び出すことを想定している. array には 1 次元配列を与える. range には gtool4 のコンマ記法を与えることで, 入力先のデータの一部を切り出して入力を行うことが 可能である. なお, range に数値のみが代入される場合, それは時刻の次元 (正確には netCDF の無制限次元) の値として 受け取られる.

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

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
  use dc_string, only: toChar
  use dc_error,  only: StoreError, DC_NOERR, GT_ENOUNLIMITDIM, NF_EINVAL
  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 = ""
  ! 引数の正当性をチェック
  if (.not. present_and_not_empty(file)) then
    stat = NF_EINVAL
    cause_c = '"file" is not specified'
    url = ""
    goto 999
  elseif (.not. present_and_not_empty(varname)) then
    stat = NF_EINVAL
    cause_c = '"varname" is not specified'
    url = ""
    goto 999
  end if

  ! 時刻次元の変数名, およびその最終時刻の
  ! 探査のために file@varname を open (まだデータを取得しない)
  call Open(var, UrlMerge(file, varname))
  ! 次元の数を取得
  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))
  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

[Validate]