此程序可以使用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!