|
|
本帖最后由 Tosykie 于 2024-6-22 01:43 编辑
我在编译VASP6.3.2+VTST199的时候也出现一模一样的报错。
@addmvp 说的是对的,在"chain.F"这个源码文件里的第179行之后的一个代码块确实少了一个ENDIF语句,但是不是在第191行之后:
189 ! Wait for the NEWCAR or STOPCAR.
190 WRITE(*,*) 'LINTERACT: Waiting for NEWCAR.'
191 ENDIF
而是在第202行之后添加:
199 IF (newcar_exists) THEN
200 CALL RD_POSCAR_HEAD(LATT_CUR, T_I, NIOND, NIONPD, NTYPD, NTYPPD, IO%IU0, IO%IU6)
201 CALL RD_POSCAR(LATT_CUR, T_I, DYN, NIOND, NIONPD, NTYPD, NTYPPD, IO%IU0, IO%IU6)
202 posion = DYN%POSION
203 ENDIF !这是新加的ENDIF与IF (newcar_exists)配对
204 #if defined(MPI) || defined(MPI_CHAIN)
205 CALLMPI(MPI_Barrier(comm_chain%mpi_comm, ierr))
206 #endif
如果在
190 WRITE(*,*) 'LINTERACT: Waiting for NEWCAR.'
191 ENDIF
之后再加一个ENDIF的话就会直接把
179 IF (LINTERACT) THEN
这个条件语句给结束了,这可能会造成本该有的功能没有编译进来或者条件出错,比如那个STOPCAR。
在
posion = DYN%POSION之后
#if defined(MPI) || defined(MPI_CHAIN)之前补充条件语句退出才符合。
更改之后就可以顺利编译通过了。
这可能是VTST开发组写源码的时候忘记加了这这个IF结束语句了。
仅供参考~
;) |
|