Takuya Miyashita
This site
Web
Start:
*構造体配列の作成 [#b4b988cf]
**はじめに [#s20e628a]
複数の2次元領域で同じ変数を扱う場合は,領域数をnとすると
#codeprettify(lang-fortran){{
!-- 宣言部
real*8, allocatable :: z(:,:,:)
!***** ...
!-- 配列の作成
allocate(z(ny,nx,n))
}}
ということをしても問題ないが,各領域の要素の数(=ny,nx)が...
構造体かつ動的配列を作成することで,この問題を解消しよう...
**方法 [#p48f8c3e]
#codeprettify(lang-fortran){{
!-- 構造体変数の定義
type GEO2D
real*8, allocatable :: eta(:,:) !構造体の中の変数を動...
end type GEO2D
!-- 宣言
type(GEO2D), allocatable :: geo(:) !geoという変数の名前を...
}}
#codeprettify(lang-fortran){{
!-- 配列の作成
allocate(geo(nregion)) ! 領域の数だけgeoの配列を作成
do k=1,nregion
allocate(geo(k)%eta(ny(k),nx(k))) !領域それぞれでallo...
enddo
}}
nyやnxを構造体の中に入れても良い.その場合参照するときは
#codeprettify(lang-fortran){{
geo(k)%nx
}}
のようになるので注意.
End:
*構造体配列の作成 [#b4b988cf]
**はじめに [#s20e628a]
複数の2次元領域で同じ変数を扱う場合は,領域数をnとすると
#codeprettify(lang-fortran){{
!-- 宣言部
real*8, allocatable :: z(:,:,:)
!***** ...
!-- 配列の作成
allocate(z(ny,nx,n))
}}
ということをしても問題ないが,各領域の要素の数(=ny,nx)が...
構造体かつ動的配列を作成することで,この問題を解消しよう...
**方法 [#p48f8c3e]
#codeprettify(lang-fortran){{
!-- 構造体変数の定義
type GEO2D
real*8, allocatable :: eta(:,:) !構造体の中の変数を動...
end type GEO2D
!-- 宣言
type(GEO2D), allocatable :: geo(:) !geoという変数の名前を...
}}
#codeprettify(lang-fortran){{
!-- 配列の作成
allocate(geo(nregion)) ! 領域の数だけgeoの配列を作成
do k=1,nregion
allocate(geo(k)%eta(ny(k),nx(k))) !領域それぞれでallo...
enddo
}}
nyやnxを構造体の中に入れても良い.その場合参照するときは
#codeprettify(lang-fortran){{
geo(k)%nx
}}
のようになるので注意.
Page:
Edit with a page name which already exists