【2022.9.30】Absoft Pro Fortran は販売終了となりました。
Absoft Pro Fortran 2022 は、64-bit を完全サポートし、Apple 社製 Xcode C/C++ コンパイラとリンクすることで異なる言語と混在する開発をサポートします。

Absoft Pro Fortran は、オールインワンの完全パッケージです。

・ 高度な最適化技術で拡張された Fortran コンパイラを提供します
・ AbsoftTools IDE は、Fortran 開発のために設計された統合開発環境です
・ Fx3 ソースレベルデバッガは、OS X のために設計されたグラフィックインターフェースによる Fortran/C デバッガです
・ AWE Fortran アプリケーションフレームワークは、レガシーコードにモダンなグラフィックインターフェースを提供します
・ AMDAL ハイパフォーマンスライブラリは、数学、グラフ、データアクセスのためのライブラリです。
・ HDF5, NetCDf4 他ライブラリのためのIDEプリコンパイル・プラグイン
・ ProFortran 2022 独自の機能

Fortran の専門家によって設計された Fortran 開発環境

AbsoftTools 開発環境は、Visual Studio や Xcode などのように IDE(統合開発環境)によって問題を解決し、コード開発を簡単なものにします。これら他者の開発環境は C++ 言語の開発環境としては優れていますが、 Fortran のことは考えられていません。Absoft Fortran の IDE は、Fortran と C 言語の両方をサポートし、適切な構文処理や配列の指標付けなどの処理を各言語ごとに自動的に処理します。F2003 および F2008 機能全てをサポートした Fortran 95 コンパイラ、プログラマー用エディタ、Fx3 ソースレベルデバッガ、アプリケーションフレームワーク、グラフィック、最適化された数学ライブラリなど、開発に必要なものは、一つの使いやすいパッケージの中に含まれています。

Absoft Pro Fortran 2022 For OS X の新機能

・ macOS Monterey (12.0) 完全対応

・ M1プロセッサのためのRosetta2オプション

・ 並列 LAPACK/BLAS ライブラリ

・ AbsoftTools の改良

・ パフォーマンスの向上

・ LAPACK 3.10 ライブラリ

主な機能

・ Mac OS X での最も完全、かつ使いやすい Fortran ソリューションを提供します

・ macOS OS X Snow Leopard(10.6) から Monterey (12.0) に対応しています

・ Monterey (12.0) に完全対応の64ビットパッケージ

・ 64ビットIntelプロセッサで最高のパフォーマンスを出すためのコード生成

・ Absoft Fortran 95 コンパイラは、F2003, F2008に対応

・ 旧 Fortran 95 と互換性があり、一般的なワークステーション拡張仕様をサポートします

・ Xcode と Xcode コマンドラインツールに含まれる Apple C/C++ コンパイラとのデバッグとリンクに対応しています

・ 色分けされたプログラマー用エディタ、デバッガを備えた完全な統合開発環境 (IDE) と、サードパーティのプログラムをプラグインとして選択して実行できます

・ 全ての Pro Fortran コンパイラは、IDE またはコマンドラインから実行できます

・ 線形代数 (BLAS, LAPACK)、VAX/Unix 互換、データアクセス (HDF4, HDF5, NetCDF) 、2D/3D グラフィックのための定義済みの HPC ライブラリである AMDAL を提供します

・ OS X, Windows, Linux 間でソースコードに互換性がありますので、マルチプラットホームでの開発コストを削減します


サポートされる F2003/F2008 機能

IEEE Exceptions Module
ISO C BINDING Module
ENUMERATIONS
VALUE Statement/Attribute
PROTECTED statement/attribute
POINTER W/INTENT Attribute
Allocatable Components (partial)
Enhanced TYPE Initializers
POINTER bounds remapping
empty CONTAINS statement
IOMSG= specifier
recognized ASYNC I/O specifiers
ABSTRACT INTERFACE
PROCEDURE statements
STREAM I/O
NEWUNIT= OPEN specifier

F2003/F2008 組み込み関数

ACOS
ASIN
ATAN
ACOSH
ASINH
ATANH
BESSEL_J0
BESSEL_J1
BESSEL_JN
BESSEL_Y0
BESSEL_Y1
BESSEL_YN
BGE
BGT
BLE
BLT
COSH
COMPILER_VERSION
COMPILER_OPTIONS
DSHIFTL
DSHIFTR
EFC_SCALED
GAMMA
HYPOT
IS_IOSTAT_END
IS_IOSTAT_EOR
LEADZ
LOG_GAMMA
MASKL
MASKR
NEW_LINE
POPCNT
POPPAR
SELECTED_CHAR_KIND
SINH
STORAGE_SIZE
TANH
TRAILZ

