[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 02/14 08:15 / Filesize : 180 KB / Number-of Response : 532
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

FORTRAN W



1 名前:デフォルトの名無しさん [2006/11/12(日) 17:13:35 ]
FORTRAN総合スレッドです。
FORTRAN77/90/95/2003, HPF等、FORTRAN全般に関する話題を書き込んで下さい。

・FORTRAN関連情報
お約束だが、まずは自分で調べよう
www.google.co.jp/

x86で動作するFortranコンパイラ
www.nminoru.jp/~nminoru/programming/x86-fortran.html

The Fortran Company
www.fortran.com/
Polyhedron Software
www.polyhedron.co.uk/
Google Directory - Fortran
directory.google.com/Top/Computers/Programming/Languages/Fortran/

・前スレ
FORTRAN III
pc8.2ch.net/test/read.cgi/tech/1104724162/
FORTRAN II
pc5.2ch.net/test/read.cgi/tech/1068351911/
Fortran
pc2.2ch.net/test/read.cgi/tech/1003214738/


136 名前:デフォルトの名無しさん [2006/12/06(水) 14:40:20 ]
>>134
でも内容も何もわからない人だったら質問をちゃんとしろってのも難しいんじゃないかな??

137 名前:デフォルトの名無しさん mailto:sage [2006/12/06(水) 20:08:27 ]
質問をしている人間が自分のやってることの内容も何もわからない状態なら、
それこそ答えようがないだろ。

せめて基本的な文法なりソフトの簡単な使い方くらいは自分で調べて
それでもダメだったら、何がしたくて何を試したけどどう上手くいかなかったか
程度のことは書いて質問すべきじゃないか。

138 名前:デフォルトの名無しさん [2006/12/07(木) 04:08:19 ]
>>137
もっともな意見だが、それが出来ればたいていは自己解決して2chになんか聞きにこなくてすむw


139 名前:デフォルトの名無しさん mailto:sage [2006/12/07(木) 07:46:51 ]
>>137
Exactly

140 名前:デフォルトの名無しさん [2006/12/07(木) 17:42:48 ]
>>139
(笑)

141 名前:デフォルトの名無しさん mailto:sage [2006/12/07(木) 22:56:54 ]

Silverfrost (Salford) FTN95 Version 5.00 キタコレ
ttp://www.download.com/Silverfrost-FTN95/3000-2069_4-10614581.html?tag=pub
ttp://forums.silverfrost.com/viewtopic.php?t=676&start=0&postdays=0&postorder=asc&highlight=

.NET 2.0とVisual Studio 2005に対応したらしいが、VS2005は使ってないので詳細は知らん。

142 名前:デフォルトの名無しさん mailto:sage [2006/12/08(金) 22:06:05 ]
Intel FortranでMacアドレス取得する方法ありますか?
マニュアル見ても載ってなかったです・・。

143 名前:デフォルトの名無しさん [2006/12/08(金) 23:44:07 ]
>>142
C言語でも難しいようだ。標準のWIN32APIでは出来ないので、他の方法をやっているようだ。

安直な方法は、SYSTEM関数でDOSコマンドのipconfig/all を実行し、
その出力からMACアドレスを切り出す方法ジャマイカ?



144 名前:デフォルトの名無しさん mailto:sage [2006/12/08(金) 23:52:39 ]
>>143
やっぱりそうなりますかねー。
自分のOS以外で動作を確かめられないのでちょっと大変;;

どうもthx



145 名前:デフォルトの名無しさん mailto:sage [2006/12/09(土) 10:46:49 ]
>>142
Three ways to get your MAC address.
www.codeguru.com/Cpp/I-N/network/networkinformation/article.php/c5451

Retrieving Information Using GetNetworkParams
msdn.microsoft.com/library/default.asp?url=/library/en-us/iphlp/iphlp/creating_a_basic_ip_helper_application.asp

IPHLPAPIを使ってWindowsでネットワーク設定いじるプログラムを書く
www.geekpage.jp/programming/iphlpapi/

この辺だと思うが、PlatformSDKのライブラリをLINKすれば可能なようだ。
しかし自分でインターフェースを書かないと駄目なので難しそう。
TYPEとかの定義が深いので、インターフェースに必要な定義がどれだけあるのかわからん。

146 名前:デフォルトの名無しさん mailto:sage [2006/12/09(土) 17:06:14 ]
winだったら昔NetBIOSでとったことがある。

147 名前:デフォルトの名無しさん [2006/12/09(土) 20:54:36 ]
PROGRAM MAC
USE ifwinty
IMPLICIT NONE
!
INTEGER, PARAMETER :: MAX_ADAPTER_DESCRIPTION_LENGTH = 128 !// arb.
INTEGER, PARAMETER :: MAX_ADAPTER_NAME_LENGTH = 256 !// arb.
INTEGER, PARAMETER :: MAX_ADAPTER_ADDRESS_LENGTH = 8 !// arb.
!
TYPE :: IP_ADDRESS_STRING
CHARACTER (4) :: String(4)
END TYPE
TYPE :: IP_MASK_STRING
CHARACTER (4) :: String(4)
END TYPE
!
TYPE :: t_IP_ADDR_STRING
INTEGER (LPLONG) :: pNext
TYPE (IP_ADDRESS_STRING) :: IpAddress
TYPE (IP_MASK_STRING) :: IpMask
INTEGER (DWORD) :: Context
END TYPE
!


148 名前:デフォルトの名無しさん [2006/12/09(土) 20:55:07 ]
TYPE :: t_IP_ADAPTER_INFO
INTEGER (4) :: pNext
INTEGER (DWORD) :: ComboIndex
CHARACTER (LEN = MAX_ADAPTER_NAME_LENGTH + 4) :: AdapterName
CHARACTER (LEN = MAX_ADAPTER_DESCRIPTION_LENGTH + 4) :: Description
INTEGER (UINT) :: AddressLength
INTEGER (BYTE) :: Address(MAX_ADAPTER_ADDRESS_LENGTH)
INTEGER (DWORD) :: Index
INTEGER (ULONG) :: iType
INTEGER (ULONG) :: DhcpEnabled
INTEGER (LPLONG) :: pCurrentIpAddress
TYPE (t_IP_ADDR_STRING) :: IpAddressList
TYPE (t_IP_ADDR_STRING) :: GatewayList
TYPE (t_IP_ADDR_STRING) :: DhcpServer
INTEGER (BOOL) :: HaveWins
TYPE (t_IP_ADDR_STRING) :: PrimaryWinsServer
TYPE (t_IP_ADDR_STRING) :: SecondaryWinsServer
INTEGER (ULONG) :: LeaseObtained
INTEGER (ULONG) :: LeaseExpires;
END TYPE
!
INTERFACE
INTEGER (BOOL) FUNCTION GetAdaptersInfo(arg1, arg2)
USE ifwinty
!DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'GetAdaptersInfo' :: GetAdaptersInfo
INTEGER (LPLONG) :: arg1
INTEGER (LPLONG) :: arg2
END FUNCTION
END INTERFACE


149 名前:デフォルトの名無しさん [2006/12/09(土) 20:56:42 ]
!
TYPE (t_IP_ADAPTER_INFO) :: AdapterInfo(16)
TYPE (t_IP_ADDR_STRING) :: CurrentIpAddress
INTEGER (DWORD) :: dwRetVal
INTEGER (PULONG) :: pdwRetVal
INTEGER (BOOL) :: iret
CHARACTER (LEN = 128) :: Description
dwRetVal = sizeof(AdapterInfo)
iret = GetAdaptersInfo(LOC(AdapterInfo), LOC(dwRetVal) )
!PRINT *, AdapterInfo(1)%pNext
!PRINT *, AdapterInfo(1)%ComboIndex
!PRINT *, AdapterInfo(1)%AddressLength
!PRINT *, AdapterInfo(1)%Description(1:128)
PRINT '(6Z3)', AdapterInfo(1)%Address(1:AdapterInfo(1)%AddressLength)
!PRINT *, AdapterInfo(1)%IpAddressList

!PRINT *, AdapterInfo(2)%pNext
!PRINT *, AdapterInfo(2)%ComboIndex
!PRINT *, AdapterInfo(2)%AddressLength
!PRINT *, AdapterInfo(2)%Description(1:128)
PRINT '(6Z3)', AdapterInfo(2)%Address(1:AdapterInfo(2)%AddressLength)
!PRINT *, AdapterInfo(2)%IpAddressList
STOP
END PROGRAM MAC


とりあえず、これでMACアドレスが取れた。

150 名前:デフォルトの名無しさん [2006/12/09(土) 21:09:05 ]
>>142 雪が降っていたので暇つぶしにがんばってみた。
4時間ぐらいかかったが、MACアドレスがIntelFortranで取れた。

方法は>>145の1番目のリファレンスの3番目の方法を用いた。
型などは、2番目のMSDNに書いてある情報から自分で適当に作ってみた。
TYPEのサイズがC++版で求めているのと一致したので多分OKだろう。自信はないw

漏れはメインフレーム育ちの生粋のFORTRANerで、CもC++はHelloWorld以上のものは
書いたことが無いので、文字列とかポインターの扱いとかが今一自信がない。


コンパイルに必要なのはPlatformSDKだが、漏れはインストールのときに
勝手にインスコされていたようだ。この中のライブラリ IPHlpApi.lib をライブラリに
加えておく必要がある。
Linker>Input>Additional Dependency に、そのまま書けばOKだった。

プロジェクトタイプはコンソールでおk。

>>146 >>145の記事によるとNetBiosから取る方法は、最近は推奨されないらしい。
ただし取り方は書いてあった。

151 名前:150 [2006/12/09(土) 22:27:56 ]
>>149のメインプログラム部分は、以下に直しておいてくれ。
デバッグ用のゴミを削った。複数のネットワークアダプタにも(とりあえず16個以下だが)対応。

TYPE (t_IP_ADAPTER_INFO) :: AdapterInfo(16)
TYPE (t_IP_ADDR_STRING) :: CurrentIpAddress
INTEGER (DWORD) :: dwRetVal
INTEGER (BOOL) :: iret
INTEGER :: i
dwRetVal = sizeof(AdapterInfo)
iret = GetAdaptersInfo(LOC(AdapterInfo), LOC(dwRetVal) )
IF (iret /= 0) STOP 'Error'
DO i = 1, 16
PRINT '(5(Z2.2,"-"), Z2.2)', AdapterInfo(i)%Address(1:AdapterInfo(i)%AddressLength)
IF (AdapterInfo(i)%pNext == NULL) EXIT
END DO
STOP
END PROGRAM MAC

152 名前:デフォルトの名無しさん [2006/12/12(火) 14:31:56 ]
compaq visual fortran 6.1を使っています。
1つのプロジェクトの中のsource fileのなかには、二つ以上プログラム
ファイルを入れてはだめなのでしょうか?ためしに片方のプログラム
をコンパイルすると実行時に引っかかってしまいます。
一つを消すと上手くいくのですが…。
では平行して二つのプログラムを作りたい場合どうすればいいのでしょうか?
どうかご返答お願いします。

153 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 18:50:15 ]
>>152
コードを変更するときには、ワークスペースも変更する必要があるはず。
手っ取り早くするには、コード変更=CVF を一旦終了。

