回 帖 发 新 帖 刷新版面

主题:ubuntu系统下gfortran代替inelfortran编译程序问题请教

在编译一个程序包时,提示可以用inelfortran和gfortran编译
但给的文件默认用ifort,我想用gfortran编译这个程序,请问下面的Makefile.local如何更改?
我用64位ubuntu 12.04,不知道gfortran的库文件在哪儿。

# DEFMKL = MKL or NOMKL
DEFMKL = MKL
MKLDIR = /opt/intel/MKL/lib/64       #这句不知道怎么改,gfortran用apt-get安装的,不知道库放哪儿了!
MKLLIBS = -L$(MKLDIR) -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5

# 2. Compiler/linker choices for serial/parallel compilation
F95     = ifort
MPIF95  = ifort


目前只知道ifort要改成gfortran

回复列表 (共14个回复)

11 楼

gfortran不带MKL啊,MKL是ifort带的。或许你的源码包里有gfortran版本的make,你找找吧:)

12 楼

[quote]gfortran不带MKL啊,MKL是ifort带的。或许你的源码包里有gfortran版本的make,你找找吧:)[/quote]

多谢大侠出手相助!我找一下。

13 楼

# - GNU gfortran compiler
ifeq ($(F95),gfortran)
FFLAGS_DEBUG = -Dgfortran -g -D$(DEFHDF) -D$(DEFMKL)
LFLAGS_DEBUG =
FFLAGS = -Dgfortran -O2 -D$(DEFHDF) -D$(DEFMKL)
LFLAGS =
endif

ifeq ($(MPIF95),gfortran)
FFLAGS_DEBUG = -Dgfortran -g -D$(DEFHDF) -D$(DEFMKL)
LFLAGS_DEBUG =
FFLAGS = -Dgfortran -O2 -D$(DEFHDF) -D$(DEFMKL)
LFLAGS =
endif

# - Intel ifort compiler
ifeq ($(F95),ifort)
FFLAGS_DEBUG = -Difort -g -O0 -ipo0 -D$(DEFHDF) -D$(DEFMKL)
LFLAGS_DEBUG = -ipo0 -O0
FFLAGS = -Difort -O2 -fp-model precise -ipo -unroll -nocheck \
         -w -cm -vec-report0 -D$(DEFHDF) -D$(DEFMKL)
LFLAGS = -w -vec-report0 -opt-report0
endif

ifeq ($(MPIF95),ifort)
FFLAGS_DEBUG = -Difort -g -O0 -ipo0  -D$(DEFHDF) -D$(DEFMKL)
LFLAGS_DEBUG = -ipo0 -O0
FFLAGS = -Difort -O2 -fp-model precise -ipo -unroll -nocheck \
         -w -cm -vec-report0 -D$(DEFHDF) -D$(DEFMKL)
LFLAGS = -w
endif

从上面的语句看,好像gfortran也用到了DEFMKL,

14 楼

-D后面是个宏而已

到底是什么意思,得自己去看Makefile及源码

我来回复

您尚未登录,请登录后再回复。点此登录或注册