dft_tools/fortran/dmftproj/outbwin.f

93 lines
3.3 KiB
Fortran

c ******************************************************************************
c
c TRIQS: a Toolbox for Research in Interacting Quantum Systems
c
c Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn
c
c TRIQS is free software: you can redistribute it and/or modify it under the
c terms of the GNU General Public License as published by the Free Software
c Foundation, either version 3 of the License, or (at your option) any later
c version.
c
c TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY
c WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
c FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
c details.
c
c You should have received a copy of the GNU General Public License along with
c TRIQS. If not, see <http://www.gnu.org/licenses/>.
c
c *****************************************************************************/
SUBROUTINE outbwin
C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
C %% %%
C %% This subroutine creates the output file case.oubwin %%
C %% which contains all the informations for the charge density %%
C %% self-consistency. %%
C %% %%
C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
C Definition of the variables :
C ----------------------------
USE almblm_data
USE common_data
USE file_names
USE prnt
IMPLICIT NONE
INTEGER :: is, ik, ou
C
WRITE(buf,'(a)')'Writing the file case.outbwin...'
CALL printout(0)
C
DO is=1,ns
C ====================================
C Definition of the file case.oubwin :
C ====================================
C If the computations is spin-polarized, the output file is divided
C in two files : case.oubwinup and case.oubwindn
IF(ifSP.AND.is==1) THEN
ou=oubwinup
ELSEIF(ifSP.AND.is==2) THEN
ou=oubwindn
ELSE
ou=oubwin
ENDIF
C =======================================
C General informations about the system :
C =======================================
C
C Number of k-points in the I-BZ
WRITE(ou,'(i6)') nk
C Definition of the Spin-orbit flag ifSO
IF(ifSO) THEN
WRITE(ou,'(i6)') 1
ELSE
WRITE(ou,'(i6)') 0
ENDIF
C ====================================================
C Description of the main properties of each k-point :
C ====================================================
DO ik=1,nk
C Description of the if-included flag
IF(kp(ik,is)%included) THEN
WRITE(ou,'(i6)') 1
ELSE
WRITE(ou,'(i6)') 0
ENDIF
IF(kp(ik,is)%included) THEN
C Range of bands included at each k-point
WRITE(ou,'(2(i6))') kp(ik,is)%nb_bot,kp(ik,is)%nb_top
C Weight associated to each k-point (for the simple point integration)
WRITE(ou,*) kp(ik,is)%weight
ENDIF
ENDDO ! End of the ik loop
ENDDO ! End of the is loop
C
RETURN
END