154 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 23:08:08 ]
>>152
実行ファイル毎にProjectを作成して、1つのWorkspaceに'Insert Projects into Workspace'で
Projectを追加、または'Add New Project to Workspace'で新しいプロジェクトを追加する。

Buildするときは'Set Active Project'でProjectを選んでからBuildするか
または'Batch Build'でまとめてBuildする。

CVF6.6の場合だが、6.1でもたぶん同じだろう。



155 名前:デフォルトの名無しさん mailto:sage [2006/12/13(水) 20:25:50 ]
>>153-154
親切にありがとうございました。
ちょっとvisual fortran自体はじめて使ったもので
よく分かりませんでしたが聞いて解決しました

156 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 20:33:57 ]
ノートパソコンでLAPACKコンパイルすると
ファンがぶんぶん回ってうるさいよ〜

157 名前:デフォルトの名無しさん mailto:sage [2006/12/16(土) 01:01:54 ]
>>156
LAPACKで計算をするうようになれば同じこと。

158 名前:デフォルトの名無しさん [2006/12/18(月) 16:58:00 ]
下記の文章をfortran77で表すとどうなるか、教えていただけませんか?

ex=2.0**((-1)*(l+1))
i=0
k=0


do 210 while(i.lt.n)
i=i+1
k=k+1
if(k.gt.p)then
call delay(ivw,p,q,j)
else
j=k
end if

