トップページ > プログラム > 2014年07月10日 > pJ0O1Ur0

書き込み順位&時間帯一覧

26 位/200 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000001000102



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
くだすれFORTRAN(超初心者用)その6

書き込みレス一覧

くだすれFORTRAN(超初心者用)その6
546 :デフォルトの名無しさん[sage]:2014/07/10(木) 18:28:18.82 ID:pJ0O1Ur0
FORTRAN77のCOMMON文とEQUIVALENCE文について質問です.
!---
DIMENSION A(4)

EQUIVALENCE (A, V1)

COMMON /VS/ V1, V2, V3, V4

のようなコードをfortran90風に書き直したいのですがAをCOMMONブロックの変数で置換する以外にいい方法は無いでしょうか?
できればSubroutine等を増やすのではなく,Moduleの変数宣言部分だけで解決したいのですが...
くだすれFORTRAN(超初心者用)その6
548 :デフォルトの名無しさん[sage]:2014/07/10(木) 22:05:54.56 ID:pJ0O1Ur0
>>547
ありがとうございます
早速以下のように使ってみたんですが
module VS
real :: V1, V2, V3, V4
end module VS
program
use VS, A => V1
...
A(1) = 1.0d0
...
end program

↑コードのA(1)に代入する部分で
error #6410: この名前は配列または関数として宣言されていません。
とgfortranのコンパイルエラーになります
dimension A(4)などと変数宣言すると
error #6401: この名前の属性が USE 文によってアクセス可能な属性と矛盾しています。
でコンパイルエラーになります
あと
use VS, A(1) => V1
のような書き方もだめでした
nag-j.co.jpのコード例だとAは変数とは扱われていないように思うのですがAを配列として扱うことはできないでしょうか?


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。