From 1fc1124d959b89048255a9abc692890d72e39c1a Mon Sep 17 00:00:00 2001 From: Thomas Applencourt Date: Thu, 16 Apr 2015 09:41:16 +0200 Subject: [PATCH] Remove open mp and add tmp array --- src/MonoInts/README.rst | 22 +++++----- src/MonoInts/pot_ao_ints.irp.f | 77 ++++++++++++++++++++-------------- 2 files changed, 56 insertions(+), 43 deletions(-) diff --git a/src/MonoInts/README.rst b/src/MonoInts/README.rst index 751407c7..ec92eada 100644 --- a/src/MonoInts/README.rst +++ b/src/MonoInts/README.rst @@ -102,38 +102,38 @@ Documentation `ao_nucl_elec_integral `_ interaction nuclear electron -`ao_nucl_elec_integral_per_atom `_ +`ao_nucl_elec_integral_per_atom `_ ao_nucl_elec_integral_per_atom(i,j,k) = - where Rk is the geometry of the kth atom -`give_polynom_mult_center_mono_elec `_ +`give_polynom_mult_center_mono_elec `_ Undocumented -`i_x1_pol_mult_mono_elec `_ +`i_x1_pol_mult_mono_elec `_ Undocumented -`i_x2_pol_mult_mono_elec `_ +`i_x2_pol_mult_mono_elec `_ Undocumented -`int_gaus_pol `_ +`int_gaus_pol `_ Undocumented -`nai_pol_mult `_ +`nai_pol_mult `_ Undocumented -`v_e_n `_ +`v_e_n `_ Undocumented -`v_phi `_ +`v_phi `_ Undocumented -`v_r `_ +`v_r `_ Undocumented -`v_theta `_ +`v_theta `_ Undocumented -`wallis `_ +`wallis `_ Undocumented `mo_nucl_elec_integral `_ diff --git a/src/MonoInts/pot_ao_ints.irp.f b/src/MonoInts/pot_ao_ints.irp.f index cc699574..ef2e8c8f 100644 --- a/src/MonoInts/pot_ao_ints.irp.f +++ b/src/MonoInts/pot_ao_ints.irp.f @@ -48,7 +48,10 @@ ! dz_k(1) = 5.35838717 ! dz_k(2) = 3.67918975 ! dz_k(3) = 1.60507673 - + print*, "=======================" + print*, "=======================" + print*, "=======================" + print*, "nucl_num", nucl_num print*, "klocmax", klocmax @@ -85,6 +88,10 @@ print*,"v_kl_ezfio", v_kl print*,"dz_kl_ezfio", dz_kl + print*, "=======================" + print*, "=======================" + print*, "=======================" + ! lmax = 1 ! kmax = 1 @@ -108,29 +115,31 @@ ! print*,"dz_kl_ezfio", dz_kl - !$OMP PARALLEL & - !$OMP DEFAULT (NONE) & - !$OMP PRIVATE (i, j, k, l, m, alpha, beta, A_center, B_center, C_center, power_A, power_B, & - !$OMP num_A, num_B, Z, c, n_pt_in, dump) & - !$OMP SHARED (ao_num,ao_prim_num,ao_expo_transp,ao_power,ao_nucl,nucl_coord,ao_coef_transp, & - !$OMP n_pt_max_integrals,ao_nucl_elec_integral,nucl_num,nucl_charge,nucl_label, & - !$OMP v_k, n_k, dz_k, klocmax, & - !$OMP lmax,kmax,v_kl,n_kl,dz_kl) + integer, allocatable :: n_kl_dump(:,:) + double precision, allocatable :: v_kl_dump(:,:), dz_kl_dump(:,:) + + allocate(n_kl_dump(kmax,0:lmax), v_kl_dump(kmax,0:lmax), dz_kl_dump(kmax,0:lmax)) + n_pt_in = n_pt_max_integrals - !$OMP DO SCHEDULE (guided) do j = 1, ao_num num_A = ao_nucl(j) power_A(1:3)= ao_power(j,1:3) A_center(1:3) = nucl_coord(num_A,1:3) + print*, "J", j, "/", ao_num + print*,"===================" + do i = 1, ao_num num_B = ao_nucl(i) power_B(1:3)= ao_power(i,1:3) B_center(1:3) = nucl_coord(num_B,1:3) + + print*, "i", i, "/", ao_num + do l=1,ao_prim_num(j) alpha = ao_expo_transp(l,j) @@ -145,31 +154,37 @@ C_center(1:3) = nucl_coord(k,1:3) - print*, j, "j /", ao_num - print*, l, "l /", ao_prim_num(j) - print*, i, "i /", ao_num - print*, m, "m /", ao_prim_num(i) - c = c - Z*NAI_pol_mult(A_center,B_center,power_A,power_B,alpha,beta,C_center,n_pt_in) c = c + Vloc( klocmax ,v_k(k,:) ,n_k(k,:) ,dz_k(k,:), A_center,power_A,alpha,B_center,power_B,beta,C_center) - - print*, "lmax",lmax - print*, "kmax",kmax - print*, "v_kl",v_kl(k,:,:) - print*, "n_kl",n_kl(k,:,:) - print*, "dz_kl",dz_kl(k,:,:) - print*, "A_center", A_center - print*, "power_A",power_A - print*, "Alpha_B", alpha - print*, "B_center", B_center - print*, "power_B", power_B - print*, "beta", beta - print*, "C_center",C_center - c = c + Vpseudo(lmax,kmax,v_kl(k,:,:),n_kl(k,:,:),dz_kl(k,:,:),A_center,power_A,alpha,B_center,power_B,beta,C_center) -! c = c - Vps(A_center,power_A,alpha,B_center,power_B,beta,C_center,klocmax,v_k,n_k,dz_k,lmax,kmax,v_kl,n_kl,dz_kl) + n_kl_dump = n_kl(k,1:kmax,0:lmax) + v_kl_dump = v_kl(k,1:kmax,0:lmax) + dz_kl_dump = dz_kl(k,1:kmax,0:lmax) + +! print*, "lmax",lmax +! print*, "kmax",kmax +! print*, "v_kl",v_kl_dump +! print*, "n_kl",n_kl_dump +! print*, n_kl_dump(1,0) +! print*, n_kl_dump(1,1) +! print*, "dz_kl",dz_kl_dump +! print*, dz_kl_dump(1,0) +! print*, dz_kl_dump(1,1) +! print*, "A_center", A_center +! print*, "power_A",power_A +! print*, "alpha", alpha +! print*, "B_center", B_center +! print*, "power_B", power_B +! print*, "beta", beta +! print*, "C_center",C_center + + ! c = c + Vpseudo(lmax,kmax,v_kl_dump,n_kl_dump,dz_kl_dump,A_center,power_A,alpha,B_center,power_B,beta,C_center) + ! c = c - Vps(A_center,power_A,alpha,B_center,power_B,beta,C_center,klocmax,v_k,n_k,dz_k,lmax,kmax,v_kl,n_kl,dz_kl) + +! print*, "#################" +! print*, "#################" enddo ao_nucl_elec_integral(i,j) = ao_nucl_elec_integral(i,j) + & ao_coef_transp(l,j)*ao_coef_transp(m,i)*c @@ -177,8 +192,6 @@ enddo enddo enddo - !$OMP END DO - !$OMP END PARALLEL END_PROVIDER