if(ivw(j).ne.0) then
a(i)=ivw(j)*ex
else
i=i-1
end if
210 continue

159 名前:デフォルトの名無しさん mailto:sage [2006/12/18(月) 17:45:37 ]
>>158
whileのループをgoto文を使って書いたら?

160 名前:デフォルトの名無しさん [2006/12/18(月) 23:10:13 ]
計算終了時に、携帯電話へメールで知らせてくれるってことできますか??

161 名前:デフォルトの名無しさん [2006/12/18(月) 23:13:01 ]
>>160
シェルスクリプトを書けばいい。



162 名前:f90 mailto:sage [2006/12/19(火) 13:07:00 ]
do
if(i>=n) exit
i=i+1
k=k+1
if(k>p) then
call delay(ivw,p,q,j)
else
j=k
end if

if(ivw(j)/=0) then
a(i)=ivw(j)*ex
else
i=i-1
end if
enddo


163 名前:デフォルトの名無しさん mailto:sage [2006/12/20(水) 15:45:48 ]
Intel fortran9.1使ってるんだけど、system()で定期的に外部プログラムを呼ぶとコミットチャージが時間とともに増え続けてしまうという
症状に悩まされていた。ところが、system()の代わりにsystemqq()を使うと、その症状が出なくなった。
こんな経験した人いる?

