QuantumPackage / qp2

Quantum Package : a programming environment for wave function methods
https://quantumpackage.github.io/qp2/
GNU Affero General Public License v3.0
67 stars 31 forks source link

./configure -c config/gfortran_mpi.cfg #221

Closed abigcoder04 closed 1 year ago

abigcoder04 commented 1 year ago

Dear developer, I want to ask you a question. When configuring qp, I want to try using other compilers to compile qp. I use ./configure -c config/gfortran_mpi.cfg to configure it. In my server, there is an mpi compiler. Why do I report an error when I configure make and install qp? I can't find the error at present. I want to ask you when I usr ./configure -c config/gfortranmpi.cfg to configure qp. Is there anything else that needs to be modified? It's still straightforward ./configure -c config/gfortran mpi.cfg and then make? I hope I can get your answer.

[99/131] Create all the binaries from basis_correction [69/464] F : ezfio_interface.irp.F90 -> bitmask/ezfio_interface F90-W-0006-Input file empty (/usr/local/qp/qp2/src/basis_correction/IRPF90_temp/bitmask/ezfio_interface.irp.F90) F90/aarch64 Linux Flang - 1.5 2017-05-01: compilation completed with warnings F90-W-0006-Input file empty (/usr/local/qp/qp2/src/basis_correction/IRPF90_temp/bitmask/ezfio_interface.irp.F90) F90-W-0006-Input file empty (/usr/local/qp/qp2/src/basis_correction/IRPF90_temp/bitmask/ezfio_interface.irp.F90) [176/464] F : routines_exc_sr_lda.irp.F90 -> dft_utils_func/routines_exc_sr_lda FAILED: /usr/local/qp/qp2/src/basis_correction/IRPF90_temp/dft_utils_func/routines_exc_sr_lda.irp.o mpif90 -fopenmp -I ao_basis/ -I ao_one_e_ints/ -I ao_two_e_erf_ints/ -I ao_two_e_ints/ -I aux_quantities/ -I basis/ -I becke_numerical_grid/ -I bitmask/ -I cas_based_on_top/ -I csf/ -I davidson/ -I davidson_undressed/ -I density_for_dft/ -I determinants/ -I dft_keywords/ -I dft_one_e/ -I dft_utils_func/ -I dft_utils_in_r/ -I electrons/ -I ezfio_files/ -I functionals/ -I mo_basis/ -I mo_one_e_ints/ -I mo_two_e_erf_ints/ -I mo_two_e_ints/ -I mpi/ -I mu_of_r/ -I nuclei/ -I pseudo/ -I two_body_rdm/ -I two_rdm_routines/ -I utils/ -I zmq/ -Ofast -c /usr/local/qp/qp2/src/basis_correction/IRPF90_temp/dft_utils_func/routines_exc_sr_lda.irp.F90 -o /usr/local/qp/qp2/src/basis_correction/IRPF90_temp/dft_utils_func/routines_exc_sr_lda.irp.o F90-S-0038-Symbol, derf, has not been explicitly declared (/usr/local/qp/qp2/src/basis_correction/IRPF90_temp/dft_utils_func/routines_exc_sr_lda.irp.F90) 0 inform, 0 warnings, 1 severes, 0 fatal for ex_lda_sr F90-S-0038-Symbol, derf, has not been explicitly declared (/usr/local/qp/qp2/src/basis_correction/IRPF90_temp/dft_utils_func/routines_exc_sr_lda.irp.F90) 0 inform, 0 warnings, 1 severes, 0 fatal for dberfda [193/464] F : irp_locks.irp.F90 -> irp_locks.irp.o ninja: build stopped: subcommand failed. FAILED: /usr/local/qp/qp2/src/basis_correction/basis_correction /usr/local/qp/qp2/src/basis_correction/print_su_pbe_ot cd /usr/local/qp/qp2/src/basis_correction/IRPF90_temp ; ninja /usr/local/qp/qp2/src/basis_correction/basis_correction /usr/local/qp/qp2/src/basis_correction/print_su_pbe_ot && for i in /usr/local/qp/qp2/src/basis_correction/basis_correction /usr/local/qp/qp2/src/basis_correction/print_su_pbe_ot ; do [ -x $i ] && touch $i ; done [101/131] Running IRPF90 for kohn_sham ninja: build stopped: subcommand failed. FAILED: all

scemama commented 1 year ago

F90-S-0038-Symbol, derf, has not been explicitly declared

Your Fortran compiler does not understand the derf intrinsic function, which computes the error function in double precision. You can try to replace derf by erf in the code which is more standard . The same kind of error happens with the Nvidia Fortran compiler which is missing some Fortran2008 intrinsic like shiftl and shiftr. So for the moment, only gfortran and ifort are officially supported.

abigcoder04 commented 1 year ago

Dear scemama, I tried to replace derf by erf in routines_exc_sr_lda.irp.F90, but it seems that it automatically changes back to derf when making. I would like to ask in which file to replace derf with erf. I hope I can get your answer.

scemama commented 1 year ago

You should replace it in routines_exc_sr_lda.irp.f, which is used to generate routines_exc_sr_lda.irp.F90

abigcoder04 commented 1 year ago

I tried to replace derf by erf in routines_exc_sr_lda.irp.f just now, but it seems that it automatically changes back to derf and report the same error when making.