Subroutine : |
|
varinfo : | type(GT_HISTORY_VARINFO),intent(in)
|
name : | character(*), intent(out), optional
|
dims(:) : | character(*), pointer, optional
|
longname : | character(*), intent(out), optional
|
units : | character(*), intent(out), optional
|
xtype : | character(*), intent(out), optional
|
time_average : | logical, intent(out), optional
|
average : | logical, intent(out), optional
|
err : | logical, intent(out), optional
: | 例外処理用フラグ. デフォルトでは, この手続き内でエラーが 生じた場合,
プログラムは強制終了します. 引数 err が与えられる場合,
プログラムは強制終了せず, 代わりに err に .true. が代入されます.
Exception handling flag. By default, when error occur in this procedure,
the program aborts. If this err argument is given, .true. is
substituted to err and the program does not abort.
|
|
subroutine HistoryVarinfoInquire1( varinfo, name, dims, longname, units, xtype, time_average, average, err )
!
!== GT_HISTORY_VARINFO 型変数への問い合わせ
!
! GT_HISTORY_VARINFO 型の変数内の各情報を参照します。
!
! dims はポインタ配列です。空状態にして与えてください。
!
use dc_types, only: STRING, TOKEN, DP
use dc_trace, only: BeginSub, EndSub, DbgMessage
use dc_error, only: StoreError, DC_NOERR, DC_ENOTINIT
use gtool_history_types, only: GT_HISTORY, GT_HISTORY_AXIS, GT_HISTORY_VARINFO, GT_HISTORY_ATTR
use gtool_history_internal, only: default
implicit none
type(GT_HISTORY_VARINFO),intent(in) :: varinfo
character(*), intent(out), optional:: name ! 変数名
character(*), pointer, optional:: dims(:) !(out) 依存する次元
character(*), intent(out), optional:: longname ! 変数の記述的名称
character(*), intent(out), optional:: units ! 変数の単位
character(*), intent(out), optional:: xtype ! 変数の型
logical, intent(out), optional:: time_average ! 時間平均
logical, intent(out), optional:: average ! 時間平均 (後方互換用)
logical, intent(out), optional:: err
! 例外処理用フラグ.
! デフォルトでは, この手続き内でエラーが
! 生じた場合, プログラムは強制終了します.
! 引数 *err* が与えられる場合,
! プログラムは強制終了せず, 代わりに
! *err* に .true. が代入されます.
!
! Exception handling flag.
! By default, when error occur in
! this procedure, the program aborts.
! If this *err* argument is given,
! .true. is substituted to *err* and
! the program does not abort.
! Internal Work
integer:: i, numdims, stat
character(STRING):: cause_c
character(*), parameter:: subname = "HistoryVarinfoInquire1"
continue
call BeginSub(subname)
stat = DC_NOERR
cause_c = ''
if ( .not. varinfo % initialized ) then
stat = DC_ENOTINIT
cause_c = 'GT_HISTORY_VARINFO'
goto 999
end if
if (present(name)) name = varinfo % name
if (present(dims)) then
numdims = size(varinfo % dims)
allocate(dims(numdims))
do i = 1, numdims
dims(i) = varinfo % dims(i)
end do
end if
if ( present(longname) ) longname = varinfo % longname
if ( present(units) ) units = varinfo % units
if ( present(xtype) ) xtype = varinfo % xtype
if ( present(time_average) ) time_average = varinfo % time_average
if ( present(average) ) average = varinfo % time_average
999 continue
call StoreError(stat, subname, err, cause_c=cause_c)
call EndSub(subname)
end subroutine HistoryVarinfoInquire1