24小时热门版块排行榜    

查看: 2434  |  回复: 20

juliantiger

铜虫 (初入文坛)

引用回帖:
5楼: Originally posted by zzy870720z at 2012-04-01 18:18:08:
这个文件不在VASP的source code中,应该是你自己安装的

我看很多安装的说明,我使用的是这个
1. 首先,安装依赖和 g++ 编译器
user@~$ sudo pacman -S base-devel libstdc++5

Ubuntu用户使用以下命令
user@~$ sudo apt-get install build-essential
user@~$ sudo apt-get install libstdc++5

2. 到Intel的官网上下载非商业版的 Intel® Fortran Compiler for Linux, 这里我使用的是 10.1.018 版;

    解压安装(为了清理方便,解压后都在/tmp目录下)
    user@~$ tar -xvf l_fc_p_10.1.018.tar.gz -C /tmp/
    user@~$ cd /tmp/l_fc_p_10.1.018/

    运行安装脚本
    user@/tmp/l_fc_p_10.1.018$ sudo sh install.sh

    之后会出现安装选项,选1 ;
    接下来问你通过’序列号网络认证,还是用 ‘.lic’ 文件认证; 我已经下了认证文件,所以选2后填写认证文件的路径;
    因为Arch Linux不在支持的系统之列,它会问你是否安装不支持的版本,yes就可;
    默认还是高级安装, 选1 默认;
    一路回车, 到达接受条款那里,填 accpet ;
    选择安装目录,回车默认(/opt/intel/) ;
    安装完毕!

    设置环境变量
    user@~$ source /opt/intel/fc/10.1.018/bin/ifortvars.sh

    这个是零时解决办法,应该把 ifortvars.sh 脚本中的内容加入 /etc/profile 文件中。

3. 到ATLAS的网页下载数学库[ mathlib ]
http://www.netlib.org/atlas/archives/linux/
根据CPU选择源文件,我的CPU是Athlon64 3000, 操作系统是x86的, 选择 atlas3.4.1_Linux_ATHLON.tgz ; 千万别选错数学库,不然打死你也完不成编译;
把数学库解压到/opt/目录下( 和ifort同目录,方便管理 ),
user@~$ sudo tar -xvf atlas3.4.1_Linux_ATHLON.tgz -C /opt/

如果并行编译的话,到 http://www.mcs.anl.gov/research/projects/mpich2/ 下载mpich2, 这不在本文讨论的范围之内。

4. 安装VASP 4.6

    解压 vasp 和 vasp-lib
    user@~$ tar -xvf vasp.4.lib.tar.gz -C /tmp/
    user@~$ tar -xvf vasp.4.6.tar.gz -C /tmp/

    上面的命令将把vasp和lib解压到 /tmp/ 目录下的 vasp.4.lib 目录和 vasp.4.6 目录;

    编译 vasp.4.lib, ────> 进入源码目录,根据CPU和编译器选择makefile文件,并修改编译命令
    user@~$ cd /tmp/vasp.4.lib/
    user@/tmp/vasp.4.lib$ vim makefile.linux_ifc_ath
    # 19行 FC=ifc , 改为 FC=ifort

    user@/tmp/vasp.4.lib$ make -f makefile.linux_ifc_ath
    # 编译获得 libdmy.a

    如果遇到 “ifort: error #10001: could not find directory in which g++ resides”, 则设置环境变量 export LC_ALL=C
    提示libdmy.a文件是最新,则删除已编译的文件 rm ×.o

    编译 vasp.4.6, ────> 进入源码目录,根据CPU和编译器选择makefile文件,并修改编译命令
    user@~$ cd /tmp/vasp.4.6/
    user@/tmp/vasp.4.6$ vim makefile.linux_ifc_ath
    # 50行 FC=ifc , 改为 FC=ifort

    # 修改atlas数学库的路径
    # 102行 改为 ATLASHOME= /opt/Linux_ATHLON/lib

    # 把330行之后的参数 ‘-e95′ 全部删除,然后编译
    user@/tmp/vasp.4.lib$ make -f makefile.linux_ifc_ath

    不删除参数 ‘-e95′ 会出现ERROR: “The computed GOTO statement is an obsolescent feature in Fortran 95.” ;
    GOTO似乎是 Fortran 95 废弃的语法
没什么说的
11楼2012-04-04 13:45:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

enola

捐助贵宾 (正式写手)


zzy870720z: 金币+1, 谢谢建议 2012-04-04 15:41:17
同时用intel的c++编译器试试。。。
timeflies..
12楼2012-04-04 14:44:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qzhost

木虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★
感谢参与,应助指数 +1
zzy870720z: 金币+2, 谢谢指教 2012-04-04 15:41:37
juliantiger: 金币+2, 有帮助 2012-04-12 20:39:41
把makefile.linux_ifc_P4 cp成makefile
编辑makefile再make比较方便
你是什么CPU?INTEL的话
你的ALTAS得下P4的,而不能下AMD的

INTEL的CPU还是推荐IFORT+MKL这样成功率比较高
13楼2012-04-04 15:04:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mengfc

金虫 (正式写手)

【答案】应助回帖


fzx2008: 金币+1, 谢谢回帖交流! 2012-04-04 18:09:05
ifort安装的intel文件夹里面没有??
14楼2012-04-04 17:56:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

juliantiger

铜虫 (初入文坛)

引用回帖:
13楼: Originally posted by qzhost at 2012-04-04 15:04:40:
把makefile.linux_ifc_P4 cp成makefile
编辑makefile再make比较方便
你是什么CPU?INTEL的话
你的ALTAS得下P4的,而不能下AMD的

INTEL的CPU还是推荐IFORT+MKL这样成功率比较高

我的是Intel的,所以用的就是P4,也复制了成了makefile,我正在使用MKL试试了,这个东西都折磨我了好几天了
没什么说的
15楼2012-04-04 20:24:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qzhost

木虫 (小有名气)


贺仪: 金币+1, 谢谢参与讨论 2012-04-04 23:21:36
引用回帖:
15楼: Originally posted by juliantiger at 2012-04-04 20:24:02:
我的是Intel的,所以用的就是P4,也复制了成了makefile,我正在使用MKL试试了,这个东西都折磨我了好几天了

仔细看了一下你这个教程,好像少了点什么
这个可能是针对5.2的
如果是4.6的,可能还需要删掉几个#号
具体自行百度
16楼2012-04-04 21:23:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liliangfang

荣誉版主 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
zzy870720z: 金币+1, 鼓励交流 2012-04-11 09:32:50
juliantiger: 金币+8, ★★★很有帮助 2012-04-12 20:59:20
不知道问题解决没有,这个仅供参考,方法一样的不必区分4.6还是5.2
http://muchong.com/bbs/viewthread.php?tid=3753433
17楼2012-04-07 15:12:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

juliantiger

铜虫 (初入文坛)

引用回帖:
13楼: Originally posted by qzhost at 2012-04-04 15:04:40:
把makefile.linux_ifc_P4 cp成makefile
编辑makefile再make比较方便
你是什么CPU?INTEL的话
你的ALTAS得下P4的,而不能下AMD的

INTEL的CPU还是推荐IFORT+MKL这样成功率比较高