F2003/F2008 サブルーチン

EXECUTE_COMMAND_LINE
FLUSH
GET_COMMAND_ARGUMENT
GET_COMMAND
GET_ENVIRONMENT_VARIABLE
MERGE_BITS
MOVE_ALLOC

グラフィック・プログラミング

AWE Fortran アプリケーションフレームワークは、Fast Data Visualization を提供していますので、様々な種類のプロットやチャートを容易に作成できます。また、AWE Canvas は、直線、曲線、矩形などのグラフィック要素をサポートします。

OpenGL グラフィック・プログラミングは、f90gl, f03gl インターフェース・パッケージを通してサポートします。

また、Absoft Pro Fortran パッケージには、PLplot という柔軟性に富んだグラフィック・ライブラリのビルド済バージョンも提供しています。 PLplot は、C/C++ だけでなく、Fortran から呼び出すことができ、標準的な XY プロット、片側対数プロット、両側対数プロット、等高線図、3D プロット、メッシュプロット、棒グラフ、円グラフを作成することができます。

OpenMP 3.1 のサポート

Absoft Pro Fortran は、Open MP 3.1 に完全対応したコンパイラとデバッガを提供しています。

Apple Xcode C/C++ をサポート

AbsoftTools 統合開発環境は、Apple の Xcode と Xcode コマンドラインツールパッケージに含まれる C/C++ コンパイラを統合することによって、複数言語でのプログラミングをサポートします。これらのコンパイラは、Apple 社から無償で提供されます。

OS X Snow Leopard (10.6) 〜 OS X El Capitan (10.11)、macOS Sierra (10.12) 〜 macOS Monterey (12.0) 対応 Intelプロセッサ(Core i7マルチコアCPU推奨)、M1(Rosetta2)

2GB以上のRAM(4GB推奨)

1GB以上のハードディスクの空き容量
製品名 定価 JAN CODE
Absoft Pro Fortran 2022 for macOS 英語版 ダウンロード版 ※一般用
オープンプライス
Absoft Pro Fortran 2022 for macOS 英語版 ダウンロード版 ※教育機関割引
オープンプライス
インストール・ライセンス関連

Q. インストールした後、"Unable to obtain license: license server not found" または "Unable to obtain license: license not found." と表示される。どうしたらいいのですか?

(シングルユーザライセンスの場合)
1)Absoft フォルダ(/Applications/AbsoftXXXX XXXXはバージョン番号)内にある license.dat ファイルをテキストエディタで開きます。
2)そのライセンスファイルの中に "SERVER: 127.0.0.1" という行がない場合は、それをファイルの最初の行に追加してください。
3)"LICENSE:" で始まる行をチェックしてください。"PRO:" で始まる行があれば、"PRO:" を "LICENSE:" で置き換えます。
4)"LICENSE:" に続く文字列がダッシュ("-")が付いていないことを確認してください。
5)ライセンスファイルをプレーンテキスト形式で保存します。(変更していれば)
6)コンピュータを再起動し、テストします。
7)これでも問題が発生する場合は、お使いのシステムのバージョン(OS X 10.4 Tiger または OS X 10.5 Leopard)とハードウエアを明記の上、こちらへメールをお送りください。
Absoft フォルダにある license.dat ファイルと "absoft_release" という名前のファイルも一緒にメールに添付してください。

(マルチユーザライセンスの場合)
1)Absoft ライセンスサーバーとライセンスを取得できないクライアントマシンのシステム、ハードウエアの情報を明記の上、こちらへメールをお送りください。
ライセンスサーバーとライセンスを取得できないクライアントマシンの license.dat ファイルも一緒にメールに添付してください。

Q. 再インストールせずにトライアル版から正規版にアップグレードしたいのですが、どうしたらいいのでしょうか?

以下の手順にしたがってください。
1)Absoft フォルダ(/Applications/AbsoftXXXX XXXXはバージョン番号)内にある license.dat ファイルをテキストエディタで開きます。
2)"LICENSE:" に続くライセンス文字列を削除します。
3)ダッシュ("-")を付けないで新しいライセンス文字列を入力します。
4)ライセンスファイルをプレーンテキスト形式で保存します。(変更していれば)
5)コンピュータを再起動します。

Q. アップグレードをする前に、以前のバージョンのAbsoft コンパイラを削除する必要はありますか?

いいえ。以前にインストールした Absoft Pro Fortran は削除する必要はありません。

Q. インストールの方法を教えてください。

