このページは,忘却簿を兼ねた プログラムをコンパイルする際のTips集です。
FORTRANでダイレクトアクセス
ダイレクトアクセスする際,reclでレコード長を指定するが,その単位に注意する.
新しい仕様では,単位が1byteになっている.以前は4bytesであった仕様があり, どちらがデフォルトかはコンパイラによって異なる.
例えば,
gfortran では 1byte,インテルのコンパイラでは 4bytes.(2025年1月現在)
そのため,-assume byterecl オプションを付けてコンパイルすることで, 1byteで統一するとよい.
DIRAC 12.6 with 64-bit integers + INTEL MPI 4.1.0
INTEL MPIがILP64に対応しているが,-ilp64をつけても64-bit integersでコンパイルしたプログラム本体とうまくリンクできない.
対策として,「use mpi」の代わりに「include "mpif.h"」を用いるとよい.※ ただし,「implicit none」の後に入れる.
該当するファイルは以下の通り.
src/xcint/src/xc_mpi.F90
src/main/main.F90
src/interface_mpi/interface_to_mpi.F90
src/interface_mpi/integer_model.F90

BACK