aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sci-physics/abinit/files/6.6.1-openmp.patch')
-rw-r--r--sci-physics/abinit/files/6.6.1-openmp.patch509
1 files changed, 509 insertions, 0 deletions
diff --git a/sci-physics/abinit/files/6.6.1-openmp.patch b/sci-physics/abinit/files/6.6.1-openmp.patch
new file mode 100644
index 000000000..af43d5792
--- /dev/null
+++ b/sci-physics/abinit/files/6.6.1-openmp.patch
@@ -0,0 +1,509 @@
+diff -Naur abinit-6.6.1.orig/src/52_fft_mpi_noabirule/accrho.F90 abinit-6.6.1/src/52_fft_mpi_noabirule/accrho.F90
+--- src/52_fft_mpi_noabirule/accrho.F90 2011-02-28 05:14:13.000000000 +0000
++++ src/52_fft_mpi_noabirule/accrho.F90 2011-03-01 19:41:35.000000000 +0000
+@@ -91,14 +91,14 @@
+ integer unused
+ unused=0
+ ! *************************************************************************
+-!$ interface
+-!$ integer ( kind=4 ) function omp_get_num_threads ( )
+-!$ end function omp_get_num_threads
+-!$ end interface
+-!$ interface
+-!$ integer ( kind=4 ) function omp_get_thread_num ( )
+-!$ end function omp_get_thread_num
+-!$ end interface
++!% interface
++!% integer ( kind=4 ) function omp_get_num_threads ( )
++!% end function omp_get_num_threads
++!% end interface
++!% interface
++!% integer ( kind=4 ) function omp_get_thread_num ( )
++!% end function omp_get_thread_num
++!% end interface
+
+ write(6,*)' accrho : enter '
+
+diff -Naur abinit-6.6.1.orig/src/52_fft_mpi_noabirule/applypot.F90 abinit-6.6.1/src/52_fft_mpi_noabirule/applypot.F90
+--- src/52_fft_mpi_noabirule/applypot.F90 2011-02-28 05:14:13.000000000 +0000
++++ src/52_fft_mpi_noabirule/applypot.F90 2011-03-01 19:43:37.000000000 +0000
+@@ -91,14 +91,14 @@
+ integer unused
+ unused=0
+
+-!$ interface
+-!$ integer ( kind=4 ) function omp_get_num_threads ( )
+-!$ end function omp_get_num_threads
+-!$ end interface
+-!$ interface
+-!$ integer ( kind=4 ) function omp_get_thread_num ( )
+-!$ end function omp_get_thread_num
+-!$ end interface
++!% interface
++!% integer ( kind=4 ) function omp_get_num_threads ( )
++!% end function omp_get_num_threads
++!% end interface
++!% interface
++!% integer ( kind=4 ) function omp_get_thread_num ( )
++!% end function omp_get_thread_num
++!% end interface
+
+ write(6,*)' applypot : enter '
+
+diff -Naur abinit-6.6.1.orig/src/52_fft_mpi_noabirule/back.F90 abinit-6.6.1/src/52_fft_mpi_noabirule/back.F90
+--- src/52_fft_mpi_noabirule/back.F90 2011-02-28 05:14:13.000000000 +0000
++++ src/52_fft_mpi_noabirule/back.F90 2011-03-01 19:45:45.000000000 +0000
+@@ -90,14 +90,14 @@
+ #endif
+ ! *************************************************************************
+
+-!$ interface
+-!$ integer ( kind=4 ) function omp_get_num_threads ( )
+-!$ end function omp_get_num_threads
+-!$ end interface
+-!$ interface
+-!$ integer ( kind=4 ) function omp_get_thread_num ( )
+-!$ end function omp_get_thread_num
+-!$ end interface
++!% interface
++!% integer ( kind=4 ) function omp_get_num_threads ( )
++!% end function omp_get_num_threads
++!% end interface
++!% interface
++!% integer ( kind=4 ) function omp_get_thread_num ( )
++!% end function omp_get_thread_num
++!% end interface
+
+ !DEBUG
+ ! write(6,*)' back : enter '
+@@ -121,7 +121,7 @@
+
+ lock=0
+ !$omp parallel default(private) &
+-!$omp shared(ndat,n1,n2,n3,nd1,nd2,nd3,nd2proc,nd3proc,mpi_enreg%me_fft,mpi_enreg%nproc_fft,ncache,zr,zf,lock,icplex)
++!$omp shared(ndat,n1,n2,n3,nd1,nd2,nd3,nd2proc,nd3proc,mpi_enreg,ncache,zr,zf,lock,icplex)
+
+ iam=0
+ npr=1
+diff -Naur abinit-6.6.1.orig/src/52_fft_mpi_noabirule/forw.F90 abinit-6.6.1/src/52_fft_mpi_noabirule/forw.F90
+--- src/52_fft_mpi_noabirule/forw.F90 2011-02-28 05:14:13.000000000 +0000
++++ src/52_fft_mpi_noabirule/forw.F90 2011-03-01 19:46:53.000000000 +0000
+@@ -95,14 +95,14 @@
+ integer :: old_paral_level
+ #endif
+ ! *************************************************************************
+-!$ interface
+-!$ integer ( kind=4 ) function omp_get_num_threads ( )
+-!$ end function omp_get_num_threads
+-!$ end interface
+-!$ interface
+-!$ integer ( kind=4 ) function omp_get_thread_num ( )
+-!$ end function omp_get_thread_num
+-!$ end interface
++!% interface
++!% integer ( kind=4 ) function omp_get_num_threads ( )
++!% end function omp_get_num_threads
++!% end interface
++!% interface
++!% integer ( kind=4 ) function omp_get_thread_num ( )
++!% end function omp_get_thread_num
++!% end interface
+
+ !DEBUG
+ ! write(6,*)' forw : enter '
+@@ -134,7 +134,7 @@
+
+ lock=0
+ !$omp parallel default(private) &
+-!$omp shared(ndat,n1,n2,n3,nd1,nd2,nd3,nd2proc,nd3proc,mpi_enreg%me_fft,mpi_enreg%nproc_fft,ncache,zr,zf,lock,icplex)
++!$omp shared(ndat,n1,n2,n3,nd1,nd2,nd3,nd2proc,nd3proc,mpi_enreg,ncache,zr,zf,lock,icplex)
+
+ iam=0
+ npr=1
+diff -Naur abinit-6.6.1.orig/src/53_ffts/fftw3_fourwf.F90 abinit-6.6.1/src/53_ffts/fftw3_fourwf.F90
+--- src/53_ffts/fftw3_fourwf.F90 2011-02-28 06:10:13.000000000 +0000
++++ src/53_ffts/fftw3_fourwf.F90 2011-03-01 21:30:29.000000000 +0000
+@@ -432,8 +432,8 @@
+ end do
+
+ cplex=0; istwf_k=1; option=3
+-!$ call sg_fftrisc(cplex,dum_denpot,fofgin,dum_fofgin,fofr,gbound,gbound,istwf_k,dum_gvec,gvec,&
+-!$& mgfft,ngfft,npwwfn,npwwfn,ldx,ldy,ldz,option,weight)
++!% call sg_fftrisc(cplex,dum_denpot,fofgin,dum_fofgin,fofr,gbound,gbound,istwf_k,dum_gvec,gvec,&
++!%& mgfft,ngfft,npwwfn,npwwfn,ldx,ldy,ldz,option,weight)
+
+ allocate(ftarr(2,ldx,ldy,ldz))
+ !This call gives weird results for R-->G, while G-->R is ok!!!!
+diff -Naur abinit-6.6.1.orig/src/53_ffts/sphere_fft.F90 abinit-6.6.1/src/53_ffts/sphere_fft.F90
+--- src/53_ffts/sphere_fft.F90 2011-02-28 06:10:11.000000000 +0000
++++ src/53_ffts/sphere_fft.F90 2011-03-01 20:35:57.000000000 +0000
+@@ -99,7 +99,7 @@
+ !ENDDEBUG
+
+ !Insert cg into cfft with extra 0 s around outside:
+-!$OMP PARALLEL DO PRIVATE(i1,i2,i3) SHARED(cfft,ndat,n1,n2,n3)
++!!$OMP PARALLEL DO PRIVATE(i1,i2,i3) SHARED(cfft,ndat,n1,n2,n3)
+ !do i2=1,nd2proc*ndat
+ !do i3=1,n3
+ !do i1=1,n1
+@@ -108,7 +108,7 @@
+ !end do
+ !end do
+ !end do
+-!$OMP END PARALLEL DO
++!!$OMP END PARALLEL DO
+ cfft(:,:,:,:)=zero
+ !$OMP PARALLEL DO PRIVATE(i1,i2,i3,idat,ipw) SHARED(cfft,cg,kg_k,ndat,npw)
+ !write(6,*)'In sphere fft,i1,i2,i3,ipw,cfft=cg'
+@@ -229,7 +229,7 @@
+ !ENDDEBUG
+
+ !Insert cg into cfft with extra 0 s around outside:
+-!$OMP PARALLEL DO PRIVATE(i1,i2,i3) SHARED(cfft,ndat,n1,n2,n3)
++!!$OMP PARALLEL DO PRIVATE(i1,i2,i3) SHARED(cfft,ndat,n1,n2,n3)
+ !do i2=1,nd2proc*ndat
+ !do i3=1,n3
+ !do i1=1,n1
+@@ -238,7 +238,7 @@
+ !end do
+ !end do
+ !end do
+-!$OMP END PARALLEL DO
++!!$OMP END PARALLEL DO
+ cfft(:,:,:,:)=zero
+ !$OMP PARALLEL DO PRIVATE(i1,i2,i3,idat,ipw) SHARED(cfft,cg,kg_k,ndat,npw)
+ !write(6,*)'In sphere fft,i1,i2,i3,ipw,cfft=cg'
+diff -Naur abinit-6.6.1.orig/src/67_common/m_coulombian.F90 abinit-6.6.1/src/67_common/m_coulombian.F90
+--- src/67_common/m_coulombian.F90 2011-02-28 06:10:19.000000000 +0000
++++ src/67_common/m_coulombian.F90 2011-03-01 22:22:13.000000000 +0000
+@@ -1950,7 +1950,7 @@
+ real(dp) :: F3
+ !************************************************************************
+
+- !$F3(z)=z*\sin(qpg_para_*z)/\sqrt(rcut^2+z^2)$
++ !%$F3(z)=z*\sin(qpg_para_*z)/\sqrt(rcut^2+z^2)$
+ F3=xx*SIN(qpg_para_*xx)/SQRT(rcut_**2+xx**2)
+
+ end function F3
+@@ -2039,7 +2039,7 @@
+ real(dp) :: k0,rho,arg
+ !************************************************************************
+
+- !$K0cos(y)=K0(\rho*|qpg_z|)*COS(x.qpg_x+y*qpg_y)$
++ !%$K0cos(y)=K0(\rho*|qpg_z|)*COS(x.qpg_x+y*qpg_y)$
+ rho=SQRT(xx_**2+yy**2) ; arg=qpg_para_*rho
+ call CALCK0(arg,k0,1)
+ K0cos=k0*COS(qpgx_*xx_+qpgy_*yy)
+@@ -2065,7 +2065,7 @@
+ real(dp) :: quad
+ !************************************************************************
+
+- !$ K0cos_dy(x)=\int_{-b/2}^{b/2} K0(|qpg_z|\rho)cos(x.qpg_x+y.qpg_y)dy$
++ !%$ K0cos_dy(x)=\int_{-b/2}^{b/2} K0(|qpg_z|\rho)cos(x.qpg_x+y.qpg_y)dy$
+ xx_=xx
+ call quadrature(K0cos,-hb_,+hb_,qopt_,quad,ierr,ntrial_,accuracy_,npts_)
+ if (ierr/=0) then
+diff -Naur abinit-6.6.1.orig/src/69_wfdesc/m_wfs.F90 abinit-6.6.1/src/69_wfdesc/m_wfs.F90
+--- src/69_wfdesc/m_wfs.F90 2011-02-28 06:10:19.000000000 +0000
++++ src/69_wfdesc/m_wfs.F90 2011-03-01 22:32:16.000000000 +0000
+@@ -126,7 +126,7 @@
+ ! The boundary of the basis sphere of G vectors at a given k point.
+ ! for use in improved zero padding of ffts in 3 dimensions.
+
+- !$real(dp) :: kpoint(3)
++ !%real(dp) :: kpoint(3)
+
+ real(dp),pointer :: ph3d(:,:,:) SET2NULL
+ ! ph3d(2,npw,natom)
+@@ -146,7 +146,7 @@
+ ! ylm(npw,mpsang**2*useylm)
+ ! Real spherical harmonics for each k+G
+
+- !$real(dp),pointer :: kinpw(:)
++ !%real(dp),pointer :: kinpw(:)
+ ! kinpw(npw_k)
+ ! compute elements of kinetic energy operator in reciprocal space.
+ ! (1/2*effmass) (2 Pi)**2 (k+G)**2:
+@@ -186,7 +186,7 @@
+ !integer :: nspinor
+ !integer :: natom
+
+- !$ integer :: cplex
++ !% integer :: cplex
+ ! 1 for real wavefunctions u(r)
+ ! 2 for complex wavefunctions u(r).
+ ! At gamma we always have real u(r) provided that time-reversal can be used.
+@@ -267,8 +267,8 @@
+ integer :: itim
+ ! 2 is time-reversal is used. 1 otherwise.
+
+- !$integer :: ngfft(18)
+- !$integer :: mgfft
++ !%integer :: ngfft(18)
++ !%integer :: mgfft
+
+ real(dp) :: ecut
+ ! Cutoff energy.
+@@ -326,7 +326,7 @@
+ integer :: lmnmax
+ integer :: mband ! MAX(nband)
+ integer :: mgfft ! Maximum size of 1D FFTs i.e. MAXVAL(ngfft(1:3)), used to dimension some arrays.
+- !$integer :: mpsang
++ !%integer :: mpsang
+ integer :: natom
+ integer :: nfft ! Number of FFT points treated by this processor
+ integer :: nfftot ! Total number of points in the FFT grid
+@@ -338,7 +338,7 @@
+ integer :: ntypat
+ integer :: paral_kgb ! Option for kgb parallelism
+ integer :: usepaw ! 1 if PAW is used, 0 otherwise.
+- !$integer :: usepawu ! 1 if PAW+U is used, 0 otherwise.
++ !%integer :: usepawu ! 1 if PAW+U is used, 0 otherwise.
+ integer :: prtvol ! Verbosity level.
+ integer :: pawprtvol ! Verbosity level for PAW.
+ integer :: usewvl ! 1 if BigDFT is used, 0 otherwise.
+@@ -362,13 +362,13 @@
+ ! ecutsm=smearing energy for plane wave kinetic energy (Ha)
+ ! Cutoff for plane wave basis set.
+
+- !$real(dp) :: pawecutdg=zero
++ !%real(dp) :: pawecutdg=zero
+ ! Cutoff for plane wave basis set.
+
+ logical :: gamma_centered=.TRUE.
+ ! .TRUE. if ug are given on the Gamma-centered G-sphere. Flag nedded to preserve the old Implementation.
+
+- !$real(dp) :: effmass
++ !%real(dp) :: effmass
+ ! Effective mass for electrons
+
+ !arrays
+@@ -2066,8 +2066,8 @@
+
+ ! Compute (k+G) vectors
+ nkpg=0
+- !$if (choice==3.or.choice==2.or.choice==23) nkpg=3*Wfd%nloalg(5)
+- !$if (choice==4.or.choice==24) nkpg=9*Wfd%nloalg(5)
++ !%if (choice==3.or.choice==2.or.choice==23) nkpg=3*Wfd%nloalg(5)
++ !%if (choice==4.or.choice==24) nkpg=9*Wfd%nloalg(5)
+ allocate(kpg(npw_k,nkpg)); if (nkpg>0) call mkkpg(kg_k,kpg,kpoint,nkpg,npw_k)
+
+ matblk = Cryst%natom
+@@ -5741,9 +5741,9 @@
+ ! *************************************************************************
+
+ ! TODO ngfft should be included in pawfgrtab_type
+- !$if (ANY(Wfd%ngfft(1:3)/=Pawfgrtab%ngfft(1:3)) then
+- !$ MSG_ERROR("Wfd%ngfft(1:3)/=Pawfgrtab%ngfft(1:3)")
+- !$end if
++ !%if (ANY(Wfd%ngfft(1:3)/=Pawfgrtab%ngfft(1:3)) then
++ !% MSG_ERROR("Wfd%ngfft(1:3)/=Pawfgrtab%ngfft(1:3)")
++ !%end if
+
+ call wfd_get_ur(Wfd,band,ik_ibz,spin,ur_ae)
+
+@@ -6817,7 +6817,7 @@
+ do_sym = .FALSE.
+ if (PRESENT(ISkg)) then
+ do_sym = .TRUE.
+- !$ TODO do_sym = (ISkg%isym/=1 .or. ISkg%itim/=1)
++ !% TODO do_sym = (ISkg%isym/=1 .or. ISkg%itim/=1)
+ end if
+
+ if (.not. do_sym) then
+diff -Naur abinit-6.6.1.orig/src/69_wfdesc/outkss.F90 abinit-6.6.1/src/69_wfdesc/outkss.F90
+--- src/69_wfdesc/outkss.F90 2011-02-28 05:14:13.000000000 +0000
++++ src/69_wfdesc/outkss.F90 2011-03-01 22:42:00.000000000 +0000
+@@ -131,7 +131,7 @@
+ #endif
+
+ use m_io_tools, only : get_unit
+- !$use m_numeric_tools, only : bisect
++ !%use m_numeric_tools, only : bisect
+ use m_gsphere, only : merge_and_sort_kg, table_gbig2kg, get_kg
+ use m_io_kss, only : write_kss_wfgk, write_kss_header, k2gamma_centered
+ use m_hamiltonian, only : ddiago_ctl_type, init_ddiago_ctl
+@@ -458,7 +458,7 @@
+ EXIT
+ end if
+ end do
+-!$ ishm=bisect(shlim,npwkss)
++!% ishm=bisect(shlim,npwkss)
+
+ if (shlim(ishm)/=npwkss) then
+ nrst1=shlim(ishm)
+diff -Naur abinit-6.6.1.orig/src/70_gw/m_screening.F90 abinit-6.6.1/src/70_gw/m_screening.F90
+--- src/70_gw/m_screening.F90 2011-02-28 06:10:19.000000000 +0000
++++ src/70_gw/m_screening.F90 2011-03-02 05:05:33.000000000 +0000
+@@ -439,7 +439,7 @@
+ end do
+
+ rdwr=4
+- !$call hdr_io_int(Er%fform,Er%Hscr%Hdr,rdwr,unt)
++ !%call hdr_io_int(Er%fform,Er%Hscr%Hdr,rdwr,unt)
+ end if ! verbose>0
+
+ end subroutine print_epsilonm1_results
+@@ -796,7 +796,7 @@
+
+ call metric(gmet,gprimd,-1,rmet,Vcp%rprimd,ucvol)
+
+- !$ if (Er%ID/=0) call reset_Epsilonm1(Er)
++ !% if (Er%ID/=0) call reset_Epsilonm1(Er)
+ Er%ID=id_required
+
+ write(*,*) 'Er%ID:',Er%ID
+@@ -1892,7 +1892,7 @@
+ end if
+
+ if (iqibz==1) then
+- !$vc_sqrt => Vcp%vcqlwl_sqrt(:,iqlwl) ! Use Coulomb term for q-->0
++ !%vc_sqrt => Vcp%vcqlwl_sqrt(:,iqlwl) ! Use Coulomb term for q-->0
+ vc_sqrt => Vcp%vcqlwl_sqrt(:,1) ! TODO add treatment of non-Analytic behavior
+ else
+ vc_sqrt => Vcp%vc_sqrt(:,iqibz)
+@@ -1992,7 +1992,7 @@
+ end if
+
+ if (iqibz==1) then
+- !$vc_sqrt => Vcp%vcqlwl_sqrt(:,iqlwl) ! Use Coulomb term for q-->0
++ !%vc_sqrt => Vcp%vcqlwl_sqrt(:,iqlwl) ! Use Coulomb term for q-->0
+ vc_sqrt => Vcp%vcqlwl_sqrt(:,1) ! TODO add treatment of non-Analytic behavior
+ else
+ vc_sqrt => Vcp%vc_sqrt(:,iqibz)
+@@ -2212,7 +2212,7 @@
+ end do
+ !
+ !if (PRESENT(rhor)) then
+- ! !$call mdielf(epsinf,Er%npw,Er%nomega,iq_ibz,Er%qibz(:,iq_ibz),Er%gvec,Cryst,Vcp,nspden,nfft,ngfft,rhor,epsm1,comm)
++ ! !%call mdielf(epsinf,Er%npw,Er%nomega,iq_ibz,Er%qibz(:,iq_ibz),Er%gvec,Cryst,Vcp,nspden,nfft,ngfft,rhor,epsm1,comm)
+ !end if
+
+ end do ! nqibz
+@@ -2393,7 +2393,7 @@
+ !
+ ! Change the body but do not add the corrections due to the head and the wings.
+ ! since they can be obtained on the fly from eps_body and the wings of eps^{-1}.
+- !$chi0(2:,2:,iomega) = eps_body
++ !%chi0(2:,2:,iomega) = eps_body
+ end do !iomega
+
+ deallocate(modg_inv,cvec)
+diff -Naur abinit-6.6.1.orig/src/71_bse/exc_iterative_diago.F90 abinit-6.6.1/src/71_bse/exc_iterative_diago.F90
+--- src/71_bse/exc_iterative_diago.F90 2011-02-28 06:10:19.000000000 +0000
++++ src/71_bse/exc_iterative_diago.F90 2011-03-01 22:50:45.000000000 +0000
+@@ -762,8 +762,8 @@
+ open(unit=eig_unt,file=oeig_fname,form='unformatted')
+ write(eig_unt) exc_nst
+ write(eig_unt) CMPLX(exc_energy(1:exc_nst),kind=dpc)
+- !$ fform = 1002 ! TODO: change setup_bse so that Hdr_bse reflects the parameters of the run.
+- !$ call hdr_io_int(fform,Hdr_bse,rdwr2,eig_unt)
++ !% fform = 1002 ! TODO: change setup_bse so that Hdr_bse reflects the parameters of the run.
++ !% call hdr_io_int(fform,Hdr_bse,rdwr2,eig_unt)
+ close(eig_unt)
+ end if
+
+@@ -776,15 +776,15 @@
+ msg = " MPI_IO error opening file: "//TRIM(oeig_fname)
+ ABI_CHECK_MPI(ierr,msg)
+
+- !$call xmpio_read_frm(mpi_fh,ehdr_offset,xmpio_at,fmarker,ierr)
+- !$write(std_out,*)"fmarker last record ",fmarker
+- !$call hdr_mpio_skip(mpi_fh,fform,ehdr_offset)
+- !$ehdr_offset = 4*xmpio_bsize_frm + xmpio_bsize_int + exc_nst*xmpio_bsize_dpc
++ !%call xmpio_read_frm(mpi_fh,ehdr_offset,xmpio_at,fmarker,ierr)
++ !%write(std_out,*)"fmarker last record ",fmarker
++ !%call hdr_mpio_skip(mpi_fh,fform,ehdr_offset)
++ !%ehdr_offset = 4*xmpio_bsize_frm + xmpio_bsize_int + exc_nst*xmpio_bsize_dpc
+
+ is_fortran_file=.TRUE.; etype=MPI_BYTE; old_type=MPI_DOUBLE_COMPLEX
+
+ ! TODO Need to add option to create file view.
+- !$call xmpio_create_coldistr_from_fherm_packed(array_of_sizes,my_cols,old_type,eig_type,offset_err)
++ !%call xmpio_create_coldistr_from_fherm_packed(array_of_sizes,my_cols,old_type,eig_type,offset_err)
+
+ if (offset_err/=0) then
+ write(msg,"(3a)")&
+diff -Naur abinit-6.6.1.orig/src/77_ddb/eliashberg_1d.F90 abinit-6.6.1/src/77_ddb/eliashberg_1d.F90
+--- src/77_ddb/eliashberg_1d.F90 2011-02-28 06:10:20.000000000 +0000
++++ src/77_ddb/eliashberg_1d.F90 2011-03-02 04:21:07.000000000 +0000
+@@ -108,10 +108,10 @@
+
+ !
+ !1) use linearized Eliashberg equation to find Tc
+-!$ \sum_j \mathbf{M}_{ij} \Delta_j = \zeta \cdot \Delta_i $ $i,j = 1 .. n_{\mathrm{Matsubara}}$
+-!$\zeta = 1$ gives T$_c$ $\beta = \frac{1}{\mathrm{T}}$ $\omega_i = (2 i + 1) \pi \mathrm{T}$
+-!$ \mathbf{M}_{ij} = \frac{\pi}{\beta} \frac{\lambda (\omega_i - \omega_j)}{Z (\omega_i)}$
+-!$ Z (\omega_i) = 1 + \frac{\pi}{\beta \omega_i} \sum_j \lambda(\omega_i - \omega_j) \mathrm{sgn}(\omega_j)$
++!%$ \sum_j \mathbf{M}_{ij} \Delta_j = \zeta \cdot \Delta_i $ $i,j = 1 .. n_{\mathrm{Matsubara}}$
++!%$\zeta = 1$ gives T$_c$ $\beta = \frac{1}{\mathrm{T}}$ $\omega_i = (2 i + 1) \pi \mathrm{T}$
++!%$ \mathbf{M}_{ij} = \frac{\pi}{\beta} \frac{\lambda (\omega_i - \omega_j)}{Z (\omega_i)}$
++!%$ Z (\omega_i) = 1 + \frac{\pi}{\beta \omega_i} \sum_j \lambda(\omega_i - \omega_j) \mathrm{sgn}(\omega_j)$
+ !
+
+ !initial guess for T$_c$ in Hartree (1Ha =3.067e5 K)
+diff -Naur abinit-6.6.1.orig/src/77_ddb/m_eph.F90 abinit-6.6.1/src/77_ddb/m_eph.F90
+--- src/77_ddb/m_eph.F90 2011-02-28 05:14:13.000000000 +0000
++++ src/77_ddb/m_eph.F90 2011-03-01 23:17:18.000000000 +0000
+@@ -233,10 +233,10 @@
+ public :: nullify_fermi_surface
+ public :: destroy_fermi_surface
+
+- !$public :: init_fermi_surface
+- !$public :: wannier_interpolate_fermi_surface
+- !$public :: get_fs_ibz
+- !$public :: bxsf_write_fermi_surface
++ !%public :: init_fermi_surface
++ !%public :: wannier_interpolate_fermi_surface
++ !%public :: get_fs_ibz
++ !%public :: bxsf_write_fermi_surface
+
+ ! example:
+ !type(fermi_surface_type),allocatable :: Fsurf(:)
+@@ -325,9 +325,9 @@
+ ! Bound Methods:
+ public :: nullify_gkk
+ public :: destroy_gkk
+- !$ init_gkk
+- !$ read_gkk_from_file
+- !$ get_gkk_full_fsbz ! complete gkk on the full FS BZ.
++ !% init_gkk
++ !% read_gkk_from_file
++ !% get_gkk_full_fsbz ! complete gkk on the full FS BZ.
+
+ interface nullify_gkk
+ module procedure nullify_gkk_0D
+@@ -379,9 +379,9 @@
+ ! Bound Methods:
+ public :: nullify_gkk_handler
+ public :: destroy_gkk_handler
+- !$init_gkk_handler(Gkk,FSurf,Cryst,Cryst,qpt,fname)
+- !$get_gammaq
+- !$symmetrize_gkk_over_perts
++ !%init_gkk_handler(Gkk,FSurf,Cryst,Cryst,qpt,fname)
++ !%get_gammaq
++ !%symmetrize_gkk_over_perts
+
+ interface nullify_gkk_handler
+ module procedure nullify_gkk_handler_0D
+diff -Naur abinit-6.6.1.orig/src/95_drive/bethe_salpeter.F90 abinit-6.6.1/src/95_drive/bethe_salpeter.F90
+--- src/95_drive/bethe_salpeter.F90 2011-02-28 06:10:13.000000000 +0000
++++ src/95_drive/bethe_salpeter.F90 2011-03-02 04:34:01.000000000 +0000
+@@ -453,7 +453,7 @@
+ end do
+ end if
+
+- opt_ecut=zero !$; if (gw_uses_wfk_file) opt_ecut=Dtset%ecutwfn
++ opt_ecut=zero !%; if (gw_uses_wfk_file) opt_ecut=Dtset%ecutwfn
+
+ call wfd_init(Wfd,Cryst,Pawtab,Psps,keep_ur,Dtset%paral_kgb,BSp%npwwfn,mband,nband,Kmesh%nibz,Dtset%nsppol,bks_mask,&
+ & Dtset%nspden,Dtset%nspinor,Dtset%ecutsm,Dtset%dilatmx,Hdr_kss%istwfk,Kmesh%ibz,ngfft_osc,&
+@@ -513,7 +513,7 @@
+
+ !TODO this has to be done in a better way, moreover wont work for PAW
+ !Check Vcp!
+-!$ call cutoff_density(ngfftf,Dtset%nspden,Dtset%nsppol,Vcp,ks_rhor,MPI_enreg_seq)
++!% call cutoff_density(ngfftf,Dtset%nspden,Dtset%nsppol,Vcp,ks_rhor,MPI_enreg_seq)
+ !
+ !=== Additional computation for PAW ===
+ if (Dtset%usepaw==1) then