ステップ1
Absoft Pro Fortran CD を CD ドライブに入れると、AbsoftProFortranXX (xx はバージョン番号) というアイコンが表示されます。これがインストーラです。

インストールをするには、このアイコンをダブルクリックします。管理者名とパスワードを入力するようにダイアログが表示されます。この情報を入力するとインストール作業が始まり、お名前、会社名、AbsoftPro Fortran のシリアル番号を入力します。

お名前とシリアル番号は必ず入力しなければなりません。

AbsoftPro Fortran のシリアル番号は、CD ケースの前側またはお送りしたメールの中にあります。

ステップ2
Absoft Pro Fortran は、Xcode Tool パッケージのいくつかのコンポーネントを利用しています。Pro Fortran を使う前に Xcode がインストールされているか確認してください。お使いのOS Xのバージョンによりこのパッケージの置き場所がいくつかあります。
A) OS X のインストールメディアに Xcode CD があるかチェックする。。
B) アプリケーションのインストーラフォルダの中に Xcode パッケージがあるかチェックする。
C) http://www.apple.com から Xcode をダウンロードしているかをチェック

ステップ3
コマンドラインから Pro Fortran を起動する場合は、シェルの起動スクリプトの環境変数を変更する必要があります。bash を使っている場合は、あなたのホームディレクトリにある.bash_profileファイルに以下の行を追加してください。(.bash_profileファイルがない場合は自分で作ってください。)

export ABSOFT=/Applications/Absoft11
export PATH=$ABSOFT/bin:$PATH

その他のシェルをお使いの方は、マニュアルをお読みになり環境変数設定の文法を確認してください。

変更を反映するには、ターミナルアプリケーションを再起動する必要があります。

その他の Pro Fortran については、Pro Fortran 11 Release Notes.pdf をご覧ください。


メモリ関連全般

Q. 32ビットシステムを使っていますが、2 GB 以上のメモリを扱えますか?

Apple Macintosh ABI のバーチャルメモリの制限は 2 GB です。

Q. スタックオーバーフローを解決するには?

Pro Fortran のデフォルトのスタック領域は 8 MB です。bash の ulimit コマンドを使って、スタックサイズを増やすことができます。(csh では 'limit stack' が同じ機能)例えば # ulimit -s 32768 と指定します。この制限を変えると現在のプロセスとその子プロセスに適用されます。

それ以外の方法では、-s コンパイラオプションを使うとプログラムの領域をスタックからヒープに指定できます。


コンパイル・リンク関連全般

Q. Absoft Pro Fortran と互換性のある Xcode のバージョンを教えてください。

Absoft Pro Fortran 以下の環境でテスト確認しております。

OS X 10.4:

Pro Fortran v10.0 = Xcode 2.4.1-2.5
Pro Fortran v10.1 = Xcode 2.5

OS X 10.5:

Pro Fortran v10.0 = Xcode 3.0-3.1
Pro Fortran v10.1 = Xcode 3.0-3.1

Q. Mac OS X Tiger (10.4) か OS X Leopard (10.5) のいずれかで起動できるプログラムをビルドするにはどうしたらいいのでしょうか?

コマンドラインで -osxtarget=10.4 を指定してコンパイルするか、AbsoftTools IDE の ターゲット OS で Tiger/Leopard を指定してください。どちらかのバージョンで起動するプログラムをビルドできます。

