<pre style='margin:0'>
David Strubbe (dstrubbe) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/ccafada5554612846c07279e6690b99cae996a68">https://github.com/macports/macports-ports/commit/ccafada5554612846c07279e6690b99cae996a68</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit ccafada5554612846c07279e6690b99cae996a68
</span>Author: David Strubbe <dstrubbe@macports.org>
AuthorDate: Tue Jun 30 10:59:09 2020 -0700

<span style='display:block; white-space:pre;color:#404040;'>    abinit: Update to 9.0.4.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Substantial reorganization due to changes in code's build system. libxc, hdf5, and netcdf are now required dependencies. +threads disabled due to compilation errors. Testsuite for serial does task parallelization. MPI in-place enabled and MPI level 3 (for MPICH only). FFTW3 is always threaded.
</span>---
 science/abinit/Portfile | 136 +++++++++++++++++++-----------------------------
 1 file changed, 53 insertions(+), 83 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/abinit/Portfile b/science/abinit/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index a83b73cc6c4..63718b5d4ab 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/abinit/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/abinit/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,7 +5,8 @@ PortGroup           mpi 1.0
</span> PortGroup           linear_algebra 1.0
 
 name                abinit
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version             8.10.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             9.0.4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            0
</span> categories          science
 platforms           darwin
 license             GPL-3
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -31,12 +32,12 @@ long_description    ABINIT is a package whose main program allows one to find th
</span> homepage            https://www.abinit.org
 master_sites        ${homepage}/sites/default/files/packages
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums           rmd160  b47a865dc6a321ea5b66e4df4173f2ce93dacbe1 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  4ee2e0329497bf16a9b2719fe0536cc50c5d5a07c65e18edaf15ba02251cbb73 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    size    88370836
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  7b475c4f2784794abf1f7ea2cdf902d849a0a394 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  aa6202feaea060ea5c39500a06f735e472874f768bf9a301059f4bbf04886e52 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    87453615
</span> 
 compilers.choose    cc cxx fc
