24小时热门版块排行榜    

CyRhmU.jpeg
南方科技大学公共卫生及应急管理学院2026级博士研究生招生报考通知(长期有效)
查看: 2478  |  回复: 10

superrice

木虫 (正式写手)

[求助] Dalton2011编译问题请教专家

首先我参考了小木虫的两个帖子
http://muchong.com/bbs/viewthread.php?tid=3806483&fpage=1
http://muchong.com/bbs/viewthread.php?tid=3808279&fpage=1
按照帖子装了最新的gcc4.8.2,以及ATLAS with full palack,以及64位的openmpi,最后还是遇到问题,计算机知识实在有限,特来请教各位专家
错误信息
gfortran: 错误:unrecognized command line option ‘-module’
gfortran: 错误:unrecognized command line option ‘-fast’
gfortran: 错误:unrecognized command line option ‘-Munroll’
make[1]: *** [dalton.o] 错误 1
make[1]: Leaving directory `/home/guga/Dalton2011_release/DALTON/abacus'
make: *** [MAIN_OBJ] 错误 2

我的Makefile.config:
= linux
#
#
CPPFLAGS      = -DVAR_PGF90 -DSYS_LINUX -DVAR_MFDS -D'INSTALL_WRKMEM=524000000' -D'INSTALL_MMWORK=131000000' -D_FILE_OFFSET_BITS=64 -DVAR_MPI -DIMPLICIT_NONE -DHAVE_NO_LSEEK64
F90           = mpif90
CC            = mpicc
LOADER        = mpif90
RM            = rm -f
FFLAGS        = -mcmodel=medium -fast -Munroll
SAFEFFLAGS    = -mcmodel=medium -Mframe
CFLAGS        = -fast -Munroll -Mvect=idiom -c9x -DRESTRICT=restrict
INCLUDES      = -I../include
MODULES       = -module ../modules
LIBS          = -L/home/guga/mathlib/ATLAS/Temp/lib -llapack -llapack -lf77blas -latlas
INSTALLDIR    = /home/guga/Dalton2011_release/bin
PDPACK_EXTRAS = linpack.o eispack.o gp_zlapack.o gp_dlapack.o
GP_EXTRAS     =
AR            = ar
ARFLAGS       = rvs
# flags for ftnchek on Dalton /hjaaj
CHEKFLAGS  = -nopure -nopretty -nocommon -nousage -noarray -notruncation -quiet  -noargumants -arguments=number  -usage=var-unitialized
# -usage=var-unitialized:arg-const-modified:arg-alias
# -usage=var-unitialized:var-set-unused:arg-unused:arg-const-modified:arg-alias
#
default : dalton linuxparallel.x
SAFE_FFLAGS_for_ifort = $(FFLAGS)
#
# Parallel initialization
#
MPI_INCLUDE_DIR =
MPI_LIB_PATH    =
MPI_LIB         =
#
#
# Suffix rules
# hjaaj Oct 04: .g is a "cheat" suffix, for debugging.
#               'make x.g' will create x.o from x.F or x.c with -g debug flag set.
#
.SUFFIXES : .F .F90 .c .o .i .g .s

.F.o:
        $(F90) $(INCLUDES) $(MODULES) $(CPPFLAGS) $(FFLAGS) -c $*.F

.F.i:
        $(F90) $(INCLUDES) $(MODULES) $(CPPFLAGS) -E $*.F > $*.i

.F.g:
        $(F90) $(INCLUDES) $(MODULES) $(CPPFLAGS) $(SAFEFFLAGS) -g -c $*.F

.F.s:
        $(F90) $(INCLUDES) $(MODULES) $(CPPFLAGS) $(FFLAGS) -S -g -c $*.F

.F90.o:
        $(F90) $(INCLUDES) $(MODULES) $(CPPFLAGS) $(FFLAGS) -c $*.F90

.F90.i:
        $(F90) $(INCLUDES) $(MODULES) $(CPPFLAGS) -E $*.F90 > $*.i

.F90.g:
        $(F90) $(INCLUDES) $(MODULES) $(CPPFLAGS) $(SAFEFFLAGS) -g -c $*.F90

.F90.s:
        $(F90) $(INCLUDES) $(MODULES) $(CPPFLAGS) $(FFLAGS) -S -g -c $*.F90

.c.o:
        $(CC) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) -c $*.c

.c.i:
        $(CC) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) -E $*.c > $*.i

.c.g:
        $(CC) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) -g -c $*.c

.c.s:
        $(CC) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) -S -g -c $*.c

小弟在此谢过了
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

niuyingli

木虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
superrice: 金币+10, 有帮助 2013-10-24 20:09:23
把不识别的参数去掉

[ 发自手机版 http://muchong.com/3g ]
竹天
2楼2013-10-24 19:38:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

superrice

木虫 (正式写手)

引用回帖:
2楼: Originally posted by niuyingli at 2013-10-24 19:38:40
把不识别的参数去掉

非常感谢专家回复,去掉之后还是有点错误。
use mpi
      1
致命错误: Cannot read module file 'mpi.mod' opened at (1), because it was created by a different version of GNU Fortran
make[2]: *** [dalton_mpi.o] 错误 1
make[1]: *** [mod] 错误 2
make[1]: Leaving directory `/home/guga/Dalton2011_release/DALTON/lucita'
make: *** [LUCITA_OBJ] 错误 2