164 名前:デフォルトの名無しさん mailto:sage [2006/12/21(木) 01:03:54 ]
SYSTEMってPOSIX互換のルーチンかい?
SYSTEMQQはQUICKWINからみか?
どっちも使わんなぁw





165 名前:デフォルトの名無しさん mailto:sage [2006/12/21(木) 20:44:11 ]
>>164
じゃあ、外部コマンド起動したいときはどうやってるの?

166 名前:デフォルトの名無しさん mailto:sage [2006/12/22(金) 00:31:25 ]
外部コマンド呼ばないw
Win32で出来る物はWin32でやる。
できないものは諦めるw

167 名前:デフォルトの名無しさん mailto:sage [2006/12/22(金) 00:48:23 ]
コンソールアプリ無視していきなりWin32かよw

168 名前:デフォルトの名無しさん mailto:sage [2006/12/22(金) 01:26:17 ]
おまいら仲良くやれよ
スクリプトで妥協しとけw


169 名前:デフォルトの名無しさん [2006/12/28(木) 23:25:36 ]
オッペン化粧品!

OpenMPのいい参考サイトか本はアルカイダ?

あぁそれとMPIにしろとか言うなヨーロッパ。


170 名前:デフォルトの名無しさん mailto:sage [2006/12/28(木) 23:46:15 ]
コンパイラの自動並列化だけでがまんs

俺も教えて欲しい。
尼損で検索したら、和書は1冊しか無かった・・・

171 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 00:00:47 ]
>>169
いやさ、さっぱり自動並列化されないから、少し知恵をつけてやるかと思って。
2CPUシングルマシンで軽く行きたい。

QuadCoreを買う口実も欲しいw


172 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 03:02:52 ]
えー、かなり漠然とした質問ですがちょっとアドバイスをもらえませんか?
ある元となる計算コードでは、セルの幅や高さがすべての領域で一定です。
計算する領域は長方形で、

NCX:セルの行(X方向)
NCY:セルの列(Y方向)
CW:列方向へのセルの幅
CH:行方向へのセルの幅

といった感じです。
また、それぞれのセルには通し番号が割り振られています。
(最初の行を小さいほうから順に1.2.3…と割り振っていって
 端に行ったら次の行に移ります)

↑Y
9.......
5678
1234  →X

このコードを元に、任意の列以降でセルの大きさを縦横それぞれ
半分にする(面積を1/4)にして(もちろん以降の行、列数は倍になります)
計算するプログラムを書きたいと思います。セルの大きさの変化は何段階か行われます。
(具体的にはY座標依存のある物理量と比較してセルを小さくするかどうか判別します)


173 名前:172 mailto:sage [2006/12/29(金) 03:03:23 ]
(続き)
しかし、元のコードには例えばセルが何行、何列目かを判別するために

NY=(N-1)/NCX+1
NX=N-(NY-1)*NCX

のような表現が多様されています。(Nはセルの通し番号)
また、逆に行や列の指定からセル番号を判別するようなものもありますし、
座標指定に

X=NY*CH

みたいな事もしています。
NCX,NCY,CW,CHを配列にして、初期の大きさのセルの領域の行、列数を
NCX(1)、NCY(1)に、次の大きさのセルの行、列数をNCX(2)、NCY(2)に、
というようにセルの大きさで領域を分けて考えよう、と思ったのですが、
あるセルが何番目の領域に属するかをいちいち判別するのもめんどくさいですね。
ちょっと上記の判別の式が複雑になってきてしまいます。
(ループで非常に何度も通るところなので出来るかぎり簡単にしたいです)

各セルが何行何列目に属するかと何番目の領域に属するかを
配列に格納しておけばいいかとは思いますが、
プログラムの経験が浅いこともありかなり無駄なことをしていないか不安になってきました。