Q. “usr/bin/ld: table of contents for archive: SOMEARCHIVENAME is out of date; rerun ranlib(1) (can't load from it)” エラーの解決方法は?

エラーメッセージは、この問題はライブラリに対するシステム ranlib プログラムを実行すると解決するということを意味しています。

Absoft Pro Fortran には全ての Absoft ライブラリの ranlib プログラムを実行するシェルスクリプトが用意されています。

/Applications/Absoft10.1/lib/run_ranlib.sh と /Applications/Absoft10.1/lib64/run_ranlib.sh

を実行してこれらのライブラリを更新してください。

Q. Absoft コンパイラのデフォルトの外部手続き名の規則は?

バージョン 10.1 の Absoft コンパイラ のデフォルトは、小文字英字と下線(シングル)の組み合わせです。

Q. “XXXX is specified as the module name on a USE statement, but the compiler cannot find it.” エラーの解決方法は?

Absoft コンパイラは Fortran 90 のライブラリを現在のディレクトリ、またはコマンドラインか AbsoftTools IDE の FORTRAN の -p オプションで指定してディレクトリから探します。

Q. Fortran 90 モジュールに含まれる手続きへの未定義の参照があるとエラーが出ました。どのようにしたらいいのですか?

Fortran 90 モジュールをコンパイルする場合、コンパイラはモジュールを定義する .mod ファイルと、モジュールのコードとデータ項目用のオブジェクトファイルを作成します。このオブジェクトにはモジュールのコードとデータ項目への参照を解決するリンカー情報がなければなりません。

Q. Pro Fortran for OS X Intel を使って PowerPC の実行ファイルを生成できますか?

いいえ。Intel バージョンの Pro Fortran は PowerPC のコードを出力できません。

Q. Fx3 のグラフィカルデバッガが動作しません。解決方法は?

Fx3 は Mac で Bash シェルを使うことを前提にしています。ターミナルアプリケーション(アプリケーション>ユーティリティ)で Bash シェルを使うように設定するには以下の手順に従ってください。

Tiger (OS X 10.4):
ターミナルを起動し、環境設定を選択します。"このコマンドを実行する(完全なパスを指定)" を選択し、"/bin/bash" と入力します。ウインドウを閉じてターミナルを終了します。

Leopard (OS X 10.5):
ターミナルを起動し、環境設定を選択します。"コマンド(完全パス)" を選択し、 "/bin/bash" と入力します。ターミナルウインドウを閉じてから再起動します。


Mac OS X Intel 用 IMSL・他ライブラリ関連全般

Q. IMSL ライブラリはどうやって使ったらいいのですか?

注意:IMSL ライブラリの外部シンボル名はすべて小文字英字と末尾に下線が付いた名前になっています。

Absoft Developer Tools Interface を使ってプログラムをビルドしている場合は、Project メニューの Default Tool Options から General を選択し、IMSL ボタンをチェックするだけです。Absoft Developer Tools Interface が必要なコンパイルオプションとライブラリを全て追加します。

コマンドラインからライブラリを使う場合、ライブラリがインストールされていれば必要な環境変数は設定されています。更に詳しい説明は

/opt/CTT6.0/notes/f90/absoft_32/quickstart
または
/opt/CTT6.0/notes/f90/absoft_64/quickstart

にあります。

Q. IMSL のドキュメントはどこにありますか?

IMSL のドキュメントは PDF 形式で以下の場所にあります。

/opt/CTT6.0/help

Q. ライブラリはどうやってリンクしたらいいのですか?

Absoft コンパイラが提供する全てのライブラリ(例えば LAPACK)の外部シンボル名はすべて小文字英字と末尾に下線が付いた名前になっています。これらのライブラリをリンクするために必要なオプションは以下の通りです。

f90: -YEXT_NAMES=LCS, -YEXT_SFX=_
f77: -f -N15

注意:Pro Fortran V10.1 ではこれらはデフォルトのオプションとなっています。

サードパーティのライブラリをリンクする場合には、外部シンボル名がどのようになっているか(大文字小文字の区別などの表現)を確認し、適切なコンパイルオプションを選択しなければなりません。


Mac OS X Intel その他のご質問

Q. Absoft ランタイムライブラリのデフォルトの動作を変更するにはどうしたらいいのでしょうか?

ランタイムライブラリはプログラムの最初の入出力文で環境変数 ABSOFT_RT_FLAGS をチェックします。

この変数を使って以下のスイッチを指定します。

-defaultcarriage
装置は ACTION='PRINT' で接続したように、行送り制御文字の標準出力で事前接続されます。

-fileprompt
ライブラリは、未接続の装置番号に接続して暗黙のファイルを開く場合のように、ユーザにファイル名の入力を促します。 デフォルトで、装置番号に基づくファイル名を作ります。

-vaxnames
ライブラリは、未接続の装置番号に入出力を行ってファイルが作成される場合に、VAX スタイル(FORnnn.DAT) のファイル名を使います。

-unixnames
ライブラリは、未接続の装置番号に入出力を行ってファイルが作成される場合に、UNIX スタイル(fort.nnn) のファイル名を使います。

-bigendian
ライブラリは、全ての書式なし(バイナリ)ファイルがビックエンディアン・バイト配列を使っているものと見なします。

-littleendian
ライブラリは、全ての書式なし(バイナリ)ファイルがリトルエンディアン・バイト配列を使っているものと見なします。

-noleadzero
ライブラリは、Fw.d 編集記述子の処理をする場合、ゼロサプレスして出力します。これは ANSI 基準でゼロ出力した場合にのみ影響します。

-reclen32
ライブラリは、OPEN文の "RECL=" で指定された値の単位をバイトではなく 32 ビットワードと見なします。

-f90nlexts
Fortran90 のネームリストは、配列の要素を標準を拡張した文法でアクセスすることを許しています。このフラグを指定していないと、以下の入力結果は実行時にエラーになります。

$ONE
A(1)=1,2,3,4
$END

-f90nlexts を設定すると、A の最初の 4 つの要素が値に割り当てられます。

-connectunit9
装置 (UNIT) 9 を標準の入出力に事前接続にします。

-maceol
書式付きシーケンシャルファイルのレコードの終端に Classic Macintosh 形式のキャリッジ・リターンを使います。

-doseol
書式付きシーケンシャルファイルのレコードの終端に Windows 形式のキャリッジ・リターンとラインフィードを使います。

-unixeol
書式付きシーケンシャルファイルのレコードの終端に Unix 形式のラインフィードを使います。

-hex_uppercase
Z 編集記述子で出力されるデータは A から F の大文字が使われます。


bash で ABSOFT_RT_FLAGS を設定するには、ターミナルを起動して以下のようにコマンドを入力してください。
export ABSOFT_RT_FLAGS=-fileprompt

tcsh で ABSOFT_RT_FLAGS を設定するには、ターミナルを起動して以下のようにコマンドを入力してください。
setenv ABSOFT_RT_FLAGS -fileprompt

注意:MRWE アプリケーションはコマンドプロンプトから起動して ABSOFT_RT_FLAGS を使ってください。


Q. 書式なし(バイナリ)ファイルのバイト配列をビックエンディアンまたはリトルエンディアンに強制的に指定するコンパイルオプションはありますか?

F90 の OPEN 文で指定できます。

convert ={"big_endian"|"little_endian"}

例えば以下のように指定します。

Open (10,file="filename",form="unformatted",convert="big_endian")

または "Absoft ランタイムライブラリのデフォルトの動作を変更するにはどうしたらいいのでしょうか?" の FAQ で説明しているようにABSOFT_RT_FLAGS を使います。


Q. ASCII の TAB 文字 CHAR(9) をファイルから読む方法はありますか?

書式付きファイルから読まれたTAB は TABSIZE 環境変数にしたサイズでタブ展開されます。TABSIZE が指定されていない場合は、8 でタブ展開されます。TABSIZE に 0 を設定すると、タブは何も邪魔されずアプリケーションに渡されます。

Q. DATE、TIME、GETARG、IARGC などの Unix や Vax のサブルーチンは Absoft コンパイラにもありますか?

Absoft コンパイラには Unix と Vax に完全互換のライブラリが提供されています。Absoft のドキュメントディレクトリにある "SupportLibrary.pdf" 書類にその説明があります。Absoft Developer Tools Interface と一緒に使うと便利です。Project メニューから Default Tool Options を選択してください。General オプションから Unix Library or the Vax Library をチェックします。

また Fortran 90/95 モジュールも提供されています。USE 文で以下のようにプログラム内で宣言するだけです。

use vax_library
character*20 thedate
call date(thedate)
print *,thedate
end

use unix_library
character*24 tim
tim = ctime(5)
write (*,*) tim
end
インストール・ライセンス関連

Q. インストールした後、"Unable to obtain license: license server not found" または "Unable to obtain license: license not found." と表示される。どうしたらいいのですか?

(シングルユーザライセンスの場合)
1)Absoft フォルダ(/Applications/AbsoftXXXX XXXXはバージョン番号)内にある license.dat ファイルをテキストエディタで開きます。
2)そのライセンスファイルの中に "SERVER: 127.0.0.1" という行がない場合は、それをファイルの最初の行に追加してください。
3)"LICENSE:" で始まる行をチェックしてください。"PRO:" で始まる行があれば、"PRO:" を "LICENSE:" で置き換えます。
4)"LICENSE:" に続く文字列がダッシュ("-")が付いていないことを確認してください。
5)ライセンスファイルをプレーンテキスト形式で保存します。(変更していれば)
6)コンピュータを再起動し、テストします。
7)これでも問題が発生する場合は、お使いのシステムのバージョン(OS X 10.4 Tiger または OS X 10.5 Leopard)とハードウエアを明記の上、こちらへメールをお送りください。
Absoft フォルダにある license.dat ファイルと "absoft_release" という名前のファイルも一緒にメールに添付してください。

