gtool5 Fortran 90/95 ライブラリ 1.0.0-rc5
English
Loading...
Searching...
No Matches
Functions/Subroutines
gtvargetsliceall.f90 File Reference

変数入出力範囲限定情報を取得 (全ての次元の情報を一括取得) More...

Go to the source code of this file.

Functions/Subroutines

subroutine gtvargetsliceall (var, start, count, stride)
 

Detailed Description

変数入出力範囲限定情報を取得 (全ての次元の情報を一括取得)

Author
Eizi TOYODA, Yasuhiro MORIKAWA

Definition in file gtvargetsliceall.f90.

Function/Subroutine Documentation

◆ gtvargetsliceall()

subroutine gtvargetsliceall ( type(gt_variable), intent(in)  var,
integer, dimension(:), intent(out), optional  start,
integer, dimension(:), intent(out), optional  count,
integer, dimension(:), intent(out), optional  stride 
)

全次元の入出力範囲情報を取得

変数 var に関して、Slice によって設定された入出力範囲の情報を取得します。 全次元の入出力範囲について一括取得するため、 あらかじめ Inquire(var, alldims) して次元の数を確保しなければなりません。

start, count, stride に関しては Slice を参照してください。

Get_Slice は 2 つのサブルーチンの総称名であり、 他にもある1つの次元に関して情報を取得する方法もあります。

Parameters
[in]var変数ハンドル
[out]start各次元の開始位置配列 (省略可能)
[out]count各次元のカウント配列 (省略可能)
[out]stride各次元のストライド配列 (省略可能)

Definition at line 57 of file gtvargetsliceall.f90.

58 use gtdata_types, only: gt_variable
60 implicit none
61 type(GT_VARIABLE), intent(in):: var
62 integer, intent(out), optional:: start(:), count(:), stride(:)
63 integer:: nd, i
64 logical:: all
65 nd = huge(1)
66 all = present(start) .and. present(count) .and. present(stride)
67 if (present(start)) nd = min(nd, size(start))
68 if (present(count)) nd = min(nd, size(count))
69 if (present(stride)) nd = min(nd, size(stride))
70 do, i = 1, nd
71 if (all) then
72 call gtvargetslice(var, i, start(i), count(i), stride(i))
73 cycle
74 endif
75 if (present(start)) call gtvargetslice(var, i, start=start(i))
76 if (present(count)) call gtvargetslice(var, i, count=count(i))
77 if (present(stride)) call gtvargetslice(var, i, stride=stride(i))
78 enddo
subroutine gtvargetslice(var, dimord, start, count, stride, count_compact)

References gtvargetslice().

Here is the call graph for this function: