Commit 806bf5e6 authored by Daniel Wortmann's avatar Daniel Wortmann

Started to add LICENSE info to FLEUR

parent 42499c71
The MIT License (MIT)
Copyright (c) 2016 Peter Grünberg Institut, Forschungszentrum Jülich, Germany
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
!--------------------------------------------------------------------------------
! Copyright (c) 2016 Peter Grünberg Institut, Forschungszentrum Jülich, Germany
! This file is part of FLEUR and available as free software under the conditions
! of the MIT license as expressed in the LICENSE file in more detail.
!--------------------------------------------------------------------------------
MODULE m_cdngen
use m_juDFT
CONTAINS
......@@ -6,16 +11,9 @@
enpara, cell, noco,jij, results, oneD)
!
! *****************************************************
! flapw7 charge density generator
! c.l.fu
! correction for nwd>1: semic must be set false for nw=nwd
! furthermore ch.d. arrays initialized to zero INSIDE nw
! loop; only last window stored; shift do 10
! aug 90; r.p.
! modifications for slicing by r.p. and h.e. (1/91)
! error in reading 66 for spin-polarized case:
! read(66) nkpt was read for jspin>1 also
! Corrected mai 93 r.p.
! Charge density generator
! calls cdnval to generate the valence charge and the
! core routines for the core contribution
! *****************************************************
!
USE m_constants, ONLY : pi_const,sfp_const
......
!--------------------------------------------------------------------------------
! Copyright (c) 2016 Peter Grünberg Institut, Forschungszentrum Jülich, Germany
! This file is part of FLEUR and available as free software under the conditions
! of the MIT license as expressed in the LICENSE file in more detail.
!--------------------------------------------------------------------------------
MODULE m_fleur
IMPLICIT NONE
CONTAINS
......
!--------------------------------------------------------------------------------
! Copyright (c) 2016 Peter Grünberg Institut, Forschungszentrum Jülich, Germany
! This file is part of FLEUR and available as free software under the conditions
! of the MIT license as expressed in the LICENSE file in more detail.
!--------------------------------------------------------------------------------
MODULE m_fleur_init
IMPLICIT NONE
CONTAINS
......
!--------------------------------------------------------------------------------
! Copyright (c) 2016 Peter Grünberg Institut, Forschungszentrum Jülich, Germany
! This file is part of FLEUR and available as free software under the conditions
! of the MIT license as expressed in the LICENSE file in more detail.
!--------------------------------------------------------------------------------
MODULE m_fleur_jobs
USE m_juDFT
IMPLICIT NONE
......
!--------------------------------------------------------------------------------
! Copyright (c) 2016 Peter Grünberg Institut, Forschungszentrum Jülich, Germany
! This file is part of FLEUR and available as free software under the conditions
! of the MIT license as expressed in the LICENSE file in more detail.
!--------------------------------------------------------------------------------
MODULE m_mix
USE m_juDFT
!*************************************************************************
!**** mixing of charge densities: ****
!**** IMIX= 0 : linear mixing ****
!**** IMIX = 3 : BROYDEN'S FIRST METHOD ****
!**** IMIX = 5 : BROYDEN'S SECOND METHOD ****
!**** IMIX = 7 : GENERALIZED ANDERSEN METHOD ****
!**** implementation to flapw7 ..... R.Pentcheva, D.Vogtenhuber ****
! mixing of charge densities or potentials:
! IMIX= 0 : linear mixing
! IMIX = 3 : BROYDEN'S FIRST METHOD
! IMIX = 5 : BROYDEN'S SECOND METHOD
! IMIX = 7 : GENERALIZED ANDERSEN METHOD
!************************************************************************
CONTAINS
SUBROUTINE mix(stars,atoms,sphhar,vacuum,input,sym, cell, it, noco, oneD,hybrid)
......
MODULE m_optional
use m_juDFT
CONTAINS
SUBROUTINE optional(&
& mpi,&
& atoms,sphhar,vacuum,dimension,&
& stars,input,sym,&
& cell,&
& sliceplot,obsolete,&
& xcpot,&
& noco,&
& oneD)
!
!----------------------------------------
! this routine is called by: fleur.F
!
! optional --+-- plot -+- loddop
! | +- outcdn -+- cotra0
! | +- cotra1
! | +- starf2 -- spgrot
! | +- starf3
! | +- ylm3
! +-- stden -+- atom2 -+- setcor
! | | +- stpot1
! | | +- differ -+- inwint
! | | | +- outint
! | | +- vxcall (-> see vgen.F) or:
! | | +- potl0 -+- grdchlh
! | | | +- mkgl0
! | | | +- vxcallg (-> see vgen.F)
! | | +- intgr1
! | +- cdnovlp -+- spgrot
! | | +- rcerf --wofz
! | | +- diflgr
! | | +- qpw_to_nmt -+- phasy1 -+- spgrot
! | | | +- ylm3
! | | +- sphbes
! | +- qfix -- cdntot -+- intgr3
! | | +- qsf
! | | +- pwint -- spgrot
! | +- wrtdop
! | +- points -- qranf
! | +- sphpts -- qranf
! | +- checkdop -+- starf3
! | +- cotra0
! | +- starf2 -- spgrot
! | +- fitchk
! | +- cotra1
! | +- ylm3
! +-- cdnsp -+- loddop
! | +- wrtdop
! | +- intgr3
! +-- flipcdn -+- loddop
! | +- wrtdop
! +-- f2u -- wrtdop
! +-- u2f -- loddop
! +-- bmt -+- loddop
! +- wrtdop
!----------------------------------------
USE m_bmt
USE m_plotdop
USE m_stden
USE m_cdnsp
USE m_flipcdn
USE m_f2u
USE m_u2f
USE m_types
IMPLICIT NONE
! ..
! .. Scalar Arguments ..
!--------------------------------------------------------------------------------
! Copyright (c) 2016 Peter Grünberg Institut, Forschungszentrum Jülich, Germany
! This file is part of FLEUR and available as free software under the conditions
! of the MIT license as expressed in the LICENSE file in more detail.
!--------------------------------------------------------------------------------
MODULE m_optional
USE m_juDFT
CONTAINS
SUBROUTINE OPTIONAL(mpi, atoms,sphhar,vacuum,DIMENSION,&
stars,input,sym, cell, sliceplot,obsolete, xcpot, noco, oneD)
!
!----------------------------------------
! this routine is called by: fleur.F90
!
! optional --+-- plot -+- loddop
! | +- outcdn -+- cotra0
! | +- cotra1
! | +- starf2 -- spgrot
! | +- starf3
! | +- ylm3
! +-- stden -+- atom2 -+- setcor
! | | +- stpot1
! | | +- differ -+- inwint
! | | | +- outint
! | | +- vxcall (-> see vgen.F) or:
! | | +- potl0 -+- grdchlh
! | | | +- mkgl0
! | | | +- vxcallg (-> see vgen.F)
! | | +- intgr1
! | +- cdnovlp -+- spgrot
! | | +- rcerf --wofz
! | | +- diflgr
! | | +- qpw_to_nmt -+- phasy1 -+- spgrot
! | | | +- ylm3
! | | +- sphbes
! | +- qfix -- cdntot -+- intgr3
! | | +- qsf
! | | +- pwint -- spgrot
! | +- wrtdop
! | +- points -- qranf
! | +- sphpts -- qranf
! | +- checkdop -+- starf3
! | +- cotra0
! | +- starf2 -- spgrot
! | +- fitchk
! | +- cotra1
! | +- ylm3
! +-- cdnsp -+- loddop
! | +- wrtdop
! | +- intgr3
! +-- flipcdn -+- loddop
! | +- wrtdop
! +-- f2u -- wrtdop
! +-- u2f -- loddop
! +-- bmt -+- loddop
! +- wrtdop
!----------------------------------------
USE m_bmt
USE m_plotdop
USE m_stden
USE m_cdnsp
USE m_flipcdn
USE m_f2u
USE m_u2f
USE m_types
IMPLICIT NONE
! ..
! .. Scalar Arguments ..
TYPE(t_mpi),INTENT(IN) :: mpi
TYPE(t_atoms),INTENT(IN) :: atoms
TYPE(t_dimension),INTENT(IN):: DIMENSION
TYPE(t_sphhar),INTENT(IN) :: sphhar
TYPE(t_obsolete),INTENT(IN) :: obsolete
TYPE(t_sym),INTENT(IN) :: sym
TYPE(t_stars),INTENT(IN) :: stars
TYPE(t_oneD),INTENT(IN) :: oneD
TYPE(t_input),INTENT(INOUT) :: input
TYPE(t_noco),INTENT(IN) :: noco
TYPE(t_vacuum),INTENT(IN) :: vacuum
TYPE(t_cell),INTENT(IN) :: cell
TYPE(t_xcpot),INTENT(IN) :: xcpot
TYPE(t_sliceplot),INTENT(IN):: sliceplot
! ..
! .. Local Scalars ..
INTEGER :: it
CHARACTER*10 :: cdnfname
! ..
it = 1
TYPE(t_mpi),INTENT(IN) :: mpi
TYPE(t_atoms),INTENT(IN) :: atoms
TYPE(t_dimension),INTENT(IN):: DIMENSION
TYPE(t_sphhar),INTENT(IN) :: sphhar
TYPE(t_obsolete),INTENT(IN) :: obsolete
TYPE(t_sym),INTENT(IN) :: sym
TYPE(t_stars),INTENT(IN) :: stars
TYPE(t_oneD),INTENT(IN) :: oneD
TYPE(t_input),INTENT(INOUT) :: input
TYPE(t_noco),INTENT(IN) :: noco
TYPE(t_vacuum),INTENT(IN) :: vacuum
TYPE(t_cell),INTENT(IN) :: cell
TYPE(t_xcpot),INTENT(IN) :: xcpot
TYPE(t_sliceplot),INTENT(IN):: sliceplot
! ..
! .. Local Scalars ..
INTEGER :: it
CHARACTER*10 :: cdnfname
! ..
it = 1
IF (mpi%irank == 0) THEN
10 IF (sliceplot%plpot) input%score = .false.
IF (sliceplot%iplot) THEN
CALL timestart("Plotting")
IF (input%strho) CALL juDFT_error("strho = T and iplot=T",calledby&
& ="optional")
IF (noco%l_noco) THEN
cdnfname = 'cdn'
CALL plotdop(&
& oneD,stars,vacuum,sphhar,atoms,&
& input,sym,cell,sliceplot,&
& noco%l_noco,cdnfname)
cdnfname = 'mdnx'
CALL plotdop(&
& oneD,stars,vacuum,sphhar,atoms,&
& input,sym,cell,sliceplot,&
& noco%l_noco,cdnfname)
cdnfname = 'mdny'
CALL plotdop(&
& oneD,stars,vacuum,sphhar,atoms,&
& input,sym,cell,sliceplot,&
& noco%l_noco,cdnfname)
cdnfname = 'mdnz'
CALL plotdop(&
& oneD,stars,vacuum,sphhar,atoms,&
& input,sym,cell,sliceplot,&
& noco%l_noco,cdnfname)
ELSE
IF (sliceplot%slice) THEN
cdnfname = 'cdn_slice'
ELSE
cdnfname = 'cdn1'
ENDIF
CALL plotdop(&
& oneD,stars,vacuum,sphhar,atoms,&
& input,sym,cell,sliceplot,&
& noco%l_noco,cdnfname)
ENDIF
CALL timestop("Plotting")
END IF
ENDIF ! mpi%irank == 0
!
! --->generate starting charge density
!
IF (input%strho) THEN
input%total = .false.
!
CALL timestart("generation of start-density")
CALL stden(mpi,&
& sphhar,stars,atoms,sym,&
& dimension,vacuum,&
& input,&
& cell,&
& xcpot,&
& obsolete,&
& oneD)
!
CALL timestart("generation of start-density")
END IF
IF (mpi%irank == 0) THEN
!
! --->generate spin polarized charge density
!
call timestart("optional: spin polarized density")
IF (input%swsp) THEN
CALL cdnsp(&
& atoms,input,vacuum,sphhar,&
& stars,&
& sym,&
& cell,dimension)
!
call timestop("optional: spin polarized density")
END IF
!
! --->flip magnetic moments
!
IF (input%lflip) THEN
IF (mpi%irank == 0) THEN
10 IF (sliceplot%plpot) input%score = .FALSE.
IF (sliceplot%iplot) THEN
CALL timestart("Plotting")
IF (input%strho) CALL juDFT_error("strho = T and iplot=T",calledby&
& ="optional")
IF (noco%l_noco) THEN
cdnfname = 'cdn'
CALL plotdop(&
& oneD,stars,vacuum,sphhar,atoms,&
& input,sym,cell,sliceplot,&
& noco%l_noco,cdnfname)
cdnfname = 'mdnx'
CALL plotdop(&
& oneD,stars,vacuum,sphhar,atoms,&
& input,sym,cell,sliceplot,&
& noco%l_noco,cdnfname)
cdnfname = 'mdny'
CALL plotdop(&
& oneD,stars,vacuum,sphhar,atoms,&
& input,sym,cell,sliceplot,&
& noco%l_noco,cdnfname)
cdnfname = 'mdnz'
CALL plotdop(&
& oneD,stars,vacuum,sphhar,atoms,&
& input,sym,cell,sliceplot,&
& noco%l_noco,cdnfname)
ELSE
IF (sliceplot%slice) THEN
cdnfname = 'cdn_slice'
ELSE
cdnfname = 'cdn1'
ENDIF
CALL plotdop(&
& oneD,stars,vacuum,sphhar,atoms,&
& input,sym,cell,sliceplot,&
& noco%l_noco,cdnfname)
ENDIF
CALL timestop("Plotting")
END IF
ENDIF ! mpi%irank == 0
!
! --->generate starting charge density
!
IF (input%strho) THEN
input%total = .FALSE.
!
CALL timestart("generation of start-density")
CALL stden(mpi,&
& sphhar,stars,atoms,sym,&
& DIMENSION,vacuum,&
& input,&
& cell,&
& xcpot,&
& obsolete,&
& oneD)
!
CALL timestart("generation of start-density")
END IF
IF (mpi%irank == 0) THEN
!
! --->generate spin polarized charge density
!
CALL timestart("optional: spin polarized density")
IF (input%swsp) THEN
CALL cdnsp(&
& atoms,input,vacuum,sphhar,&
& stars,&
& sym,&
& cell,DIMENSION)
!
CALL timestop("optional: spin polarized density")
END IF
!
! --->flip magnetic moments
!
IF (input%lflip) THEN
CALL timestart('optional: flip magnetic moments')
CALL flipcdn(&
& atoms,input,vacuum,sphhar,&
& stars,sym,cell,noco%l_noco)
!
CALL timestop('optional: flip magnetic moments')
END IF
CALL timestart('optional: flip magnetic moments')
CALL flipcdn(&
& atoms,input,vacuum,sphhar,&
& stars,sym,cell,noco%l_noco)
!
CALL timestop('optional: flip magnetic moments')
END IF
IF (obsolete%l_u2f) THEN
IF (obsolete%l_u2f) THEN
CALL timestart('optional: conversion to formatted')
CALL u2f(&
& stars,input,atoms,sphhar,vacuum,&
& cell,sym,noco%l_noco)
!
CALL timestop('optional: conversion to formatted')
ENDIF
CALL timestart('optional: conversion to formatted')
CALL u2f(&
& stars,input,atoms,sphhar,vacuum,&
& cell,sym,noco%l_noco)
!
CALL timestop('optional: conversion to formatted')
ENDIF
IF (obsolete%l_f2u) THEN
IF (obsolete%l_f2u) THEN
CALL timestart('optional: conversion to unformatted')
CALL f2u(&
& stars,input,atoms,sphhar,vacuum,&
& cell,sym,noco%l_noco)
!
CALL timestop('optional: conversion to unformatted')
ENDIF
CALL timestart('optional: conversion to unformatted')
CALL f2u(&
& stars,input,atoms,sphhar,vacuum,&
& cell,sym,noco%l_noco)
!
CALL timestop('optional: conversion to unformatted')
ENDIF
IF (input%l_bmt) THEN
CALL bmt(&
& stars,input,noco,atoms,sphhar,vacuum,&
& cell,sym)
ENDIF
IF (input%l_bmt) THEN
CALL bmt(&
& stars,input,noco,atoms,sphhar,vacuum,&
& cell,sym)
ENDIF
ENDIF ! mpi%irank == 0
ENDIF ! mpi%irank == 0
END SUBROUTINE optional
END MODULE m_optional
END SUBROUTINE OPTIONAL
END MODULE m_optional
!--------------------------------------------------------------------------------
! Copyright (c) 2016 Peter Grünberg Institut, Forschungszentrum Jülich, Germany
! This file is part of FLEUR and available as free software under the conditions
! of the MIT license as expressed in the LICENSE file in more detail.
!--------------------------------------------------------------------------------
MODULE m_totale
CONTAINS
SUBROUTINE totale(atoms,sphhar,stars,vacuum, &
sym,input,noco,cell,oneD, xcpot,hybrid, it,results)
!
! ***************************************************
! subroutine calculates the total energy of the slab
! c.l.fu
! subroutine calculates the total energy
! ***************************************************
! single particle energies
! SEIGC sum of the eigenvalues of the core states
......
!--------------------------------------------------------------------------------
! Copyright (c) 2016 Peter Grünberg Institut, Forschungszentrum Jülich, Germany
! This file is part of FLEUR and available as free software under the conditions
! of the MIT license as expressed in the LICENSE file in more detail.
!--------------------------------------------------------------------------------
MODULE m_vgen
USE m_juDFT
CONTAINS
SUBROUTINE vgen(reap,input,xcpot,dimension, atoms,sphhar,stars,&
vacuum,sym, obsolete,cell,oneD,sliceplot,mpi, results,noco)
! ***********************************************************
! FLAPW7 film potential generator *
! composed July 1986, revised and tested May 1987 *
! spin-polarized added may 1987 *
! c.l.fu, R. Podloucky *
! FLAPW potential generator *
! ***********************************************************
! calculates the density-potential integrals needed for the
! total energy
......@@ -15,10 +17,6 @@ CONTAINS
! TE_VEFF: charge density-effective potential integral
! TE_EXC : charge density-ex-corr.energy density integral
! ***********************************************************
! VR0 average coulomb potential contributes to the Madelung term
! R.Pentcheva 09.05.96
! ***********************************************************
!
#include"cpp_double.h"
USE m_constants
USE m_vmts
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment