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

博文

vasp+ifc2015 debug其二

已有 1286 次阅读 2022-3-16 00:33 |个人分类:linux操作|系统分类:科研笔记

vasp6.3使用了部分fortran08以上写法,导致ifc2015版本不支持的问题。之前用ifc2018编译过了,不过天河上的ifc2018动么动就抽风,报dapl fabic 错误(原因似乎是某些节点上的dapl版本太老,不同节点上的文件版本竟然不一致,也不知道怎么配出来的)。于是今天晚上心一横,索性强行改一下vasp的源代码,看看能不能编译通过,还真别说花了3个多小时,熬夜竟然最后改通了。虽然不知道有没有bug,不过测试之后再说吧。如果测试通过,请叫我铁手。

注意,该程序靠bug运行,请勿随意修改,出现任何问题后果自负。


1号错误:main.F不识别msymmetry: PRIM_CELL_T,不知道是什么鬼。解决方法:USE msymmetry加上

  ONLY: MIN_IMAGE_T, &

                      PRIM_CELL_T

这应该是今天做的改动中最危险的,强烈怀疑这种修改会带来一些函数未定义引来报错,但所幸没有,那就先这么着吧。


diff -r src/main.F ../vasp.6.3.back/vasp.6.3.0/src/main.F

96,98c96

<       !USE msymmetry 

<       USE msymmetry, ONLY: MIN_IMAGE_T, &

<                         PRIM_CELL_T

---

>       USE msymmetry


2号错误:老版本的TAGLIST没有GET_DESCRIPTION_WIDTH()和TAGLIST_GET_DESCRIPTION_WIDTH()

解决方法:改成动态数组,并添加相应字符串长度

解决方法2:貌似改成动态数组会有内存泄漏导致程序卡死的问题。改为256长度定态字符串


diff -r src/ml_ff_logfile.F ../vasp.6.3.back/vasp.6.3.0/src/ml_ff_logfile.F

693,694c693

<             !CHARACTER(LEN=TAGLIST_GET_DESCRIPTION_WIDTH()) :: TMP_STRING

<             CHARACTER(LEN=256) :: TMP_STRING

---

>             CHARACTER(LEN=TAGLIST_GET_DESCRIPTION_WIDTH()) :: TMP_STRING

716,717c715

<             CHARACTER(LEN=:), ALLOCATABLE :: TMP_STRING

<             !CHARACTER(LEN=TAGLIST_GET_DESCRIPTION_WIDTH() - 3) :: TMP_STRING

---

>             CHARACTER(LEN=253) :: TMP_STRING

737c735

<             CHARACTER(LEN=256), &

---

>             CHARACTER(LEN=TAGLIST_GET_TAG_WIDTH()), &


3号错误:之前已经发现的老版本fortran的procedure, private一行只能写一个。

解决方法:见错误分析。


diff -r src/random.F ../vasp.6.3.back/vasp.6.3.0/src/random.F

69,74c69,71

<         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

---

>         procedure, private :: random_real_scalar, random_real_array

>         procedure, private :: uniform_real_scalar, uniform_real_array, &

>             uniform_complex_scalar, uniform_complex_array




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

上一篇:vasp的编译问题
下一篇:更快更强更多——基于动态加载压缩技术的Grüneisen参数测量新方法

0

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

数据加载中...

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

GMT+8, 2024-2-22 21:07

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部