diff --git a/src/basis.f90 b/src/basis.f90 index e6e09b21e..56cd88fc9 100644 --- a/src/basis.f90 +++ b/src/basis.f90 @@ -15,17 +15,14 @@ subroutine readbasis(natomxiao,natomstart,natomfinal,nbasisstart,nbasisfinal,ier use allmod use quick_gridpoints_module use quick_exception_module - #ifdef CEW use quick_cew_module, only: quick_cew #endif - #ifdef MPIV - use mpi + use mpi_f08 #endif - - ! implicit double precision(a-h,o-z) + character(len=120) :: line character(len=2) :: atom,shell logical :: isatom diff --git a/src/calMP2.f90 b/src/calMP2.f90 index 1f2d5f46d..b18e5cee2 100644 --- a/src/calMP2.f90 +++ b/src/calMP2.f90 @@ -254,7 +254,7 @@ subroutine MPI_calmp2 use allmod use quick_gaussian_class_module use quick_cutoff_module, only: cshell_density_cutoff - use mpi + use mpi_f08 implicit double precision(a-h,o-z) double precision cutoffTest,testtmp,testCutoff diff --git a/src/dlfind/dl_find.f90 b/src/dlfind/dl_find.f90 index cda79c1f2..a19f3cf6f 100644 --- a/src/dlfind/dl_find.f90 +++ b/src/dlfind/dl_find.f90 @@ -355,7 +355,7 @@ subroutine dlf_run(ierr2 & use quick_files_module, only: write_molden use quick_molden_module, only: quick_molden #ifdef MPIV - use mpi + use mpi_f08 use quick_mpi_module, only: bMPI, mpierror #endif implicit none diff --git a/src/dlfind/dlf_mpi.f90 b/src/dlfind/dlf_mpi.f90 index f40e987bd..da8b8f07e 100644 --- a/src/dlfind/dlf_mpi.f90 +++ b/src/dlfind/dlf_mpi.f90 @@ -32,7 +32,7 @@ !! SOURCE !!**** module dlf_mpi_module - use mpi + use mpi_f08 save integer :: global_comm ! set to, and use instead of, mpi_comm_world diff --git a/src/dlfind/dlfind_main_driver.f90 b/src/dlfind/dlfind_main_driver.f90 index a31ab2870..96b6eaea5 100644 --- a/src/dlfind/dlfind_main_driver.f90 +++ b/src/dlfind/dlfind_main_driver.f90 @@ -301,7 +301,7 @@ subroutine dlf_get_gradient(nvar,coords,energy,gradient,iimage,kiter,status,ierr use driver_parameter_module use dlf_parameter_module, only: rk use dlf_stat, only: stat - use allmod + use quick_calculated_module, only: quick_qm_struct use quick_gridpoints_module use quick_molspec_module, only: natom, xyz, quick_molspec use quick_cutoff_module, only: schwarzoff @@ -311,7 +311,7 @@ subroutine dlf_get_gradient(nvar,coords,energy,gradient,iimage,kiter,status,ierr use quick_method_module,only: quick_method use quick_exception_module, only: RaiseException #ifdef MPIV - use mpi + use mpi_f08 use quick_mpi_module, only: master, bMPI, mpierror #endif !use vib_pot @@ -419,7 +419,6 @@ subroutine dlf_get_hessian(nvar,coords,hessian,status) ! get the hessian at a given geometry use driver_parameter_module use dlf_parameter_module -! use allmod ! use quick_grad_cshell_module, only: cshell_gradient !use vib_pot implicit none diff --git a/src/dnc/dnc_hfoperator.f90 b/src/dnc/dnc_hfoperator.f90 index 9b5b6b573..c3ed9a118 100644 --- a/src/dnc/dnc_hfoperator.f90 +++ b/src/dnc/dnc_hfoperator.f90 @@ -298,8 +298,8 @@ subroutine mpi_hfoperatordc(oneElecO) use quick_gaussian_class_module use quick_cutoff_module, only: cshell_density_cutoff use quick_eri_cshell_module, only: getCshellEriEnergy - use mpi - implicit double precision(a-h,o-z) + use mpi_f08 + implicit none double precision testtmp,cutoffTest,oneElecO(nbasis,nbasis) integer II,JJ,KK,LL,NBI1,NBI2,NBJ1,NBJ2,NBK1,NBK2,NBL1,NBL2 diff --git a/src/dnc/dnc_scf.f90 b/src/dnc/dnc_scf.f90 index febb83f42..170e4b8b1 100644 --- a/src/dnc/dnc_scf.f90 +++ b/src/dnc/dnc_scf.f90 @@ -10,9 +10,9 @@ subroutine electdiisdc(jscf,PRMS) use allmod #ifdef MPIV - use mpi + use mpi_f08 #endif - implicit double precision(a-h,o-z) + implicit none logical :: diisdone dimension :: B(quick_method%maxdiisscf+1,quick_method%maxdiisscf+1),BSAVE(quick_method%maxdiisscf+1,quick_method%maxdiisscf+1) diff --git a/src/dnc/inidivcon.f90 b/src/dnc/inidivcon.f90 index 031406d9d..e6c4ce6fa 100644 --- a/src/dnc/inidivcon.f90 +++ b/src/dnc/inidivcon.f90 @@ -36,9 +36,9 @@ subroutine inidivcon(natomsaved) use allmod #ifdef MPIV - use mpi + use mpi_f08 #endif - implicit double precision (a-h,o-z) + implicit none double precision rbuffer1,rbuffer2 diff --git a/src/finalize.f90 b/src/finalize.f90 index a13e50dd8..fdf1abcaf 100644 --- a/src/finalize.f90 +++ b/src/finalize.f90 @@ -128,9 +128,10 @@ subroutine quick_exit(io, ierr) use allmod #ifdef MPIV - use mpi + use mpi_f08 #endif implicit none + integer io ! close this unit if greater than zero integer, intent(inout) :: ierr diff --git a/src/getEnergy.f90 b/src/getEnergy.f90 index a3de7d407..de72bfe38 100644 --- a/src/getEnergy.f90 +++ b/src/getEnergy.f90 @@ -21,9 +21,8 @@ subroutine getEnergy(isGuess, ierr) use quick_cew_module, only : quick_cew #endif #ifdef MPIV - use mpi + use mpi_f08 #endif - implicit none double precision :: distance diff --git a/src/getMol.f90 b/src/getMol.f90 index ce905f865..632c8c6d6 100644 --- a/src/getMol.f90 +++ b/src/getMol.f90 @@ -21,9 +21,8 @@ subroutine getMol(ierr) use quick_io_module, only: read_real8_rank3 #endif #ifdef MPIV - use mpi + use mpi_f08 #endif - implicit none integer :: fail diff --git a/src/main.f90 b/src/main.f90 index 42e86fdad..91b579e60 100644 --- a/src/main.f90 +++ b/src/main.f90 @@ -50,7 +50,7 @@ program quick use quick_files_module, only: write_molden, set_quick_files, print_quick_io_file use quick_molsurface_module, only: generate_MKS_surfaces #ifdef MPIV - use mpi + use mpi_f08 #endif #if defined CUDA || defined CUDA_MPIV || defined HIP || defined HIP_MPIV use quick_basis_module, only: quick_basis, aexp, cutprim, dcoeff, itype diff --git a/src/modules/include/eri.fh b/src/modules/include/eri.fh index d7a3d9346..c1d378ead 100644 --- a/src/modules/include/eri.fh +++ b/src/modules/include/eri.fh @@ -76,7 +76,7 @@ subroutine get_eri_precomputables use allmod #ifdef MPIV - use mpi + use mpi_f08 #endif implicit none diff --git a/src/modules/include/gradient.fh b/src/modules/include/gradient.fh index a150d1985..42db44589 100644 --- a/src/modules/include/gradient.fh +++ b/src/modules/include/gradient.fh @@ -84,7 +84,7 @@ contains use allmod use quick_lri_grad_module #ifdef MPIV - use mpi + use mpi_f08 #endif implicit double precision(a-h,o-z) @@ -188,7 +188,7 @@ contains use quick_grad_cshell_module #endif #ifdef MPIV - use mpi + use mpi_f08 #endif implicit double precision(a-h,o-z) @@ -522,7 +522,7 @@ contains use quick_cutoff_module, only: cshell_density_cutoff #endif #ifdef MPIV - use mpi + use mpi_f08 #endif implicit none integer :: Iatm, Imomentum, IIsh, JJsh, i, j, nshell_mpi @@ -688,7 +688,7 @@ contains use quick_grad_cshell_module, only: get_ijbas_derivative #endif #ifdef MPIV - use mpi + use mpi_f08 #endif implicit double precision(a-h,o-z) @@ -835,7 +835,7 @@ contains use quick_eri_grad_cshell_module, only: cshell_eri_grad #endif #ifdef MPIV - use mpi + use mpi_f08 #endif implicit double precision(a-h,o-z) @@ -988,7 +988,7 @@ contains use xc_f90_types_m use xc_f90_lib_m #ifdef MPIV - use mpi + use mpi_f08 #endif implicit none diff --git a/src/modules/quick_api_module.f90 b/src/modules/quick_api_module.f90 index 0ea53f2c4..b77f29a18 100644 --- a/src/modules/quick_api_module.f90 +++ b/src/modules/quick_api_module.f90 @@ -801,8 +801,7 @@ end subroutine set_quick_mpi ! broadcasts results from master to slaves subroutine broadcast_quick_mpi_results(self,ierr) - use mpi - + use mpi_f08 implicit none type(quick_api_type), intent(inout) :: self diff --git a/src/modules/quick_api_test_module.f90 b/src/modules/quick_api_test_module.f90 index c3afa6d12..64b457f8a 100644 --- a/src/modules/quick_api_test_module.f90 +++ b/src/modules/quick_api_test_module.f90 @@ -103,7 +103,7 @@ end subroutine load_test_data ! initialize mpi library and save mpirank and mpisize subroutine mpi_initialize(mpisize, mpirank, master, mpierror) - use mpi + use mpi_f08 implicit none integer, intent(inout) :: mpisize, mpirank, mpierror @@ -143,7 +143,7 @@ end subroutine printQuickMPIOutput subroutine mpi_exit - use mpi + use mpi_f08 implicit none integer :: mpierror diff --git a/src/modules/quick_calculated_module.f90 b/src/modules/quick_calculated_module.f90 index 3cfd6811e..7dd18fc50 100644 --- a/src/modules/quick_calculated_module.f90 +++ b/src/modules/quick_calculated_module.f90 @@ -538,8 +538,9 @@ subroutine broadcast_quick_qm_struct(self) use quick_mpi_module use quick_method_module, only: quick_method use quick_molspec_module, only: quick_molspec - use mpi + use mpi_f08 implicit none + type (quick_qm_struct_type) self integer natom integer nbasis,nbasis2 diff --git a/src/modules/quick_cew_module.f90 b/src/modules/quick_cew_module.f90 index eb1e73ca8..57b28271c 100644 --- a/src/modules/quick_cew_module.f90 +++ b/src/modules/quick_cew_module.f90 @@ -129,9 +129,8 @@ subroutine quick_cew_prescf() use quick_method_module, only: quick_method #ifdef MPIV use quick_mpi_module - use mpi + use mpi_f08 #endif - implicit none double precision :: E @@ -410,7 +409,7 @@ subroutine quick_cew_prescf_quad() use quick_gridpoints_module, only : quick_dft_grid use quick_molspec_module, only : quick_molspec #ifdef MPIV - use mpi + use mpi_f08 #endif implicit none @@ -900,10 +899,9 @@ subroutine quick_cew_grad_quad() use quick_calculated_module, only : quick_qm_struct use quick_molspec_module, only : quick_molspec #ifdef MPIV - use mpi + use mpi_f08 #endif - - implicit double precision(a-h,o-z) + implicit none integer II,JJ,KK,LL,NBI1,NBI2,NBJ1,NBJ2,NBK1,NBK2,NBL1,NBL2 common /hrrstore/II,JJ,KK,LL,NBI1,NBI2,NBJ1,NBJ2,NBK1,NBK2,NBL1,NBL2 diff --git a/src/modules/quick_cutoff_module.f90 b/src/modules/quick_cutoff_module.f90 index 9ba714734..ec8da0f64 100644 --- a/src/modules/quick_cutoff_module.f90 +++ b/src/modules/quick_cutoff_module.f90 @@ -54,10 +54,9 @@ end subroutine deallocate_quick_cutoff subroutine schwarzoff use allmod #ifdef MPIV - use mpi + use mpi_f08 #endif - - Implicit none + implicit none integer ii,jj double precision Ymaxtemp diff --git a/src/modules/quick_gridpoints_module.f90 b/src/modules/quick_gridpoints_module.f90 index 315572e6f..b57f6ca4b 100644 --- a/src/modules/quick_gridpoints_module.f90 +++ b/src/modules/quick_gridpoints_module.f90 @@ -646,9 +646,12 @@ subroutine get_sigrad ! 2 use allmod #ifdef MPIV - use mpi + use mpi_f08 #endif - implicit double precision(a-h,o-z) + implicit none + + double precision :: amin, current, gamma, gamma2pi, radial, stepsize, target + integer :: i, Ibas, Icon, L #ifdef MPIV if(master) then diff --git a/src/modules/quick_method_module.f90 b/src/modules/quick_method_module.f90 index 8b92a601e..93a1a24d8 100644 --- a/src/modules/quick_method_module.f90 +++ b/src/modules/quick_method_module.f90 @@ -212,8 +212,7 @@ module quick_method_module subroutine broadcast_quick_method(self, ierr) use quick_MPI_module use quick_exception_module - use mpi - + use mpi_f08 implicit none type(quick_method_type) self diff --git a/src/modules/quick_molspec_module.f90 b/src/modules/quick_molspec_module.f90 index 007bdf7b6..a90247629 100644 --- a/src/modules/quick_molspec_module.f90 +++ b/src/modules/quick_molspec_module.f90 @@ -318,7 +318,7 @@ end subroutine deallocate_quick_molspec subroutine broadcast_quick_molspec(self,ierr) use quick_mpi_module use quick_exception_module - use mpi + use mpi_f08 implicit none type (quick_molspec_type), intent(inout) :: self diff --git a/src/modules/quick_mpi_module.f90 b/src/modules/quick_mpi_module.f90 index 06d7f4234..617425606 100644 --- a/src/modules/quick_mpi_module.f90 +++ b/src/modules/quick_mpi_module.f90 @@ -22,19 +22,24 @@ module quick_mpi_module !------------------------------------------------------------------------ #ifdef MPIV - use mpi + use mpi_f08 #endif + implicit none integer :: mpierror integer :: mpirank integer :: myid integer :: namelen integer :: mpisize - character(len=80) pname +#ifdef MPIV + character(len=MPI_MAX_PROCESSOR_NAME) pname +#endif logical :: master = .true. ! flag to show if the node is master node logical :: bMPI = .true. ! flag to show if MPI is turn on logical :: libMPIMode = .false. ! if mpi is initialized somewhere other than quick - integer, allocatable :: QUICK_MPI_STATUS(:) +#ifdef MPIV + type(MPI_Status) :: QUICK_MPI_STATUS +#endif integer, parameter :: MIN_1E_MPI_BASIS=6 integer, allocatable :: mgpu_ids(:) integer :: mgpu_id @@ -73,7 +78,9 @@ subroutine print_quick_mpi(io,ierr) write (io,*) write (io,'("| - MPI Enabled -")') write (io,'("| TOTAL RANKS = ",i5)') mpisize +#ifdef MPIV write (io,'("| MASTER NAME = ",A30)') pname +#endif end subroutine print_quick_mpi diff --git a/src/modules/quick_oei_module.f90 b/src/modules/quick_oei_module.f90 index d3b5ce9f0..3b8cebb6e 100644 --- a/src/modules/quick_oei_module.f90 +++ b/src/modules/quick_oei_module.f90 @@ -74,10 +74,10 @@ subroutine get1e(deltaO) #endif #ifdef MPIV - use mpi + use mpi_f08 #endif - implicit double precision(a-h,o-z) + double precision :: temp2d(nbasis,nbasis) logical, intent(in) :: deltaO diff --git a/src/modules/quick_optimizer_module.f90 b/src/modules/quick_optimizer_module.f90 index 7df9def81..e80f7a251 100644 --- a/src/modules/quick_optimizer_module.f90 +++ b/src/modules/quick_optimizer_module.f90 @@ -39,7 +39,7 @@ subroutine optimize(ierr) use quick_exception_module use quick_molden_module, only: quick_molden #ifdef MPIV - use mpi + use mpi_f08 #endif implicit double precision(a-h,o-z) diff --git a/src/modules/quick_scf_module.f90 b/src/modules/quick_scf_module.f90 index 42594b2b4..e04e2cd56 100644 --- a/src/modules/quick_scf_module.f90 +++ b/src/modules/quick_scf_module.f90 @@ -192,9 +192,8 @@ subroutine electdiis(jscf,ierr) use quick_cew_module, only : quick_cew #endif #if defined(MPIV) - use mpi + use mpi_f08 #endif - implicit none ! variable inputed to return diff --git a/src/modules/quick_scf_operator_module.f90 b/src/modules/quick_scf_operator_module.f90 index 89fb560da..cf3d32281 100644 --- a/src/modules/quick_scf_operator_module.f90 +++ b/src/modules/quick_scf_operator_module.f90 @@ -38,10 +38,10 @@ subroutine scf_operator(deltaO) use quick_eri_cshell_module, only: getCshellEri, getCshellEriEnergy use quick_oei_module, only:get1eEnergy,get1e #ifdef MPIV - use mpi + use mpi_f08 #endif - implicit none + ! double precision oneElecO(nbasis,nbasis) logical :: deltaO integer II,JJ,KK,LL,NBI1,NBI2,NBJ1,NBJ2,NBK1,NBK2,NBL1,NBL2, I, J @@ -278,7 +278,7 @@ subroutine get_xc(deltaO) use xc_f90_types_m use xc_f90_lib_m #ifdef MPIV - use mpi + use mpi_f08 #endif implicit none diff --git a/src/modules/quick_timer_module.f90 b/src/modules/quick_timer_module.f90 index 89a474efa..02549b9bf 100644 --- a/src/modules/quick_timer_module.f90 +++ b/src/modules/quick_timer_module.f90 @@ -10,13 +10,18 @@ #include "util.fh" module quick_timer_module +#ifdef MPIV + use mpi_f08 +#endif implicit none - integer TIMER_SIZE,TIMER_CUMER_SIZE +#ifdef MPIV + integer, parameter :: TIMER_SIZE = 33 + integer, parameter :: TIMER_CUMER_SIZE = 36 ! MPI timer data type - integer MPI_timer_cumer_type,MPI_timer_type - parameter(TIMER_SIZE=33,TIMER_CUMER_SIZE=36) + type(MPI_Datatype) :: MPI_timer_cumer_type, MPI_timer_type +#endif !timer type type quick_timer @@ -129,9 +134,10 @@ subroutine timer_output(io) use quick_mpi_module use quick_method_module #ifdef MPIV - use mpi + use mpi_f08 #endif implicit none + integer i,IERROR,io double precision :: t_tot_dftop, t_tot_lb @@ -473,16 +479,16 @@ end subroutine timer_output subroutine mpi_setup_timer use quick_mpi_module - use mpi + use mpi_f08 implicit none ! declaim mpi timer if (bMPI) then - call MPI_TYPE_CONTIGUOUS(TIMER_SIZE, mpi_double_precision,MPI_timer_type,mpierror) - call MPI_TYPE_COMMIT(MPI_timer_type,mpierror) + call MPI_TYPE_CONTIGUOUS(TIMER_SIZE, mpi_double_precision, MPI_timer_type, mpierror) + call MPI_TYPE_COMMIT(MPI_timer_type, mpierror) - call MPI_TYPE_CONTIGUOUS(TIMER_CUMER_SIZE, mpi_double_precision,MPI_timer_cumer_type,mpierror) - call MPI_TYPE_COMMIT(MPI_timer_cumer_type,mpierror) + call MPI_TYPE_CONTIGUOUS(TIMER_CUMER_SIZE, mpi_double_precision, MPI_timer_cumer_type, mpierror) + call MPI_TYPE_COMMIT(MPI_timer_cumer_type, mpierror) endif end subroutine mpi_setup_timer @@ -491,8 +497,9 @@ end subroutine mpi_setup_timer #if defined(MPIV_GPU) subroutine get_mgpu_time use quick_mpi_module - use mpi + use mpi_f08 implicit none + integer :: IERROR double precision :: tsum_2elb, tsum_xclb, tsum_xcrb, tsum_xcpg diff --git a/src/modules/quick_uscf_module.f90 b/src/modules/quick_uscf_module.f90 index 8dc499755..5e5962189 100644 --- a/src/modules/quick_uscf_module.f90 +++ b/src/modules/quick_uscf_module.f90 @@ -160,9 +160,8 @@ subroutine uelectdiis(jscf,ierr) use quick_oei_module, only: bCalc1e use quick_molden_module, only: quick_molden #ifdef MPIV - use mpi + use mpi_f08 #endif - implicit none ! variable inputed to return diff --git a/src/modules/quick_uscf_operator_module.f90 b/src/modules/quick_uscf_operator_module.f90 index fb7870a9d..90ad170a4 100644 --- a/src/modules/quick_uscf_operator_module.f90 +++ b/src/modules/quick_uscf_operator_module.f90 @@ -38,9 +38,8 @@ subroutine uscf_operator(deltaO) use quick_eri_oshell_module, only: getOshellEri, getOshellEriEnergy use quick_oei_module, only: get1eEnergy, get1e #ifdef MPIV - use mpi + use mpi_f08 #endif - implicit none ! double precision oneElecO(nbasis,nbasis) @@ -284,7 +283,7 @@ subroutine get_oshell_xc(deltaO) use xc_f90_types_m use xc_f90_lib_m #ifdef MPIV - use mpi + use mpi_f08 #endif implicit none diff --git a/src/mpi_setup.f90 b/src/mpi_setup.f90 index 196895936..f18e61a90 100644 --- a/src/mpi_setup.f90 +++ b/src/mpi_setup.f90 @@ -7,8 +7,9 @@ ! subroutine initialize_quick_mpi() use allmod - use mpi + use mpi_f08 implicit none + logical mpi_initialized_flag ! Initinalize MPI evironment, and determind master node @@ -23,8 +24,6 @@ subroutine initialize_quick_mpi() call MPI_GET_PROCESSOR_NAME(pname,namelen,mpierror) call MPI_BARRIER(MPI_COMM_WORLD,mpierror) - if(.not. allocated(QUICK_MPI_STATUS)) allocate(QUICK_MPI_STATUS(MPI_STATUS_SIZE)) - if (mpirank.eq.0) then master=.true. else @@ -45,8 +44,9 @@ subroutine initialize_quick_mpi() ! subroutine mpi_setup_job(ierr) use allmod - use mpi + use mpi_f08 implicit none + integer, intent(inout) :: ierr call Broadcast(quick_method,ierr) @@ -70,7 +70,7 @@ subroutine mpi_setup_job(ierr) subroutine mpi_setup_mol1(ierr) use allmod use quick_gridpoints_module - use mpi + use mpi_f08 implicit none integer :: i @@ -97,8 +97,9 @@ subroutine mpi_setup_mol2(ierr) use allmod use quick_gridpoints_module - use mpi + use mpi_f08 implicit none + integer, intent(inout) :: ierr call Broadcast(quick_molspec,ierr) @@ -121,7 +122,7 @@ subroutine mpi_bcast_grid_vars use quick_gridpoints_module, only: RGRID, RWT use quick_size_module, only: MAXRADGRID use quick_mpi_module, only: mpierror - use mpi + use mpi_f08 implicit none call MPI_BCAST(RGRID,MAXRADGRID,mpi_double_precision,0,MPI_COMM_WORLD,mpierror) @@ -135,7 +136,7 @@ end subroutine mpi_bcast_grid_vars !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ subroutine mpi_setup_basis use allmod - use mpi + use mpi_f08 implicit none integer :: i, j @@ -205,8 +206,9 @@ subroutine mpi_setup_basis ! subroutine mpi_setup_inidivcon(natomt) use allmod - use mpi + use mpi_f08 implicit none + integer natomt,i,k1,k2,j,k,tempinteger,tempinteger2 call MPI_BARRIER(MPI_COMM_WORLD,mpierror) @@ -294,8 +296,9 @@ end subroutine mpi_setup_inidivcon !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ subroutine MPI_setup_hfoperator() use allmod - use mpi + use mpi_f08 implicit none + integer i,k1,k2,j,k,tempinteger,tempinteger2 integer temp1d(nbasis) @@ -362,8 +365,9 @@ end subroutine MPI_setup_hfoperator subroutine mgpu_setup() use quick_mpi_module - use mpi + use mpi_f08 implicit none + integer :: i, IERROR ! allocate memory for device ids @@ -405,7 +409,7 @@ end subroutine delete_mgpu_setup subroutine setup_xc_mpi_1 use allmod use quick_gridpoints_module - use mpi + use mpi_f08 implicit double precision(a-h,o-z) call MPI_BARRIER(MPI_COMM_WORLD,mpierror) @@ -426,7 +430,7 @@ subroutine setup_xc_mpi_new_imp !----------------------------------------------------------------------------- use allmod use quick_gridpoints_module - use mpi + use mpi_f08 implicit double precision(a-h,o-z) integer, dimension(1:mpisize) :: itotgridspn @@ -506,7 +510,7 @@ subroutine setup_ssw_mpi use allmod use quick_gridpoints_module - use mpi + use mpi_f08 implicit double precision(a-h,o-z) integer, dimension(1:mpisize) :: itotgridspn @@ -577,7 +581,7 @@ subroutine get_mpi_ssw use allmod use quick_gridpoints_module - use mpi + use mpi_f08 implicit double precision(a-h,o-z) call MPI_BARRIER(MPI_COMM_WORLD,mpierror) diff --git a/src/obsolete/amber_interface.f90 b/src/obsolete/amber_interface.f90 index 2f5a67c0c..7fe100dbb 100644 --- a/src/obsolete/amber_interface.f90 +++ b/src/obsolete/amber_interface.f90 @@ -26,7 +26,7 @@ subroutine qm2_quick_energy(escf,scf_mchg) ! quick mod use allmod - use mpi + use mpi_f08 implicit none double precision, intent(out) :: escf diff --git a/src/obsolete/dft.f90 b/src/obsolete/dft.f90 index 6839f7d39..e350eddc6 100644 --- a/src/obsolete/dft.f90 +++ b/src/obsolete/dft.f90 @@ -559,9 +559,9 @@ subroutine get_sigrad ! 2 use allmod #ifdef MPIV - use mpi + use mpi_f08 #endif - implicit double precision(a-h,o-z) + implicit none #ifdef MPIV if(master) then diff --git a/src/obsolete/electdii.f90 b/src/obsolete/electdii.f90 index 28e94b688..aa1ff0b3e 100644 --- a/src/obsolete/electdii.f90 +++ b/src/obsolete/electdii.f90 @@ -14,8 +14,8 @@ ! subroutine electdiis(jscf,PRMS) use allmod - use mpi - implicit double precision(a-h,o-z) + use mpi_f08 + implicit none logical :: diisdone double precision:: oldEnergy=0.0d0,E1e @@ -542,8 +542,8 @@ end subroutine electdiis ! subroutine electdiisdc(jscf,PRMS) use allmod - use mpi - implicit double precision(a-h,o-z) + use mpi_f08 + implicit none logical :: diisdone dimension :: B(quick_method%maxdiisscf+1,quick_method%maxdiisscf+1),BSAVE(quick_method%maxdiisscf+1,quick_method%maxdiisscf+1) diff --git a/src/obsolete/gradient.f90 b/src/obsolete/gradient.f90 index ba0614c46..d1c1cc1ac 100644 --- a/src/obsolete/gradient.f90 +++ b/src/obsolete/gradient.f90 @@ -25,9 +25,9 @@ subroutine gradient(ierr) use allmod #ifdef MPIV - use mpi + use mpi_f08 #endif - implicit double precision(a-h,o-z) + implicit none integer, intent(inout) :: ierr character(len=1) cartsym(3) @@ -115,9 +115,9 @@ subroutine scf_gradient use allmod use quick_grad_cshell_module #ifdef MPIV - use mpi + use mpi_f08 #endif - implicit double precision(a-h,o-z) + implicit none integer II,JJ,KK,LL,NBI1,NBI2,NBJ1,NBJ2,NBK1,NBK2,NBL1,NBL2 common /hrrstore/II,JJ,KK,LL,NBI1,NBI2,NBJ1,NBJ2,NBK1,NBK2,NBL1,NBL2 @@ -381,9 +381,10 @@ subroutine get_oneen_grad use allmod #ifdef MPIV - use mpi + use mpi_f08 #endif implicit none + integer :: Iatm, Imomentum, IIsh, JJsh, i, j, nshell_mpi !--------------------------------------------------------------------- @@ -486,9 +487,9 @@ subroutine get_kinetic_grad use allmod #ifdef MPIV - use mpi + use mpi_f08 #endif - implicit double precision(a-h,o-z) + implicit none integer II,JJ,KK,LL,NBI1,NBI2,NBJ1,NBJ2,NBK1,NBK2,NBL1,NBL2 common /hrrstore/II,JJ,KK,LL,NBI1,NBI2,NBJ1,NBJ2,NBK1,NBK2,NBL1,NBL2 @@ -604,9 +605,9 @@ subroutine get_electron_replusion_grad use quick_grad_cshell_module use quick_cutoff_module, only: cshell_dnscreen #ifdef MPIV - use mpi + use mpi_f08 #endif - implicit double precision(a-h,o-z) + implicit none integer II,JJ,KK,LL,NBI1,NBI2,NBJ1,NBJ2,NBK1,NBK2,NBL1,NBL2 common /hrrstore/II,JJ,KK,LL,NBI1,NBI2,NBJ1,NBJ2,NBK1,NBK2,NBL1,NBL2 @@ -742,9 +743,9 @@ subroutine get_xc_grad use xc_f90_types_m use xc_f90_lib_m #ifdef MPIV - use mpi + use mpi_f08 #endif - implicit double precision(a-h,o-z) + implicit none integer II,JJ,KK,LL,NBI1,NBI2,NBJ1,NBJ2,NBK1,NBK2,NBL1,NBL2 common /hrrstore/II,JJ,KK,LL,NBI1,NBI2,NBJ1,NBJ2,NBK1,NBK2,NBL1,NBL2 diff --git a/src/obsolete/optimize.f90 b/src/obsolete/optimize.f90 index 9812e12d4..6748f9378 100644 --- a/src/obsolete/optimize.f90 +++ b/src/obsolete/optimize.f90 @@ -11,9 +11,9 @@ subroutine optimize(ierr) use quick_eri_cshell_module, only: getEriPrecomputables use quick_grad_cshell_module, only: scf_gradient #ifdef MPIV - use mpi + use mpi_f08 #endif - implicit double precision(a-h,o-z) + implicit none logical :: done,diagco character(len=1) cartsym(3) diff --git a/src/obsolete/scf.f90 b/src/obsolete/scf.f90 index 7d9dec781..e8fa985fe 100644 --- a/src/obsolete/scf.f90 +++ b/src/obsolete/scf.f90 @@ -59,9 +59,8 @@ subroutine electdiis(jscf,ierr) use quick_gridpoints_module use quick_scf_module #ifdef MPIV - use mpi + use mpi_f08 #endif - implicit none ! variable inputed to return diff --git a/src/obsolete/scf_operator.f90 b/src/obsolete/scf_operator.f90 index 57c27b32a..b9dd9ff94 100644 --- a/src/obsolete/scf_operator.f90 +++ b/src/obsolete/scf_operator.f90 @@ -30,9 +30,8 @@ subroutine scf_operator(deltaO) use quick_cutoff_module, only: cshell_density_cutoff use quick_eri_cshell_module, only: getCshellEri, getCshellEriEnergy #ifdef MPIV - use mpi + use mpi_f08 #endif - implicit none ! double precision oneElecO(nbasis,nbasis) @@ -268,7 +267,7 @@ subroutine get_xc use xc_f90_types_m use xc_f90_lib_m #ifdef MPIV - use mpi + use mpi_f08 #endif implicit none diff --git a/src/quick_api_test.f90 b/src/quick_api_test.f90 index 3eb0f6486..7cf66adf7 100644 --- a/src/quick_api_test.f90 +++ b/src/quick_api_test.f90 @@ -21,9 +21,8 @@ program test_quick_api use quick_api_module, only : setQuickMPI #endif #ifdef MPIV - use mpi + use mpi_f08 #endif - implicit none ! i, j are some integers useful for loops, frames is the number of