| Path: | historyget.f90 |
| Last Update: | Sat Aug 25 11:28:10 JST 2007 |
| Authors: | Yasuhiro MORIKAWA |
| Version: | $Id: historyget.f90,v 1.7 2007/08/25 02:28:10 morikawa Exp $ |
| Tag Name: | $Name: gt4f90io-20070824 $ |
| Copyright: | Copyright (C) GFD Dennou Club, 2006. All rights reserved. |
| License: | See COPYRIGHT |
以下のサブルーチン, 関数は gt4_history から gt4_history#HistoryGet もしくは gt4_history#HistoryGetPointer として提供されます.
Following subroutines and functions are provided as gt4_history#HistoryGet or gt4_history#HistoryGetPointer from gt4_history.
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array : | real(DP), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
HistoryGet は複数のサブルーチンの総称名です. array には 0 〜 7 次元の整数型, 単精度実数型, 倍精度実数型の配列を与えることが可能です.
HistoryGet is generic name of multiple subroutines. Integer, single precision real, and double precision 0 — 7 rank array can be given to array.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
subroutine HistoryGetDouble0(file, varname, array, range, quiet, err)
!
!
! netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定
! していますが, 大抵の netCDF データの入力は可能であると期待されます.
!
! Input netCDF data. NetCDF data with gtool4 conventions is assumed,
! but most netCDF data is expected to be input.
!
! *file* にファイル名を, *varname* に変数名を与えます.
! *array* にはファイルから入力されたデータが返ります.
! ポインタの配列へデータを入力を行う場合は,
! HistoryGetPointer を利用してください.
!
! Give filename to *file*, variable name to *varname*.
! Input data is returned to *array*.
! If you want to use pointer array, use HistoryGetPointer .
!
! デフォルトでは, ファイル内の最新データ, すなわちデータを
! 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを
! 入力したい場合には, 下記の *range* オプションを利用してください.
!
! By default, recent data, that is to say, data clipped with
! maximum time is input. In order to input data clipped with
! other time, use *range* option as follows.
!
! *range* には gtool4 のコンマ記法
! ({gtool4 netCDF 規約}[link:../xref.htm#label-6] の「5.4 コンマ記法」参照)
! を与えることで, 入力データの一部を切り出すことが可能です.
!
! Give gtool4 comma-graphy
! (See "5.4 gtool4 comma-graphy" in {gtool4 netCDF Convention}[link:../xref.htm#label-6])
! to *range*, then input data is clipped.
!
! *HistoryGet* は複数のサブルーチンの総称名です. *array* には
! 0 〜 7 次元の整数型, 単精度実数型,
! 倍精度実数型の配列を与えることが可能です.
!
! *HistoryGet* is generic name of multiple subroutines.
! Integer, single precision real, and double precision
! 0 -- 7 rank array can be given to *array*.
!
! デフォルトでは, データの入力時にどのファイルのどの変数が
! どの次元で切り出されて入力されたのかを表示します.
! メッセージ出力が不要な場合は *quiet* に .true. を与えてください.
!
! By default, when data is input, filename and variable name and
! clipping information is printed.
! The message is suppressed when .true. is given to *quiet*
!
!
use dc_string, only: toChar
use dc_present, only: present_select, present_and_not_empty
use dc_types, only: DP, STRING
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file
! netCDF ファイル名.
! NetCDF filename.
character(*), intent(in):: varname
! 変数名.
! Variable name
character(*), intent(in), optional:: range
! 切り出し用オプション.
! gtool4 変数のコンマ記法で記述
! {(例: time=100.0,x=10:20,y=^1:^5)}
!
! 詳しくは
! {gtool4 netCDF 規約}[link:../xref.htm#label-6]
! の「5.4 コンマ記法」を参照して
! ください.
!
! 数値のみが与えられる場合 (※ 引数の型
! は常に文字型です. ここでの「数値」は
! "<b><tt>10.0</tt></b>" のような文字列
! を指します), この値は時刻(正確には
! netCDF の無制限次元) の値として扱われ
! ます.
!
! Option for clipping.
! Give gtool4 comma-graphy
! {(ex. time=100.0,x=10:20,y=^1:^5)}
!
! For details, see "5.4 gtool4
! comma-graphy" in
! {gtool4 netCDF Convention}[link:../xref.htm#label-6]
!
! When pure numerical value is given
! (Type of argument is character. In
! this case, the "pure numerical value"
! means a character like
! "<b><tt>10.0</tt></b>") the value is
! treated as time (to be exact,
! unlimited dimension).
!
logical, intent(in), optional:: quiet
real(DP), intent(out) :: array
! 取得するデータを格納する配列
!
! 型は整数型, 単精度実数型, 倍精度実数型
! かのいづれかです. 取得するデータの空
! 間次元のサイズと配列のサイズとが一致し
! ている必要があります. 入力するデータ
! の型と *array* の型が異なる場合は, 自
! 動的に *array* の型に変換されます.
!
! Array in which input data is store
!
! Type is integer or single precision
! real or double precision. Size of
! array must be identical to input data
! size. When type of input data is
! different from type of *array*, data
! is converted to type of *array*
! automatically.
!
logical, intent(out), optional:: err
! 例外処理用フラグ.
! デフォルトでは, この手続き内でエラーが
! 生じた場合, プログラムは強制終了します.
! 引数 *err* が与えられる場合,
! プログラムは強制終了せず, 代わりに
! *err* に .true. が代入されます.
!
! Exception handling flag.
! By default, when error occur in
! this procedure, the program aborts.
! If this *err* argument is given,
! .true. is substituted to *err* and
! the program does not abort.
real(DP) :: array_tmp(1)
character(*), parameter :: subname = "HistoryGetDouble0"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))
if (present_and_not_empty(range)) then
call HistoryGetDoubleEx(file = file, varname = varname, array = array_tmp, range = range, quiet = quiet, err = err)
else
call HistoryGetDoubleEx(file = file, varname = varname, array = array_tmp, quiet = quiet, err = err)
end if
array = array_tmp(1)
call EndSub(subname)
end subroutine HistoryGetDouble0
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array : | real(DP), pointer
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. 固定長の配列へデータを入力を行う場合は, HistoryGet を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use fixed length array, use HistoryGet .
array には必ず空状態の配列を与えてください. すなわち与える配列に対し, 初期値 =>null() を設定するか nullify を用いてください. 既に割り付けられている場合, もしくは不定状態の場合には エラーを返します.
Give null array to array. More specifically, use ’=>null()’ as initial value or use ‘nullify’ to the array. If the array is allocated already, or undefined, error is occurred.
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
HistoryGetPointer は複数のサブルーチンの総称名です. array には 0 〜 7 次元の整数型, 単精度実数型, 倍精度実数型の配列を与えることが可能です.
HistoryGetPointer is generic name of multiple subroutines. Integer, single precision real, and double precision 0 — 7 rank array can be given to array.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
subroutine HistoryGetDouble0Pointer(file, varname, array, range, quiet, err)
!
!
! netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定
! していますが, 大抵の netCDF データの入力は可能であると期待されます.
!
! Input netCDF data. NetCDF data with gtool4 conventions is assumed,
! but most netCDF data is expected to be input.
!
! *file* にファイル名を, *varname* に変数名を与えます.
! *array* にはファイルから入力されたデータが返ります.
! 固定長の配列へデータを入力を行う場合は,
! HistoryGet を利用してください.
!
! Give filename to *file*, variable name to *varname*.
! Input data is returned to *array*.
! If you want to use fixed length array, use HistoryGet .
!
! *array* には必ず空状態の配列を与えてください.
! すなわち与える配列に対し, 初期値 =>null() を設定するか
! nullify を用いてください.
! 既に割り付けられている場合, もしくは不定状態の場合には
! エラーを返します.
!
! Give null array to *array*.
! More specifically, use '=>null()' as initial value or
! use 'nullify' to the array.
! If the array is allocated already, or undefined,
! error is occurred.
!
! デフォルトでは, ファイル内の最新データ, すなわちデータを
! 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを
! 入力したい場合には, 下記の *range* オプションを利用してください.
!
! By default, recent data, that is to say, data clipped with
! maximum time is input. In order to input data clipped with
! other time, use *range* option as follows.
!
! *range* には gtool4 のコンマ記法
! ({gtool4 netCDF 規約}[link:../xref.htm#label-6] の「5.4 コンマ記法」参照)
! を与えることで, 入力データの一部を切り出すことが可能です.
!
! Give gtool4 comma-graphy
! (See "5.4 gtool4 comma-graphy" in {gtool4 netCDF Convention}[link:../xref.htm#label-6])
! to *range*, then input data is clipped.
!
! *HistoryGetPointer* は複数のサブルーチンの総称名です. *array* には
! 0 〜 7 次元の整数型, 単精度実数型,
! 倍精度実数型の配列を与えることが可能です.
!
! *HistoryGetPointer* is generic name of multiple subroutines.
! Integer, single precision real, and double precision
! 0 -- 7 rank array can be given to *array*.
!
! デフォルトでは, データの入力時にどのファイルのどの変数が
! どの次元で切り出されて入力されたのかを表示します.
! メッセージ出力が不要な場合は *quiet* に .true. を与えてください.
!
! By default, when data is input, filename and variable name and
! clipping information is printed.
! The message is suppressed when .true. is given to *quiet*
!
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Inquire, Close, Get
use dc_string, only: toChar
use dc_present, only: present_select, present_and_true
use dc_types, only: DP, STRING
use dc_message, only: MessageNotify
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file
! netCDF ファイル名.
! NetCDF filename.
character(*), intent(in):: varname
! 変数名.
! Variable name
character(*), intent(in), optional:: range
! 切り出し用オプション.
! gtool4 変数のコンマ記法で記述
! {(例: time=100.0,x=10:20,y=^1:^5)}
!
! 詳しくは
! {gtool4 netCDF 規約}[link:../xref.htm#label-6]
! の「5.4 コンマ記法」を参照して
! ください.
!
! 数値のみが与えられる場合 (※ 引数の型
! は常に文字型です. ここでの「数値」は
! "<b><tt>10.0</tt></b>" のような文字列
! を指します), この値は時刻(正確には
! netCDF の無制限次元) の値として扱われ
! ます.
!
! Option for clipping.
! Give gtool4 comma-graphy
! {(ex. time=100.0,x=10:20,y=^1:^5)}
!
! For details, see "5.4 gtool4
! comma-graphy" in
! {gtool4 netCDF Convention}[link:../xref.htm#label-6]
!
! When pure numerical value is given
! (Type of argument is character. In
! this case, the "pure numerical value"
! means a character like
! "<b><tt>10.0</tt></b>") the value is
! treated as time (to be exact,
! unlimited dimension).
!
logical, intent(in), optional:: quiet
real(DP), pointer :: array
! (out)
!
! 取得するデータを格納する
! ポインタ配列
!
! 必ず空状態の配列を与えてください.
! すなわち与える配列に対し, 初期値 =>null()
! を設定するか nullify を用いて
! ください. 既に割り付けられている場合,
! もしくは不定状態の場合にはエラーを返し
! ます.
!
! 型は整数型, 単精度実数型, 倍精度実数型
! かのいづれかです. 入力するデータ
! の型と *array* の型が異なる場合は, 自
! 動的に *array* の型に変換されます.
!
! Array in which input data is store
!
! Give null array to *array*. More
! specifically, use '=>null()' as
! initial value or use 'nullify' to the
! array. If the array is allocated
! already, or undefined, error is
! occurred.
!
! Type is integer or single precision
! real or double precision. When type of
! input data is different from type of
! *array*, data is converted to type of
! *array* automatically.
!
logical, intent(out), optional:: err
! 例外処理用フラグ.
! デフォルトでは, この手続き内でエラーが
! 生じた場合, プログラムは強制終了します.
! 引数 *err* が与えられる場合,
! プログラムは強制終了せず, 代わりに
! *err* に .true. が代入されます.
!
! Exception handling flag.
! By default, when error occur in
! this procedure, the program aborts.
! If this *err* argument is given,
! .true. is substituted to *err* and
! the program does not abort.
real(DP), target :: array_tmp(1)
type(GT_VARIABLE) :: var
character(STRING) :: url, actual_url
integer:: domain ! 変数の入出力領域の大きさ
! (= 変数が依存する各次元サイズの積)
character(*), parameter :: subname = "HistoryGetDouble0Pointer"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
! 必要な情報を gtool 変数化
call lookup_growable_url(file, varname, url, range, err)
allocate(array)
! いよいよデータ取得
call Open(var, url, err)
call Inquire(var=var, size=domain)
call Get(var, array_tmp, domain, err)
call Close(var, err)
array = array_tmp(1)
call actual_iorange_dump(url, actual_url, err)
if ( .not. present_and_true(quiet) ) then
call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
end if
call EndSub(subname)
end subroutine
| Subroutine : | |
| file : | character(*), intent(in) |
| varname : | character(*), intent(in) |
| array(:) : | real(DP), intent(out) |
| range : | character(*), intent(in), optional |
| quiet : | logical, intent(in), optional |
| err : | logical, intent(out), optional |
Double 型固定配列用 1 次元配列用データ入力サブルーチン
subroutine HistoryGetDouble1(file, varname, array, range, quiet, err)
!
! Double 型固定配列用 1 次元配列用データ入力サブルーチン
!
!
use dc_string, only: toChar
use dc_present,only: present_select, present_and_not_empty
use dc_types, only: DP, STRING
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file
character(*), intent(in):: varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
real(DP), intent(out) :: array(:)
logical, intent(out), optional:: err
character(*), parameter :: subname = "HistoryGetDouble1"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))
if (present_and_not_empty(range)) then
call HistoryGetDoubleEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
else
call HistoryGetDoubleEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
endif
call EndSub(subname)
end subroutine HistoryGetDouble1
| Subroutine : | |||
| file : | character(*), intent(in) | ||
| varname : | character(*), intent(in) | ||
| array(:) : | real(DP), pointer
| ||
| range : | character(*), intent(in), optional | ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional |
Double 型ポインタ配列用 1 次元配列用データ入力サブルーチン
subroutine HistoryGetDouble1Pointer(file, varname, array, range, quiet, err)
!
! Double 型ポインタ配列用 1 次元配列用データ入力サブルーチン
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Inquire, Close, Get
use dc_string, only: toChar
use dc_present,only: present_select, present_and_true
use dc_types, only: DP, STRING
use dc_message, only: MessageNotify
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file, varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
logical, intent(out), optional:: err
real(DP), pointer :: array(:) ! (out)
type(GT_VARIABLE) :: var
character(STRING) :: url, actual_url
character(*), parameter :: subname = "HistoryGetDouble1Pointer"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
! 必要な情報を gtool 変数化
call lookup_growable_url(file, varname, url, range, err)
call DbgMessage('@ url =%c', c1=trim(url))
! いよいよデータ取得
call Open(var, url, err)
call Get(var, array, err)
call Close(var, err)
call actual_iorange_dump(url, actual_url, err)
if ( .not. present_and_true(quiet) ) then
call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
end if
call EndSub(subname)
end subroutine
| Subroutine : | |
| file : | character(*), intent(in) |
| varname : | character(*), intent(in) |
| array(:,:) : | real(DP), intent(out) |
| range : | character(*), intent(in), optional |
| quiet : | logical, intent(in), optional |
| err : | logical, intent(out), optional |
Double 型固定配列用 2 次元配列用データ入力サブルーチン
subroutine HistoryGetDouble2(file, varname, array, range, quiet, err)
!
! Double 型固定配列用 2 次元配列用データ入力サブルーチン
!
!
use dc_string, only: toChar
use dc_present,only: present_select, present_and_not_empty
use dc_types, only: DP, STRING
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file
character(*), intent(in):: varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
real(DP), intent(out) :: array(:,:)
logical, intent(out), optional:: err
character(*), parameter :: subname = "HistoryGetDouble2"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))
if (present_and_not_empty(range)) then
call HistoryGetDoubleEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
else
call HistoryGetDoubleEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
endif
call EndSub(subname)
end subroutine HistoryGetDouble2
| Subroutine : | |||
| file : | character(*), intent(in) | ||
| varname : | character(*), intent(in) | ||
| array(:,:) : | real(DP), pointer
| ||
| range : | character(*), intent(in), optional | ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional |
Double 型ポインタ配列用 2 次元配列用データ入力サブルーチン
subroutine HistoryGetDouble2Pointer(file, varname, array, range, quiet, err)
!
! Double 型ポインタ配列用 2 次元配列用データ入力サブルーチン
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Inquire, Close, Get
use dc_string, only: toChar
use dc_present,only: present_select, present_and_true
use dc_types, only: DP, STRING
use dc_message, only: MessageNotify
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file, varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
logical, intent(out), optional:: err
real(DP), pointer :: array(:,:) ! (out)
type(GT_VARIABLE) :: var
character(STRING) :: url, actual_url
character(*), parameter :: subname = "HistoryGetDouble2Pointer"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
! 必要な情報を gtool 変数化
call lookup_growable_url(file, varname, url, range, err)
call DbgMessage('@ url =%c', c1=trim(url))
! いよいよデータ取得
call Open(var, url, err)
call Get(var, array, err)
call Close(var, err)
call actual_iorange_dump(url, actual_url, err)
if ( .not. present_and_true(quiet) ) then
call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
end if
call EndSub(subname)
end subroutine
| Subroutine : | |
| file : | character(*), intent(in) |
| varname : | character(*), intent(in) |
| array(:,:,:) : | real(DP), intent(out) |
| range : | character(*), intent(in), optional |
| quiet : | logical, intent(in), optional |
| err : | logical, intent(out), optional |
Double 型固定配列用 3 次元配列用データ入力サブルーチン
subroutine HistoryGetDouble3(file, varname, array, range, quiet, err)
!
! Double 型固定配列用 3 次元配列用データ入力サブルーチン
!
!
use dc_string, only: toChar
use dc_present,only: present_select, present_and_not_empty
use dc_types, only: DP, STRING
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file
character(*), intent(in):: varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
real(DP), intent(out) :: array(:,:,:)
logical, intent(out), optional:: err
character(*), parameter :: subname = "HistoryGetDouble3"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))
if (present_and_not_empty(range)) then
call HistoryGetDoubleEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
else
call HistoryGetDoubleEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
endif
call EndSub(subname)
end subroutine HistoryGetDouble3
| Subroutine : | |||
| file : | character(*), intent(in) | ||
| varname : | character(*), intent(in) | ||
| array(:,:,:) : | real(DP), pointer
| ||
| range : | character(*), intent(in), optional | ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional |
Double 型ポインタ配列用 3 次元配列用データ入力サブルーチン
subroutine HistoryGetDouble3Pointer(file, varname, array, range, quiet, err)
!
! Double 型ポインタ配列用 3 次元配列用データ入力サブルーチン
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Inquire, Close, Get
use dc_string, only: toChar
use dc_present,only: present_select, present_and_true
use dc_types, only: DP, STRING
use dc_message, only: MessageNotify
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file, varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
logical, intent(out), optional:: err
real(DP), pointer :: array(:,:,:) ! (out)
type(GT_VARIABLE) :: var
character(STRING) :: url, actual_url
character(*), parameter :: subname = "HistoryGetDouble3Pointer"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
! 必要な情報を gtool 変数化
call lookup_growable_url(file, varname, url, range, err)
call DbgMessage('@ url =%c', c1=trim(url))
! いよいよデータ取得
call Open(var, url, err)
call Get(var, array, err)
call Close(var, err)
call actual_iorange_dump(url, actual_url, err)
if ( .not. present_and_true(quiet) ) then
call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
end if
call EndSub(subname)
end subroutine
| Subroutine : | |
| file : | character(*), intent(in) |
| varname : | character(*), intent(in) |
| array(:,:,:,:) : | real(DP), intent(out) |
| range : | character(*), intent(in), optional |
| quiet : | logical, intent(in), optional |
| err : | logical, intent(out), optional |
Double 型固定配列用 4 次元配列用データ入力サブルーチン
subroutine HistoryGetDouble4(file, varname, array, range, quiet, err)
!
! Double 型固定配列用 4 次元配列用データ入力サブルーチン
!
!
use dc_string, only: toChar
use dc_present,only: present_select, present_and_not_empty
use dc_types, only: DP, STRING
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file
character(*), intent(in):: varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
real(DP), intent(out) :: array(:,:,:,:)
logical, intent(out), optional:: err
character(*), parameter :: subname = "HistoryGetDouble4"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))
if (present_and_not_empty(range)) then
call HistoryGetDoubleEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
else
call HistoryGetDoubleEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
endif
call EndSub(subname)
end subroutine HistoryGetDouble4
| Subroutine : | |||
| file : | character(*), intent(in) | ||
| varname : | character(*), intent(in) | ||
| array(:,:,:,:) : | real(DP), pointer
| ||
| range : | character(*), intent(in), optional | ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional |
Double 型ポインタ配列用 4 次元配列用データ入力サブルーチン
subroutine HistoryGetDouble4Pointer(file, varname, array, range, quiet, err)
!
! Double 型ポインタ配列用 4 次元配列用データ入力サブルーチン
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Inquire, Close, Get
use dc_string, only: toChar
use dc_present,only: present_select, present_and_true
use dc_types, only: DP, STRING
use dc_message, only: MessageNotify
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file, varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
logical, intent(out), optional:: err
real(DP), pointer :: array(:,:,:,:) ! (out)
type(GT_VARIABLE) :: var
character(STRING) :: url, actual_url
character(*), parameter :: subname = "HistoryGetDouble4Pointer"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
! 必要な情報を gtool 変数化
call lookup_growable_url(file, varname, url, range, err)
call DbgMessage('@ url =%c', c1=trim(url))
! いよいよデータ取得
call Open(var, url, err)
call Get(var, array, err)
call Close(var, err)
call actual_iorange_dump(url, actual_url, err)
if ( .not. present_and_true(quiet) ) then
call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
end if
call EndSub(subname)
end subroutine
| Subroutine : | |
| file : | character(*), intent(in) |
| varname : | character(*), intent(in) |
| array(:,:,:,:,:) : | real(DP), intent(out) |
| range : | character(*), intent(in), optional |
| quiet : | logical, intent(in), optional |
| err : | logical, intent(out), optional |
Double 型固定配列用 5 次元配列用データ入力サブルーチン
subroutine HistoryGetDouble5(file, varname, array, range, quiet, err)
!
! Double 型固定配列用 5 次元配列用データ入力サブルーチン
!
!
use dc_string, only: toChar
use dc_present,only: present_select, present_and_not_empty
use dc_types, only: DP, STRING
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file
character(*), intent(in):: varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
real(DP), intent(out) :: array(:,:,:,:,:)
logical, intent(out), optional:: err
character(*), parameter :: subname = "HistoryGetDouble5"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))
if (present_and_not_empty(range)) then
call HistoryGetDoubleEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
else
call HistoryGetDoubleEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
endif
call EndSub(subname)
end subroutine HistoryGetDouble5
| Subroutine : | |||
| file : | character(*), intent(in) | ||
| varname : | character(*), intent(in) | ||
| array(:,:,:,:,:) : | real(DP), pointer
| ||
| range : | character(*), intent(in), optional | ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional |
Double 型ポインタ配列用 5 次元配列用データ入力サブルーチン
subroutine HistoryGetDouble5Pointer(file, varname, array, range, quiet, err)
!
! Double 型ポインタ配列用 5 次元配列用データ入力サブルーチン
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Inquire, Close, Get
use dc_string, only: toChar
use dc_present,only: present_select, present_and_true
use dc_types, only: DP, STRING
use dc_message, only: MessageNotify
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file, varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
logical, intent(out), optional:: err
real(DP), pointer :: array(:,:,:,:,:) ! (out)
type(GT_VARIABLE) :: var
character(STRING) :: url, actual_url
character(*), parameter :: subname = "HistoryGetDouble5Pointer"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
! 必要な情報を gtool 変数化
call lookup_growable_url(file, varname, url, range, err)
call DbgMessage('@ url =%c', c1=trim(url))
! いよいよデータ取得
call Open(var, url, err)
call Get(var, array, err)
call Close(var, err)
call actual_iorange_dump(url, actual_url, err)
if ( .not. present_and_true(quiet) ) then
call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
end if
call EndSub(subname)
end subroutine
| Subroutine : | |
| file : | character(*), intent(in) |
| varname : | character(*), intent(in) |
| array(:,:,:,:,:,:) : | real(DP), intent(out) |
| range : | character(*), intent(in), optional |
| quiet : | logical, intent(in), optional |
| err : | logical, intent(out), optional |
Double 型固定配列用 6 次元配列用データ入力サブルーチン
subroutine HistoryGetDouble6(file, varname, array, range, quiet, err)
!
! Double 型固定配列用 6 次元配列用データ入力サブルーチン
!
!
use dc_string, only: toChar
use dc_present,only: present_select, present_and_not_empty
use dc_types, only: DP, STRING
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file
character(*), intent(in):: varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
real(DP), intent(out) :: array(:,:,:,:,:,:)
logical, intent(out), optional:: err
character(*), parameter :: subname = "HistoryGetDouble6"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))
if (present_and_not_empty(range)) then
call HistoryGetDoubleEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
else
call HistoryGetDoubleEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
endif
call EndSub(subname)
end subroutine HistoryGetDouble6
| Subroutine : | |||
| file : | character(*), intent(in) | ||
| varname : | character(*), intent(in) | ||
| array(:,:,:,:,:,:) : | real(DP), pointer
| ||
| range : | character(*), intent(in), optional | ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional |
Double 型ポインタ配列用 6 次元配列用データ入力サブルーチン
subroutine HistoryGetDouble6Pointer(file, varname, array, range, quiet, err)
!
! Double 型ポインタ配列用 6 次元配列用データ入力サブルーチン
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Inquire, Close, Get
use dc_string, only: toChar
use dc_present,only: present_select, present_and_true
use dc_types, only: DP, STRING
use dc_message, only: MessageNotify
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file, varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
logical, intent(out), optional:: err
real(DP), pointer :: array(:,:,:,:,:,:) ! (out)
type(GT_VARIABLE) :: var
character(STRING) :: url, actual_url
character(*), parameter :: subname = "HistoryGetDouble6Pointer"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
! 必要な情報を gtool 変数化
call lookup_growable_url(file, varname, url, range, err)
call DbgMessage('@ url =%c', c1=trim(url))
! いよいよデータ取得
call Open(var, url, err)
call Get(var, array, err)
call Close(var, err)
call actual_iorange_dump(url, actual_url, err)
if ( .not. present_and_true(quiet) ) then
call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
end if
call EndSub(subname)
end subroutine
| Subroutine : | |
| file : | character(*), intent(in) |
| varname : | character(*), intent(in) |
| array(:,:,:,:,:,:,:) : | real(DP), intent(out) |
| range : | character(*), intent(in), optional |
| quiet : | logical, intent(in), optional |
| err : | logical, intent(out), optional |
Double 型固定配列用 7 次元配列用データ入力サブルーチン
subroutine HistoryGetDouble7(file, varname, array, range, quiet, err)
!
! Double 型固定配列用 7 次元配列用データ入力サブルーチン
!
!
use dc_string, only: toChar
use dc_present,only: present_select, present_and_not_empty
use dc_types, only: DP, STRING
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file
character(*), intent(in):: varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
real(DP), intent(out) :: array(:,:,:,:,:,:,:)
logical, intent(out), optional:: err
character(*), parameter :: subname = "HistoryGetDouble7"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))
if (present_and_not_empty(range)) then
call HistoryGetDoubleEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
else
call HistoryGetDoubleEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
endif
call EndSub(subname)
end subroutine HistoryGetDouble7
| Subroutine : | |||
| file : | character(*), intent(in) | ||
| varname : | character(*), intent(in) | ||
| array(:,:,:,:,:,:,:) : | real(DP), pointer
| ||
| range : | character(*), intent(in), optional | ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional |
Double 型ポインタ配列用 7 次元配列用データ入力サブルーチン
subroutine HistoryGetDouble7Pointer(file, varname, array, range, quiet, err)
!
! Double 型ポインタ配列用 7 次元配列用データ入力サブルーチン
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Inquire, Close, Get
use dc_string, only: toChar
use dc_present,only: present_select, present_and_true
use dc_types, only: DP, STRING
use dc_message, only: MessageNotify
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file, varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
logical, intent(out), optional:: err
real(DP), pointer :: array(:,:,:,:,:,:,:) ! (out)
type(GT_VARIABLE) :: var
character(STRING) :: url, actual_url
character(*), parameter :: subname = "HistoryGetDouble7Pointer"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
! 必要な情報を gtool 変数化
call lookup_growable_url(file, varname, url, range, err)
call DbgMessage('@ url =%c', c1=trim(url))
! いよいよデータ取得
call Open(var, url, err)
call Get(var, array, err)
call Close(var, err)
call actual_iorange_dump(url, actual_url, err)
if ( .not. present_and_true(quiet) ) then
call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
end if
call EndSub(subname)
end subroutine
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array(*) : | real(DP), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.
This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
subroutine HistoryGetDoubleEx(file, varname, array, range, quiet, err)
!
! このサブルーチンは gt4_history の内部で呼び出される
! ことを想定されています. gt4_history モジュールの外部からは
! 呼び出さないで下さい.
!
! This subroutine is expected to be refereed in gt4_history internally.
! Do not refer from the outside of gt4_history.
!
! netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定
! していますが, 大抵の netCDF データの入力は可能であると期待されます.
!
! Input netCDF data. NetCDF data with gtool4 conventions is assumed,
! but most netCDF data is expected to be input.
!
! *file* にファイル名を, *varname* に変数名を与えます.
! *array* にはファイルから入力されたデータが返ります.
! ポインタの配列へデータを入力を行う場合は,
! HistoryGetPointer を利用してください.
!
! Give filename to *file*, variable name to *varname*.
! Input data is returned to *array*.
! If you want to use pointer array, use HistoryGetPointer .
!
! デフォルトでは, ファイル内の最新データ, すなわちデータを
! 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを
! 入力したい場合には, 下記の *range* オプションを利用してください.
!
! By default, recent data, that is to say, data clipped with
! maximum time is input. In order to input data clipped with
! other time, use *range* option as follows.
!
! *range* には gtool4 のコンマ記法
! ({gtool4 netCDF 規約}[link:../xref.htm#label-6] の「5.4 コンマ記法」参照)
! を与えることで, 入力データの一部を切り出すことが可能です.
!
! Give gtool4 comma-graphy
! (See "5.4 gtool4 comma-graphy" in {gtool4 netCDF Convention}[link:../xref.htm#label-6])
! to *range*, then input data is clipped.
!
! デフォルトでは, データの入力時にどのファイルのどの変数が
! どの次元で切り出されて入力されたのかを表示します.
! メッセージ出力が不要な場合は *quiet* に .true. を与えてください.
!
! By default, when data is input, filename and variable name and
! clipping information is printed.
! The message is suppressed when .true. is given to *quiet*
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Inquire, Close, Get
use dc_string, only: toChar, Split, JoinChar, StoA
use dc_url, only: GT_ATMARK, GT_COMMA, GT_EQUAL, UrlSplit, UrlMerge
use dc_present, only: present_select, present_and_not_empty, present_and_true
use regex, only: match
use dc_types, only: DP, STRING
use dc_message, only: MessageNotify
use dc_trace, only: Beginsub, Endsub, DbgMessage
use dc_error, only: StoreError, DC_NOERR, GT_ENOTURL
character(*), intent(in):: file ! ファイル名. Filename
character(*), intent(in):: varname ! 変数名. Variable name
character(*), intent(in), optional:: range
! 切り出し用オプション.
! gtool4 変数のコンマ記法で記述
! {(例: time=100.0,x=10:20,y=^1:^5)}
!
! 詳しくは
! {gtool4 netCDF 規約}[link:../xref.htm#label-6]
! の「5.4 コンマ記法」を参照して
! ください.
!
! 数値のみが与えられる場合
! (※ 引数の型は常に文字型です.
! ここでの「数値」は
! "<b><tt>10.0</tt></b>"
! のような文字列
! を指します), この値は時刻
! (正確には netCDF の無制限次元)
! の値として扱われます.
!
! Option for clipping.
! Give gtool4 comma-graphy
! {(ex. time=100.0,x=10:20,y=^1:^5)}
!
! For details, see "5.4 gtool4
! comma-graphy" in
! {gtool4 netCDF Convention}[link:../xref.htm#label-6]
!
! When pure numerical value is given
! (Type of argument is character.
! In this case, the "pure numerical
! value" means a character like
! "<b><tt>10.0</tt></b>")
! the value is treated as time
! (to be exact, unlimited dimension).
!
logical, intent(in), optional:: quiet
real(DP), intent(out):: array(*) ! データ. Data
type(GT_VARIABLE) :: var
character(STRING) :: url, actual_url
integer:: domain ! 変数の入出力領域の大きさ
! (= 変数が依存する各次元サイズの積)
logical, intent(out), optional:: err
! 例外処理用フラグ.
! デフォルトでは, この手続き内でエラーが
! 生じた場合, プログラムは強制終了します.
! 引数 *err* が与えられる場合,
! プログラムは強制終了せず, 代わりに
! *err* に .true. が代入されます.
!
! Exception handling flag.
! By default, when error occur in
! this procedure, the program aborts.
! If this *err* argument is given,
! .true. is substituted to *err* and
! the program does not abort.
integer:: stat
character(STRING):: cause_c
character(*), parameter :: subname = "HistoryGetDoubleEx"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
cause_c = ''
stat = DC_NOERR
call lookup_growable_url(file, varname, url, range, err = err)
if ( present_and_true(err) ) then
stat = GT_ENOTURL
cause_c = url
goto 999
end if
call Open(var, url, err = err)
if ( present_and_true(err) ) then
stat = GT_ENOTURL
cause_c = url
goto 999
end if
call Inquire(var = var, size = domain)
call Get(var, array, domain)
call Close(var)
call actual_iorange_dump(url, actual_url, err = err)
if ( .not. present_and_true(quiet) ) then
call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
end if
999 continue
call StoreError(stat, subname, err, cause_c)
call EndSub(subname)
end subroutine HistoryGetDoubleEx
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array(*) : | real(DP), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.
This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
Original external subprogram is historyget.f90#HistoryGetDoubleEx
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array(*) : | real(DP), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.
This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
Original external subprogram is historyget.f90#HistoryGetDoubleEx
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array(*) : | real(DP), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.
This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
Original external subprogram is historyget.f90#HistoryGetDoubleEx
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array(*) : | real(DP), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.
This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
Original external subprogram is historyget.f90#HistoryGetDoubleEx
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array(*) : | real(DP), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.
This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
Original external subprogram is historyget.f90#HistoryGetDoubleEx
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array(*) : | real(DP), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.
This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
Original external subprogram is historyget.f90#HistoryGetDoubleEx
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array(*) : | real(DP), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.
This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
Original external subprogram is historyget.f90#HistoryGetDoubleEx
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array(*) : | real(DP), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.
This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
Original external subprogram is historyget.f90#HistoryGetDoubleEx
| Subroutine : | |
| file : | character(*), intent(in) |
| varname : | character(*), intent(in) |
| array : | integer, intent(out) |
| range : | character(*), intent(in), optional |
| quiet : | logical, intent(in), optional |
| err : | logical, intent(out), optional |
subroutine HistoryGetInt0(file, varname, array, range, quiet, err)
!
!
use dc_string, only: toChar
use dc_present, only: present_select, present_and_not_empty
use dc_types, only: DP, STRING
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file
character(*), intent(in):: varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
integer, intent(out) :: array
logical, intent(out), optional:: err
integer :: array_tmp(1)
character(*), parameter :: subname = "HistoryGetInt0"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))
if (present_and_not_empty(range)) then
call HistoryGetIntEx(file = file, varname = varname, array = array_tmp, range = range, quiet = quiet, err = err)
else
call HistoryGetIntEx(file = file, varname = varname, array = array_tmp, quiet = quiet, err = err)
end if
array = array_tmp(1)
call EndSub(subname)
end subroutine HistoryGetInt0
| Subroutine : | |
| file : | character(*), intent(in) |
| varname : | character(*), intent(in) |
| array : | integer, pointer |
| range : | character(*), intent(in), optional |
| quiet : | logical, intent(in), optional |
| err : | logical, intent(out), optional |
subroutine HistoryGetInt0Pointer(file, varname, array, range, quiet, err)
!
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Inquire, Close, Get
use dc_string, only: toChar
use dc_present, only: present_select, present_and_true
use dc_types, only: DP, STRING
use dc_message, only: MessageNotify
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file
character(*), intent(in):: varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
integer, pointer :: array
logical, intent(out), optional:: err
integer, target :: array_tmp(1)
type(GT_VARIABLE) :: var
character(STRING) :: url, actual_url
integer:: domain ! 変数の入出力領域の大きさ
! (= 変数が依存する各次元サイズの積)
character(*), parameter :: subname = "HistoryGetInt0Pointer"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
! 必要な情報を gtool 変数化
call lookup_growable_url(file, varname, url, range, err)
allocate(array)
! いよいよデータ取得
call Open(var, url, err)
call Inquire(var=var, size=domain)
call Get(var, array_tmp, domain, err)
call Close(var, err)
array = array_tmp(1)
call actual_iorange_dump(url, actual_url, err)
if ( .not. present_and_true(quiet) ) then
call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
end if
call EndSub(subname)
end subroutine
| Subroutine : | |
| file : | character(*), intent(in) |
| varname : | character(*), intent(in) |
| array(:) : | integer, intent(out) |
| range : | character(*), intent(in), optional |
| quiet : | logical, intent(in), optional |
| err : | logical, intent(out), optional |
Int 型固定配列用 1 次元配列用データ入力サブルーチン
subroutine HistoryGetInt1(file, varname, array, range, quiet, err)
!
! Int 型固定配列用 1 次元配列用データ入力サブルーチン
!
!
use dc_string, only: toChar
use dc_present,only: present_select, present_and_not_empty
use dc_types, only: DP, STRING
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file
character(*), intent(in):: varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
integer, intent(out) :: array(:)
logical, intent(out), optional:: err
character(*), parameter :: subname = "HistoryGetInt1"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))
if (present_and_not_empty(range)) then
call HistoryGetIntEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
else
call HistoryGetIntEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
endif
call EndSub(subname)
end subroutine HistoryGetInt1
| Subroutine : | |||
| file : | character(*), intent(in) | ||
| varname : | character(*), intent(in) | ||
| array(:) : | integer, pointer
| ||
| range : | character(*), intent(in), optional | ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional |
Int 型ポインタ配列用 1 次元配列用データ入力サブルーチン
subroutine HistoryGetInt1Pointer(file, varname, array, range, quiet, err)
!
! Int 型ポインタ配列用 1 次元配列用データ入力サブルーチン
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Inquire, Close, Get
use dc_string, only: toChar
use dc_present,only: present_select, present_and_true
use dc_types, only: DP, STRING
use dc_message, only: MessageNotify
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file, varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
logical, intent(out), optional:: err
integer, pointer :: array(:) ! (out)
type(GT_VARIABLE) :: var
character(STRING) :: url, actual_url
character(*), parameter :: subname = "HistoryGetInt1Pointer"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
! 必要な情報を gtool 変数化
call lookup_growable_url(file, varname, url, range, err)
call DbgMessage('@ url =%c', c1=trim(url))
! いよいよデータ取得
call Open(var, url, err)
call Get(var, array, err)
call Close(var, err)
call actual_iorange_dump(url, actual_url, err)
if ( .not. present_and_true(quiet) ) then
call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
end if
call EndSub(subname)
end subroutine
| Subroutine : | |
| file : | character(*), intent(in) |
| varname : | character(*), intent(in) |
| array(:,:) : | integer, intent(out) |
| range : | character(*), intent(in), optional |
| quiet : | logical, intent(in), optional |
| err : | logical, intent(out), optional |
Int 型固定配列用 2 次元配列用データ入力サブルーチン
subroutine HistoryGetInt2(file, varname, array, range, quiet, err)
!
! Int 型固定配列用 2 次元配列用データ入力サブルーチン
!
!
use dc_string, only: toChar
use dc_present,only: present_select, present_and_not_empty
use dc_types, only: DP, STRING
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file
character(*), intent(in):: varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
integer, intent(out) :: array(:,:)
logical, intent(out), optional:: err
character(*), parameter :: subname = "HistoryGetInt2"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))
if (present_and_not_empty(range)) then
call HistoryGetIntEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
else
call HistoryGetIntEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
endif
call EndSub(subname)
end subroutine HistoryGetInt2
| Subroutine : | |||
| file : | character(*), intent(in) | ||
| varname : | character(*), intent(in) | ||
| array(:,:) : | integer, pointer
| ||
| range : | character(*), intent(in), optional | ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional |
Int 型ポインタ配列用 2 次元配列用データ入力サブルーチン
subroutine HistoryGetInt2Pointer(file, varname, array, range, quiet, err)
!
! Int 型ポインタ配列用 2 次元配列用データ入力サブルーチン
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Inquire, Close, Get
use dc_string, only: toChar
use dc_present,only: present_select, present_and_true
use dc_types, only: DP, STRING
use dc_message, only: MessageNotify
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file, varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
logical, intent(out), optional:: err
integer, pointer :: array(:,:) ! (out)
type(GT_VARIABLE) :: var
character(STRING) :: url, actual_url
character(*), parameter :: subname = "HistoryGetInt2Pointer"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
! 必要な情報を gtool 変数化
call lookup_growable_url(file, varname, url, range, err)
call DbgMessage('@ url =%c', c1=trim(url))
! いよいよデータ取得
call Open(var, url, err)
call Get(var, array, err)
call Close(var, err)
call actual_iorange_dump(url, actual_url, err)
if ( .not. present_and_true(quiet) ) then
call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
end if
call EndSub(subname)
end subroutine
| Subroutine : | |
| file : | character(*), intent(in) |
| varname : | character(*), intent(in) |
| array(:,:,:) : | integer, intent(out) |
| range : | character(*), intent(in), optional |
| quiet : | logical, intent(in), optional |
| err : | logical, intent(out), optional |
Int 型固定配列用 3 次元配列用データ入力サブルーチン
subroutine HistoryGetInt3(file, varname, array, range, quiet, err)
!
! Int 型固定配列用 3 次元配列用データ入力サブルーチン
!
!
use dc_string, only: toChar
use dc_present,only: present_select, present_and_not_empty
use dc_types, only: DP, STRING
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file
character(*), intent(in):: varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
integer, intent(out) :: array(:,:,:)
logical, intent(out), optional:: err
character(*), parameter :: subname = "HistoryGetInt3"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))
if (present_and_not_empty(range)) then
call HistoryGetIntEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
else
call HistoryGetIntEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
endif
call EndSub(subname)
end subroutine HistoryGetInt3
| Subroutine : | |||
| file : | character(*), intent(in) | ||
| varname : | character(*), intent(in) | ||
| array(:,:,:) : | integer, pointer
| ||
| range : | character(*), intent(in), optional | ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional |
Int 型ポインタ配列用 3 次元配列用データ入力サブルーチン
subroutine HistoryGetInt3Pointer(file, varname, array, range, quiet, err)
!
! Int 型ポインタ配列用 3 次元配列用データ入力サブルーチン
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Inquire, Close, Get
use dc_string, only: toChar
use dc_present,only: present_select, present_and_true
use dc_types, only: DP, STRING
use dc_message, only: MessageNotify
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file, varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
logical, intent(out), optional:: err
integer, pointer :: array(:,:,:) ! (out)
type(GT_VARIABLE) :: var
character(STRING) :: url, actual_url
character(*), parameter :: subname = "HistoryGetInt3Pointer"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
! 必要な情報を gtool 変数化
call lookup_growable_url(file, varname, url, range, err)
call DbgMessage('@ url =%c', c1=trim(url))
! いよいよデータ取得
call Open(var, url, err)
call Get(var, array, err)
call Close(var, err)
call actual_iorange_dump(url, actual_url, err)
if ( .not. present_and_true(quiet) ) then
call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
end if
call EndSub(subname)
end subroutine
| Subroutine : | |
| file : | character(*), intent(in) |
| varname : | character(*), intent(in) |
| array(:,:,:,:) : | integer, intent(out) |
| range : | character(*), intent(in), optional |
| quiet : | logical, intent(in), optional |
| err : | logical, intent(out), optional |
Int 型固定配列用 4 次元配列用データ入力サブルーチン
subroutine HistoryGetInt4(file, varname, array, range, quiet, err)
!
! Int 型固定配列用 4 次元配列用データ入力サブルーチン
!
!
use dc_string, only: toChar
use dc_present,only: present_select, present_and_not_empty
use dc_types, only: DP, STRING
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file
character(*), intent(in):: varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
integer, intent(out) :: array(:,:,:,:)
logical, intent(out), optional:: err
character(*), parameter :: subname = "HistoryGetInt4"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))
if (present_and_not_empty(range)) then
call HistoryGetIntEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
else
call HistoryGetIntEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
endif
call EndSub(subname)
end subroutine HistoryGetInt4
| Subroutine : | |||
| file : | character(*), intent(in) | ||
| varname : | character(*), intent(in) | ||
| array(:,:,:,:) : | integer, pointer
| ||
| range : | character(*), intent(in), optional | ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional |
Int 型ポインタ配列用 4 次元配列用データ入力サブルーチン
subroutine HistoryGetInt4Pointer(file, varname, array, range, quiet, err)
!
! Int 型ポインタ配列用 4 次元配列用データ入力サブルーチン
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Inquire, Close, Get
use dc_string, only: toChar
use dc_present,only: present_select, present_and_true
use dc_types, only: DP, STRING
use dc_message, only: MessageNotify
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file, varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
logical, intent(out), optional:: err
integer, pointer :: array(:,:,:,:) ! (out)
type(GT_VARIABLE) :: var
character(STRING) :: url, actual_url
character(*), parameter :: subname = "HistoryGetInt4Pointer"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
! 必要な情報を gtool 変数化
call lookup_growable_url(file, varname, url, range, err)
call DbgMessage('@ url =%c', c1=trim(url))
! いよいよデータ取得
call Open(var, url, err)
call Get(var, array, err)
call Close(var, err)
call actual_iorange_dump(url, actual_url, err)
if ( .not. present_and_true(quiet) ) then
call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
end if
call EndSub(subname)
end subroutine
| Subroutine : | |
| file : | character(*), intent(in) |
| varname : | character(*), intent(in) |
| array(:,:,:,:,:) : | integer, intent(out) |
| range : | character(*), intent(in), optional |
| quiet : | logical, intent(in), optional |
| err : | logical, intent(out), optional |
Int 型固定配列用 5 次元配列用データ入力サブルーチン
subroutine HistoryGetInt5(file, varname, array, range, quiet, err)
!
! Int 型固定配列用 5 次元配列用データ入力サブルーチン
!
!
use dc_string, only: toChar
use dc_present,only: present_select, present_and_not_empty
use dc_types, only: DP, STRING
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file
character(*), intent(in):: varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
integer, intent(out) :: array(:,:,:,:,:)
logical, intent(out), optional:: err
character(*), parameter :: subname = "HistoryGetInt5"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))
if (present_and_not_empty(range)) then
call HistoryGetIntEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
else
call HistoryGetIntEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
endif
call EndSub(subname)
end subroutine HistoryGetInt5
| Subroutine : | |||
| file : | character(*), intent(in) | ||
| varname : | character(*), intent(in) | ||
| array(:,:,:,:,:) : | integer, pointer
| ||
| range : | character(*), intent(in), optional | ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional |
Int 型ポインタ配列用 5 次元配列用データ入力サブルーチン
subroutine HistoryGetInt5Pointer(file, varname, array, range, quiet, err)
!
! Int 型ポインタ配列用 5 次元配列用データ入力サブルーチン
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Inquire, Close, Get
use dc_string, only: toChar
use dc_present,only: present_select, present_and_true
use dc_types, only: DP, STRING
use dc_message, only: MessageNotify
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file, varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
logical, intent(out), optional:: err
integer, pointer :: array(:,:,:,:,:) ! (out)
type(GT_VARIABLE) :: var
character(STRING) :: url, actual_url
character(*), parameter :: subname = "HistoryGetInt5Pointer"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
! 必要な情報を gtool 変数化
call lookup_growable_url(file, varname, url, range, err)
call DbgMessage('@ url =%c', c1=trim(url))
! いよいよデータ取得
call Open(var, url, err)
call Get(var, array, err)
call Close(var, err)
call actual_iorange_dump(url, actual_url, err)
if ( .not. present_and_true(quiet) ) then
call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
end if
call EndSub(subname)
end subroutine
| Subroutine : | |
| file : | character(*), intent(in) |
| varname : | character(*), intent(in) |
| array(:,:,:,:,:,:) : | integer, intent(out) |
| range : | character(*), intent(in), optional |
| quiet : | logical, intent(in), optional |
| err : | logical, intent(out), optional |
Int 型固定配列用 6 次元配列用データ入力サブルーチン
subroutine HistoryGetInt6(file, varname, array, range, quiet, err)
!
! Int 型固定配列用 6 次元配列用データ入力サブルーチン
!
!
use dc_string, only: toChar
use dc_present,only: present_select, present_and_not_empty
use dc_types, only: DP, STRING
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file
character(*), intent(in):: varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
integer, intent(out) :: array(:,:,:,:,:,:)
logical, intent(out), optional:: err
character(*), parameter :: subname = "HistoryGetInt6"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))
if (present_and_not_empty(range)) then
call HistoryGetIntEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
else
call HistoryGetIntEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
endif
call EndSub(subname)
end subroutine HistoryGetInt6
| Subroutine : | |||
| file : | character(*), intent(in) | ||
| varname : | character(*), intent(in) | ||
| array(:,:,:,:,:,:) : | integer, pointer
| ||
| range : | character(*), intent(in), optional | ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional |
Int 型ポインタ配列用 6 次元配列用データ入力サブルーチン
subroutine HistoryGetInt6Pointer(file, varname, array, range, quiet, err)
!
! Int 型ポインタ配列用 6 次元配列用データ入力サブルーチン
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Inquire, Close, Get
use dc_string, only: toChar
use dc_present,only: present_select, present_and_true
use dc_types, only: DP, STRING
use dc_message, only: MessageNotify
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file, varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
logical, intent(out), optional:: err
integer, pointer :: array(:,:,:,:,:,:) ! (out)
type(GT_VARIABLE) :: var
character(STRING) :: url, actual_url
character(*), parameter :: subname = "HistoryGetInt6Pointer"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
! 必要な情報を gtool 変数化
call lookup_growable_url(file, varname, url, range, err)
call DbgMessage('@ url =%c', c1=trim(url))
! いよいよデータ取得
call Open(var, url, err)
call Get(var, array, err)
call Close(var, err)
call actual_iorange_dump(url, actual_url, err)
if ( .not. present_and_true(quiet) ) then
call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
end if
call EndSub(subname)
end subroutine
| Subroutine : | |
| file : | character(*), intent(in) |
| varname : | character(*), intent(in) |
| array(:,:,:,:,:,:,:) : | integer, intent(out) |
| range : | character(*), intent(in), optional |
| quiet : | logical, intent(in), optional |
| err : | logical, intent(out), optional |
Int 型固定配列用 7 次元配列用データ入力サブルーチン
subroutine HistoryGetInt7(file, varname, array, range, quiet, err)
!
! Int 型固定配列用 7 次元配列用データ入力サブルーチン
!
!
use dc_string, only: toChar
use dc_present,only: present_select, present_and_not_empty
use dc_types, only: DP, STRING
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file
character(*), intent(in):: varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
integer, intent(out) :: array(:,:,:,:,:,:,:)
logical, intent(out), optional:: err
character(*), parameter :: subname = "HistoryGetInt7"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))
if (present_and_not_empty(range)) then
call HistoryGetIntEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
else
call HistoryGetIntEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
endif
call EndSub(subname)
end subroutine HistoryGetInt7
| Subroutine : | |||
| file : | character(*), intent(in) | ||
| varname : | character(*), intent(in) | ||
| array(:,:,:,:,:,:,:) : | integer, pointer
| ||
| range : | character(*), intent(in), optional | ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional |
Int 型ポインタ配列用 7 次元配列用データ入力サブルーチン
subroutine HistoryGetInt7Pointer(file, varname, array, range, quiet, err)
!
! Int 型ポインタ配列用 7 次元配列用データ入力サブルーチン
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Inquire, Close, Get
use dc_string, only: toChar
use dc_present,only: present_select, present_and_true
use dc_types, only: DP, STRING
use dc_message, only: MessageNotify
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file, varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
logical, intent(out), optional:: err
integer, pointer :: array(:,:,:,:,:,:,:) ! (out)
type(GT_VARIABLE) :: var
character(STRING) :: url, actual_url
character(*), parameter :: subname = "HistoryGetInt7Pointer"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
! 必要な情報を gtool 変数化
call lookup_growable_url(file, varname, url, range, err)
call DbgMessage('@ url =%c', c1=trim(url))
! いよいよデータ取得
call Open(var, url, err)
call Get(var, array, err)
call Close(var, err)
call actual_iorange_dump(url, actual_url, err)
if ( .not. present_and_true(quiet) ) then
call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
end if
call EndSub(subname)
end subroutine
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array(*) : | integer, intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.
This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
subroutine HistoryGetIntEx(file, varname, array, range, quiet, err)
!
! このサブルーチンは gt4_history の内部で呼び出される
! ことを想定されています. gt4_history モジュールの外部からは
! 呼び出さないで下さい.
!
! This subroutine is expected to be refereed in gt4_history internally.
! Do not refer from the outside of gt4_history.
!
! netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定
! していますが, 大抵の netCDF データの入力は可能であると期待されます.
!
! Input netCDF data. NetCDF data with gtool4 conventions is assumed,
! but most netCDF data is expected to be input.
!
! *file* にファイル名を, *varname* に変数名を与えます.
! *array* にはファイルから入力されたデータが返ります.
! ポインタの配列へデータを入力を行う場合は,
! HistoryGetPointer を利用してください.
!
! Give filename to *file*, variable name to *varname*.
! Input data is returned to *array*.
! If you want to use pointer array, use HistoryGetPointer .
!
! デフォルトでは, ファイル内の最新データ, すなわちデータを
! 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを
! 入力したい場合には, 下記の *range* オプションを利用してください.
!
! By default, recent data, that is to say, data clipped with
! maximum time is input. In order to input data clipped with
! other time, use *range* option as follows.
!
! *range* には gtool4 のコンマ記法
! ({gtool4 netCDF 規約}[link:../xref.htm#label-6] の「5.4 コンマ記法」参照)
! を与えることで, 入力データの一部を切り出すことが可能です.
!
! Give gtool4 comma-graphy
! (See "5.4 gtool4 comma-graphy" in {gtool4 netCDF Convention}[link:../xref.htm#label-6])
! to *range*, then input data is clipped.
!
! デフォルトでは, データの入力時にどのファイルのどの変数が
! どの次元で切り出されて入力されたのかを表示します.
! メッセージ出力が不要な場合は *quiet* に .true. を与えてください.
!
! By default, when data is input, filename and variable name and
! clipping information is printed.
! The message is suppressed when .true. is given to *quiet*
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Inquire, Close, Get
use dc_string, only: toChar, Split, JoinChar, StoA
use dc_url, only: GT_ATMARK, GT_COMMA, GT_EQUAL, UrlSplit, UrlMerge
use dc_present, only: present_select, present_and_not_empty, present_and_true
use regex, only: match
use dc_types, only: DP, STRING
use dc_message, only: MessageNotify
use dc_trace, only: Beginsub, Endsub, DbgMessage
use dc_error, only: StoreError, DC_NOERR, GT_ENOTURL
character(*), intent(in):: file ! ファイル名. Filename
character(*), intent(in):: varname ! 変数名. Variable name
character(*), intent(in), optional:: range
! 切り出し用オプション.
! gtool4 変数のコンマ記法で記述
! {(例: time=100.0,x=10:20,y=^1:^5)}
!
! 詳しくは
! {gtool4 netCDF 規約}[link:../xref.htm#label-6]
! の「5.4 コンマ記法」を参照して
! ください.
!
! 数値のみが与えられる場合
! (※ 引数の型は常に文字型です.
! ここでの「数値」は
! "<b><tt>10.0</tt></b>"
! のような文字列
! を指します), この値は時刻
! (正確には netCDF の無制限次元)
! の値として扱われます.
!
! Option for clipping.
! Give gtool4 comma-graphy
! {(ex. time=100.0,x=10:20,y=^1:^5)}
!
! For details, see "5.4 gtool4
! comma-graphy" in
! {gtool4 netCDF Convention}[link:../xref.htm#label-6]
!
! When pure numerical value is given
! (Type of argument is character.
! In this case, the "pure numerical
! value" means a character like
! "<b><tt>10.0</tt></b>")
! the value is treated as time
! (to be exact, unlimited dimension).
!
logical, intent(in), optional:: quiet
integer, intent(out):: array(*) ! データ. Data
type(GT_VARIABLE) :: var
character(STRING) :: url, actual_url
integer:: domain ! 変数の入出力領域の大きさ
! (= 変数が依存する各次元サイズの積)
logical, intent(out), optional:: err
! 例外処理用フラグ.
! デフォルトでは, この手続き内でエラーが
! 生じた場合, プログラムは強制終了します.
! 引数 *err* が与えられる場合,
! プログラムは強制終了せず, 代わりに
! *err* に .true. が代入されます.
!
! Exception handling flag.
! By default, when error occur in
! this procedure, the program aborts.
! If this *err* argument is given,
! .true. is substituted to *err* and
! the program does not abort.
integer:: stat
character(STRING):: cause_c
character(*), parameter :: subname = "HistoryGetIntEx"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
cause_c = ''
stat = DC_NOERR
call lookup_growable_url(file, varname, url, range, err = err)
if ( present_and_true(err) ) then
stat = GT_ENOTURL
cause_c = url
goto 999
end if
call Open(var, url, err = err)
if ( present_and_true(err) ) then
stat = GT_ENOTURL
cause_c = url
goto 999
end if
call Inquire(var = var, size = domain)
call Get(var, array, domain)
call Close(var)
call actual_iorange_dump(url, actual_url, err = err)
if ( .not. present_and_true(quiet) ) then
call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
end if
999 continue
call StoreError(stat, subname, err, cause_c)
call EndSub(subname)
end subroutine HistoryGetIntEx
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array(*) : | integer, intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.
This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
Original external subprogram is historyget.f90#HistoryGetIntEx
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array(*) : | integer, intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.
This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
Original external subprogram is historyget.f90#HistoryGetIntEx
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array(*) : | integer, intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.
This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
Original external subprogram is historyget.f90#HistoryGetIntEx
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array(*) : | integer, intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.
This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
Original external subprogram is historyget.f90#HistoryGetIntEx
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array(*) : | integer, intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.
This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
Original external subprogram is historyget.f90#HistoryGetIntEx
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array(*) : | integer, intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.
This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
Original external subprogram is historyget.f90#HistoryGetIntEx
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array(*) : | integer, intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.
This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
Original external subprogram is historyget.f90#HistoryGetIntEx
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array(*) : | integer, intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.
This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
Original external subprogram is historyget.f90#HistoryGetIntEx
| Subroutine : | |
| file : | character(*), intent(in) |
| varname : | character(*), intent(in) |
| array : | real, intent(out) |
| range : | character(*), intent(in), optional |
| quiet : | logical, intent(in), optional |
| err : | logical, intent(out), optional |
subroutine HistoryGetReal0(file, varname, array, range, quiet, err)
!
!
use dc_string, only: toChar
use dc_present, only: present_select, present_and_not_empty
use dc_types, only: DP, STRING
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file
character(*), intent(in):: varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
real, intent(out) :: array
logical, intent(out), optional:: err
real :: array_tmp(1)
character(*), parameter :: subname = "HistoryGetReal0"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))
if (present_and_not_empty(range)) then
call HistoryGetRealEx(file = file, varname = varname, array = array_tmp, range = range, quiet = quiet, err = err)
else
call HistoryGetRealEx(file = file, varname = varname, array = array_tmp, quiet = quiet, err = err)
end if
array = array_tmp(1)
call EndSub(subname)
end subroutine HistoryGetReal0
| Subroutine : | |
| file : | character(*), intent(in) |
| varname : | character(*), intent(in) |
| array : | real, pointer |
| range : | character(*), intent(in), optional |
| quiet : | logical, intent(in), optional |
| err : | logical, intent(out), optional |
subroutine HistoryGetReal0Pointer(file, varname, array, range, quiet, err)
!
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Inquire, Close, Get
use dc_string, only: toChar
use dc_present, only: present_select, present_and_true
use dc_types, only: DP, STRING
use dc_message, only: MessageNotify
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file
character(*), intent(in):: varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
real, pointer :: array
logical, intent(out), optional:: err
real, target :: array_tmp(1)
type(GT_VARIABLE) :: var
character(STRING) :: url, actual_url
integer:: domain ! 変数の入出力領域の大きさ
! (= 変数が依存する各次元サイズの積)
character(*), parameter :: subname = "HistoryGetReal0Pointer"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
! 必要な情報を gtool 変数化
call lookup_growable_url(file, varname, url, range, err)
allocate(array)
! いよいよデータ取得
call Open(var, url, err)
call Inquire(var=var, size=domain)
call Get(var, array_tmp, domain, err)
call Close(var, err)
array = array_tmp(1)
call actual_iorange_dump(url, actual_url, err)
if ( .not. present_and_true(quiet) ) then
call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
end if
call EndSub(subname)
end subroutine
| Subroutine : | |
| file : | character(*), intent(in) |
| varname : | character(*), intent(in) |
| array(:) : | real, intent(out) |
| range : | character(*), intent(in), optional |
| quiet : | logical, intent(in), optional |
| err : | logical, intent(out), optional |
Real 型固定配列用 1 次元配列用データ入力サブルーチン
subroutine HistoryGetReal1(file, varname, array, range, quiet, err)
!
! Real 型固定配列用 1 次元配列用データ入力サブルーチン
!
!
use dc_string, only: toChar
use dc_present,only: present_select, present_and_not_empty
use dc_types, only: DP, STRING
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file
character(*), intent(in):: varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
real, intent(out) :: array(:)
logical, intent(out), optional:: err
character(*), parameter :: subname = "HistoryGetReal1"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))
if (present_and_not_empty(range)) then
call HistoryGetRealEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
else
call HistoryGetRealEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
endif
call EndSub(subname)
end subroutine HistoryGetReal1
| Subroutine : | |||
| file : | character(*), intent(in) | ||
| varname : | character(*), intent(in) | ||
| array(:) : | real, pointer
| ||
| range : | character(*), intent(in), optional | ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional |
Real 型ポインタ配列用 1 次元配列用データ入力サブルーチン
subroutine HistoryGetReal1Pointer(file, varname, array, range, quiet, err)
!
! Real 型ポインタ配列用 1 次元配列用データ入力サブルーチン
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Inquire, Close, Get
use dc_string, only: toChar
use dc_present,only: present_select, present_and_true
use dc_types, only: DP, STRING
use dc_message, only: MessageNotify
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file, varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
logical, intent(out), optional:: err
real, pointer :: array(:) ! (out)
type(GT_VARIABLE) :: var
character(STRING) :: url, actual_url
character(*), parameter :: subname = "HistoryGetReal1Pointer"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
! 必要な情報を gtool 変数化
call lookup_growable_url(file, varname, url, range, err)
call DbgMessage('@ url =%c', c1=trim(url))
! いよいよデータ取得
call Open(var, url, err)
call Get(var, array, err)
call Close(var, err)
call actual_iorange_dump(url, actual_url, err)
if ( .not. present_and_true(quiet) ) then
call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
end if
call EndSub(subname)
end subroutine
| Subroutine : | |
| file : | character(*), intent(in) |
| varname : | character(*), intent(in) |
| array(:,:) : | real, intent(out) |
| range : | character(*), intent(in), optional |
| quiet : | logical, intent(in), optional |
| err : | logical, intent(out), optional |
Real 型固定配列用 2 次元配列用データ入力サブルーチン
subroutine HistoryGetReal2(file, varname, array, range, quiet, err)
!
! Real 型固定配列用 2 次元配列用データ入力サブルーチン
!
!
use dc_string, only: toChar
use dc_present,only: present_select, present_and_not_empty
use dc_types, only: DP, STRING
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file
character(*), intent(in):: varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
real, intent(out) :: array(:,:)
logical, intent(out), optional:: err
character(*), parameter :: subname = "HistoryGetReal2"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))
if (present_and_not_empty(range)) then
call HistoryGetRealEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
else
call HistoryGetRealEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
endif
call EndSub(subname)
end subroutine HistoryGetReal2
| Subroutine : | |||
| file : | character(*), intent(in) | ||
| varname : | character(*), intent(in) | ||
| array(:,:) : | real, pointer
| ||
| range : | character(*), intent(in), optional | ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional |
Real 型ポインタ配列用 2 次元配列用データ入力サブルーチン
subroutine HistoryGetReal2Pointer(file, varname, array, range, quiet, err)
!
! Real 型ポインタ配列用 2 次元配列用データ入力サブルーチン
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Inquire, Close, Get
use dc_string, only: toChar
use dc_present,only: present_select, present_and_true
use dc_types, only: DP, STRING
use dc_message, only: MessageNotify
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file, varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
logical, intent(out), optional:: err
real, pointer :: array(:,:) ! (out)
type(GT_VARIABLE) :: var
character(STRING) :: url, actual_url
character(*), parameter :: subname = "HistoryGetReal2Pointer"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
! 必要な情報を gtool 変数化
call lookup_growable_url(file, varname, url, range, err)
call DbgMessage('@ url =%c', c1=trim(url))
! いよいよデータ取得
call Open(var, url, err)
call Get(var, array, err)
call Close(var, err)
call actual_iorange_dump(url, actual_url, err)
if ( .not. present_and_true(quiet) ) then
call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
end if
call EndSub(subname)
end subroutine
| Subroutine : | |
| file : | character(*), intent(in) |
| varname : | character(*), intent(in) |
| array(:,:,:) : | real, intent(out) |
| range : | character(*), intent(in), optional |
| quiet : | logical, intent(in), optional |
| err : | logical, intent(out), optional |
Real 型固定配列用 3 次元配列用データ入力サブルーチン
subroutine HistoryGetReal3(file, varname, array, range, quiet, err)
!
! Real 型固定配列用 3 次元配列用データ入力サブルーチン
!
!
use dc_string, only: toChar
use dc_present,only: present_select, present_and_not_empty
use dc_types, only: DP, STRING
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file
character(*), intent(in):: varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
real, intent(out) :: array(:,:,:)
logical, intent(out), optional:: err
character(*), parameter :: subname = "HistoryGetReal3"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))
if (present_and_not_empty(range)) then
call HistoryGetRealEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
else
call HistoryGetRealEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
endif
call EndSub(subname)
end subroutine HistoryGetReal3
| Subroutine : | |||
| file : | character(*), intent(in) | ||
| varname : | character(*), intent(in) | ||
| array(:,:,:) : | real, pointer
| ||
| range : | character(*), intent(in), optional | ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional |
Real 型ポインタ配列用 3 次元配列用データ入力サブルーチン
subroutine HistoryGetReal3Pointer(file, varname, array, range, quiet, err)
!
! Real 型ポインタ配列用 3 次元配列用データ入力サブルーチン
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Inquire, Close, Get
use dc_string, only: toChar
use dc_present,only: present_select, present_and_true
use dc_types, only: DP, STRING
use dc_message, only: MessageNotify
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file, varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
logical, intent(out), optional:: err
real, pointer :: array(:,:,:) ! (out)
type(GT_VARIABLE) :: var
character(STRING) :: url, actual_url
character(*), parameter :: subname = "HistoryGetReal3Pointer"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
! 必要な情報を gtool 変数化
call lookup_growable_url(file, varname, url, range, err)
call DbgMessage('@ url =%c', c1=trim(url))
! いよいよデータ取得
call Open(var, url, err)
call Get(var, array, err)
call Close(var, err)
call actual_iorange_dump(url, actual_url, err)
if ( .not. present_and_true(quiet) ) then
call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
end if
call EndSub(subname)
end subroutine
| Subroutine : | |
| file : | character(*), intent(in) |
| varname : | character(*), intent(in) |
| array(:,:,:,:) : | real, intent(out) |
| range : | character(*), intent(in), optional |
| quiet : | logical, intent(in), optional |
| err : | logical, intent(out), optional |
Real 型固定配列用 4 次元配列用データ入力サブルーチン
subroutine HistoryGetReal4(file, varname, array, range, quiet, err)
!
! Real 型固定配列用 4 次元配列用データ入力サブルーチン
!
!
use dc_string, only: toChar
use dc_present,only: present_select, present_and_not_empty
use dc_types, only: DP, STRING
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file
character(*), intent(in):: varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
real, intent(out) :: array(:,:,:,:)
logical, intent(out), optional:: err
character(*), parameter :: subname = "HistoryGetReal4"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))
if (present_and_not_empty(range)) then
call HistoryGetRealEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
else
call HistoryGetRealEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
endif
call EndSub(subname)
end subroutine HistoryGetReal4
| Subroutine : | |||
| file : | character(*), intent(in) | ||
| varname : | character(*), intent(in) | ||
| array(:,:,:,:) : | real, pointer
| ||
| range : | character(*), intent(in), optional | ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional |
Real 型ポインタ配列用 4 次元配列用データ入力サブルーチン
subroutine HistoryGetReal4Pointer(file, varname, array, range, quiet, err)
!
! Real 型ポインタ配列用 4 次元配列用データ入力サブルーチン
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Inquire, Close, Get
use dc_string, only: toChar
use dc_present,only: present_select, present_and_true
use dc_types, only: DP, STRING
use dc_message, only: MessageNotify
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file, varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
logical, intent(out), optional:: err
real, pointer :: array(:,:,:,:) ! (out)
type(GT_VARIABLE) :: var
character(STRING) :: url, actual_url
character(*), parameter :: subname = "HistoryGetReal4Pointer"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
! 必要な情報を gtool 変数化
call lookup_growable_url(file, varname, url, range, err)
call DbgMessage('@ url =%c', c1=trim(url))
! いよいよデータ取得
call Open(var, url, err)
call Get(var, array, err)
call Close(var, err)
call actual_iorange_dump(url, actual_url, err)
if ( .not. present_and_true(quiet) ) then
call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
end if
call EndSub(subname)
end subroutine
| Subroutine : | |
| file : | character(*), intent(in) |
| varname : | character(*), intent(in) |
| array(:,:,:,:,:) : | real, intent(out) |
| range : | character(*), intent(in), optional |
| quiet : | logical, intent(in), optional |
| err : | logical, intent(out), optional |
Real 型固定配列用 5 次元配列用データ入力サブルーチン
subroutine HistoryGetReal5(file, varname, array, range, quiet, err)
!
! Real 型固定配列用 5 次元配列用データ入力サブルーチン
!
!
use dc_string, only: toChar
use dc_present,only: present_select, present_and_not_empty
use dc_types, only: DP, STRING
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file
character(*), intent(in):: varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
real, intent(out) :: array(:,:,:,:,:)
logical, intent(out), optional:: err
character(*), parameter :: subname = "HistoryGetReal5"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))
if (present_and_not_empty(range)) then
call HistoryGetRealEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
else
call HistoryGetRealEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
endif
call EndSub(subname)
end subroutine HistoryGetReal5
| Subroutine : | |||
| file : | character(*), intent(in) | ||
| varname : | character(*), intent(in) | ||
| array(:,:,:,:,:) : | real, pointer
| ||
| range : | character(*), intent(in), optional | ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional |
Real 型ポインタ配列用 5 次元配列用データ入力サブルーチン
subroutine HistoryGetReal5Pointer(file, varname, array, range, quiet, err)
!
! Real 型ポインタ配列用 5 次元配列用データ入力サブルーチン
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Inquire, Close, Get
use dc_string, only: toChar
use dc_present,only: present_select, present_and_true
use dc_types, only: DP, STRING
use dc_message, only: MessageNotify
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file, varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
logical, intent(out), optional:: err
real, pointer :: array(:,:,:,:,:) ! (out)
type(GT_VARIABLE) :: var
character(STRING) :: url, actual_url
character(*), parameter :: subname = "HistoryGetReal5Pointer"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
! 必要な情報を gtool 変数化
call lookup_growable_url(file, varname, url, range, err)
call DbgMessage('@ url =%c', c1=trim(url))
! いよいよデータ取得
call Open(var, url, err)
call Get(var, array, err)
call Close(var, err)
call actual_iorange_dump(url, actual_url, err)
if ( .not. present_and_true(quiet) ) then
call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
end if
call EndSub(subname)
end subroutine
| Subroutine : | |
| file : | character(*), intent(in) |
| varname : | character(*), intent(in) |
| array(:,:,:,:,:,:) : | real, intent(out) |
| range : | character(*), intent(in), optional |
| quiet : | logical, intent(in), optional |
| err : | logical, intent(out), optional |
Real 型固定配列用 6 次元配列用データ入力サブルーチン
subroutine HistoryGetReal6(file, varname, array, range, quiet, err)
!
! Real 型固定配列用 6 次元配列用データ入力サブルーチン
!
!
use dc_string, only: toChar
use dc_present,only: present_select, present_and_not_empty
use dc_types, only: DP, STRING
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file
character(*), intent(in):: varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
real, intent(out) :: array(:,:,:,:,:,:)
logical, intent(out), optional:: err
character(*), parameter :: subname = "HistoryGetReal6"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))
if (present_and_not_empty(range)) then
call HistoryGetRealEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
else
call HistoryGetRealEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
endif
call EndSub(subname)
end subroutine HistoryGetReal6
| Subroutine : | |||
| file : | character(*), intent(in) | ||
| varname : | character(*), intent(in) | ||
| array(:,:,:,:,:,:) : | real, pointer
| ||
| range : | character(*), intent(in), optional | ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional |
Real 型ポインタ配列用 6 次元配列用データ入力サブルーチン
subroutine HistoryGetReal6Pointer(file, varname, array, range, quiet, err)
!
! Real 型ポインタ配列用 6 次元配列用データ入力サブルーチン
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Inquire, Close, Get
use dc_string, only: toChar
use dc_present,only: present_select, present_and_true
use dc_types, only: DP, STRING
use dc_message, only: MessageNotify
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file, varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
logical, intent(out), optional:: err
real, pointer :: array(:,:,:,:,:,:) ! (out)
type(GT_VARIABLE) :: var
character(STRING) :: url, actual_url
character(*), parameter :: subname = "HistoryGetReal6Pointer"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
! 必要な情報を gtool 変数化
call lookup_growable_url(file, varname, url, range, err)
call DbgMessage('@ url =%c', c1=trim(url))
! いよいよデータ取得
call Open(var, url, err)
call Get(var, array, err)
call Close(var, err)
call actual_iorange_dump(url, actual_url, err)
if ( .not. present_and_true(quiet) ) then
call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
end if
call EndSub(subname)
end subroutine
| Subroutine : | |
| file : | character(*), intent(in) |
| varname : | character(*), intent(in) |
| array(:,:,:,:,:,:,:) : | real, intent(out) |
| range : | character(*), intent(in), optional |
| quiet : | logical, intent(in), optional |
| err : | logical, intent(out), optional |
Real 型固定配列用 7 次元配列用データ入力サブルーチン
subroutine HistoryGetReal7(file, varname, array, range, quiet, err)
!
! Real 型固定配列用 7 次元配列用データ入力サブルーチン
!
!
use dc_string, only: toChar
use dc_present,only: present_select, present_and_not_empty
use dc_types, only: DP, STRING
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file
character(*), intent(in):: varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
real, intent(out) :: array(:,:,:,:,:,:,:)
logical, intent(out), optional:: err
character(*), parameter :: subname = "HistoryGetReal7"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1 = trim(file), c2 = trim(varname), c3 = trim(present_select('', 'no-range', range)))
if (present_and_not_empty(range)) then
call HistoryGetRealEx(file = file, varname = varname, array = array, range = range, quiet = quiet, err = err)
else
call HistoryGetRealEx(file = file, varname = varname, array = array, quiet = quiet, err = err)
endif
call EndSub(subname)
end subroutine HistoryGetReal7
| Subroutine : | |||
| file : | character(*), intent(in) | ||
| varname : | character(*), intent(in) | ||
| array(:,:,:,:,:,:,:) : | real, pointer
| ||
| range : | character(*), intent(in), optional | ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional |
Real 型ポインタ配列用 7 次元配列用データ入力サブルーチン
subroutine HistoryGetReal7Pointer(file, varname, array, range, quiet, err)
!
! Real 型ポインタ配列用 7 次元配列用データ入力サブルーチン
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Inquire, Close, Get
use dc_string, only: toChar
use dc_present,only: present_select, present_and_true
use dc_types, only: DP, STRING
use dc_message, only: MessageNotify
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in):: file, varname
character(*), intent(in), optional:: range
logical, intent(in), optional:: quiet
logical, intent(out), optional:: err
real, pointer :: array(:,:,:,:,:,:,:) ! (out)
type(GT_VARIABLE) :: var
character(STRING) :: url, actual_url
character(*), parameter :: subname = "HistoryGetReal7Pointer"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
! 必要な情報を gtool 変数化
call lookup_growable_url(file, varname, url, range, err)
call DbgMessage('@ url =%c', c1=trim(url))
! いよいよデータ取得
call Open(var, url, err)
call Get(var, array, err)
call Close(var, err)
call actual_iorange_dump(url, actual_url, err)
if ( .not. present_and_true(quiet) ) then
call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
end if
call EndSub(subname)
end subroutine
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array(*) : | real, intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.
This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
subroutine HistoryGetRealEx(file, varname, array, range, quiet, err)
!
! このサブルーチンは gt4_history の内部で呼び出される
! ことを想定されています. gt4_history モジュールの外部からは
! 呼び出さないで下さい.
!
! This subroutine is expected to be refereed in gt4_history internally.
! Do not refer from the outside of gt4_history.
!
! netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定
! していますが, 大抵の netCDF データの入力は可能であると期待されます.
!
! Input netCDF data. NetCDF data with gtool4 conventions is assumed,
! but most netCDF data is expected to be input.
!
! *file* にファイル名を, *varname* に変数名を与えます.
! *array* にはファイルから入力されたデータが返ります.
! ポインタの配列へデータを入力を行う場合は,
! HistoryGetPointer を利用してください.
!
! Give filename to *file*, variable name to *varname*.
! Input data is returned to *array*.
! If you want to use pointer array, use HistoryGetPointer .
!
! デフォルトでは, ファイル内の最新データ, すなわちデータを
! 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを
! 入力したい場合には, 下記の *range* オプションを利用してください.
!
! By default, recent data, that is to say, data clipped with
! maximum time is input. In order to input data clipped with
! other time, use *range* option as follows.
!
! *range* には gtool4 のコンマ記法
! ({gtool4 netCDF 規約}[link:../xref.htm#label-6] の「5.4 コンマ記法」参照)
! を与えることで, 入力データの一部を切り出すことが可能です.
!
! Give gtool4 comma-graphy
! (See "5.4 gtool4 comma-graphy" in {gtool4 netCDF Convention}[link:../xref.htm#label-6])
! to *range*, then input data is clipped.
!
! デフォルトでは, データの入力時にどのファイルのどの変数が
! どの次元で切り出されて入力されたのかを表示します.
! メッセージ出力が不要な場合は *quiet* に .true. を与えてください.
!
! By default, when data is input, filename and variable name and
! clipping information is printed.
! The message is suppressed when .true. is given to *quiet*
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Inquire, Close, Get
use dc_string, only: toChar, Split, JoinChar, StoA
use dc_url, only: GT_ATMARK, GT_COMMA, GT_EQUAL, UrlSplit, UrlMerge
use dc_present, only: present_select, present_and_not_empty, present_and_true
use regex, only: match
use dc_types, only: DP, STRING
use dc_message, only: MessageNotify
use dc_trace, only: Beginsub, Endsub, DbgMessage
use dc_error, only: StoreError, DC_NOERR, GT_ENOTURL
character(*), intent(in):: file ! ファイル名. Filename
character(*), intent(in):: varname ! 変数名. Variable name
character(*), intent(in), optional:: range
! 切り出し用オプション.
! gtool4 変数のコンマ記法で記述
! {(例: time=100.0,x=10:20,y=^1:^5)}
!
! 詳しくは
! {gtool4 netCDF 規約}[link:../xref.htm#label-6]
! の「5.4 コンマ記法」を参照して
! ください.
!
! 数値のみが与えられる場合
! (※ 引数の型は常に文字型です.
! ここでの「数値」は
! "<b><tt>10.0</tt></b>"
! のような文字列
! を指します), この値は時刻
! (正確には netCDF の無制限次元)
! の値として扱われます.
!
! Option for clipping.
! Give gtool4 comma-graphy
! {(ex. time=100.0,x=10:20,y=^1:^5)}
!
! For details, see "5.4 gtool4
! comma-graphy" in
! {gtool4 netCDF Convention}[link:../xref.htm#label-6]
!
! When pure numerical value is given
! (Type of argument is character.
! In this case, the "pure numerical
! value" means a character like
! "<b><tt>10.0</tt></b>")
! the value is treated as time
! (to be exact, unlimited dimension).
!
logical, intent(in), optional:: quiet
real, intent(out):: array(*) ! データ. Data
type(GT_VARIABLE) :: var
character(STRING) :: url, actual_url
integer:: domain ! 変数の入出力領域の大きさ
! (= 変数が依存する各次元サイズの積)
logical, intent(out), optional:: err
! 例外処理用フラグ.
! デフォルトでは, この手続き内でエラーが
! 生じた場合, プログラムは強制終了します.
! 引数 *err* が与えられる場合,
! プログラムは強制終了せず, 代わりに
! *err* に .true. が代入されます.
!
! Exception handling flag.
! By default, when error occur in
! this procedure, the program aborts.
! If this *err* argument is given,
! .true. is substituted to *err* and
! the program does not abort.
integer:: stat
character(STRING):: cause_c
character(*), parameter :: subname = "HistoryGetRealEx"
continue
call BeginSub(subname, 'file=%c varname=%c range=%c', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
cause_c = ''
stat = DC_NOERR
call lookup_growable_url(file, varname, url, range, err = err)
if ( present_and_true(err) ) then
stat = GT_ENOTURL
cause_c = url
goto 999
end if
call Open(var, url, err = err)
if ( present_and_true(err) ) then
stat = GT_ENOTURL
cause_c = url
goto 999
end if
call Inquire(var = var, size = domain)
call Get(var, array, domain)
call Close(var)
call actual_iorange_dump(url, actual_url, err = err)
if ( .not. present_and_true(quiet) ) then
call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url))
end if
999 continue
call StoreError(stat, subname, err, cause_c)
call EndSub(subname)
end subroutine HistoryGetRealEx
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array(*) : | real, intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.
This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
Original external subprogram is historyget.f90#HistoryGetRealEx
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array(*) : | real, intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.
This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
Original external subprogram is historyget.f90#HistoryGetRealEx
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array(*) : | real, intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.
This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
Original external subprogram is historyget.f90#HistoryGetRealEx
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array(*) : | real, intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.
This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
Original external subprogram is historyget.f90#HistoryGetRealEx
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array(*) : | real, intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.
This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
Original external subprogram is historyget.f90#HistoryGetRealEx
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array(*) : | real, intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.
This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
Original external subprogram is historyget.f90#HistoryGetRealEx
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array(*) : | real, intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.
This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
Original external subprogram is historyget.f90#HistoryGetRealEx
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| array(*) : | real, intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| quiet : | logical, intent(in), optional | ||
| err : | logical, intent(out), optional
|
このサブルーチンは gt4_history の内部で呼び出される ことを想定されています. gt4_history モジュールの外部からは 呼び出さないで下さい.
This subroutine is expected to be refereed in gt4_history internally. Do not refer from the outside of gt4_history.
netCDF データを入力します. gtool4 netCDF 規約に基づくデータを想定 していますが, 大抵の netCDF データの入力は可能であると期待されます.
Input netCDF data. NetCDF data with gtool4 conventions is assumed, but most netCDF data is expected to be input.
file にファイル名を, varname に変数名を与えます. array にはファイルから入力されたデータが返ります. ポインタの配列へデータを入力を行う場合は, HistoryGetPointer を利用してください.
Give filename to file, variable name to varname. Input data is returned to array. If you want to use pointer array, use HistoryGetPointer .
デフォルトでは, ファイル内の最新データ, すなわちデータを 時刻最大で切り出したものを入力します. 別の時刻で切り出したデータを 入力したい場合には, 下記の range オプションを利用してください.
By default, recent data, that is to say, data clipped with maximum time is input. In order to input data clipped with other time, use range option as follows.
range には gtool4 のコンマ記法 (gtool4 netCDF 規約 の「5.4 コンマ記法」参照) を与えることで, 入力データの一部を切り出すことが可能です.
Give gtool4 comma-graphy (See "5.4 gtool4 comma-graphy" in gtool4 netCDF Convention) to range, then input data is clipped.
デフォルトでは, データの入力時にどのファイルのどの変数が どの次元で切り出されて入力されたのかを表示します. メッセージ出力が不要な場合は quiet に .true. を与えてください.
By default, when data is input, filename and variable name and clipping information is printed. The message is suppressed when .true. is given to quiet
Original external subprogram is historyget.f90#HistoryGetRealEx
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| err : | logical, intent(out), optional
|
変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.
HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.
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
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| err : | logical, intent(out), optional
|
変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.
HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.
Original external subprogram is historyget.f90#actual_iorange_dump
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| err : | logical, intent(out), optional
|
変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.
HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.
Original external subprogram is historyget.f90#actual_iorange_dump
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| err : | logical, intent(out), optional
|
変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.
HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.
Original external subprogram is historyget.f90#actual_iorange_dump
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| err : | logical, intent(out), optional
|
変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.
HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.
Original external subprogram is historyget.f90#actual_iorange_dump
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| err : | logical, intent(out), optional
|
変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.
HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.
Original external subprogram is historyget.f90#actual_iorange_dump
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| err : | logical, intent(out), optional
|
変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.
HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.
Original external subprogram is historyget.f90#actual_iorange_dump
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| err : | logical, intent(out), optional
|
変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.
HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.
Original external subprogram is historyget.f90#actual_iorange_dump
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| err : | logical, intent(out), optional
|
変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.
HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.
Original external subprogram is historyget.f90#actual_iorange_dump
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| err : | logical, intent(out), optional
|
変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.
HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.
Original external subprogram is historyget.f90#actual_iorange_dump
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| err : | logical, intent(out), optional
|
変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.
HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.
Original external subprogram is historyget.f90#actual_iorange_dump
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| err : | logical, intent(out), optional
|
変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.
HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.
Original external subprogram is historyget.f90#actual_iorange_dump
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| err : | logical, intent(out), optional
|
変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.
HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.
Original external subprogram is historyget.f90#actual_iorange_dump
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| err : | logical, intent(out), optional
|
変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.
HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.
Original external subprogram is historyget.f90#actual_iorange_dump
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| err : | logical, intent(out), optional
|
変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.
HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.
Original external subprogram is historyget.f90#actual_iorange_dump
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| err : | logical, intent(out), optional
|
変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.
HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.
Original external subprogram is historyget.f90#actual_iorange_dump
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| err : | logical, intent(out), optional
|
変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.
HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.
Original external subprogram is historyget.f90#actual_iorange_dump
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| err : | logical, intent(out), optional
|
変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.
HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.
Original external subprogram is historyget.f90#actual_iorange_dump
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| err : | logical, intent(out), optional
|
変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.
HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.
Original external subprogram is historyget.f90#actual_iorange_dump
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| err : | logical, intent(out), optional
|
変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.
HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.
Original external subprogram is historyget.f90#actual_iorange_dump
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| err : | logical, intent(out), optional
|
変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.
HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.
Original external subprogram is historyget.f90#actual_iorange_dump
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| err : | logical, intent(out), optional
|
変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.
HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.
Original external subprogram is historyget.f90#actual_iorange_dump
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| err : | logical, intent(out), optional
|
変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.
HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.
Original external subprogram is historyget.f90#actual_iorange_dump
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| err : | logical, intent(out), optional
|
変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.
HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.
Original external subprogram is historyget.f90#actual_iorange_dump
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| err : | logical, intent(out), optional
|
変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.
HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.
Original external subprogram is historyget.f90#actual_iorange_dump
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| err : | logical, intent(out), optional
|
変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.
HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.
Original external subprogram is historyget.f90#actual_iorange_dump
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| err : | logical, intent(out), optional
|
変数 URL url に対応するファイル, 変数からデータを取り出す際, 入出力範囲指定によって切り出される値の本当の位置を 標準出力に出力する. actual_url が与えられる場合には その引数に値を返し, 標準出力には出力しない.
HistoryGet, HistoryGetPointer が下層で呼び出している gtdata_generic#Get は, 入出力範囲が次元データに正確に一致しない 場合, 最も近い値を自動的に選択して切り出す. しかしその結果, 「本当はどこのデータを入力したか」がわからない場合があるため, このサブルーチンによって正確な位置をユーザに知らせる.
Original external subprogram is historyget.f90#actual_iorange_dump
| Subroutine : | |||
| url : | character(*), intent(in)
| ||
| actual_url : | character(*), intent(out), optional
| ||
| 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)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
subroutine lookup_growable_url(file, varname, url, range, err)
!
! file の変数 varname が依存する次元の内, 時間の次元
! (growable == .TRUE. のもの, つまり無制限次元) の変数名,
! およびその最後の値を取得し, gtool変数化
! ("file@varname,time=10.5" みたいな) して返す.
!
! * もしも varname が次元変数である場合は「time=」を付けずに返す.
! * range を与えた場合, 以下のチェックを行った後, それを gtool4
! 変数の iorange 部分に付加する.
! * 数値のみが与えられる場合, 時間次元の値として認識され,
! その値を用いた url が返る.
! * range 内に時間次元が設定されていない場合は, 自動的に
! 時間次元に関する iorange ("time=0.5") が指定される.
!
use gtdata_types, only: GT_VARIABLE
use gtdata_generic, only: Open, Close, Inquire
use dc_present,only: present_select, present_and_not_empty, present_and_true
use dc_string, only: toChar
use dc_error, only: StoreError, DC_NOERR, GT_ENOUNLIMITDIM, NF_EINVAL, GT_ENOTVAR
use dc_url, only: GT_CIRCUMFLEX, GT_COMMA, GT_EQUAL
use dc_url, only: UrlSplit, UrlMerge, UrlSearchIORange
use regex, only: match
use dc_types, only: DP, STRING
use dc_trace, only: Beginsub, Endsub, DbgMessage
character(*), intent(in) :: file ! ファイル名
character(*), intent(in) :: varname ! 変数名
character(*), intent(out) :: url ! gtool変数化した文字列
character(*), intent(in), optional:: range ! 範囲限定や一点切り出し指定
logical, intent(out), optional :: err ! エラーのフラグ
!
type(GT_VARIABLE) :: var
type(GT_VARIABLE), allocatable :: dimvar(:)
character(STRING) :: time_url, time_name, time_iorange
character(STRING) :: iorange, cause_c
logical:: growable, nounlimited
integer:: allcount, timecount, nd, i, stat
integer:: regex_stat, regex_len
character(*), parameter :: subname = "lookup_growable_url"
continue
call BeginSub(subname, '<file=%c varname=%c range=%c>', c1=trim(file), c2=trim(varname), c3=trim(present_select('', 'no-range', range)))
stat = DC_NOERR
cause_c = ""
url = ""
! 引数の正当性をチェック
if (.not. present_and_not_empty(file)) then
stat = NF_EINVAL
cause_c = '"file" is not specified'
goto 999
elseif (.not. present_and_not_empty(varname)) then
stat = NF_EINVAL
cause_c = '"varname" is not specified'
goto 999
end if
! 時刻次元の変数名, およびその最終時刻の
! 探査のために file@varname を open (まだデータを取得しない)
call Open(var, UrlMerge(file, varname), err = err)
if ( present_and_true(err) ) then
stat = GT_ENOTVAR
goto 999
end if
! 次元の数を取得
call Inquire(var=var, alldims=nd)
call DbgMessage('@ alldims = %d', i=(/nd/))
if (allocated(dimvar)) then
deallocate(dimvar)
end if
allocate(dimvar(nd))
!
! 変数が無制限変数を持たない場合には, それに関する iorange を
! 付けないで返すよう, フラグを立てる.
! 無制限次元があれば, .false. にする.
nounlimited = .true.
!
! 各次元毎に情報を取得し, growable == .TRUE. のもの (つまりは時間)
! の変数名 (time_name) を取得する.
call DbgMessage('[%c: growable-dim-search]', c1=trim(subname))
time_name = ''
do, i = 1, nd
call Open(var = dimvar(i), source_var = var, dimord = i, count_compact = .TRUE., err = err)
! まずは変数入り gtool4 変数を time_url に取得
call Inquire(var = dimvar(i), growable = growable, allcount = allcount, url = time_url)
call DbgMessage(' [dim=<%d>: growable=<%y>: url=<%c>]', i = (/i/), L = (/growable/), c1 = trim(time_url))
! 総数 = 最後の数, なので...
if (growable) then
! 変数部分だけ分離
call UrlSplit(fullname = time_url, var = time_name)
timecount = allcount
nounlimited = .false.
endif
call Close(dimvar(i))
end do
! 探査を終了したので閉じる
call Close(var)
if (stat /= DC_NOERR) then
goto 999
end if
! 時刻部分の iorange を作成しておく.
! 格子点情報で取得されているので, 頭に "^" を付加する.
if (nounlimited) then
time_iorange = ''
else
time_iorange = trim(time_name) // GT_EQUAL // GT_CIRCUMFLEX // adjustl(toChar(timecount))
end if
! iorange を指定する.
! 時刻に関しては, range が存在しない場合には
! 自動取得した最後の時刻を付加する.
! range が存在する場合, "=" が含まれなければ単に時刻の
! 値として取得.
! "=" が含まれる場合, iorange としてそのまま iorange になる.
! ただし, その iorange に時刻次元が含まれない場合,
! やはり先ほど自動取得した値が付加される.
! 当然, 時刻次元が存在しない場合には付加しない.
if (.not. present_and_not_empty(range)) then
iorange = time_iorange
else
! range がコンマ記法になっているか, "=" があるかどうかで調べる
call match(GT_EQUAL, range, regex_len, regex_stat)
! コンマ記法になってない場合は無制限次元の値と判定
if (regex_stat < 0) then
iorange = trim(time_name) // GT_EQUAL // adjustl(range)
else
! コンマ記法になっている場合, まずその中に無制限次元が
! 存在しているか調べ, 存在してない場合のみ time_iorange を
! 付加する.
if (trim(UrlSearchIORange(range, time_name)) /= "") then
iorange = range
else
if (trim(time_iorange) /= "") then
iorange = range // GT_COMMA // time_iorange
else
iorange = range
end if
end if
end if
endif
call DbgMessage('@ iorange=%c', c1=trim(iorange))
! file, varname, iorange を gtool変数化
! (「file@varname,time=10.5」のように)
url = UrlMerge(file, varname, '', iorange)
999 continue
call StoreError(stat, subname, err, cause_c)
call EndSub(subname, '<url=%c>', c1=trim(url))
end subroutine lookup_growable_url
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| url : | character(*), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
Original external subprogram is historyget.f90#lookup_growable_url
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| url : | character(*), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
Original external subprogram is historyget.f90#lookup_growable_url
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| url : | character(*), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
Original external subprogram is historyget.f90#lookup_growable_url
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| url : | character(*), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
Original external subprogram is historyget.f90#lookup_growable_url
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| url : | character(*), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
Original external subprogram is historyget.f90#lookup_growable_url
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| url : | character(*), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
Original external subprogram is historyget.f90#lookup_growable_url
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| url : | character(*), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
Original external subprogram is historyget.f90#lookup_growable_url
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| url : | character(*), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
Original external subprogram is historyget.f90#lookup_growable_url
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| url : | character(*), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
Original external subprogram is historyget.f90#lookup_growable_url
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| url : | character(*), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
Original external subprogram is historyget.f90#lookup_growable_url
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| url : | character(*), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
Original external subprogram is historyget.f90#lookup_growable_url
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| url : | character(*), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
Original external subprogram is historyget.f90#lookup_growable_url
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| url : | character(*), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
Original external subprogram is historyget.f90#lookup_growable_url
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| url : | character(*), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
Original external subprogram is historyget.f90#lookup_growable_url
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| url : | character(*), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
Original external subprogram is historyget.f90#lookup_growable_url
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| url : | character(*), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
Original external subprogram is historyget.f90#lookup_growable_url
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| url : | character(*), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
Original external subprogram is historyget.f90#lookup_growable_url
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| url : | character(*), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
Original external subprogram is historyget.f90#lookup_growable_url
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| url : | character(*), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
Original external subprogram is historyget.f90#lookup_growable_url
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| url : | character(*), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
Original external subprogram is historyget.f90#lookup_growable_url
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| url : | character(*), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
Original external subprogram is historyget.f90#lookup_growable_url
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| url : | character(*), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
Original external subprogram is historyget.f90#lookup_growable_url
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| url : | character(*), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
Original external subprogram is historyget.f90#lookup_growable_url
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| url : | character(*), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
Original external subprogram is historyget.f90#lookup_growable_url
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| url : | character(*), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
Original external subprogram is historyget.f90#lookup_growable_url
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| url : | character(*), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
Original external subprogram is historyget.f90#lookup_growable_url
| Subroutine : | |||
| file : | character(*), intent(in)
| ||
| varname : | character(*), intent(in)
| ||
| url : | character(*), intent(out)
| ||
| range : | character(*), intent(in), optional
| ||
| err : | logical, intent(out), optional
|
file の変数 varname が依存する次元の内, 時間の次元 (growable == .TRUE. のもの, つまり無制限次元) の変数名, およびその最後の値を取得し, gtool変数化 ("file@varname,time=10.5" みたいな) して返す.
Original external subprogram is historyget.f90#lookup_growable_url