From 340a6ddea14e790301b3f43a43033a2be102bbdd Mon Sep 17 00:00:00 2001 From: "Anders S. Christensen" Date: Tue, 21 May 2019 10:00:23 +0200 Subject: [PATCH] Removed all f-code requiring omp_lib from FCHL code --- qml/fchl/ffchl_electric_field_kernels.f90 | 61 +-------- qml/fchl/ffchl_force_kernels.f90 | 150 ---------------------- qml/fchl/ffchl_module.f90 | 122 ------------------ qml/fchl/ffchl_scalar_kernels.f90 | 109 +--------------- 4 files changed, 2 insertions(+), 440 deletions(-) diff --git a/qml/fchl/ffchl_electric_field_kernels.f90 b/qml/fchl/ffchl_electric_field_kernels.f90 index 72d3794d3..83c747424 100644 --- a/qml/fchl/ffchl_electric_field_kernels.f90 +++ b/qml/fchl/ffchl_electric_field_kernels.f90 @@ -8,8 +8,6 @@ subroutine fget_ef_gaussian_process_kernels_fchl(x1, x2, verbose, f1, f2, n1, n2 use ffchl_kernels, only: kernel - use omp_lib, only: omp_get_wtime - implicit none ! fchl descriptors for the training set, format (i,maxatoms,5,maxneighbors) @@ -121,11 +119,7 @@ subroutine fget_ef_gaussian_process_kernels_fchl(x1, x2, verbose, f1, f2, n1, n2 ! Max number of neighbors integer :: maxneigh1 integer :: maxneigh2 - - ! Variables to calculate time - double precision :: t_start, t_end - if (verbose) write (*,*) "CLEARING KERNEL MEM" kernels(:,:,:) = 0.0d0 ! Get max number of neighbors @@ -229,9 +223,6 @@ subroutine fget_ef_gaussian_process_kernels_fchl(x1, x2, verbose, f1, f2, n1, n2 enddo enddo - t_start = omp_get_wtime() - if (verbose) write (*,"(A)", advance="no") "KERNEL WITH FIELDS" - !$OMP PARALLEL DO schedule(dynamic) PRIVATE(s12,ni,nj) do a = 1, nm1 ni = n1(a) @@ -258,12 +249,6 @@ subroutine fget_ef_gaussian_process_kernels_fchl(x1, x2, verbose, f1, f2, n1, n2 enddo !$OMP END PARALLEL DO - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - - t_start = omp_get_wtime() - if (verbose) write (*,"(A)", advance="no") "KERNEL EF DERIVATIVE 1/2" - !$OMP PARALLEL DO schedule(dynamic) PRIVATE(s12,ni,nj,idx_a,idx_b) do a = 1, nm1 ni = n1(a) @@ -310,11 +295,6 @@ subroutine fget_ef_gaussian_process_kernels_fchl(x1, x2, verbose, f1, f2, n1, n2 enddo !$OMP END PARALLEL DO - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - - t_start = omp_get_wtime() - if (verbose) write (*,"(A)", advance="no") "KERNEL EF DERIVATIVE 2/2" !$OMP PARALLEL DO schedule(dynamic) PRIVATE(s12,ni,nj,idx_a,idx_b) do a = 1, nm2 @@ -364,12 +344,6 @@ subroutine fget_ef_gaussian_process_kernels_fchl(x1, x2, verbose, f1, f2, n1, n2 enddo !$OMP END PARALLEL DO - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - - t_start = omp_get_wtime() - if (verbose) write (*,"(A)", advance="no") "KERNEL EF HESSIAN " - ! should be zero? !$OMP PARALLEL DO schedule(dynamic) PRIVATE(s12,ni,nj,idx_a,idx_b) @@ -419,9 +393,6 @@ subroutine fget_ef_gaussian_process_kernels_fchl(x1, x2, verbose, f1, f2, n1, n2 enddo !$OMP END PARALLEL DO - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - deallocate(self_scalar1) deallocate(self_scalar1_ef) deallocate(ksi1) @@ -444,8 +415,6 @@ subroutine fget_ef_atomic_local_kernels_fchl(x1, x2, verbose, f2, n1, n2, nneigh use ffchl_kernels, only: kernel - use omp_lib, only: omp_get_wtime - implicit none ! fchl descriptors for the training set, format (i,maxatoms,5,maxneighbors) @@ -545,11 +514,7 @@ subroutine fget_ef_atomic_local_kernels_fchl(x1, x2, verbose, f2, n1, n2, nneigh ! Max number of neighbors integer :: maxneigh1 integer :: maxneigh2 - - ! Variables to calculate time - double precision :: t_start, t_end - - if (verbose) write (*,*) "CLEARING KERNEL MEM" + kernels(:,:,:) = 0.0d0 ! Get max number of neighbors @@ -594,17 +559,8 @@ subroutine fget_ef_atomic_local_kernels_fchl(x1, x2, verbose, f2, n1, n2, nneigh self_scalar2 = get_selfscalar(x2, nm2, n2, nneigh2, ksi2, sinp2, cosp2, t_width, d_width, & & cut_distance, order, pd, ang_norm2,distance_scale, angular_scale, alchemy, verbose) - kernels(:,:,:) = 0.0d0 - - ! write (*,*) nm1, nm2, na1 - ! write (*,*) size(kernels,dim=1), size(kernels,dim=2), size(kernels,dim=3) - - - t_start = omp_get_wtime() - if (verbose) write (*,"(A)", advance="no") "KERNEL" - !$OMP PARALLEL DO schedule(dynamic) PRIVATE(ni,nj,idx1,s12) do a = 1, nm1 ni = n1(a) @@ -634,9 +590,6 @@ subroutine fget_ef_atomic_local_kernels_fchl(x1, x2, verbose, f2, n1, n2, nneigh enddo !$OMP END PARALLEL DO - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - deallocate(self_scalar1) deallocate(self_scalar2) deallocate(ksi1) @@ -658,8 +611,6 @@ subroutine fget_ef_atomic_local_gradient_kernels_fchl(x1, x2, verbose, n1, n2, n use ffchl_kernels, only: kernel - use omp_lib, only: omp_get_wtime - implicit none ! fchl descriptors for the training set, format (i,maxatoms,5,maxneighbors) @@ -761,10 +712,6 @@ subroutine fget_ef_atomic_local_gradient_kernels_fchl(x1, x2, verbose, n1, n2, n integer :: maxneigh1 integer :: maxneigh2 - ! Variables to calculate time - double precision :: t_start, t_end - - if (verbose) write (*,*) "CLEARING KERNEL MEM" kernels(:,:,:) = 0.0d0 ! Get max number of neighbors @@ -821,9 +768,6 @@ subroutine fget_ef_atomic_local_gradient_kernels_fchl(x1, x2, verbose, n1, n2, n enddo enddo - t_start = omp_get_wtime() - if (verbose) write (*,"(A)", advance="no") "KERNEL EF DERIVATIVE" - !$OMP PARALLEL DO schedule(dynamic) PRIVATE(s12,ni,nj,idx_a,idx_b) do a = 1, nm1 @@ -873,9 +817,6 @@ subroutine fget_ef_atomic_local_gradient_kernels_fchl(x1, x2, verbose, n1, n2, n kernels = kernels / (2 * df) - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - deallocate(self_scalar1) deallocate(self_scalar2_ef) deallocate(ksi1) diff --git a/qml/fchl/ffchl_force_kernels.f90 b/qml/fchl/ffchl_force_kernels.f90 index f99a10018..1d2b60644 100644 --- a/qml/fchl/ffchl_force_kernels.f90 +++ b/qml/fchl/ffchl_force_kernels.f90 @@ -10,8 +10,6 @@ subroutine fget_gaussian_process_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, use ffchl_kernels, only: kernel - use omp_lib, only: omp_get_wtime - implicit none ! fchl descriptors for the training set, format (nm1,maxatoms,5,maxneighbors) @@ -120,13 +118,9 @@ subroutine fget_gaussian_process_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, integer :: maxneigh1 integer :: maxneigh2 - ! Variables to calculate time - double precision :: t_start, t_end - ! Angular normalization constant ang_norm2 = get_angular_norm2(t_width) - if (verbose) write (*,*) "CLEARING KERNEL MEM" kernels = 0.0d0 ! Max number of neighbors in the representations @@ -165,9 +159,6 @@ subroutine fget_gaussian_process_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, self_scalar2 = get_selfscalar_displaced(x2, nm2, n2, nneigh2, ksi2, sinp2, cosp2, t_width, & & d_width, cut_distance, order, pd, ang_norm2,distance_scale, angular_scale, alchemy, verbose) - t_start = omp_get_wtime() - if (verbose) write (*,"(A)", advance="no") "KERNEL" - !$OMP PARALLEL DO schedule(dynamic) PRIVATE(na,nb,s12) do a = 1, nm1 na = n1(a) @@ -195,11 +186,6 @@ subroutine fget_gaussian_process_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, enddo !$OMP END PARALLEL do - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - - t_start = omp_get_wtime() - if (verbose) write (*,"(A)", advance="no") "KERNEL GRADIENT" !$OMP PARALLEL DO schedule(dynamic) PRIVATE(na,nb,xyz_pm2,s12),& !$OMP& PRIVATE(idx1,idx2) do a = 1, nm1 @@ -254,12 +240,6 @@ subroutine fget_gaussian_process_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, kernels(:,:nm1,nm1+1:) = kernels(:,:nm1,nm1+1:) / (2 * dx) kernels(:,nm1+1:,:nm1) = kernels(:,nm1+1:,:nm1) / (2 * dx) - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - - t_start = omp_get_wtime() - if (verbose) write (*,"(A)", advance="no") "KERNEL HESSIAN" - !$OMP PARALLEL DO schedule(dynamic) PRIVATE(na,nb,xyz_pm1,xyz_pm2,s12),& !$OMP& PRIVATE(idx1,idx2) do a = 1, nm1 @@ -329,9 +309,6 @@ subroutine fget_gaussian_process_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, kernels(:,nm1+1:,nm1+1:) = kernels(:,nm1+1:,nm1+1:) / (4 * dx**2) - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - end subroutine fget_gaussian_process_kernels_fchl @@ -347,8 +324,6 @@ subroutine fget_local_gradient_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, nn use ffchl_kernels, only: kernel - use omp_lib, only: omp_get_wtime - implicit none ! fchl descriptors for the training set, format (nm1,maxatoms,5,maxneighbors) @@ -454,12 +429,6 @@ subroutine fget_local_gradient_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, nn integer :: maxneigh1 integer :: maxneigh2 - ! Variables to calculate time - double precision :: t_start, t_end - - if (verbose) write (*,*) "INIT, dx =", dx - - if (verbose) write (*,*) "CLEARING KERNEL MEM" kernels = 0.0d0 ! Angular normalization constant @@ -501,9 +470,6 @@ subroutine fget_local_gradient_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, nn self_scalar2 = get_selfscalar_displaced(x2, nm2, n2, nneigh2, ksi2, sinp2, cosp2, t_width, & & d_width, cut_distance, order, pd, ang_norm2,distance_scale, angular_scale, alchemy, verbose) - t_start = omp_get_wtime() - if (verbose) write (*,"(A)", advance="no") "KERNEL GRADIENT" - !$OMP PARALLEL DO schedule(dynamic) PRIVATE(na,nb,xyz_pm2,s12),& !$OMP& PRIVATE(idx1,idx2) do a = 1, nm1 @@ -551,9 +517,6 @@ subroutine fget_local_gradient_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, nn kernels = kernels / (2 * dx) - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - end subroutine fget_local_gradient_kernels_fchl @@ -567,8 +530,6 @@ subroutine fget_local_hessian_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, nne & get_pmax_displaced, get_ksi_displaced, init_cosp_sinp_displaced, get_selfscalar_displaced use ffchl_kernels, only: kernel - - use omp_lib, only: omp_get_wtime implicit none @@ -676,15 +637,9 @@ subroutine fget_local_hessian_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, nne integer :: maxneigh1 integer :: maxneigh2 - ! Variables to calculate time - double precision :: t_start, t_end - ! Angular normalization constant ang_norm2 = get_angular_norm2(t_width) - if (verbose) write (*,*) "INIT, dx =", dx - - if (verbose) write (*,*) "CLEARING KERNEL MEM" kernels = 0.0d0 ! Max number of neighbors in the representations @@ -723,9 +678,6 @@ subroutine fget_local_hessian_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, nne self_scalar2 = get_selfscalar_displaced(x2, nm2, n2, nneigh2, ksi2, sinp2, cosp2, t_width, & & d_width, cut_distance, order, pd, ang_norm2,distance_scale, angular_scale, alchemy, verbose) - t_start = omp_get_wtime() - if (verbose) write (*,"(A)", advance="no") "KERNEL HESSIAN" - !$OMP PARALLEL DO schedule(dynamic) PRIVATE(na,nb,xyz_pm1,xyz_pm2,s12),& !$OMP& PRIVATE(idx1,idx2) do a = 1, nm1 @@ -783,9 +735,6 @@ subroutine fget_local_hessian_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, nne kernels = kernels / (4 * dx**2) - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - end subroutine fget_local_hessian_kernels_fchl @@ -799,8 +748,6 @@ subroutine fget_local_symmetric_hessian_kernels_fchl(x1, verbose, n1, nneigh1, & & get_pmax_displaced, get_ksi_displaced, init_cosp_sinp_displaced, get_selfscalar_displaced use ffchl_kernels, only: kernel - - use omp_lib, only: omp_get_wtime implicit none @@ -896,15 +843,9 @@ subroutine fget_local_symmetric_hessian_kernels_fchl(x1, verbose, n1, nneigh1, & ! Max number of neighbors integer :: maxneigh1 - ! Variables to calculate time - double precision :: t_start, t_end - ! Angular normalization constant ang_norm2 = get_angular_norm2(t_width) - if (verbose) write (*,*) "INIT, dx =", dx - - if (verbose) write (*,*) "CLEARING KERNEL MEM" kernels = 0.0d0 ! Max number of neighbors @@ -928,9 +869,6 @@ subroutine fget_local_symmetric_hessian_kernels_fchl(x1, verbose, n1, nneigh1, & self_scalar1 = get_selfscalar_displaced(x1, nm1, n1, nneigh1, ksi1, sinp1, cosp1, t_width,& & d_width, cut_distance, order, pd, ang_norm2,distance_scale, angular_scale, alchemy, verbose) - t_start = omp_get_wtime() - if (verbose) write (*,"(A)", advance="no") "KERNEL HESSIAN" - !$OMP PARALLEL DO schedule(dynamic) PRIVATE(na,nb,xyz_pm1,xyz_pm2,s12),& !$OMP& PRIVATE(idx1,idx2) do a = 1, nm1 @@ -998,9 +936,6 @@ subroutine fget_local_symmetric_hessian_kernels_fchl(x1, verbose, n1, nneigh1, & kernels = kernels / (4 * dx**2) - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - end subroutine fget_local_symmetric_hessian_kernels_fchl @@ -1015,8 +950,6 @@ subroutine fget_force_alphas_fchl(x1, x2, verbose, forces, energies, n1, n2, & & get_pmax_displaced, get_ksi_displaced, init_cosp_sinp_displaced, get_selfscalar_displaced use ffchl_kernels, only: kernel - - use omp_lib, only: omp_get_wtime implicit none @@ -1143,9 +1076,6 @@ subroutine fget_force_alphas_fchl(x1, x2, verbose, forces, energies, n1, n2, & ! Scratch space for products of the kernel derivatives double precision, allocatable, dimension(:,:,:) :: kernel_scratch - ! Variables to calculate time - double precision :: t_start, t_end - ! Kernel between molecules and atom double precision, allocatable, dimension(:,:,:) :: kernel_ma @@ -1154,8 +1084,6 @@ subroutine fget_force_alphas_fchl(x1, x2, verbose, forces, energies, n1, n2, & ! Angular normalization constant ang_norm2 = get_angular_norm2(t_width) - if (verbose) write (*,*) "INIT, DX =", dx - ! Max number of neighbors in the representations maxneigh1 = maxval(nneigh1) maxneigh2 = maxval(nneigh2) @@ -1193,8 +1121,6 @@ subroutine fget_force_alphas_fchl(x1, x2, verbose, forces, energies, n1, n2, & & d_width, cut_distance, order, pd, ang_norm2,distance_scale, angular_scale, alchemy, verbose) - if (verbose) write (*,*) "CLEARING KERNEL MEM" - allocate(kernel_delta(na1,na1,nsigmas)) allocate(y(na1,nsigmas)) y = 0.0d0 @@ -1205,9 +1131,6 @@ subroutine fget_force_alphas_fchl(x1, x2, verbose, forces, energies, n1, n2, & ! Calculate kernel derivatives and add to kernel matrix do xyz2 = 1, 3 - if (verbose) write (*,"(A,I3,A)", advance="no") "KERNEL GRADIENT", xyz2, " / 3" - t_start = omp_get_wtime() - kernel_delta = 0.0d0 !$OMP PARALLEL DO schedule(dynamic) PRIVATE(na,nb,xyz_pm2,s12), & @@ -1258,13 +1181,7 @@ subroutine fget_force_alphas_fchl(x1, x2, verbose, forces, energies, n1, n2, & enddo !$OMP END PARALLEL do - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - do k = 1, nsigmas - - if (verbose) write (*,"(A,I12)", advance="no") " DSYRK() sigma =", k - t_start = omp_get_wtime() call dsyrk("U", "N", na1, na1, 1.0d0, kernel_delta(1,1,k), na1, & & 1.0d0, kernel_scratch(1,1,k), na1) @@ -1272,20 +1189,11 @@ subroutine fget_force_alphas_fchl(x1, x2, verbose, forces, energies, n1, n2, & ! kernel_scratch(:,:,k) = kernel_scratch(:,:,k) & ! & + matmul(kernel_delta(:,:,k),transpose(kernel_delta(:,:,k)))! * inv_2dx*inv_2dx - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - - if (verbose) write (*,"(A,I12)", advance="no") " DGEMV() sigma =", k - t_start = omp_get_wtime() - call dgemv("N", na1, na1, 1.0d0, kernel_delta(:,:,k), na1, & & forces(:,xyz2), 1, 1.0d0, y(:,k), 1) ! y(:,k) = y(:,k) + matmul(kernel_delta(:,:,k), forces(:,xyz2))!* inv_2dx - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - enddo enddo @@ -1299,8 +1207,6 @@ subroutine fget_force_alphas_fchl(x1, x2, verbose, forces, energies, n1, n2, & allocate(kernel_MA(nm1,na1,nsigmas)) kernel_MA = 0.0d0 - if (verbose) write (*,"(A)", advance="no") "KERNEL" - !$OMP PARALLEL DO schedule(dynamic) PRIVATE(ni,nj,idx1,s12,idx1_start) do a = 1, nm1 ni = n1(a) @@ -1331,9 +1237,6 @@ subroutine fget_force_alphas_fchl(x1, x2, verbose, forces, energies, n1, n2, & enddo !$OMP END PARALLEL DO - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - deallocate(self_scalar1) deallocate(ksi1) deallocate(cosp1) @@ -1346,23 +1249,11 @@ subroutine fget_force_alphas_fchl(x1, x2, verbose, forces, energies, n1, n2, & ! y(:,k) = y(:,k) + matmul(transpose(kernel_MA(:,:,k)), energies(:)) - if (verbose) write (*,"(A,I12)", advance="no") " DSYRK() sigma =", k - t_start = omp_get_wtime() - call dsyrk("U", "T", na1, nm1, 1.0d0, kernel_MA(:,:,k), nm1, & & 1.0d0, kernel_scratch(:,:,k), na1) - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - - if (verbose) write (*,"(A,I12)", advance="no") " DGEMV() sigma =", k - t_start = omp_get_wtime() - call dgemv("T", nm1, na1, 1.0d0, kernel_ma(:,:,k), nm1, & & energies(:), 1, 1.0d0, y(:,k), 1) - - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" enddo @@ -1378,12 +1269,8 @@ subroutine fget_force_alphas_fchl(x1, x2, verbose, forces, energies, n1, n2, & alphas = 0.0d0 ! Solve alphas - if (verbose) write (*,"(A)") "CHOLESKY DECOMPOSITION" do k = 1, nsigmas - if (verbose) write (*,"(A,I12)", advance="no") " DPOTRF() sigma =", k - t_start = omp_get_wtime() - call dpotrf("U", na1, kernel_scratch(:,:,k), na1, info) if (info > 0) then write (*,*) "QML WARNING: Error in LAPACK Cholesky decomposition DPOTRF()." @@ -1393,21 +1280,12 @@ subroutine fget_force_alphas_fchl(x1, x2, verbose, forces, energies, n1, n2, & write (*,*) "QML WARNING: The", -info, "-th argument had an illegal value." endif - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - - if (verbose) write (*,"(A,I12)", advance="no") " DPOTRS() sigma =", k - t_start = omp_get_wtime() - call dpotrs("U", na1, 1, kernel_scratch(:,:,k), na1, y(:,k), na1, info) if (info < 0) then write (*,*) "QML WARNING: Error in LAPACK Cholesky solver DPOTRS()." write (*,*) "QML WARNING: The", -info, "-th argument had an illegal value." endif - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - alphas(k,:) = y(:,k) enddo @@ -1429,8 +1307,6 @@ subroutine fget_atomic_local_gradient_kernels_fchl(x1, x2, verbose, n1, n2, nnei use ffchl_kernels, only: kernel - use omp_lib, only: omp_get_wtime - implicit none ! fchl descriptors for the training set, format (nm1,3,2,maxatoms,maxatoms,5,maxneighbors) @@ -1537,12 +1413,6 @@ subroutine fget_atomic_local_gradient_kernels_fchl(x1, x2, verbose, n1, n2, nnei integer :: maxneigh1 integer :: maxneigh2 - ! Variables to calculate time - double precision :: t_start, t_end - - if (verbose) write (*,*) "INIT, dx =", dx - - if (verbose) write (*,*) "CLEARING KERNEL MEM" kernels = 0.0d0 ! Angular normalization constant @@ -1584,9 +1454,6 @@ subroutine fget_atomic_local_gradient_kernels_fchl(x1, x2, verbose, n1, n2, nnei self_scalar2 = get_selfscalar_displaced(x2, nm2, n2, nneigh2, ksi2, sinp2, cosp2, t_width, & & d_width, cut_distance, order, pd, ang_norm2,distance_scale, angular_scale, alchemy, verbose) - t_start = omp_get_wtime() - if (verbose) write (*,"(A)", advance="no") "KERNEL GRADIENT" - !$OMP PARALLEL DO schedule(dynamic) PRIVATE(na,nb,xyz_pm2,s12),& !$OMP& PRIVATE(idx1,idx2,idx1_start,idx1_end,idx2_start,idx2_end) do a = 1, nm1 @@ -1644,9 +1511,6 @@ subroutine fget_atomic_local_gradient_kernels_fchl(x1, x2, verbose, n1, n2, nnei kernels = kernels / (2 * dx) - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - end subroutine fget_atomic_local_gradient_kernels_fchl @@ -1662,8 +1526,6 @@ subroutine fget_atomic_local_gradient_5point_kernels_fchl(x1, x2, verbose, n1, n use ffchl_kernels, only: kernel - use omp_lib, only: omp_get_wtime - implicit none ! fchl descriptors for the training set, format (nm1,3,2,maxatoms,maxatoms,5,maxneighbors) @@ -1770,9 +1632,6 @@ subroutine fget_atomic_local_gradient_5point_kernels_fchl(x1, x2, verbose, n1, n integer :: maxneigh1 integer :: maxneigh2 - ! Variables to calculate time - double precision :: t_start, t_end - ! For numerical differentiation double precision, parameter, dimension(5) :: fact = (/ 1.0d0, -8.0d0, 0.0d0, 8.0d0, -1.0d0/) @@ -1782,9 +1641,6 @@ subroutine fget_atomic_local_gradient_5point_kernels_fchl(x1, x2, verbose, n1, n ! fact(4) = 8.0d0 ! fact(5) = -1.0d0 - if (verbose) write (*,*) "INIT, dx =", dx - - if (verbose) write (*,*) "CLEARING KERNEL MEM" kernels = 0.0d0 ! Angular normalization constant @@ -1826,9 +1682,6 @@ subroutine fget_atomic_local_gradient_5point_kernels_fchl(x1, x2, verbose, n1, n self_scalar2 = get_selfscalar_displaced(x2, nm2, n2, nneigh2, ksi2, sinp2, cosp2, t_width, & & d_width, cut_distance, order, pd, ang_norm2,distance_scale, angular_scale, alchemy, verbose) - t_start = omp_get_wtime() - if (verbose) write (*,"(A)", advance="no") "KERNEL GRADIENT" - !$OMP PARALLEL DO schedule(dynamic) PRIVATE(na,nb,xyz_pm2,s12),& !$OMP& PRIVATE(idx1,idx2,idx1_start,idx1_end,idx2_start,idx2_end) do a = 1, nm1 @@ -1885,7 +1738,4 @@ subroutine fget_atomic_local_gradient_5point_kernels_fchl(x1, x2, verbose, n1, n kernels = kernels / (12 * dx) - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - end subroutine fget_atomic_local_gradient_5point_kernels_fchl diff --git a/qml/fchl/ffchl_module.f90 b/qml/fchl/ffchl_module.f90 index add6c7278..17d9721d4 100644 --- a/qml/fchl/ffchl_module.f90 +++ b/qml/fchl/ffchl_module.f90 @@ -718,8 +718,6 @@ end function scalar_alchemy function get_ksi(x, na, nneigh, two_body_power, cut_start, cut_distance, verbose) result(ksi) - use omp_lib, only: omp_get_wtime - implicit none ! FCHL descriptors for the training set, format (i,maxatoms,5,maxneighbors) @@ -747,9 +745,6 @@ function get_ksi(x, na, nneigh, two_body_power, cut_start, cut_distance, verbose ! Internal counters integer :: maxneigh, maxatoms, nm, a, ni, i - double precision :: t_start, t_end - - maxneigh = maxval(nneigh) maxatoms = maxval(na) nm = size(x, dim=1) @@ -757,9 +752,6 @@ function get_ksi(x, na, nneigh, two_body_power, cut_start, cut_distance, verbose allocate(ksi(nm, maxatoms, maxneigh)) ksi = 0.0d0 - - if (verbose) write (*,"(A)", advance="no") "TWO-BODY TERMS" - t_start = omp_get_wtime() !$OMP PARALLEL DO PRIVATE(ni) do a = 1, nm @@ -770,17 +762,12 @@ function get_ksi(x, na, nneigh, two_body_power, cut_start, cut_distance, verbose enddo enddo !$OMP END PARALLEL do - - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" end function get_ksi function get_ksi_displaced(x, na, nneigh, two_body_power, cut_start, cut_distance, verbose) result(ksi) - use omp_lib, only: omp_get_wtime - implicit none ! FCHL descriptors for the training set, format (i,maxatoms,5,maxneighbors) @@ -807,11 +794,6 @@ function get_ksi_displaced(x, na, nneigh, two_body_power, cut_start, cut_distanc ! Internal counters integer :: maxneigh, maxatoms, nm, a, ni, i, j, pm, xyz, ndisp - - double precision :: t_start, t_end - - if (verbose) write (*,"(A)", advance="no") "TWO-BODY GRADIENT" - t_start = omp_get_wtime() maxneigh = maxval(nneigh) maxatoms = maxval(na) @@ -838,17 +820,12 @@ function get_ksi_displaced(x, na, nneigh, two_body_power, cut_start, cut_distanc enddo enddo !$OMP END PARALLEL do - - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" end function get_ksi_displaced function get_ksi_atomic(x, na, nneigh, two_body_power, cut_start, cut_distance, verbose) result(ksi) - use omp_lib, only: omp_get_wtime - implicit none ! FCHL descriptors for the training set, format (i,maxatoms,5,maxneighbors) @@ -875,8 +852,6 @@ function get_ksi_atomic(x, na, nneigh, two_body_power, cut_start, cut_distance, ! Internal counters integer :: maxneigh, nm, i - - double precision :: t_start, t_end maxneigh = maxval(nneigh) nm = size(x, dim=1) @@ -884,9 +859,6 @@ function get_ksi_atomic(x, na, nneigh, two_body_power, cut_start, cut_distance, allocate(ksi(na, maxneigh)) ksi = 0.0d0 - - if (verbose) write (*,"(A)", advance="no") "TWO-BODY TERMS" - t_start = omp_get_wtime() !$OMP PARALLEL DO do i = 1, na @@ -895,16 +867,11 @@ function get_ksi_atomic(x, na, nneigh, two_body_power, cut_start, cut_distance, enddo !$OMP END PARALLEL do - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - end function get_ksi_atomic subroutine init_cosp_sinp(x, na, nneigh, three_body_power, order, cut_start, cut_distance, cosp, sinp, verbose) - use omp_lib, only: omp_get_wtime - implicit none ! FCHL descriptors for the training set, format (i,maxatoms,5,maxneighbors) @@ -936,8 +903,6 @@ subroutine init_cosp_sinp(x, na, nneigh, three_body_power, order, cut_start, cut integer :: maxneigh, maxatoms, pmax, nm, a, ni, i double precision, allocatable, dimension(:,:,:,:) :: fourier - - double precision :: t_start, t_end maxneigh = maxval(nneigh) @@ -948,9 +913,6 @@ subroutine init_cosp_sinp(x, na, nneigh, three_body_power, order, cut_start, cut cosp = 0.0d0 sinp = 0.0d0 - - if (verbose) write (*,"(A)", advance="no") "THREE-BODY TERMS" - t_start = omp_get_wtime() !$OMP PARALLEL DO PRIVATE(ni, fourier) schedule(dynamic) do a = 1, nm @@ -967,16 +929,11 @@ subroutine init_cosp_sinp(x, na, nneigh, three_body_power, order, cut_start, cut enddo !$OMP END PARALLEL DO - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - end subroutine init_cosp_sinp subroutine init_cosp_sinp_displaced(x, na, nneigh, three_body_power, order, cut_start, cut_distance, cosp, sinp, verbose) - use omp_lib, only: omp_get_wtime - implicit none ! FCHL descriptors for the training set, format (i,maxatoms,5,maxneighbors) @@ -1008,14 +965,8 @@ subroutine init_cosp_sinp_displaced(x, na, nneigh, three_body_power, order, cut_ integer :: maxneigh, maxatoms, pmax, nm, a, ni, i, j, xyz, pm, xyz_pm double precision, allocatable, dimension(:,:,:,:) :: fourier - - double precision :: t_start, t_end integer :: ndisp - - - if (verbose) write (*,"(A)", advance="no") "THREE-BODY GRADIENT" - t_start = omp_get_wtime() maxneigh = maxval(nneigh) maxatoms = maxval(na) @@ -1053,16 +1004,11 @@ subroutine init_cosp_sinp_displaced(x, na, nneigh, three_body_power, order, cut_ enddo !$OMP END PARALLEL do - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - end subroutine init_cosp_sinp_displaced subroutine init_cosp_sinp_atomic(x, na, nneigh, three_body_power, order, cut_start, cut_distance, cosp, sinp, verbose) - use omp_lib, only: omp_get_wtime - implicit none ! FCHL descriptors for the training set, format (i,maxatoms,5,maxneighbors) @@ -1097,8 +1043,6 @@ subroutine init_cosp_sinp_atomic(x, na, nneigh, three_body_power, order, cut_sta ! Internal temporary variable double precision, allocatable, dimension(:,:,:,:) :: fourier - double precision :: t_start, t_end - maxneigh = maxval(nneigh) nm = size(x, dim=1) @@ -1106,9 +1050,6 @@ subroutine init_cosp_sinp_atomic(x, na, nneigh, three_body_power, order, cut_sta cosp = 0.0d0 sinp = 0.0d0 - - if (verbose) write (*,"(A)", advance="no") "THREE-BODY TERMS" - t_start = omp_get_wtime() !$OMP PARALLEL DO PRIVATE(fourier) do i = 1, na @@ -1122,17 +1063,12 @@ subroutine init_cosp_sinp_atomic(x, na, nneigh, three_body_power, order, cut_sta enddo !$OMP END PARALLEL DO - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - end subroutine init_cosp_sinp_atomic function get_selfscalar(x, nm, na, nneigh, ksi, sinp, cosp, t_width, d_width, & & cut_distance, order, pd, ang_norm2,distance_scale, angular_scale, alchemy, verbose) result(self_scalar) - use omp_lib, only: omp_get_wtime - implicit none ! FCHL descriptors for the training set, format (i,maxatoms,5,maxneighbors) @@ -1186,11 +1122,6 @@ function get_selfscalar(x, nm, na, nneigh, ksi, sinp, cosp, t_width, d_width, & ! Internal counters integer :: a, ni, i - double precision :: t_start, t_end - - if (verbose) write (*,"(A)", advance="no") "SELF-SCALAR TERMS" - t_start = omp_get_wtime() - allocate(self_scalar(nm, maxval(na))) !$OMP PARALLEL DO PRIVATE(ni) @@ -1207,17 +1138,12 @@ function get_selfscalar(x, nm, na, nneigh, ksi, sinp, cosp, t_width, d_width, & enddo !$OMP END PARALLEL DO - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - end function get_selfscalar function get_selfscalar_displaced(x, nm, na, nneigh, ksi, sinp, cosp, t_width, d_width, & & cut_distance, order, pd, ang_norm2,distance_scale, angular_scale, alchemy, verbose) result(self_scalar) - use omp_lib, only: omp_get_wtime - implicit none ! FCHL descriptors for the training set, format (i,maxatoms,5,maxneighbors) @@ -1270,11 +1196,6 @@ function get_selfscalar_displaced(x, nm, na, nneigh, ksi, sinp, cosp, t_width, d ! Internal counters integer :: a, ni, i, j, pm, xyz, xyz_pm, ndisp - - double precision :: t_start, t_end - - if (verbose) write (*,"(A)", advance="no") "SELF-SCALAR GRADIENT" - t_start = omp_get_wtime() ndisp = size(x, dim=3) allocate(self_scalar(nm, 3, ndisp, maxval(na), maxval(na))) @@ -1305,17 +1226,12 @@ function get_selfscalar_displaced(x, nm, na, nneigh, ksi, sinp, cosp, t_width, d enddo !$OMP END PARALLEL do - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - end function get_selfscalar_displaced function get_ksi_ef(x, na, nneigh, two_body_power, cut_start, cut_distance, ef_scale, df, verbose) result(ksi) - use omp_lib, only: omp_get_wtime - implicit none ! FCHL descriptors for the training set, format (i,maxatoms,5,maxneighbors) @@ -1349,11 +1265,6 @@ function get_ksi_ef(x, na, nneigh, two_body_power, cut_start, cut_distance, ef_s ! Electric field double precision, dimension(3) :: field - - double precision :: t_start, t_end - - if (verbose) write (*,"(A)", advance="no") "TWO-BODY TERMS" - t_start = omp_get_wtime() maxneigh = maxval(nneigh) maxatoms = maxval(na) @@ -1385,16 +1296,11 @@ function get_ksi_ef(x, na, nneigh, two_body_power, cut_start, cut_distance, ef_s enddo !$OMP END PARALLEL do - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - end function get_ksi_ef function get_ksi_ef_field(x, na, nneigh, two_body_power, cut_start, cut_distance, fields, ef_scale, verbose) result(ksi) - use omp_lib, only: omp_get_wtime - implicit none ! FCHL descriptors for the training set, format (i,maxatoms,5,maxneighbors) @@ -1425,16 +1331,11 @@ function get_ksi_ef_field(x, na, nneigh, two_body_power, cut_start, cut_distance ! Internal counters integer :: maxneigh, maxatoms, nm, a, ni, i - double precision :: t_start, t_end - double precision, intent(in) :: ef_scale ! Electric field displacement ! double precision, intent(in) :: df - if (verbose) write (*,"(A)", advance="no") "TWO-BODY TERMS" - t_start = omp_get_wtime() - maxneigh = maxval(nneigh) maxatoms = maxval(na) nm = size(x, dim=1) @@ -1456,16 +1357,11 @@ function get_ksi_ef_field(x, na, nneigh, two_body_power, cut_start, cut_distance enddo !$OMP END PARALLEL do - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - end function get_ksi_ef_field subroutine init_cosp_sinp_ef(x, na, nneigh, three_body_power, order, cut_start, cut_distance, & & cosp, sinp, ef_scale, df, verbose) - use omp_lib, only: omp_get_wtime - implicit none ! FCHL descriptors for the training set, format (i,maxatoms,5,maxneighbors) @@ -1502,17 +1398,12 @@ subroutine init_cosp_sinp_ef(x, na, nneigh, three_body_power, order, cut_start, double precision, allocatable, dimension(:,:,:,:) :: fourier - double precision :: t_start, t_end - ! Internal counters integer :: xyz, pm ! Electric field double precision, dimension(3) :: field - if (verbose) write (*,"(A)", advance="no") "THREE-BODY TERMS" - t_start = omp_get_wtime() - maxneigh = maxval(nneigh) maxatoms = maxval(na) nm = size(x, dim=1) @@ -1545,17 +1436,12 @@ subroutine init_cosp_sinp_ef(x, na, nneigh, three_body_power, order, cut_start, enddo !$OMP END PARALLEL DO - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - end subroutine init_cosp_sinp_ef subroutine init_cosp_sinp_ef_field(x, na, nneigh, three_body_power, & & order, cut_start, cut_distance, cosp, sinp, fields, ef_scale, verbose) - use omp_lib, only: omp_get_wtime - implicit none ! FCHL descriptors for the training set, format (i,maxatoms,5,maxneighbors) @@ -1595,11 +1481,6 @@ subroutine init_cosp_sinp_ef_field(x, na, nneigh, three_body_power, & double precision, allocatable, dimension(:,:,:,:) :: fourier - double precision :: t_start, t_end - - if (verbose) write (*,"(A)", advance="no") "THREE-BODY TERMS" - t_start = omp_get_wtime() - maxneigh = maxval(nneigh) maxatoms = maxval(na) nm = size(x, dim=1) @@ -1626,9 +1507,6 @@ subroutine init_cosp_sinp_ef_field(x, na, nneigh, three_body_power, & enddo !$OMP END PARALLEL DO - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - end subroutine init_cosp_sinp_ef_field diff --git a/qml/fchl/ffchl_scalar_kernels.f90 b/qml/fchl/ffchl_scalar_kernels.f90 index cdae58b17..829976744 100644 --- a/qml/fchl/ffchl_scalar_kernels.f90 +++ b/qml/fchl/ffchl_scalar_kernels.f90 @@ -7,8 +7,6 @@ subroutine fget_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, nneigh2, nm1, nm2 use ffchl_kernels, only: kernel - use omp_lib, only: omp_get_wtime - implicit none ! fchl descriptors for the training set, format (i,maxatoms,5,maxneighbors) @@ -99,11 +97,7 @@ subroutine fget_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, nneigh2, nm1, nm2 ! Max number of neighbors integer :: maxneigh1 integer :: maxneigh2 - - ! Variables to calculate time - double precision :: t_start, t_end - if (verbose) write (*,*) "CLEARING KERNEL MEM" kernels(:,:,:) = 0.0d0 ! Get max number of neighbors @@ -144,9 +138,6 @@ subroutine fget_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, nneigh2, nm1, nm2 ! Pre-calculate self-scalar terms self_scalar2 = get_selfscalar(x2, nm2, n2, nneigh2, ksi2, sinp2, cosp2, t_width, d_width, & & cut_distance, order, pd, ang_norm2,distance_scale, angular_scale, alchemy, verbose) - - t_start = omp_get_wtime() - if (verbose) write (*,"(A)", advance="no") "KERNEL" !$OMP PARALLEL DO schedule(dynamic) PRIVATE(s12,ni,nj) do b = 1, nm2 @@ -174,9 +165,6 @@ subroutine fget_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, nneigh2, nm1, nm2 enddo enddo !$OMP END PARALLEL DO - - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" deallocate(self_scalar1) deallocate(self_scalar2) @@ -199,8 +187,6 @@ subroutine fget_symmetric_kernels_fchl(x1, verbose, n1, nneigh1, nm1, nsigmas, & use ffchl_kernels, only: kernel - use omp_lib, only: omp_get_wtime - implicit none ! FCHL descriptors for the training set, format (i,j_1,5,m_1) @@ -261,13 +247,10 @@ subroutine fget_symmetric_kernels_fchl(x1, verbose, n1, nneigh1, nm1, nsigmas, & integer :: pmax1 ! integer :: nneighi - double precision :: t_start, t_end - double precision :: ang_norm2 integer :: maxneigh1 - if (verbose) write (*,*) "CLEARING KERNEL MEM" kernels(:,:,:) = 0.0d0 ang_norm2 = get_angular_norm2(t_width) @@ -286,9 +269,6 @@ subroutine fget_symmetric_kernels_fchl(x1, verbose, n1, nneigh1, nm1, nsigmas, & self_scalar1 = get_selfscalar(x1, nm1, n1, nneigh1, ksi1, sinp1, cosp1, t_width, d_width, & & cut_distance, order, pd, ang_norm2,distance_scale, angular_scale, alchemy, verbose) - t_start = omp_get_wtime() - if (verbose) write (*,"(A)", advance="no") "KERNEL" - !$OMP PARALLEL DO schedule(dynamic) PRIVATE(s12,ni,nj) do b = 1, nm1 nj = n1(b) @@ -317,9 +297,6 @@ subroutine fget_symmetric_kernels_fchl(x1, verbose, n1, nneigh1, nm1, nsigmas, & enddo enddo !$OMP END PARALLEL DO - - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" deallocate(self_scalar1) deallocate(ksi1) @@ -336,8 +313,7 @@ subroutine fget_global_symmetric_kernels_fchl(x1, verbose, n1, nneigh1, nm1, nsi use ffchl_module, only: scalar, get_angular_norm2, get_pmax, get_ksi, init_cosp_sinp use ffchl_kernels, only: kernel - use omp_lib, only: omp_get_wtime - + implicit none ! FCHL descriptors for the training set, format (i,j_1,5,m_1) @@ -401,9 +377,6 @@ subroutine fget_global_symmetric_kernels_fchl(x1, verbose, n1, nneigh1, nm1, nsi double precision :: mol_dist - ! Variables to calculate time - double precision :: t_start, t_end - integer :: maxneigh1 maxneigh1 = maxval(nneigh1) @@ -423,9 +396,6 @@ subroutine fget_global_symmetric_kernels_fchl(x1, verbose, n1, nneigh1, nm1, nsi allocate(self_scalar1(nm1)) self_scalar1 = 0.0d0 - - if (verbose) write (*,"(A)", advance="no") "TWO-BODY TERMS" - t_start = omp_get_wtime() !$OMP PARALLEL DO PRIVATE(ni) REDUCTION(+:self_scalar1) do a = 1, nm1 @@ -444,14 +414,7 @@ subroutine fget_global_symmetric_kernels_fchl(x1, verbose, n1, nneigh1, nm1, nsi enddo !$OMP END PARALLEL DO - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - - if (verbose) write (*,*) "CLEARING KERNEL MEM" kernels(:,:,:) = 0.0d0 - - t_start = omp_get_wtime() - if (verbose) write (*,"(A)", advance="no") "KERNEL" !$OMP PARALLEL DO schedule(dynamic) PRIVATE(s12,ni,nj,mol_dist) do b = 1, nm1 @@ -484,9 +447,6 @@ subroutine fget_global_symmetric_kernels_fchl(x1, verbose, n1, nneigh1, nm1, nsi enddo enddo !$OMP END PARALLEL DO - - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" deallocate(self_scalar1) deallocate(ksi1) @@ -504,7 +464,6 @@ subroutine fget_global_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, nneigh2, & use ffchl_module, only: scalar, get_angular_norm2, get_pmax, get_ksi, init_cosp_sinp use ffchl_kernels, only: kernel - use omp_lib, only: omp_get_wtime implicit none @@ -580,9 +539,6 @@ subroutine fget_global_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, nneigh2, & double precision :: mol_dist - ! Variables to calculate time - double precision :: t_start, t_end - integer :: maxneigh1 integer :: maxneigh2 @@ -617,10 +573,6 @@ subroutine fget_global_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, nneigh2, & self_scalar1 = 0.0d0 self_scalar2 = 0.0d0 - - - if (verbose) write (*,"(A)", advance="no") "TWO-BODY TERMS" - t_start = omp_get_wtime() !$OMP PARALLEL DO PRIVATE(ni) REDUCTION(+:self_scalar1) do a = 1, nm1 @@ -638,13 +590,6 @@ subroutine fget_global_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, nneigh2, & enddo enddo !$OMP END PARALLEL DO - - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - - - if (verbose) write (*,"(A)", advance="no") "TWO-BODY TERMS" - t_start = omp_get_wtime() !$OMP PARALLEL DO PRIVATE(ni) REDUCTION(+:self_scalar2) do a = 1, nm2 @@ -662,15 +607,8 @@ subroutine fget_global_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, nneigh2, & enddo !$OMP END PARALLEL DO - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - - if (verbose) write (*,*) "CLEARING KERNEL MEM" kernels(:,:,:) = 0.0d0 - t_start = omp_get_wtime() - if (verbose) write (*,"(A)", advance="no") "KERNEL" - !$OMP PARALLEL DO schedule(dynamic) PRIVATE(s12,ni,nj,mol_dist) do b = 1, nm2 nj = n2(b) @@ -699,9 +637,6 @@ subroutine fget_global_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, nneigh2, & enddo enddo !$OMP END PARALLEL DO - - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" deallocate(self_scalar1) deallocate(self_scalar2) @@ -726,8 +661,6 @@ subroutine fget_atomic_kernels_fchl(x1, x2, verbose, nneigh1, nneigh2, & use ffchl_kernels, only: kernel - use omp_lib, only: omp_get_wtime - implicit none ! fchl descriptors for the training set, format (i,maxatoms,5,maxneighbors) @@ -791,9 +724,6 @@ subroutine fget_atomic_kernels_fchl(x1, x2, verbose, nneigh1, nneigh2, & integer :: pmax1 integer :: pmax2 double precision :: ang_norm2 - - ! Variables to calculate time - double precision :: t_start, t_end integer :: maxneigh1 integer :: maxneigh2 @@ -850,11 +780,7 @@ subroutine fget_atomic_kernels_fchl(x1, x2, verbose, nneigh1, nneigh2, & enddo !$OMP END PARALLEL DO - if (verbose) write (*,*) "CLEARING KERNEL MEM" kernels(:,:,:) = 0.0d0 - - t_start = omp_get_wtime() - if (verbose) write (*,"(A)", advance="no") "KERNEL" !$OMP PARALLEL DO schedule(dynamic) PRIVATE(s12) do i = 1, na1 @@ -873,9 +799,6 @@ subroutine fget_atomic_kernels_fchl(x1, x2, verbose, nneigh1, nneigh2, & enddo enddo !$OMP END PARALLEL DO - - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" deallocate(self_scalar1) deallocate(self_scalar2) @@ -898,8 +821,6 @@ subroutine fget_atomic_symmetric_kernels_fchl(x1, verbose, nneigh1, na1, nsigmas & get_pmax_atomic, get_ksi_atomic, init_cosp_sinp_atomic use ffchl_kernels, only: kernel - use omp_lib, only: omp_get_wtime - implicit none ! fchl descriptors for the training set, format (i,maxatoms,5,maxneighbors) @@ -956,9 +877,6 @@ subroutine fget_atomic_symmetric_kernels_fchl(x1, verbose, nneigh1, na1, nsigmas integer :: pmax1 double precision :: ang_norm2 - ! Variables to calculate time - double precision :: t_start, t_end - integer :: maxneigh1 maxneigh1 = maxval(nneigh1) @@ -979,9 +897,6 @@ subroutine fget_atomic_symmetric_kernels_fchl(x1, verbose, nneigh1, na1, nsigmas self_scalar1 = 0.0d0 - if (verbose) write (*,"(A)", advance="no") "TWO-BODY TERMS" - t_start = omp_get_wtime() - !$OMP PARALLEL DO do i = 1, na1 self_scalar1(i) = scalar(x1(i,:,:), x1(i,:,:), & @@ -993,15 +908,8 @@ subroutine fget_atomic_symmetric_kernels_fchl(x1, verbose, nneigh1, na1, nsigmas enddo !$OMP END PARALLEL DO - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" - - if (verbose) write (*,*) "CLEARING KERNEL MEM" kernels(:,:,:) = 0.0d0 - t_start = omp_get_wtime() - if (verbose) write (*,"(A)", advance="no") "KERNEL" - !$OMP PARALLEL DO schedule(dynamic) PRIVATE(s12) do i = 1, na1 do j = i, na1 @@ -1020,9 +928,6 @@ subroutine fget_atomic_symmetric_kernels_fchl(x1, verbose, nneigh1, na1, nsigmas enddo enddo !$OMP END PARALLEL DO - - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" deallocate(self_scalar1) deallocate(ksi1) @@ -1042,8 +947,6 @@ subroutine fget_atomic_local_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, nnei & get_angular_norm2, get_pmax, get_ksi, init_cosp_sinp, get_selfscalar use ffchl_kernels, only: kernel - use omp_lib, only: omp_get_wtime - implicit none ! fchl descriptors for the training set, format (i,maxatoms,5,maxneighbors) @@ -1129,9 +1032,6 @@ subroutine fget_atomic_local_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, nnei integer :: maxneigh1 integer :: maxneigh2 - ! Variables to calculate time - double precision :: t_start, t_end - maxneigh1 = maxval(nneigh1) maxneigh2 = maxval(nneigh2) @@ -1163,12 +1063,8 @@ subroutine fget_atomic_local_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, nnei self_scalar2 = get_selfscalar(x2, nm2, n2, nneigh2, ksi2, sinp2, cosp2, t_width, d_width, & & cut_distance, order, pd, ang_norm2,distance_scale, angular_scale, alchemy, verbose) - if (verbose) write (*,*) "CLEARING KERNEL MEM" kernels(:,:,:) = 0.0d0 - t_start = omp_get_wtime() - if (verbose) write (*,"(A)", advance="no") "KERNEL" - !$OMP PARALLEL DO schedule(dynamic) PRIVATE(ni,nj,idx1,s12) do a = 1, nm1 ni = n1(a) @@ -1197,9 +1093,6 @@ subroutine fget_atomic_local_kernels_fchl(x1, x2, verbose, n1, n2, nneigh1, nnei enddo enddo !$OMP END PARALLEL DO - - t_end = omp_get_wtime() - if (verbose) write (*,"(A,F12.4,A)") " Time = ", t_end - t_start, " s" deallocate(self_scalar1) deallocate(self_scalar2)