LCOV - code coverage report
Current view: top level - init/old_inp - dimens.F90 (source / functions) Hit Total Coverage
Test: combined.info Lines: 31 31 100.0 %
Date: 2019-09-08 04:53:50 Functions: 1 1 100.0 %

          Line data    Source code
       1             : !--------------------------------------------------------------------------------
       2             : ! Copyright (c) 2016 Peter Grünberg Institut, Forschungszentrum Jülich, Germany
       3             : ! This file is part of FLEUR and available as free software under the conditions
       4             : ! of the MIT license as expressed in the LICENSE file in more detail.
       5             : !--------------------------------------------------------------------------------
       6             : 
       7             : MODULE m_dimens
       8             :   USE m_juDFT
       9             :   USE m_utility
      10             :   private
      11             :   public :: dimens
      12             : CONTAINS
      13          28 :   SUBROUTINE dimens(&
      14             :        &                  mpi,input,sym,stars,&
      15             :        &                  atoms,sphhar,dimension,vacuum,&
      16             :        &                  obsolete,kpts,oneD,hybrid)
      17             : 
      18             :     USE m_types
      19             :     USE m_dimen7
      20             :     USE m_firstglance
      21             :     USE m_writeOutHeader
      22             :     IMPLICIT NONE
      23             :     TYPE(t_mpi),INTENT(INOUT) :: mpi
      24             :     TYPE(t_input),INTENT(INOUT) :: input
      25             :     TYPE(t_sym),INTENT(INOUT) :: sym
      26             :     TYPE(t_stars),INTENT(INOUT) :: stars 
      27             :     TYPE(t_atoms),INTENT(INOUT) :: atoms
      28             :     TYPE(t_sphhar),INTENT(INOUT) :: sphhar
      29             :     TYPE(t_dimension),INTENT(INOUT) :: dimension
      30             :     TYPE(t_vacuum),INTENT(INOUT) :: vacuum
      31             :     TYPE(t_obsolete),INTENT(INOUT) :: obsolete
      32             :     TYPE(t_kpts),INTENT(INOUT) :: kpts
      33             :     TYPE(t_oneD),INTENT(INOUT) :: oneD
      34             :     TYPE(t_hybrid),INTENT(INOUT) :: hybrid
      35             :  
      36             :     TYPE(t_cell)     :: cell
      37             : 
      38             :     LOGICAL l_kpts,l_qpts,l_inpexist,ldum
      39             :     INTEGER n1,n2,n3,n4,n5,n6,n7,n8(3),n9,n10(3),i,j
      40             :     INTEGER i_vec(33)
      41             : 
      42             : 
      43             : #ifdef CPP_MPI
      44             :     INCLUDE 'mpif.h'
      45             :     INTEGER ierr(3)
      46             : #endif
      47          28 :     oneD%odd%d1=.TRUE.
      48          28 :     l_kpts=.TRUE.
      49             : 
      50          28 :     IF (mpi%irank.EQ.0) WRITE (6,*) 'Your parameters: '
      51             : 
      52             : #ifdef CPP_MPI
      53          28 :     CALL MPI_BARRIER(mpi%Mpi_comm,ierr)
      54             : #endif
      55             : 
      56          28 : 201 IF (mpi%irank == 0) THEN
      57          14 :        IF (l_kpts) WRITE (6,*) ' No fl7para-file found, '
      58          14 :        WRITE (6,*) ' invoking dimen7... '
      59             :        !call first_glance to generate k-points
      60          14 :        CALL first_glance(n1,n2,n3,n5,n6,input%itmax,l_kpts,l_qpts,ldum,n7,n8,n10)
      61             : 
      62             :        CALL dimen7(input,sym,stars,atoms,sphhar,dimension,vacuum,obsolete,kpts,&
      63          14 :                    oneD,hybrid,cell)
      64             :     ENDIF
      65             :     !     in case of a parallel calculation we have to broadcast
      66             : #ifdef CPP_MPI
      67             :     i_vec = (/sym%nop,stars%mx1,stars%mx2,stars%mx3,stars%ng3,stars%ng2,stars%kq1_fft,stars%kq2_fft,stars%kq3_fft,stars%kxc1_fft,stars%kxc2_fft,stars%kxc3_fft&
      68             :          &     ,atoms%ntype,atoms%nat,atoms%jmtd,sphhar%ntypsd,sphhar%nlhd,sphhar%memd,atoms%lmaxd,input%jspins,vacuum%nvacd,dimension%nvd,dimension%nv2d&
      69          28 :          &     ,1,kpts%nkpt,dimension%nstd,dimension%neigd,dimension%msh,dimension%ncvd,vacuum%layerd,atoms%nlod,atoms%llod,input%itmax/)
      70          28 :     CALL MPI_BCAST(i_vec,33,MPI_INTEGER,0,mpi%Mpi_comm,ierr)
      71          28 :     sym%nop=i_vec(1);stars%mx1=i_vec(2);stars%mx2=i_vec(3);stars%mx3=i_vec(4);stars%ng3=i_vec(5)
      72          28 :     stars%ng2 = i_vec(6);stars%kq1_fft=i_vec(7);stars%kq2_fft=i_vec(8);stars%kq3_fft=i_vec(9)
      73          28 :     stars%kxc1_fft = i_vec(10);stars%kxc2_fft = i_vec(11);stars%kxc3_fft = i_vec(12)
      74          28 :     atoms%ntype = i_vec(13);atoms%nat =i_vec(14);atoms%jmtd=i_vec(15);sphhar%ntypsd=i_vec(16)
      75          28 :     sphhar%nlhd = i_vec(17);sphhar%memd=i_vec(18);atoms%lmaxd=i_vec(19);input%jspins=i_vec(20)
      76          28 :     vacuum%nvacd=i_vec(21);dimension%nvd=i_vec(22);dimension%nv2d=i_vec(23)
      77          28 :     kpts%nkpt = i_vec(25); dimension%nstd=i_vec(26);dimension%neigd=i_vec(27);dimension%msh=i_vec(28)
      78          28 :     dimension%ncvd=i_vec(29);vacuum%layerd=i_vec(30);atoms%nlod=i_vec(31);atoms%llod=i_vec(32)
      79          28 :     input%itmax=i_vec(33)
      80          28 :     CALL MPI_BCAST(oneD%odd%d1,1,MPI_LOGICAL,0,mpi%Mpi_comm,ierr)
      81             :     !      IF (odd%d1) THEN
      82             :     i_vec(:7) = (/oneD%odd%mb,oneD%odd%M,oneD%odd%m_cyl,oneD%odd%chi,oneD%odd%rot,oneD%odd%nop&
      83          28 :          &        ,oneD%odd%n2d/)
      84          28 :     CALL MPI_BCAST(i_vec,7,MPI_INTEGER,0,mpi%Mpi_comm,ierr)
      85          28 :     oneD%odd%mb = i_vec(1);oneD%odd%M = i_vec(2);oneD%odd%m_cyl=i_vec(3)
      86          28 :     oneD%odd%chi = i_vec(4);oneD%odd%rot = i_vec(5);oneD%odd%nop=i_vec(6)
      87          28 :     oneD%odd%n2d= i_vec(7)
      88             :     !      ELSE
      89             :     !         odd%nop = nop
      90             :     !      ENDIF
      91             : #endif
      92          28 :     dimension%nspd=(atoms%lmaxd+1+mod(atoms%lmaxd+1,2))*(2*atoms%lmaxd+1)
      93          28 :     vacuum%nmzd = 250
      94          28 :     vacuum%nmzxyd = 100
      95             : 
      96             : 
      97          28 :   END SUBROUTINE dimens
      98             : 
      99             : END MODULE m_dimens

Generated by: LCOV version 1.13