dxcharlary的个人博客分享 http://blog.sciencenet.cn/u/dxcharlary

博文

vasp 6.3 + ifc2016 编译的问题

已有 3733 次阅读 2022-1-25 00:49 |个人分类:计算相关|系统分类:科研笔记

相对于过去的版本来说,vasp6.3改动了一些代码,里面用了一些fortran2008标准以上的写法,导致和比较古老的intel编译器(intel17.0-2016.11之前的版本,具体参见 https://community.intel.com/t5/Intel-Fortran-Compiler/bug-error-8259-TBP-def-must-contain-1-binding/td-p/1047332)不兼容,主要问题出现在random.F文件,如果编译报如下错误:

The type bound procedure definition statement must contains only one binding name.

其主要原因是老版的fortran private变量一行只能定义一个,所以必须要把相应的部分拆开,具体来说:

原版的random.F  69-71行 为

        procedure, private :: random_real_scalar, random_real_array

....


需要将相应部分拆开,每行一个变量:

        procedure, private :: random_real_scalar

        procedure, private :: random_real_array

        procedure, private :: uniform_real_scalar

        procedure, private :: uniform_real_array

        procedure, private :: uniform_complex_scalar

        procedure, private :: uniform_complex_array

这样就可以编译通过,目前为止没发现问题。

——————————————————分割线————————————————————————

又折腾了一上午,说来也是奇怪,

SCALAPACK = $(MKL_PATH)/libmkl_scalapack_lp64.a -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core

就识别不了,写成下面这样就可以识别,也是醉了。

SCALAPACK  = \$(MKL_PATH)/libmkl_scalapack_lp64.a -Wl,--start-group \$(MKL_PATH)/libmkl_intel_lp64.a \$(MKL_PATH)/libmkl_intel_thread.a \$(MKL_PATH)/libmkl_core.a \$(MKL_PATH)/libmkl_blacs_intelmpi_lp64.a -Wl,--end-group -lpthread \$(BLACS)

不过终于把它编译好了,也算是大成功。



https://m.sciencenet.cn/blog-382437-1322510.html

上一篇:地球上水的起源有了新的思路 ——核幔分离过程中地球深处可以存在巨大的水库
下一篇:vasp的编译问题

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-2-22 23:05

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部