<span style='display:block; white-space:pre;background:#e0ffe0;'>+compilers.allow_arguments_mismatch yes
</span> # g95 is no longer supported by abinit
 mpi.setup           default require_fortran -g95
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -44,6 +45,16 @@ configure.args-append  --enable-gw-dpc
</span> configure.fcflags-append  -ffree-line-length-none
 configure.optflags  -O3
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append      port:libxc4 port:hdf5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compilers.enforce_fortran libxc4 hdf5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append   --with-libxc="${prefix}" --with-hdf5="${prefix}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+mpi.enforce_variant hdf5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append      port:netcdf-fortran
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compilers.enforce_fortran netcdf-fortran
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append   --with-netcdf="${prefix}" --with-netcdf-fortran="${prefix}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# check compatibility with MPI? not needed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> use_parallel_build  yes
 
 # We do not need to use ABINIT's own approach to parallel builds, which only is relevant if
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -51,58 +62,20 @@ use_parallel_build  yes
</span> # but did not provide the libraries. That situation should never happen for this port.
 #build.target        multi multi_nprocs=4
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-default_variants +libxc +wannier90
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> pre-configure {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if { [variant_isset netcdf] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.args-append  --with-trio-flavor="netcdf"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.args-append  --with-trio-flavor="none"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# enable LibPAW, PFFT?
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set dft-flavor "none"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if { [variant_isset libxc] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if { ${dft-flavor} eq "none" } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set dft-flavor libxc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set dft-flavor ${dft-flavor}+libxc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if { [variant_isset wannier90] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if { ${dft-flavor} eq "none" } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set dft-flavor wannier90
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set dft-flavor ${dft-flavor}+wannier90
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#    if { [variant_isset bigdft] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#        if { ${dft-flavor} eq "none" } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#            set dft-flavor bigdft
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#        } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#            set dft-flavor ${dft-flavor}+bigdft
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#    if { [variant_isset atompaw] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#        if { ${dft-flavor} eq "none" } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#            set dft-flavor atompaw
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#        } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#            set dft-flavor ${dft-flavor}+atompaw
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append  --with-dft-flavor="${dft-flavor}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set linalg-flavor "none"
</span>     if { [variant_isset atlas] } {
         set linalg-flavor atlas
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    } elseif { [variant_isset openblas] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set linalg-flavor openblas
</span>     } else {
         set linalg-flavor netlib
     }
     if { [variant_isset scalapack] } {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        set linalg-flavor ${linalg-flavor}+scalapack
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set linalglib        "${linalglib} -lscalapack"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set linalglib     "${linalglib} -lscalapack"
</span>     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   --with-linalg-flavor="${linalg-flavor}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   --with-linalg-libs="${linalglib}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append   --with-linalg-flavor="${linalg-flavor}" LINALG_LIBS="${linalglib}"
</span> }
 
 # install binaries and pkgconfig but not the very large number of test files
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -113,12 +86,10 @@ universal_variant   no
</span> 
 test.run            yes
 test.cmd            tests/runtests.py
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# args -t0 for no timeout since it cannot be found anyway; or: set depends_build-append port:timeout
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-test.target         built-in fast tutorespfn tutorial unitary
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# args -t0 for no timeout since it cannot be found anyway; or: set depends_test-append port:timeout
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test.target         libxc built-in fast tutorespfn tutorial unitary
</span> #test.target         built-in fast tutorespfn tutorial unitary v1 v2 v3 v4 v5 v6 v67mbpt v7
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# other config options to add:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# --enable-mpi-inplace
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_test-append port:py-pandas
</span> 
 pre-test {
     if {[mpi_variant_isset]} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -127,15 +98,21 @@ pre-test {
</span>         test.args-append -n 1
     } else {
         test.target-append seq
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {![catch {sysctl hw.ncpu} ncpus]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            test.cmd     tests/runtests.py -j $ncpus
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_msg "Running testsuite with $ncpus tasks in parallel"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span>     }
 }
 
 pre-configure {
     configure.args-append  FCCPP="${configure.cc} -E -ansi"
     if {[mpi_variant_isset]} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.args-append  --enable-mpi="yes" --enable-mpi-io="yes"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.args-append  --enable-mpi="no"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append  --with-mpi --enable-mpi-io="yes" --enable-mpi-inplace
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[mpi_variant_name] eq "mpich" || [mpi_variant_name] eq "mpich-devel"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # with OpenMPI, causes compilation error in m_profiling_abi.F90 related to MPI_COMM_WORLD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            configure.args-append --with-mpi-level=3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span>     }
 }
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -143,38 +120,31 @@ variant fftw3 description {Build with support for fftw-3 FFT library} {
</span>     depends_lib-append      port:fftw-3 port:fftw-3-single
     compilers.enforce_some_fortran fftw-3 fftw-3-single
     
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if { [variant_isset threads] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.args-append   --with-fft-flavor="fftw3-threads"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.args-append   --with-fft-libs="-lfftw3_threads -lfftw3 -lfftw3f"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.args-append   --with-fft-flavor="fftw3"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.args-append   --with-fft-libs="-lfftw3 -lfftw3f"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append   --with-fft-flavor="fftw3"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append    FFTW3_LIBS="-L${prefix} -lfftw3 -lfftw3f"
</span> }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant threads description {Build with support for OpenMP threads} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   --enable-openmp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.fcflags-append -fopenmp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# the fftw-3 port always provides the threaded library
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant fftw3 description {Build with support for (threaded) fftw-3 FFT library} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-append      port:fftw-3 port:fftw-3-single
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    compilers.enforce_some_fortran fftw-3 fftw-3-single
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant netcdf description {Build with support for NetCDF transferable I/O} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append      port:netcdf-fortran
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    compilers.enforce_fortran netcdf-fortran
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   --with-netcdf-incs="-I${prefix}/include"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   --with-netcdf-libs="-L${prefix}/lib -lnetcdf -lnetcdff"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # check compatibility with MPI?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append   --with-fft-flavor="fftw3-threads"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append    FFTW3_LIBS="-L${prefix} -lfftw3 -lfftw3f -lfftw3_threads"
</span> }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# add support for gsl, yaml?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#variant threads description {Build with support for OpenMP threads} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#    configure.args-append   --enable-openmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#    configure.fcflags-append -fopenmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Threads disabled due to this error:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#m_getghc.F90:1622:0:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# 1622 |    if ( present(kg_fft_k) ) then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#      |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#Error: 'kg_fft_k' not specified in enclosing 'parallel'
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant libxc description {Build with support for libXC exchange-correlation library} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # configure says Fortran support doesn't work for libxc > 4.0.0 for some reason
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append      port:libxc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    compilers.enforce_fortran libxc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   --with-libxc-incs="-I${prefix}/include"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   --with-libxc-libs="-L${prefix}/lib -lxc -lxcf90"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    test.target-append      libxc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# add support for gsl, yaml?
</span> 
 variant scalapack description {Build with ScaLAPACK for parallel linear algebra} {
     depends_lib-append      port:scalapack
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -188,10 +158,10 @@ variant scalapack description {Build with ScaLAPACK for parallel linear algebra}
</span> }
 
 variant wannier90 description {Build with support for Wannier90} {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append   --with-wannier90 WANNIER90_LIBS="-lwannier"
</span>     depends_lib-append      port:wannier90
     test.target-append      wannier90 tutoplugs vdwxc
 }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# tests fail: [wannier90][t00][np=1]: fldiff.pl fatal error
</span> 
 # FIXME: the code's build system will download BigDFT itself, which is contrary to the
 # way MacPorts should work. Make a bigdft port to support this.
</pre><pre style='margin:0'>

</pre>