请问这是怎么回事,是我openmpi没装好吗?我是用新装的GCC编译的呀,好奇怪啊。
3楼2013-10-24 20:09:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wuy069

铁杆木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
superrice: 金币+10, 有帮助 2013-10-24 21:15:31
gmy1990: 金币+2 2013-10-24 21:35:08
你确定你按照我的帖子http://muchong.com/bbs/viewthread.php?tid=3808279&fpage=1来编译的,看你的FFLAGS参数应该用的不是gfortran和gcc编译的,反而是pgi编译器的pgfortran编译的。
如果是使用的gfortran/gcc,openmpi编译的,你可以直接使用我那帖子中的Makefile.config

gnu编译器也能编译成功,但为了程序的执行速度,使用Intel编译器和mkl数学库编译为佳
4楼2013-10-24 20:27:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

superrice

木虫 (正式写手)

引用回帖:
4楼: Originally posted by wuy069 at 2013-10-24 20:27:09
你确定你按照我的帖子http://muchong.com/bbs/viewthread.php?tid=3808279&fpage=1来编译的,看你的FFLAGS参数应该用的不是gfortran和gcc编译的,反而是pgi编译器的pgfortran编译的。
如果是使用的gfortran/gcc, ...

感谢专家回复,我想我是按照你的帖子做的,我再重新编译下openmpi看看,实在不行就换ifort试试,谢谢。
5楼2013-10-24 21:15:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

winwilltop

木虫 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
祝楼主百尺竿头更进一步.....
6楼2013-10-24 21:26:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wuy069

铁杆木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
gmy1990: 金币+5 2013-10-24 21:49:39
superrice: 金币+10, 有帮助 2013-10-24 22:09:41
引用回帖:
5楼: Originally posted by superrice at 2013-10-24 21:15:23
感谢专家回复,我想我是按照你的帖子做的,我再重新编译下openmpi看看,实在不行就换ifort试试,谢谢。...

你的openmpi可能是pgfortran(PGI编译器)编译的,你先检查下自己的编译环境吧;自己根目录下的.bashrc以及/etc/profile等里面关于PGI的先去掉吧
用gfortran/gcc编译64 bit openmpi
./configure --prefix=/path/to/your_openmpi CXX=g++ CC=gcc F77=gfortran FC=gfortran FFLAGS="-m64 -fdefault-integer-8" FCFLAGS="-m64 -fdefault-integer-8" CFLAGS=-m64 CXXFLAGS=-m64
7楼2013-10-24 21:42:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wuy069

铁杆木虫 (正式写手)

【答案】应助回帖

如果这些你都确定,你直接那我那Makefile.config,里面按照你的情况修改下;不用在DALTON目录下configure产生Makefile.config了,配置好openmpi环境后,直接编译就可以了
8楼2013-10-24 21:45:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

superrice

木虫 (正式写手)

引用回帖:
7楼: Originally posted by wuy069 at 2013-10-24 21:42:05
你的openmpi可能是pgfortran(PGI编译器)编译的,你先检查下自己的编译环境吧;自己根目录下的.bashrc以及/etc/profile等里面关于PGI的先去掉吧
用gfortran/gcc编译64 bit openmpi
./configure --prefix=/path/ ...

感谢专家回复,我先检查一下,说实话我只知道gfort和ifort,还不知道有PGI的编译器。。更别提装过了。。实验室单机应该就我一人用。或者是默认自带的,我的OS是RHEL5.5,再次感谢回复,我再看看。
9楼2013-10-24 22:09:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

blueybz

木虫 (正式写手)

引用回帖:
8楼: Originally posted by wuy069 at 2013-10-24 21:45:48
如果这些你都确定,你直接那我那Makefile.config,里面按照你的情况修改下;不用在DALTON目录下configure产生Makefile.config了,配置好openmpi环境后,直接编译就可以了

-- WARNING: mpi.mod compiled with different compiler, will use mpif.h instead
-- WARNING: Cannot determine whether MPI is built for 32bit integers

-- Performing Test MPI_COMPATIBLE
-- Performing Test MPI_COMPATIBLE - Success
-- Performing Test MPI_COMPILER_MATCHES
-- Performing Test MPI_COMPILER_MATCHES - Failed
-- Performing Test MPI_ITYPE_MATCHES
-- Performing Test MPI_ITYPE_MATCHES - Failed
我用的是同样的编译器啊,怎么总显示不同的编译器呢?也验证是64位的了
10楼2015-04-06 21:00:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 superrice 的主题更新
信息提示
请填处理意见