此程序可以使用ifort和mkl编译出来,用pgi编译它说optics.f语法错,不知道为什么。然后用编译成功的程序处理已经得出OPTIC文件的一个目录,满心欢喜,结果给我了这些东西:
scanning POSCAR, KPOINTS and OPTIC
reading KPOINTS and OPTIC
set up transition energies and amplitudes
DOS and joint DOS
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image PC Routine Line Source
optics 0804A8DE Unknown Unknown Unknown
optics 080502A7 Unknown Unknown Unknown
optics 0804A594 Unknown Unknown Unknown
libc.so.6 00314E33 Unknown Unknown Unknown
optics 0804A4A1 Unknown Unknown Unknown
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image PC Routine Line Source
libc.so.6 00360ECE Unknown Unknown Unknown
libc.so.6 003614BA Unknown Unknown Unknown
optics 08086FFD Unknown Unknown Unknown
optics 0806A899 Unknown Unknown Unknown
optics 0806C183 Unknown Unknown Unknown
optics 0806B296 Unknown Unknown Unknown
optics 0806D634 Unknown Unknown Unknown
libpthread.so.0 0054A8A0 Unknown Unknown Unknown
optics 080502A7 Unknown Unknown Unknown
optics 0804A594 Unknown Unknown Unknown
libc.so.6 00314E33 Unknown Unknown Unknown
optics 0804A4A1 Unknown Unknown Unknown
貌似段错误。
具体编译方法是先编译optics上一级目录中的文件,得到prec.o constant.o error.o tet.o
,并把它们拷贝到optics目录下。
然后再到optics目录下编译optics
其中makefile的头几行修改成如下:
# THIS IS AN EXAMPLE FOR INTEL-LINUX PLATFORMS RUNNING PGF COMPILERS. CUSTOMIZE!