Grid data 2d struct

提供: ComplexRI: Manual
2026年5月26日 (火) 04:16時点におけるHirano (トーク | 投稿記録)による版 (ページの作成:「== 概要 == grid_data_2d_struct は等間隔の二次元格子上のデータを取り扱う構造体である。 同様の機能を持つ構造体として graph_stru…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

概要

grid_data_2d_struct は等間隔の二次元格子上のデータを取り扱う構造体である。 同様の機能を持つ構造体として graph_struct があるが、 こちらは一次元と二次元を同時に扱おうとしたために拡張に困難がある。 そのため、二次元のみを扱うより洗練された構造体を作ることにした。 一次元のデータを取り扱う構造体 grid_data_1d_struct も作成してあり、今後これらを graph_struct と置き換え、graph_struct は廃止する予定である。

メンバ変数

xmin: x 座標の最小値

ymin: y 座標の最小値

dx: x 座標方向の格子間隔

dy: y 座標方向の格子間隔

nx: x 座標方向のデータ数

ny: y 座標方向のデータ数

z(1:nx,1:ny): 二次元格子上のデータ

undefined_value: この値に設定された値を未定義値と見なす。(default:0.0d0)

コンストラクタ

grid_data_2d のコンストラクタとして、

  • 直接メンバ変数を指定するもの <source lang="fortran"> gd = grid_data_2d(xmin,ymin,dx,dy,nx,ny,z) </source>
  • ファイル名とデータ数等を指定するもの <source lang="fortran"> gd = grid_data_2d(filename,column,nx,ny) </source>

を用意する。 その他必要となった場合に適宜追加していく。

可能な操作

プロシージャは各自が必要に応じて適宜追加していくことにする。 現在のところ、

<source lang="fortran">

type(grid_data_2d_struct) function axis_exchange() result(gd)
!!!
!!! 軸の入れ替え
!!!

type(grid_data_1d_struct) function integrate([axis]) result(gd)
!!!
!!! 積分(axisを未指定、または axis = 1 のとき x 座標を積分、axis = 2 のとき y 座標を積分
!!!

type(grid_data_2d_struct) function get_subdata(ixmin,iymin,ixmax,iymax)
!!!
!!! 関数の一部 z(ixmin:ixmax,iymin:iymax) を取り出す。
!!!

subroutine set_undefined_value(undefined_value[,do_change])
!!!
!!! 未定義値と見なす値を定義する。
!!! do_change = .true. の場合、元のデータで該当する値を新しいものに置き換える。
!!!

</source> が作成されている。

出力

現状下記が用意されている。他は必要に応じて追加していく。

integer function get_ix(x) result(x)
integer function get_iy(y) result(y)
!!!
!!! x(y) に最も近い格子の番号を返す。
!!!