既存の構造を生かしたり(置換するだけですぱっと終了とか)
あまり余計なものを追加しないエレガントなやりかたってありますかね?
やっぱり地道にやるしかないでしょうか?長文すみません。


174 名前:172 mailto:sage [2006/12/29(金) 03:14:28 ]
すみません、

(誤)X=NY*CH
(正)Y=NY*CH

です。



175 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 20:26:22 ]
>>173
サイズに依存する。
小さいならいったん既存の計算式で求めたセルサイズをテーブルとして保存すればよい。

サイズが大きくてメモリーギリギリまで使っているなら、1回ごとに計算するほうがいい。


567
238  のちな形でサイトを指定してもいいなら、判別の計算式も簡単になるかもしれない。
149  計算機学科の人からはしかられるが、高速でやるにはデータ構造と処理が
     切り離せないので、まぁ問題を理解し整理して自分で良く考えろw

176 名前:172 mailto:sage [2007/01/05(金) 18:17:30 ]
>>175
遅レス申し訳ない。有難うございます。
やっぱりある程度地道にやるほか無さそうですね。
しこしこやってます。

177 名前:デフォルトの名無しさん mailto:sage [2007/01/08(月) 20:38:06 ]
若干Fortranから逸れますが、わかる方ご教授ください。
IntelのVisual Fortranで作成したコンソールアプリから
VCで作ったLibファイルを呼び出したいです。

簡単に書くと、VCは
BOOL PrintMessage()
{
中略
}
という関数になっています。

これをFortranから呼び出すために、
自分なりにマニュアルを読み、
以下のようにコーディングしてみました。

178 名前:デフォルトの名無しさん mailto:sage [2007/01/08(月) 20:39:25 ]
INTERFACE
LOGICAL FUNCTION PrintMessage()
!DEC$ ATTRIBUTES STDCALL :: PrintMessage
END FUNCTION
END INTERFACE

LOGICAL LX
LX = PrintMessage()

しかし、リンク時に_PrintMessageが見つかりません、と
リンクエラーが出ます。

解決方法はあるでしょうか?


なお、VCから上記VCを呼び出すケースもあるため、
両方Fortranで書けば?というのは無しでお願いしたいです。

一応環境としては、
Visual Studio .NET 2003 + Intel Visual Fortran v9.0
になります。

よろしくお願いします。

179 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 00:52:12 ]
>>178
呼び出し規約がSTDCALLの場合、外部名はデフォルトですべて小文字と解釈されてしまうので
大文字・小文字が混在する場合は以下の様にする

!DEC$ ATTRIBUTES STDCALL, DECORATE, ALIAS: 'PrintMessage' :: PrintMessage

C側の PrintMessage() 関数も __stdcall でコンパイルされている必要がある。
C++の場合は extern "C" も必要。

また、IVFではLOGICALの内部表現(整数値)が奇数のとき真、偶数のとき偽となるので
他言語の関数とLOGICALを受け渡しする場合は注意すること。

180 名前:178 mailto:sage [2007/01/09(火) 21:34:40 ]
>>179
レスありがとうございます。

なるほど・・。
F側の大文字小文字対策はマニュアルに書いてありましたが、
いろいろ調整しても結果が同じだったので関係ないと思ってました。
C側の対策は全く見えてませんでした^^
正直Cはド素人なので上記のようにいわれてすぐに対応できませんが
参考にして調べてみます!
ありがとうございました。




181 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 23:27:06 ]
>>180
IntelFortranのマニュアル見るとちまちまと書いてあるよ。

DECORATE修飾子が新設されたので、DEC時代に場合分けして書いていたのが
すっきりしてうれしい。



182 名前:デフォルトの名無しさん mailto:sage [2007/01/10(水) 19:42:57 ]
>>180
ATTRIBUTES STDCALL, ... ではなく ATTRIBUTES C, ... を使えばC言語の方はいじらなくてもおk。

183 名前:デフォルトの名無しさん [2007/01/12(金) 23:52:31 ]
三つの数値データを与えてその三つの数値の最大値、最小値、中央値、
平均値、標準偏差、不偏分散を求められるプログラムを作成せよ。
わからなくて大変です。
お願いします

184 名前:デフォルトの名無しさん [2007/01/16(火) 12:41:49 ]
Fortressどう思います?
数式をそのまま書けるとか、並列化にコンパイラレベルで対応とか・・・
なかなかよさそげですが。
ttp://japan.zdnet.com/news/devsys/story/0,2000056182,20340715,00.htm
ttp://slashdot.jp/developers/07/01/15/1521236.shtml



