TD-DFT: mkl2017,mkl2018
Environment:
intel/17.0.7 or gcc/8.1.0 /public4/soft/intel/2017/compilers_and_libraries_2017.7.259/linux/mkl
Input:
$COMPASS Title CH2O+ Molecule test run Basis aug-cc-pvtz Geometry N 0.0 0.0 0.0 N 0.0 0.0 1.1164 END geometry Skeleton Group C(1) $END $XUANYUAN Direct Schwarz $END $SCF ROKS DFT # xc functionals GB3LYP charge 1 spin 2 $END $TDDFT IMETHOD 2 ISF 0 IDIAG 1 ITDA 0 icorrect # these three variables control x-tddft 1 itest 1 itrans 1 iexit # no. of excited states 50 #adaptivegrid # -1 #numinttype # 1 $END
Error:
Program received signal SIGSEGV: Segmentation fault - invalid memory reference. Backtrace for this error: #0 0x2b46e923b66f in ??? #1 0x2b46e3094ba5 in ??? #2 0x2b46ea27b64a in ??? #3 0x2b46e18d8e94 in ??? #4 0x2b46e1958b9f in ??? #5 0x2b46e366f73e in ??? #6 0x2b46e35f95ed in ??? #7 0x2b46e35f302c in ??? #8 0x2b46e1004455 in ??? #9 0x2b46d49a666f in realmat_dgeev2_ at /public4/home/pgv3801/softwares/bdf-bak/bdf-pkg_gnu/source/libmath_util/mat_real.F90:406 #10 0x2b46d49709fc in dvdson_rpa_ at /public4/home/pgv3801/softwares/bdf-bak/bdf-pkg_gnu/source/libmath_util/dvdson_rpa.F90:150 #11 0x2b46d4915ec6 in dvdson_rpa_block_ at /public4/home/pgv3801/softwares/bdf-bak/bdf-pkg_gnu/source/libmath_util/dvdson_block.F90:209 #12 0x2b46caa5678c in tddft_solver_ at /public4/home/pgv3801/softwares/bdf-bak/bdf-pkg_gnu/source/tddft_util/tddft_solver.F90:92 #13 0x2b46ca87d5cf in tddft_main_ at /public4/home/pgv3801/softwares/bdf-bak/bdf-pkg_gnu/source/tddft_util/tddft_main.F90:102 #14 0x42351e in tddft_drv_ at /public4/home/pgv3801/softwares/bdf-bak/bdf-pkg_gnu/source/tddft/tddft_drv.F90:89 #15 0x422e78 in MAIN__ at /public4/home/pgv3801/softwares/bdf-bak/bdf-pkg_gnu/source/tddft/main.F90:8 #16 0x422ece in main at /public4/home/pgv3801/softwares/bdf-bak/bdf-pkg_gnu/source/tddft/main.F90:12 slurmstepd: error: *** JOB 1413250 ON e1401 CANCELLED AT 2020-09-21T17:51:05 ***
Problem: mat_real.F90, this version of mkl requires memory space greater than the default one ldwork=4*n. No problem for mkl2019. The problem could be worked around by inquiring an optimal space size first.
396 vl = 0.d0; vr = 0.d0 397 e = 0.d0 398 allocate(wi(n)) 399 wi=0.d0 400 !ldwork=4*n 401 !allocate(dwork(ldwork)) 402 !dwork=0.d0 403 !info=0 404 !write(*,*) 'n=',n,' ldwork=',ldwork 405 !write(*,*) allocated(wi) 406 !write(*,*) allocated(dwork) 407 !call dgeev('n','v',n,a,n,e,wi,vl,n,vr,n,dwork,ldwork,info) 408 409 ldwork = -1 410 call dgeev('n','v',n,a,n,e,wi,vl,n,vr,n,work,ldwork,info) 411 ldwork = int(work) 412 write(*,*) 'n=',n,' 4*n=',4*n,' ldwork=',ldwork 413 allocate(dwork(ldwork)) 414 dwork=0.d0 415 info=0 416 call dgeev('n','v',n,a,n,e,wi,vl,n,vr,n,dwork,ldwork,info) 417