Write a suitable header for the calculation - version authors etc
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | bohr_version_str | |||
| character(len=*), | intent(in) | :: | constants_version_str1 | |||
| character(len=*), | intent(in) | :: | constants_version_str2 | |||
| integer, | intent(in) | :: | mpi_size | |||
| integer, | intent(in) | :: | stdout |
subroutine w90_readwrite_write_header(bohr_version_str, constants_version_str1, & constants_version_str2, mpi_size, stdout) !! Write a suitable header for the calculation - version authors etc use w90_io, only: io_date, w90_version implicit none integer, intent(in) :: stdout, mpi_size character(len=*), intent(in) :: bohr_version_str, constants_version_str1, constants_version_str2 character(len=9) :: cdate, ctime call io_date(cdate, ctime) write (stdout, *) write (stdout, *) ' +---------------------------------------------------+' write (stdout, *) ' | |' write (stdout, *) ' | WANNIER90 |' write (stdout, *) ' | |' write (stdout, *) ' +---------------------------------------------------+' write (stdout, *) ' | |' write (stdout, *) ' | Welcome to the Maximally-Localized |' write (stdout, *) ' | Generalized Wannier Functions code |' write (stdout, *) ' | http://www.wannier.org |' write (stdout, *) ' | |' write (stdout, *) ' | |' write (stdout, *) ' | Wannier90 Developer Group: |' write (stdout, *) ' | Giovanni Pizzi (Paul Scherrer Institute) |' write (stdout, *) ' | Valerio Vitale (University of Trieste) |' write (stdout, *) ' | David Vanderbilt (Rutgers University) |' write (stdout, *) ' | Nicola Marzari (EPFL) |' write (stdout, *) ' | Ivo Souza (Universidad del Pais Vasco) |' write (stdout, *) ' | Arash A. Mostofi (Imperial College London) |' write (stdout, *) ' | Jonathan R. Yates (University of Oxford) |' write (stdout, *) ' | |' write (stdout, *) ' | For the full list of Wannier90 3.x authors, |' write (stdout, *) ' | please check the code documentation and the |' write (stdout, *) ' | README on the GitHub page of the code |' write (stdout, *) ' | |' write (stdout, *) ' | |' write (stdout, *) ' | Please cite |' write (stdout, *) ' | |' write (stdout, *) ' | [ref] "Wannier90 as a community code: |' write (stdout, *) ' | new features and applications", |' write (stdout, *) ' | G. Pizzi et al., J. Phys. Cond. Matt. 32, |' write (stdout, *) ' | 165902 (2020). |' write (stdout, *) ' | http://doi.org/10.1088/1361-648X/ab51ff |' write (stdout, *) ' | |' write (stdout, *) ' | in any publications arising from the use of |' write (stdout, *) ' | this code. For the method please cite |' write (stdout, *) ' | |' write (stdout, *) ' | [ref] "Maximally Localized Generalised Wannier |' write (stdout, *) ' | Functions for Composite Energy Bands" |' write (stdout, *) ' | N. Marzari and D. Vanderbilt |' write (stdout, *) ' | Phys. Rev. B 56 12847 (1997) |' write (stdout, *) ' | |' write (stdout, *) ' | [ref] "Maximally Localized Wannier Functions |' write (stdout, *) ' | for Entangled Energy Bands" |' write (stdout, *) ' | I. Souza, N. Marzari and D. Vanderbilt |' write (stdout, *) ' | Phys. Rev. B 65 035109 (2001) |' write (stdout, *) ' | |' write (stdout, *) ' | |' write (stdout, *) ' | Copyright (c) 1996-2026 |' write (stdout, *) ' | The Wannier90 Developer Group and |' write (stdout, *) ' | individual contributors |' write (stdout, *) ' | |' write (stdout, *) ' | Release: ', adjustl(w90_version), ' 27th July 2026 |' write (stdout, *) ' | |' write (stdout, *) ' | This program is free software; you can |' write (stdout, *) ' | redistribute it and/or modify it under the terms |' write (stdout, *) ' | of the GNU Lesser General Public License, version |' write (stdout, *) ' | 2.1 as published by the Free Software Foundation. |' write (stdout, *) ' | |' write (stdout, *) ' | This program is distributed in the hope that it |' write (stdout, *) ' | will be useful, but WITHOUT ANY WARRANTY; without |' write (stdout, *) ' | even the implied warranty of MERCHANTABILITY or |' write (stdout, *) ' | FITNESS FOR A PARTICULAR PURPOSE. See the GNU |' write (stdout, *) ' | General Public License for more details. |' write (stdout, *) ' | |' write (stdout, *) ' | You should have received a copy of the GNU Lesser |' write (stdout, *) ' | General Public License along with this program; |' write (stdout, *) ' | if not, write to the Free Software Foundation, |' write (stdout, *) ' | Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |' write (stdout, *) ' | |' write (stdout, *) ' +---------------------------------------------------+' write (stdout, *) ' | Execution started on ', cdate, ' at ', ctime, ' |' write (stdout, *) ' +---------------------------------------------------+' write (stdout, *) '' write (stdout, '(1X,A)') '******************************************************************************' write (stdout, '(1X,A)') '* '//constants_version_str1//'*' write (stdout, '(1X,A)') '* '//constants_version_str2//'*' write (stdout, '(1X,A)') '* '//bohr_version_str//'*' write (stdout, '(1X,A)') '******************************************************************************' ! show parallel/serial execution if (mpi_size == 1) then #ifdef W90_MPI write (stdout, '(/,1x,a)') 'Running in serial (with parallel executable)' #else write (stdout, '(/,1x,a)') 'Running in serial (with serial executable)' #endif else write (stdout, '(/,1x,a,i3,a)') 'Running in parallel on ', mpi_size, ' CPUs' end if end subroutine w90_readwrite_write_header