主题:ubuntu系统下gfortran代替inelfortran编译程序问题请教
ch06
[专家分:30] 发布于 2012-04-25 19:39:00
在编译一个程序包时,提示可以用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
最后更新于:2012-05-29 16:40:00
回复列表 (共14个回复)
11 楼
cgl_lgs [专家分:21040] 发布于 2012-05-16 00:21:00
gfortran不带MKL啊,MKL是ifort带的。或许你的源码包里有gfortran版本的make,你找找吧:)
12 楼
ch06 [专家分:30] 发布于 2012-05-16 08:04:00
[quote]gfortran不带MKL啊,MKL是ifort带的。或许你的源码包里有gfortran版本的make,你找找吧:)[/quote]
多谢大侠出手相助!我找一下。
13 楼
ch06 [专家分:30] 发布于 2012-05-29 16:39:00
# - 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 楼
dongyuanxun [专家分:7180] 发布于 2012-05-30 09:27:00
-D后面是个宏而已
到底是什么意思,得自己去看Makefile及源码
我来回复