! ! Copyright (C) 2003 A. Smogunov ! This file is distributed under the terms of the ! GNU General Public License. See the file `License' ! in the root directory of the present distribution, ! or http://www.gnu.org/copyleft/gpl.txt . ! SUBROUTINE cond_out () USE io_global, ONLY : stdout USE ions_base, ONLY: atm USE lsda_mod, ONLY: nspin USE noncollin_module, ONLY : noncolin, npol USE spin_orb, ONLY : lspinorb USE cond !--------------------------- ! Some output !--------------------------- implicit none integer :: iorb, ipol, k write(stdout,'(''----- General information -----'')') write(stdout,*) if(ikind.eq.0) then write(stdout,'(''----- Complex band structure calculation -----'')') elseif(ikind.eq.1) then write(stdout,'(''--- T calc. with identical leads (ikind=1) --- '')') elseif(ikind.eq.2) then write(stdout,'(''--- T calc. with different leads (i2) --- '')') endif if(nspin.eq.2) then write(stdout,'(/,9x, ''LSDA calculations, spin index ='',i6)') iofspin endif if(nspin.eq.4) then write(stdout,'(/,9x, ''Noncollinear calculations'')') if(lspinorb) & write(stdout,'(/,9x, ''Noncollinear calculations with spin-orbit'')') endif write (stdout, 300) nrx, nry, nz1 300 format (/,5x, & & 'nrx = ',i12,/,5x, & & 'nry = ',i12,/,5x, & & 'nz1 = ',i12,/,5x) write (stdout, 301) energy0, denergy, nenergy, ecut2d, ewind, epsproj 301 format (/,5x, & & 'energy0 = ',1pe15.1,/,5x, & & 'denergy = ',1pe15.1,/,5x, & & 'nenergy = ',i10,/,5x, & & 'ecut2d = ',1pe15.1,/,5x, & & 'ewind = ',1pe15.1,/,5x, & & 'epsproj = ',1pe15.1,/,5x) ! ! Information about the k points ! WRITE( stdout, '(/5x,"number of k_|| points=",i5)') nkpts WRITE( stdout, '(23x,"cart. coord. in units 2pi/a_0")') DO k = 1, nkpts WRITE( stdout, '(8x,"k(",i5,") = (",2f12.7,"), wk =",f12.7)') k, & (xyk (ipol, k) , ipol = 1, 2) , wkpt (k) ENDDO if(ikind.eq.1) then write(stdout,'(''----- Information about left/right lead -----'')') else write(stdout,'(''----- Information about left lead ----- '')') endif write (stdout, 200) nocrosl, noinsl, norbl, norbf, nrzl 200 format (/,5x, & & 'nocros = ',i12,/,5x, & & 'noins = ',i12,/,5x, & & 'norb = ',i12,/,5x, & & 'norbf = ',i12,/,5x, & & 'nrz = ',i12,/,5x) write(stdout, '(6x,''iorb type ibeta ang. mom.'',3x, & & ''m position (a_0)'')') write(stdout,'(5x,i4,4x,i5,5x,i3,6x,i3,6x,i3,'' taunew('', & & i4,'')=('',3f8.4,'')'')') & & ( iorb,tblml(1,iorb), tblml(2,iorb), tblml(3,iorb),& & tblml(4,iorb), iorb, & & (taunewl(ipol,iorb),ipol=1,3), iorb=1, norbl ) if(norbl.le.80) then write(stdout,'(4x,''k slab'',3x,'' z(k) z(k+1)'', & & 5x,''crossing(iorb=1,norb)'')') do k=1, nrzl write(stdout,'(2x,i3,2x,3f7.4,3x,80i1)') & k,zl(k),zl(k+1),zl(k+1)-zl(k),(crosl(iorb,k),iorb=1,norbl) enddo endif if(ikind.eq.2) then write(stdout,'(''----- Information about right lead -----'')') write (stdout, 200) nocrosr, noinsr, norbr, norbf, nrzr write(stdout, '(6x,''iorb type ibeta ang. mom.'',3x, & & ''m position (a_0)'')') write(stdout,'(5x,i4,4x,i5,5x,i3,6x,i3,6x,i3,'' taunew('', & & i4,'')=('',3f8.4,'')'')') & & ( iorb,tblmr(1,iorb), tblmr(2,iorb), tblmr(3,iorb),& & tblmr(4,iorb), iorb, & & (taunewr(ipol,iorb),ipol=1,3), iorb=1, norbr ) if(norbr.le.80) then write(stdout,'(4x,''k slab'',3x,'' z(k) z(k+1)'', & & 5x,''crossing(iorb=1,norb)'')') do k=1, nrzr write(stdout,'(2x,i3,2x,3f7.4,3x,80i1)') & k,zr(k),zr(k+1),zr(k+1)-zr(k),(crosr(iorb,k),iorb=1,norbr) enddo endif endif if(ikind.gt.0) then write(stdout,'(''----- Information about scattering region -----'')') write (stdout, 201) noinss, norbs, norbf, nrzs 201 format (/,5x, & & 'noins = ',i12,/,5x, & & 'norb = ',i12,/,5x, & & 'norbf = ',i12,/,5x, & & 'nrz = ',i12,/,5x) write(stdout, '(6x,''iorb type ibeta ang. mom.'',3x, & & ''m position (a_0)'')') write(stdout,'(5x,i4,4x,i5,5x,i3,6x,i3,6x,i3,'' taunew('', & & i4,'')=('',3f8.4,'')'')') & & ( iorb,tblms(1,iorb), tblms(2,iorb), tblms(3,iorb),& & tblms(4,iorb), iorb, & & (taunews(ipol,iorb),ipol=1,3), iorb=1, norbs ) if(norbs.le.80) then write(stdout,'(4x,''k slab'',3x,'' z(k) z(k+1)'', & & 5x,''crossing(iorb=1,norb)'')') do k=1, nrzs write(stdout,'(2x,i3,2x,3f7.4,3x,80i1)') & k,zs(k),zs(k+1),zs(k+1)-zs(k),(cross(iorb,k),iorb=1,norbs) enddo endif endif return end subroutine cond_out