連立1次方程式を計算するFortranサンプルプログラムがあります。問題なく動作しています。これを元にしてサブルーチンを作りたいと思います。AX=Bという形式ですから、A,Bを与えて答えXを返すというサブルーチンです。問題は行列AやベクトルBのサイズを自由に指定したいということです。サイズが決まっていない状態での2次元配列A, 1次元配列Bというわけです。サイズをサブルーチンが自動で調べてくれるというのは一番ありがたいですが、呼び出す前に何らかの方法で指定したいと思います。
動的配列のFortran版ということかと思いますが。
よろしくお願いします。
サンプルプログラムの冒頭は以下のようになっています。
parameter (n=100)
dimension a(n,n),b(n),x(n)
nを動的に変化することに対応したサブルーチンということなのですが。
よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
整合配列というやり方があります。
構造解析のオープンソースのプログラムで40年前に勉強したやり方です。Main はメモリ確保だけを目的
とします。すみませんが,f77 しか勉強したことがないので・・・
program main
parameter (isize=10000)
dimension a(isize)
c
c ここでマトリクス等のサイズ n を読み込みます。
c メインはメモリ確保だけです。
c
c read(*,*) n
n=10
c
i1=1
i2=i1+n
i3=i2+n
i4=i3+n*n
ilast=i4+n
if( ilast.gt.isize ) stop
c
call doit(a(i1),a(i2),a(i3),a(i4),n)
c
stop
end
c
subroutine doit(b,x,a,c,n)
c
c これが本当のメインです。
c
dimension b(n),x(n),a(n,n),c(n)
c
do i=1,n
b(i)=float(i)
end do
c
do i=1,n
do j=1,n
a(i,j)=0.
end do
end do
c
do i=1,n
do j=1,n
if( i.eq.j ) a(i,j)=float(i)
end do
end do
c
do i=1,n
x(i)=0.
do j=1,n
x(i)=x(i)+a(i,j)*b(j)
end do
end do
c
do i=1,n
write(*,*) x(i)
end do
c
stop
end
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) FORTRAN77の配列(除算) 2 2023/02/01 14:34
- Perl perlで2次元配列をサブルーチンに値渡しで渡す 5 2022/12/17 18:49
- C言語・C++・C# pythonのファイルの並びでの読み込みとリストについて 4 2022/04/13 03:52
- 物理学 高校物理 二次元の衝突 画像の問題の解答では、静止系での球2の速度v2を -運動エネルギー保存 -運 3 2022/11/12 00:34
- その他(自然科学) 科学技術計算の仕事について 2 2023/02/04 18:09
- 数学 数2Bの数列の問題です。 自分は、 まず数列 an=ar^(n-1)と置き こちらの問題の、y= の 1 2022/07/07 16:26
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- 物理学 量子力学 生成消滅演算子 2 2022/08/04 23:17
- 数学 x^2+y^2=1という条件のもとで6x^2+4√3xy+10y^2を最大化・最小化したいのですが、 3 2023/01/09 21:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フローチャートで 変数に代入す...
-
BASICで3連1次方程式
-
GDLでH8/3052Fのi2cプログラム...
-
65536は2の何乗なのでしょうか?
-
【JAVA】数字をひし形に出力す...
-
プログラミング
-
アルゴリズムとプロトコールの違い
-
C言語についてです。 再帰を使...
-
正しい五十音順について
-
ruby
-
セルフイメージを高める21日...
-
期間重複チェックがわかりません
-
Bluestacks内でダウンロードし...
-
変化させるセルが変化しない
-
Borland C++Builder 6で初心者...
-
matlab計算での進捗状況を知りたい
-
Dドライブ、アンインストール
-
VBAにてメール作成した際、一部...
-
VBA 九九 Do While
-
Excelで4096点以上のFFTの方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フローチャートで 変数に代入す...
-
フローチャートの菱形が狭い。。。
-
フローチャートで。
-
fortran errorについて
-
フローチャート以外の設計方法
-
二分法(FORTRAN)
-
fortran go to 文
-
フローチャート(本当に困って...
-
フローチャートが書けません
-
TeXでフローチャート
-
【fortran】フーリエ級数について
-
フローチャートのループ
-
配列 x に入っているデータの最...
-
フローチャートを書きたい
-
for文のフローチャート
-
FORTRAN subroutineと配列と繰...
-
フロートチャートをVBAで表すには
-
カシオ fx-4800pにて
-
連立1次方程式を計算するFortra...
-
正しい五十音順について
おすすめ情報