(マルチユーザライセンスの場合)
1)Absoft ライセンスサーバーとライセンスを取得できないクライアントマシンのシステム、ハードウエアの情報を明記の上、こちらへメールをお送りください。
ライセンスサーバーとライセンスを取得できないクライアントマシンの license.dat ファイルも一緒にメールに添付してください。

Q. 再インストールせずにトライアル版から正規版にアップグレードしたいのですが、どうしたらいいのでしょうか?

以下の手順にしたがってください。
1)Absoft フォルダ(/Applications/AbsoftXXXX XXXXはバージョン番号)内にある license.dat ファイルをテキストエディタで開きます。
2)"LICENSE:" に続くライセンス文字列を削除します。
3)ダッシュ("-")を付けないで新しいライセンス文字列を入力します。
4)ライセンスファイルをプレーンテキスト形式で保存します。(変更していれば)
5)コンピュータを再起動します。

Q. アップグレードをする前に、以前のバージョンのAbsoft コンパイラを削除する必要はありますか?

いいえ。以前にインストールした Absoft Pro Fortran は削除する必要はありません。

Q. インストールの方法を教えてください。

ステップ1
Absoft Pro Fortran CD を CD ドライブに入れると、AbsoftProFortranXX (xx はバージョン番号) というアイコンが表示されます。これがインストーラです。

