!-- ! *** Caution!! *** ! ! This file is generated from "historyget.rb2f90" by Ruby 1.8.2. ! Please do not edit this file directly. ! ! [JAPANESE] ! ! ※※※ 注意!!! ※※※ ! ! このファイルは "historyget.rb2f90" から Ruby 1.8.2 ! によって自動生成されたファイルです. ! このファイルを直接編集しませんようお願い致します. ! ! !++ ! !== Input gtool4 netCDF data ! ! Authors:: Yasuhiro MORIKAWA ! Version:: $Id: historyget.f90,v 1.2 2006/06/16 01:26:40 morikawa Exp $ ! Tag Name:: $Name: gt4f90io-20060627 $ ! Copyright:: Copyright (C) GFD Dennou Club, 2006. All rights reserved. ! License:: See COPYRIGHT[link:../../COPYRIGHT] ! ! 以下のサブルーチン、関数は gt4_history から gt4_history#HistoryGet ! もしくは gt4_history#HistoryGetPointer として提供されます。 subroutine HistoryGetDoubleEx(file, varname, array, range) 32,18 ! ! 入力用内部サブルーチン (Double の固定長配列用). ! *file* にファイル名を, *varname* に変数名を与える. ! 外部には提供されず, その他の外部に提供される入力用 ! サブルーチンが内部的に呼び出すことを想定している. ! *array* には 1 次元配列を与える. ! *range* には gtool4 のコンマ記法を与えることで, ! 入力先のデータの一部を切り出して入力を行うことが ! 可能である. なお, range に数値のみが代入される場合, ! それは時刻の次元 (正確には netCDF の無制限次元) の値として ! 受け取られる. ! use gtdata_types, only: GT_VARIABLE use gtdata_generic, only: Open, Inquire, Close, Get use dc_string, only: toChar, Split, JoinChar, StoA use dc_url, only: GT_ATMARK, GT_COMMA, GT_EQUAL, UrlSplit, UrlMerge use dc_present, only: present_select, present_and_not_empty use regex, only: match use dc_types, only: DP, STRING use dc_message, only: MessageNotify use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range ! スライス用オプション. ! gtool4 変数のコンマ記法で記述 ! {(例: time=100.0,x=10:20,y=30.5)} real(DP), intent(out):: array(*) ! データ type(GT_VARIABLE) :: var character(STRING) :: url, actual_url integer:: domain ! 変数の入出力領域の大きさ ! (= 変数が依存する各次元サイズの積) character(*), parameter :: subname = "HistoryGetDoubleEx" interface subroutine lookup_growable_url(file, varname, url, range, err) character(*), intent(in) :: file ! ファイル名 character(*), intent(in) :: varname ! 変数名 character(*), intent(out) :: url ! gtool変数化した文字列 character(*), intent(in), optional:: range ! 範囲限定や一点切り出し指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine lookup_growable_url end interface interface subroutine actual_iorange_dump(url, actual_url, err) character(*), intent(in) :: url ! 変数 URL character(*), intent(out), optional :: actual_url ! 正確な入出力範囲指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine actual_iorange_dump end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) call lookup_growable_url(file, varname, url, range) ! いよいよデータ取得 call Open(var, url) call Inquire(var=var, size=domain) call Get(var, array, domain) call Close(var) call actual_iorange_dump(url, actual_url) call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url)) call EndSub(subname) end subroutine HistoryGetDoubleEx subroutine HistoryGetRealEx(file, varname, array, range) 32,18 ! ! 入力用内部サブルーチン (Real の固定長配列用). ! *file* にファイル名を, *varname* に変数名を与える. ! 外部には提供されず, その他の外部に提供される入力用 ! サブルーチンが内部的に呼び出すことを想定している. ! *array* には 1 次元配列を与える. ! *range* には gtool4 のコンマ記法を与えることで, ! 入力先のデータの一部を切り出して入力を行うことが ! 可能である. なお, range に数値のみが代入される場合, ! それは時刻の次元 (正確には netCDF の無制限次元) の値として ! 受け取られる. ! use gtdata_types, only: GT_VARIABLE use gtdata_generic, only: Open, Inquire, Close, Get use dc_string, only: toChar, Split, JoinChar, StoA use dc_url, only: GT_ATMARK, GT_COMMA, GT_EQUAL, UrlSplit, UrlMerge use dc_present, only: present_select, present_and_not_empty use regex, only: match use dc_types, only: DP, STRING use dc_message, only: MessageNotify use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range ! スライス用オプション. ! gtool4 変数のコンマ記法で記述 ! {(例: time=100.0,x=10:20,y=30.5)} real, intent(out):: array(*) ! データ type(GT_VARIABLE) :: var character(STRING) :: url, actual_url integer:: domain ! 変数の入出力領域の大きさ ! (= 変数が依存する各次元サイズの積) character(*), parameter :: subname = "HistoryGetRealEx" interface subroutine lookup_growable_url(file, varname, url, range, err) character(*), intent(in) :: file ! ファイル名 character(*), intent(in) :: varname ! 変数名 character(*), intent(out) :: url ! gtool変数化した文字列 character(*), intent(in), optional:: range ! 範囲限定や一点切り出し指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine lookup_growable_url end interface interface subroutine actual_iorange_dump(url, actual_url, err) character(*), intent(in) :: url ! 変数 URL character(*), intent(out), optional :: actual_url ! 正確な入出力範囲指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine actual_iorange_dump end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) call lookup_growable_url(file, varname, url, range) ! いよいよデータ取得 call Open(var, url) call Inquire(var=var, size=domain) call Get(var, array, domain) call Close(var) call actual_iorange_dump(url, actual_url) call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url)) call EndSub(subname) end subroutine HistoryGetRealEx subroutine HistoryGetDouble0(file, varname, array, range),10 ! ! !== データ入力 (固定長配列用) ! ! 既存の gtool4 データ内の変数のデータを取得します。 ! ! ポインタの配列へデータを入力を行う場合は、 ! HistoryGetPointer を利用してください。 ! ! デフォルトでは、gtool4 データ内の変数データのうち、 ! 最も新しい時刻のデータを入力します。その他の時刻データを ! 入力したい場合には、下記の *range* オプションを利用してください。 ! ! *range* には gtool4 のコンマ記法 ! ({gtool4 netCDF 規約}[link:../xref.htm#label-6] 参照) ! を与えることで, ! 入力先のデータの一部を切り出して入力を行うことが可能です。 ! ! *HistoryGet* は複数のサブルーチンの総称名です。*array* には ! 0 〜 7 次元のデータを与えることが可能です。 ! 下記のサブルーチンを参照ください。 ! ! use dc_string, only: toChar use dc_present, only: present_select, present_and_not_empty use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file ! 取得するデータが格納された ! netCDF ファイル名 ! character(*), intent(in):: varname ! 取得しようとするデータの変数名 ! ! ここで指定する変数名は、 *file* ! で指定されるファイル内に含 ! まれていなければなりません。 ! character(*), intent(in), optional:: range ! gtool4 のコンマ記法による ! データの切り出し指定 ! ! 詳しくは ! {gtool4 netCDF 規約}[link:../xref.htm#label-6] ! の「5.4 コンマ記法」を参照して ! ください。 ! ! 数値のみが与えられる場合 ! (※ 引数の型は常に文字型です。 ! すなわち ! "<b><tt>10.0</tt></b>" ! のような文字列が与えられた場合 ! を指します)、それは時刻の値 ! として受け取られます。 ! この場合、"<b><tt>^</tt></b>" を ! 先頭に付加することで、 ! 時間のステップ数で指定する ! ことも可能です。 (例えば ! "<b><tt>^10</tt></b>"ならば ! 10 ステップ目のデータを取得します)。 ! real(DP), intent(out) :: array ! 取得するデータを格納する配列 ! ! 型は単精度実数型か倍精度実数型 ! かのどちらかです。 ! 取得するデータの空間次元の ! サイズと配列のサイズとが一 ! 致している必要があります。 ! *varname* のデータ型と *array* ! の型が異なる場合は、自動的 ! に *array* の型に変換されます。 ! real(DP) :: array_tmp(1) character(*), parameter :: subname = "HistoryGetDouble0" interface subroutine HistoryGetDoubleEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real(DP), intent(out):: array(*) ! データ end subroutine HistoryGetDoubleEx end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) if (present_and_not_empty(range)) then call HistoryGetDoubleEx(file=file, varname=varname, & & array=array_tmp, range=range) else call HistoryGetDoubleEx(file=file, varname=varname, array=array_tmp) end if array = array_tmp(1) call EndSub(subname) end subroutine HistoryGetDouble0 subroutine HistoryGetReal0(file, varname, array, range),10 ! ! use dc_string, only: toChar use dc_present, only: present_select, present_and_not_empty use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file character(*), intent(in):: varname character(*), intent(in), optional:: range real, intent(out) :: array real :: array_tmp(1) character(*), parameter :: subname = "HistoryGetReal0" interface subroutine HistoryGetRealEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real, intent(out):: array(*) ! データ end subroutine HistoryGetRealEx end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) if (present_and_not_empty(range)) then call HistoryGetRealEx(file=file, varname=varname, & & array=array_tmp, range=range) else call HistoryGetRealEx(file=file, varname=varname, array=array_tmp) end if array = array_tmp(1) call EndSub(subname) end subroutine HistoryGetReal0 subroutine HistoryGetDouble1(file, varname, array, range),10 ! ! Double 型固定配列用 1 次元配列用データ入力サブルーチン ! !-- ! file にファイル名を, varname に変数名を与える. ! array には 1 次元配列を与える. ! range には gtool4 のコンマ記法を与えることで, ! 入力先のデータの一部を切り出して入力を行うことが ! 可能である. なお, range に数値のみが代入される場合, ! それは時刻の次元 (正確には netCDF の無制限次元) の値として ! 受け取られる. !++ use dc_string, only: toChar use dc_present,only: present_select, present_and_not_empty use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file character(*), intent(in):: varname character(*), intent(in), optional:: range real(DP), intent(out) :: array(:) character(*), parameter :: subname = "HistoryGetDouble1" interface subroutine HistoryGetDoubleEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real(DP), intent(out):: array(*) ! データ end subroutine HistoryGetDoubleEx end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) if (present_and_not_empty(range)) then call HistoryGetDoubleEx(file=file, varname=varname, & & array=array, range=range) else call HistoryGetDoubleEx(file=file, varname=varname, array=array) endif call EndSub(subname) end subroutine HistoryGetDouble1 subroutine HistoryGetDouble2(file, varname, array, range),10 ! ! Double 型固定配列用 2 次元配列用データ入力サブルーチン ! !-- ! file にファイル名を, varname に変数名を与える. ! array には 2 次元配列を与える. ! range には gtool4 のコンマ記法を与えることで, ! 入力先のデータの一部を切り出して入力を行うことが ! 可能である. なお, range に数値のみが代入される場合, ! それは時刻の次元 (正確には netCDF の無制限次元) の値として ! 受け取られる. !++ use dc_string, only: toChar use dc_present,only: present_select, present_and_not_empty use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file character(*), intent(in):: varname character(*), intent(in), optional:: range real(DP), intent(out) :: array(:,:) character(*), parameter :: subname = "HistoryGetDouble2" interface subroutine HistoryGetDoubleEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real(DP), intent(out):: array(*) ! データ end subroutine HistoryGetDoubleEx end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) if (present_and_not_empty(range)) then call HistoryGetDoubleEx(file=file, varname=varname, & & array=array, range=range) else call HistoryGetDoubleEx(file=file, varname=varname, array=array) endif call EndSub(subname) end subroutine HistoryGetDouble2 subroutine HistoryGetDouble3(file, varname, array, range),10 ! ! Double 型固定配列用 3 次元配列用データ入力サブルーチン ! !-- ! file にファイル名を, varname に変数名を与える. ! array には 3 次元配列を与える. ! range には gtool4 のコンマ記法を与えることで, ! 入力先のデータの一部を切り出して入力を行うことが ! 可能である. なお, range に数値のみが代入される場合, ! それは時刻の次元 (正確には netCDF の無制限次元) の値として ! 受け取られる. !++ use dc_string, only: toChar use dc_present,only: present_select, present_and_not_empty use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file character(*), intent(in):: varname character(*), intent(in), optional:: range real(DP), intent(out) :: array(:,:,:) character(*), parameter :: subname = "HistoryGetDouble3" interface subroutine HistoryGetDoubleEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real(DP), intent(out):: array(*) ! データ end subroutine HistoryGetDoubleEx end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) if (present_and_not_empty(range)) then call HistoryGetDoubleEx(file=file, varname=varname, & & array=array, range=range) else call HistoryGetDoubleEx(file=file, varname=varname, array=array) endif call EndSub(subname) end subroutine HistoryGetDouble3 subroutine HistoryGetDouble4(file, varname, array, range),10 ! ! Double 型固定配列用 4 次元配列用データ入力サブルーチン ! !-- ! file にファイル名を, varname に変数名を与える. ! array には 4 次元配列を与える. ! range には gtool4 のコンマ記法を与えることで, ! 入力先のデータの一部を切り出して入力を行うことが ! 可能である. なお, range に数値のみが代入される場合, ! それは時刻の次元 (正確には netCDF の無制限次元) の値として ! 受け取られる. !++ use dc_string, only: toChar use dc_present,only: present_select, present_and_not_empty use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file character(*), intent(in):: varname character(*), intent(in), optional:: range real(DP), intent(out) :: array(:,:,:,:) character(*), parameter :: subname = "HistoryGetDouble4" interface subroutine HistoryGetDoubleEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real(DP), intent(out):: array(*) ! データ end subroutine HistoryGetDoubleEx end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) if (present_and_not_empty(range)) then call HistoryGetDoubleEx(file=file, varname=varname, & & array=array, range=range) else call HistoryGetDoubleEx(file=file, varname=varname, array=array) endif call EndSub(subname) end subroutine HistoryGetDouble4 subroutine HistoryGetDouble5(file, varname, array, range),10 ! ! Double 型固定配列用 5 次元配列用データ入力サブルーチン ! !-- ! file にファイル名を, varname に変数名を与える. ! array には 5 次元配列を与える. ! range には gtool4 のコンマ記法を与えることで, ! 入力先のデータの一部を切り出して入力を行うことが ! 可能である. なお, range に数値のみが代入される場合, ! それは時刻の次元 (正確には netCDF の無制限次元) の値として ! 受け取られる. !++ use dc_string, only: toChar use dc_present,only: present_select, present_and_not_empty use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file character(*), intent(in):: varname character(*), intent(in), optional:: range real(DP), intent(out) :: array(:,:,:,:,:) character(*), parameter :: subname = "HistoryGetDouble5" interface subroutine HistoryGetDoubleEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real(DP), intent(out):: array(*) ! データ end subroutine HistoryGetDoubleEx end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) if (present_and_not_empty(range)) then call HistoryGetDoubleEx(file=file, varname=varname, & & array=array, range=range) else call HistoryGetDoubleEx(file=file, varname=varname, array=array) endif call EndSub(subname) end subroutine HistoryGetDouble5 subroutine HistoryGetDouble6(file, varname, array, range),10 ! ! Double 型固定配列用 6 次元配列用データ入力サブルーチン ! !-- ! file にファイル名を, varname に変数名を与える. ! array には 6 次元配列を与える. ! range には gtool4 のコンマ記法を与えることで, ! 入力先のデータの一部を切り出して入力を行うことが ! 可能である. なお, range に数値のみが代入される場合, ! それは時刻の次元 (正確には netCDF の無制限次元) の値として ! 受け取られる. !++ use dc_string, only: toChar use dc_present,only: present_select, present_and_not_empty use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file character(*), intent(in):: varname character(*), intent(in), optional:: range real(DP), intent(out) :: array(:,:,:,:,:,:) character(*), parameter :: subname = "HistoryGetDouble6" interface subroutine HistoryGetDoubleEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real(DP), intent(out):: array(*) ! データ end subroutine HistoryGetDoubleEx end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) if (present_and_not_empty(range)) then call HistoryGetDoubleEx(file=file, varname=varname, & & array=array, range=range) else call HistoryGetDoubleEx(file=file, varname=varname, array=array) endif call EndSub(subname) end subroutine HistoryGetDouble6 subroutine HistoryGetDouble7(file, varname, array, range),10 ! ! Double 型固定配列用 7 次元配列用データ入力サブルーチン ! !-- ! file にファイル名を, varname に変数名を与える. ! array には 7 次元配列を与える. ! range には gtool4 のコンマ記法を与えることで, ! 入力先のデータの一部を切り出して入力を行うことが ! 可能である. なお, range に数値のみが代入される場合, ! それは時刻の次元 (正確には netCDF の無制限次元) の値として ! 受け取られる. !++ use dc_string, only: toChar use dc_present,only: present_select, present_and_not_empty use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file character(*), intent(in):: varname character(*), intent(in), optional:: range real(DP), intent(out) :: array(:,:,:,:,:,:,:) character(*), parameter :: subname = "HistoryGetDouble7" interface subroutine HistoryGetDoubleEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real(DP), intent(out):: array(*) ! データ end subroutine HistoryGetDoubleEx end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) if (present_and_not_empty(range)) then call HistoryGetDoubleEx(file=file, varname=varname, & & array=array, range=range) else call HistoryGetDoubleEx(file=file, varname=varname, array=array) endif call EndSub(subname) end subroutine HistoryGetDouble7 subroutine HistoryGetReal1(file, varname, array, range),10 ! ! Real 型固定配列用 1 次元配列用データ入力サブルーチン ! !-- ! file にファイル名を, varname に変数名を与える. ! array には 1 次元配列を与える. ! range には gtool4 のコンマ記法を与えることで, ! 入力先のデータの一部を切り出して入力を行うことが ! 可能である. なお, range に数値のみが代入される場合, ! それは時刻の次元 (正確には netCDF の無制限次元) の値として ! 受け取られる. !++ use dc_string, only: toChar use dc_present,only: present_select, present_and_not_empty use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file character(*), intent(in):: varname character(*), intent(in), optional:: range real, intent(out) :: array(:) character(*), parameter :: subname = "HistoryGetReal1" interface subroutine HistoryGetRealEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real, intent(out):: array(*) ! データ end subroutine HistoryGetRealEx end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) if (present_and_not_empty(range)) then call HistoryGetRealEx(file=file, varname=varname, & & array=array, range=range) else call HistoryGetRealEx(file=file, varname=varname, array=array) endif call EndSub(subname) end subroutine HistoryGetReal1 subroutine HistoryGetReal2(file, varname, array, range),10 ! ! Real 型固定配列用 2 次元配列用データ入力サブルーチン ! !-- ! file にファイル名を, varname に変数名を与える. ! array には 2 次元配列を与える. ! range には gtool4 のコンマ記法を与えることで, ! 入力先のデータの一部を切り出して入力を行うことが ! 可能である. なお, range に数値のみが代入される場合, ! それは時刻の次元 (正確には netCDF の無制限次元) の値として ! 受け取られる. !++ use dc_string, only: toChar use dc_present,only: present_select, present_and_not_empty use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file character(*), intent(in):: varname character(*), intent(in), optional:: range real, intent(out) :: array(:,:) character(*), parameter :: subname = "HistoryGetReal2" interface subroutine HistoryGetRealEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real, intent(out):: array(*) ! データ end subroutine HistoryGetRealEx end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) if (present_and_not_empty(range)) then call HistoryGetRealEx(file=file, varname=varname, & & array=array, range=range) else call HistoryGetRealEx(file=file, varname=varname, array=array) endif call EndSub(subname) end subroutine HistoryGetReal2 subroutine HistoryGetReal3(file, varname, array, range),10 ! ! Real 型固定配列用 3 次元配列用データ入力サブルーチン ! !-- ! file にファイル名を, varname に変数名を与える. ! array には 3 次元配列を与える. ! range には gtool4 のコンマ記法を与えることで, ! 入力先のデータの一部を切り出して入力を行うことが ! 可能である. なお, range に数値のみが代入される場合, ! それは時刻の次元 (正確には netCDF の無制限次元) の値として ! 受け取られる. !++ use dc_string, only: toChar use dc_present,only: present_select, present_and_not_empty use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file character(*), intent(in):: varname character(*), intent(in), optional:: range real, intent(out) :: array(:,:,:) character(*), parameter :: subname = "HistoryGetReal3" interface subroutine HistoryGetRealEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real, intent(out):: array(*) ! データ end subroutine HistoryGetRealEx end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) if (present_and_not_empty(range)) then call HistoryGetRealEx(file=file, varname=varname, & & array=array, range=range) else call HistoryGetRealEx(file=file, varname=varname, array=array) endif call EndSub(subname) end subroutine HistoryGetReal3 subroutine HistoryGetReal4(file, varname, array, range),10 ! ! Real 型固定配列用 4 次元配列用データ入力サブルーチン ! !-- ! file にファイル名を, varname に変数名を与える. ! array には 4 次元配列を与える. ! range には gtool4 のコンマ記法を与えることで, ! 入力先のデータの一部を切り出して入力を行うことが ! 可能である. なお, range に数値のみが代入される場合, ! それは時刻の次元 (正確には netCDF の無制限次元) の値として ! 受け取られる. !++ use dc_string, only: toChar use dc_present,only: present_select, present_and_not_empty use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file character(*), intent(in):: varname character(*), intent(in), optional:: range real, intent(out) :: array(:,:,:,:) character(*), parameter :: subname = "HistoryGetReal4" interface subroutine HistoryGetRealEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real, intent(out):: array(*) ! データ end subroutine HistoryGetRealEx end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) if (present_and_not_empty(range)) then call HistoryGetRealEx(file=file, varname=varname, & & array=array, range=range) else call HistoryGetRealEx(file=file, varname=varname, array=array) endif call EndSub(subname) end subroutine HistoryGetReal4 subroutine HistoryGetReal5(file, varname, array, range),10 ! ! Real 型固定配列用 5 次元配列用データ入力サブルーチン ! !-- ! file にファイル名を, varname に変数名を与える. ! array には 5 次元配列を与える. ! range には gtool4 のコンマ記法を与えることで, ! 入力先のデータの一部を切り出して入力を行うことが ! 可能である. なお, range に数値のみが代入される場合, ! それは時刻の次元 (正確には netCDF の無制限次元) の値として ! 受け取られる. !++ use dc_string, only: toChar use dc_present,only: present_select, present_and_not_empty use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file character(*), intent(in):: varname character(*), intent(in), optional:: range real, intent(out) :: array(:,:,:,:,:) character(*), parameter :: subname = "HistoryGetReal5" interface subroutine HistoryGetRealEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real, intent(out):: array(*) ! データ end subroutine HistoryGetRealEx end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) if (present_and_not_empty(range)) then call HistoryGetRealEx(file=file, varname=varname, & & array=array, range=range) else call HistoryGetRealEx(file=file, varname=varname, array=array) endif call EndSub(subname) end subroutine HistoryGetReal5 subroutine HistoryGetReal6(file, varname, array, range),10 ! ! Real 型固定配列用 6 次元配列用データ入力サブルーチン ! !-- ! file にファイル名を, varname に変数名を与える. ! array には 6 次元配列を与える. ! range には gtool4 のコンマ記法を与えることで, ! 入力先のデータの一部を切り出して入力を行うことが ! 可能である. なお, range に数値のみが代入される場合, ! それは時刻の次元 (正確には netCDF の無制限次元) の値として ! 受け取られる. !++ use dc_string, only: toChar use dc_present,only: present_select, present_and_not_empty use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file character(*), intent(in):: varname character(*), intent(in), optional:: range real, intent(out) :: array(:,:,:,:,:,:) character(*), parameter :: subname = "HistoryGetReal6" interface subroutine HistoryGetRealEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real, intent(out):: array(*) ! データ end subroutine HistoryGetRealEx end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) if (present_and_not_empty(range)) then call HistoryGetRealEx(file=file, varname=varname, & & array=array, range=range) else call HistoryGetRealEx(file=file, varname=varname, array=array) endif call EndSub(subname) end subroutine HistoryGetReal6 subroutine HistoryGetReal7(file, varname, array, range),10 ! ! Real 型固定配列用 7 次元配列用データ入力サブルーチン ! !-- ! file にファイル名を, varname に変数名を与える. ! array には 7 次元配列を与える. ! range には gtool4 のコンマ記法を与えることで, ! 入力先のデータの一部を切り出して入力を行うことが ! 可能である. なお, range に数値のみが代入される場合, ! それは時刻の次元 (正確には netCDF の無制限次元) の値として ! 受け取られる. !++ use dc_string, only: toChar use dc_present,only: present_select, present_and_not_empty use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file character(*), intent(in):: varname character(*), intent(in), optional:: range real, intent(out) :: array(:,:,:,:,:,:,:) character(*), parameter :: subname = "HistoryGetReal7" interface subroutine HistoryGetRealEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real, intent(out):: array(*) ! データ end subroutine HistoryGetRealEx end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) if (present_and_not_empty(range)) then call HistoryGetRealEx(file=file, varname=varname, & & array=array, range=range) else call HistoryGetRealEx(file=file, varname=varname, array=array) endif call EndSub(subname) end subroutine HistoryGetReal7 subroutine HistoryGetDouble0TimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real(DP), intent(out) :: array real(DP) :: array_tmp(1) character(*), parameter :: subname = "HistoryGetDouble0TimeR" interface subroutine HistoryGetDoubleEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real(DP), intent(out):: array(*) ! データ end subroutine HistoryGetDoubleEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetDoubleEx(file=file, varname=varname, & & array=array_tmp, range=toChar(time)) call EndSub(subname) array = array_tmp(1) end subroutine subroutine HistoryGetReal0TimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real, intent(out) :: array real :: array_tmp(1) character(*), parameter :: subname = "HistoryGetReal0TimeR" interface subroutine HistoryGetRealEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real, intent(out):: array(*) ! データ end subroutine HistoryGetRealEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetRealEx(file=file, varname=varname, & & array=array_tmp, range=toChar(time)) call EndSub(subname) array = array_tmp(1) end subroutine subroutine HistoryGetDouble0TimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real(DP), intent(out) :: array real(DP) :: array_tmp(1) character(*), parameter :: subname = "HistoryGetDouble0TimeD" interface subroutine HistoryGetDoubleEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real(DP), intent(out):: array(*) ! データ end subroutine HistoryGetDoubleEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetDoubleEx(file=file, varname=varname, & & array=array_tmp, range=toChar(time)) call EndSub(subname) array = array_tmp(1) end subroutine subroutine HistoryGetReal0TimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real, intent(out) :: array real :: array_tmp(1) character(*), parameter :: subname = "HistoryGetReal0TimeD" interface subroutine HistoryGetRealEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real, intent(out):: array(*) ! データ end subroutine HistoryGetRealEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetRealEx(file=file, varname=varname, & & array=array_tmp, range=toChar(time)) call EndSub(subname) array = array_tmp(1) end subroutine subroutine HistoryGetDouble1TimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real(DP), intent(out) :: array(:) character(*), parameter :: subname = "HistoryGetDouble1TimeR" interface subroutine HistoryGetDoubleEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real(DP), intent(out):: array(*) ! データ end subroutine HistoryGetDoubleEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetDoubleEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble2TimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real(DP), intent(out) :: array(:,:) character(*), parameter :: subname = "HistoryGetDouble2TimeR" interface subroutine HistoryGetDoubleEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real(DP), intent(out):: array(*) ! データ end subroutine HistoryGetDoubleEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetDoubleEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble3TimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real(DP), intent(out) :: array(:,:,:) character(*), parameter :: subname = "HistoryGetDouble3TimeR" interface subroutine HistoryGetDoubleEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real(DP), intent(out):: array(*) ! データ end subroutine HistoryGetDoubleEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetDoubleEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble4TimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real(DP), intent(out) :: array(:,:,:,:) character(*), parameter :: subname = "HistoryGetDouble4TimeR" interface subroutine HistoryGetDoubleEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real(DP), intent(out):: array(*) ! データ end subroutine HistoryGetDoubleEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetDoubleEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble5TimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real(DP), intent(out) :: array(:,:,:,:,:) character(*), parameter :: subname = "HistoryGetDouble5TimeR" interface subroutine HistoryGetDoubleEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real(DP), intent(out):: array(*) ! データ end subroutine HistoryGetDoubleEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetDoubleEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble6TimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real(DP), intent(out) :: array(:,:,:,:,:,:) character(*), parameter :: subname = "HistoryGetDouble6TimeR" interface subroutine HistoryGetDoubleEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real(DP), intent(out):: array(*) ! データ end subroutine HistoryGetDoubleEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetDoubleEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble7TimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real(DP), intent(out) :: array(:,:,:,:,:,:,:) character(*), parameter :: subname = "HistoryGetDouble7TimeR" interface subroutine HistoryGetDoubleEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real(DP), intent(out):: array(*) ! データ end subroutine HistoryGetDoubleEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetDoubleEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal1TimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real, intent(out) :: array(:) character(*), parameter :: subname = "HistoryGetReal1TimeR" interface subroutine HistoryGetRealEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real, intent(out):: array(*) ! データ end subroutine HistoryGetRealEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetRealEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal2TimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real, intent(out) :: array(:,:) character(*), parameter :: subname = "HistoryGetReal2TimeR" interface subroutine HistoryGetRealEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real, intent(out):: array(*) ! データ end subroutine HistoryGetRealEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetRealEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal3TimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real, intent(out) :: array(:,:,:) character(*), parameter :: subname = "HistoryGetReal3TimeR" interface subroutine HistoryGetRealEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real, intent(out):: array(*) ! データ end subroutine HistoryGetRealEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetRealEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal4TimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real, intent(out) :: array(:,:,:,:) character(*), parameter :: subname = "HistoryGetReal4TimeR" interface subroutine HistoryGetRealEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real, intent(out):: array(*) ! データ end subroutine HistoryGetRealEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetRealEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal5TimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real, intent(out) :: array(:,:,:,:,:) character(*), parameter :: subname = "HistoryGetReal5TimeR" interface subroutine HistoryGetRealEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real, intent(out):: array(*) ! データ end subroutine HistoryGetRealEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetRealEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal6TimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real, intent(out) :: array(:,:,:,:,:,:) character(*), parameter :: subname = "HistoryGetReal6TimeR" interface subroutine HistoryGetRealEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real, intent(out):: array(*) ! データ end subroutine HistoryGetRealEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetRealEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal7TimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real, intent(out) :: array(:,:,:,:,:,:,:) character(*), parameter :: subname = "HistoryGetReal7TimeR" interface subroutine HistoryGetRealEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real, intent(out):: array(*) ! データ end subroutine HistoryGetRealEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetRealEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble1TimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real(DP), intent(out) :: array(:) character(*), parameter :: subname = "HistoryGetDouble1TimeD" interface subroutine HistoryGetDoubleEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real(DP), intent(out):: array(*) ! データ end subroutine HistoryGetDoubleEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetDoubleEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble2TimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real(DP), intent(out) :: array(:,:) character(*), parameter :: subname = "HistoryGetDouble2TimeD" interface subroutine HistoryGetDoubleEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real(DP), intent(out):: array(*) ! データ end subroutine HistoryGetDoubleEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetDoubleEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble3TimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real(DP), intent(out) :: array(:,:,:) character(*), parameter :: subname = "HistoryGetDouble3TimeD" interface subroutine HistoryGetDoubleEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real(DP), intent(out):: array(*) ! データ end subroutine HistoryGetDoubleEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetDoubleEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble4TimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real(DP), intent(out) :: array(:,:,:,:) character(*), parameter :: subname = "HistoryGetDouble4TimeD" interface subroutine HistoryGetDoubleEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real(DP), intent(out):: array(*) ! データ end subroutine HistoryGetDoubleEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetDoubleEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble5TimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real(DP), intent(out) :: array(:,:,:,:,:) character(*), parameter :: subname = "HistoryGetDouble5TimeD" interface subroutine HistoryGetDoubleEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real(DP), intent(out):: array(*) ! データ end subroutine HistoryGetDoubleEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetDoubleEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble6TimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real(DP), intent(out) :: array(:,:,:,:,:,:) character(*), parameter :: subname = "HistoryGetDouble6TimeD" interface subroutine HistoryGetDoubleEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real(DP), intent(out):: array(*) ! データ end subroutine HistoryGetDoubleEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetDoubleEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble7TimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real(DP), intent(out) :: array(:,:,:,:,:,:,:) character(*), parameter :: subname = "HistoryGetDouble7TimeD" interface subroutine HistoryGetDoubleEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real(DP), intent(out):: array(*) ! データ end subroutine HistoryGetDoubleEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetDoubleEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal1TimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real, intent(out) :: array(:) character(*), parameter :: subname = "HistoryGetReal1TimeD" interface subroutine HistoryGetRealEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real, intent(out):: array(*) ! データ end subroutine HistoryGetRealEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetRealEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal2TimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real, intent(out) :: array(:,:) character(*), parameter :: subname = "HistoryGetReal2TimeD" interface subroutine HistoryGetRealEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real, intent(out):: array(*) ! データ end subroutine HistoryGetRealEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetRealEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal3TimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real, intent(out) :: array(:,:,:) character(*), parameter :: subname = "HistoryGetReal3TimeD" interface subroutine HistoryGetRealEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real, intent(out):: array(*) ! データ end subroutine HistoryGetRealEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetRealEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal4TimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real, intent(out) :: array(:,:,:,:) character(*), parameter :: subname = "HistoryGetReal4TimeD" interface subroutine HistoryGetRealEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real, intent(out):: array(*) ! データ end subroutine HistoryGetRealEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetRealEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal5TimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real, intent(out) :: array(:,:,:,:,:) character(*), parameter :: subname = "HistoryGetReal5TimeD" interface subroutine HistoryGetRealEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real, intent(out):: array(*) ! データ end subroutine HistoryGetRealEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetRealEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal6TimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real, intent(out) :: array(:,:,:,:,:,:) character(*), parameter :: subname = "HistoryGetReal6TimeD" interface subroutine HistoryGetRealEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real, intent(out):: array(*) ! データ end subroutine HistoryGetRealEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetRealEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal7TimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real, intent(out) :: array(:,:,:,:,:,:,:) character(*), parameter :: subname = "HistoryGetReal7TimeD" interface subroutine HistoryGetRealEx(file, varname, array, range) use dc_types, only: DP character(*), intent(in):: file ! ファイル名 character(*), intent(in):: varname ! 変数名 character(*), intent(in), optional:: range real, intent(out):: array(*) ! データ end subroutine HistoryGetRealEx end interface continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetRealEx(file=file, varname=varname, & & array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble0Pointer(file, varname, array, range),16 ! ! ! == データ入力 (ポインタ配列用) ! ! 既存の gtool4 データ内の変数のデータをポインタ配列へ取得します。 ! ! 固定長の配列へデータを入力を行う場合は、 ! HistoryGet を利用してください。 ! ! *array* は必ず空状態で与えてください。 ! すなわち初期値 =>null() を設定するか nullify を用いてください。 ! 既に割り付けられている場合、もしくは不定状態の場合には ! エラーを返します。 ! ! デフォルトでは、gtool4 データ内の変数データのうち、 ! 最も新しい時刻のデータを入力します。その他の時刻データを ! 入力したい場合には、下記の *range* オプションを利用してください。 ! ! *range* には gtool4 のコンマ記法 ! ({gtool4 netCDF 規約}[link:../xref.htm#label-6] 参照) ! を与えることで, ! 入力先のデータの一部を切り出して入力を行うことが可能です。 ! ! *HistoryGetPointer* は複数のサブルーチンの総称名です。*array* には ! 0 〜 7 次元のデータを与えることが可能です。 ! 下記のサブルーチンを参照ください。 ! ! use gtdata_types, only: GT_VARIABLE use gtdata_generic, only: Open, Inquire, Close, Get use dc_string, only: toChar use dc_present, only: present_select use dc_types, only: DP, STRING use dc_message, only: MessageNotify use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file ! 取得するデータが格納された ! netCDF ファイル名 ! character(*), intent(in):: varname ! 取得しようとするデータの変数名 ! ! ここで指定する変数名は、 *file* ! で指定されるファイル内に含 ! まれていなければなりません。 ! character(*), intent(in), optional:: range ! gtool4 のコンマ記法による ! データの切り出し指定 ! ! 詳しくは ! {gtool4 netCDF 規約}[link:../xref.htm#label-6] ! の「5.4 コンマ記法」を参照して ! ください。 ! ! 数値のみが与えられる場合 ! (※ 引数の型は常に文字型です。 ! すなわち ! "<b><tt>10.0</tt></b>" ! のような文字列が与えられた場合 ! を指します)、それは時刻の値 ! として受け取られます。 ! この場合、"<b><tt>^</tt></b>" を ! 先頭に付加することで、 ! 時間のステップ数で指定する ! ことも可能です。 (例えば ! "<b><tt>^10</tt></b>"ならば ! 10 ステップ目のデータを取得します)。 ! real(DP), pointer :: array ! (out) ! 取得するデータを格納する ! ポインタの配列 ! ! 必ず空状態で与えてください。 ! すなわち初期値 =>null() を ! 設定するか nullify を用い ! ください。 ! ! 型は単精度実数型か倍精度実数型 ! かのどちらかです。 ! 取得するデータの空間次元の ! サイズに合わせ、配列のサイズは ! 自動的に設定されます。 ! *varname* のデータ型と *array* ! の型が異なる場合は、自動的 ! に *array* の型に変換されます。 ! real(DP), target :: array_tmp(1) type(GT_VARIABLE) :: var character(STRING) :: url, actual_url integer:: domain ! 変数の入出力領域の大きさ ! (= 変数が依存する各次元サイズの積) character(*), parameter :: subname = "HistoryGetDouble0Pointer" interface subroutine lookup_growable_url(file, varname, url, range, err) character(*), intent(in) :: file ! ファイル名 character(*), intent(in) :: varname ! 変数名 character(*), intent(out) :: url ! gtool変数化した文字列 character(*), intent(in), optional:: range ! 範囲限定や一点切り出し指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine lookup_growable_url end interface interface subroutine actual_iorange_dump(url, actual_url, err) character(*), intent(in) :: url ! 変数 URL character(*), intent(out), optional :: actual_url ! 正確な入出力範囲指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine actual_iorange_dump end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) ! 必要な情報を gtool 変数化 call lookup_growable_url(file, varname, url, range) allocate(array) ! いよいよデータ取得 call Open(var, url) call Inquire(var=var, size=domain) call Get(var, array_tmp, domain) call Close(var) array = array_tmp(1) call actual_iorange_dump(url, actual_url) call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url)) call EndSub(subname) end subroutine subroutine HistoryGetReal0Pointer(file, varname, array, range),16 ! ! use gtdata_types, only: GT_VARIABLE use gtdata_generic, only: Open, Inquire, Close, Get use dc_string, only: toChar use dc_present, only: present_select use dc_types, only: DP, STRING use dc_message, only: MessageNotify use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file character(*), intent(in):: varname character(*), intent(in), optional:: range real, pointer :: array real, target :: array_tmp(1) type(GT_VARIABLE) :: var character(STRING) :: url, actual_url integer:: domain ! 変数の入出力領域の大きさ ! (= 変数が依存する各次元サイズの積) character(*), parameter :: subname = "HistoryGetReal0Pointer" interface subroutine lookup_growable_url(file, varname, url, range, err) character(*), intent(in) :: file ! ファイル名 character(*), intent(in) :: varname ! 変数名 character(*), intent(out) :: url ! gtool変数化した文字列 character(*), intent(in), optional:: range ! 範囲限定や一点切り出し指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine lookup_growable_url end interface interface subroutine actual_iorange_dump(url, actual_url, err) character(*), intent(in) :: url ! 変数 URL character(*), intent(out), optional :: actual_url ! 正確な入出力範囲指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine actual_iorange_dump end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) ! 必要な情報を gtool 変数化 call lookup_growable_url(file, varname, url, range) allocate(array) ! いよいよデータ取得 call Open(var, url) call Inquire(var=var, size=domain) call Get(var, array_tmp, domain) call Close(var) array = array_tmp(1) call actual_iorange_dump(url, actual_url) call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url)) call EndSub(subname) end subroutine subroutine HistoryGetDouble0PointerTimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in) :: file, varname real, intent(in) :: time real(DP), pointer :: array ! (out) character(*), parameter :: subname = "HistoryGetDouble0PointerTimeR" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer(file=file, & & varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal0PointerTimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in) :: file, varname real, intent(in) :: time real, pointer :: array ! (out) character(*), parameter :: subname = "HistoryGetReal0PointerTimeR" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer(file=file, & & varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble0PointerTimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in) :: file, varname real(DP), intent(in) :: time real(DP), pointer :: array ! (out) character(*), parameter :: subname = "HistoryGetDouble0PointerTimeD" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer(file=file, & & varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal0PointerTimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in) :: file, varname real(DP), intent(in) :: time real, pointer :: array ! (out) character(*), parameter :: subname = "HistoryGetReal0PointerTimeD" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer(file=file, & & varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble1Pointer(file, varname, array, range),16 ! ! Double 型ポインタ配列用 1 次元配列用データ入力サブルーチン ! use gtdata_types, only: GT_VARIABLE use gtdata_generic, only: Open, Inquire, Close, Get use dc_string, only: toChar use dc_present,only: present_select use dc_types, only: DP, STRING use dc_message, only: MessageNotify use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname character(*), intent(in), optional:: range real(DP), pointer :: array(:) ! (out) type(GT_VARIABLE) :: var character(STRING) :: url, actual_url character(*), parameter :: subname = "HistoryGetDouble1Pointer" interface subroutine lookup_growable_url(file, varname, url, range, err) character(*), intent(in) :: file ! ファイル名 character(*), intent(in) :: varname ! 変数名 character(*), intent(out) :: url ! gtool変数化した文字列 character(*), intent(in), optional:: range ! 範囲限定や一点切り出し指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine lookup_growable_url end interface interface subroutine actual_iorange_dump(url, actual_url, err) character(*), intent(in) :: url ! 変数 URL character(*), intent(out), optional :: actual_url ! 正確な入出力範囲指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine actual_iorange_dump end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) ! 必要な情報を gtool 変数化 call lookup_growable_url(file, varname, url, range) call DbgMessage('@ url =%c', c1=trim(url)) ! いよいよデータ取得 call Open(var, url) call Get(var, array) call Close(var) call actual_iorange_dump(url, actual_url) call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url)) call EndSub(subname) end subroutine subroutine HistoryGetDouble2Pointer(file, varname, array, range),16 ! ! Double 型ポインタ配列用 2 次元配列用データ入力サブルーチン ! use gtdata_types, only: GT_VARIABLE use gtdata_generic, only: Open, Inquire, Close, Get use dc_string, only: toChar use dc_present,only: present_select use dc_types, only: DP, STRING use dc_message, only: MessageNotify use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname character(*), intent(in), optional:: range real(DP), pointer :: array(:,:) ! (out) type(GT_VARIABLE) :: var character(STRING) :: url, actual_url character(*), parameter :: subname = "HistoryGetDouble2Pointer" interface subroutine lookup_growable_url(file, varname, url, range, err) character(*), intent(in) :: file ! ファイル名 character(*), intent(in) :: varname ! 変数名 character(*), intent(out) :: url ! gtool変数化した文字列 character(*), intent(in), optional:: range ! 範囲限定や一点切り出し指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine lookup_growable_url end interface interface subroutine actual_iorange_dump(url, actual_url, err) character(*), intent(in) :: url ! 変数 URL character(*), intent(out), optional :: actual_url ! 正確な入出力範囲指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine actual_iorange_dump end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) ! 必要な情報を gtool 変数化 call lookup_growable_url(file, varname, url, range) call DbgMessage('@ url =%c', c1=trim(url)) ! いよいよデータ取得 call Open(var, url) call Get(var, array) call Close(var) call actual_iorange_dump(url, actual_url) call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url)) call EndSub(subname) end subroutine subroutine HistoryGetDouble3Pointer(file, varname, array, range),16 ! ! Double 型ポインタ配列用 3 次元配列用データ入力サブルーチン ! use gtdata_types, only: GT_VARIABLE use gtdata_generic, only: Open, Inquire, Close, Get use dc_string, only: toChar use dc_present,only: present_select use dc_types, only: DP, STRING use dc_message, only: MessageNotify use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname character(*), intent(in), optional:: range real(DP), pointer :: array(:,:,:) ! (out) type(GT_VARIABLE) :: var character(STRING) :: url, actual_url character(*), parameter :: subname = "HistoryGetDouble3Pointer" interface subroutine lookup_growable_url(file, varname, url, range, err) character(*), intent(in) :: file ! ファイル名 character(*), intent(in) :: varname ! 変数名 character(*), intent(out) :: url ! gtool変数化した文字列 character(*), intent(in), optional:: range ! 範囲限定や一点切り出し指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine lookup_growable_url end interface interface subroutine actual_iorange_dump(url, actual_url, err) character(*), intent(in) :: url ! 変数 URL character(*), intent(out), optional :: actual_url ! 正確な入出力範囲指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine actual_iorange_dump end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) ! 必要な情報を gtool 変数化 call lookup_growable_url(file, varname, url, range) call DbgMessage('@ url =%c', c1=trim(url)) ! いよいよデータ取得 call Open(var, url) call Get(var, array) call Close(var) call actual_iorange_dump(url, actual_url) call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url)) call EndSub(subname) end subroutine subroutine HistoryGetDouble4Pointer(file, varname, array, range),16 ! ! Double 型ポインタ配列用 4 次元配列用データ入力サブルーチン ! use gtdata_types, only: GT_VARIABLE use gtdata_generic, only: Open, Inquire, Close, Get use dc_string, only: toChar use dc_present,only: present_select use dc_types, only: DP, STRING use dc_message, only: MessageNotify use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname character(*), intent(in), optional:: range real(DP), pointer :: array(:,:,:,:) ! (out) type(GT_VARIABLE) :: var character(STRING) :: url, actual_url character(*), parameter :: subname = "HistoryGetDouble4Pointer" interface subroutine lookup_growable_url(file, varname, url, range, err) character(*), intent(in) :: file ! ファイル名 character(*), intent(in) :: varname ! 変数名 character(*), intent(out) :: url ! gtool変数化した文字列 character(*), intent(in), optional:: range ! 範囲限定や一点切り出し指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine lookup_growable_url end interface interface subroutine actual_iorange_dump(url, actual_url, err) character(*), intent(in) :: url ! 変数 URL character(*), intent(out), optional :: actual_url ! 正確な入出力範囲指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine actual_iorange_dump end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) ! 必要な情報を gtool 変数化 call lookup_growable_url(file, varname, url, range) call DbgMessage('@ url =%c', c1=trim(url)) ! いよいよデータ取得 call Open(var, url) call Get(var, array) call Close(var) call actual_iorange_dump(url, actual_url) call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url)) call EndSub(subname) end subroutine subroutine HistoryGetDouble5Pointer(file, varname, array, range),16 ! ! Double 型ポインタ配列用 5 次元配列用データ入力サブルーチン ! use gtdata_types, only: GT_VARIABLE use gtdata_generic, only: Open, Inquire, Close, Get use dc_string, only: toChar use dc_present,only: present_select use dc_types, only: DP, STRING use dc_message, only: MessageNotify use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname character(*), intent(in), optional:: range real(DP), pointer :: array(:,:,:,:,:) ! (out) type(GT_VARIABLE) :: var character(STRING) :: url, actual_url character(*), parameter :: subname = "HistoryGetDouble5Pointer" interface subroutine lookup_growable_url(file, varname, url, range, err) character(*), intent(in) :: file ! ファイル名 character(*), intent(in) :: varname ! 変数名 character(*), intent(out) :: url ! gtool変数化した文字列 character(*), intent(in), optional:: range ! 範囲限定や一点切り出し指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine lookup_growable_url end interface interface subroutine actual_iorange_dump(url, actual_url, err) character(*), intent(in) :: url ! 変数 URL character(*), intent(out), optional :: actual_url ! 正確な入出力範囲指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine actual_iorange_dump end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) ! 必要な情報を gtool 変数化 call lookup_growable_url(file, varname, url, range) call DbgMessage('@ url =%c', c1=trim(url)) ! いよいよデータ取得 call Open(var, url) call Get(var, array) call Close(var) call actual_iorange_dump(url, actual_url) call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url)) call EndSub(subname) end subroutine subroutine HistoryGetDouble6Pointer(file, varname, array, range),16 ! ! Double 型ポインタ配列用 6 次元配列用データ入力サブルーチン ! use gtdata_types, only: GT_VARIABLE use gtdata_generic, only: Open, Inquire, Close, Get use dc_string, only: toChar use dc_present,only: present_select use dc_types, only: DP, STRING use dc_message, only: MessageNotify use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname character(*), intent(in), optional:: range real(DP), pointer :: array(:,:,:,:,:,:) ! (out) type(GT_VARIABLE) :: var character(STRING) :: url, actual_url character(*), parameter :: subname = "HistoryGetDouble6Pointer" interface subroutine lookup_growable_url(file, varname, url, range, err) character(*), intent(in) :: file ! ファイル名 character(*), intent(in) :: varname ! 変数名 character(*), intent(out) :: url ! gtool変数化した文字列 character(*), intent(in), optional:: range ! 範囲限定や一点切り出し指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine lookup_growable_url end interface interface subroutine actual_iorange_dump(url, actual_url, err) character(*), intent(in) :: url ! 変数 URL character(*), intent(out), optional :: actual_url ! 正確な入出力範囲指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine actual_iorange_dump end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) ! 必要な情報を gtool 変数化 call lookup_growable_url(file, varname, url, range) call DbgMessage('@ url =%c', c1=trim(url)) ! いよいよデータ取得 call Open(var, url) call Get(var, array) call Close(var) call actual_iorange_dump(url, actual_url) call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url)) call EndSub(subname) end subroutine subroutine HistoryGetDouble7Pointer(file, varname, array, range),16 ! ! Double 型ポインタ配列用 7 次元配列用データ入力サブルーチン ! use gtdata_types, only: GT_VARIABLE use gtdata_generic, only: Open, Inquire, Close, Get use dc_string, only: toChar use dc_present,only: present_select use dc_types, only: DP, STRING use dc_message, only: MessageNotify use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname character(*), intent(in), optional:: range real(DP), pointer :: array(:,:,:,:,:,:,:) ! (out) type(GT_VARIABLE) :: var character(STRING) :: url, actual_url character(*), parameter :: subname = "HistoryGetDouble7Pointer" interface subroutine lookup_growable_url(file, varname, url, range, err) character(*), intent(in) :: file ! ファイル名 character(*), intent(in) :: varname ! 変数名 character(*), intent(out) :: url ! gtool変数化した文字列 character(*), intent(in), optional:: range ! 範囲限定や一点切り出し指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine lookup_growable_url end interface interface subroutine actual_iorange_dump(url, actual_url, err) character(*), intent(in) :: url ! 変数 URL character(*), intent(out), optional :: actual_url ! 正確な入出力範囲指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine actual_iorange_dump end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) ! 必要な情報を gtool 変数化 call lookup_growable_url(file, varname, url, range) call DbgMessage('@ url =%c', c1=trim(url)) ! いよいよデータ取得 call Open(var, url) call Get(var, array) call Close(var) call actual_iorange_dump(url, actual_url) call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url)) call EndSub(subname) end subroutine subroutine HistoryGetReal1Pointer(file, varname, array, range),16 ! ! Real 型ポインタ配列用 1 次元配列用データ入力サブルーチン ! use gtdata_types, only: GT_VARIABLE use gtdata_generic, only: Open, Inquire, Close, Get use dc_string, only: toChar use dc_present,only: present_select use dc_types, only: DP, STRING use dc_message, only: MessageNotify use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname character(*), intent(in), optional:: range real, pointer :: array(:) ! (out) type(GT_VARIABLE) :: var character(STRING) :: url, actual_url character(*), parameter :: subname = "HistoryGetReal1Pointer" interface subroutine lookup_growable_url(file, varname, url, range, err) character(*), intent(in) :: file ! ファイル名 character(*), intent(in) :: varname ! 変数名 character(*), intent(out) :: url ! gtool変数化した文字列 character(*), intent(in), optional:: range ! 範囲限定や一点切り出し指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine lookup_growable_url end interface interface subroutine actual_iorange_dump(url, actual_url, err) character(*), intent(in) :: url ! 変数 URL character(*), intent(out), optional :: actual_url ! 正確な入出力範囲指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine actual_iorange_dump end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) ! 必要な情報を gtool 変数化 call lookup_growable_url(file, varname, url, range) call DbgMessage('@ url =%c', c1=trim(url)) ! いよいよデータ取得 call Open(var, url) call Get(var, array) call Close(var) call actual_iorange_dump(url, actual_url) call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url)) call EndSub(subname) end subroutine subroutine HistoryGetReal2Pointer(file, varname, array, range),16 ! ! Real 型ポインタ配列用 2 次元配列用データ入力サブルーチン ! use gtdata_types, only: GT_VARIABLE use gtdata_generic, only: Open, Inquire, Close, Get use dc_string, only: toChar use dc_present,only: present_select use dc_types, only: DP, STRING use dc_message, only: MessageNotify use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname character(*), intent(in), optional:: range real, pointer :: array(:,:) ! (out) type(GT_VARIABLE) :: var character(STRING) :: url, actual_url character(*), parameter :: subname = "HistoryGetReal2Pointer" interface subroutine lookup_growable_url(file, varname, url, range, err) character(*), intent(in) :: file ! ファイル名 character(*), intent(in) :: varname ! 変数名 character(*), intent(out) :: url ! gtool変数化した文字列 character(*), intent(in), optional:: range ! 範囲限定や一点切り出し指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine lookup_growable_url end interface interface subroutine actual_iorange_dump(url, actual_url, err) character(*), intent(in) :: url ! 変数 URL character(*), intent(out), optional :: actual_url ! 正確な入出力範囲指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine actual_iorange_dump end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) ! 必要な情報を gtool 変数化 call lookup_growable_url(file, varname, url, range) call DbgMessage('@ url =%c', c1=trim(url)) ! いよいよデータ取得 call Open(var, url) call Get(var, array) call Close(var) call actual_iorange_dump(url, actual_url) call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url)) call EndSub(subname) end subroutine subroutine HistoryGetReal3Pointer(file, varname, array, range),16 ! ! Real 型ポインタ配列用 3 次元配列用データ入力サブルーチン ! use gtdata_types, only: GT_VARIABLE use gtdata_generic, only: Open, Inquire, Close, Get use dc_string, only: toChar use dc_present,only: present_select use dc_types, only: DP, STRING use dc_message, only: MessageNotify use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname character(*), intent(in), optional:: range real, pointer :: array(:,:,:) ! (out) type(GT_VARIABLE) :: var character(STRING) :: url, actual_url character(*), parameter :: subname = "HistoryGetReal3Pointer" interface subroutine lookup_growable_url(file, varname, url, range, err) character(*), intent(in) :: file ! ファイル名 character(*), intent(in) :: varname ! 変数名 character(*), intent(out) :: url ! gtool変数化した文字列 character(*), intent(in), optional:: range ! 範囲限定や一点切り出し指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine lookup_growable_url end interface interface subroutine actual_iorange_dump(url, actual_url, err) character(*), intent(in) :: url ! 変数 URL character(*), intent(out), optional :: actual_url ! 正確な入出力範囲指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine actual_iorange_dump end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) ! 必要な情報を gtool 変数化 call lookup_growable_url(file, varname, url, range) call DbgMessage('@ url =%c', c1=trim(url)) ! いよいよデータ取得 call Open(var, url) call Get(var, array) call Close(var) call actual_iorange_dump(url, actual_url) call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url)) call EndSub(subname) end subroutine subroutine HistoryGetReal4Pointer(file, varname, array, range),16 ! ! Real 型ポインタ配列用 4 次元配列用データ入力サブルーチン ! use gtdata_types, only: GT_VARIABLE use gtdata_generic, only: Open, Inquire, Close, Get use dc_string, only: toChar use dc_present,only: present_select use dc_types, only: DP, STRING use dc_message, only: MessageNotify use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname character(*), intent(in), optional:: range real, pointer :: array(:,:,:,:) ! (out) type(GT_VARIABLE) :: var character(STRING) :: url, actual_url character(*), parameter :: subname = "HistoryGetReal4Pointer" interface subroutine lookup_growable_url(file, varname, url, range, err) character(*), intent(in) :: file ! ファイル名 character(*), intent(in) :: varname ! 変数名 character(*), intent(out) :: url ! gtool変数化した文字列 character(*), intent(in), optional:: range ! 範囲限定や一点切り出し指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine lookup_growable_url end interface interface subroutine actual_iorange_dump(url, actual_url, err) character(*), intent(in) :: url ! 変数 URL character(*), intent(out), optional :: actual_url ! 正確な入出力範囲指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine actual_iorange_dump end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) ! 必要な情報を gtool 変数化 call lookup_growable_url(file, varname, url, range) call DbgMessage('@ url =%c', c1=trim(url)) ! いよいよデータ取得 call Open(var, url) call Get(var, array) call Close(var) call actual_iorange_dump(url, actual_url) call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url)) call EndSub(subname) end subroutine subroutine HistoryGetReal5Pointer(file, varname, array, range),16 ! ! Real 型ポインタ配列用 5 次元配列用データ入力サブルーチン ! use gtdata_types, only: GT_VARIABLE use gtdata_generic, only: Open, Inquire, Close, Get use dc_string, only: toChar use dc_present,only: present_select use dc_types, only: DP, STRING use dc_message, only: MessageNotify use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname character(*), intent(in), optional:: range real, pointer :: array(:,:,:,:,:) ! (out) type(GT_VARIABLE) :: var character(STRING) :: url, actual_url character(*), parameter :: subname = "HistoryGetReal5Pointer" interface subroutine lookup_growable_url(file, varname, url, range, err) character(*), intent(in) :: file ! ファイル名 character(*), intent(in) :: varname ! 変数名 character(*), intent(out) :: url ! gtool変数化した文字列 character(*), intent(in), optional:: range ! 範囲限定や一点切り出し指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine lookup_growable_url end interface interface subroutine actual_iorange_dump(url, actual_url, err) character(*), intent(in) :: url ! 変数 URL character(*), intent(out), optional :: actual_url ! 正確な入出力範囲指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine actual_iorange_dump end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) ! 必要な情報を gtool 変数化 call lookup_growable_url(file, varname, url, range) call DbgMessage('@ url =%c', c1=trim(url)) ! いよいよデータ取得 call Open(var, url) call Get(var, array) call Close(var) call actual_iorange_dump(url, actual_url) call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url)) call EndSub(subname) end subroutine subroutine HistoryGetReal6Pointer(file, varname, array, range),16 ! ! Real 型ポインタ配列用 6 次元配列用データ入力サブルーチン ! use gtdata_types, only: GT_VARIABLE use gtdata_generic, only: Open, Inquire, Close, Get use dc_string, only: toChar use dc_present,only: present_select use dc_types, only: DP, STRING use dc_message, only: MessageNotify use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname character(*), intent(in), optional:: range real, pointer :: array(:,:,:,:,:,:) ! (out) type(GT_VARIABLE) :: var character(STRING) :: url, actual_url character(*), parameter :: subname = "HistoryGetReal6Pointer" interface subroutine lookup_growable_url(file, varname, url, range, err) character(*), intent(in) :: file ! ファイル名 character(*), intent(in) :: varname ! 変数名 character(*), intent(out) :: url ! gtool変数化した文字列 character(*), intent(in), optional:: range ! 範囲限定や一点切り出し指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine lookup_growable_url end interface interface subroutine actual_iorange_dump(url, actual_url, err) character(*), intent(in) :: url ! 変数 URL character(*), intent(out), optional :: actual_url ! 正確な入出力範囲指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine actual_iorange_dump end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) ! 必要な情報を gtool 変数化 call lookup_growable_url(file, varname, url, range) call DbgMessage('@ url =%c', c1=trim(url)) ! いよいよデータ取得 call Open(var, url) call Get(var, array) call Close(var) call actual_iorange_dump(url, actual_url) call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url)) call EndSub(subname) end subroutine subroutine HistoryGetReal7Pointer(file, varname, array, range),16 ! ! Real 型ポインタ配列用 7 次元配列用データ入力サブルーチン ! use gtdata_types, only: GT_VARIABLE use gtdata_generic, only: Open, Inquire, Close, Get use dc_string, only: toChar use dc_present,only: present_select use dc_types, only: DP, STRING use dc_message, only: MessageNotify use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname character(*), intent(in), optional:: range real, pointer :: array(:,:,:,:,:,:,:) ! (out) type(GT_VARIABLE) :: var character(STRING) :: url, actual_url character(*), parameter :: subname = "HistoryGetReal7Pointer" interface subroutine lookup_growable_url(file, varname, url, range, err) character(*), intent(in) :: file ! ファイル名 character(*), intent(in) :: varname ! 変数名 character(*), intent(out) :: url ! gtool変数化した文字列 character(*), intent(in), optional:: range ! 範囲限定や一点切り出し指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine lookup_growable_url end interface interface subroutine actual_iorange_dump(url, actual_url, err) character(*), intent(in) :: url ! 変数 URL character(*), intent(out), optional :: actual_url ! 正確な入出力範囲指定 logical, intent(out), optional :: err ! エラーのフラグ end subroutine actual_iorange_dump end interface continue call BeginSub(subname, 'file=%c varname=%c range=%c', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) ! 必要な情報を gtool 変数化 call lookup_growable_url(file, varname, url, range) call DbgMessage('@ url =%c', c1=trim(url)) ! いよいよデータ取得 call Open(var, url) call Get(var, array) call Close(var) call actual_iorange_dump(url, actual_url) call MessageNotify('M', subname, 'Input %c', c1=trim(actual_url)) call EndSub(subname) end subroutine subroutine HistoryGetDouble1PointerTimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real(DP), pointer :: array(:) ! (out) character(*), parameter :: subname = "HistoryGetDouble1PointerTimeR" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble2PointerTimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real(DP), pointer :: array(:,:) ! (out) character(*), parameter :: subname = "HistoryGetDouble2PointerTimeR" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble3PointerTimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real(DP), pointer :: array(:,:,:) ! (out) character(*), parameter :: subname = "HistoryGetDouble3PointerTimeR" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble4PointerTimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real(DP), pointer :: array(:,:,:,:) ! (out) character(*), parameter :: subname = "HistoryGetDouble4PointerTimeR" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble5PointerTimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real(DP), pointer :: array(:,:,:,:,:) ! (out) character(*), parameter :: subname = "HistoryGetDouble5PointerTimeR" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble6PointerTimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real(DP), pointer :: array(:,:,:,:,:,:) ! (out) character(*), parameter :: subname = "HistoryGetDouble6PointerTimeR" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble7PointerTimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real(DP), pointer :: array(:,:,:,:,:,:,:) ! (out) character(*), parameter :: subname = "HistoryGetDouble7PointerTimeR" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal1PointerTimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real, pointer :: array(:) ! (out) character(*), parameter :: subname = "HistoryGetReal1PointerTimeR" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal2PointerTimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real, pointer :: array(:,:) ! (out) character(*), parameter :: subname = "HistoryGetReal2PointerTimeR" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal3PointerTimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real, pointer :: array(:,:,:) ! (out) character(*), parameter :: subname = "HistoryGetReal3PointerTimeR" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal4PointerTimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real, pointer :: array(:,:,:,:) ! (out) character(*), parameter :: subname = "HistoryGetReal4PointerTimeR" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal5PointerTimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real, pointer :: array(:,:,:,:,:) ! (out) character(*), parameter :: subname = "HistoryGetReal5PointerTimeR" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal6PointerTimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real, pointer :: array(:,:,:,:,:,:) ! (out) character(*), parameter :: subname = "HistoryGetReal6PointerTimeR" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal7PointerTimeR(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real, intent(in) :: time real, pointer :: array(:,:,:,:,:,:,:) ! (out) character(*), parameter :: subname = "HistoryGetReal7PointerTimeR" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble1PointerTimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real(DP), pointer :: array(:) ! (out) character(*), parameter :: subname = "HistoryGetDouble1PointerTimeD" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble2PointerTimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real(DP), pointer :: array(:,:) ! (out) character(*), parameter :: subname = "HistoryGetDouble2PointerTimeD" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble3PointerTimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real(DP), pointer :: array(:,:,:) ! (out) character(*), parameter :: subname = "HistoryGetDouble3PointerTimeD" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble4PointerTimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real(DP), pointer :: array(:,:,:,:) ! (out) character(*), parameter :: subname = "HistoryGetDouble4PointerTimeD" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble5PointerTimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real(DP), pointer :: array(:,:,:,:,:) ! (out) character(*), parameter :: subname = "HistoryGetDouble5PointerTimeD" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble6PointerTimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real(DP), pointer :: array(:,:,:,:,:,:) ! (out) character(*), parameter :: subname = "HistoryGetDouble6PointerTimeD" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetDouble7PointerTimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real(DP), pointer :: array(:,:,:,:,:,:,:) ! (out) character(*), parameter :: subname = "HistoryGetDouble7PointerTimeD" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal1PointerTimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real, pointer :: array(:) ! (out) character(*), parameter :: subname = "HistoryGetReal1PointerTimeD" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal2PointerTimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real, pointer :: array(:,:) ! (out) character(*), parameter :: subname = "HistoryGetReal2PointerTimeD" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal3PointerTimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real, pointer :: array(:,:,:) ! (out) character(*), parameter :: subname = "HistoryGetReal3PointerTimeD" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal4PointerTimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real, pointer :: array(:,:,:,:) ! (out) character(*), parameter :: subname = "HistoryGetReal4PointerTimeD" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal5PointerTimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real, pointer :: array(:,:,:,:,:) ! (out) character(*), parameter :: subname = "HistoryGetReal5PointerTimeD" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal6PointerTimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real, pointer :: array(:,:,:,:,:,:) ! (out) character(*), parameter :: subname = "HistoryGetReal6PointerTimeD" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine HistoryGetReal7PointerTimeD(file, varname, array, time),7 ! ! 将来廃止予定です。*time* は *range* に置き換え、文字型で与えて下さい。 ! use gt4_history, only: HistoryGetPointer use dc_string, only: toChar use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in):: file, varname real(DP), intent(in) :: time real, pointer :: array(:,:,:,:,:,:,:) ! (out) character(*), parameter :: subname = "HistoryGetReal7PointerTimeD" continue call BeginSub(subname, 'file=%c varname=%c time=%c', & & c1=trim(file), c2=trim(varname), c3=toChar(time)) call HistoryGetPointer( & & file=file, varname=varname, array=array, range=toChar(time)) call EndSub(subname) end subroutine subroutine lookup_growable_url(file, varname, url, range, err) 18,25 ! ! file の変数 varname が依存する次元の内, 時間の次元 ! (growable == .TRUE. のもの, つまり無制限次元) の変数名, ! およびその最後の値を取得し, gtool変数化 ! ("file@varname,time=10.5" みたいな) して返す. ! ! * もしも varname が次元変数である場合は「time=」を付けずに返す. ! * range を与えた場合, 以下のチェックを行った後, それを gtool4 ! 変数の iorange 部分に付加する. ! * 数値のみが与えられる場合, 時間次元の値として認識され, ! その値を用いた url が返る. ! * range 内に時間次元が設定されていない場合は, 自動的に ! 時間次元に関する iorange ("time=0.5") が指定される. ! use gtdata_types, only: GT_VARIABLE use gtdata_generic, only: Open, Close, Inquire use dc_present,only: present_select, present_and_not_empty use dc_string, only: toChar use dc_error, only: StoreError, DC_NOERR, GT_ENOUNLIMITDIM, NF_EINVAL use dc_url, only: GT_CIRCUMFLEX, GT_COMMA, GT_EQUAL use dc_url, only: UrlSplit, UrlMerge, UrlSearchIORange use regex, only: match use dc_types, only: DP, STRING use dc_trace, only: Beginsub, Endsub, DbgMessage character(*), intent(in) :: file ! ファイル名 character(*), intent(in) :: varname ! 変数名 character(*), intent(out) :: url ! gtool変数化した文字列 character(*), intent(in), optional:: range ! 範囲限定や一点切り出し指定 logical, intent(out), optional :: err ! エラーのフラグ ! type(GT_VARIABLE) :: var type(GT_VARIABLE), allocatable :: dimvar(:) character(STRING) :: time_url, time_name, time_iorange character(STRING) :: iorange, cause_c logical:: growable, nounlimited integer:: allcount, timecount, nd, i, stat integer:: regex_stat, regex_len character(*), parameter :: subname = "lookup_growable_url" continue call BeginSub(subname, '<file=%c varname=%c range=%c>', & & c1=trim(file), c2=trim(varname), & & c3=trim(present_select('', 'no-range', range))) stat = DC_NOERR cause_c = "" ! 引数の正当性をチェック if (.not. present_and_not_empty(file)) then stat = NF_EINVAL cause_c = '"file" is not specified' url = "" goto 999 elseif (.not. present_and_not_empty(varname)) then stat = NF_EINVAL cause_c = '"varname" is not specified' url = "" goto 999 end if ! 時刻次元の変数名, およびその最終時刻の ! 探査のために file@varname を open (まだデータを取得しない) call Open(var, UrlMerge(file, varname)) ! 次元の数を取得 call Inquire(var=var, alldims=nd) call DbgMessage('@ alldims = %d', i=(/nd/)) if (allocated(dimvar)) then deallocate(dimvar) end if allocate(dimvar(nd)) ! ! 変数が無制限変数を持たない場合には, それに関する iorange を ! 付けないで返すよう, フラグを立てる. ! 無制限次元があれば, .false. にする. nounlimited = .true. ! ! 各次元毎に情報を取得し, growable == .TRUE. のもの (つまりは時間) ! の変数名 (time_name) を取得する. call DbgMessage('[%c: growable-dim-search]', c1=trim(subname)) do, i = 1, nd call Open(var=dimvar(i), source_var=var, dimord=i, & & count_compact=.TRUE., err=err) ! まずは変数入り gtool4 変数を time_url に取得 call Inquire(var=dimvar(i), growable=growable, & & allcount=allcount, url=time_url) call DbgMessage(' [dim=<%d>: growable=<%y>: url=<%c>]', & & i=(/i/), L=(/growable/), c1=trim(time_url)) ! 総数 = 最後の数, なので... if (growable) then ! 変数部分だけ分離 call UrlSplit(fullname=time_url, var=time_name) timecount = allcount nounlimited = .false. endif call Close(dimvar(i)) end do ! 探査を終了したので閉じる call Close(var) if (stat /= DC_NOERR) then goto 999 end if ! 時刻部分の iorange を作成しておく. ! 格子点情報で取得されているので, 頭に "^" を付加する. if (nounlimited) then time_iorange = '' else time_iorange = trim(time_name) // GT_EQUAL // & & GT_CIRCUMFLEX // adjustl(toChar(timecount)) end if ! iorange を指定する. ! 時刻に関しては, range が存在しない場合には ! 自動取得した最後の時刻を付加する. ! range が存在する場合, "=" が含まれなければ単に時刻の ! 値として取得. ! "=" が含まれる場合, iorange としてそのまま iorange になる. ! ただし, その iorange に時刻次元が含まれない場合, ! やはり先ほど自動取得した値が付加される. ! 当然, 時刻次元が存在しない場合には付加しない. if (.not. present_and_not_empty(range)) then iorange = time_iorange else ! range がコンマ記法になっているか, "=" があるかどうかで調べる call match(GT_EQUAL, range, regex_len, regex_stat) ! コンマ記法になってない場合は無制限次元の値と判定 if (regex_stat < 0) then iorange = trim(time_name) // GT_EQUAL // adjustl(range) else ! コンマ記法になっている場合, まずその中に無制限次元が ! 存在しているか調べ, 存在してない場合のみ time_iorange を ! 付加する. if (trim(UrlSearchIORange(range, time_name)) /= "") then iorange = range else if (trim(time_iorange) /= "") then iorange = range // GT_COMMA // time_iorange else iorange = range end if end if end if endif call DbgMessage('@ iorange=%c', c1=trim(iorange)) ! file, varname, iorange を gtool変数化 ! (「file@varname,time=10.5」のように) url = UrlMerge(file, varname, '', iorange) 999 continue call StoreError(stat, subname, err, cause_c) call EndSub(subname, '<url=%c>', c1=trim(url)) end subroutine lookup_growable_url subroutine actual_iorange_dump(url, actual_url, err) 18,23 ! ! 変数 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 !-- ! vi:set readonly sw=4 ts=8: ! !Local Variables: !mode: f90 !buffer-read-only: t !End: ! !++