Commit 7a880474 authored by Gregor Michalicek's avatar Gregor Michalicek

Initial commit to implement inp to xml input conversion. Not yet functional.

parent aad9e717
......@@ -30,7 +30,7 @@
& atoms,obsolete,vacuum,&
& input,banddos,xcpot,sym,&
& cell,sliceplot,noco,&
& stars,oneD,jij,hybrid,kpts)
& stars,oneD,jij,hybrid,kpts,scale,a1,a2,a3,namex,relcor)
USE m_rwinp
USE m_chkmt
USE m_inpnoco
......@@ -42,36 +42,40 @@
IMPLICIT NONE
! ..
! .. Scalar Arguments ..
TYPE(t_atoms), INTENT(INOUT)::atoms
TYPE(t_obsolete), INTENT(INOUT)::obsolete
TYPE(t_vacuum), INTENT(INOUT)::vacuum
TYPE(t_input), INTENT(INOUT)::input
TYPE(t_banddos), INTENT(INOUT)::banddos
TYPE(t_xcpot), INTENT(INOUT)::xcpot
TYPE(t_sym), INTENT(INOUT)::sym
TYPE(t_cell), INTENT(INOUT)::cell
TYPE(t_sliceplot), INTENT(INOUT)::sliceplot
TYPE(t_noco), INTENT(INOUT)::noco
TYPE(t_stars), INTENT(INOUT)::stars
TYPE(t_oneD), INTENT(INOUT)::oneD
TYPE(t_jij), INTENT(INOUT)::jij
TYPE(t_hybrid), INTENT(INOUT)::hybrid
TYPE(t_kpts), INTENT(INOUT)::kpts
TYPE(t_atoms), INTENT(INOUT) :: atoms
TYPE(t_obsolete), INTENT(INOUT) :: obsolete
TYPE(t_vacuum), INTENT(INOUT) :: vacuum
TYPE(t_input), INTENT(INOUT) :: input
TYPE(t_banddos), INTENT(INOUT) :: banddos
TYPE(t_xcpot), INTENT(INOUT) :: xcpot
TYPE(t_sym), INTENT(INOUT) :: sym
TYPE(t_cell), INTENT(INOUT) :: cell
TYPE(t_sliceplot), INTENT(INOUT) :: sliceplot
TYPE(t_noco), INTENT(INOUT) :: noco
TYPE(t_stars), INTENT(INOUT) :: stars
TYPE(t_oneD), INTENT(INOUT) :: oneD
TYPE(t_jij), INTENT(INOUT) :: jij
TYPE(t_hybrid), INTENT(INOUT) :: hybrid
TYPE(t_kpts), INTENT(INOUT) :: kpts
REAL, INTENT(OUT) :: scale
REAL, INTENT(OUT) :: a1(3)
REAL, INTENT(OUT) :: a2(3)
REAL, INTENT(OUT) :: a3(3)
CHARACTER(len=4), INTENT(OUT) :: namex
CHARACTER(len=12), INTENT(OUT) :: relcor
! .. Local Scalars ..
REAL dr,dtild,r,kmax1,dvac1,zp,scale
REAL dr,dtild,r,kmax1,dvac1,zp
INTEGER i,iz,j,n,n1,na,ntst,nn,ios
LOGICAL l_gga,l_test,l_vca
CHARACTER(len=2) :: str_up,str_do
CHARACTER(len=4) :: namex
CHARACTER(len=12) :: relcor
! ..
! .. Local Arrays ..
CHARACTER(3) noel(atoms%ntype)
CHARACTER(8) llr(0:1)
INTEGER jri1(atoms%ntype),lmax1(atoms%ntype)
REAL rmt1(atoms%ntype),dx1(atoms%ntype)
REAL a1(3),a2(3),a3(3)
! ..
! .. Data statements ..
......
......@@ -460,6 +460,7 @@
!
READ (UNIT=5,FMT=7210,END=99,ERR=99) stars%gmax,xcpot%gmaxxc
WRITE (6,9110) stars%gmax,xcpot%gmaxxc
stars%gmaxInit = stars%gmax
7210 FORMAT (2f10.6)
!
INQUIRE(file='fl7para',exist=ldum) ! fl7para must not exist for input%gw=2
......
......@@ -38,6 +38,7 @@ CONTAINS
WRITE(*,'(a)')"-genEnpara : write enpara file"
WRITE(*,'(a)')""
WRITE(*,'(a)')"-xmlInput or -xml : use inp.xml instead of inp"
WRITE(*,'(a)')"-toXML : convert inp file to XML input file (experimental)"
WRITE(*,'(a)')""
WRITE(*,'(a)')"-check : run in check mode, i.e. stop after init"
WRITE(*,'(a)')""
......
......@@ -24,6 +24,7 @@
USE m_ylm
USE m_InitParallelProcesses
USE m_xmlOutput
USE m_constants
USE m_winpXML
USE m_setupMPI
USE m_cdn_io
......@@ -165,12 +166,12 @@
filename = ''
numSpecies = SIZE(speciesRepAtomType)
CALL w_inpXML(&
& atoms,obsolete,vacuum,input,stars,sliceplot,banddos,&
& cell,sym,xcpot,noco,jij,oneD,hybrid,kpts,(/1,1,1/),kpts%l_gamma,&
& noel,namex,relcor,a1,a2,a3,scale,dtild,input%comment,&
& xmlElectronStates,xmlPrintCoreStates,xmlCoreOccs,&
& atomTypeSpecies,speciesRepAtomType,.TRUE.,filename,&
& .TRUE.,numSpecies,enpara)
atoms,obsolete,vacuum,input,stars,sliceplot,banddos,&
cell,sym,xcpot,noco,jij,oneD,hybrid,kpts,(/1,1,1/),kpts%l_gamma,&
noel,namex,relcor,a1,a2,a3,scale,dtild,input%comment,&
xmlElectronStates,xmlPrintCoreStates,xmlCoreOccs,&
atomTypeSpecies,speciesRepAtomType,.TRUE.,filename,&
.TRUE.,numSpecies,enpara)
DEALLOCATE(noel,atomTypeSpecies,speciesRepAtomType)
DEALLOCATE(xmlElectronStates,xmlPrintCoreStates,xmlCoreOccs)
END IF
......@@ -183,6 +184,9 @@
ELSE ! else branch of "IF (input%l_inpXML) THEN"
namex = ' '
relcor = ' '
!--- J<
jij%l_wr=.TRUE.
jij%nqptd=1
......@@ -287,7 +291,7 @@
& atoms,obsolete,vacuum,&
& input,banddos,xcpot,sym,&
& cell,sliceplot,noco,&
& stars,oneD,jij,hybrid,kpts)
& stars,oneD,jij,hybrid,kpts,scale,a1,a2,a3,namex,relcor)
!
IF (xcpot%igrd.NE.0) THEN
ALLOCATE (stars%ft2_gfx(0:DIMENSION%nn2d-1),stars%ft2_gfy(0:DIMENSION%nn2d-1))
......@@ -321,7 +325,44 @@
!+t3e
banddos%l_orb = .FALSE.
banddos%orbCompAtom = 0
ENDIF ! mpi%irank.eq.0
IF(juDFT_was_argument("-toXML")) THEN
WRITE(*,*) ''
WRITE(*,*) 'Please note:'
WRITE(*,*) 'The inp to xml input conversion is experimental and'
WRITE(*,*) 'only made for basic inp files without sophisticated'
WRITE(*,*) 'parametrizations. You might have to adjust the generated'
WRITE(*,*) 'file by hand to really obtain an adequate input file.'
WRITE(*,*) 'Also the generated XML input file is not meant to be'
WRITE(*,*) 'beautiful.'
WRITE(*,*) ''
ALLOCATE(noel(atoms%ntype),atomTypeSpecies(atoms%ntype),speciesRepAtomType(atoms%ntype))
ALLOCATE(xmlElectronStates(29,atoms%ntype),xmlPrintCoreStates(29,atoms%ntype))
ALLOCATE(xmlCoreOccs(1,1,1))
filename = 'inpConverted.xml'
xmlElectronStates = noState_const
xmlPrintCoreStates = .FALSE.
DO i = 1, atoms%ntype
noel(i) = namat_const(atoms%nz(i))
atomTypeSpecies(i) = i
speciesRepAtomType(i) = i
END DO
numSpecies = SIZE(speciesRepAtomType)
a1(:) = a1(:) / scale
a2(:) = a2(:) / scale
a3(:) = a3(:) / scale
CALL w_inpXML(&
atoms,obsolete,vacuum,input,stars,sliceplot,banddos,&
cell,sym,xcpot,noco,jij,oneD,hybrid,kpts,(/1,1,1/),kpts%l_gamma,&
noel,namex,relcor,a1,a2,a3,scale,dtild,input%comment,&
xmlElectronStates,xmlPrintCoreStates,xmlCoreOccs,&
atomTypeSpecies,speciesRepAtomType,.FALSE.,filename,&
.TRUE.,numSpecies,enpara)
DEALLOCATE(noel,atomTypeSpecies,speciesRepAtomType)
DEALLOCATE(xmlElectronStates,xmlPrintCoreStates,xmlCoreOccs)
CALL juDFT_end("Fleur inp to XML input conversion completed.")
END IF
END IF ! mpi%irank.eq.0
CALL timestop("preparation:stars,lattice harmonics,+etc")
END IF ! end of else branch of "IF (input%l_inpXML) THEN"
......
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