Line data Source code
1 : !{src2tex{textfont=tt}}
2 : !!****m* ABINIT/m_build_info
3 : !! NAME
4 : !! m_build_info
5 : !!
6 : !! FUNCTION
7 : !! This module contains information about this particular version of ABINIT
8 : !! and its build parameters (useful for debugging).
9 : !!
10 : !! COPYRIGHT
11 : !! Copyright (C) 2005-2026 ABINIT group (Yann Pouillon, Matteo Giantomassi)
12 : !! This file is distributed under the terms of the
13 : !! GNU General Public License, see ~abinit/COPYING
14 : !! or http://www.gnu.org/copyleft/gpl.txt .
15 : !!
16 : !! SOURCE
17 :
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.9.3.129-a419d"
33 : character(len=*),parameter :: build_target = &
34 : & "x86_64_linux_gnu14.2"
35 :
36 : ! More info on current version
37 : character(len=*),parameter :: version_major = &
38 : & "10"
39 : character(len=*),parameter :: version_minor = &
40 : & "9"
41 : character(len=*),parameter :: version_micro = &
42 : & "3"
43 : character(len=*),parameter :: version_build = &
44 : & "20260921"
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 : & "gnu14.2"
50 : character(len=*),parameter :: cxx_info = &
51 : & "gnu14.2"
52 : character(len=*),parameter :: fc_info = &
53 : & "gnu14.2"
54 : character(len=*),parameter :: cc_flags = &
55 : & "-g -O2 -march=native "
56 : character(len=*),parameter :: cxx_flags = &
57 : & "-g -O2 -march=native "
58 : character(len=*),parameter :: fc_flags = &
59 : & "-g -ffree-line-length-none -fallow-argument-mismatch --coverage - ..."
60 : character(len=*),parameter :: fc_ldflags = &
61 : & " "
62 :
63 : ! Info on optimizations
64 : character(len=*),parameter :: with_debug_flavor = &
65 : & "basic"
66 : character(len=*),parameter :: with_optim_flavor = &
67 : & "standard"
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.2.3_gnu14.2"
74 : character(len=*),parameter :: enable_mpi_io = &
75 : & ""
76 :
77 : ! Info on openMP
78 : character(len=*),parameter :: enable_openmp = &
79 : & ""
80 :
81 : ! Info on GPU
82 : character(len=*),parameter :: with_gpu = &
83 : & "@with_gpu@"
84 :
85 : ! Info on external dependencies
86 : character(len=*),parameter :: linalg_flavor = &
87 : & "mkl"
88 : character(len=*),parameter :: fft_flavor = &
89 : & "dfti"
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 : & "yes"
100 :
101 : ! Info on experimental features
102 : character(len=*),parameter :: enable_exports = &
103 : & "@enable_exports@"
104 : character(len=*),parameter :: enable_gw_dpc = &
105 : & "yes"
106 :
107 : contains !===========================================================
108 : !!***
109 :
110 : !!****f* ABINIT/m_build_info/dump_config
111 : !! NAME
112 : !! dump_config
113 : !!
114 : !! FUNCTION
115 : !! Reports a printout of the information stored in m_build_info,
116 : !! useful for error messages and debugging.
117 : !!
118 : !! INPUTS
119 : !! my_unit= Fortran unit number
120 : !!
121 : !! OUTPUT
122 : !! Only printing
123 : !!
124 : !! SOURCE
125 :
126 1165 : subroutine dump_config(my_unit)
127 :
128 : !Arguments ------------------------------------
129 : integer,intent(in) :: my_unit
130 :
131 : !Local variables-------------------------------
132 :
133 : ! *********************************************************************
134 :
135 : ! TODO: things that might be added through preprocessing options, e.g.
136 : ! date and time of compilation
137 :
138 1165 : write(my_unit,*)
139 1165 : write(my_unit,'(1x,a)') repeat('+',78)
140 1165 : write(my_unit,*)
141 1165 : write(my_unit,'(a)' )' === Build Information === '
142 1165 : write(my_unit,'(2a)')' Version : ',trim(abinit_version)
143 1165 : write(my_unit,'(2a)')' Build target : ',trim(build_target)
144 1165 : write(my_unit,'(2a)')' Build date : ',trim(version_build)
145 1165 : write(my_unit,*)
146 1165 : write(my_unit,'(a)' )' === Compiler Suite === '
147 1165 : write(my_unit,'(2a)')' C compiler : ',trim(cc_info)
148 1165 : write(my_unit,'(2a)')' C++ compiler : ',trim(cxx_info)
149 1165 : write(my_unit,'(2a)')' Fortran compiler : ',trim(fc_info)
150 1165 : write(my_unit,'(2a)')' CFLAGS : ',trim(cc_flags)
151 1165 : write(my_unit,'(2a)')' CXXFLAGS : ',trim(cxx_flags)
152 1165 : write(my_unit,'(2a)')' FCFLAGS : ',trim(fc_flags)
153 1165 : write(my_unit,'(2a)')' FC_LDFLAGS : ',trim(fc_ldflags)
154 1165 : write(my_unit,*)
155 1165 : write(my_unit,'(a) ')' === Optimizations === '
156 1165 : write(my_unit,'(2a)')' Debug level : ',trim(with_debug_flavor)
157 1165 : write(my_unit,'(2a)')' Optimization level : ',trim(with_optim_flavor)
158 1165 : write(my_unit,'(2a)')' Architecture : ',trim(cpu_info)
159 1165 : write(my_unit,*)
160 1165 : write(my_unit,'(a) ')' === Multicore === '
161 1165 : write(my_unit,'(2a)')' Parallel build : ',trim(with_mpi)
162 1165 : write(my_unit,'(2a)')' Parallel I/O : ',trim(enable_mpi_io)
163 1165 : write(my_unit,'(2a)')' openMP support : ',trim(enable_openmp)
164 1165 : write(my_unit,'(2a)')' GPU support : ',trim(with_gpu)
165 1165 : write(my_unit,*)
166 1165 : write(my_unit,'(a) ')' === Connectors / Fallbacks === '
167 1165 : write(my_unit,'(2a)')' LINALG flavor : ',trim(linalg_flavor)
168 1165 : write(my_unit,'(2a)')' FFT flavor : ',trim(fft_flavor)
169 1165 : write(my_unit,'(2a)')' HDF5 : ',trim(with_hdf5)
170 1165 : write(my_unit,'(2a)')' NetCDF : ',trim(with_netcdf)
171 1165 : write(my_unit,'(2a)')' NetCDF Fortran : ',trim(with_netcdf_fortran)
172 1165 : write(my_unit,'(2a)')' LibXC : ',trim(with_libxc)
173 1165 : write(my_unit,'(2a)')' Wannier90 : ',trim(with_wannier90)
174 1165 : write(my_unit,*)
175 1165 : write(my_unit,'(a)' )' === Experimental features === '
176 1165 : write(my_unit,'(2a)')' Exports : ',trim(enable_exports)
177 1165 : write(my_unit,'(2a)')' GW double-precision : ',trim(enable_gw_dpc)
178 1165 : write(my_unit,*)
179 1165 : write(my_unit,'(1x,a)') repeat('+',78)
180 1165 : write(my_unit,*)
181 :
182 1165 : end subroutine dump_config
183 : !!***
184 :
185 : end module m_build_info
186 : !!***
|