インストールをするには、このアイコンをダブルクリックします。管理者名とパスワードを入力するようにダイアログが表示されます。この情報を入力するとインストール作業が始まり、お名前、会社名、AbsoftPro Fortran のシリアル番号を入力します。

お名前とシリアル番号は必ず入力しなければなりません。

AbsoftPro Fortran のシリアル番号は、CD ケースの前側またはお送りしたメールの中にあります。

ステップ2
Absoft Pro Fortran は、Xcode Tool パッケージのいくつかのコンポーネントを利用しています。Pro Fortran を使う前に Xcode がインストールされているか確認してください。お使いのOS Xのバージョンによりこのパッケージの置き場所がいくつかあります。
A) OS X のインストールメディアに Xcode CD があるかチェックする。。
B) アプリケーションのインストーラフォルダの中に Xcode パッケージがあるかチェックする。
C) http://www.apple.com から Xcode をダウンロードしているかをチェック

ステップ3
コマンドラインから Pro Fortran を起動する場合は、シェルの起動スクリプトの環境変数を変更する必要があります。bash を使っている場合は、あなたのホームディレクトリにある.bash_profileファイルに以下の行を追加してください。(.bash_profileファイルがない場合は自分で作ってください。)

export ABSOFT=/Applications/Absoft9.5
export PATH=$ABSOFT/bin:$PATH

その他のシェルをお使いの方は、マニュアルをお読みになり環境変数設定の文法を確認してください。

変更を反映するには、ターミナルアプリケーションを再起動する必要があります。

その他の Pro Fortran については、Pro Fortran 9.5 Release Notes.pdf をご覧ください。


メモリ関連全般

Q. 32ビットシステムを使っていますが、2 GB 以上のメモリを扱えますか?

64 ビットプロセッサ (G5) と OS X 10.4 上で ProFortran を使えば、2GB を超えるメモリを割り当てられます。これを実現するには '-m64' スイッチを使わなければなりません。また以下の2つの制限があります。

1. Apple アセンブラのバグの影響で、ダイナミックアロケーション(Fortran90のアロケーション)を使っている場合のみ、2GB を超えるメモリを割り当てられます。 2. 共通ブロック (Common Block) にはまだ 2GB までの制限があります。 Q. スタックオーバーフローを解決するには?

Pro Fortran のデフォルトのスタック領域は 8 MB です。bash の ulimit コマンドを使って、スタックサイズを増やすことができます。(csh では 'limit stack' が同じ機能)例えば # ulimit -s 32768 と指定します。この制限を変えると現在のプロセスとその子プロセスに適用されます。

それ以外の方法では、-s コンパイラオプションを使うとプログラムの領域をスタックからヒープに指定できます。


コンパイル・リンク関連全般

Q. Pro Fortra 95 は Intel Mac で起動できますか?

はい。Pro Fortra 95 は Intel Mac で動作します。生成された 32 ビットのコードは Apple のエミュレーションテクノロジーを使って Intel Mac で実行できます。

エミュレーションシステムの制限により、64 ビットの PowerPC アプリケーションは動作しません。また Power PC Fx3 は 32 ビット、64 ビットを問わず Intel ベースのハードウエア上では動作しません。

Q. Absoft Pro Fortran と互換性のある Xcode のバージョンを教えてください。

Absoft Pro Fortran 以下の環境でテスト確認しております。

OS X 10.4:

Pro Fortran v9.0 = Xcode 2.2
Pro Fortran v9.2 = Xcode 2.2-2.5

Pro Fortran v9.5 = Xcode 2.5

OS X 10.5:

Pro Fortran v9.2 = Xcode 3.0-3.1 (Fx2 デバッガは未対応)
Pro Fortran v9.5 = Xcode 3.0-3.1

