TABLE OF CONTENTS


ABINIT/m_build_info [ Modules ]

[ Top ] [ Modules ]

NAME

  m_build_info

FUNCTION

  This module contains information about this particular version of ABINIT
  and its build parameters (useful for debugging).

COPYRIGHT

  Copyright (C) 2005-2024 ABINIT group (Yann Pouillon, Matteo Giantomassi)
  This file is distributed under the terms of the
  GNU General Public License, see ~abinit/COPYING
  or http://www.gnu.org/copyleft/gpl.txt .

SOURCE

 18 #if defined HAVE_CONFIG_H
 19 #include "config.h"
 20 #endif
 21 
 22 module m_build_info
 23 
 24 implicit none
 25 
 26 ! Try to prevent problems with the length of the argument
 27 ! (should not exceed the line length of 132 character).
 28 ! So, always start the string to be replaced at the beginning of a line.
 29 
 30 ! Parameters set-up by Autoconf
 31 character(len=8),parameter :: abinit_version = &
 32 &   "10.0.3"
 33 character(len=*),parameter :: build_target   = &
 34 &   "x86_64_linux_gnu9.5"
 35 
 36 ! More info on current version
 37 character(len=*),parameter :: version_major = &
 38 &   "10"
 39 character(len=*),parameter :: version_minor = &
 40 &   "0"
 41 character(len=*),parameter :: version_micro = &
 42 &   "3"
 43 character(len=*),parameter :: version_build = &
 44 &   "20240412"
 45 
 46 ! Info on compilers. Try to prevent problems with the length of the argument
 47 ! (should not exceed the line length of 132 character).
 48 character(len=*),parameter :: cc_info    = &
 49 &   "gnu9.5"
 50 character(len=*),parameter :: cxx_info   = &
 51 &   "gnu9.5"
 52 character(len=*),parameter :: fc_info    = &
 53 &   "gnu9.5"
 54 character(len=*),parameter :: cc_flags   = &
 55 &   "-g -g3 -ggdb -O0      "
 56 character(len=*),parameter :: cxx_flags  = &
 57 &   "-g -O0      "
 58 character(len=*),parameter :: fc_flags   = &
 59 &   "-g -fbacktrace -finit-real=nan -Wimplicit-interface -Wno-maybe-unin ..."
 60 character(len=*),parameter :: fc_ldflags = &
 61 &   "   "
 62 
 63 ! Info on optimizations
 64 character(len=*),parameter :: with_debug_flavor = &
 65 &   "enhanced"
 66 character(len=*),parameter :: with_optim_flavor = &
 67 &   "none"
 68 character(len=*),parameter :: cpu_info = &
 69 &   "intel_xeon"
 70 
 71 ! Info on MPI
 72 character(len=*),parameter :: with_mpi      = &
 73 &   "/usr/local/mpich-4.0.2_gcc95"
 74 character(len=*),parameter :: enable_mpi_io = &
 75 &   "yes"
 76 
 77 ! Info on openMP
 78 character(len=*),parameter :: enable_openmp = &
 79 &   "no"
 80 
 81 ! Info on GPU
 82 character(len=*),parameter :: with_gpu      = &
 83 &   ""
 84 
 85 ! Info on external dependencies
 86 character(len=*),parameter :: linalg_flavor       = &
 87 &   "openblas"
 88 character(len=*),parameter :: fft_flavor          = &
 89 &   "fftw3"
 90 character(len=*),parameter :: with_hdf5           = &
 91 &   "yes"
 92 character(len=*),parameter :: with_netcdf         = &
 93 &   "yes"
 94 character(len=*),parameter :: with_netcdf_fortran = &
 95 &   "yes"
 96 character(len=*),parameter :: with_libxc          = &
 97 &   "yes"
 98 character(len=*),parameter :: with_wannier90      = &
 99 &   "no"
100 
101 ! Info on experimental features
102 character(len=*),parameter :: enable_exports = &
103 &   ""
104 character(len=*),parameter :: enable_gw_dpc = &
105 &   "no"
106 
107 contains  !===========================================================