185 名前:デフォルトの名無しさん [2007/01/16(火) 12:45:26 ]
>>183
てっとりばやく答えが欲しいなら
pc10.2ch.net/test/read.cgi/tech/1164121236/
に行くといいのでは?

186 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 20:18:01 ]
既に答えが出てる。 ていうかマルチ。

187 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 03:15:36 ]
>>184
Fortranの資産使えないのにFortran風にする意味がいまいち良く分からん。

188 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 12:05:30 ]
>>184
pseudocode をそのままコンパイルしてくれるならうれしい。


189 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 12:55:53 ]
>>187
え、使えないの?

190 名前:デフォルトの名無しさん [2007/01/19(金) 23:38:03 ]
Salford ftn95でlapack95を使いたいねんけど、どーすればいいん??

191 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 00:43:01 ]
>>190
1.NetlibからLAPACKを拾ってくる。
2.どうにかしてblas.libとlapack.lib

192 名前:デフォルトの名無しさん [2007/01/20(土) 00:44:49 ]
>>190
1.NetlibからLAPACKを拾ってくる。
2.どうにかしてblas.libとlapack.libをつくる。
3.NetlibからLAPACK95を拾ってくる。
4.どうにかしてlapack95.libとモジュールファイルをつくる。
5. > ftn95 hoge.f90
6. > slink hoge.obj lapack95.lib lapack.lib blas.lib

193 名前:デフォルトの名無しさん [2007/01/20(土) 08:07:50 ]
>>192
どもども!
どうにかしてってところが問題だが、どうにかしてみます。
どうにかする方法がわかったら、またよろしゅ〜!

194 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 11:45:48 ]
77で動的配列ってできないの?
x(i,j)
ってしといて
ファイルからi,j読み込んでサイズ決めるみたいな感じにしたいんだけど・・



195 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 13:15:50 ]
>>194
言語規格としては出来ない。

ただ、コモンとか上のルーチンで大きなワーク配列を取っておいて、
いったん必要なサイズを知った上で下のサブルーチンで作業領域で整合配列を
切って使って似たようなことは出来る。

C言語もK&Rの付録を見るとmallocをそういう感じで実現する例を出している。


196 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 13:38:47 ]
90ならポインター使える。
PGIとか77でもポインター使える処理系もある。
ポインターの使えない77でもCとの合わせ技で可能。

197 名前:デフォルトの名無しさん [2007/01/20(土) 16:25:44 ]
>>193
LAPACK(BLAS):
・netlibから lapack-3.1.0.tgz を取ってくる。

blas.lib:
・lapack-3.1.0\BLAS\SRC の中のソース(*.f)を全部コンパイルする。
・出来たオブジェクトファイルを slim で blas.lib にまとめる。
 slim *.obj /file:blas

lapack.lib:
・lapack-3.1.0\INSTALL の中の dlamch.f, dsecnd.f, ilaver.f, lsame.f, second.f, slamch.f を
lapack-3.1.0\SRC にコピーする。
但し、FTN95には second.f, dsecnd.f で使われている ETIME関数が無いので
ETIMEを自作するか CPU_CLOCK, SYSTEM_CLOCK辺りを使って書き換える。
・lapack-3.1.0\SRC の中のソースを全部コンパイルする。
この際、slaruv.f, dlaruv.f をコンパイルするときは最適化オプションを外す。
・出来たオブジェクトファイルを slim で lapack.lib にまとめる。

tmglib.lib:
・lapack-3.1.0\TESTING\MATGEN の中のソースを全部コンパイルする。
この際、slaran.f, dlaran.f をコンパイルするときは最適化オプションを外す。
・出来たオブジェクトファイルを slim で tmglib.lib にまとめる。


198 名前:デフォルトの名無しさん [2007/01/20(土) 16:27:59 ]
>>197の続き)

LAPACK95:
・netlibから lapack95.tgz を取ってきて展開する。
・lapack95\SRCに移動。
・la_auxmod.f90 をコンパイルする。 → la_auxmod.mod, la_precision.mod が出来る。
・f77_lapack_single_double_complex_dcomplex.f をコンパイルする。 → f77_lapack.mod が出来る。
・f95_lapack_single_double_complex_dcomplex.f をコンパイルする。 → f95_lapack.mod が出来る。
・la_csygst.f90, la_csygv.f90, la_csygvd.f90, la_csytrd.f90, la_zsygst.f90, la_zsygv.f90, la_zsygvd.f90, la_zsytrd.f90
以外の la_*.f90 をコンパイルする。
・出来たオブジェクトファイルを slim で lapack95.lib にまとめる。