我使用你说的IFORT+MKL编译一下,出现错误如下:
rm -f vasp
ifort  -o vasp  main.o  base.o     mpi.o      smart_allocate.o      xml.o constant.o jacobi.o   main_mpi.o  scala.o asa.o      lattice.o  poscar.o   ini.o      setex.o     radial.o pseudo.o   mgrid.o    mkpoints.o wave.o      wave_mpi.o  symmetry.o symlib.o   lattlib.o  random.o    nonl.o     nonlr.o    dfast.o    choleski2.o mix.o      charge.o   xcgrad.o   xcspin.o    potex1.o   potex2.o metagga.o  constrmag.o pot.o      cl_shift.o force.o    dos.o      elf.o tet.o      hamil.o    steep.o chain.o    dyna.o     relativistic.o LDApU.o sphpro.o  paw.o   us.o ebs.o      wavpre.o   wavpre_noio.o broyden.o dynbr.o    rmm-diis.o reader.o   writer.o   tutor.o xml_writer.o brent.o    stufak.o   fileio.o   opergrid.o stepver.o dipol.o    xclib.o    chgloc.o   subrot.o   optreal.o   davidson.o edtest.o   electron.o shm.o      pardens.o  paircorrection.o optics.o   constr_cell_relax.o   stm.o    finite_diff.o elpol.o    setlocalpp.o    fftw3d.o fft3dlib.o  /home/julian/fftw/lib/libfftw3.a  -L../vasp.4.lib -ldmy ../vasp.4.lib/linpack_double.o -L/opt/intel/composer_xe_2011_sp1.9.293/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_core -lmkl_sequential -lpthread  -L/opt/intel/composer_xe_2011_sp1.9.293/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_core -lmkl_sequential -lpthread
main.o: In function `MAIN__':
main.f90:(.text+0x3914): undefined reference to `rdatab_'
main.f90:(.text+0x1f89b): undefined reference to `rdatab_'
main.f90:(.text+0x1fbbe): undefined reference to `rdatab_'
main.f90:(.text+0x21f5b): undefined reference to `wforce_'
main.f90:(.text+0x22942): undefined reference to `rdatab_'
main.f90:(.text+0x3b8f8): undefined reference to `wforce_'
main.f90:(.text+0x3c5c8): undefined reference to `wforce_'
main.f90:(.text+0x3cac5): undefined reference to `wforce_'
main.f90:(.text+0x3e4a6): undefined reference to `wforce_'
main.f90:(.text+0x41c56): undefined reference to `wforce_'
main.f90:(.text+0x42d7a): undefined reference to `reopen_'
main.f90:(.text+0x43ef1): undefined reference to `reopen_'
main.f90:(.text+0x44784): undefined reference to `wforce_'
poscar.o: In function `poscar_mp_rd_poscar_head_':
poscar.f90:(.text+0x648): undefined reference to `nitems_'
poscar.f90:(.text+0xa8b): undefined reference to `nitems_'
poscar.f90:(.text+0x107b): undefined reference to `nitems_'
poscar.o: In function `poscar_mp_rd_poscar_':
poscar.f90:(.text+0x15d4): undefined reference to `nitems_'
poscar.o: In function `poscar_mp_outpos_trail_':
poscar.f90:(.text+0x745e): undefined reference to `reopen_'
pseudo.o: In function `pseudo_mp_rd_pseudo_':
pseudo.f90:(.text+0x972): undefined reference to `length_'
pseudo.o: In function `pseudo_mp_rdpars_':
pseudo.f90:(.text+0x8294): undefined reference to `length_'
nonlr.o: In function `nonlr_mp_lreal_compat_mode_':
nonlr.f90:(.text+0x734): undefined reference to `rdatab_'
charge.o: In function `gga_compat_mode_':
charge.f90:(.text+0x498e): undefined reference to `rdatab_'
constrmag.o: In function `constrained_m_modular_mp_constrained_m_reader_':
constrmag.f90:(.text+0x200): undefined reference to `rdatab_'
constrmag.f90:(.text+0x5a2): undefined reference to `rdatab_'
constrmag.f90:(.text+0x976): undefined reference to `rdatab_'
cl_shift.o:cl_shift.f90:(.text+0x1305b): more undefined references to `rdatab_' follow
reader.o: In function `reader_':
reader.f90:(.text+0x274): undefined reference to `strip_'
reader.f90:(.text+0x36b): undefined reference to `rdatab_'
reader.f90:(.text+0x4ff): undefined reference to `rdatab_'
reader.f90:(.text+0x6bf): undefined reference to `rdatab_'
reader.f90:(.text+0x74c): undefined reference to `strip_'
reader.f90:(.text+0x75d): undefined reference to `lower_'
reader.f90:(.text+0x8b6): undefined reference to `rdatab_'
reader.f90:(.text+0x998): undefined reference to `strip_'
reader.f90:(.text+0x9a9): undefined reference to `upper_'
reader.f90:(.text+0xa95): undefined reference to `rdatab_'
reader.f90:(.text+0xc26): undefined reference to `rdatab_'
reader.f90:(.text+0xd10): undefined reference to `strip_'
reader.f90:(.text+0xe25): undefined reference to `rdatab_'
reader.f90:(.text+0xfbc): undefined reference to `rdatab_'
reader.f90:(.text+0x1153): undefined reference to `rdatab_'
reader.f90:(.text+0x12f4): undefined reference to `rdatab_'
reader.f90:(.text+0x14b0): undefined reference to `rdatab_'
reader.o:reader.f90:(.text+0x16e6): more undefined references to `rdatab_' follow
reader.o: In function `reader_':
reader.f90:(.text+0xac6b): undefined reference to `strip_'
reader.f90:(.text+0xac7c): undefined reference to `upper_'
reader.f90:(.text+0xae0b): undefined reference to `rdatab_'
reader.f90:(.text+0xafce): undefined reference to `rdatab_'
reader.f90:(.text+0xb165): undefined reference to `rdatab_'
reader.f90:(.text+0xb34d): undefined reference to `rdatab_'
reader.f90:(.text+0xb432): undefined reference to `rdatab_'
reader.f90:(.text+0xb4b5): undefined reference to `strip_'
reader.f90:(.text+0xb6c9): undefined reference to `rdatab_'
writer.o: In function `writer_mp_writer_reader_':
writer.f90:(.text+0x16c): undefined reference to `rdatab_'
writer.f90:(.text+0x2fc): undefined reference to `rdatab_'
tutor.o: In function `vtutor_':
tutor.f90:(.text+0x8a): undefined reference to `strip_'
fileio.o: In function `fileio_mp_readni_':
fileio.f90:(.text+0xc754): undefined reference to `nitems_'
fileio.f90:(.text+0xc7af): undefined reference to `subwrd_'
fileio.f90:(.text+0xc7d7): undefined reference to `chkint_'
fileio.f90:(.text+0xc85e): undefined reference to `strip_'
fileio.o: In function `fileio_mp_readch_':
fileio.f90:(.text+0xce19): undefined reference to `nitems_'
fileio.f90:(.text+0xce8e): undefined reference to `subwrd_'
fileio.f90:(.text+0xceb6): undefined reference to `chkint_'
fileio.f90:(.text+0xcf44): undefined reference to `strip_'
dipol.o: In function `mdipol_mp_field_reader_':
dipol.f90:(.text+0x187): undefined reference to `rdatab_'
electron.o: In function `elmin_':
electron.f90:(.text+0x4445): undefined reference to `wforce_'
electron.f90:(.text+0x5349): undefined reference to `rdatab_'
electron.f90:(.text+0x6978): undefined reference to `wforce_'
pardens.o: In function `pardens_mp_parchg_':
pardens.f90:(.text+0x67a): undefined reference to `wforce_'
pardens.f90:(.text+0xd98): undefined reference to `wforce_'
pardens.f90:(.text+0x10ce): undefined reference to `clean_'
pardens.f90:(.text+0x10da): undefined reference to `nxtfru_'
pardens.f90:(.text+0x11c1): undefined reference to `clean_'
pardens.f90:(.text+0x11ca): undefined reference to `nxtfru_'
pardens.f90:(.text+0x1948): undefined reference to `nxtfru_'
pardens.f90:(.text+0x1dda): undefined reference to `wforce_'
pardens.f90:(.text+0x4fb0): undefined reference to `wforce_'
pardens.f90:(.text+0x5185): undefined reference to `wforce_'
pardens.f90:(.text+0x5235): undefined reference to `wforce_'
pardens.o: In function `pardensparchg_mp_read_pard_':
pardens.f90:(.text+0x5d94): undefined reference to `wforce_'
pardens.f90:(.text+0x5fb3): undefined reference to `nxtfru_'
pardens.f90:(.text+0x62f8): undefined reference to `rdatab_'
pardens.f90:(.text+0x63fc): undefined reference to `rdatab_'
pardens.f90:(.text+0x6842): undefined reference to `wforce_'
pardens.f90:(.text+0x6935): undefined reference to `rdatab_'
pardens.f90:(.text+0x70ac): undefined reference to `rdatab_'
pardens.f90:(.text+0x75f3): undefined reference to `wforce_'
pardens.f90:(.text+0x769a): undefined reference to `wforce_'
pardens.f90:(.text+0x7737): undefined reference to `wforce_'
pardens.f90:(.text+0x781a): undefined reference to `rdatab_'
pardens.f90:(.text+0x7d19): undefined reference to `wforce_'
pardens.f90:(.text+0x7df5): undefined reference to `rdatab_'
pardens.f90:(.text+0x7eaa): undefined reference to `wforce_'
pardens.f90:(.text+0x7f86): undefined reference to `rdatab_'
pardens.f90:(.text+0x803b): undefined reference to `wforce_'
pardens.f90:(.text+0x81c5): undefined reference to `rdatab_'
pardens.f90:(.text+0x88df): undefined reference to `wforce_'
pardens.f90:(.text+0x89d1): undefined reference to `rdatab_'
pardens.f90:(.text+0x91df): undefined reference to `wforce_'
pardens.o: In function `pardensparchg_mp_write_eigv_':
pardens.f90:(.text+0xa6ae): undefined reference to `wforce_'
paircorrection.o: In function `pair_correction_':
paircorrection.f90:(.text+0x218): undefined reference to `rdatab_'
optics.o: In function `calc_nabij_':
optics.f90:(.text+0x111): undefined reference to `rdatab_'
optics.f90:(.text+0x2db): undefined reference to `rdatab_'
optics.f90:(.text+0x4f9): undefined reference to `rdatab_'
optics.f90:(.text+0x6df): undefined reference to `rdatab_'
elpol.o:elpol.f90:(.text+0x20f2): more undefined references to `rdatab_' follow
make: *** [vasp] Error 1
没什么说的
18楼2012-04-10 20:47:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qzhost

木虫 (小有名气)

引用回帖:
18楼: Originally posted by juliantiger at 2012-04-10 20:47:12:
我使用你说的IFORT+MKL编译一下,出现错误如下:
rm -f vasp
ifort  -o vasp  main.o  base.o     mpi.o      smart_allocate.o      xml.o constant.o jacobi.o   main_mpi.o  scala.o asa.o      lattice.o  ...

把你的makefile 贴上来
19楼2012-04-11 08:55:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

juliantiger

铜虫 (初入文坛)

谢谢各位,编译成功了,换了系统就过了,UBUNTU真是害死人,让我忙活了两个星期
没什么说的
20楼2012-04-12 19:28:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 juliantiger 的主题更新
信息提示
请填处理意见