ABINIT/m_build_info/dump_config [ Functions ]

[ Top ] [ Functions ]

NAME

  dump_config

FUNCTION

  Reports a printout of the information stored in m_build_info,
  useful for error messages and debugging.

INPUTS

  my_unit= Fortran unit number

OUTPUT

  Only printing

PARENTS

  Will be filled automatically by the parent script

CHILDREN

  Will be filled automatically by the parent script

SOURCE

132 subroutine dump_config(my_unit)
133 
134 implicit none
135 
136 !Arguments ------------------------------------
137 integer,intent(in) :: my_unit
138 
139 !Local variables-------------------------------
140 
141 ! *********************************************************************
142 
143 ! TODO: things that might be added through preprocessing options, e.g.
144 ! date and time of compilation
145 
146 write(my_unit,*)
147 write(my_unit,'(1x,a)') repeat('+',78)
148 write(my_unit,*)
149 write(my_unit,'(a)' )' === Build Information === '
150 write(my_unit,'(2a)')'  Version       : ',trim(abinit_version)
151 write(my_unit,'(2a)')'  Build target  : ',trim(build_target)
152 write(my_unit,'(2a)')'  Build date    : ',trim(version_build)
153 write(my_unit,*)
154 write(my_unit,'(a)' )' === Compiler Suite === '
155 write(my_unit,'(2a)')'  C compiler       : ',trim(cc_info)
156 write(my_unit,'(2a)')'  C++ compiler     : ',trim(cxx_info)
157 write(my_unit,'(2a)')'  Fortran compiler : ',trim(fc_info)
158 write(my_unit,'(2a)')'  CFLAGS           : ',trim(cc_flags)
159 write(my_unit,'(2a)')'  CXXFLAGS         : ',trim(cxx_flags)
160 write(my_unit,'(2a)')'  FCFLAGS          : ',trim(fc_flags)
161 write(my_unit,'(2a)')'  FC_LDFLAGS       : ',trim(fc_ldflags)
162 write(my_unit,*)
163 write(my_unit,'(a) ')' === Optimizations === '
164 write(my_unit,'(2a)')'  Debug level        : ',trim(with_debug_flavor)
165 write(my_unit,'(2a)')'  Optimization level : ',trim(with_optim_flavor)
166 write(my_unit,'(2a)')'  Architecture       : ',trim(cpu_info)
167 write(my_unit,*)
168 write(my_unit,'(a) ')' === Multicore === '
169 write(my_unit,'(2a)')'  Parallel build : ',trim(with_mpi)
170 write(my_unit,'(2a)')'  Parallel I/O   : ',trim(enable_mpi_io)
171 write(my_unit,'(2a)')'  openMP support : ',trim(enable_openmp)
172 write(my_unit,'(2a)')'  GPU support    : ',trim(with_gpu)
173 write(my_unit,*)
174 write(my_unit,'(a) ')' === Connectors / Fallbacks === '
175 write(my_unit,'(2a)')'  LINALG flavor  : ',trim(linalg_flavor)
176 write(my_unit,'(2a)')'  FFT flavor     : ',trim(fft_flavor)
177 write(my_unit,'(2a)')'  HDF5           : ',trim(with_hdf5)
178 write(my_unit,'(2a)')'  NetCDF         : ',trim(with_netcdf)
179 write(my_unit,'(2a)')'  NetCDF Fortran : ',trim(with_netcdf_fortran)
180 write(my_unit,'(2a)')'  LibXC          : ',trim(with_libxc)
181 write(my_unit,'(2a)')'  Wannier90      : ',trim(with_wannier90)
182 write(my_unit,*)
183 write(my_unit,'(a)' )' === Experimental features === '
184 write(my_unit,'(2a)')'  Exports             : ',trim(enable_exports)
185 write(my_unit,'(2a)')'  GW double-precision : ',trim(enable_gw_dpc)
186 write(my_unit,*)
187 write(my_unit,'(1x,a)') repeat('+',78)
188 write(my_unit,*)
189 
190 end subroutine dump_config