以上で出来たライブラリファイル(*.lib)を環境変数 LIB で指定したフォルダへ、
モジュールファイル(*.mod)を環境変数 MOD_PATH で指定したフォルダへそれぞれ移す。


199 名前:デフォルトの名無しさん [2007/01/20(土) 17:04:13 ]
関数名を引数に使いたいのですが、EXTERNAL文を呼び出し側で使っても
うまくいきません。
下のプログラムなのですが、何処が間違っているんでしょう?

External func
real func,SUM
write(*,*) SUM(func)
end

real Function SUM(f)
External func
real f
SUM = f(1.0)+f(2.0)
return
end

real Function func(x)
real x
func = x
return
end



200 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 19:15:37 ]
>>199
SUM() がF90の関数と混同されているんで内科医?
SUM0とかにすればおK

201 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 19:22:59 ]
>>199
External func → external func, SUM

202 名前:199 mailto:sage [2007/01/20(土) 22:07:45 ]
>>200>>201、ご指摘の方法で解決することが出来ました。
有難うございます。

203 名前:デフォルトの名無しさん [2007/01/20(土) 22:37:50 ]
>>197,198
ありがとう〜、格闘の末何とかなりました。
オレもあんたくらい、pcを自由にあやつりたいもんですわ!

204 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 00:37:48 ]
本来ならMakefileを書いて、テストプログラムも含めてmake(MK32)で処理させるべきなのだろうけど
FTN95の場合、他のコンパイラとオプションの指定方法が違ったりするから中々面倒くさい。



205 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 07:14:03 ]
質問です。
OPEN (4,FILE=RESULT.OUT,FORM='FORMATTED')
このRESULT.OUTを、あるIと言う数値を読み込んで
例えばI=5000ならRESULT5000.OUTのようにしたいんですが、
出来るでしょうか?要するに計算のステップ数に応じて
自動的にファイル名をつけて出力してやりたいんですが、
OPENの中身をいじるだけじゃダメですかね?

206 名前:デフォルトの名無しさん [2007/01/26(金) 10:04:30 ]
>>205
その質問は千回くらい出ている。
過去ログ見れ



207 名前:デフォルトの名無しさん [2007/01/28(日) 18:26:34 ]
自分のマシンのフォートランコンパイラコマンドを汁にはどうしたら良いですか?

VINELINUX使ってます。

208 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 20:37:47 ]
>>207
shell に g77 とか gfortran とか g95 とか ifort とか入れてみる。
使えるようなら no input files などと返ってくる。
なけりゃ自分でインストロールする。

209 名前:デフォルトの名無しさん [2007/01/28(日) 21:47:58 ]
全部使えませんでした。
ifortいれたいのですが、どこでダウンロードできますか?

210 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 21:54:39 ]
>>209
つ google

211 名前:209 [2007/01/28(日) 22:35:38 ]
何度もすみません。
インテルのコンパイラ入れようとしたら下記のメッセージで止まってしまいます。
解決方法を御存じのかたは教えてください。

./.././data/install_fc.sh: line 1459: ERROR: unable to find command "ls" !: command not found
./.././data/install_fc.sh: line 1463: Please add the location to the above commands to your PATH and re-run the script.: command not found
./.././data/install_fc.sh: line 1464: Please press Enter to continue...: command not found


212 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 22:39:51 ]
>>211
> 解決方法を御存じのかたは教えてください。
夜間中学で英語を学びなおす。

213 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 22:48:29 ]
つーか lsが見つからんて、どんな環境やねん

214 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 00:02:48 ]
>>211
ttp://www.google.co.jp/search?hl=ja&q=%22unable+to+find+command%22&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja




215 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 01:02:12 ]
EclispのPhortranってどうよ?

とくにLinux上のIntelコンパイラとの組み合わせの使い心地 知りたい

216 名前:デフォルトの名無しさん [2007/02/03(土) 07:25:11 ]
Mac OS X 上のgfortran 4.0でコンパイルした時に
gfortran: spec failure: unrecognized spec option 'M'
というエラーがでるのですが何がまずのでしょう? ちなみに他のマシン(LINUX)のgfortranでは
エラーはでません。一応、走るのですが、writeでposition='append'を指定しても既存ファイルに
データを付け加えず、完全に上書きしてしまうので困っています。ちなみにLINUX上では
うまく行きます。