Q. Mac OS X Tiger (10.4) か OS X Leopard (10.5) のいずれかで起動できるプログラムをビルドするにはどうしたらいいのでしょうか?

コマンドラインで -osxtarget=10.4 を指定してコンパイルするか、AbsoftTools IDE の ターゲット OS で Tiger/Leopard を指定してください。どちらかのバージョンで起動するプログラムをビルドできます。

Q. “usr/bin/ld: table of contents for archive: SOMEARCHIVENAME is out of date; rerun ranlib(1) (can't load from it)” エラーの解決方法は?

エラーメッセージは、この問題はライブラリに対するシステム ranlib プログラムを実行すると解決するということを意味しています。

Absoft Pro Fortran には全ての Absoft ライブラリの ranlib プログラムを実行するシェルスクリプトが用意されています。

/Applications/Absoft9.5/lib/run_ranlib.sh と /Applications/Absoft9.5/lib64/run_ranlib.sh

を実行してこれらのライブラリを更新してください。

Q. Absoft Pro Fortran 9.5 コンパイラのデフォルトの外部手続き名の規則は?

デフォルトで F90 コマンドは、大文字英字です。F77 コマンドはソースファイルに使われている文字はそのままになります。

これらのデフォルトの設定は、-YEXT_NAMES と -YEXT_SFX= オプション で変更できます。詳しくはユーザガイドをご覧ください。

Q. “XXXX is specified as the module name on a USE statement, but the compiler cannot find it.” エラーの解決方法は?

Absoft コンパイラは Fortran 90 のライブラリを現在のディレクトリ、またはコマンドラインか AbsoftTools IDE の FORTRAN の -p オプションで指定してディレクトリから探します。

Q. Fortran 90 モジュールに含まれる手続きへの未定義の参照があるとエラーが出ました。どのようにしたらいいのですか?

Fortran 90 モジュールをコンパイルする場合、コンパイラはモジュールを定義する .mod ファイルと、モジュールのコードとデータ項目用のオブジェクトファイルを作成します。このオブジェクトにはモジュールのコードとデータ項目への参照を解決するリンカー情報がなければなりません。

Q. Fx3 のグラフィカルデバッガが動作しません。解決方法は?

Fx3 は Mac で Bash シェルを使うことを前提にしています。ターミナルアプリケーション(アプリケーション>ユーティリティ)で Bash シェルを使うように設定するには以下の手順に従ってください。

Tiger (OS X 10.4):
ターミナルを起動し、環境設定を選択します。"このコマンドを実行する(完全なパスを指定)" を選択し、"/bin/bash" と入力します。ウインドウを閉じてターミナルを終了します。

Leopard (OS X 10.5):
ターミナルを起動し、環境設定を選択します。"コマンド(完全パス)" を選択し、 "/bin/bash" と入力します。ターミナルウインドウを閉じてから再起動します。


Mac OS X PPC 用 IMSL・他ライブラリ関連全般

Q. IMSL ライブラリはどうやって使ったらいいのですか?

注意:IMSL ライブラリの外部シンボル名はすべて小文字英字と末尾に下線が付いた名前になっています。

Absoft Developer Tools Interface を使ってプログラムをビルドしている場合は、Project メニューの Default Tool Options から General を選択し、IMSL ボタンをチェックするだけです。Absoft Developer Tools Interface が必要なコンパイルオプションとライブラリを全て追加します。

コマンドラインからライブラリを使う場合、ライブラリがインストールされていれば必要な環境変数は設定されています。更に詳しい説明は

/opt/CTT6.0/notes/f90/absoft_32/quickstart
または
/opt/CTT6.0/notes/f90/absoft_64/quickstart

にあります。

Q. IMSL のドキュメントはどこにありますか?

IMSL のドキュメントは PDF 形式で以下の場所にあります。

/opt/CTT6.0/help

Q. ライブラリはどうやってリンクしたらいいのですか?

Absoft コンパイラが提供する全てのライブラリ(例えば LAPACK)の外部シンボル名はすべて小文字英字と末尾に下線が付いた名前になっています。これらのライブラリをリンクするために必要なオプションは以下の通りです。

f90: -YEXT_NAMES=LCS, -YEXT_SFX=_
f77: -f -N15

サードパーティのライブラリをリンクする場合には、外部シンボル名がどのようになっているか(大文字小文字の区別などの表現)を確認し、適切なコンパイルオプションを選択しなければなりません。


Mac OS X PPC その他のご質問

Q. Absoft ランタイムライブラリのデフォルトの動作を変更するにはどうしたらいいのでしょうか?

ランタイムライブラリはプログラムの最初の入出力文で環境変数 ABSOFT_RT_FLAGS をチェックします。

この変数を使って以下のスイッチを指定します。

-defaultcarriage
装置は ACTION='PRINT' で接続したように、行送り制御文字の標準出力で事前接続されます。

-fileprompt
ライブラリは、未接続の装置番号に接続して暗黙のファイルを開く場合のように、ユーザにファイル名の入力を促します。 デフォルトで、装置番号に基づくファイル名を作ります。

-vaxnames
ライブラリは、未接続の装置番号に入出力を行ってファイルが作成される場合に、VAX スタイル(FORnnn.DAT) のファイル名を使います。

-unixnames
ライブラリは、未接続の装置番号に入出力を行ってファイルが作成される場合に、UNIX スタイル(fort.nnn) のファイル名を使います。

-bigendian
ライブラリは、全ての書式なし(バイナリ)ファイルがビックエンディアン・バイト配列を使っているものと見なします。

-littleendian
ライブラリは、全ての書式なし(バイナリ)ファイルがリトルエンディアン・バイト配列を使っているものと見なします。

-noleadzero
ライブラリは、Fw.d 編集記述子の処理をする場合、ゼロサプレスして出力します。これは ANSI 基準でゼロ出力した場合にのみ影響します。

-reclen32
ライブラリは、OPEN文の "RECL=" で指定された値の単位をバイトではなく 32 ビットワードと見なします。

-f90nlexts
Fortran90 のネームリストは、配列の要素を標準を拡張した文法でアクセスすることを許しています。このフラグを指定していないと、以下の入力結果は実行時にエラーになります。

$ONE
A(1)=1,2,3,4
$END

-f90nlexts を設定すると、A の最初の 4 つの要素が値に割り当てられます。

-connectunit9
装置 (UNIT) 9 を標準の入出力に事前接続にします。

-maceol
書式付きシーケンシャルファイルのレコードの終端に Classic Macintosh 形式のキャリッジ・リターンを使います。

-doseol
書式付きシーケンシャルファイルのレコードの終端に Windows 形式のキャリッジ・リターンとラインフィードを使います。

-unixeol
書式付きシーケンシャルファイルのレコードの終端に Unix 形式のラインフィードを使います。

-hex_uppercase
Z 編集記述子で出力されるデータは A から F の大文字が使われます。


bash で ABSOFT_RT_FLAGS を設定するには、ターミナルを起動して以下のようにコマンドを入力してください。
export ABSOFT_RT_FLAGS=-fileprompt

tcsh で ABSOFT_RT_FLAGS を設定するには、ターミナルを起動して以下のようにコマンドを入力してください。
setenv ABSOFT_RT_FLAGS -fileprompt

注意:MRWE アプリケーションはコマンドプロンプトから起動して ABSOFT_RT_FLAGS を使ってください。


Q. 書式なし(バイナリ)ファイルのバイト配列をビックエンディアンまたはリトルエンディアンに強制的に指定するコンパイルオプションはありますか?

F90 の OPEN 文で指定できます。

convert ={"big_endian"|"little_endian"}

例えば以下のように指定します。

Open (10,file="filename",form="unformatted",convert="big_endian")

または "Absoft ランタイムライブラリのデフォルトの動作を変更するにはどうしたらいいのでしょうか?" の FAQ で説明しているようにABSOFT_RT_FLAGS を使います。


Q. ASCII の TAB 文字 CHAR(9) をファイルから読む方法はありますか?

書式付きファイルから読まれたTAB は TABSIZE 環境変数にしたサイズでタブ展開されます。TABSIZE が指定されていない場合は、8 でタブ展開されます。TABSIZE に 0 を設定すると、タブは何も邪魔されずアプリケーションに渡されます。

Q. DATE、TIME、GETARG、IARGC などの Unix や Vax のサブルーチンは Absoft コンパイラにもありますか?

Absoft コンパイラには Unix と Vax に完全互換のライブラリが提供されています。Absoft のドキュメントディレクトリにある "SupportLibrary.pdf" 書類にその説明があります。Absoft Developer Tools Interface と一緒に使うと便利です。Project メニューから Default Tool Options を選択してください。General オプションから Unix Library or the Vax Library をチェックします。

また Fortran 90/95 モジュールも提供されています。USE 文で以下のようにプログラム内で宣言するだけです。

use vax_library
character*20 thedate
call date(thedate)
print *,thedate
end

use unix_library
character*24 tim
tim = ctime(5)
write (*,*) tim
end