IGMBaseLib 1.0
|
This module provides a derived type, which manages the coordinate data for grid points and their control volume in icosahedral gird, and some subroutines to manupulate their data. More...
Data Types | |
type | IcGrid2D_FVM |
Derived type which manages the coordinate datas for grid points and their control volume in icosahedral gird. More... | |
Functions/Subroutines | |
subroutine, public | IcGrid2D_FVM_Init (self, glevel, ic_radius) |
Initializes the variable of FV_IcGrid type. | |
subroutine, public | malloc_GP_array (self) |
Allocates memory for array to stroe the vertices of icosahedral grid. | |
subroutine, public | malloc_CV_array (self) |
Allocates memory for array to store the vertices of control volumes surrounding each grid point. | |
subroutine, public | IcGrid2D_FVM_Final (self) |
Finalizes a variable of derived type IcGrid2D_FVM. | |
integer, public | get_EffSize_Min (self) |
格子点座標を保持する配列において, 物理的意味がある配列の最小インデックスを取得する. | |
integer, public | get_EffSize_Max (self) |
格子点座標を保持する配列において, 物理的意味がある配列の最大インデックスを取得する. | |
integer, public | get_IdMax (self) |
格子点座標を保持する配列(構造体 IcGrid2D_FVM の成分 rcs_AGrid)において, 袖領域も含めた配列の最大インデックスを取得する. | |
integer, public | get_IdMin (self) |
格子点座標を保持する配列(構造体 IcGrid2D_FVM の成分 rcs_AGrid)において, のりしろも含めた配列の最小インデックスを取得する. | |
real(DP), public | get_IcRadius (self) |
Gets the radius of a sphere which an icosahedron is embedded into. | |
integer, public | get_glevel (self) |
Get the horizontal division level (glevel). | |
subroutine, public | set_rcregion_bounds (self, rcID, top, left, bottom, right) |
矩形領域の端の 4 個の頂点座標を設定する. | |
subroutine, public | paste_margin_width (self) |
のりしろ部分をとなりの矩形領域の内側の格子座標データで埋める. | |
integer, public | generate_CV5_GPindex (self, GP_i, GP_j, rcID) |
(特異格子点(rcID,GP_i,GP_j)の)コントールボリュームの各頂点(全 5 個)の計算に必要な格子点の id の組を取得する. | |
integer, public | generate_CV6_GPindex (self, GP_i, GP_j, rcID) |
(特異格子点(rcID,GP_i,GP_j)の)コントールボリュームの各頂点(全 6 個)の計算に必要な格子点の id の組を取得する. | |
integer, public | check_pole (self, rcID, i, j) |
Check whether the grid point(rcID, i, j) concides with the pole. | |
subroutine, public | calc_icosahedron_vertex (orth_icvertex) |
Calculates the coordinates of twelve vertices of an icosahedron embedded into a unit sphere. | |
Variables | |
integer, parameter, public | RC_REGIONS_NUM = 10 |
Number of all rectangle regions. | |
integer, parameter, public | ICOSAHEDRON_VERTEX_NUM = 12 |
The number of vertices of the icosahedron. | |
integer, parameter, public | CELL_POINTS_NUM = 6 |
integer, parameter, public | NOT_POLE_FLAG = 0 |
The constant indicating that the specified grid point coincides with both poles. | |
integer, parameter, public | NORTH_POLE_FLAG = 1 |
The constant indicating that the specified grid point concides with the north pole. | |
integer, parameter, public | SOUTH_POLE_FLAG = 2 |
The constant indicating that the specified grid point concides with the south pole. | |
integer, parameter, public | GTYPE_STDGRID = 1 |
integer, parameter, public | GTYPE_STDGCGRID = 2 |
integer, parameter, public | GTYPE_SPRGCGRID = 3 |
This module provides a derived type, which manages the coordinate data for grid points and their control volume in icosahedral gird, and some subroutines to manupulate their data.
Copyright (C) GFD Dennou Club, 2011-2012. All rights reserved.
License ??
subroutine,public IcGrid2D_FVM_Manager::calc_icosahedron_vertex | ( | real(DP),dimension(icosahedron_vertex_num, 3),intent(inout) | orth_icvertex | ) |
Calculates the coordinates of twelve vertices of an icosahedron embedded into a unit sphere.
[in,out] | orth_icvertex | The array in which the coordinates of twelve vertices will be stored. |
Definition at line 851 of file IcGrid2D_FVM_Manager.f90.
integer,public IcGrid2D_FVM_Manager::check_pole | ( | type(IcGrid2D_FVM),intent(inout) | self, |
integer,intent(in) | rcID, | ||
integer,intent(in) | i, | ||
integer,intent(in) | j | ||
) |
Check whether the grid point(rcID, i, j) concides with the pole.
北極であった場合 NORTH_POLE_FLAG, 南極であった場合 SOUTH_POLE_FLAG, いずれでもない場合 NOT_POLE_FLAG を返す
[in,out] | self | A variable of derived type IcGrid2D_FVM. |
[in] | rcID | The rectangle region index rcID of target grid point(rcID, i, j). |
[in] | i | i of target grid point(rcID, i, j). |
[in] | j | j of target grid point(rcID, i, j). |
Definition at line 819 of file IcGrid2D_FVM_Manager.f90.
integer,public IcGrid2D_FVM_Manager::generate_CV5_GPindex | ( | type(IcGrid2D_FVM),intent(inout) | self, |
integer,intent(in) | GP_i, | ||
integer,intent(in) | GP_j, | ||
integer,intent(in) | rcID | ||
) |
(特異格子点(rcID,GP_i,GP_j)の)コントールボリュームの各頂点(全 5 個)の計算に必要な格子点の id の組を取得する.
ただし, 北半球および南半球の極にあたる格子点のコントロールボリュームに対しては, 適用できない.
[in,out] | self | A variable of derived type IcGrid2D_FVM. |
[in] | i | i of target grid point(rcID, i, j). |
[in] | j | j of target grid point(rcID, i, j). |
[in] | rcID | The rectangle region index rcID of target grid point(rcID, i, j). |
Definition at line 608 of file IcGrid2D_FVM_Manager.f90.
integer,public IcGrid2D_FVM_Manager::generate_CV6_GPindex | ( | type(IcGrid2D_FVM),intent(inout) | self, |
integer,intent(in) | GP_i, | ||
integer,intent(in) | GP_j, | ||
integer,intent(in) | rcID | ||
) |
(特異格子点(rcID,GP_i,GP_j)の)コントールボリュームの各頂点(全 6 個)の計算に必要な格子点の id の組を取得する.
[in,out] | self | A variable of derived type IcGrid2D_FVM. |
[in] | i | i of target grid point(rcID, i, j). |
[in] | j | j of target grid point(rcID, i, j). |
[in] | rcID | The rectangle region index rcID of target grid point(rcID, i, j). |
Definition at line 711 of file IcGrid2D_FVM_Manager.f90.
integer,public IcGrid2D_FVM_Manager::get_EffSize_Max | ( | type(IcGrid2D_FVM),intent(in) | self | ) |
格子点座標を保持する配列において, 物理的意味がある配列の最大インデックスを取得する.
[in,out] | self | A variable of derived type IcGrid2D_FVM. |
Definition at line 385 of file IcGrid2D_FVM_Manager.f90.
integer,public IcGrid2D_FVM_Manager::get_EffSize_Min | ( | type(IcGrid2D_FVM),intent(in) | self | ) |
格子点座標を保持する配列において, 物理的意味がある配列の最小インデックスを取得する.
[in,out] | self | A variable of derived type IcGrid2D_FVM. |
Definition at line 361 of file IcGrid2D_FVM_Manager.f90.
integer,public IcGrid2D_FVM_Manager::get_glevel | ( | type(IcGrid2D_FVM),intent(in) | self | ) |
Get the horizontal division level (glevel).
[in] | self | A variable of derived type IcGrid2D_FVM. |
Definition at line 481 of file IcGrid2D_FVM_Manager.f90.
real(DP),public IcGrid2D_FVM_Manager::get_IcRadius | ( | type(IcGrid2D_FVM),intent(in) | self | ) |
Gets the radius of a sphere which an icosahedron is embedded into.
[in,out] | self | A variable of derived type IcGrid2D_FVM. |
Definition at line 458 of file IcGrid2D_FVM_Manager.f90.
integer,public IcGrid2D_FVM_Manager::get_IdMax | ( | type(IcGrid2D_FVM),intent(in) | self | ) |
格子点座標を保持する配列(構造体 IcGrid2D_FVM の成分 rcs_AGrid)において, 袖領域も含めた配列の最大インデックスを取得する.
[in,out] | self | A variable of derived type IcGrid2D_FVM. |
Definition at line 410 of file IcGrid2D_FVM_Manager.f90.
integer,public IcGrid2D_FVM_Manager::get_IdMin | ( | type(IcGrid2D_FVM),intent(in) | self | ) |
格子点座標を保持する配列(構造体 IcGrid2D_FVM の成分 rcs_AGrid)において, のりしろも含めた配列の最小インデックスを取得する.
[in,out] | self | A variable of derived type IcGrid2D_FVM. |
Definition at line 434 of file IcGrid2D_FVM_Manager.f90.
subroutine,public IcGrid2D_FVM_Manager::IcGrid2D_FVM_Final | ( | type(IcGrid2D_FVM),intent(inout) | self | ) |
Finalizes a variable of derived type IcGrid2D_FVM.
This subroutine releases memory for all dynamically allocated arrays in derived type IcGrid2D_FVM.
[in,out] | self | A variable of derived type IcGrid2D_FVM. |
Definition at line 330 of file IcGrid2D_FVM_Manager.f90.
subroutine,public IcGrid2D_FVM_Manager::IcGrid2D_FVM_Init | ( | type(IcGrid2D_FVM),intent(inout) | self, |
integer,intent(in) | glevel, | ||
real(DP),intent(in) | ic_radius | ||
) |
Initializes the variable of FV_IcGrid type.
この初期化では, 正二十面格子やそのコントロールボリュームの情報を保持する配列のメモリは確保されない. これらは, それぞれ本モジュールが提供する手続き malloc_GP_array, malloc_CV_array を用いて行うことができる.
[in,out] | self | A variable of derived type IcGrid2D_FVM. |
[in] | glevel | Horizontal division level. |
[in] | ic_radius | Radius of sphere embedded in a icosahedron. |
Definition at line 232 of file IcGrid2D_FVM_Manager.f90.
subroutine,public IcGrid2D_FVM_Manager::malloc_CV_array | ( | type(IcGrid2D_FVM),intent(inout) | self | ) |
Allocates memory for array to store the vertices of control volumes surrounding each grid point.
[in,out] | self | A variable of derived type IcGrid2D_FVM. |
Definition at line 298 of file IcGrid2D_FVM_Manager.f90.
subroutine,public IcGrid2D_FVM_Manager::malloc_GP_array | ( | type(IcGrid2D_FVM),intent(inout) | self | ) |
Allocates memory for array to stroe the vertices of icosahedral grid.
[in,out] | self | A variable of derived type IcGrid2D_FVM. |
Definition at line 270 of file IcGrid2D_FVM_Manager.f90.
subroutine,public IcGrid2D_FVM_Manager::paste_margin_width | ( | type(IcGrid2D_FVM),intent(inout) | self | ) |
のりしろ部分をとなりの矩形領域の内側の格子座標データで埋める.
[in,out] | self | A variable of derived type IcGrid2D_FVM. |
Definition at line 544 of file IcGrid2D_FVM_Manager.f90.
subroutine,public IcGrid2D_FVM_Manager::set_rcregion_bounds | ( | type(IcGrid2D_FVM),intent(inout) | self, |
integer,intent(in) | rcID, | ||
real(DP),dimension(3),intent(in) | top, | ||
real(DP),dimension(3),intent(in) | left, | ||
real(DP),dimension(3),intent(in) | bottom, | ||
real(DP),dimension(3),intent(in) | right | ||
) |
矩形領域の端の 4 個の頂点座標を設定する.
[in,out] | self | A variable of derived type IcGrid2D_FVM. |
[in] | rcID | 頂点座標を設定する矩形領域の ID. |
[in] | top | 上側頂点に対応する格子点座標. |
[in] | left | 左側頂点に対応する格子点座標. |
[in] | right | 右側頂点に対応する格子点座標. |
[in] | bottom | 下側頂点に対応する格子点座標. |
Definition at line 512 of file IcGrid2D_FVM_Manager.f90.
integer,parameter,public IcGrid2D_FVM_Manager::CELL_POINTS_NUM = 6 |
Definition at line 67 of file IcGrid2D_FVM_Manager.f90.
integer,parameter,public IcGrid2D_FVM_Manager::GTYPE_SPRGCGRID = 3 |
Definition at line 94 of file IcGrid2D_FVM_Manager.f90.
integer,parameter,public IcGrid2D_FVM_Manager::GTYPE_STDGCGRID = 2 |
Definition at line 90 of file IcGrid2D_FVM_Manager.f90.
integer,parameter,public IcGrid2D_FVM_Manager::GTYPE_STDGRID = 1 |
Definition at line 86 of file IcGrid2D_FVM_Manager.f90.
integer,parameter,public IcGrid2D_FVM_Manager::ICOSAHEDRON_VERTEX_NUM = 12 |
The number of vertices of the icosahedron.
Definition at line 63 of file IcGrid2D_FVM_Manager.f90.
integer,parameter,public IcGrid2D_FVM_Manager::NORTH_POLE_FLAG = 1 |
The constant indicating that the specified grid point concides with the north pole.
Definition at line 75 of file IcGrid2D_FVM_Manager.f90.
integer,parameter,public IcGrid2D_FVM_Manager::NOT_POLE_FLAG = 0 |
The constant indicating that the specified grid point coincides with both poles.
Definition at line 71 of file IcGrid2D_FVM_Manager.f90.
integer,parameter,public IcGrid2D_FVM_Manager::RC_REGIONS_NUM = 10 |
Number of all rectangle regions.
Definition at line 59 of file IcGrid2D_FVM_Manager.f90.
integer,parameter,public IcGrid2D_FVM_Manager::SOUTH_POLE_FLAG = 2 |
The constant indicating that the specified grid point concides with the south pole.
Definition at line 79 of file IcGrid2D_FVM_Manager.f90.