217 名前:209 [2007/02/04(日) 11:51:06 ]
>>214
ありがとうございます。
感謝します。

218 名前:デフォルトの名無しさん [2007/02/15(木) 00:11:54 ]
NAGのFortranBuilderのNAGFortran95コンパイラのVersionって5.0?それとも5.1?

5.1なら買いたいんだけど、誰か知ってる人いる?


219 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 15:57:03 ]
全角英数は気持ち悪いというセンスを身に着けてから出直してくれ。

220 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 19:36:46 ]
>>219
おい、おまえ





同感

221 名前:デフォルトの名無しさん [2007/02/17(土) 00:00:33 ]
>>219
ごめん 訂正させてもらう

NAGのFortranBuilderのNAGFortran九五コンパイラのVersionってX.0?それともX.T?

X.Tなら買いたいんだけど、誰か知ってる人いる?

全角漢数字かローマ数字をつかえばいいわけだろ?

222 名前:デフォルトの名無しさん mailto:sage [2007/02/17(土) 00:07:15 ]
つまらん

223 名前:デフォルトの名無しさん mailto:sage [2007/02/17(土) 00:22:25 ]
フォートランって今でもリアルに使ってるとこあるのか?w
本物のプログラマは〜、の時代でもすでに時代遅れのダメ言語だったのに

224 名前:デフォルトの名無しさん mailto:sage [2007/02/17(土) 01:16:58 ]
>>223
おまえ、ちょっとそこに正座しろ。
この世間知らずがw


いいか、電子計算機の本流はFortranだぞ!
スパコン・ランキングの機械で動いているプログラムは基本的にFortranだ。

大体マルチコアで並列化といっているが、MPIもOpenMPも対応コンパイラはFortranか
Cしかなくて、Cはあくまでおまけだ。大多数の人間はFortranでプログラム書いてる。

これから並列化が主流になるにつれ、Fortranの天下が再びやってくるのは間違いない!
悔い改めよ!さもなくば地獄の業火に焼かれるべし!
詳しくはマタヨシイエスのサイトを熟知すべし。




225 名前:デフォルトの名無しさん mailto:sage [2007/02/17(土) 01:22:52 ]
唯一神Fortran

226 名前:デフォルトの名無しさん mailto:sage [2007/02/17(土) 01:36:08 ]
>>221
「全角英数」の意味がわかるようになってから出直してくれ。

227 名前:デフォルトの名無しさん [2007/02/17(土) 01:43:01 ]
>>216
gfortran どやっていれたんですか?
俺のmacにははいってないんだてど

228 名前:デフォルトの名無しさん mailto:sage [2007/02/17(土) 01:53:16 ]
>>227
君のMacはハズレだったんだよ。

229 名前:デフォルトの名無しさん mailto:sage [2007/02/17(土) 01:54:03 ]
>>226
おまいら,うぜーから他所でやれ.

230 名前:デフォルトの名無しさん mailto:sage [2007/02/17(土) 10:54:58 ]
>>229
うるせー、>>218>>221のようなグロは見たくねーんだよ。

231 名前:デフォルトの名無しさん mailto:sage [2007/02/17(土) 23:09:57 ]
最近くだスレのほうがレベルが高いなw


232 名前:デフォルトの名無しさん [2007/02/21(水) 15:40:26 ]
>>218 5.1を搭載

233 名前:デフォルトの名無しさん [2007/02/21(水) 22:54:23 ]
>>232
dクス!


nagのサイトに調べにいったんだが、Windows用はまだ5.0だったので、だめかと思ったが。

安いやつ買って見っかー でもライセンスがウゼーんだよな。

234 名前:デフォルトの名無しさん [2007/02/25(日) 00:31:39 ]
Intel Visual Fortran 9.1に付属してくるデバッガ(idb)の詳しい日本語の資料や書籍ってないんでしょうか?



235 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 17:39:49 ]
エクセルソフトがコンパイラマニュアルの日本語訳を出していたが、デバッガもあったかな?

236 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 23:30:36 ]
>>235
XLsoftから日本語マニュアルを落としてみましたが、
詳しく載っているのはVisual StudioでのデバッグだけでIDBについては主要なコマンドの説明のみでした。
>IDB に関する詳細は、[スタート] メニューから利用可能なインテル・デバッガーのオンラインマニュアル (英語) を参照してください。
とのことで・・・このマニュアル、完全に日本語訳されてる訳じゃないんですね。
Language Referenceとか英文のままだし。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<180KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef